求助:一题C语言。。。题目错了?

来源:百度知道 编辑:UC知道 时间:2024/05/30 01:40:13
如果在运行以下程序时输入: bcd<回车>。 输出结果是?

#include<stdio.h>
void main()
{
char i='a',j='a',c='a';
scanf("%c%*c%c",&i,&j,&k);
printf("%c%c%c",i,j,k);
}

请问大家输出结果是什么呢?
scanf("%c%*c%c",&i,&j,&k)这句中的那个“*”是什么意思呢?

谢谢~!

那个*代表跳过该(%*c),把后面那个字符赋给中间那个。
如:
#include<stdio.h>
void main()
{
char i='a',j='a',k='a';
scanf("%c%*c%c",&i,&j,&k);
printf("%c%c%c",i,j,k);
}
若我从键盘上输入efg
则它输出ega
原因是这样的,第一个%c对应‘e’且把'e'赋给i;第二个%*c对应的是'f',则跳过它;第三个%c对应的是'g',且把‘g‘赋给j;最后的k没有再次被赋值。

*是错了,不应该出现
前面的c=‘a’中的c应该改为k

首先,你没定义k是什么东西;如果你定义k也为字符型变量,那么运行出来的结果应该是bb?,*表示跳过中间项,所以按顺序执行最后一项就没有被赋值,于是就出现了“?”。

你前面定义了c='a' 怎么后面用的是&k???
你那*我也不知道是什么意思?
我帮你改一下:你自己看了.
#include<stdio.h>
void main()
{
char i='a',j='a',k='a';
scanf("%c%c%c",&i,&j,&k);
printf("%c%c%c",i,j,k);
}
运行输入bcd之后输出的也是 bcd;
不知道你是不是想要这效果!

*是读入但忽略
char i='a',j='a',c='a'; //这儿的c='a',应该改成k='a',要不然后面的scanf,printf中的k都是没有声明的变量

老大,你对scanf函数还不知道怎