首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

新手,各位老师们进来帮帮忙

2013-09-29 
新手求助,各位老师们进来帮帮忙每个学生输入四科成绩,输出每个学生最高成绩,运行结果不对,我也不知道哪错

新手求助,各位老师们进来帮帮忙
每个学生输入四科成绩,输出每个学生最高成绩,运行结果不对,我也不知道哪错了,老师们帮忙看看

#include<stdio.h>
main()
{
int a[3][4],max=0;
int i,j,(*p)[4];
for(i=1,p=a;p<a+3;i++,p++){
printf("请输入学生%d的各科成绩:",i);
for(j=0;j<4;j++){
scanf("%d",&(*p)[j]);
}
}
for(i=0;i<3;i++){
printf("学生%d的最高成绩为",i+1);
for(j=0;j<4;j++){
if(max<*(*(p+i)+j))
max=*(*(p+i)+j);
}
printf("%d\n",max);
max=0;
}
}
c
[解决办法]
max<*(*(p+i)+j)

第一个for循环已经将指针p改变,即指向了a[3];
第二个for循环直接就能用???

for(i=0;i<3;i++)  改成 for(i=0,p=a;i<3;i++)
[解决办法]

    #include<stdio.h>
    main()
    {
    int a[3][4],max=0;
    int i,j,(*p)[4];
    for(i=1,p=a;p<=a[3];i++,p++){
    printf("请输入学生%d的各科成绩:",i);
    for(j=0;j<4;j++){
    scanf("%d",&(*p)[j]);
    }
    }
    for(i=0;i<3;i++){
    printf("学生%d的最高成绩为",i+1);
    for(j=0,p=a;j<4;j++){ //p已改变,要重新赋值
    if(max<*(*(p+i)+j))
    max=*(*(p+i)+j);
    }
    printf("%d\n",max);
    max=0;
    }
    }

[解决办法]
for(i=1,p=a;p<=a[3];i++,p++)
你的P++之后难道p还会指向a[1]吗?,p所指向的地址已被你改变了

热点排行