从键盘上输入n个数保存到数组中,找出这n个数的最小值和它的位置,然后把它和数组最前面的元素对调位置

2025-05-24 07:40:50
推荐回答(4个)
回答1:

定义一个数组时 方括号里面东西的不能书变量!

你定义int N;这没错。可是你int s[N]就错了! 

#include

#define N 10

main()

{

 int s[N];

 int i,j,temp,tag;

 //输入N个整数

 for(i=0;i

  scanf("%d",&s[i]);

 printf("\n");

 //找出最小的数和它的下标tag

 temp=s[0];

 for(j=0;j

 {

  if(s[j]

  {//关系错了 应该是"<"

   temp=s[j];

   tag=j;//这个语句是if里面的,应该用花括号 括起来

  }

 }

 //最小的数和数组中最前面的元素对换位置

 s[tag]=s[0];s[0]=temp;

 //int k;  这里没必要定义一个k

 //输出对换后的结果

 for(i=0;i

  printf("%d ",s[i]);

 printf("\n");

 printf("The palace of the smallest:%d\n",tag+1);

 return 1;

}

我运行过了 没问题了。

回答2:

#include
main()
{
int N,s[10000],i,j,temp,tag;
printf("Input the value of N:\n");
scanf("%d",&N);
//输入N个整数
for(i=0;iscanf("%d",&s[i]);
//找出最小的数和它的下标tag
temp=s[0];
for(j=1;j {
if(s[j] {
temp=s[j];
tag=j;
}
}
//最小的数和数组中最前面的元素对换位置
temp=s[tag];
s[tag]=s[0];
s[0]=temp;

//输出对换后的结果
for(i=0;iprintf("%d ",s[i]);
printf("\n");
printf("The palace of the smallest:%d",tag);//数值下标从0开始,输出原始数组的是下标
return 1;
}

回答3:

定义一个变量min,并赋予一个可能的最大值,再定义一个变量用于记录位置,输入数字时判断与min的大小,如果小于,则把min赋值为输入的数,并记录位置。最后将两个数对换即可…

回答4:

同一楼,应该把N定义为一个可修改的全局变量,而在函数中定义一个足够大的数组,比如s[100]。
另外,int k;要放在最开始定义,不能在过程中定义。