gpt4 book ai didi

c中的char到int转换错误

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

我给出一个 1000 位数字作为输入,并使用此程序求出 5 个连续整数的最大乘积。数组 a 用于保存具有最高乘积的序列。我得到了一个意想不到的答案(我怀疑问题出在从 char 到 int 的转换上)

#include <stdio.h>
int main(void)
{
int a[5],c=0,b,i=1;
char *num[1000];
scanf("%s",&num);
while(i<5)
{
a[i]=num[i]-'0';
i++;
}
while(i<1000)
{
b=(char)num[i]-'0';
if(a[c]<b)
{
a[c]=b;
c=(c+1)%5;
}i++;
}
printf("%d",a[0]*a[1]*a[2]*a[3]*a[4]);
return 0;
}

最佳答案

您分配和读取字符串的代码是错误的。您正在分配一个包含 1000 个指针的数组。你打算写:

char num[1000];
scanf("%s", num);

您的其余代码也充满了错误。您打算将 i 初始化为 0。并且您需要在第二次循环之前将其设置回 0。您的第二个循环运行到 1000,因此访问 num 的未初始化元素。

关于c中的char到int转换错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21266444/

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