#include <stdio.h>
struct member {
char name[20];
int age;
char sex;
int height;
};
int main(void)
{
int i,j;
struct member input[5]={0,};
int tot, rank, max=0;
int max2[5]={0,};
float res;
for (i=0; i<5; i++)
{
scanf("%s ", input[i].name);
scanf("%d %c %d", &input[i].age, &input[i].sex, &input[i].height);
getchar();
}
scanf("%d", &rank);
max =input[0].height;
for(i=1;i<=5;i++) {
for(j=0;j<5;j++) {
if(max>=input[j].height)
max=max;
else
max=input[j].height;
}
max2[i]=max;
for(j=0;j<5;j++) {
if(max==input[j].height)
input[j].height*=(-1);
}
max=-1;
}
for (i=0; i<5; i++)
{
if(max2[rank]== input[i].height)
printf("%s %d %c %d\n",input[i].name, input[i].age, input[i].sex,input[i].height);
}
fflush(stdin);
getchar();
return 0;
}
上面我的代码打印的结果什么都没有...甚至输入的高度也变成负数.. 这个程序有什么问题? 输入和打印应该与示例图像相同...... 请帮忙!
最佳答案
第一个scanf
应该是固定的
scanf("%s ", input[i].name);
在第二个 scanf
中,input[i].sex
是一个 char
类型,所以你必须使用 "% c"
而不是 %s
scanf("%d %s %d", &input[i].age, &input[i].sex, &input[i].height);
应该是
scanf("%d %c %d", &input[i].age, &input[i].sex, &input[i].height);
关于c - 使用 Structure 打印五个成员高度中的第 n 个成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16737486/