|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #include <stdio.h>
- #include <string.h>
- #define N 8
- int main()
- {
- int a[N]={122,12,15,88,65,78,99,43};
- int i,j,min,max,x,y;
- min=a[0];
- max=a[0];
- for(i=0,j=0;i<N&&j<N;i++,j++)
- {
- if(min>a[i])
- {
- min=a[i];
- x=i;
- }
- if(max<a[j])
- {
- max=a[j];
- y=j;
- }
- }
-
- printf("%d %d\n",min,x);
- printf("%d %d\n",max,y);
- }
复制代码
我想求最大值和最小值及其他们的下标;
为什么是错的呢??
还有这样的问题,在获取 最小或者最大数 的下标的时候:
比如最小值的下标,我给最小值放在自定义数组的最开始的位置(也就是a【0】);
然后我用这样的代码:
int min,i,x;
min=a[0];
for(i=0;i<N;i++)
{
if(min>a[i])
{
min=a[i];
x=i;
}
}
这个时候这个打印出来的x的值是什么呢?
(x未赋初值);
我看网上有很多人也加上了初始值,如果你不加的话,因为最大值就在第一位,所以全程都没有对y进行赋值操作,所以,输出时,C语言就会输出一个乱七八糟的东西给你
- #include <stdio.h>
- #include <string.h>
- #define N 8
- int main()
- {
- int a[N]={122,12,15,88,65,78,99,43};
- int i,j,min,max,x,y;
- min=a[0];
- max=a[0];
- x=0;
- y=0;
- for(i=0,j=0;i<N&&j<N;i++,j++)
- {
- if(min>a[i])
- {
- min=a[i];
- x=i;
- }
- if(max<a[j])
- {
- max=a[j];
- y=j;
- }
- }
-
- printf("%d %d\n",min,x);
- printf("%d %d\n",max,y);
- }
复制代码
|
|