我的程序不出结果,不知道为什么,求高手解答,谢谢了
#include<stdio.h>
int main()
{
void average1(float *p1);
void fail(float *p1);
//void good();
float a[4][5];
float *p1;
int i,j;
printf("score:\n");
for(i=0;i<4;i++)
for(j=0;j<5;j++)
scanf("%d",&a[i][j]);
p1=&a[0][0];
average1(p1);
fail(p1);
return 0;
}
void average1(float *p1)
{
int i;
float sum=0.0;
float average1;
for(i=0;i<4;i++)
sum=sum+(*(p1+5*i));
average1=sum/4;
printf("第一门课的平均成绩:%7.2f\n",average1);
}
void fail(float *p1)
{
int i,j,label=0;
float sum1=0.0;
for(i=0;i<4;i++)
{
for(j=0;j<5;j++)
sum1=sum1+(*(p1+5*i+j));
if(*(p1+5*i+j)<60) label++;
if(label>=2)
{
printf("%d\n",i);
printf("这个学生平均成绩是%7.2f",sum1/5);
}
}
}
还是直接上代码:程序存在的问题:
一、函数声明一般是放到主函数的前边;
二、关于for循环的使用不是很规范,建议就算是只有一行代码也要用花括号括起来
三、我测试发现根本就是没有把相应的值存储到数组里面,吧%d改成%f
四、关于二位数组的指针(你是用一维的指针来实现二维的功能)你的用法没有错,但还是建议如我程序里面的形式使用
#include<stdio.h>