定义一个数组时 方括号里面东西的不能书变量!
你定义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; } 我运行过了 没问题了。
#include
main()
{
int N,s[10000],i,j,temp,tag;
printf("Input the value of N:\n");
scanf("%d",&N);
//输入N个整数
for(i=0;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;i
printf("\n");
printf("The palace of the smallest:%d",tag);//数值下标从0开始,输出原始数组的是下标
return 1;
}
定义一个变量min,并赋予一个可能的最大值,再定义一个变量用于记录位置,输入数字时判断与min的大小,如果小于,则把min赋值为输入的数,并记录位置。最后将两个数对换即可…
同一楼,应该把N定义为一个可修改的全局变量,而在函数中定义一个足够大的数组,比如s[100]。
另外,int k;要放在最开始定义,不能在过程中定义。