这个代码 什么意思?
#include<stdio.h>main()
{
int i;
char c;
for (i=0; (c=getchar())!='\n';i+=c);
{
printf("%c",c);
}
} 本帖最后由 风过无痕1989 于 2020-12-3 22:12 编辑
#include<stdio.h>
main()
{
int i;
char c;
for (i=0; (c=getchar())!='\n';i+=c); // 输入字符,直到接收到回车键为止
{
printf("%c",c); // 输出接收到的字符
}
}
i+=c ?是 i++ 吧?若真是 i+=c 这个程序就有些问题了,需要运行进行验证,到底输出了什么 风过无痕1989 发表于 2020-12-3 22:08
i+=c ?是 i++ 吧?若真是 i+=c 这个程序就有些问题了,需要运行进行验证,到底输出了什么
emmm,小甲鱼视频上面是 i+=c 风过无痕1989 发表于 2020-12-3 22:08
i+=c ?是 i++ 吧?若真是 i+=c 这个程序就有些问题了,需要运行进行验证,到底输出了什么
有点儿奇怪,直接加ASCII码强制转换为整型好像也说得过去 昨非 发表于 2020-12-3 22:15
有点儿奇怪,直接加ASCII码强制转换为整型好像也说得过去
我前两天回答过一题目,ASCII 是不能参与整型的运算的(通过运行得出的结论) 风过无痕1989 发表于 2020-12-3 22:22
我前两天回答过一题目,ASCII 是不能参与整型的运算的(通过运行得出的结论)
没注意过这个细节 风过无痕1989 发表于 2020-12-3 22:08
i+=c ?是 i++ 吧?若真是 i+=c 这个程序就有些问题了,需要运行进行验证,到底输出了什么
i+=c 和 i++ 没有任何区别,因为 i 根本没用。 风过无痕1989 发表于 2020-12-3 22:22
我前两天回答过一题目,ASCII 是不能参与整型的运算的(通过运行得出的结论)
不是很明白你说的是什么意思 永恒的蓝色梦想 发表于 2020-12-3 23:24
不是很明白你说的是什么意思
#include<stdio.h>
int main()
{
int i, j, c;
char s = { "8980","9198" };
for (i = 3;i >= 0;i--)
{
c = s + s - 2 * '0';
s = c % 10 + '\0';
}
for (i = 0;i <= 1;i++)
{
puts(s);
}
printf("\n");
for (i = 0;i < 2;i++) // 输出 s 数组
{
for (j = 0;j < 4;j++)
{
printf("%.2d ", s);
}
printf("\n");
}
return 0;
}
*************************************************
运行过程(字符 0 没有参与运算):
i = 3 时
c = s + s - 2 * '0'
= 0 + 8 - 2 * '0'
= 8 - 2 * '0'
= 8
s = c % 10 + '\0'
= 8 % 10 + '\0'
= 8
i = 2 时
c = s + s - 2 * '0'
= 8 + 9 - 2 * '0'
= 17 - 2 * '0'
= 17
s = c % 10 + '\0'
= 17 % 10 + '\0'
= 7
i = 1 时
c = s + s - 2 * '0'
= 9 + 1 - 2 * '0'
= 10 - 2 * '0'
= 10
s = c % 10 + '\0'
= 10 % 10 + '\0'
= 0
i = 0 时
c = s + s - 2 * '0'
= 8 + 9 - 2 * '0'
= 17 - 2 * '0'
= 17
s = c % 10 + '\0'
= 17 % 10 + '\0'
= 7
运行结果:
9198
07 00 07 08
57 49 57 56 <- - - - - - 9 0 9 8 的 ASCII码
Press any key to continue . . . 风过无痕1989 发表于 2020-12-3 23:48
*************************************************
运行过程(字符 0 没有参与运算):
i = 3 时
错误解释。把题目发出来 本帖最后由 风过无痕1989 于 2020-12-4 20:46 编辑
永恒的蓝色梦想 发表于 2020-12-4 20:39
错误解释。把题目发出来
早上就在上边呀。人家问的是 '0' 的值是多少 风过无痕1989 发表于 2020-12-3 23:48
*************************************************
运行过程(字符 0 没有参与运算):
i = 3 时
你可真是草率啊,i = 3 时
c = s + s - 2 * '0'
= '0' + '8' - 2 * '0'
= '0' - '0' + '8' - '0'
= ('0' - '0') + ('8' - '0')
= 0 + 8
= 8 风过无痕1989 发表于 2020-12-3 22:22
我前两天回答过一题目,ASCII 是不能参与整型的运算的(通过运行得出的结论)
至于“通过运行得出的结论”,我希望你在发表之前可以先思考一下。 永恒的蓝色梦想 发表于 2020-12-4 21:26
至于“通过运行得出的结论”,我希望你在发表之前可以先思考一下。
有什么问题,你指出来,我学习一下
我回答问题之前,都是通过运行程序的,按程序运行说话,不敢草率。没有经过软件运行的程序,我也从不说话。怕误人子弟 风过无痕1989 发表于 2020-12-4 21:38
有什么问题,你指出来,我学习一下
我回答问题之前,都是通过运行程序的,按程序运行说话,不敢草率。 ...
看看你9楼发的解释。 永恒的蓝色梦想 发表于 2020-12-4 21:43
看看你9楼发的解释。
那个解释有什么问题?软件一步一步是那么运行的,你可以试试,看是不是那样的 风过无痕1989 发表于 2020-12-4 22:18
那个解释有什么问题?软件一步一步是那么运行的,你可以试试,看是不是那样的
不是,你可以看一下12楼。
至于“ASCII 是不能参与整型的运算的”,这个一听就是错的。 永恒的蓝色梦想 发表于 2020-12-4 22:20
不是,你可以看一下12楼。
至于“ASCII 是不能参与整型的运算的”,这个一听就是错的。
学习了,被 0 给骗了
页:
[1]