| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 794 人关注过本帖
标题:自己写的程序,求指教哪个地方可以优化
只看楼主 加入收藏
zhengchen080
Rank: 1
等 级:新手上路
帖 子:21
专家分:3
注 册:2013-7-29
结帖率:100%
收藏
 问题点数:0 回复次数:10 
自己写的程序,求指教哪个地方可以优化
#include<stdio.h>
#include<string.h>
main()
{
    char a[20],b[20];
    gets(a);
    gets(b);
    int i,j,m,la,lb;
    la=strlen(a);
    lb=strlen(b);
    for(i=0,j=0;i<la&&j<lb;i++,j++)
    {
        if(a[i]>b[j])
        {
            m=a[i]-b[j];
            break;
        }
        else if(a[i]<b[j])
        {
            m=a[i]-b[j];
            break;
        }
        else
        {
            if(a[i+1]=='\0'&&b[j+1]!='\0')
                m=0-b[j+1];
            else if(a[i+1]!='\0'&&b[j+1]=='\0')
                m=a[i+1];
            else
            {
                m=0;
            }
        }
    }
    printf("%d\n",m);
}
搜索更多相关主题的帖子: include 
2013-08-02 09:56
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
1、没分
2、贴错地方了
3、不知道你的代码能实现啥功能

DO IT YOURSELF !
2013-08-02 09:58
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:0 
最起码,你得告诉别人你这代码要实现什么功能
2013-08-02 10:09
zhengchen080
Rank: 1
等 级:新手上路
帖 子:21
专家分:3
注 册:2013-7-29
收藏
得分:0 
回复 2楼 wp231957
将两个字符串a[]和b[]比较,如果a[]>b[],输出一个正数;a[]=b[],输出0;a[]<b[],输出一个负数。不要用strcpy函数。两个字符串用gets函数读入。输出的正数或负数的绝对值应是相比较的两个字符串相对应字符的ASCII码的差值。例如,’A’与’C’相比,由于’A’<’C’,应输出负数,由于’A’与’C’的码差值为2,因此应输出"-2"。同理:"And"和"Aid"比较,根据第2个字符比较结果,’n’比’i’大5,因此应输出"5"。
2013-08-02 10:11
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
收藏
得分:0 
if(a[i+1]=='\0'&&b[j+1]!='\0')
                m=0-b[j+1];
            else if(a[i+1]!='\0'&&b[j+1]=='\0')
                m=a[i+1];
            else
            {
                m=0;
            }
没必要整这么复杂,这段

我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2013-08-02 10:17
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
收藏
得分:0 
头文件:string.h
格式:strlen (字符数组名)
功能:计算字符串s的(unsigned int型)长度,不包括'\0'在内
说明:返回s的长度,不包括结束符NULL。

我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2013-08-02 10:18
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
如果是练习写代码的话   #include <string.h> 都不能使用  所有字符串相关的函数都要自己实现

DO IT YOURSELF !
2013-08-02 10:20
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:0 
回复 4楼 zhengchen080
程序代码:
#include <stdio.h>

int yourstrcmp( const char* a, const char* b )
{
    int ret = 0 ;
    while( !(ret=*a-*b) && *b )
            ++a, ++b;
    return ret;
}

int main()
{
    char a[20], b[20];
    gets(a);
    gets(b);
    printf( "%d\n", yourstrcmp(a,b) );

    return 0;
} 
2013-08-02 10:21
bfmiyt
Rank: 2
等 级:论坛游民
帖 子:18
专家分:17
注 册:2010-6-13
收藏
得分:0 
用一个while就行了
2013-08-02 12:22
天使梦魔
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:37
帖 子:564
专家分:2754
注 册:2007-8-29
收藏
得分:0 
优化是相对的,前提是你要会相对论。
设计到极致无非两种情况一种吃内存一种吃cpu
打个比方你玩汉诺塔,你就是cpu,三个支柱算是内存。你有6个碟子,现在开始玩,我保证步数超出你的想象。
那如果我增加内存,你有7个支柱,你的步数最多就11。

在哪优化?是保证质量还是效率。
单次作用还是保证质量吧。
如果是复用你就需要细致到每个变量的计算的申请。
最明显的是游戏开发,你设计一个人物类,包含贴图,移动方式,速度,生命,经验等等等。
创建主人公只需要设置类成员,创建敌人也只要改变类成员,记住这是你设计的它不怎么好。
游戏第一关你和一个猛男pk,你很轻松的干掉了他,得到超级变身器,你变成了终结者。
游戏第二关你要和一万个猛男pk,听上去很爽,而且你怕什么你是终结者。
玩家不会怕,但开发者怕了,一万个敌人从他那不太好的类中被定义出来,cpu要不停的去处理他们,ai,能力值,图形渲染等等等




好了我要万年大潜水
2013-08-02 22:03
快速回复:自己写的程序,求指教哪个地方可以优化
数据加载中...
 
   



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

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