| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1642 人关注过本帖
标题:请教 输入两个数,运行后数字反过来 如"89 " 结果"98"程序怎么编 ? ...
只看楼主 加入收藏
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
是的,前後兩個字節對換,不管是1樓的兩個數字對調,還是一串數字倒序,都是這樣處理。要知道,數值乘除、求餘之類的運算,速度比純粹賦值要慢,整數運算還好,浮點數就很忌諱了,上面的程序代碼,用了三次數學運算。

在C的體系中,參數用壓棧方式傳遞,就是這個原理:調用函數時傳入的一連串參數,在接收函數處是反過來取得的,這叫後進先出法,是很常見的數據辦法。

授人以渔,不授人以鱼。
2011-07-24 22:09
QWESZ88
Rank: 2
等 级:论坛游民
帖 子:26
专家分:23
注 册:2011-7-24
收藏
得分:0 
受教了!真厉害!你们C都怎么学的?主要是上机?
2011-07-25 22:33
zjslwyp
Rank: 2
等 级:论坛游民
帖 子:42
专家分:76
注 册:2011-3-24
收藏
得分:3 
回复 11楼 TonyDeng
不要用繁体文啊,看着难受。还有能不能写个程序来看看啊、我是新手,不知道要怎么写。
2011-07-25 22:58
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
下面的程序将输入的字符串反转输出,字符串长度限制在255byte以内,输出时过滤非数字字符及前导0。
编译器为VS2010,除头文件和主函数声明外,程序代码是C,没用特殊功能,带_s的输入输出函数可以改回不带的。

程序代码:
// test.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <string.h>

#define TRUE    1
#define FALSE    0

int _tmain(int argc, _TCHAR* argv[])
{
    char string[256];
    int num;
    int start;

    while (TRUE)
    {
        printf_s("请输入一个数字(按回车结束):");
        gets_s(string);
        num = strlen(string);
        start = 0;
        while (string[start++] == '0')
            ;
        if (num > 0)
        {
            printf_s("反转输出:");
            while (num > start - 1)
            {
                num--;
                if (string[num] >= '0' && string[num] <= '9') putchar(string[num]);
            }
            putchar('\n');
        }
        else break;
    }

    return 0;
}


[ 本帖最后由 TonyDeng 于 2011-7-26 02:00 编辑 ]

授人以渔,不授人以鱼。
2011-07-26 01:51
sunyh1999
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:14
帖 子:1178
专家分:3032
注 册:2009-5-17
收藏
得分:3 
scanf("%s",str);
printf("%s",strrev(str));

欢迎来到我的博客:http://blog..cn/noisunyuhong
2011-07-26 12:42
edgar_wang
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:64
专家分:178
注 册:2011-7-24
收藏
得分:3 
你去看看《The C Programming Language》练习1.19的答案。
2011-07-26 14:47
快速回复:请教 输入两个数,运行后数字反过来 如"89 " 结果"98"程序怎么编 ? ...
数据加载中...
 
   



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

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