| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 428 人关注过本帖, 1 人收藏
标题:请教:关于指针在程序中的使用
只看楼主 加入收藏
linqingwudi
Rank: 2
等 级:论坛游民
帖 子:35
专家分:31
注 册:2010-9-14
结帖率:100%
收藏(1)
已结贴  问题点数:20 回复次数:6 
请教:关于指针在程序中的使用
这个是我编写的一道练习题,因为刚学指针,用的不好,请教一下怎么改才能使这道题变的更紧凑更清晰?
明确个思路和方法就行,谢谢。
#include<stdio.h>
#include<string.h>
f1(char str[])
{
    char t,*p,*pa,i,j;
    p=pa=str;
    while(*++p);
    p--;
    for(i=0;i<=p-pa;i++)
    for(j=i;j<=p-pa;j++)
    if(*(pa+i)<*(pa+j))
    {t=*(pa+i);*(pa+i)=*(pa+j);*(pa+j)=t;}
}
main()
{
    char a[80];
    gets(a);
    f1(a);
    puts(a);
getch();
}
搜索更多相关主题的帖子: 指针 
2010-09-23 10:41
linqingwudi
Rank: 2
等 级:论坛游民
帖 子:35
专家分:31
注 册:2010-9-14
收藏
得分:0 
忘了说
这道题的的作用是
把字符串从小到大排序
2010-09-23 10:49
wcyg
Rank: 2
等 级:论坛游民
帖 子:25
专家分:31
注 册:2010-9-9
收藏
得分:0 
不错呀!

[url]http://www.[/url]
2010-09-23 11:24
linqingwudi
Rank: 2
等 级:论坛游民
帖 子:35
专家分:31
注 册:2010-9-14
收藏
得分:0 
程序本身是没问题,我只是想知道有没有方法使程序变的更紧凑、清晰
大侠出来指点下呀
2010-09-23 11:43
A13433758072
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广东潮州
等 级:小飞侠
威 望:1
帖 子:1182
专家分:2784
注 册:2010-7-22
收藏
得分:0 
回复 楼主 linqingwudi
什么叫做,程序变的更紧凑、清晰啊?这个可读性低,最好加括号 while(*++p),你把子程序放在主程序后面,可读性更好。

一步一个脚印...............................默默地前进.....
诚邀乐于解答c菜鸟问题,的热心网友加入,  QQ群38490319
2010-09-23 12:28
青衣修罗
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:22
专家分:129
注 册:2010-9-16
收藏
得分:20 
没必要定义那么多指针,有个strlen函数楼主不知道吗
看看这样可以不
程序代码:
#include<stdio.h>
#include<string.h>
int f1(char *str)
{
    char t;
    for(int i=0;i<strlen(str)-1;i++)
      for(int j=i+1;j<strlen(str);j++)
    if(*(str+i)<*(str+j))
    {
    t=*(str+i);
    *(str+i)=*(str+j);
    *(str+j)=t;
    }
    return 0;
}
main()
{
    char a[80];
    gets(a);
    f1(a);
    puts(a);
//getch();//不知道你这一句是干什么的
} 

程序就是:任何有目的的、预想好的动作序列。
2010-09-23 13:27
王璐
Rank: 2
等 级:论坛游民
帖 子:126
专家分:54
注 册:2010-7-26
收藏
得分:0 
#include<stdio.h>
void main()
{
    char str[10];
    gets(str);
    void sort(char str[]);
    sort(str);
    puts(str);
}
void sort(char str[])
{
    char *p1,*p2,*k,t;
    for(p1=str;*p1;p1++)
    {
        k=p1;
        for(p2=k+1;*p2;p2++)
        if(*p2<*k)
            k=p2;
        if(k!=p1)
        {
            t=*p1;
            *p1=*k;
            *k=t;
        }
    }
}
2010-09-23 16:24
快速回复:请教:关于指针在程序中的使用
数据加载中...
 
   



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

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