C++超级简单的题目 菜鸟刚刚入门 谢谢

谁帮我写个程序我写得老出错弄的不想写了但是老师说要交TAT用C++写哦题目是把10进制分别转换为2进制,8进制,16进制,谢了我是刚学的别笑我菜题目是输入一个数字然后选择... 谁帮我写个程序 我写得老出错 弄的不想写了 但是老师说要交TAT
用C++写哦 题目是把10进制分别转换为2进制,8进制,16进制,
谢了 我是刚学的 别笑我菜
题目是输入一个数字 然后选择进制 接着就是结果
一楼的写的好是好 但是我都说了我初入门 我才刚刚学完C刚刚接触C++ 你这写的老师一看会被我的编程技术吓死 直呼我是又一个比尔盖茨!!! 要就写个C++格式的 其他逻辑问题用C解决
二楼的,我的意思是写有逻辑的 ,是有数学思想的 -----貌似我的要求很高? 我再加10分 应该可以吧
我再说一下 主要是我要懂才行啊 而且我是想要来学习一下怎么样编程的 谁叫我是菜鸟呢TAT
展开
 我来答
百度网友9e20e08d0
2008-05-05 · 超过14用户采纳过TA的回答
知道答主
回答量:39
采纳率:0%
帮助的人:0
展开全部
#include "stdio.h"
#include "stdlib.h"

#define MAX 50
#define OK 1
#define ERROR 0
#define YES 1
#define NO 0

typedef int ElemType;
typedef int Status;
typedef struct tagStack{
ElemType data[MAX];
int top;
}Stack;

void InitStack(Stack *s){
s->top=-1;
}

Status isEmpty(Stack *s){
if(s->top==-1) return YES;
return NO;
}

Status Push(Stack *s,ElemType elme){
if(s->top>MAX)return ERROR;
s->top++;
s->data[s->top]=elme;
return OK;
}

ElemType Pop(Stack *s){
if(s->top==-1) return -1;
return s->data[s->top--];
}
void zhuanhuan(int flag,int n)
{
int b;
ElemType elemy;
Stack mystack;
InitStack(&mystack);
while(flag!=0){
b=flag%2;
if(Push(& mystack,b)==ERROR){
printf("ERROR\n");
break;
}
flag=flag/n;

}
printf("\n");
while(isEmpty(& mystack)!=YES){
elemy=Pop(& mystack);
printf("%d ",elemy);
}
printf("\n");

}

void run()
{
int num,choice,n;
printf("\n\t*Please input a number you want exchange:");
scanf("%d",&num);
if(num<0)
{printf("You must input a number(>0)\n");
scanf("%d",&num); }
printf("input you want zhuanhuan de jinzhi :") ;
scanf("%d",&n);
zhuanhuan(num,n);
}
void main()
{
run();
}

C的``

把修改的地方标出来了,你自己看看
#include<stdio.h>
#include<stdlib.h>
#define N 2
#define initsize 20
#define increment 10
typedef int elemtype;
typedef struct stack{
elemtype *base;
elemtype *top;
int stacksize;
}stack;

void initstack(stack &s)//初始化栈
{s.base=(elemtype *)malloc(initsize*sizeof(elemtype));
if(!s.base)
exit(0);
s.stacksize=initsize;
//s.base=s.top;笔误?
s.top = s.base;}

void push(stack &s,/*elemtype &x*/elemtype x)//入栈,若栈满追加栈空间
//x何必要引用?
{if(s.top-s.base>=initsize)
s.base=(elemtype *)realloc(s.base,(s.stacksize+increment)*sizeof(elemtype));
if(!s.base)
exit(0);
//s.top=s.base+s.stacksize;这句不应该要,原因自己想

s.stacksize+=increment;

*s.top=x;
s.top++;
}

void pop(stack &s,elemtype &x)//出栈
{if(s.base==s.top)
printf("有错误");
else
x=*--s.top;
}

int isempty(stack &s)//判栈空
{if(s.base==s.top)
return 1;
else return 0;
}

void clearstack(stack &s)
{if(s.base==s.top)
return ;
s.base=s.top;
}

void convert(int n)//进制转换
{int x;
stack s;
initstack(s);
while(n!=0)
{
push(s,n%N);
n/=N;
}
while(!isempty(s))
{pop(s,x);
printf("%d",x);
}
clearstack(s);
}

int main()
{
int n;
printf("请输入一十进制数:");
scanf("%d",&n);
printf("转化后的数是:");
convert(n);
return 0;
}

C++的``这是帮别人修改的``自己整理下吧``我就不多整理了```
虑而后能得
2008-04-28 · TA获得超过144个赞
知道小有建树答主
回答量:235
采纳率:0%
帮助的人:191万
展开全部
#include<stdio.h>
void to_base_n(unsigned long m,int n);

int main(void)
{
unsigned long num;
int x;

printf("enter an integer and x(q to quit)\n");
while(scanf("%d%d",&num,&x) == 2)
{
printf(" binary equivalent :");
to_base_n(num,x);
putchar('\n');
printf("enter an integer and x (q to quit) :\n");
}
printf("Done\n");
return 0;
}
void to_base_n(unsigned long m,int n)
{
int r;
r = m % n;
if (m >= n)
to_base_n(m / n,n);
putchar('0' + r);
return;

}
我自己编的 使用时第一个数位需要转换的值,第二个为你要显示的数制 如 输入16 2 则结果为 1000
16 16 则为 10 q 或其他非整数值退出程序
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2008-04-29
展开全部
int main()
{
int i;
cin>>i;
cout<<hex<<i<<endl<<oct<<i<<endl;
return 0;
}
可以输出十六进制和八进制,二进制我就不知道怎么搞了,其中hex和oct分别是在C++中把数字按十六进制和八进制输出的按制符。

这位兄弟很有意思啊,复杂的不喜欢,简单的又看不起,不好意思,我的水平也不高,帮不了你,不过程序只要能达到要求,越简单越好,不是么?还有,我回答问题不是冲分来的,只要是力所能及的,我都会试着回答一下,既能帮助别人,也能提高自己,何乐而不为呢?呵呵。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
晓江湖Ъ
2008-05-01
知道答主
回答量:37
采纳率:0%
帮助的人:0
展开全部
可以输出十六进制和八进制,二进制我就不知道怎么搞了,其中hex和oct分别是在C++中把数字按十六进制和八进制输出的按制符。

这位兄弟很有意思啊,复杂的不喜欢,简单的又看不起,不好意思,我的水平也不高,帮不了你,不过程序只要能达到要求,越简单越好,不是么?还有,我回答问题不是冲分来的,只要是力所能及的,我都会试着回答一下,既能帮助别人,也能提高自己,何乐而不为呢?呵呵。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式