c语言编写一个程序,根据用户输入英文名和姓先显示姓氏,其后跟一个逗号,然后显示名的首字母:

#include<stdio.h>intmain(void){charfirst_name;charch_1;//名字charch_2;//姓氏printf("Enter... #include <stdio.h>

int main(void)
{
char first_name;
char ch_1;//名字
char ch_2;//姓氏

printf("Enter a first and last name:");
scanf("%c",&first_name);//获得名的首字母;

while (getchar() != ' ')//获得名字
{
ch_1=getchar();
}

while ((ch_2 = getchar()) != '\n')//获得姓氏
{

printf("%c",ch_2);
}

printf(", %c.\n", first_name);//输出结果

return 0;
}
展开
 我来答
风若远去何人留
推荐于2018-04-16 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450101
专业C/C++软件开发

向TA提问 私信TA
展开全部

while (getchar() != ' ')//获得名字
{  
ch_1=getchar();
}

这里名字后续字符不需要 在while判断里面有getchar就可以了,不需要再循环体里面重复调用

直接

while (getchar() != ' ')//获得名字
{   

}

就可以了。

文正153
2015-02-20 · TA获得超过2.1万个赞
知道大有可为答主
回答量:2221
采纳率:63%
帮助的人:607万
展开全部
//先看这这代码, 这段代码的可读性不高...... 注释等会.

#include <stdio.h>

int main(void)

{

char first_initial, ch; //这代码写得不好, 打眼一看以为是错的.....

printf("Enter a first and last name: ");

scanf(" %c", &first_initial); //这个是为了保存名字的第一个字符, 这样剩下的就只剩下名的后面部分和

while (getchar() != ' '); //这样它把名字给输入完了, 因为姓和名中间有空格

while ((ch = getchar()) != '\n') //输入姓.

if (ch != ' ') //这句感觉没啥用, 因为姓不可能会有空格在里面.

putchar(ch);

printf(", %c.\n", first_initial); //然后把刚刚保存到的名字的首字输出.

return 0;
// 我咋感觉这代码错了.....因为一个getchar后面紧跟一个putchar, 就相当于是, 你在控制台里输入一个1, 结果出来了俩1.

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
营养慢慢
2019-01-17
知道答主
回答量:16
采纳率:0%
帮助的人:7.2万
展开全部
	char first_name;
char ch_1;//名字
char ch_2;//姓氏

printf("Enter a first and last name:");
first_name=getchar();//获得名字的首字母

while (getchar() != ' ')//获得名字

ch_1=getchar();
}

while ((ch_2 = getchar()) != '\n')//获得姓氏
{

printf("%c",ch_2);//输出姓氏 
}

printf(",");
putchar(first_name);//名字的首字母 
printf(".");

改了下你的,应该是这样了

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
金色潜鸟
2015-07-30 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5507万
展开全部
可以简单地写。
#include <stdio.h>
int main(void)
{
char first_name[40],last_name[40];
printf("Enter a first and last name:");
scanf("%s %s", first_name, last_name); // 输入名 姓
printf("%s, %c\n", last_name, first_name[0]); //输出 姓 逗号 和 名的首字母
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
any_time依
2018-04-16
知道答主
回答量:14
采纳率:100%
帮助的人:1.2万
展开全部
//注意if和while的分号;空循环
#include <stdio.h>
void main()
{
   char ch,bh=ch=getchar();
   while((ch=getchar())!=' '); //get掉多余的单个字符
   while((ch=getchar())!='\n') //开始从空格号读取并输入姓,遇回车结束循环
      if(ch!=' ')
         putchar(ch);
   printf(",%c.\n",bh);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式