| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 745 人关注过本帖
标题:c语言大赛 问题求解答
只看楼主 加入收藏
为我留住记忆
Rank: 4
来 自:北京
等 级:业余侠客
帖 子:130
专家分:226
注 册:2011-4-30
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:9 
c语言大赛 问题求解答
c语言有一道题,是关于数学的,就是用堆栈编写将二进制转化十进制
搜索更多相关主题的帖子: c语言 十进制 二进制 
2011-04-30 15:49
top_dada
Rank: 2
等 级:论坛游民
帖 子:35
专家分:26
注 册:2011-4-20
收藏
得分:3 
我说下我的思路。。
让二进制进栈,根据TOP指针建立位权的关系。最后相加 。。
2011-04-30 16:00
为我留住记忆
Rank: 4
来 自:北京
等 级:业余侠客
帖 子:130
专家分:226
注 册:2011-4-30
收藏
得分:0 
    可是究竟怎样用堆栈呢  我还是有点晕

学习c是为了自己更强大。。。
2011-04-30 22:10
ab6326795
Rank: 2
等 级:论坛游民
帖 子:91
专家分:56
注 册:2010-11-8
收藏
得分:3 
其实我什么也不知道,我是来打酱油的
2011-04-30 23:24
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:3 
还没学到堆栈呢。。。
刚学完指针,开始做练习题啦,先拿这个练练手!

程序代码:
root@~/prog #cat b2d.c
#include <stdio.h>

int main (void) {

        char str[16],*ptr=str;
        int binToDec (char *ptr),len=0;
        scanf("%s",str);

        for(len=0;str[len]!='\0';len++) {
                if(str[len]<'0'||str[len]>'1'||len>16) {
                        printf ("Error input Or Out of Rang.Exit!\n");
                        return 1;
                }
        }
        printf("%s's Dec-Code is:%i\n",str,binToDec(ptr));
        return 0;
}

int binToDec (char *ptr) {
        int sum=0,i=0,j=0;
        int N2 (int n);
        char *p=ptr;

        while(*(p+j)) {
                j++;
        }

        ptr+=j-1;

        while(*ptr) {
                sum+=(*ptr-'0')*N2(i);
                ptr--;
                i++;
        }
        return sum;
}
int N2 (int n) {
        if(n==0) return 1;
        else return 2*N2(n-1);
}
root@~/prog #


[ 本帖最后由 ansic 于 2011-5-1 10:43 编辑 ]

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-04-30 23:45
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:3 
Stack is just an array, with 1 more variable (let's say top) standing for the index of top of the stack.
When you push stack, you assign the value which is to be pushed to stack[top], then top++.
When you pop stack, you take the value of stack[top] as return value, then top--.

Sorry that Chinese IM is not available, again.
2011-05-01 00:09
因为曾今年少
Rank: 2
等 级:论坛游民
帖 子:131
专家分:62
注 册:2011-4-13
收藏
得分:3 
还没学到啊
郁闷!!!
2011-05-01 08:41
饭桶
Rank: 6Rank: 6
等 级:侠之大者
帖 子:165
专家分:422
注 册:2011-4-5
收藏
得分:3 
来打酱油的

人得一生得奋斗!
2011-05-01 09:04
JCchan
Rank: 2
等 级:论坛游民
帖 子:44
专家分:73
注 册:2010-6-2
收藏
得分:3 
虽然知道这东西,可觉得很浮云。

能忍受多久,关键在于看待的心态>..<天下大事,由我定夺
2011-05-02 09:19
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:3 
这个应该很简单的
程序代码:
#include <stack>
#include <stdio.h>
using namespace std;
int main()
{
    int a = 8;
    int i = 0;
    //cin>>a;
    stack<int> s;
    while(a)
    {
        s.push(a%2);
        a /=2;
    }
    while(!s.empty())
    {
        printf("%d ",s.top());
        s.pop();
    }
    return 0;
}
C++的

                                         
===========深入<----------------->浅出============
2011-05-02 09:35
快速回复:c语言大赛 问题求解答
数据加载中...
 
   



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

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