c语言小白Ƕ,有没有大佬帮我发现一下有什么问题?㨦࿾

2025-02-24 18:59:23
推荐回答(5个)
回答1:

正确的代码网友们给出来了,就是去掉while()外面的那个getchar的语句。

点工具——调试,可以查看程序运行过程,有问题要自己解决才对哦。多用调试更容易理解代码

//不说了今天好水逆,发代码也被度娘审核555,还没有吐出来555


//那个dev cpp 调试也用不了,给你凑合看borlandc的调试过程好了


输入五大写字符enter,ch='A'

第二个getchar后ch='S'

第三个getchar也要拿字符了

ch被赋了第三个字符'D'

第四个getchar,'F'

至此c++只被执行了两次,而getchar跑了四次

接下来的结果不解释,上图:

因为getchar,其实还按了一个回车

结果就是这样。好的代码需要勤于调试哦。

回答2:

while循环中的le=getchar可以去掉。保留的话从输入中每读两个字符计数才加一,直到第一次遇到回车,最后结果相当于总数除以2。

回答3:

首先你最后要return 0;
输入一串字符,写法不对,参考如下:

char a[100];
int i;
gets(a);
for(i=0;a[i]!='\0';i++)
if(a[i]>='A'&&a[i]<='Z')
c++;
puts(a);

回答4:

观察程序,发现:
在while循环的判断条件中,getchar()已经被执行一次,即缓存区中的大写字母被取出了一个并将这个大写字母赋值给了le.
随后在循环体中,又执行了一次getchar(),缓存区中的大写字母又被取出.
也就是说,一次循环实际上是取出了两个大写字母,并且以第二次取出的字符作为字母判断.
所以,在这个程序中,实际上被判断的有S, C 和输入完字符后的那个 回车符.
所以说,程序判定只有两个大写字母.

回答5:

把循环语句中的getchar去掉即可写成: