使用递增操作符的数组输入,比如说
int b[100],i=0;
while(cin>>a){
b[i++]=a;
}
//在这个代码中,i是从1开始存数的,也就是数的范围从b[1]开始,而不是0
对于排序,并且输出排序之后的角标的那种题,就可以看作
排序前
a[1]=12(数) | a[1]=1 | a[1]=16 | a[1]=19 | a[1]=54 |
b[1]=1(角标) | b[2]=2 | b[3]=3 | b[4]=4 | b[5]=5 |
排序后
a[1]=1 | a[2]=12 | a[3]=16 | a[4]=19 | a[5]=54 |
b[1]=2 | b[2]=1 | b[3]=3 | b[4]=4 | b[5]=5 |
就是在排序的过程中,数组里面的数交换,角标数组里面的数也换顺序
#include<bits/stdc++.h> using namespace std; #define N 15 int main(){ int a[N],b[N]; for(int i=1;i<=10;i++){ cin>>a[i]; b[i] = i; } for(int i=1;i<=10;i++){ for(int j=1;j<=10-i;j++){ if(a[j]>a[j+1]){ swap(a[j],a[j+1]); swap(b[j],b[j+1]); } } } for(int i=1;i<=9;i++){ cout<<a[i]<<' '; }cout<<a[10]; cout<<endl; for(int i=1;i<=9;i++){ cout<<b[i]<<' '; }cout<<b[10]; return 0; }
标签:12,int,5.12,角标,swap,数组,排序 From: https://www.cnblogs.com/sly-345/p/18187477