
一个简单的c语言的编程调试题
就是这题,调试的和想的不一样。不知道那错啦。最后的字符都是‘1’。后面有图。希望给我的答案有图。写好加分!!#include<stdio.h>voidmain(){cha...
就是这题,调试的和想的不一样。不知道那错啦。最后的字符都是‘1’。后面有图。
希望给我的答案有图。写好加分!!
#include<stdio.h>
void main()
{
char ch;
while(ch=getchar()!='\n')
{
if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z'))
{
ch=ch+'4';
if(ch>'z'||ch>'Z')
ch=ch-'26';
}
putchar(ch);
}
putchar('\n');
} 展开
希望给我的答案有图。写好加分!!
#include<stdio.h>
void main()
{
char ch;
while(ch=getchar()!='\n')
{
if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z'))
{
ch=ch+'4';
if(ch>'z'||ch>'Z')
ch=ch-'26';
}
putchar(ch);
}
putchar('\n');
} 展开
6个回答
展开全部
#include<stdio.h>
void main()
{
char ch;
while((ch=getchar())!='\n') // (ch=getchar())!='\n',先赋值,再比较
{
if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z'))
{
ch=ch+4;
if(ch>'z'||ch>'Z' && ch<'a') //
ch=ch-26; // '26'错了
}
putchar(ch);
}
putchar('\n');
}
void main()
{
char ch;
while((ch=getchar())!='\n') // (ch=getchar())!='\n',先赋值,再比较
{
if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z'))
{
ch=ch+4;
if(ch>'z'||ch>'Z' && ch<'a') //
ch=ch-26; // '26'错了
}
putchar(ch);
}
putchar('\n');
}

2023-06-12 广告
单片机编程是指使用单片机编程语言,如C语言,来编写单片机的程序代码,以控制单片机的行为。这种技术在电子工程、计算机科学和电子通信等领域中被广泛应用。单片机编程的主要任务是设计和实现单片机的程序,包括定义单片机的指令系统、编写程序代码、处理器...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
展开全部
if(ch>'z'||(ch>'Z'&&ch<'a')) //所有小写字母不都是大于'Z'的吗
ch=ch-26; // 26加单引号是神马意思
ch=ch-26; // 26加单引号是神马意思
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没有输入语句吗?而且While里面那个getchar没有括号
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
注意while((ch=getchar())!='\n')的加括号问题
优先级是先计算后面的getchar()!='\n',所以ch始终为1
图就不需要了吧
优先级是先计算后面的getchar()!='\n',所以ch始终为1
图就不需要了吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不知道你想要什么样的结果 给你简单改了改~~~
#include<stdio.h>
void main()
{
char ch;
while((ch=getchar())!='\n') 《=====这里注意下,不明确的运算顺序要使用括号
以免产生错误ch=getchar() 两端要先运行后比
较,所以要将上面算式两端加上括号!!!
{
if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z'))
{
int n = (int)ch + 4; 《=====字符不能那样直接相加,要转成对
应的asc码对应的数字进行转换
ch=(char)n;
if(ch>'z'||ch>'Z')
n = (int)ch -26;
ch = (char)n;
}
putchar(ch);
}
putchar('\n');
getchar();
}
好了,要是与你想要的答案不一样,请提出来
祝你编写愉快~~~~
#include<stdio.h>
void main()
{
char ch;
while((ch=getchar())!='\n') 《=====这里注意下,不明确的运算顺序要使用括号
以免产生错误ch=getchar() 两端要先运行后比
较,所以要将上面算式两端加上括号!!!
{
if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z'))
{
int n = (int)ch + 4; 《=====字符不能那样直接相加,要转成对
应的asc码对应的数字进行转换
ch=(char)n;
if(ch>'z'||ch>'Z')
n = (int)ch -26;
ch = (char)n;
}
putchar(ch);
}
putchar('\n');
getchar();
}
好了,要是与你想要的答案不一样,请提出来
祝你编写愉快~~~~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
前面两位说得对,但关键在这两句
ch=ch+'4';
ch=ch-'26';
数字不应该加引号,如下即可
ch=ch+4;
ch=ch-26;
ch=ch+'4';
ch=ch-'26';
数字不应该加引号,如下即可
ch=ch+4;
ch=ch-26;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询