hjx157 2024-03-05 11:21 采纳率: 50%
浏览 3
已结题

c语言scanf获得结构体,并printf

c语言使用scanf 获得结构体 ,在用printf打印出来,但是结果不对


struct student 
    {
        int name;
        int num;
    };
int main()
{
    struct student stu[3];
    int i,j;
    for (i = 0; i < 3; i++)
    {
        scanf("%d%d", &stu[i].name, & stu[i].num);
    }

    for (j = 0; j < 3; j++)
    {
        printf("%d\n ,%d\n", stu[i].name, stu[i].num);
    }
}

img

  • 写回答

4条回答 默认 最新

  • 檀越@新空间 2024-03-05 11:21
    关注

    hjx157 上午好☀️☀️☀️️
    本答案参考ChatGPT-3.5

    在你的代码中,你定义了一个名为struct student的结构体,其中包含了两个整型变量namenum

    main函数中,你声明了一个包含3个struct student类型元素的数组stu,并使用scanf从用户输入中获取namenum的值。

    但是在你的第二个循环中,你在调用printf函数时,错误地使用了变量i而不是变量j来访问数组stu。这导致了错误的输出结果。

    为了解决这个问题,你需要将循环变量j用于访问数组元素,并相应地修正printf函数中的格式字符串。

    修改后的代码如下:

    #include <stdio.h>
    
    struct student 
    {
        int name;
        int num;
    };
    
    int main() {
        struct student stu[3];
        int i, j;
        
        for (i = 0; i < 3; i++)
        {
            scanf("%d%d", &stu[i].name, &stu[i].num);
        }
    
        for (j = 0; j < 3; j++)
        {
            printf("%d\n%d\n", stu[j].name, stu[j].num);
        }
        
        return 0;
    }
    

    这样,你会得到正确的输出结果。

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

报告相同问题?

问题事件

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