本题要求找出三人中谁的工资最高。小李、小张、小陈今年都是第一年工作,他们希望知道谁本月的工资最高。依次输入三人名字(姓氏拼音)和本月的工资(整数值),找出三人中最高工资,并输出该人名字(姓氏拼音)及其工资。 #include <stdio.h> #include <string.h> #define N 3 struct people char name[20]; int salary; a[N]; int main() struct people p; char Hname[20]; int i, max; for(i =0;1<N; 1++) scanf("%s%d" a[i].name 2 分,Gali].salary); 2分 max = p-2salary strcpy(Hname,p-> name); for(o = &a[1]; p < &a[N]; p++) 2分) 保存 单题作答
时间: 2024-01-22 20:02:29 浏览: 106
以下是代码实现:
```c
#include <stdio.h>
#include <string.h>
#define N 3
struct people {
char name[20];
int salary;
};
int main() {
struct people a[N];
int i, max = 0;
for(i = 0; i < N; i++) {
scanf("%s%d", a[i].name, &a[i].salary);
if(a[i].salary > a[max].salary) {
max = i;
}
}
printf("%s %d\n", a[max].name, a[max].salary);
return 0;
}
```
解析:
1. 定义结构体 `people`,包含姓名和工资两个成员变量。
2. 定义结构体数组 `a`,大小为 `N`,用于存储三个人的信息。
3. 通过循环输入三个人的信息,并判断出工资最高的人的索引。
4. 输出最高工资的人的姓名和工资。
注意事项:
1. 在输入时,需要使用 `%s` 和 `%d` 分别读取姓名和工资,且需要加上 `&` 取地址符号。
2. 在判断最高工资时,需要用一个变量 `max` 记录当前最高工资的人的索引,初始值为 0。
3. 输出时,需要通过 `a[max].name` 和 `a[max].salary` 分别访问最高工资的人的姓名和工资。
阅读全文