#include<stdio.h>
int main()
{
char a,b,c,d,e,f;
scanf("%c%c%c%c%c",&a,&b,&c,&d,&e);
if(a<'Z') a+=32;
if(b<'Z') b+=32;
if(c<'Z') c+=32;
if(d<'Z') d+=32;
if(e<'Z') e+=32;
printf("%c%c%c%c%c",a,b,c,d,e);
return 0;
}
printf("%c%c%c%c%cAAAA%c",a,b,c,d,e);
参数数量不对。6个%c,你只有5个变量。
你这个只有代码,连输入样例输出样例都没有,没办法准确定位你的问题啊。
从“32”这个数值,我推测功能涉及到大写转小写。
这里列出4个看起来比较奇怪的地方:
第一,不知道输入格式是否包含空格。%c设计上就是会吃掉空格回车,如果题目要求空格隔开,你的scanf写%c%c%c%c%c,这是一定会出错的。如果没有空格分隔,那应该不是问题。
第二,x<'Z'是很奇怪的写法,结合数值32,我推测你想判断大写字母。如果的确是想做这件事,那你这段代码的错误是非常明显的:如果输入包含大写Z本身,程序是不会把它变成小写z的。你需要的是<='Z'而不是<'Z'。
第三,输入格式保证只包含大小写字母吗?如果没有保证的话,仅仅是x<='Z'也是不够的,你需要x>='A'&&x<='Z',否则数字字符也会被错误地修改。
第四,你的printf只有5个变量,却有6个%c,这很奇怪啊。
如果这个答案没有准确定位问题的话,还请你把原始问题贴上来。没有问题描述、输入格式、输出格式、输入样例、输出样例、预期输出、实际输出作为参考,是很难定位问题的。
printf("%c%c%c%c%cAAAA%c",a,b,c,d,e);
在这里,你有6个%c,但是后面abcde只有五个参数,多了一个%c,所以会运行时错误