注册 登录
编程论坛 C++教室

输入的数与输出的数不一致

zerahfan 发布于 2017-06-19 16:54, 2211 次点击
num那个。输入1输出了一个随机数,不知道怎么回事

程序代码:
#include<stdio.h>
#include<string.h>
#define N 50
#define M 15
void welcome();
void input();
void del();
void devoid();


struct goods

{
    int num[15];
    char name[M];
    char nation[M];
    char sex[M];

}goods[N];


void main()

{
    struct goods st1[50];
    int i, m = 0, a;
    char p;
    FILE *fp;

    printf("添加人员人数。\n");

    scanf("%d", &a);
    if (a <= 0)

        printf("Error\n");

    for (i = 0; i<a; i++)

    {
        printf("请输入成员编号");
        scanf("%d",st1[i].num);
        printf("成员姓名:");
        scanf("%s", goods[i].name);
        printf("成员性别");
        scanf("%s", goods[i].sex);
        printf("成员国籍");
        scanf("%s", goods[i].nation);

    }

    for (i = 0; i<N; i++)//统计人数

    {
        if (strlen(goods[i].name) != 0)

            m++;
    }

    printf("成员编号    姓名     国籍    性别\n");

    fp = fopen("sushe", "wb");

    for (i = 0; i<m; i++)

    {
        fwrite(&goods[i], sizeof(struct goods), 1, fp);

        printf("%d    %s     %s     %s\n",st1[i].num, goods[i].name, goods[i].nation, goods[i].sex);

    }

    fclose(fp);

    welcome();//回到初始界面
    printf("输入Y退出");
    p = getchar();

    if (p == 'y')
        welcome();


}

void welcome()

{

    int c;
    printf("||-------------------------------1为新增成员-------------------------------||\n");
    printf("||-------------------------------2为删除成员-------------------------------||\n");

    printf("现在请您选择操作:\n");
    scanf("%d", &c);
    switch (c)

    {
   
    case 1:input(); break; /*新增成员*/

    case 2:del(); break; /*删除成员*/


    default:printf("输入有误,请重输\n");

    }

}
4 回复
#2
yangfrancis2017-06-19 17:55
goods st1[50]; 试试看行不行
#3
peng8806102017-07-02 15:05
个人认为你这个贴还是发到C板块比较好
#4
Zhigeng2017-08-23 10:43
这里只需要num是个变量就好了  不要用数组
#5
jinanman2017-09-22 17:02
个人认为你这个贴还是发到C板块比较好
1