|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
一个找出最小值的简单程序 但是执行出现了问题
#include <stdio.h>
#define max 1024
int main(void)
{
int n,array[max],min;
scanf("%d",&n);//n代表期望数字个数
for(int i=0;i<n;i++)
{
scanf("%d ",&array[i]);
}//问题出现在这里 只需要输入n个数,但是运行时需要输入n+1个数才能正常运行
min=0;
for(int i=1;i<n;i++)
{
if(array[i]<array[min])
{
min=i;
}
}
printf("min = %d",array[min]);
return 0;
}
可是i=0,i<n,不是表示在for中循环n次,也就是读取n个数吗
i=1后程序运行正常,但不支持n=1的情况
求各位大神解答,不胜感激!!!
- #include <stdio.h>
- #define max 1024
- int main(void)
- {
- int n, array[max], min;
- scanf("%d",&n);
- for(int i = 0; i < n; i++)
- {
- scanf("%d",&array[i]); //%d 之后不要空格
- }
- min = 65536;
- for(int i = 1; i < n; i++)
- {
- if(array[i] < min)
- {
- min = array[i];
- }
- }
- printf("min = %d", min);
- return 0;
- }
复制代码你是单次输入,不需要空格,你空格,当作期望接受到空白,虽然输入多一次,但是最后一个是不被考虑的,只是完成空格的作用。
|
|