cfcys‖XDU 2021-10-23 23:24 采纳率: 0%
浏览 33

结构数组的定义和引用中出现的循环错误

我在做书上的练习要求为输入5个学生的基本信息,然后将学号最大的输入的屏幕端
这是我的代码

#include <stdio.h>
#include <string.h> 
struct STU{
    char name[200];
    int age;
    char sex;
    char num[20];
};
void OutputSTU(struct STU stu[5]);
int main(void)
{
    int i;
    struct STU stu[5];
    for(i=0;i<5;i++){
        printf("请输入第%d个学生的信息:\n",i+1);
        scanf("%s%d% c%s",stu[i].name,&stu[i].age,&stu[i].sex,&stu[i].num);
    }
    OutputSTU(stu);
    return 0;
}
void OutputSTU(struct STU stu[5])
{
    struct STU stumax=stu[0];//函数中借用一个暂时的stumax变量 
    int j;
    for(j=1;j<5;++j){
        if(strcmp(stumax.num,stu[j].num) < 0){
            stumax=stu[j];
        }
    }
    printf("姓名:%s\n年龄:%d\n性别:%c\n学号:%s\n",stumax.name,&stumax.age,stumax.sex,stumax.num);
    return 0;
}

当我运行时出现了这样的问题,如图:

img


输入完第一和第二个之后发现第三和第四的printf一块打印了出来
我不理解这是怎么回事
同时这是我的warning:
[Warning] 'return' with a value, in function returning void

  • 写回答

2条回答 默认 最新

  • 小小黑¥¥¥ 2021-10-23 23:46
    关注

    warning : 删除最后面的return 0; 第31行
    你在main函数的for方法里面加一个while(getchar()!='\n')
    清除一下缓冲

    评论

报告相同问题?

问题事件

  • 创建了问题 10月23日

悬赏问题

  • ¥15 如何在ns3中实现路径的自由切换
  • ¥20 SpringBoot+Vue3
  • ¥15 IT从业者的调查问卷
  • ¥65 LineageOs-21.0系统编译问题
  • ¥30 关于#c++#的问题,请各位专家解答!
  • ¥15 App的会员连续扣费
  • ¥15 不同数据类型的特征融合应该怎么做
  • ¥15 用proteus软件设计一个基于8086微处理器的简易温度计
  • ¥15 用联想小新14Pro
  • ¥15 multisim中关于74ls192n和DSWPK开关仿真图分析(减法计数器)