啊哈磊_编程从这里起步

标题: 新手求大佬帮看下代码 [打印本页]

作者: 莫小言    时间: 2017-12-15 20:05
标题: 新手求大佬帮看下代码
#include <stdio.h>
#include <math.h>
#include <string.h>
#include <ctype.h>
void bj(char *a[5],int n)
{
int i,j,k;
char *t,*p;
for(i=0;i<4;i++)
{
k=i;
        for(j=i+1;j<5;j++)
        if(strcmp(a[k],a[j])>0)k=j;  //strcmp(a+k,a+j)能运行但是结果又不对
       if(k!=i)
       {
      t=a[k];a[k]=a[i];a[i]=t;
       }
}
}

int main()
{
        char *p[5];
    int i;
    for(i=0;i<5;i++)
                gets(p+i);
    bj(p,5);
    for(i=0;i<5;i++)
                printf("%s\n",p+i);
    system("pause");
        return 0;
}
输入5个字符串比较代码编写没有错误运行时候就不行了
新手求哪位大佬解释下


作者: 创世菌    时间: 2017-12-15 20:05
本帖最后由 Living Things. 于 2018-3-26 13:59 编辑

#include <stdio.h>
#include <string.h>
char p[6][256];
  
void bj(void)
{
    int i,j;
    for(i=0;i<4;i++)
        for(j=0;j<4;j++)
            if(strcmp(p[j],p[j+1])>0)
            {
                strcat(p[5],p[j]);
                strcat(p[j],p[j+1]);
                strcat(p[j+1],p[5]);
            }
}
  
int main(void)
{
    int i;
    for(i=0;i<5;i++)
        gets(p);
    bj();
    for(i=0;i<5;i++)
        puts(p);
    system("pause");
    return 0;
}

作者: 莫小言    时间: 2017-12-16 08:46
创世菌 发表于 2017-12-15 22:46
[mw_shl_code=c,true]#include
#include
char p[6][256];

打印结果不对啊
作者: 创世菌    时间: 2017-12-16 17:56
莫小言 发表于 2017-12-16 08:46
打印结果不对啊

现在没事了。

360截图166206169912492.png (32.97 KB, 下载次数: 18)

结果

结果

字符串排序.c

521 Bytes, 阅读权限: 10, 下载次数: 2

解答


作者: 莫小言    时间: 2017-12-16 20:03
创世菌 发表于 2017-12-16 17:56
现在没事了。

你试下别的还有问题,是不是啊哈c有些bug;
作者: 创世菌    时间: 2017-12-17 11:11
莫小言 发表于 2017-12-16 20:03
你试下别的还有问题,是不是啊哈c有些bug;

把你的测试数据(就是你输入的字符串)给我。




欢迎光临 啊哈磊_编程从这里起步 (https://bbs.codeaha.com/) Powered by Discuz! X3.2