Форум программистов, компьютерный форум, киберфорум
Наши страницы

C для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
OKS_by_V
1 / 1 / 0
Регистрация: 15.05.2011
Сообщений: 78
#1

Return type of 'main' is not `int' - C (СИ)

11.02.2012, 22:18. Просмотров 1241. Ответов 13
Метки нет (Все метки)

Структура .Список помогите розобратся почкму не работает..))
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#include <stdio.h>
#include <conio.h>
 
 
struct student
{   char prizv[12],group[10];
    int sbal ;
    struct student*nast;
    };struct student*element,*pershij,*poperednij,*novyj;
void Spysok(void);
void Vuvestu(void);
void Newel(void);
 
void main()
{  
    
   printf("dlya zak vvody zmit 0\n");
   Spysok();
 Vuvestu();
 Newel();
 element=pershij;
 novyj->nast=element;
 pershij=novyj;
 printf("new spisok\n");
  Vuvestu();
 
  }
  void Spysok(void){
       element=malloc(sizeof(struct student));
       prshij=element;
       do  {
           poperednij=element;
           printf("prizv,grup and sered bal\n");
           scanf("%s",&element->prizv);
           scanf("%s",&element->group);
           scanf("%s",&element->sbal);
           element->nast=malloc(sizeof(struct student));
           element=element->nast;
           
           }
           while(poperednij->sbal !=0)
           poperednij->nast=NULL;
       
       
       }
  
 void Vuvestu(void){
      
       printf("stvoremo nev spusok\n");
       element=pershij;
       while(element!=NULL)
       {printf("%s\t%s\t%d\n",element->prizv,element->grup,element->sbal);
       element=element->nast;
                           
                           }
      }
      
 
    void Newel(void){
         novij=malloc(sizeof(struct student));
           printf("prizv,grup and sered bal\n");
           scanf("%s",&element->prizv);
           scanf("%s",&element->group);
           scanf("%s",&element->sbal);
         
         }
редактор : Dev-C++

Добавлено через 2 часа 57 минут
м ....да я уже голову всю поломал ..
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.02.2012, 22:18
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Return type of 'main' is not `int' (C (СИ)):

Ошибка: 'sleep': no function return type, using 'int' - C (СИ)
Пользуюсь DosBox 0.74-QC(поменять не могу,нужно на нем) ,так вот,столкнулся с такой проблемой,что даже банальные функции для осуществления...

Warning: return type defaults to ‘int’ Что значит этот варнинг? - C (СИ)
Вот программа #include &lt;stdio.h&gt; main() { float fahr, celsius; int lower, upper, step; lower = 0; upper = 300; ...

Int main() or main() - C (СИ)
Всем привет. Начал изучать С. У меня встал вопрос, как объявить функцию main. Видел и int main() и просто main() Просто main()...

Функция int roth() отдельно работает прекрасно, а при вызове main не может открыть файл - C (СИ)
Почему меню выскакивает, словно после getch()? почему ф-я int roth() отдельно работает прекрасно, а при вызове мейна не может открыть файл?...

Односвязный список - объясните, как работают return 0 и return 1 - C (СИ)
проверьте, пжлса, по комментариям правильно ли я поняла принцип работы программы. Объясните, как здесь работают return 0 и return 1. и...

Как происходит передача значения после return 0 и почему после return ставится 0 - C (СИ)
#include &lt;stdio.h&gt; int power(int m, int n); /* тест функции power */ main() { int i; for (i = 0: i &lt; 10, ++i) ...

13
remarkes
303 / 226 / 13
Регистрация: 01.07.2011
Сообщений: 809
Записей в блоге: 1
11.02.2012, 23:24 #2
OKS_by_V, какая ошибка вас больше всего волнует?
0
OKS_by_V
1 / 1 / 0
Регистрация: 15.05.2011
Сообщений: 78
11.02.2012, 23:27  [ТС] #3
Цитата Сообщение от remarkes Посмотреть сообщение
OKS_by_V, какая ошибка вас больше всего волнует?
14 \main.c [Warning] return type of 'main' is not `int'
\main.c In function `Spysok':

вот как би мне их исправить .....што то с структкрой не так??
0
remarkes
303 / 226 / 13
Регистрация: 01.07.2011
Сообщений: 809
Записей в блоге: 1
11.02.2012, 23:56 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#include <stdio.h>
#include <stdlib.h>
 
struct student
{   char prizv[12],group[10];
    int sbal ;
    struct student *nast;
    }; struct student *element,*pershij,*poperednij,*novyj;
 
void Spysok(void);
void Vuvestu(void);
void Newel(void);
 
int main()
{  
    
   printf("dlya zak vvody zmit 0\n");
   Spysok();
 Vuvestu();
 Newel();
 element=pershij;
 novyj->nast=element;
 pershij=novyj;
 printf("new spisok\n");
  Vuvestu();
 
  }
  void Spysok(void){
       element=malloc(sizeof(struct student));
       pershij=element;
       do  {
           poperednij=element;
           printf("prizv,grup and sered bal\n");
           scanf("%s", element->prizv );
           scanf("%s", element->group );
           scanf("%i", &element->sbal );
           element->nast=malloc(sizeof(struct student));
           element=element->nast;
           
           }
           while ( poperednij->sbal != 0 );
        poperednij->nast = NULL;
       
       
       }
  
 void Vuvestu(void){
      
       printf("stvoremo nev spusok\n");
       element=pershij;
       while(element!=NULL)
       {printf("%s\t%s\t%d\n",element->prizv,element->group,element->sbal);
       element=element->nast;
                           
                           }
      }
      
 
    void Newel(void){
         novyj=malloc(sizeof(struct student));
           printf("prizv,grup and sered bal\n");
           scanf("%s", element->prizv);
           scanf("%s", element->group);
           scanf("%i", &element->sbal);
         
         }
Добавлено через 5 минут
OKS_by_V, я так понимаю, с английским у тебя неважно...
ошибки:
- много орфографических - сударь, вы пьяны?
- некоторые переменные написаны не так, как объявлены выше.
- в функции список ты делаешь цикл do {} while но не ставишь ; в конце после while.
- забыл #include <stdlib.h> для malloc
- неправильно используешь scanf - для символьных массивов (строк) амперсанд не используется. потому что передается адрес первого элемента - массива (то есть откуда начинается строка).
- для element->sbal необходимо использовать %i или %d

Добавлено через 1 минуту
и кстати, что делает ваш код? к сожалению, в битве экстрасенсов я выбыл в первом раунде

Добавлено через 10 минут
небольшие советы:
- используй чаще клавишу пробел, отделяя элементы.
C
1
element->nast = malloc( sizeof(struct student) );
- после запятой должен быть обязательно пробел.
C
1
printf("%s\t%s\t%d\n", element->prizv, element->group, element->sbal);
- используй комментарии. это очень важно - приучись к ним.
- называй переменные/функции/объекты/классы и т.д. английскими именами (например read_file)
- по возможности не используй библиотеку #include <conio.h>
В IDE:
- используй автозаполнение и автозавершение слов и функций (в Dev-C++ где-то было). тогда орфографических ошибок не будет.

поищи статьи на тему "красивый код" "стили написания кода" и т.д.
1
OKS_by_V
1 / 1 / 0
Регистрация: 15.05.2011
Сообщений: 78
12.02.2012, 00:56  [ТС] #5
remarkes,спасибо ..посмотри в ЛС ....помоги с задачкой на списки што то они у меня не идут ....)))

Создать список название продукции, вес единицы, цена единицы продукции, и вывести на печать товары вес которых больше 5 кг..
0
remarkes
303 / 226 / 13
Регистрация: 01.07.2011
Сообщений: 809
Записей в блоге: 1
12.02.2012, 01:21 #6
напиши потом - помогло там, что в ЛС писал, или нет.
0
OKS_by_V
1 / 1 / 0
Регистрация: 15.05.2011
Сообщений: 78
12.02.2012, 01:59  [ТС] #7
Цитата Сообщение от remarkes Посмотреть сообщение
напиши потом - помогло там, что в ЛС писал, или нет.
не виводит если товар kg которого больше 5 идет последним в списке...))и не работает почему то функция void Newel(void)

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#include <stdio.h>
#include <stdlib.h>
 
struct prod
{   char nazvaProd[12];
    int kg,cina ;
    struct prod *nast;
    }; struct prod *element,*pershij,*poperednij,*novyj;
 
void Spysok(void);
void Vuvestu(void);
void Newel(void);
 
int main()
{  
    printf("stvorenya spusky\n");
   printf("dlya zak vvody zmit 0\n");
   Spysok();
 Vuvestu();
 Newel();
 element=pershij;
 novyj->nast=element;
 pershij=novyj;
 printf("new spisok\n");
  Vuvestu();
 
   return 0;  
  }
  void Spysok(void){
       element=malloc(sizeof(struct prod));
       pershij=element;
       do  {
           poperednij=element;
           printf("nazva,vaha v KG,cina 1 Prod\n");
           scanf("%s", element->nazvaProd );
           scanf("%d", &element->kg );
           scanf("%d", &element->cina );
           element->nast=malloc(sizeof(struct prod));
           element=element->nast;
           
           }
           while ( poperednij->cina != 0 );
                poperednij->nast = NULL;
       
       
       }
  
void Vuvestu(void){
      
       printf("stvoremo nev spusok\n");
       element=pershij;
        while(element!=NULL)
       if(element->kg >5) {
                printf("%s\t%d\t%d\n",element->nazvaProd, element->kg, element->cina);
       element=element->nast;
        }
}
      
 
    void Newel(void){
         novyj=malloc(sizeof(struct prod));
           printf("nazva,vaha v KG,cina 1 Prod\n");
           scanf("%s", element->nazvaProd );
           scanf("%d", &element->kg );
           scanf("%d", &element->cina );
         
         }
0
Миниатюры
Return type of 'main' is not `int'  
remarkes
303 / 226 / 13
Регистрация: 01.07.2011
Сообщений: 809
Записей в блоге: 1
12.02.2012, 12:52 #8
хм... я очень тяжело понимаю, что делает твой код, потому как не знаю вашего "польского". Давай проведем небольшой рефакторинг.
Для начала - считается дурным тоном называть имена переменных и функций на родном языке (если это не английский). Тем более без комментариев.
Напиши, пожалуйста, как называются эти объекты, и что ты предполагал с ними делать. также переведи на русский эти "Створения спуски".
C
1
2
3
4
5
6
*element, *pershij, *poperednij, *novyj
void Vuvestu(void);
void Newel(void);
    printf("stvorenya spusky\n");
    printf("dlya zak vvody zmit 0\n");
    printf("nazva,vaha v KG,product_price 1 Prod\n");
после этого мы сделаем понятный код и начнем искать в нем ошибки.
0
OKS_by_V
1 / 1 / 0
Регистрация: 15.05.2011
Сообщений: 78
12.02.2012, 16:50  [ТС] #9
C
1
2
3
4
5
6
*element, *pershij(*на 1-й елемент списка), *poperednij(*на предварительный елемент списка), *novyj  (*на новый елемент списка)
void Vuvestu(void);////вывод
void Newel(void);///новый список
    printf("Создание списка\n");
    printf("Для окончания воду нажмите 0\n");
    printf("nazva,vaha v KG,product_price 1 Prod(Название, вес (в кг) ,цена)\n");
0
remarkes
303 / 226 / 13
Регистрация: 01.07.2011
Сообщений: 809
Записей в блоге: 1
12.02.2012, 20:12 #10
программа во вложенном файле.
я поменял названия объектов (по английски и по контексту).
прога работает, только я не понял - зачем последняя процедура.

объясни, что должна делать твоя программа?
1. мы записываем список продуктов в стек.
2. выводим те, у которых цена больше 5
3. ?? функция input_new_list() - записываем один продукт.
4. выводим его.
т.е. - это так и должна работать программа?
1
Вложения
Тип файла: txt structs2.c.txt (1.7 Кб, 17 просмотров)
OKS_by_V
1 / 1 / 0
Регистрация: 15.05.2011
Сообщений: 78
12.02.2012, 21:56  [ТС] #11
да работает хорошо только вот если добавлять новие зачение в список форма зависает у меня ..возможно ето через while ??
смотри на скрине
0
Миниатюры
Return type of 'main' is not `int'  
remarkes
303 / 226 / 13
Регистрация: 01.07.2011
Сообщений: 809
Записей в блоге: 1
12.02.2012, 22:54 #12
Забыл добавить. Обычно принято освобождать память malloc() (так называемую кучу). Если не освобождать - это приводит к "утечкам памяти". А чтобы указателем нельзя было больше воспользоваться - присваивать NULL.
C
1
2
    free(element); 
    element=NULL;
0
OKS_by_V
1 / 1 / 0
Регистрация: 15.05.2011
Сообщений: 78
12.02.2012, 23:08  [ТС] #13
Цитата Сообщение от remarkes Посмотреть сообщение
Забыл добавить. Обычно принято освобождать память malloc() (так называемую кучу). Если не освобождать - это приводит к "утечкам памяти". А чтобы указателем нельзя было больше воспользоваться - присваивать NULL.
C
1
2
    free(element); 
    element=NULL;

а куда именно добавлять етот код*??
0
remarkes
303 / 226 / 13
Регистрация: 01.07.2011
Сообщений: 809
Записей в блоге: 1
12.02.2012, 23:30 #14
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от OKS_by_V Посмотреть сообщение
а куда именно добавлять етот код*??
ну грубо говоря перед return 0; в main (перед концом программы), но можешь, когда надо.
то есть функцией malloc ты выделяешь память в куче. когда тебе те данные (переменные), которые ты в нее записал, уже не нужны, ты ее должен "освободить".
я вложил файл с измененным кодом.
я таки понял, что должен был делать твой код.
если бы ты сразу рассказал логику кода, было бы быстрее.

ошибки:
в функции input_new_list()
ты выделял память для product_new, а записывал данные в element->

потом присваивание указателей в этом участке (в мейне)
C
1
2
3
4
5
6
7
8
9
    input_new_list();
    
    element=begin_stack;
    
    begin_stack=product_new;     // было       product_new->next=element;
    product_new->next=element; // наоборот begin_stack=product_new;
    
    printf("new List:\n");
    print_list();
Добавил к маллоку приведение к типу структуры:
C
1
element = (struct product *) malloc( sizeof(struct product) );
т.е. (struct product *)
я правда не помню, насколько это принципиально.
вложенная картинка - это терминал, как видишь УМВР (у меня все работает)
1
Миниатюры
Return type of 'main' is not `int'  
Вложения
Тип файла: txt structs2.c.txt (1.9 Кб, 9 просмотров)
12.02.2012, 23:30
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.02.2012, 23:30
Привет! Вот еще темы с ответами:

Почему в одних случаях пишут void main(), а в других случаях int main() {return 1;} - C++
Препод мне доказывает, что void в main`е писать неправильно, а объяснить не может почему. Кто расскажет?)

`main' must return `int' - C++
Почему возникает такая ошибка? И я правильно программу написал? Она должна считать сумму двух чисел! #include &lt;iostream&gt; #include...

Ошибка main' must return 'int' - C++
Line 6: error: '::main' must return 'int' compilation terminated due to -Wfatal-errors!!! Вот задаие::Данная матрица А (4,5), элементы...

int main работает без return - C++ Qt
Здравствуйте! Собственно вопрос относительно темы))) почему компилятор пропускает такое разногласие? так работает... int main(int...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru