gpt4 book ai didi

c - 嵌套 while 循环在 C 中不起作用

转载 作者:行者123 更新时间:2023-11-30 21:28:50 24 4
gpt4 key购买 nike

我正在努力解决欧拉项目的第四个问题:通过 2 个 3 位数字相乘可以得到的最大回文数是多少?(https://projecteuler.net/problem=4)

我有以下代码,但它不起作用。由于某种原因,嵌套的 while 循环似乎被破坏了。它只打印数字 10000 到 99900,这意味着嵌套的 while 循环只执行一次...

#include <stdio.h>
#include <string.h>


int is_a_palindrome(int test_number);

int main (void)
{
long result;
long number_x_1;
long number_x_2;
long biggest_pal;

number_x_1 = 100;
number_x_2 = 100;

while (number_x_1 < 1000)
{
while (number_x_2 < 1000)
{
result = number_x_1 * number_x_2;
printf("%li\n", result);
if (is_a_palindrome(result) == 1)
{
biggest_pal = result;
printf("palindrome found : %li", biggest_pal);
}
number_x_2++;
}
number_x_1++;
}
return (biggest_pal);
}

int is_a_palindrome(int test_number)
{
int test_number_unchanged;
int reverse;

reverse = 0;
test_number_unchanged = test_number;

while (test_number != 0)
{
reverse = reverse * 10;
reverse = reverse + test_number % 10;
test_number = test_number / 10;
}

if (test_number_unchanged == reverse)
{
return (1);
}
else
{
return (0);
}
}

最佳答案

您不要在外循环内将 number_x_2 设置为 100...您只在所有循环外将其设置一次!

因此,当 number_x_1 上的第二个循环开始时,number_x_2 已经处于最大值,并且内部循环(位于 while (number_x_2 < 1000) )不会启动。

关于c - 嵌套 while 循环在 C 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37365392/

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