首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在C编程中,scanf函数跳过for循环中的输入

在C编程中,scanf函数跳过for循环中的输入
EN

Stack Overflow用户
提问于 2016-07-25 19:24:24
回答 1查看 1.4K关注 0票数 0

我已经使用结构化方法编写了简单代码,在代码中,我将字符串(Name)作为输入,使用for循环供3名学生使用。对于第一次迭代,For循环中的每一行都正常工作...但问题出现在第二次迭代中...在第二次迭代中,scanf正在跳过字符串(名称)的输入...

我的代码如下:

代码语言:javascript
运行
复制
#include<stdio.h>

struct student_data
{
    char name[5];
    int dsd;
    int dic;
    int total;  
};

void main()
{
    struct student_data s[3];


    int i;

    for(i = 0;i<3;i++)
    {
        printf("Enter Name of Student\n");
        scanf("%[^\n]",s[i].name);         // Problem occures here in     
                                       //  second iteration  

        printf("\nEnter marks of DSD\n");
        scanf("%d",&s[i].dsd);

        printf("Enter marks of DIC\n");
        scanf("%d",&s[i].dic);


        s[i].total = s[i].dsd+s[i].dic;     

    }

    printf("%-10s %7s %7s  %7s\n ","Name","DSD","DIC","Total");
    for(i=0;i<3;i++)
    {

       printf("%-10s %5d  %6d      %6d\n",s[i].name,s[i].dsd,s[i].dic,s[i].total);
}  

}

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-25 20:24:55

代码的主要问题是您定义了student_data s[2],它是一个大小为2的数组,但在循环中,您正在循环for (i=0; i<3; i++),这对于大小为3的数组是有效的。下面的小修改可以很好地工作:

代码语言:javascript
运行
复制
 int main()
{
struct student_data s[2];  // array of size 2


int i;

for(i=0; i<2; i++)      // i will have values 0 and 1 which is 2 (same as size of your array)
{
    printf("Enter Name of Student\n");
    scanf("%s", s[i].name);

    printf("\nEnter marks of DSD\n");
    scanf("%d", &s[i].dsd);

    printf("Enter marks of DIC\n");
    scanf("%d", &s[i].dic);

    s[i].total = s[i].dsd+s[i].dic;

}

    printf("%-10s %7s %7s  %7s\n ","Name","DSD","DIC","Total");

    for(i=0; i<2; i++)   // same mistake was repeated here
    {
        printf("%-10s %5d  %6d     %6d\n",s[i].name,s[i].dsd,s[i].dic,s[i].total);
    }
return 0;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38566473

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档