我给出了1000位数字作为输入,并使用此程序查找5个连续整数的最大产品。数组A用于将序列保存为最高产品。
#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);
您的其余代码也充满了错误。您的意思是初始化为0。您需要在第二个循环之前将其设置回0。您的第二个循环运行到1000,因此访问num的非初始化元素。