第25-38行,b1到bn-1的数都没了,怎么解决啊。
#include<stdio.h>
int main()
{
int n,i,j,k,min,temp;
int a[20],b[20];
scanf("%d",&n);
for(i=1;i<=n;i++){
scanf("%d",&a[i]);
b[i]=a[i];
}
for(k=1;k<n;k++){
min=k;
for(i=k+1;i<n+1;i++){
if(b[i]<b[min]){
min=i;
}
}
temp=b[min];
b[min]=b[k];
b[k]=temp;
}
for(i=1;i<=n;i++){
printf("%d ",b[i]);
}
printf("\n");
for(i=1;i<n;i++){
for(j=i+1;j<=n;j++){
if(b[i]=b[j]){
b[j]=9999999;
}
else{
b[i]=b[i];
}
}
}
for(i=1;i<=n;i++){
printf("%d ",b[i]);
}
for(k=1;k<n;k++){
min=k;
for(i=k+1;i<n+1;i++){
if(b[i]<b[min]){
min=i;
}
}
temp=b[min];
b[min]=b[k];
b[k]=temp;
}
printf("\n");
for(i=1;i<=n;i++){
printf("%d ",b[i]);
}
printf("\n");
for(i=1;i<=n;i++){
for(j=1;j<=n;j++){
if(a[i]=b[j]){
printf("%d ",j);
}
}
}
return 0;
}
if语句里少写了等号
#include <stdio.h>
int main()
{
int n, i, j, k, min, temp, cnt = 0;
int a[20][2], b[20] ; //a[][0]存数据,a[][1]存排序号
scanf("%d", &n);
for (i = 0; i < n; i++) //
{
scanf("%d", &a[i][0]);
a[i][1] = 0;
for (j = 0; j < i; j++) //b只保存不重复项
{
if (b[j] == a[i][0])
break;
}
if (j == i)
{
b[cnt] = a[i][0];
cnt++; //不同项数量
}
}
// b排序
for (k = 0; k < cnt - 1; k++)
{
for (i = k + 1; i < cnt; i++)
{
if (b[i] < b[k])
{
temp = b[i];
b[i] = b[k];
b[k] = temp;
}
}
}
//从a中按b的顺序查找并赋值顺序号
for (i = 0; i < cnt; i++)
{
for (j = 0; j < n; j++)
{
if (a[j][0] == b[i])
{
a[j][1] = i + 1;
}
}
}
for (i = 0; i < n; i++)
{
printf("%d ", a[i][1]);
}
return 0;
}