c语言的一个程序问题:在主函数中输入10个等长的字符串。对它排序,麻烦看下我的代码有什么问题,谢谢

上面的代码不知哪儿错了,请指出下。
还有就是运用指针时经常会出现suspicious pointer conversion 这又是怎么回事?

第1个回答  2013-12-04
指针比较麻烦,直接用数组简单。
赋值用strcpy()

#include<stdio.h>
int main(){
char a[10][10],c[10];
int i,j;
for (i=0;i<10;i++) scanf("%s",a[i]); // 输入10个字符串

for (i=0;i<9;i++)
for (j=i+1;j<10;j++){
if ( strcmp(a[i],a[j]) > 0){ strcpy(c,a[i]); strcpy(a[i],a[j]);strcpy(a[j],c);}; //排队,交换
}
for (i=0;i<10;i++) printf("%s\n",a[i]); //输出
return 0;
}追问

我在练习指针的用法,麻烦你看看我的代码有什么问题

我在练习指针的用法,麻烦你看看我的代码有什么问题

追答

10 个字符串,下标要到9,含9。
**t = a+i; 这种语句行不通。**t 也无存储单元。简单地 用 char t[10];
#include
main(){
char (*a)[10],c[10][10], t[10];
int i,j;
for (i=0;i0) {
strcpy(t,a+i);strcpy(a+i,a+j);strcpy(a+j,t);
}
for (i=0;i<10;i++) printf("%s\n",a+i);
return 0;
}

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网