当前位置:编程学习 > C/C++ >>

(C语言)有四个警告warning C4033: 'main' must return a value,不能出运行结果,请帮忙看下

#include<stdio.h> #include<string.h> struct student { char no[10],name[10],易做图[4]; float t[4],ave; } main() { FILE *fp1; int i,k,j; float sum; struct student z; struct student b[3]; struct student w[3]; struct student s[3]={{"100101","阎 旭","男",88,92,78,86},{"100102","王珊珊","女",78,95,76,87},{"100103","姚彦兆","男",82,89,86,90}}; if((fp1=fopen("d:\\student.dat","wb"))==NULL) { printf("file can not open!\n"); return; } for(i=0;i<3;i++) { fwrite(&s[i],sizeof(s),1,fp1); } fclose(fp1); if((fp1=fopen("d:\\student.dat","rb"))==NULL) { printf("file can not open!\n"); return; } for(i=0;i<3;i++) { fread(&b[i],sizeof(s),1,fp1); } fclose(fp1); printf("\n"); for(i=0;i<3;i++) printf("%s%s%s%.2f%.2f%.2f%.2f",b[i].no,b[i].name,b[i].易做图,b[i].t[0],b[i].t[1],b[i].t[2],b[i].t[3]); for(i=0;i<3;i++) { sum=0; for(j=0;j<4;j++) { sum=sum+s[i].t[j]; } s[i].ave=sum/4; } for(i=1;i<3;i++) { k=i; for(j=k+1;j<3;j++) { if(s[j].ave>s[k].ave) k=j; } if(k!=j) { z=s[i]; s[i]=s[k]; s[k]=z; } } if((fp1=fopen("d:\\stusort.dat","wb"))==NULL) { printf("file can not open!\n"); return; } for(i=0;i<3;i++) { fwrite(&s[i],sizeof(s),1,fp1); } fclose(fp1); if((fp1=fopen("d:\\stusort.dat","rb"))==NULL) { printf("file can not open!\n"); return; } for(i=0;i<3;i++) { fread(&w[i],sizeof(s),1,fp1); } fclose(fp1); printf("\n"); for(i=0;i<3;i++) printf("%s%s%s%.2f%.2f%.2f%.2f%.2f",w[i].no,w[i].name,w[i].易做图,w[i].t[0],w[i].t[1],w[i].t[2],w[i].t[3],w[i].ave); }
追问:加上之后,错误出现啊也不对啊,现在变成错误了……
答案:int main()            /*声明返回int*/
{
.......

return 0;             /*main 最后返回0*/
}
其他:void main(void) 你还没有明白函数的定义:
返回值        函数名   参数
int              fun       ( int a )
你的返回值声明了什么类型,return时的类型必须相同
void main(void)
{
    return 0;
}
上面的返回值和声明的不同,所以会报错,你可以改为
int main(void)
{
 return 0;
}
或
void main(void)
{
 return;
}

上一个:急求c语言详解,关于for语句的嵌套
下一个:C语言小问题 在线等

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,