鱼C论坛

 找回密码
 立即注册
查看: 1357|回复: 2

帮帮忙,看一下

[复制链接]
发表于 2023-10-29 09:50:15 From FishC Mobile | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
我想问一下,就是putchar()里面那个取余,我没有理解到位,若ch=a ,'a' - 'a' = 0 , 0+3=3,
3%26= 0,0+'a'= 'a',为何a还是等于a呢
IMG_20231029_094537.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-10-29 09:50:52 | 显示全部楼层
在这个问题中,你提到了使用  putchar()  函数和取余运算符  % 。让我们来解释一下。

首先, putchar()  是一个用于将字符输出到标准输出的函数。它接受一个整数参数,该参数表示要输出的字符的ASCII码值。

在你的例子中,你提到了  ch = 'a' 。这意味着  ch  变量被赋值为字符  'a'  的ASCII码值。在大多数编程语言中,字符  'a'  的ASCII码值是 97。

接下来,你计算了  'a' - 'a'  的结果。在这里, 'a' - 'a'  实际上是计算两个字符的ASCII码值之间的差值。在这种情况下,它等于 0,因为  'a'  的ASCII码值减去  'a'  的ASCII码值等于 97 - 97,结果为 0。

然后,你将 0 加上 3,得到 3。这是一个简单的加法运算。

接下来,你使用取余运算符  %  来计算  3 % 26  的结果。取余运算符返回除法的余数。在这种情况下,3 除以 26 的余数是 3。

最后,你将 3 加上  'a'  的ASCII码值。由于  'a'  的ASCII码值是 97,所以 3 + 97 的结果是 100。在ASCII码表中,97 对应的字符是  'a' ,而 100 对应的字符是  'd' 。

所以,根据你的计算, 'a'  应该等于  'd' ,而不是  'a' 。如果你发现结果不符合你的预期,可能是因为你的计算过程中出现了错误。请仔细检查你的代码,确保每一步的计算都是正确的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-10-29 09:50:55 | 显示全部楼层
你的问题是关于C语言中的字符操作和取余运算。首先,我们需要理解字符在C语言中是如何表示的。每个字符都有一个对应的ASCII值,例如,字符'a'的ASCII值是97。

在你的例子中,你首先计算了 'a' - 'a',这实际上是计算了两个字符对应的ASCII值的差,也就是97 - 97,结果是0。然后你将这个结果加上3,得到3。接下来,你对这个结果进行了模26的运算,得到的结果还是3。最后,你将这个结果加上'a'的ASCII值,得到了100,这对应的字符是'd',而不是'a'。

所以,如果你的代码是这样的:
char ch = 'a';
ch = (ch - 'a' + 3) % 26 + 'a';

那么,最后的结果应该是 'd',而不是 'a'。这是因为你实际上是将字符'a'向后移动了3个位置,得到了字符'd'。

如果你的结果是 'a',那么可能是你的代码有误,或者你的理解有误。你可以再检查一下你的代码,或者提供更多的信息,我会很乐意帮助你解决问题。
请注意,本回答来自GPT-4
如果问题已经解决,请设置最佳答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-23 15:13

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表