gpt4 book ai didi

C编程: Trying to print the reverse of the products of all the 2-digit numbers

转载 作者:太空宇宙 更新时间:2023-11-04 01:09:08 25 4
gpt4 key购买 nike

如标题所述,我正在尝试打印所有 2 位数乘积的反面。

例如:对于 100,200,300...,我想打印 001,002,003。

这是我的代码:

#include<stdio.h>

main()
{
int rev=0,revprod;
int i,j,prod;
for(i=10;i<100;i++)
{
for(j=10;j<100;j++)
{
prod=i*j;
revprod=prod;
while(revprod!=0)
{
rev=rev*10;
rev=rev + (revprod%10);
revprod=revprod/10;
}
printf("%d\n",rev);
}
}
}

它打印垃圾值。我无法弄清楚问题所在。

最佳答案

在处理完第一个数字后,rev 不再为 0,并且由于没有代码可以清除它,因此后续的内部循环将生成错误的值。

你需要坚持:

rev = 0;

在内部 while 循环之前。或者,您可以移动声明并放置:

int rev = 0;

while 循环之前,这非常好,因为它更清楚地表明该特定变量仅在内部范围内使用。

另外,请记住

rev = rev * 10;

总是可以写成

rev *= 10;

这对于有经验的 C 程序员来说要清楚得多(这使得 rev 的乘法更加明显)并且是一个养成的好习惯。

关于C编程: Trying to print the reverse of the products of all the 2-digit numbers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16584432/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com