简单说说啊:
#define N 5
#include"string.h"
#include"stdio.h"
struct zg_type
{
char num;
char name[21];
char sex;
char bm;
}s[N];
typedef struct zg_type S;
input(S s[])
{
int i;
for(i=0;i<N;i++)
{
/* printf("请输入工号、姓名、性别、部门\n");
scanf("%5s%5c%5s",s[i].num,s[i].name,&s[i].sex,s[i].bm);
printf("输出");
*/
fflush(stdin);
s[i].num=getchar();
printf("请输入第%d个人的姓名",i+1);
fflush(stdin);
scanf("%s",s[i].name);
printf("请输入第%d个人的性别",i+1);
fflush(stdin);
s[i].sex=getchar();
printf("请输入第%d个人的部门",i+1);
fflush(stdin);
s[i].bm=getchar();
// printf("输出\n");
/*注意蓝色是你原来的代码 红色是我帮你修改的 ,因为scanf是不安全的,每次使用之前尽量先清空stdin区*/
}
}
void print(S s[])
{
int i;
for(i=0;i<N;i++)
printf("输出工号、姓名、性别、部门\n");
printf("%5s %5s %5s %5s",s[i].num,s[i].name,s[i].sex,s[i].bm);
{
printf("输出工号、姓名、性别、部门\n");
printf("%c %s %c %c\n",s[i].num,s[i].name,s[i].sex,s[i].bm);
/*这里你缺少了一个大括号*/
}
}
void sort(S s[])
{
int t,i,j;
for(i=0;i<N-1;i++)
{
for(j=i+1;j<N;j++)
{
if(s[i].num>s[j].num)
{
t=s[i].num;
s[i].num=s[j].num;
s[j].num=t;
}
}
}
for(i=0;i<N;i++)
{
printf("输出工号、姓名、性别、部门\n");
printf("%s %s %c %s",s[i].num,s[i].name,s[i].sex,s[i].bm);
}
}
main()
{
input(s);
print(s);
// sort(s); /*sort 排序有问题 我给你禁用了 sort不能只变化num 其他分量都要跟着替换 选择排序法 有问题*/
}
#define N 5
#include"string.h"
#include"stdio.h"
struct zg_type
{
char num;
char name[21];
char sex;
char bm;
}s[N];
typedef struct zg_type S;
input(S s[])
{
int i;
for(i=0;i<N;i++)
{
/* printf("请输入工号、姓名、性别、部门\n");
scanf("%5s%5c%5s",s[i].num,s[i].name,&s[i].sex,s[i].bm);
printf("输出");
*/
fflush(stdin);
s[i].num=getchar();
printf("请输入第%d个人的姓名",i+1);
fflush(stdin);
scanf("%s",s[i].name);
printf("请输入第%d个人的性别",i+1);
fflush(stdin);
s[i].sex=getchar();
printf("请输入第%d个人的部门",i+1);
fflush(stdin);
s[i].bm=getchar();
// printf("输出\n");
/*注意蓝色是你原来的代码 红色是我帮你修改的 ,因为scanf是不安全的,每次使用之前尽量先清空stdin区*/
}
}
void print(S s[])
{
int i;
for(i=0;i<N;i++)
printf("输出工号、姓名、性别、部门\n");
printf("%5s %5s %5s %5s",s[i].num,s[i].name,s[i].sex,s[i].bm);
{
printf("输出工号、姓名、性别、部门\n");
printf("%c %s %c %c\n",s[i].num,s[i].name,s[i].sex,s[i].bm);
/*这里你缺少了一个大括号*/
}
}
void sort(S s[])
{
int t,i,j;
for(i=0;i<N-1;i++)
{
for(j=i+1;j<N;j++)
{
if(s[i].num>s[j].num)
{
t=s[i].num;
s[i].num=s[j].num;
s[j].num=t;
}
}
}
for(i=0;i<N;i++)
{
printf("输出工号、姓名、性别、部门\n");
printf("%s %s %c %s",s[i].num,s[i].name,s[i].sex,s[i].bm);
}
}
main()
{
input(s);
print(s);
// sort(s); /*sort 排序有问题 我给你禁用了 sort不能只变化num 其他分量都要跟着替换 选择排序法 有问题*/
}