求解c语言类型重定义错误问题! 20
xxx重定义的类型不匹配你好!有段C程序,我不知为啥提示:typemismatchinredeclarationof‘output’请你帮我看下这段程序是个子函数提示是第...
xxx重定义的类型不匹配
你好!有段C程序,我不知为啥提示:type mismatch in redeclaration of ‘output’请你帮我看下这段程序是个子函数提示是第二段中的int i,l,j;有类型重定义错误,但我见得少找不出毛病,望你能帮我改正,找出毛病,多谢了!!!
程序如下:
void output()/*输出数据*/
{int i,j,l; 此处 --> type mismatch in redeclaration of ‘output’
int is;
char *pt;
FILE *fpt;
clrscr();/*输出数据送屏幕*/
printf("%d个学生%d门课程成绩数据如下:/n",n,m);
printf("学号 姓名");
for(j=0;j<m;j++)
printf("%16s",sname[j]);
printf("| 总分 平均分 名词\n");
for(i=0;i<n;i++)
{for(l=0;l<n;l++)
if(sort[l]==l+1)is=l;
printf("%8d%12s",sta[is].num,sta[is].name);
for(j=0;j<m;j++)
printf("%16.2f",sta[is].score[j]);
printf("|%8.2f%8.2f%6d\n",total[is],avs2[is],sort[is]);
}
printf(" 课程平均分");
for(j=0;j<m;j++)
printf("%16.2f",avs1[j]);
printf("\n");
printf(" 方差 ");
for(j=0;j<m;j++)
printf("%16.2f",sus1[j]);
printf("%16.2f\n",sus2);
pt="STUDENT.DAT";/*输出数据送磁盘*/
if((fpt=fopen(pt,"wb"))==NULL)
{printf("文件建立错误!");
exit(0);
}
fwrite(&n,2,1,fpt);
fwrite(&m,2,1,fpt);
fwrite(sname,16,m,fpt);
for(i=0;i<n;i++)
{fwrite(&sta[i],sizeof(struct stt),1,fpt);
fwrite(&total[i],4,1,fpt);
fwrite(&avs2[i],4,1,fpt);
fwrite(&sort[i],2,1,fpt);
}
fwrite(avs1,4,m,fpt);
fwrite(&sus2,4,1,fpt);
fclose(fpt);
}
#include"stdio.h"
#include"math.h"
#define N 100
#define M 30
void input();
void asfun();
void tasfun();
void sortfun();
void outfun();
int n,m;
struct stt
{int num;
char *name;
float score[M];
}sta[N];
char sname[M][16];
float avs1[M],sus1[M];
float total[N],avs2[N],sus2;
int sort[N];
main()/*主控函数*/
{clrscr();
input();
asfun();
tasfun();
sortfun();
output();
}
这是前面的全局变量,没问题,问题就在那个子函数! 展开
你好!有段C程序,我不知为啥提示:type mismatch in redeclaration of ‘output’请你帮我看下这段程序是个子函数提示是第二段中的int i,l,j;有类型重定义错误,但我见得少找不出毛病,望你能帮我改正,找出毛病,多谢了!!!
程序如下:
void output()/*输出数据*/
{int i,j,l; 此处 --> type mismatch in redeclaration of ‘output’
int is;
char *pt;
FILE *fpt;
clrscr();/*输出数据送屏幕*/
printf("%d个学生%d门课程成绩数据如下:/n",n,m);
printf("学号 姓名");
for(j=0;j<m;j++)
printf("%16s",sname[j]);
printf("| 总分 平均分 名词\n");
for(i=0;i<n;i++)
{for(l=0;l<n;l++)
if(sort[l]==l+1)is=l;
printf("%8d%12s",sta[is].num,sta[is].name);
for(j=0;j<m;j++)
printf("%16.2f",sta[is].score[j]);
printf("|%8.2f%8.2f%6d\n",total[is],avs2[is],sort[is]);
}
printf(" 课程平均分");
for(j=0;j<m;j++)
printf("%16.2f",avs1[j]);
printf("\n");
printf(" 方差 ");
for(j=0;j<m;j++)
printf("%16.2f",sus1[j]);
printf("%16.2f\n",sus2);
pt="STUDENT.DAT";/*输出数据送磁盘*/
if((fpt=fopen(pt,"wb"))==NULL)
{printf("文件建立错误!");
exit(0);
}
fwrite(&n,2,1,fpt);
fwrite(&m,2,1,fpt);
fwrite(sname,16,m,fpt);
for(i=0;i<n;i++)
{fwrite(&sta[i],sizeof(struct stt),1,fpt);
fwrite(&total[i],4,1,fpt);
fwrite(&avs2[i],4,1,fpt);
fwrite(&sort[i],2,1,fpt);
}
fwrite(avs1,4,m,fpt);
fwrite(&sus2,4,1,fpt);
fclose(fpt);
}
#include"stdio.h"
#include"math.h"
#define N 100
#define M 30
void input();
void asfun();
void tasfun();
void sortfun();
void outfun();
int n,m;
struct stt
{int num;
char *name;
float score[M];
}sta[N];
char sname[M][16];
float avs1[M],sus1[M];
float total[N],avs2[N],sus2;
int sort[N];
main()/*主控函数*/
{clrscr();
input();
asfun();
tasfun();
sortfun();
output();
}
这是前面的全局变量,没问题,问题就在那个子函数! 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询