这个代码不能正确输出最大字符串的原因是因为在比较字符串大小的时候,使用了错误的比较方式。strcmp函数返回值为0表示两个字符串相等,大于0表示第一个字符串大于第二个字符串,小于0表示第一个字符串小于第二个字符串。但是在代码中使用的是小于号(<)进行了比较,这是错误的。

另外,在比较的时候,应该使用a[i][j]和a[i][j+1]进行比较,而不是max和a[i][j+1]进行比较。

正确的代码应该是这样的:

#include "stdio.h" #include "string.h" int main(){ char a[3][32] = {"abc","bcd","zzz"}; char temp[32]; for (int i = 0; i < 2; ++i) { for (int j = 0; j < 2 - i; ++j) { if(strcmp(a[i][j], a[i][j+1]) > 0) { strcpy(temp,a[i][j]); strcpy(a[i][j],a[i][j+1]); strcpy(a[i][j+1],temp); } } } printf("%s\n",a[2]);

#include stdioh#include stringhint main char a332 = abcbcdzzz; int temp32; char max = a00; for int i = 0; i 2; ++i for int j = 0; j 2 - i; ++j ifstrcmpmaxaij+1 0

原文地址: https://www.cveoy.top/t/topic/cJj5 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录