难以发现的程序的一个潜在错误
我学C语言才一个月,这里有一个很简单的程序,但是一输入数据然后运行就会发生vc提示"有一错误发生导致运行停止",但是找了半天也没发现,哪位大哥大姐能够帮我解决下,本人不胜感激.也可以把解决方案发至我的邮箱.谢了.我的邮箱:zhxu0926@下面是程序
输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,
输出数组。
#include "stdio.h"
main()
{
void input(int number[10]);
void max_min(int array[10]);
void output(int array[10]);
int number[10];
input(number);
max_min(number);
output(number);
}
void input(number)
int number[10];
{ int i;
for(i=0;i<9;i++)
scanf("%d,",&number[i]);
scanf("%d",&number[9]);
}
void max_min(array)
int array[10];
{int *max,*min,k,l;
int *p,*arr_end;
arr_end=array+9;
max=min=array;
for(p=array+1;p<=arr_end;p++)
if(*p>*max) max=p;
else if(*p<*min) min=p;
l=*max;
k=*min;
*p=array[0];array[0]=l;l=*p;
*p=array[9];array[9]=k;k=*p;
return;
}
void output(array)
int array[10];
{ int *p;
for(p=array;p<array+9;p++)
printf("%d,",*p);
printf("%d\n",array[9]);
}
还有一个,问下,为什么int k[10]前要加static,而不加程序就会出现错误
/一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程找出1000以内的所有完数。
#include "stdio.h"
main()
{
static int k[10];
int i,j,n,s;
for(j=2;j<1000;j++)
{
n=-1;
s=j;
for(i=1;i<j;i++)
{
if((j%i)==0)
{
n++;
s=s-i;
k[n]=i;
}
}
if(s==0)
{
printf("%d is a wanshu",j);
for(i=0;i<n;i++)
printf("%d,",k[i]);
printf("%d\n",k[n]);
}
}