一道C语言题

2024-12-06 16:24:34
推荐回答(3个)
回答1:

首先肯定你的逻辑,之所以出现你所疑问的几点问题,是因为冷门知识知道的少和不够细心。我一一讲解你遇到的问题,希望能帮到你。

一、获取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;

}

 

回答2:

输出的时候 y的控制符是%e 不是%f char是单个字符输入

回答3:

修改错别字:"忘高手"的忘改为"望",修改完毕!