我需要找到C中150位数字中10位连续数字的最大乘积,但我看不出什么错误。
我使用nr[]
存储10个连续数字,n
存储最大的10个数字。
#include <stdio.h>
#include <stdlib.h>
int main()
{
int array[150]={7,3,1,6,7,1,7,6,5,3,1,3,3,0,6,2,4,9,1,9,2,2,5,1,1,9,6,7,4,4,2,6,5,7,4,7,4,2,3,5,5,3,4,9,1,9,4,9,3,4,9,6,9,8,3,5,2,0,3,1,2,7,7,4,5,0,6,3,2,6,2,3,9,5,7,8,3,1,8,0,1,6,9,8,4,8,0,1,8,6,9,4,7,8,8,5,1,8,4,3,8,5,8,6,1,5,6,0,7,8,9,1,1,2,9,4,9,4,9,5,4,5,9,5,0,1,7,3,7,9,5,8,3,3,1,9,5,2,8,5,3,2,0,8,8,0,5,5,1,1};
int i,l,j,nr[10];
long int n=1,k;
for(i=0;i<140;i++){
k=1;
for(j=i;j<i+10;j++){
k=k*array[j];
}
if(n<k){
for(l=0;l<10;l++){
nr[l]=array[i+l];
}
n=k;
}
for(i=0;i<=9;i++){
printf("%d ",nr[i]);
}
return 0;
}
}
答案 0 :(得分:1)
尝试for(i=1;i<=150;i++);
因为你需要150位数字
答案 1 :(得分:0)
您遇到的最大问题是外部return
循环中有for
。这意味着在您查看第一批10个数字后,您将从循环中退出。
您还遇到一个问题,即您在外部循环中打印了nr
数组,因此会打印很多内容。你可能想在外面,就在你回来之前。
修复那些提供了一个字符串:
9 4 9 4 9 5 4 5 9 5
我没有检查过,但是那里有很多9,并且没有任何小于4,所以可以很容易地想象它是曾经成倍增加的最大字符串。