题目3 假设某单位有10人,职工工资表如下所示,要求奖金按以下条件给出:(1)中级职称的奖金是该职工工资的40%;(2) 高级职称的奖金是该职工工资的60%;(3) 初级职称的奖金是该职工工资的30%。
方法一:
#include"stdio.h"
#include"string.h"
main()
{int i;
char c[20];
float a[10][3];a[0][0]=1024.56;a[1][0]=1102.41;a[2][0]=812.27;a[3][0]=1589.35;
a[4][0]=1638.47;a[5][0]=1017.59;a[6][0]=789.35;a[7][0]=1687.69;a[8][0]=1024.25;
a[9][0]=1815.27;
printf("请输入教师职称;“工程师、会计师、助工、高工、高会”\n");
for(i=0;i<5;i++) /*实现根据不同职称计算奖金及总收入的功能*/
{ gets(c);
if(strcmp(c,"工程师")==0)
{ a[0][1]=a[0][0]*0.4;a[0][2]=a[0][0]+a[0][1];
a[8][1]=a[8][0]*0.4;a[8][2]=a[8][0]+a[8][1]; }
else if(strcmp(c,"会计师")==0)
{ a[1][1]=a[1][0]*0.4;a[1][2]=a[1][0]+a[1][1];
a[5][1]=a[5][0]*0.4;a[5][2]=a[5][0]+a[5][1];}
else if(strcmp(c,"助工")==0)
{a[2][1]=a[2][0]*0.3;a[2][2]=a[2][0]+a[2][1];
a[6][1]=a[6][0]*0.3;a[6][2]=a[6][0]+a[6][1];}
else if(strcmp(c,"高工")==0)
{ a[3][1]=a[3][0]*0.6;a[3][2]=a[3][0]+a[3][1];
a[7][1]=a[7][0]*0.6;a[7][2]=a[7][0]+a[7][1];
}
else if(strcmp(c,"高会")==0)
{a[4][1]=a[4][0]*0.6;a[4][2]=a[4][0]+a[4][1];
a[9][1]=a[9][0]*0.6;a[9][2]=a[9][0]+a[9][1];} }
system("cls"); /*清除上述显示,输出工资表*/
printf(" 职工号 职称 工资 奖金 总收入\n");
printf(" ----------------------------------------------\n");
printf(" A1101 工程师 %-6.2f %-6.2f %-6.2f\n",a[0][0],a[0][1],a[0][2]);
printf(" ----------------------------------------------\n");
printf(" B1014 会计师 %-6.2f %-6.2f %-6.2f\n",a[1][0],a[1][1],a[1][2]);
printf(" ----------------------------------------------\n");
printf(" B1016 助工 %-6.2f %-6.2f %-6.2f\n",a[2][0],a[2][1],a[2][2]);
printf(" ----------------------------------------------\n");
printf(" A1105 高工 %-6.2f %-6.2f %-6.2f\n",a[3][0],a[3][1],a[3][2]);
printf(" ----------------------------------------------\n");
printf(" B1019 高会 %-6.2f %-6.2f %-6.2f\n",a[4][0],a[4][1],a[4][2]);
printf(" ----------------------------------------------\n");
printf(" A1115 会计师 %-6.2f %-6.2f %-6.2f\n",a[5][0],a[5][1],a[5][2]);
printf(" ----------------------------------------------\n");
printf(" A1117 助工 %-6.2f %-6.2f %-6.2f\n",a[6][0],a[6][1],a[6][2]);
printf(" ----------------------------------------------\n");
printf(" B1024 高工 %-6.2f %-6.2f %-6.2f\n",a[7][0],a[7][1],a[7][2]);
printf(" ----------------------------------------------\n");
printf(" A1124 工程师 %-6.2f %-6.2f %-6.2f\n",a[8][0],a[8][1],a[8][2]);
printf(" ----------------------------------------------\n");
printf(" B1028 高会 %-6.2f %-6.2f %-6.2f\n",a[9][0],a[9][1],a[9][2]);
printf(" ----------------------------------------------\n");
}
程序效果图如下;
方法二
#include"stdio.h"
#include"string.h"
main()
{int i,j,k=0,m=0,w=0;
char b[20],c[20];
float a[10][3];
a[0][0]=1024.56;a[1][0]=1102.41;a[2][0]=812.27;a[3][0]=1589.35;
a[4][0]=1638.47;a[5][0]=1017.59;
a[6][0]=789.35;a[7][0]=1687.69;a[8][0]=1024.25;a[9][0]=1815.27;
printf("请输入各教职工职称代码;1,2,3,4,5,6,7,8,9,1o\n");
for(i=0;i<5+k+m+w;i++)
{gets(b);
if((strcmp(b,"1")!=0)&&(strcmp(b,"2")!=0)&&(strcmp(b,"3")!=0)&&(strcmp(b,"4")!=0)&&(strcmp(b,"5")!=0)&&(strcmp(b,"6")!=0)&&(strcmp(b,"7")!=0)&&(strcmp(b,"8")!=0)&&(strcmp(b,"9")!=0)&&(strcmp(b,"10")!=0))
{printf("wrong!!\n");printf("只接受1-10表示的字符,请重新输入!!\n");k++;getch();system("cls");printf("请输入各教职工职称代码;1,2,3,4,5,6,7,8,9,1o\n");continue;}
else if(strcmp(b,"1")==0) {a[0][1]=a[0][0]*0.4;a[0][2]=a[0][1]+a[0][0];}
else if(strcmp(b,"2")==0) {a[1][1]=a[1][0]*0.4;a[1][2]=a[1][0]+a[1][1];}
else if(strcmp(b,"3")==0) {a[2][1]=a[2][0]*0.3;a[2][2]=a[2][0]+a[2][1];}
else if(strcmp(b,"4")==0) {a[3][1]=a[3][0]*0.6;a[3][2]=a[3][0]+a[3][1];}
else if(strcmp(b,"5")==0) {a[4][1]=a[4][0]*0.6;a[4][2]=a[4][0]+a[4][1];}
else if(strcmp(b,"6")==0) {a[5][1]=a[5][0]*0.4;a[5][2]=a[5][0]+a[5][1];}
else if(strcmp(b,"7")==0) {a[6][1]=a[6][0]*0.3;a[6][2]=a[6][0]+a[6][1];}
else if(strcmp(b,"8")==0) {a[7][1]=a[7][0]*0.6;a[7][2]=a[7][0]+a[7][1];}
else if(strcmp(b,"9")==0) {a[8][1]=a[8][0]*0.4;a[8][2]=a[8][0]+a[8][1];}
else if(strcmp(b,"10")==0) {a[9][1]=a[9][0]*0.6;a[9][2]=a[9][0]+a[9][1];}
gets(c);
{ if((strcmp(c,"1")!=0)&&(strcmp(c,"2")!=0)&&(strcmp(c,"3")!=0)&&(strcmp(c,"4")!=0)&&(strcmp(c,"5")!=0)&&(strcmp(c,"6")!=0)&&(strcmp(c,"7")!=0)&&(strcmp(c,"8")!=0)&&(strcmp(c,"9")!=0)&&(strcmp(c,"10")!=0))
{ printf("wrong!!\n");printf("只接受1-10表示的字符,请重新输入!!\n");getch();system("cls");
printf("请输入各教职工职称代码;1,2,3,4,5,6,7,8,9,1o\n");
for(j=0;j<10;j++)
{ a[j][1]=0;a[j][2]=0;}
getch();w++;continue;}
else if(strcmp(b,c)==0) {printf("\n不能输入相同值!!\n");m++;getch();system("cls");
printf("请输入各教职工职称代码;1,2,3,4,5,6,7,8,9,1o\n");continue;}
else if(strcmp(c,"1")==0) {a[0][1]=a[0][0]*0.4;a[0][2]=a[0][1]+a[0][0];}
else if(strcmp(c,"2")==0) {a[1][1]=a[1][0]*0.4;a[1][2]=a[1][0]+a[1][1];}
else if(strcmp(c,"3")==0) {a[2][1]=a[2][0]*0.3;a[2][2]=a[2][0]+a[2][1];}
else if(strcmp(c,"4")==0) {a[3][1]=a[3][0]*0.6;a[3][2]=a[3][0]+a[3][1];}
else if(strcmp(c,"5")==0) {a[4][1]=a[4][0]*0.6;a[4][2]=a[4][0]+a[4][1];}
else if(strcmp(c,"6")==0) {a[5][1]=a[5][0]*0.4;a[5][2]=a[5][0]+a[5][1];}
else if(strcmp(c,"7")==0) {a[6][1]=a[6][0]*0.3;a[6][2]=a[6][0]+a[6][1];}
else if(strcmp(c,"8")==0) {a[7][1]=a[7][0]*0.6;a[7][2]=a[7][0]+a[7][1];}
else if(strcmp(c,"9")==0) {a[8][1]=a[8][0]*0.4;a[8][2]=a[8][0]+a[8][1];}
if(strcmp(c,"10")==0) {a[9][1]=a[9][0]*0.6;a[9][2]=a[9][0]+a[9][1];}
}
}
system("cls");
printf(" 职工号 职称 工资 奖金 总收入\n");
printf(" ----------------------------------------------\n");
printf(" A1101 工程师 %-6.2f %-6.2f %-6.2f\n",a[0][0],a[0][1],a[0][2]);
printf(" ----------------------------------------------\n");
printf(" B1014 会计师 %-6.2f %-6.2f %-6.2f\n",a[1][0],a[1][1],a[1][2]);
printf(" ----------------------------------------------\n");
printf(" B1016 助工 %-6.2f %-6.2f %-6.2f\n",a[2][0],a[2][1],a[2][2]);
printf(" ----------------------------------------------\n");
printf(" A1105 高工 %-6.2f %-6.2f %-6.2f\n",a[3][0],a[3][1],a[3][2]);
printf(" ----------------------------------------------\n");
printf(" B1019 高会 %-6.2f %-6.2f %-6.2f\n",a[4][0],a[4][1],a[4][2]);
printf(" ----------------------------------------------\n");
printf(" A1115 会计师 %-6.2f %-6.2f %-6.2f\n",a[5][0],a[5][1],a[5][2]);
printf(" ----------------------------------------------\n");
printf(" A1117 助工 %-6.2f %-6.2f %-6.2f\n",a[6][0],a[6][1],a[6][2]);
printf(" ----------------------------------------------\n");
printf(" B1024 高工 %-6.2f %-6.2f %-6.2f\n",a[7][0],a[7][1],a[7][2]);
printf(" ----------------------------------------------\n");
printf(" A1124 工程师 %-6.2f %-6.2f %-6.2f\n",a[8][0],a[8][1],a[8][2]);
printf(" ----------------------------------------------\n");
printf(" B1028 高会 %-6.2f %-6.2f %-6.2f\n",a[9][0],a[9][1],a[9][2]);
printf(" ----------------------------------------------\n");}