#include<stdio.h>
void main()
{
int mintomax(int array[5]);
int a[5];
int i;
for(i=1;i<=5;i++)
{
scanf(“%d”,&a[i]);
}
printf(“%d”,mintomax(a[5]));
getch();
}
int mintomax(int array[5])
{
int i,z,t;
z=array[1];
for(i=2;i<=5;i++)
{
if(z>array[i])
{
t=z;z=array[i];array[i]=t;
}
}
return(z);
}
这段代码是输入5个数字 然后输出最小的数 但是运行后却是错的 我写的原先的代码是没有写mintomax这个函数的 直接把所有代码写在mian里 这样的话输出是对的 但是写成一个函数却是错了
>> 本文固定链接: http://www.vcgood.com/archives/3266
#include<stdio.h>
void main()
{
int a[5];
int i;
for(i=0;i<5;i++)
{
scanf(“%d”,&a[i]);
}
printf(“%d”,mintomax(a));
//getch();
}
int mintomax(int array[5])
{
int i,z,t;
z=array[0];
for(i=1;i<5;i++)
{
if(z>array[i])
{
t=z;z=array[i];array[i]=t;
}
}
return z;
}
问题很严重,你不知道,数组下标是从0开始的
请问我不用0这个数组不行吗 我上面的程序也没有用到0这个数组啊
你不用0就只能从第二个数值开始访问,而且数组a[n]只能调用到a[n-1],否则内存出错
产生数组越界了