时隔多天熬过了考试周又要开始敲代码了
哎,居然连冒泡都冒不好了
记录一个神奇的debug旅程
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
int n,m;
scanf("%d %d",&m,&n);
char a[m][20];
int i;
for(i=0;i<m;i++){
scanf("%s",&a[i]);
}
int j;
char temp[20];
for(i=0;i<n;i++){
for(j=0;j<m-i-1;j++){
if(strcmp(a[j],a[j+1])>0){
strcpy(temp,a[j]);
strcpy(a[j],a[j+1]);
strcpy(a[j+1],temp);
}
}
}
for(i=0;i<m;i++){
if(i!=0)printf("\n");
printf("%s",a[i]);
}
return 0;
}
首先是循环那里for(j=0;j<m-i-1;j++)
然后还有可能是越界吧?最大字符串?char a[m][11]; 10就不行。。
还有段错误,果然是指针翻车,把*temp改成temp[20]之后就解决了。