项目Euler prob 4在c中?

项目Euler prob 4在c中?,c,C,我提出了这段代码来解决这个问题,但是输出显示的最大回文为0。我不明白这个问题。我需要帮助。我刚刚开始基本C编码,无法理解以下代码的故障: #include<stdio.h> int main() { int i=100,j=100,prod,temp,rev=0,rem,l,m,max=0; for(;i<1000;i++) { for(;j<1000;j++) { prod=i*j; temp=prod;

我提出了这段代码来解决这个问题,但是输出显示的最大回文为0。我不明白这个问题。我需要帮助。我刚刚开始基本C编码,无法理解以下代码的故障:

#include<stdio.h>

int main()
{

int i=100,j=100,prod,temp,rev=0,rem,l,m,max=0;
for(;i<1000;i++)
{
    for(;j<1000;j++)
    {
        prod=i*j;
        temp=prod;
        while(temp!=0)
        {
           rem=temp%10;
           rev=(rev*10)+rem;
           temp=temp/10;
        }
        if(rev==prod)
        {
            if(prod>max)
            {
                max=prod;
                l=i;
                m=j;
            }
        }


    }
}
printf("\nThe largest number which is a palindrome and is a product of two 3 digit numbers is: %d and is the product of numbers %d and %d\n",max,l,m);
return 0;
}
#包括
int main()
{
int i=100,j=100,prod,temp,rev=0,rem,l,m,max=0;

对于每次计算的(;iReset
rev

        rev = 0; // inside the loops

每次重复都必须重置
rev

有两件事会阻止此代码工作。首先,您需要 在每次迭代时重置
rev=0
。您还需要在外部循环的每次迭代时重置
j=100

#include<stdio.h>

int main(int,char**)
{

int i=100,j=100,prod,temp,rev=0,rem,l,m,max=0;
for(;i<1000;i++)
{
    for(j=100;j<1000;j++)
    {
        prod=i*j;
        temp=prod;
        rev=0;
        while(temp!=0)
        {
           rem=temp%10;
           rev=(rev*10)+rem;
           temp=temp/10;
        }
        if(rev==prod)
        {
            if(prod>max)
            {
                max=prod;
                l=i;
                m=j;
            }
        }    
    }
}
printf("\nThe largest number which is a palindrome and is a product of two 3 digit numbers is: %d and is the product of numbers %d and %d\n",max,l,m);
return 0;
}
#包括
int main(int,char**)
{
int i=100,j=100,prod,temp,rev=0,rem,l,m,max=0;
为了