Он всегда возвращает -1 и как его решить (мне нужна помощь~~~~~~~), и я хочу сравнить все имена
#include <stdio.h> #include <stdlib.h> int compare_str(char info[][20]); void swap(char info[20]); int main() { int n=0; int b,c,i,j; c =2; char tmp[20]; char info[20][20]= { "christina", "victor", "chris", "chester", "elta", "kezia", "bew", "grace", "mavis", "tony", "oat", "adonique", "ploy" }; for(b=0; b<13; b++) { printf("%d", c); c=compare_str(info[20]); printf("%d", c); if (c==1) { swap(info[20]); } } printf("Sorted list in ascending order:\n\n", info[20]); for(j=0; j<12; j++) { printf("%s\n",info[j]); } return 0; system("pause"); } int compare_str(char info[][20]) { int i=0; int j=0; if(info[i][j]==info[i+1][j]) { while(info[i][j]==info[i+1][j]) { if (info[i][j]=='\0' && info[i+1][j]=='\0') { return 0; break; } i++; j++; } if (info[i][j]>info[i+1][j]) { printf("should swap"); return 1; } else if(info[i][j]<info[i+1][j]) { printf("bla"); return -1; } } if(info[i][j]<info[i+1][j]) { return -1; } else if(info[i][j]>info[i+1][j]) { printf("should swap"); return 1; } } void swap(char info[20]) { printf("swap"); char tmp[20]; int i; for(i=0; i<=19; i++) { tmp[i]=info[i]; info[i]=info[i+1]; info[i+1]=tmp[i]; } }
Что я уже пробовал:
я пытался напечатать что-то в коде и протестировать, но до сих пор не знаю, как это решить