G帅T 2023-02-25 15:45 采纳率: 76%
浏览 38
已结题

C语言for循环问题

img


各位帮我看看,为啥我输入三个数它会只有一个数出来

img


我在循环那部分的想法是:当i为0时,j也为0,然后进入判断,在判断那里j与一个相同时候跳出那个循环,之后加一,我给i也加一,就让他进行下一个之后break进行三个,如此下去把stu三个都输出

  • 写回答

2条回答 默认 最新

  • a5156520 2023-02-25 20:03
    关注

    有几方面的原因:

    1、输入的数据与代码的里scanf()位置不匹配,如果以图片里的输入的方式,可以把获取字符串姓名那行放到第二个位置;

    2、输入数据的分隔符错误,因为scanf()里面没有逗号,然后scanf()默认以空格等字符分隔获取数据,所以输入的每行数据以空格间隔即可;

    3、使用循环打印每行输入的数据,j的下标不能匹配到所有的i值,如果一定要使用循环的方式打印每行的数据,可以改为j从0开始,然后匹配到每行的i值后再一次打印每行的数据即可,如果只是单纯的想打印出每行的数据,直接使用下标i变量来打印结构的数据即可。

    
    #include <stdio.h>
    
    struct student{
        
        int age;
        char name[20];
        int id;
        
    };
    
    struct student stu[3];
    
    int main(void){
        
        int i,j;
        for(i=0;i<3;i++){
            
            scanf("%d",&stu[i].age);
            scanf("%s",stu[i].name); //根据图片的输入方式,把姓名放在第一个位置获取输入 
            scanf("%d",&stu[i].id);
            
        //    printf(" %d %d %s\n",stu[i].age,stu[i].id,stu[i].name);
        
        // or     
            for(j=0;j<3;j++){  // 使用循环的方式来匹配i,匹配到i就打印,然后break退出 
                
                
                
                if(j==i){
                    printf("%d ",stu[i].age);
                    printf("%d ",stu[i].id);
                    printf("%s\n",stu[i].name);
                    break;
                }
    //            else if((j+1)==i){
    //                printf("%d ",stu[i].age);
    //                printf("%d ",stu[i].id);
    //                printf("%s\n",stu[i].name);
    //                break;
    //            }else if((j+2)==i){
    //                printf("%d ",stu[i].age);
    //                printf("%d ",stu[i].id);
    //                printf("%s\n",stu[i].name);
    //                break;
    //            }
            }
        }
        
        return 0;
    }
    
    
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月5日
  • 已采纳回答 2月25日
  • 创建了问题 2月25日

悬赏问题

  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?