输入的数与输出的数不一致
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"); } }