構造体のソート
1466 ワード
2つのメンバー変数、1つの整数n、1つの文字型のcを持つ構造体を定義し、5つの要素を持つ配列を構造体タイプで宣言し、ランダムに初期化し、メンバー変数nに基づいて小さいものから大きいものに並べ替え、出力します.
#include
#include
struct {
int n;
char c;
}myStr[5];
int main(int argc, const char * argv[]) {
int i;
for (i = 0; i < 5; i++) { //
myStr[i].n = rand() % 10;
myStr[i].c = (rand() % ('z' - 'a')) + 'a';
// scanf("%d%c",&myStr[i].n,&myStr[i].c);
}
int j,k;
for (k = 5; k >= 0; k--) { //
for(j = 0; j < k - 1; j++){
int tempN;
char tempC;
if (myStr[j].n > myStr[j+1].n) { //
tempN = myStr[j].n;
tempC = myStr[j].c;
myStr[j] = myStr[j + 1];
myStr[j + 1].n = tempN;
myStr[j + 1].c = tempC;
}else if((myStr[j].n == myStr[j + 1].n) && (myStr[j].c > myStr[j + 1].c)){ //
tempC = myStr[j].c;
myStr[j].c = myStr[j + 1].c;
myStr[j + 1].c = tempC;
}
}
}
int m;
for (m = 0; m < 5; m++) {
printf("%d%c ",myStr[m].n,myStr[m].c);
}
return 0;
}
皆さんと交流して私のメールアドレスを検討することを歓迎します:[email protected]