前提・実現したいこと
文字列のソートプログラムを書いたのですが、正しくソートされません。文字の大きさ比較はASCII code表に従っているはずです。
発生している問題・エラーメッセージ
結果は以下のようになります。 endoの並びがおかしいです。 整列後 kaneko miyashita endo ono sato suzuki tanaka
該当のソースコード
C
1#include <stdio.h> 2#include <string.h> 3 4#define N 32 5#define n 7 6 7void sort(char strCopy[][N]) 8{ 9 char temp[N]={0},str1[N]={0},str2[N]={0}; 10 for (int i=0;i<n;i++){ 11 for (int j=i;j!=0;j--){ 12 for (int k=0;k<N;k++){ 13 str1[k]='\0'; 14 str2[k]='\0'; 15 } 16 strcpy(str1,strCopy[j-1]); 17 strcpy(str2,strCopy[j]); 18 19 for (int l=0;l<N;l++){ 20 if (str1[l]>str2[l]){ 21 strcpy(temp,strCopy[j]); 22 strcpy(strCopy[j],strCopy[j-1]); 23 strcpy(strCopy[j-1],temp); 24 break; 25 } 26 } 27 } 28 } 29 printf("整列後\n"); 30 for (int m=0;m<n;m++){ 31 printf("%s\n",strCopy[m]); 32 } 33 34} 35 36int main(void) 37{ 38 char strCopy[n][N]={"tanaka","sato","suzuki","ono","endo","miyashita","kaneko"}; 39 sort(strCopy); 40 return 0; 41} 42 43 44 45ソースコード
試したこと
0クリアを挟んでみました。
補足情報(FW/ツールのバージョンなど)
xcode Version 11.2 (11B52)
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/06/26 14:50