|
|
20鱼币
文件1:
#include<stdio.h>
#define M 5
#define N 10
int num[M];
double score[N][M];
double ping[N],jun[M];
int r,c;
int main()
{
int i,j;
double h;
void intput(void); // 输入成绩
void aver1(void); // 学生平均成绩
void aver2(void); //课程平均成绩
double zuigao(double array[N][M]); // 最高成句的学号
intput(); //输入成绩,学号
aver1();
aver2();
printf("\n NO. core1 core2 core3 core4 core5\n");
for(i=0;i<N;i++)
{printf("NO.%d",i+1);
for(j=0;j<M;j++)
printf("%8.2f",score[i][j]); //这里score[i][j]编译后全是0.00,为什么
printf("%8.2f\n",ping[i]);
}
printf("\n 平均成绩:");
for(j=0;j<M;j++)
printf("%6.2f",jun[j]);
printf("\n");
h=zuigao(score);
printf("最高是%6.2f,学生号是%d,课程是%d",h,r,c);
return 0;
}
文件2:
extern num[M];
extern score[N][M];
extern ping[N],jun[M];
int r,c;
void intput(void)
{int i,j;
for(i=0;i<N;i++)
{printf("请输入学号和成绩%d:",i+1);
for(j=0;j<M;j++)
scanf("%lf",&score[i][j]); // 输入调试的时候发现score[i][j] 没储存进去
}
}
void aver1(void)
{int i,j;
double s;
for(i=0;i<N;i++)
{
for(j=0,s=0;j<M;j++)
s=s+score[i][j];
ping[i]=s/5.0;
}
}
void aver2(void)
{int i,j;
double s;
for(j=0;j<M;j++)
{ s=0;
for(i=0;i<N;i++)
s=s+score[i][j];
jun[j]=s/10.0;
}
}
double zuigao(double array[N][M])
{double high;
int i,j;
high=array[0][0];
for(i=0;i<N;i++)
for(j=0;j<M;j++)
if(high<array[i][j])
{ high=array[j];
r=i+1;
c=j+1;
}
return high;
编译通过显示错误E:\控制台程序\c0714\c02.c(35) : warning C4244: '=' : conversion from 'double ' to 'int ', possible loss of data[/i][/i][/i][/i][/i][/i][/i][/i][/i]
[i][i][i][i][i][i][i][i][i][i]:\控制台程序\c0714\c02.c(35) : warning C4244: '=' : conversion from 'double ' to 'int ', possible loss of data
但是能编译,输入数据后感觉又没储存到score[j]里,不知道为什么,请注意是2个文件
[/i][/i][/i][/i][/i][/i][/i][/i][/i] |
最佳答案
查看完整内容
1>d:\c++\c文件存储\1234\1234\1.c(13) : warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\stdio.h(306) : 参见“scanf”的声明
说scanf的使用有错!
|