| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1072 人关注过本帖
标题:C语言指针:我这道题哪里错了?
取消只看楼主 加入收藏
EricZhan
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2010-7-9
结帖率:86.67%
收藏
 问题点数:0 回复次数:3 
C语言指针:我这道题哪里错了?
把字符从小到大的顺序排起来.
#include "stdio.h"
#include "string.h"
int bb(char*a[],int n)
{ int b,k,i;
    char *temp;
    for(b=0;b<n-1;b++)
    {for(k=b+1;k<n;k++)
        {
            i=strcmp(a[b],a[k]);
            if(i>0)
        {temp=a[k];a[k]=a[b];a[b]=temp;}
    }
    }
    }   
void main()
{
    char *a[3]={"ok","zhan","year"};
    int n=3;
    bb(a,n);
    for(n=0;n<3;n++)
    printf("%s\n",a[n]);
}
搜索更多相关主题的帖子: C语言 指针 
2010-07-28 22:59
EricZhan
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2010-7-9
收藏
得分:0 
以下是引用tedfare在2010-7-28 23:16:36的发言:

我这里编译通过,对的呢,你的意思是把字符串从小到大排列吧
太奇怪了,昨天我试还是顺序不变的,今天一试就OK了.
2010-07-29 08:02
EricZhan
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2010-7-9
收藏
得分:0 
我改了由操作作自己输入三个字符串
#include "stdio.h"
#include "string.h"
int bb(char*a[],int n)
{ int b,k,i;
    char *temp;
    for(b=0;b<n-1;b++)
    {for(k=b+1;k<n;k++)
        {
            i=strcmp(a[b],a[k]);
            if(i>0)
        {temp=a[k];a[k]=a[b];a[b]=temp;}
    }
    }
    }   
void main()
{
    char *a[3];
    int n=3,i;
    for(i=0;i<3;i++)
    scanf("%s",a[i]);
    bb(a,n);
    for(n=0;n<3;n++)
    printf("%s\n",a[n]);
    getch();
}

在win-tc中能运行,但是在那个C语言实验系统中就出错了,这是为什么?
2010-07-29 08:20
EricZhan
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2010-7-9
收藏
得分:0 
回复 9楼 erikyo
我就是在这里迷惑不解了,但程序的确可以运行int *a[]可以赋值,我不明白这是为什么?还有字符型的也一样char *a为什么也能赋值,如*a="xxxxx".没有分配空间,它们如何储存?
2010-07-29 14:18
快速回复:C语言指针:我这道题哪里错了?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012136 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved