PDA

Показать полную графическую версию : F1 для новичка


SS3
24-01-2009, 15:29
Передача параметров
main()
{
int count;
count = 5;
doubles(count);
}
doubles(num)
int num;
{
printf("%d",num*2);
return 0;
}
Программирую в DEV-C++, делаю как в книге("Моя первая программа на С\С++" А. Нейбауэр). Но, при первом запуске выбивает ошибку напротив doubles(count);.
Подскажите что делают в таких случаях, может мне нужно что-то добавить??

Alan85
24-01-2009, 15:55
#include <stdio.h>
main()
{
int doubles(int);
int count;
count = 5;
doubles(count);
}
int doubles(num)
int num;
{
printf("%d",num*2);
return 0;
}

Должно так быть. У тебя не указано:
1. Тип функции;
2. Прототип функции до первого использования;

SS3
24-01-2009, 16:18
Хм... просмотрел все главы про функции, и там не где не было сказано что нужно прописывать #include <stdio.h>.
Значит эта книга не ориентирована на новичка, хотя в введении было сказано совсем другое.
Ну теперь ошибка не выбивает где раньше, теперь она выбивает в int doubles(num),не пойму мы уже объявили функцию doubles.
Вот что выбивает компилятор:

10 E:\num.cpp `num' was not declared in this scope
11 E:\num.cpp expected `,' or `;' before "int"
12 E:\num.cpp expected unqualified-id before '{' token
12 E:\num.cpp expected `,' or `;' before '{' token

1 #include <stdio.h>
2 main()
3 {
4 int doubles(int);
5 int count;
6 int num;
7 count = 5;
8 doubles(count);
9 }
10 int doubles(num)
11 int num;
12 {
13 printf("%d",num*2);
14 return 0;
15 }

Alan85
24-01-2009, 16:23
#include <stdio.h>
main()
{
int doubles(int);
int count;
count = 5;
doubles(count);
}
int doubles(int num)
{
printf("%d",num*2);
return 0;
}


Вообще я всегда так пишу, да и большинство навернека

SS3
24-01-2009, 16:35
Спасибо огромное, теперь запустилась. Ну разве я виноват, что так в этом учебнике было написано.
Наверно дальше буду учить по учебнике Гиберта Шилдта(Самоучитель C++. 3-е издание) (http://torrents.ru/forum/viewtopic.php?t=1331424).

Busla
24-01-2009, 17:39
Ну разве я виноват, что так в этом учебнике было написано. »
Указания типа операндов в строке после объявления функции - это синтаксис оригинального си, виноват скорее компилятор (его настройки?), что воспринимает только упрощённую современную запись.




© OSzone.net 2001-2012