原来是我错付了 发表于 2022-12-3 11:35:01

为什么加了最后的for就不能输出了

#include<stdio.h>
int main()
{
        int a,b={0},c={0};
        int (*p)=a;
        int i,j,sum=0,js1,rs=0,js=0;
        float pj1;
        for(i=0;i<5;i++)
        {
                for(j=0;j<4;j++)
                {
                        scanf("%d",&*(*(p+i)+j));
                }
        }
        for(i=0;i<5;i++)    //第一组
        {
                sum+=**(p+i);
        }
                                                       // printf("%.1f",sum*1.0/5);
        for(i=0;i<5;i++)   //第二组
        {
                js1=0;
                for(j=0;j<4;j++)
                {
                        if( *(*(p+i)+j) <60) js1++;
                }
                if(js1>=2) rs++;
        }
                                                          //printf("%d",rs);
        for(i=0;i<5;i++) //第三组
        {
                pj1=0;
                for(j=0;j<4;j++)
                {
                        pj1+=1.0/4*(*(*(p+i)+j));
                }
                if(pj1>=90) b=1;
        }
        for(i=0;i<5;i++)
        {
                for(j=0;j<4;j++)
                {
                        if(*(*(p+i)+j) >=85) c=1;
                        else
                        { c=0; break;}
                }
        }
        /*for(i=0;i<5;i++)
        {
                if(b||c) js++;
        }*/
        printf("%.1f %d %d",sum*1.0/5,rs,js);
        return 0;
       
}
输入5个学生,4门课成绩,二维数组stu表示,行标表示学生,列标表示课程成绩,
(1)求第一门课的平均分;
(2)统计有2门以上(含2门)课程不及格的同学人数;
(3)平均成绩在90分以上(含90分)或者全部课程成绩在85分以上(含85分)的同学视为优秀,统计人数,


加了最后的for就输出不了,不加就可以输出但(3)没有完成。

zhangjinxuan 发表于 2022-12-3 11:57:30

第一张图片好像是报错了

zhangjinxuan 发表于 2022-12-3 12:03:43

本帖最后由 zhangjinxuan 于 2022-12-3 12:06 编辑

我这边并没有问题,最后的一个循环加上没有错的:
#include<stdio.h>
int main()
{
      int a,b={0},c={0};
      int (*p)=a;
      int i,j,sum=0,js1,rs=0,js=0;
      float pj1;
      for(i=0;i<5;i++)
      {
                for(j=0;j<4;j++)
                {
                        scanf("%d",&*(*(p+i)+j));
                }
      }
      for(i=0;i<5;i++)    //第一组
      {
                sum+=**(p+i);
      }
                                                         // printf("%.1f",sum*1.0/5);
      for(i=0;i<5;i++)   //第二组
      {
                js1=0;
                for(j=0;j<4;j++)
                {
                        if( *(*(p+i)+j) <60) js1++;
                }
                if(js1>=2) rs++;
      }
                                                          //printf("%d",rs);
      for(i=0;i<5;i++) //第三组
      {
                pj1=0;
                for(j=0;j<4;j++)
                {
                        pj1+=1.0/4*(*(*(p+i)+j));
                }
                if(pj1>=90) b=1;
      }
      for(i=0;i<5;i++)
      {
                for(j=0;j<4;j++)
                {
                        if(*(*(p+i)+j) >=85) c=1;
                        else
                        { c=0; break;}
                }
      }
      for(i=0;i<5;i++)
      {
                if(b||c) js++;
      }
      printf("%.1f %d %d",sum*1.0/5,rs,js);
      return 0;
      
}
程序输出:
80.2 2 2

lxping 发表于 2022-12-3 12:05:37

学习下

lxping 发表于 2022-12-3 12:06:58

还没学这个呢

lxping 发表于 2022-12-3 12:07:28

谢谢楼主的币{:5_109:}

jhq999 发表于 2022-12-3 12:07:38

#include<stdio.h>
int main()
{
      int a,b={0},c={0};
      int (*p)=a;
      int i,j,js1,rs=0,js=0;
      float sum=0,pj1;
      for(i=0;i<5;i++)
      {
                for(j=0;j<4;j++)
                {
                        scanf("%d",*(p+i)+j);
                }
      }
      for(i=0;i<4;i++)
      {
            sum=0;
            for(j=0;j<5;j++)    //第一组
      {
                sum+=*(*(p+j)+i);
      }
            printf("%.1f",sum*1.0/5);
          }
          printf("\n");                                          // printf("%.1f",sum*1.0/5);
      for(i=0;i<5;i++)   //第二组
      {
                js1=0;
                for(j=0;j<4;j++)
                {
                        if( *(*(p+i)+j) <60) js1++;
                }
                if(js1>=2) rs++;
      }
      printf("%d\n",rs);
      rs=0;
      for(i=0;i<5;i++)   //第三组
      {
                sum=0;
                js1=0;
                for(j=0;j<4;j++)
                {
                        if( *(*(p+i)+j) >=90) js1++;
                        sum+=*(*(p+i)+j);
                }
                if(sum/4>=85) rs++;
                else if(js1>=2)rs+=1;
      }
      printf("%d\n",rs);
      return 0;

}
85 93 59 92
93 95 89 88
86 88 88 87
59 51 52 68
78 32 59 91
80.271.869.485.2
2
3

Process returned 0 (0x0)   execution time : 5.078 s
Press any key to continue.

zhangjinxuan 发表于 2022-12-3 12:32:01

你维度记反了,第一维应该是每个学生,第二维才是成绩
#include<stdio.h>
int main()
{
      int a,b={0},c={0};
      int (*p)=a;
      int i,j,sum=0,js1,rs=0,js=0;
      float pj1;
      for(i=0;i<5;i++)
      {
                for(j=0;j<4;j++)
                {
                        scanf("%d",&*(*(p+i)+j));
                }
      }
      for(i=0;i<5;i++)    //第一组
      {
                sum+=**(p+i);
      }
                                                         // printf("%.1f",sum*1.0/5);
      for(i=0;i<5;i++)   //第二组
      {
                js1=0;
                for(j=0;j<4;j++)
                {
                        if( *(*(p+i)+j) <60) js1++;
                }
                if(js1>=2) rs++;
      }
                                                          //printf("%d",rs);
      for(i=0;i<5;i++) //第三组
      {
                pj1=0;
                for(j=0;j<4;j++)
                {
                        pj1+=1.0/4*(*(*(p+i)+j));
                }
                if(pj1>=90) b=1;
      }
      for(i=0;i<5;i++)
      {
                for(j=0;j<4;j++)
                {
                        if(*(*(p+i)+j) >=85) c=1;
                        else
                        { c=0; break;}
                }
      }
      for(i=0;i<5;i++)
      {
                if(b||c) js++;
      }
      printf("%.1f %d %d",sum*1.0/5,rs,js);
      return 0;
      
}

zhangjinxuan 发表于 2022-12-3 12:32:35

jhq999 发表于 2022-12-3 12:07


啊,总是有人比我早点{:10_282:}

jhq999 发表于 2022-12-3 12:38:10

zhangjinxuan 发表于 2022-12-3 12:32
啊,总是有人比我早点

{:5_109:},习惯就好,jackz007才是快
页: [1]
查看完整版本: 为什么加了最后的for就不能输出了