c语言题,求解

2025-05-20 03:46:08
推荐回答(2个)
回答(1):

#include 

typedef struct TeachInfo {
char name[20];
char sex[3];
int age;
double wages;
}teachInfo;

int main() {
teachInfo teach_info[5] = {{"","",0,0},{"王丽","女",31,3523.50},{"","",0,0},{"","",0,0},{"黄胜利","男",45,4900.46}};
int i;
printf("请输入其他三位老师的的信息:\n");
printf("第一位老师的信息(空格隔开):");
scanf("%s%s%d%lf",teach_info[0].name,teach_info[0].sex,&teach_info[0].age,&teach_info[0].wages);
printf("第二位老师的信息(空格隔开):");
scanf("%s%s%d%lf",teach_info[2].name,teach_info[2].sex,&teach_info[2].age,&teach_info[2].wages);
printf("第三位老师的信息(空格隔开):");
scanf("%s%s%d%lf",teach_info[3].name,teach_info[3].sex,&teach_info[3].age,&teach_info[3].wages);
for(i = 0; i < 5; ++i) {
printf("%s\t%s\t%d\t%.2lf\n",teach_info[i].name,teach_info[i].sex,teach_info[i].age,teach_info[i].wages);
}
return 0;
}

回答(2):

1. 结构体

struct teachInfo
{
    char *name;        // 教师姓名
    char *sex;            // 性别
    int age;            // 年龄
    float salary;        // 薪水
}

2. 定义结构体数组

struct teachInfo teach_info[5];

for(int i = 1; i < 5; i++)
{
   scanf("%s", teach_info[i].name);
   scanf("%s", teach_info[i].sex);
   scanf("%d", &teach_info[i].age);
   scanf("%f", &teach_info[i].salary);
}

3. 赋值

strcpy(teach_info[0].name, "张三");
strcpy(teach_info[0].sex, "男");
teach_info[0].age = 40;
teach_info[0].salary = 5203.4;

teach_info[2], teach_info[3]以此类推。

4. 输出

printf("教师姓名\t性别\t年龄\t薪水\n");
for(int i = 0; i < 5; i++)
{
   printf("%s\t%s\t%d\t%f\n", teach_info[i].name, teach_info[i].sex, teach_info[i].age, teach_info[i].salary);
}