C语言请帮忙查找程序不能运行的问题

来源:百度知道 编辑:UC知道 时间:2024/06/15 05:08:28
程序是求一个最小的正整数,这个正整数被任意n(2<=n<=10)除都是除不尽的,而且余数总是(n-1)。例如:被9除时的余数为8。
只请帮忙找到程序不能运行的问题所在!!!
#include<stdio.h>
#define SIZE 9
int invite(int x,int y);

int main()
{
int i,sum;
int arr[SIZE]={2,3,4,5,6,7,8,9,10};
sum = arr[0];
for (i=1;i<SIZE;i++)
sum = invite(sum,arr[i]);
printf("the number is %d",sum-1);
getch();
}

int invite(int x,int y)
{
int temp;
int sum=x*y;
if (x>y) /*找出两个数中的较大值*/
{
temp = x;
x = y;
y = temp; /*交换两个整数*/
}
while (y!=0) /*采用辗转相除法求最大公约数*/
{
temp = x%y;
x = y;
y = temp;
}
return sum/y;
}

int arr[SIZE+1]={2,3,4,5,6,7,8,9,10}; //这一行数组定义有问题

int main() //没有返回 最好定义为 VOID

while (y!=0) /*采用辗转相除法求最大公约数*/
{
temp = x%y;
x = y;
y = temp;
}
return sum/y; //看这里 上面的循环出来 y的值肯定为0 而你却用0做除数 肯定错了 你仔细看看你的算法

楼上的就:int arr[SIZE+1]={2,3,4,5,6,7,8,9,10}; //这一行数组定义有问题
这一句有问题,楼主的定义可以通过