字符的输入输出问题
#include <stdio.h>int main()
{
char da,xiao;//定义大小写的变量
scanf("%c\n",&da);//输入一个大写字符
xiao=da+32;//大写与小写的关系
printf("%c\n",xiao);//输出小写字符
return 0;
}
上面的程序编译和链接都没有问题,但我输入'A'却输出是G或?,是我字符输入错误还是什么原因 你编译这个试试#include <stdio.h>
int main()
{
char da,xiao;//定义大小写的变量
scanf("%c",&da);//输入一个大写字符
xiao=da+32;//大写与小写的关系
printf("%c\n",xiao);//输出小写字符
return 0;
}
发错了
本帖最后由 额外减小 于 2022-12-31 09:58 编辑。对不起,发错了 一般不在scanf后面加”\n“吧{:10_255:} scanf 不加\n 我输入的是'A',按确定键后就是G,\n删除后还是没变,还是变成G,但我一开始是变成?,提示da没有初始化(但没错误和警告),然后我把第五行与第六行互换了,就一直是G 本帖最后由 两手空空儿 于 2023-1-4 15:04 编辑
程序没有问题,我的输出正常
你要输入A,而不是'A' 'G'-32 = ' ' ' 两手空空儿 发表于 2023-1-4 15:01
程序没有问题,我的输出正常
你要输入A,而不是'A' 'G'-32 = ' ' '
极度支持
哇,真的是茅塞顿开{:10_257:}
楼主输入'A'的话,它第一个读到的是'这个字符,ASCII加32就是G
哈哈,厉害 liuzhengyuan 发表于 2022-12-31 08:56
scanf 不加\n
scanf可以加\n,但是在scanf中随意使用\n,表示忽略一切空白符直至下一个非空白符出现,所以要输入两次QQ截图20230104205406.png 谢谢大神们的解答,真是让人茅塞顿开,疑惑顺利解开 scanf内不建议写\n,在不明确用法时贸然使用会导致bug。 #include<stdio.h>
int main()
{
int a,b,c,t;
printf("输入三个数:");
scanf("%d,%d,%d",&a,&b,&c);
if(a>b)
{
b=a;
t=b;
a=t;
}
if(a>c)
{
c=a;
t=c;
a=t;
}
if(b>c)
{
c=b;
t=c;
b=t;
}\\比较三个数的大小
printf("%d,%d,%d\n",a,b,c);\\由小到大输出
return 0;
}
这个我输入5,3,2后显示5,5,5错在哪里,是不是比较两个数大小的赋值顺序不对 首先,scanf可以加\n,只不过要每次输入换行
这个代码没问题,你自己的输入可能存在问题
应该直接输入A而非'A'
页:
[1]