C语言,这个编程为什么能输入,不能输出?请帮我看看,改正确。拜托。
#include<stdio.h>#defineSTD_NUM2//学生人数enumE_Sex{MAIL,//0FEMAIL//1};typedefenumE_SexES...
#include <stdio.h>
#define STD_NUM 2 //学生人数
enum E_Sex{
MAIL, //0
FEMAIL //1
};
typedef enum E_Sex ESex; //类型别名
char SexStr[2][7]={
"MAIL",
"FEMAIL"
};
struct ST_Date{
int brithdate;
};
typedef struct ST_Date TDate;
struct ST_student{
int Num;
ESex TypeID;
char name;
};
typedef struct ST_student Tstudent;
void F_InputData(Tstudent* pS,TDate* tS);
void F_InputData(Tstudent* pS,TDate* tS){
int k;
printf("输入学号和,姓名,性别,生日,样例如下:\n");
printf("201601 黎明 1 19981223回车\n");
for(k = 0; k < STD_NUM; k++){
scanf("%d", &(pS[k].Num) );
scanf("%s", &(pS[k].name) );
scanf("%s", &(pS[k].TypeID) );
scanf("%d", &(tS[k].brithdate) );
}
}
void F_PrintReport(Tstudent* pS,TDate* tS);
void F_PrintReport(Tstudent* pS,TDate* tS){
int k;
//报表表头
printf(" 学生信息管理\n");
printf("---------------------------------------\n");
printf("%-6s ", " 学号");
printf("%-5s ", " 姓名");
printf("%-5s ", " 性别");
printf("%7s \n", "生日");
printf("---------------------------------------\n");
//内容和统计
for(k = 0; k < STD_NUM; k++) {
printf("%d\t ", pS[k].Num);
printf("%s\t ", pS[k].name);
printf("%s\t ",SexStr[pS[k].TypeID]);
printf("%d\n ", tS[k].brithdate);
}
//表尾部
printf("---------------------------------------\n");
}
int main(int argc, char *argv[]){
Tstudent S[STD_NUM]; //定义一个学生对象(变量)
TDate n[STD_NUM];
F_InputData(S,n); //输入数据(参数是对象数组的入口地址)
F_PrintReport(S,n); //输出报表(参数是对象数组的入口地址)
return 0;
} 展开
#define STD_NUM 2 //学生人数
enum E_Sex{
MAIL, //0
FEMAIL //1
};
typedef enum E_Sex ESex; //类型别名
char SexStr[2][7]={
"MAIL",
"FEMAIL"
};
struct ST_Date{
int brithdate;
};
typedef struct ST_Date TDate;
struct ST_student{
int Num;
ESex TypeID;
char name;
};
typedef struct ST_student Tstudent;
void F_InputData(Tstudent* pS,TDate* tS);
void F_InputData(Tstudent* pS,TDate* tS){
int k;
printf("输入学号和,姓名,性别,生日,样例如下:\n");
printf("201601 黎明 1 19981223回车\n");
for(k = 0; k < STD_NUM; k++){
scanf("%d", &(pS[k].Num) );
scanf("%s", &(pS[k].name) );
scanf("%s", &(pS[k].TypeID) );
scanf("%d", &(tS[k].brithdate) );
}
}
void F_PrintReport(Tstudent* pS,TDate* tS);
void F_PrintReport(Tstudent* pS,TDate* tS){
int k;
//报表表头
printf(" 学生信息管理\n");
printf("---------------------------------------\n");
printf("%-6s ", " 学号");
printf("%-5s ", " 姓名");
printf("%-5s ", " 性别");
printf("%7s \n", "生日");
printf("---------------------------------------\n");
//内容和统计
for(k = 0; k < STD_NUM; k++) {
printf("%d\t ", pS[k].Num);
printf("%s\t ", pS[k].name);
printf("%s\t ",SexStr[pS[k].TypeID]);
printf("%d\n ", tS[k].brithdate);
}
//表尾部
printf("---------------------------------------\n");
}
int main(int argc, char *argv[]){
Tstudent S[STD_NUM]; //定义一个学生对象(变量)
TDate n[STD_NUM];
F_InputData(S,n); //输入数据(参数是对象数组的入口地址)
F_PrintReport(S,n); //输出报表(参数是对象数组的入口地址)
return 0;
} 展开
展开全部
ESex TypeID; //这个可改成 int TypelD
scanf("%s", &(pS[k].TypeID) ); //再将%s改成%d ,这样就可以完成你想用的那种方式
还有一处错误就是 生日输入类似 19981212 超过整型范围 可改成字符。
#include <stdio.h>
#define STD_NUM 2 //学生人数
enum E_Sex{
MAIL, //0
FEMAIL //1
};
typedef enum E_Sex ESex; //类型别名
char SexStr[2][7]={
"MAIL",
"FEMAIL"
};
struct ST_Date{
char brithdate[10];
};
typedef struct ST_Date TDate;
struct ST_student{
int Num;
int TypeID;
char name[10];
};
typedef struct ST_student Tstudent;
void F_InputData(Tstudent* pS,TDate* tS);
void F_InputData(Tstudent* pS,TDate* tS){
int k;
printf("输入学号和,姓名,性别,生日,样例如下:\n");
printf("201601 黎明 1 19981223回车\n");
for(k = 0; k < STD_NUM; k++){
scanf("%d", &(pS[k].Num) );
scanf("%s", &(pS[k].name) );
scanf("%d", &(pS[k].TypeID) );
scanf("%s", &(tS[k].brithdate) );
}
}
void F_PrintReport(Tstudent* pS,TDate* tS);
void F_PrintReport(Tstudent* pS,TDate* tS){
int k;
//报表表头
printf(" 学生信息管理\n");
printf("---------------------------------------\n");
printf("%-6s ", " 学号");
printf("%-5s ", " 姓名");
printf("%-5s ", " 性别");
printf("%7s \n", "生日");
printf("---------------------------------------\n");
//内容和统计
for(k = 0; k < STD_NUM; k++) {
printf("%d\t ", pS[k].Num);
printf("%s\t ", pS[k].name);
printf("%s\t ",SexStr[pS[k].TypeID]);
printf("%s\n ", tS[k].brithdate);
}
//表尾部
printf("---------------------------------------\n");
}
int main(int argc, char *argv[]){
Tstudent S[STD_NUM]; //定义一个学生对象(变量)
TDate n[STD_NUM];
F_InputData(S,n); //输入数据(参数是对象数组的入口地址)
F_PrintReport(S,n); //输出报表(参数是对象数组的入口地址)
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询