2015-07-17 2 views
0

Программа для впускных 3 студентов деталей и предметов (3) знаки иконфликтующие типы для 'Топпер', brnchwise

  1. дисплей ботвы

  2. студентов в отрасли.

Ошибка в том, что конфликтующие типы для «топпер», «brnchwise».

Я определил функции перед их использованием.

#include <stdio.h> 
#include <conio.h> 
#include <string.h> 
#include <stdlib.h> 

struct student 
{ 
    int regno; 
    char brnch[3]; 
    int marks[3]; 
    int avg; 
} s[3]; 

void mainscrn() 
{ 
    int o; 
    char brncho[3]; 
    printf("enter 1. for displaying topper details\n\t 2.for display all students under a branch"); 
    scanf("%d",&o); 
    switch(o) 
    { 
    case 1: 
     system("CLS"); 
     printf("the topper details are:"); 
     topper(); 
     break; 

    case 2: 
     system("CLS"); 
     printf("Enter the brnch"); 
     scanf("%s",&brncho); 
     system("CLS"); 
     brnchwise(); 
     break; 
    default: 
     printf("pls enter a right option"); 
     mainscrn(); 
     break; 
    } 
} 

void topper() 
{ 
    int i,a,count,t=0; 
    for(i=0;i<3;i++) 
    { 
     if(s[i].avg>t) 
     { 
      count=i; 
     } 
    } 
    printf("regno:\t %d\nbranch:\t%s",s[count].regno,s[count].regno); 
    printf("\nPress 0 fo main screen"); 
    scanf("%m",&a); 
    if(a==0) 
    { 
     mainscrn(); 
    } 
} 

void brnchwise() 
{ 
    int a,i; 
    char brncho[3]; 
    printf("the sudents are: \n"); 
    scanf("%s",&brncho); 
    for(i=0;i<3;i++) 
    { 
     if(strcmp(brncho,s[i].brnch)==0) 
     { 
      printf("/n%s",s[i].regno); 
     } 
    } 
    printf("\nPress 0 fo main screen"); 
    scanf("%m",&a); 
    if(a==0) 
    { 
     mainscrn(); 
    } 
} 

int main() 
{ 
    int i,j,t; 
    for(i=0;i<3;i++) 
    { 
     printf("Enter your detils 1.regno,2.brnch,marks"); 

     t=0; 
     scanf("%d%s",&s[i].regno,&s[i].brnch); 
     for(j=0;j<3;j++) 
     { 
      scanf("%d",&s[i].marks[j]); 
      t=t+s[i].marks[j]; 
     } 
     s[i].avg=t; 
    } 
    mainscrn(); 

    return 0; 
} 
+0

Помимо приведенных ниже ответов, следует отметить, что вы забыли '{' после 'ничтожной mainscrn()' , – wOxxOm

ответ

0

При вызове topper() и brnchwise() в mainscrn(), компилятор не видел объявления для них. Поэтому он неявно объявляет для них с возвратом int (в пред-C99). Но фактическое определение противоречит этим. Следовательно, ошибки.

Объявите прототип для них в верхней части исходного файла:

void topper(void); 
void brnchwise(void); 

Примечание «неявный INT» правило было удалено, так как C99 и, таким образом, ваш код недействителен в C99 и выше.

1

Я определил функции перед их использованием.

На самом деле, у вас его нет. topper и brnchwise указаны в mainscrn, и они еще не определены в этой точке. Так как эти функции ссылаются друг на друг, вам нужно добавить декларации для выполнения этих функций:

void topper(void); 
void brnchwise(void); 

void mainscrn(void) 
{ 
    ... 
} 

void topper(void) 
{ 
    ... 
} 

void brnchwise(void) 
{ 
    ... 
} 
Смежные вопросы