找出数组最小值及其下标
例7-4
#include<stdio.h>
int main()
{
int i,index,n;
int a[10];
printf("Enter n: ");
scanf("%d",&n);
printf("Enter %d :",n);
for(i=0; i<n; i++)
scanf("%d",&a[i]);
index=0; //假设为最小值
for(i=1; i<n; i++)
if(a[i] < a[index])
index=i;
printf("min=%d\tsub is%d\n",a[index],index);
return 0;
}
Enter n: 6
Enter 6 :2 9 -1 8 1 6
min=-1 sub is2
再例7-4的基础上,最小值和第一个数交换
练习7-4
#include<stdio.h>
int main()
{
int i,index,n;
int a[10];
printf("Enter n: ");
scanf("%d",&n);
printf("Enter %d :",n);
for(i=0; i<n; i++)
scanf("%d",&a[i]);
index=0;
for(i=1; i<n; i++)
if(a[i] < a[index])
index=i;
printf("min=%d\tsub is%d\n",a[index],index);
int temp;
temp=a[index];
a[index]=a[0];
a[0]=temp;
for(i=0; i<n; i++)
{
printf("%d ", a[i] );
}
return 0;
}
Enter n: 6
Enter 6 :2 9 -1 8 1 6
min=-1 sub is2
-1 9 2 8 1 6
选择排序法从小到大排序
例7-5
#include<stdio.h>
int main()
{
int i,index,k,n,temp;
int a[10];
printf("Enter n: ");
scanf("%d",&n);
printf("Enter %d:",n);
for(i=0; i<n; i++)
{
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("After sorted: ");
for(i=0; i<n; i++)
printf("%d ",a[i]);
printf("\n");
return 0;
}
Enter n: 5
Enter 5:3 5 2 8 1
After sorted: 1 2 3 5 8
//投票情况统计
例7-6
#include<stdio.h>
int main()
{
int i,r;
int count[9];
for(i=1; i<=8; i++)
count[i]=0;
for(i=1; i<=10; i++)
{
printf("Enter your r: ");
scanf("%d",&r);
if(r>=1&&r<=8)
count[r]++;
else
printf("invalid:%d\n",r);
}
printf("result: \n");
for(i=1; i<=8; i++)
printf("%4d%4d\n",i,count[i]);
return 0;
}
Enter your r: 3
Enter your r: 6
Enter your r: 7
Enter your r: 8
Enter your r: 9
invalid:9
Enter your r: 1
Enter your r: 2
Enter your r: 3
Enter your r: 4
Enter your r: 5
result:
1 1
2 1
3 2
4 1
5 1
6 1
7 1
8 1