将几个数拼接成一个最大的数
我写的代码算法不对,请先忽略。我的问题是:那个for循环注释掉后,第二个打印出来的数有乱码;如果取消注释,则没有乱码。求解释
程序代码:
#include <stdio.h> #include <string.h> void sort(char a[][6], int n); main() { char a[6][6] = {"50", "2", "203", "9", "1", "24"}; int max_num, i; /*for(i = 0; i < 6; i++) printf("%s", a[i]); printf("\n");*/ sort(a,6); for(i = 0; i < 6; i++) printf("%s", a[i]); printf("\n"); } void sort(char a[][6], int n) { char temp[6]; int i, j; for(i = 0; i < n; i++) { for(j = 0; j < n - i; j++) { if(strcmp(a[j], a[j+1]) < 0) { strcpy(temp, a[j]); strcpy(a[j], a[j+1]); strcpy(a[j+1], temp); } } } }