定义字符指针数组char *str[5]分别指向5 个字符串常量,从小到大输出字符串的内容

C语言 码拜 8年前 (2016-04-25) 2189次浏览
#include "stdio.h"
#include "string.h"
int main(int argc, char const *argv[])
{
	char *str[5] = {"fvdwadadawd","aadw", "s", "derfef", "awa"};
	int i, j;
	int min;
	for(i=0; i<5-1; i++)
	{
		min = i;
		for(j=i+1; j<5; j++)
		{
			min = strlen(str[min]) > strlen(str[j]) ? j : min;
		}
		if(i != min)
		{
			char *tmp = str[i];
			str[i] = str[min];
			str[min] = tmp;
		}
		for(i=0; i<5; i++)
		{
			printf("%s\n", str[i]);
		}
	}

	return 0;
}

运行结果:
s
aadw
fvdwadadawd
derfef
awa
问一下哪里错了?

解决方案

10

比较大小为什么不用strcmp?

190

printf的循环放错位置了。把他拿到最后,紧挨着retun 0

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明定义字符指针数组char *str[5]分别指向5 个字符串常量,从小到大输出字符串的内容
喜欢 (0)
[1034331897@qq.com]
分享 (0)