c 语言快疯了 救我啊!!

来源:百度知道 编辑:UC知道 时间:2024/05/25 13:35:33
#include<stdio.h>
void main()
{
int a[4][5];
//int *g;g=a[0];
int *p;
for(p=a[0];p<a[0]+20;p++)
{
scanf("%d",p);
printf("\n");
}
void avg(int*,int);
void cha1(int*[],int,int );
void cha2(int*[],int,int );
avg(g,4);
int i;
for(i=0;i<4;i++)
{
cha1(a,5,i);
}
for(i=0;i<4;i++)
{
cha2(a,5,i);//对每个学生进行判断
}
}
void avg(int *p,int n)
{
int s;
for(s=0;p<p+5*n;p+5)
{
s+=*p;
}
printf("第一个学生的平均成绩是%d",s/n);
}
//找出有两门以上课程不及格的学生,输出他们的学号及平均成绩
cha1(int *p[n],int n,int i)
{
int k;//记录不及格的成绩个数
int *m;
m=p[i];//用指向每一行来判断m指的数是不是比60大
for(;p<p+n;p++)
{
for(;m<m+n;m++)
{
if(*m<60)
k++;
}
if(k>2)
{
printf("第%i个学生的成绩有两门成绩不及格\n",i);
//下面输出第i

我想是错的地方太多了,基本上重写算了,或者你说要求让别人写也行。
你看下面合不合要求
#include<stdio.h>
//找出有两门以上课程不及格的学生,输出他们的学号及平均成绩
void cha1(int p[5],int n)
{
int i,m=0,k=0; //记录不及格的成绩个数
for (i=0;i < 5;i++)
{
if(p[i]<60) k++;
m+=p[i];
}
m=m/5;
if (k>1)
{
printf("第%d号学生有两门不合格,平均分为%d\n",n+1,m);
}
}
//找出平均成绩在90分以上或成绩都在85分以上的学生
void cha2 (int p[5], int n) //n是五们成绩,i是第i个学生
{
//计算第i个学生的平均成绩,然后判断
int i,m=0,k=0; //记为平均成绩
for (i=0;i < 5;i++)
{
m+=p[i];
if(p[i]>85) k++;
}
m=m/5;
if (m>90)
printf("第%d个学生成绩在90分以上\n",n+1);
if (k==5)
printf("第%d个学生成绩都在85分以上\n",n+1);
}

void main()
{
int a[4][5];
int *p;
int i,n;
for (i=0;i < 4;i++)
{
printf("请输入第%d学生成绩\n",i+1);