首先肯定你的逻辑,之所以出现你所疑问的几点问题,是因为冷门知识知道的少和不够细心。我一一讲解你遇到的问题,希望能帮到你。
一、获取y的值为35.12,如果你想输出为科学计数法,那么就需要在输出函数中用%e而不是在输入函数中。eg:printf("%E",y).
二、在输入c1,c2时输入abc,那么你理解的对,应该c1=b,c2=c;之所以出现你的问题,是因为你输入35,35.12时按下键盘回车键,键盘缓冲区保留了一个‘\n',这个'\n'被读取到c1中1次。你需要在读取字符之前清空缓冲区。
我给你全码:
#include
#include
int main(void)
{
int a, b; float x, y; char c1, c2;
int c;
scanf("a=%d,b=%d", &a, &b);
scanf("%f,%e", &x, &y);
while ((c = getchar()) != '\n' && c != EOF);//清空缓冲区
scanf("%c%c%c",&c1, &c1, &c2);
printf("a=%d,b=%d,x=%f,y=%e,c1=%c,c2=%c\n", a, b, x, y, c1, c2);//y=%e
system("pause");//暂停
return 0;
}
输出的时候 y的控制符是%e 不是%f char是单个字符输入
修改错别字:"忘高手"的忘改为"望",修改完毕!