gpt4 book ai didi

c - 为什么我在 ideone 和 codechef 编译器中出现运行时错误,而在我的终端中却没有?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:31:57 24 4
gpt4 key购买 nike

我刚刚开始在 SPOJ 中进行竞争性编程。有时我很困惑为什么我在 ideone 中遇到运行时错误。问题是:

如果从左到右和从右到左读取时正整数在十进制系统中的表示相同,则称为回文。对于给定的不超过1000000位的正整数K,将大于K的最小回文的值写入输出。显示的数字始终不带前导零。

输入

第一行包含整数 t,测试用例的数量。在接下来的 t 行中给出整数 K。

输出

对于每一个K,输出大于K的最小回文。

例子

输入:
2
808
第2133章

输出:
818
第2222章我的程序:

  #include <stdio.h>

int main(void)
{
int t,i,reverse,same;

scanf("%d",&t); //t is no. of test cases

int num[t]; //num[t] is array of t elements

for(i=0;i<t;i++)
scanf("%d",&num[i]);

i=0; //since i will be equal to t therefore i is assigned to 0.

while(t--)
{
if(num[i]<=1000000)
{
while(num[i]++)
{
reverse=0;
same=num[i];

while(same>0)
{
reverse=reverse*10;
reverse=reverse+same%10;
same=same/10;
}
if(reverse==num[i])
printf("%d",reverse);

printf("\n");

if(reverse==num[i])
break;
}
}
i++;
}
return 0;
}

我不知道我哪里错了。很抱歉我问这个问题可能之前有人问过这个问题。我试图找到结果但找不到答案。谢谢 advance 抱歉我的英语不好。

最佳答案

题目没有说这个数会小于1000000,而是说这个数小于100万位。一百万位的数字看起来像这样

591875018734106743196734198673419067843196874398674319687431986743918674319867431986743198674319876341987643198764319876341987643198764319876431987643198763419876431987643198764319876139876...

您不能使用 scanf 读取具有百万位的数字,也不能将该数字存储在 int 中。

关于c - 为什么我在 ideone 和 codechef 编译器中出现运行时错误,而在我的终端中却没有?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31686088/

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