バブルソートで、数字の昇順に合わせて、それに対応する文字列(例えばdata[0]に対応する文字列は*name[0]の"omega")も一緒に並び替えたいのですが、うまくいきませんでした。
多分文字列の入れ替え方が余りわかってません。自分で作ってみたコードを貼り付けるのでどこがだめなのか教えてほしいです。
結果は2beta 3gamma 4delta・・・のようにしたいです。
#include <stdio.h> int main(void) { int data[8] = {800,9,2,4,5,3,30,500}; int temp; char *name[8] = {"omega","theta","beta","delta","epsikon","gamma","lambda","phi"}; char *stemp; int i,j; int n = 8; printf("Before sorting\n"); for (i = 0; i<n; i++); { printf("%3d", data[i]); printf("%s\n",name[i]); } printf("\n"); for (j = n-1; j>= 1; j--){ for (i = 0; i<=j-1; i++){ if (data[i]>data[i+1]){ temp = data[i]; data[i]=data[i+1]; data[i+1] = temp; &stemp = &name[i]; &name[i]=&name[i+1]; &name[i+1] = &stemp; } } } printf("\n"); printf("After sorting\n"); for (i = 0; i<n; i++); { printf("%3d", data[i]); printf("%s\n",name[i]); } return 0; } コード
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/14 15:28