如果它包含“ scanf(”%d“,age)”,为什么我的for循环不起作用]

问题描述 投票:0回答:1

下面是我的代码。

为简单起见,我编写了代码,现在仅接受有关2个朋友的信息。但是问题是我在获取用户输入时的for循环。

仅当我在此处删除此部分时有效

printf("Enter Age: ");
            scanf("%d", friends[a].age);

这里是完整的for循环

for(a=0; a<2; a++) {

        printf("Friend no. %d\n", friends[a].fnum+1);

        printf("Enter Name: ");
            gets(friends[a].name);

        printf("Enter Town: ");
            scanf("%s", friends[a].address);

       printf("Enter Age: ");
            scanf(" %d", friends[a].age);


        printf("Enter Course: ");
            scanf(" %s", friends[a].course);

        printf("Favorite foods! \n");
            printf("Dish:");
                scanf(" %s", friends[a].fav_dish);

            printf("Snack:");
                scanf(" %s", friends[a].fav_snack);

            printf("Drink:");
                scanf(" %s", friends[a].fav_drink);


        printf("\n");
    }

起初,我以为是年龄部分才是问题,所以我最后提出了。但这并没有解决。我也以为是scanf,所以我在scanf(" %s", friends[a].course);中添加了一个空格,但没有任何效果。

我也尝试过this

printf("Enter Age: ");
    scanf(" %d\n ", friends[a].age);

所以我尝试删除

printf("Enter Age: ");
            scanf("%d", friends[a].age);

并且循环继续给朋友2

我机智尽在我该怎么办?

这是我的完整源代码:

#include <string.h>

struct myFriends {

    char name[30];
    char address[20];
    int age;
    char course[20];
    char fav_dish[20], fav_snack[20], fav_drink[20];
    }; struct myFriends friends[2];


int main () {
    int a;

    puts("Please enter the following info for 2 friends");

    for(a=0; a<2; a++) {

        printf("Friend no. %d\n", a+1);

        printf("Enter Name: ");
            scanf("%s", friends[a].name);

        printf("Enter Town: ");
            scanf("%s", friends[a].address);

        printf("Enter Age: ");
            scanf(" %d\n ", friends[a].age);

        printf("Enter Course: ");
            scanf(" %s", friends[a].course);

        printf("Favorite foods! \n");
            printf("Dish:");
                scanf(" %s", friends[a].fav_dish);

            printf("Snack:");
                scanf(" %s", friends[a].fav_snack);

            printf("Drink:");
                scanf(" %s", friends[a].fav_drink);


        printf("\n");
    }

    printf("Here are the details");

    for (a=0; a<2; a++) {
        printf("\n\n Friend no. %d", a+1);

        printf("Name:");
            puts(friends[a].name);

        printf("Town: ");
            puts(friends[a].address);

        printf("Age: ");
            printf("%d", friends[a].age);

        printf("Fave FOODS!: ");
            puts(friends[a].fav_dish);
            puts(friends[a].fav_snack);
            puts(friends[a].fav_drink);
    }

    return 0;


}


c scanf
1个回答
0
投票

听到我添加并标记了scanf中的访问指针,因此请尝试此操作。希望这对您有用

#include <string.h>

struct myFriends {

    char name[30];
    char address[20];
    int age;
    char course[20];
    char fav_dish[20], fav_snack[20], fav_drink[20];
    }; struct myFriends friends[2];


int main () {
    int a;

    puts("Please enter the following info for 2 friends");

    for(a=0; a<2; a++) {
        char name[30];
        char address[20];
        int age;
        char course[20];
        char fav_dish[20], fav_snack[20], fav_drink[20]
        printf("Friend no. %d\n", a+1);

        printf("Enter Name: ");
            scanf("%s", &name);
            friends[a].name=name;
        printf("Enter Town: ");
            scanf("%s", &address);
            friends[a].address=address;
        printf("Enter Age: ");
            scanf(" %d\n ", &age);
            friends[a].age=age;
        printf("Enter Course: ");
            scanf(" %s", &course);
            friends[a].course=course;
        printf("Favorite foods! \n");
            printf("Dish:");
                scanf(" %s", &fav_dish);
                friends[a].fav_dish=fav_dish;
            printf("Snack:");
                scanf(" %s", &fav_snack);
                friends[a].fav_snack=fav_snack;
            printf("Drink:");
                scanf(" %s", &fav_drink);
                friends[a].fav_drink=fav_drink;

        printf("\n");
    }

    printf("Here are the details");

    for (a=0; a<2; a++) {
        printf("\n\n Friend no. %d", a+1);

        printf("Name:");
            puts(friends[a].name);

        printf("Town: ");
            puts(friends[a].address);

        printf("Age: ");
            printf("%d", friends[a].age);

        printf("Fave FOODS!: ");
            puts(friends[a].fav_dish);
            puts(friends[a].fav_snack);
            puts(friends[a].fav_drink);
    }

    return 0;


}
© www.soinside.com 2019 - 2024. All rights reserved.