![]() |
#2
IT男year2013-12-21 17:56
#include <stdio.h>
#include <ctype.h> #define m 2 void input_date(void);//---------------->去掉void void print_date(struct dates wor[m]); void tong_ji(struct dates wor[m]); struct dates{ float a,b,c; char gh[20],name[20],sex[20],date[20]; }wor[m]; int main (void) { printf("****************************************\n"); printf("* I:输入员工工资信息 *\n"); printf("* O:输出员工工资信息 *\n"); printf("* T:输出员工工资统计信息 *\n"); printf("* S:按要求排序后输出员工工资信息 *\n"); printf("* F:按员工号查找并输出其工资信息 *\n"); printf("* D:按员工号查找并删除其工资信息 *\n"); printf("* Q:退出系统 *\n"); printf("****************************************\n"); while(1) { switch(toupper(getchar())) { case 'I':input_date(void);break;//---------------->去掉void case 'O':print_date(wor);break; case 'T':tong_ji(wor);break; case'Q':break; default:return 0;} } } void input_date (struct dates wor[m]) { int i; printf("员工号 姓名 性别 出生日期 岗位工资 补贴总额 代扣总额\n"); for(i=0;i<m;i++) scanf("%s %s %s %s %f %f %f",wor[i].gh,wor[i].name,wor[i].sex,wor[i].date,&wor[i].a,&wor[i].b,&wor[i].c); //--------------------------->c语言中没有字符串类型,只有字符串数组!!!所以“%s”是不对的,如果你给字符串数组赋值的话。你要利用循环语句!!! printf("input finished!\n"); } void print_date (struct dates wor[m]) { int i; printf("员工号 姓名 性别 出生日期 岗位工资 补贴总额 代扣总额\n"); for(i=0;i<m;i++) printf("%s %s %s %s %f %f %f\n",wor[i].gh,wor[i].name,wor[i].sex,wor[i].date,wor[i].a,wor[i].b,wor[i].c); printf("print finished!\n"); } void tong_ji(struct dates wor[m]) { int i,j,max=0; float t; for(i=0;i<m;i++) for(j=i+1;j<m;j++) if(wor[i].a<wor[j].a)max=j; if(i!=max) {t=wor[i].a; wor[i].a=wor[j].a; wor[j].a=t;} printf("最高工资:%f",wor[i].a); } |
#include <stdio.h>
#include <ctype.h>
#define m 2
void input_date(void);
void print_date(struct dates wor[m]);
void tong_ji(struct dates wor[m]);
struct dates{
float a,b,c;
char gh[20],name[20],sex[20],date[20];
}wor[m];
int main (void)
{
printf("****************************************\n");
printf("* I:输入员工工资信息 *\n");
printf("* O:输出员工工资信息 *\n");
printf("* T:输出员工工资统计信息 *\n");
printf("* S:按要求排序后输出员工工资信息 *\n");
printf("* F:按员工号查找并输出其工资信息 *\n");
printf("* D:按员工号查找并删除其工资信息 *\n");
printf("* Q:退出系统 *\n");
printf("****************************************\n");
while(1)
{
switch(toupper(getchar()))
{
case 'I':input_date(void);break;
case 'O':print_date(wor);break;
case 'T':tong_ji(wor);break;
case'Q':break;
default:return 0;}
}
}
void input_date (struct dates wor[m])
{
int i;
printf("员工号 姓名 性别 出生日期 岗位工资 补贴总额 代扣总额\n");
for(i=0;i<m;i++)
scanf("%s %s %s %s %f %f %f",wor[i].gh,wor[i].name,wor[i].sex,wor[i].date,&wor[i].a,&wor[i].b,&wor[i].c);
printf("input finished!\n");
}
void print_date (struct dates wor[m])
{
int i;
printf("员工号 姓名 性别 出生日期 岗位工资 补贴总额 代扣总额\n");
for(i=0;i<m;i++)
printf("%s %s %s %s %f %f %f\n",wor[i].gh,wor[i].name,wor[i].sex,wor[i].date,wor[i].a,wor[i].b,wor[i].c);
printf("print finished!\n");
}
void tong_ji(struct dates wor[m])
{
int i,j,max=0;
float t;
for(i=0;i<m;i++)
for(j=i+1;j<m;j++)
if(wor[i].a<wor[j].a)max=j;
if(i!=max)
{t=wor[i].a;
wor[i].a=wor[j].a;
wor[j].a=t;}
printf("最高工资:%f",wor[i].a);
}