代码又出错了
#include<stdio.h>int main()
{char ch;
printf("请输入一个字母");
scanf("%c",&ch);
if (ch>=97&&ch<=123)
{
ch=ch-32;
printf("%c\n",&ch);
}
else if (ch<=97&&ch>=71)
{
ch=ch+32;
printf("%c\n",&ch) ;
}
return 0;
}
这个就是一个转化大小写的程序,但是输出乱码 本帖最后由 jackz007 于 2021-1-19 23:11 编辑
#include<stdio.h>
int main(void)
{
char ch ;
printf("请输入一个字母") ;
scanf("%c" , & ch) ;
if (ch >= 'a' && ch <= 'z') ch -= 32 ;// 直接用字符比较直观
else if(ch >= 'A' && ch <= 'Z') ch += 32 ;// 直接用字符比较直观
printf("%c\n" , ch) ;// 打印字符不用加取址符
} 本帖最后由 sunrise085 于 2021-1-19 23:19 编辑
大小写的ASCII码范围搞错了。。。。。。。
大写字母的范围是65~90
小写字母的范围是97~122
还有就是printf中多写了&符号,输出的是地址。。。。。 本帖最后由 风过无痕1989 于 2021-1-19 23:27 编辑
#include<stdio.h>
int main()
{
char ch;
printf("请输入一个字母");
scanf("%c",&ch);
if (ch >= 97 && ch <= 122) // 此处错误,小写字母到122结束
{
ch = ch - 32;
printf("%c\n",ch); // 输出错误,输出时只写变量,不写地址
}
else if (ch <= 90 && ch >= 65) // 此处错误,大写字母从65开始
{
ch = ch + 32;
printf("%c\n",ch) ; // 输出错误,输出时只写变量,不写地址
}
return 0;
}
页:
[1]