/*找出数组的最小值和它所对应的下标*/
#include<stdio.h>
int main(void)
{
int i,index,n;
int a[10]; /*数组长度上限是10*/
printf("enter n:"); /*提示输出*/
scanf("%d",&n);
printf("enter %d integers:",n); /*提示输入n个数字*/
for(i=0;i<n;i++)
scanf("%d",&a[i]); /*找最大值a[index]*/
index=0; /*假设a[0]是最小值,即下标为0的元素的最小*/
for(i=1;i<n;i++)
if(a[i]>a[index]) /*如果a[i]比假设的最小值大*/
index=i; /*再假设a[i]是新的最大值,即下标为i的元素最小*/
printf("max is %d sub is %d
",a[index],index);
return 0;
}
/*分别按正序和逆序排列n个数*/
#include<stdio.h>
int main(void)
{
int i,n,a[10];
printf("输入n:");
scanf("%d",&n);
for(i=0;i<n;i++){
printf("enter a:");
scanf("%d",&a[i]);
}
for(i=0;i<n;i++){ /*正序排列输出*/
printf("数组元素a[%d],元素值%d
",i,a[i]);
}
printf("
");
for(i=n-1;i>=0;i--){ /*逆序排列输出*/
printf("数组元素a[%d],元素值%d
",i,a[i]);
}
return 0;
}
/*按矩阵的形式输出二维数组*/
#include<stdio.h〉
int main(void)
{
int i,j;
int a[3][2]; /*定义1个二维数组a*/
for(i=0;i<3;i++) /*行下标是外循环的循环变量*/
for(j=0;j<2;j++) /*列下标是内循环的循环变量*/
a[i][j]=i+j; /*给数组元素赋值*/
for(i=0;i<3;i++){ /*针对所有行的循环*/
for(j=0;j<2;j++) /*输出第i行的所有元素*/
printf("%4d",a[i][j]);
printf("
");
}
return 0;
}
/*选择排序法*/
#include<stdio.h>
int main(void)
{
int i,index,k,n,temp;
int a[10];
printf("enter n:");
scanf("%d",&n);
printf("enter %d integers:");
for(i=0;i<n;i++) /*将输入数依次赋给数组a的n个元素a[0]~a[n-1]*/
scanf("%d",&a[i]);
for(k=0;k<n-1;k++){
index=k;
for(i=k+1;i<n;i++)
if(a[i]>a[index]) index=i;
temp=a[index];
a[index]=a[k];
a[k]=temp;
}
printf("从大到小:");
for(i=0;i<n;i++)
printf("%d",a[i]);
printf("
");
return 0;
}