|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include <stdio.h>
//创建一个函数,返回元素个数为n的int型的数组中的最小值
int min_of(const int v[],int n)
{
int min = v[0];
int i;
for (i = 1;i <= n;i++)
if (v[i] < min)
min = v[i];
return min;
}
int main(void)
{
int n,i;
int v[80];
printf("你想输入多少个数:"); scanf("%d",&n);
for (i = 0;i < n;i++)
scanf("%d",&v[i]);
printf("最小值为:%d",min_of(v,n));
return 0;
}
求求大佬教教我为啥最后输出的一直是0
问题出在for循环的条件判断上。在函数 min_of 中,for循环的条件应该是 i < n ,而不是 i <= n 。因为数组的索引是从0开始的,所以最后一个元素的索引是 n-1 ,而不是 n 。所以,将for循环的条件改为 i < n 即可解决问题。
修改后的代码如下:
- #include <stdio.h>
- //创建一个函数,返回元素个数为n的int型的数组中的最小值
- int min_of(const int v[],int n)
- {
- int min = v[0];
- int i;
-
- for (i = 1;i < n;i++)
- if (v[ i] < min)
- min = v[ i];
-
- return min;
- }
- int main(void)
- {
- int n,i;
- int v[80];
-
- printf("你想输入多少个数:");
- scanf("%d",&n);
- for (i = 0;i < n;i++)
- scanf("%d",&v[ i]);
- printf("最小值为:%d",min_of(v,n));
-
- return 0;
- }
复制代码
这样修改之后,程序就能正确输出最小值了。
|
|