[C语言]改错
#include"stdio.h"
#include"string.h"
char swap(char *p1,char *p2)
{
char *temp[20];
strcpy(temp,p1);
strcpy(p1,p2);
strcpy(p2,temp);
}
main(){
char *str1[20],*str2[20],*str3[20]; /*这里没错吧?定义了一个字符指针数组*/
gets(str1);
gets(str2);
gets(str3);
if(strcmp(str1,str2)>0)/*这里怎么比的里?这里的str1是代表字符指针数组的首地址即&str[0] /*吗?*/
swap(str1,str2);
if(strcmp(str1,str3)>0)
swap(str1,str3);
if(strcmp(str2,str3)>0)
swap(str2,str3);
printf("%s\n%s\n%s\n",str1,str2,str3);
}
问题点数:0、回复次数:5Top
1 楼dongxi521(小东西)回复于 2006-06-04 13:30:43 得分 0
应该是定义成char str1[20], str2[20},str3[20];数组名字已经是指针了不是?Top
2 楼nysst_hxl()回复于 2006-06-05 10:59:04 得分 0
你没搞明白字符指针数组的概念
照你那样定义,你知道数组里放的是什么吗?
里面放的是20个指向字符串的指针,你用字符串函数去操作一个地址,而不是去操作一个字符,你想想会出现什么情况呢?Top
3 楼nysst_hxl()回复于 2006-06-05 10:59:41 得分 0
下功夫多看看书吧Top
4 楼templarzq(原谅我这一生不羁放纵爱自由,也会怕有一天会跌倒)回复于 2006-06-05 16:25:25 得分 0
char *temp[20];
改成
char temp[20];Top
5 楼templarzq(原谅我这一生不羁放纵爱自由,也会怕有一天会跌倒)回复于 2006-06-05 16:26:38 得分 0
char *str1[20],*str2[20],*str3[20]; /*这里没错吧?定义了一个字符指针数组*/
错鸟。。。去掉*Top




