70,020
社区成员




a+=(*(*p+i)+j);
注意,仔细分析这句代码;
是不是应该这样:
a += *(*(p+i)+j);
前面都写对了,到这儿写错了。
代码中变量名定义建议做到见名知意:
#include<stdio.h>
#include<stdlib.h>
void ave(int (*p)[6],int n);
void find(int (*p)[6]);
void les(int (*p)[6]);
void print_all_info(int (*arr)[6], int size);
int main()
{
int a[4][6];
int i,j,n;
printf("请输入他们的学号和成绩:");
for(i=0;i<4;i++)
{
for(j=0;j<6;j++)
scanf("%d",&a[i][j]);
}
print_all_info(a, 4);
ave(a,1);
find(a);
les(a);
system("pause");
return 0;
}
void print_all_info(int (*arr)[6], int size)
{
int i, j;
for (i = 0; i < size; i++) {
for (j = 0; j < 6; j++)
printf("%d ", arr[i][j]);
putchar(10);
}
putchar(10);
}
void ave(int (*p)[6],int n)
{
int b=0;
float t=0;
for(int i=0;i<4;i++)
b+=*(*(p+i)+n);
t=b/5;
printf("第一门的成绩为%.2f \n",t);
}
void find(int (*p)[6])
{
int t=0;
for(int i=0;i<4;i++)
{for(int j=1;j<6;j++)
{if(*(*(p+i)+j)<60)
t++;
}
while(t>=2)
{
for(int j=0;j<6;j++)
printf("%d ",*(*(p+i)+j));
putchar('\n');
t=0;
}
}
}
void les(int (*p)[6])
{
int sum = 0,cnt=0;
float ave = 0;
int i, j;
for(i=0;i<4;i++)
{
for(j=1;j<6;j++)
{
if(*(*(p+i)+j)>=85)
{
cnt++;
}
sum += *(*(p+i)+j);
}
ave = sum/5;
if(cnt >= 5||(ave>=90))
{
printf("cnt = %d ", cnt);
printf("sum = %d ", sum);
printf("ave = %.2f \n", ave);
printf("这个学生是:%d \n",*(*(p+i)));
}
cnt = 0;
sum=0;
}
}