C语言做有一个数组,内放10个整数,要求找出最小的数和它的下标再将它和第一个元素对换位置

如题所述

#include "stdio.h"
void main()
{
int a[10],i,j,k,min;
printf("请输入十个整数:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);

min=a[0];
for(i=0;i<10;i++)
{
if(a[i]<=min)
{
min=a[i];
j=i;
}
}
printf("输入数组中最小的数为a[%d]=%d\n",j,a[j]);
k=a[0];
a[0]=a[j];
a[j]=k;

printf("最小值与第一个值互换后数组变为:\n");
for(i=0;i<10;i++)
printf("%4d",a[i]);

}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-04-25
//5. 输入6个学生、3门课程的成绩,统计每个学生的总成绩,
//并输出总分最高的那位学生的3门课程的成绩和总分。
#include <stdio.h>
void main()
{
int a[6][3]={0},ar[3],i,j,max,position,sum,x;
for(i=0;i<6;i++){
for(j=0;j<3;j++){
scanf("%d",&x);
a[i][j]=x;
}
} //输入数据
for(i=0;i<6;i++)
{
sum=0;
for(j=0;j<3;j++)
sum+=a[i][j];
ar[i]=sum;
}
max=ar[0];
position=0;
for(i=0;i<6;i++){
if(ar[i]>max)
{
max=ar[i];
position=i;
}//用来从数组中找到总分最高的,并返回下标
}
printf("总成绩最大为:%d\n",ar[position]);
printf("3门课的成绩分别为:");
for(j=0;j<3;j++){
printf("%d",a[position][j]);
printf("\n");
}
}
第2个回答  2012-05-09
//数组放10个整数,如下
for(i=0;i<10;i++)
scanf("%d",&a[i]);
//找最小数和下标,设定变量t,用来记录最小值的下标,那最小值就是a[t]了,具体代码如下
t=0; //最开始认为最小的是a[0],所以记录下标0给t
for(i=1;i<10;i++) //从元素a[1]开始,逐个取元素和a[t]比
if(a[i]<a[t]) t=i;
//得到最小值下标t,和a[0]换,代码如下:
i=a[0];a[0]=a[t];a[t]=i;本回答被网友采纳
相似回答