|  | 
 
 发表于 2016-8-6 17:29:59
|
显示全部楼层 
| 本帖最后由 廿文廿武 于 2016-8-6 17:32 编辑 
 楼主用的什么IDE,神了,你一步一步的调试就知道是什么回事了,前面的FOR循环只是把数组里的元素改来改去,循环结束后a[1]被改成fwo了,当然是输出这个结果了。
 
 
 复制代码#include <stdio.h>
int main()
{
        char a[5][10] = { "one","two", "three", "four", "five" };
        int i, j;
        char t;
        for (i = 0; i<2; i++)
        {
                for (j = i + 1; j<5; j++)
                {
                        if (a[i][0] > a[j][0])
                        {
                                t = a[i][0];
                                a[i][0] = a[j][0];
                                a[j][0] = t;
                        }
                }                        
        }
        puts(a[1]);
        return 0;
}
 一是像这种给出字符串的二维数组,如a[0][0]这种是对应哪个字符串或者说对应哪个字符串的字母?
 a[0][0] = 'o'    a[1][1] = 'w'  a[4][1] = 'i'
 
 二是它要输出的是a[1],这是什么意思呢,怎么就得到fwo了?
 a[1]会输出fwo上面说过了,如果没循环之前的结果就是
 
 a[0] = "one"
 a[1] = "two"
 a[2] = "three"
 a[3] = "four"
 a[4] = "five"
 | 
 |