C语言结构体的一点问题

(2)定义一结构体People,包括姓名,性别,职位,年龄,要求从键盘输入3名人员的相应信息并显示,请找出下面程序的错误并修改。#include<stdio.h>stru... (2)定义一结构体People,包括姓名,性别,职位,年龄,要求从键盘输入3名人员的相应信息并显示,请找出下面程序的错误并修改。
#include <stdio.h>
struct People//结构体People { char name[20];//姓名 char sex;//性别
char position[20];//职位 int age; //年龄 }; void main()
{
struct People peo; //定义结构体数组,此处请修改! ( 1)
int i;
for(i=0;i<3;i++)//输入
      {
printf("Please input the %d People's name\n",i+1);
scanf("%c",peo[i].name);//输入姓名,此处请修改!(2)
getchar();
printf("Please input the person's sex\n");
scanf("%c",peo[i].sex);//输入性别,此处请修改! (3)
getchar();
printf("Please input the People's position\n");//输入职位
scanf("%s",peo[i].position); (4)
getchar();
printf("Please input the person's age\n");//输入年龄
scanf("%d ",&peo[i].age);
}
for(i=0;i<3;i++)//输出
{
printf("The %d People's name is:%s,sex:%c,position:%s,age:%d \n",i+1,peo[i].name,peo[i].sex,peo[i].position,&peo[i].age);//此处请修改!(5)
}
}
答案:
( 1) 改为struct People peo[];
(2)改为scanf("%c",&peo[i].name);
(3)改为scanf("%c"&,peo[i].sex);
(4)改为scanf("%s",&peo[i].position);
(5) 改为:printf("The %d People's name is:%s,sex:%c,position:%s,age:%d \n",i+1,peo[i].name,peo[i].sex,peo[i].position,peo[i].age);
第五项改错。原先姓名输入是按c%格式输入的。输出时不用c%吗
展开
 我来答
宝平2
2013-07-05 · 超过46用户采纳过TA的回答
知道小有建树答主
回答量:199
采纳率:0%
帮助的人:101万
展开全部
应该是输入时的错误,如果按输入那样,那name就只有一个字符
追问
getchar不可以输入字符串吗
知道了。getchar可以一直输入字符直到回车。但只有第一个字符有效。就说只返回第一个字符
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式