真心不晓得错在哪?菜鸟跪求解决。。。(总是输出最后一个数)
描述: 定义一个职工结构体数组,从键盘输入5位职工的信息,打印出最高的工资。
输入: 从键盘输入5位职工的信息(4个数据,每个占一行,工资有两位小数)。
输出: 打印出最高的工资。
[code=C/C++][/code]
#include <stdio.h>
struct WorkerType
{
char name[20];
char IDnum[20];
int age;
float wage;
}worker[5];
void scan();
void print();
int main()
{
scan();
print();
return 0;
}
void scan()
{
int i;
for(i=0;i<5;i++)
{
scanf("%s",worker[i].name);
scanf("%s",worker[i].IDnum);
scanf("%d",&(worker[i].age));
scanf("%f",&(worker[i].wage));
}
}
void print()
{
int i;
float mwage;
mwage=worker[0].wage;
for(i=1;i<5;i++)
{
if(mwage<worker[i].wage); //就算不成立,debug时观察也能继续。求解。。。
{
mwage=worker[i].wage;
}
}
printf("%.2f\n",mwage);
}
[解决办法]
void print(){ int i; float mwage; mwage=worker[0].wage; for(i=1;i<5;i++) { if(mwage<worker[i].wage)//把这里的“;”去掉 { mwage=worker[i].wage; } } printf("%.2f\n",mwage);}