当前位置: 代码迷 >> C语言 >> [求助]问题出在哪里呢?
  详细解决方案

[求助]问题出在哪里呢?

热度:176   发布时间:2007-05-13 10:53:50.0
[求助]问题出在哪里呢?

下面是我编的一个程序,编译通过了,但是出来的结果有点问题~~
#include <stdio.h>
#include <conio.h>
main()
{
char *p[5],*temp;
int i,j,k;
clrscr();

printf("Input the data:\n");
for(i=0;i<5;i++)
scanf("%s",p[i]);
printf("\n");

for(i=0;i<4;i++)
{
k=i;
for(j=i+1;j<5;j++)
if(*p[k]>*p[j])
k=j;
temp=p[i];p[i]=p[k];p[k]=temp;
}
for(i=0;i<5;i++)
printf("%s\n",p[i]);
}

搜索更多相关的解决方案: include  

----------------解决方案--------------------------------------------------------
我觉得有这样几个问题吧:
1.scanf("%s",p[i]);应该改为scanf("%c",p[i]);
2.k=j;temp=p[i];p[i]=p[k];p[k]=temp;应该改为else {temp=p[i];p[i]=p[k];p[k]=temp;}(i不是最小的)
3.printf("%s\n",p[i]);应该改为printf("%c\n",p[i]);


----------------解决方案--------------------------------------------------------
你这个程序想干什么啊? 说明白可以吧?
----------------解决方案--------------------------------------------------------

你要干什么啊?说清楚


----------------解决方案--------------------------------------------------------
这样?
#include <stdio.h>
main()
{
char p[5],temp;
int i,j,k;
printf("Input the data:\n");
scanf("%s",p);
for(i=0;i<5;i++)
for(j=0;j<5;j++)
if(p[i]<p[j])
{temp=p[i];p[i]=p[j];p[j]=temp;}
printf("%s\n",p);
}

[此贴子已经被作者于2007-5-13 11:31:01编辑过]


----------------解决方案--------------------------------------------------------

输入五个国家英文名称,然后按字母顺序排列输出


----------------解决方案--------------------------------------------------------
不需要按照2楼的改,问题主要出在字符串的比较上,应该去调用strcmp()函数!然后再根据条件交换!
----------------解决方案--------------------------------------------------------
既然是字符串的比较,那么scanf("%s",p[i]);这句应该是正确的,不能改成scanf("%c",p[i]);
若改成scanf("%c",p[i]);那每个字符串中就只有一个字符了.

----------------解决方案--------------------------------------------------------
8楼说得对
----------------解决方案--------------------------------------------------------
8楼说得对
----------------解决方案--------------------------------------------------------
  相关解决方案