2013-10-07 2 views
0

나는 학생 정보 프로그램을 만들었습니다. 나는 몇 가지 오류를 제거 할 수 있었다 그러나 나는 다음과 같은 컴파일 오류와 함께 붙어있다 지난 몇 일 동안 한 :학생 정보 시스템 컴파일 오류

오류 :

1.c: In function ‘filewrite’: 
     1.c:79:3: warning: format ‘%s’ expects argument of type ‘char *’, but argument 3 has type ‘char (*)[50]’ [-Wformat] 
     1.c: In function ‘fileprint’: 
     1.c:98:6: warning: format ‘%s’ expects argument of type ‘char *’, but argument 4 has type ‘char (*)[50]’ [-Wformat] 
     1.c: In function ‘filesort’: 
     1.c:119:6: warning: format ‘%s’ expects argument of type ‘char *’, but argument 4 has type ‘char (*)[50]’ [-Wformat] 
     1.c: In function ‘rollin’: 
     1.c:164:6: warning: format ‘%s’ expects argument of type ‘char *’, but argument 4 has type ‘char (*)[50]’ [-Wformat] 
     1.c: In function ‘avgmarks’: 
     1.c:193:6: warning: format ‘%s’ expects argument of type ‘char *’, but argument 4 has type ‘char (*)[50]’ [-Wformat] 

CODE :

#include<stdio.h> 

int bubble(int*,int); 
void filewrite(); 
void avgmarks(); 
void fileprint(); 
void filesort(); 
void rollin(); 

/*********************** SORTING FUNCTION ***************************/ 
int bubble(int x[],int n) 
{ 
int hold,j,pass,i,switched = 1; 
for(pass = 0; pass < n-1 && switched == 1;pass++) 
{ 
    switched=0; 
    for (j=0;j<n-pass-1;j++) 
    if (x[j]>x[j+1]) 
    { 
    switched=1; 
    hold = x[j]; 
    x[j] = x[j+1]; 
    x[j+1]=hold; 
    } 
    } 
return(0); 
} 
/*********************** FILE WRITING FUNCTION ******************************/ 
void filewrite() 
{ 
    int roll,ch,mark; 
    char nam[50]; 
    FILE *fp; 
    clrscr(); 
    fp = fopen("student.txt","a"); 
    printf("ENTER ROLL NUMBER, NAME , MARKS \n"); 
    ch =1; 
    while(ch) 
    { 
    scanf("%d%s%d",&roll,&nam,&mark); 
    fprintf(fp,"%d %s %d\n",roll,nam,mark); 
    printf("\n\n press 1 to continue,0 to stop"); 
    scanf("%d",&ch); 
    } 
    fclose(fp) ; 
} 
/******************** OUTPUTING DATA ON SCREEN***************/ 
void fileprint() 
{ 
    int marks[100],rollno[100],x[100],i; 
    char name[100][50]; 
    FILE *fp; 

    clrscr(); 
    fp = fopen("student.txt","r"); 
    i=0; 
    printf("ROLLNO  NAME  MARK\n"); 
    while(!feof(fp)) 
    { 
    fscanf(fp,"%d %s %d\n",&rollno[i],&name[i],&marks[i]); 
    printf(" %d   %s   %d\n",rollno[i],name[i],marks[i]); 
    i=i+1; 
    } 
    fclose(fp); 
    printf("\n\n\nPRESS ANY KEY"); 
    getch(); 

    } 
/******************* SORTING FILE ************************/ 
void filesort() 
    { int marks[100],rollno[100],x[100],n,i,j; 
    char name[100][50]; 
    FILE *fp,*fm; 

    fp = fopen("student.txt","r"); 
    fm = fopen("marks.txt","w"); 
    i=0; 
    while(! feof(fp)) 
    { 

    fscanf(fp,"%d %s %d\n",&rollno[i],&name[i],&marks[i]); 
    x[i]= marks[i]; 
    i=i+1; 
     } 

     n=i; 

     bubble(x,n); 

    for(i=0;i<n;i++) 
    { 
    printf(" %d\t",x[i]); 
    } 

for(i=0;i<n;i++) 
{ 
    for (j=0;j<n;j++) 
    { 
    if(x[i]==marks[j]) 
    { 
     fprintf(fm,"%d %s %d\n",rollno[j],name[j],marks[j]); 
    } 
    } 
} 
    fclose(fm); 
    fclose(fp); 
    printf("\n\n\nPRESS ANY KEY"); 
    getch(); 

} 
/************************* DATA USING ROLLNO***************************/ 
void rollin() 
{ int i,roll,ch,mark,roll1; 
    char nam[50]; 
    FILE *fm; 

    ch=1; 
    while(ch) 
    { clrscr(); 
    fm = fopen("marks.txt","r"); 
    printf(" \n ENTER ROLL NUMBER - "); 
    scanf("%d",&roll1); 
     i=0; 
    while(! feof(fm)) 
    { 
    fscanf(fm,"%d %s %d\n",&roll,&nam,&mark); 
    if(roll1==roll) 
    {printf("\nROLLNO.  NAME  MARKS\n "); 
    printf(" %d   %s   %d\n",roll,nam,mark); 
    break; 
    } 
    else 
    i=i+1; 
     } 
    printf("\n\npress 1 to see student info, 0 to return to main menu\n"); 
    scanf("%d",&ch); 
    fclose(fm); 
    } 



} 

void avgmarks() 
{ 
    int marks[100],rollno[100],n,i; 
    float avg,x; 
    char name[100][50]; 
    FILE *fm; 
    fm = fopen("marks.txt","r"); 
    i=0; 
    while(! feof(fm)) 
    { 

    fscanf(fm,"%d %s %d\n",&rollno[i],&name[i],&marks[i]); 
    x = x + marks[i]; 
    i=i+1; 
     } 
    n = i; 
    avg = x/n; 
    printf("AVERAGE MARKS OF %d STUDENTS ARE - %f ",n,avg); 
    fclose(fm); 
    printf("\n\n\nPRESS ANY KEY"); 
    getch(); 

} 


/**************** FUNC. ENDS************************/ 
void main() 
{ 
    int marks[100],rollno[100],x[100],n,i,j,roll,c,mark,roll1; 
    char name[100][10],nam[50]; 

    while(c!=6) 
    { 
    clrscr(); 
    printf("GIVE CHOICE--\n"); 
    printf(" 1 TO ENTER STUDENT INFO.\n"); 
    printf(" 2 TO SEE STUDENT.TXT FILE\n"); 
    printf(" 3 TO SORT FILE ON BASIS OF MARKS\n"); 
    printf(" 4 TO PRINT STUDENT INFO. USING ROLL NO\n"); 
    printf(" 5 TO FIND AVERAGE OF MARKS\n"); 
    printf(" 6 TO EXIT\n\n--"); 
    scanf("%d",&c); 
    clrscr(); 
    switch(c) 
    { 
    case 1: 
      filewrite(); 
      break; 
    case 2: 
      fileprint(); 
     break; 
    case 3: 
     filesort(); 
     break; 
    case 4: rollin(); 
      break; 
    case 5: avgmarks(); 
      break; 
    case 6: 
      break; 
    default: 
      break; 
    } 
    } 

    } 

답변

3

당신은 돈 ' t는 문자 배열은 "&을"필요

예 :

scanf("%d%s%d", &roll, nam, &mark);

모든 오류가 발생하는 것처럼 보입니다.

'도움이 되길 바랍니다!