标题:这道题目难倒了中国
只看楼主
yuji
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2005-9-29
 问题点数:0 回复次数:2 
这道题目难倒了中国

SOS!十万火急!哪位高手会这道C语言题目啊! 不同数制间的转化问题.输入十进制数字,程序能自动将其转换为另外的数制表示的值,例如: 输入:130(十进制) 输出:10000010(二进制) 输出:202(八进制) 输出:82(十六进制) 老师说下面这种做法是不对的啊!

#include "stdafx.h" #include "stdio.h"

int main(int argc, char* argv[]) {int n,i, x=2, k=0,m,b[100]; scanf("%d",&n); m=n; while(n!=0){ b[k]=n%x; n=n/x; k=k+1; }; printf("转换2进制数:"); for(i=k-1;i>=0;i--) printf("%d", b[i]); printf("\n"); printf("转换8进制数:%o\n",m); printf("转换16进制数:%x",m); getchar(); getchar();

return 0; }

搜索更多相关主题的帖子: 中国 难倒 
2005-09-29 14:02
yujifeng007
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2005-9-29
得分:0 

我来帮你好了 #include <stdio.h> void hex (int m) { char a[17] = "0123456789ABCDEF", b[100]; int x = 16, k = 0, z; while (m != 0) { z = m % x; b[k] = a[z]; m = m / x; k = k + 1; } printf("转换16进制数:"); for(int i = k - 1; i >= 0; i--) printf("%c", b[i]); printf("\n\n"); } void octal (int m) { int b[100], x = 8, k = 0; while(m != 0){ b[k] = m % x; m = m / x; k = k + 1; } printf("转换8进制数:"); for(int i = k - 1; i >= 0; i--) printf("%d", b[i]); printf("\n\n"); } void binary_system (int m) { int b[100], x = 2, k = 0; while(m != 0){ b[k] = m % x; m = m / x; k = k + 1; } printf("转换2进制数:"); for(int i = k - 1; i >= 0; i--) printf("%d", b[i]); printf("\n\n");

} void main() { int n; scanf("%d", &n); binary_system(n); octal(n); hex(n); getchar(); getchar(); }

2005-09-29 14:16
lisypro
Rank: 4
等 级:业余侠客
威 望:3
帖 子:695
专家分:216
注 册:2005-9-25
得分:0 
1999或1998年的少年计算机奥林匹克上考过这道题.楼主的错在于投机取巧.根本没实现8进制和十六进制的转化.
楼上也错了,应只做了个函数就能实现.这一个函数甚至能输出7进制数,以前我做过,,不过我要去下棋了.以后把程序发上来

长期承接管理系统
代做各种vb/ / vc小程序
QQ:82341763
手机:13623290828
群号 11619730
2005-09-29 15:42



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-29004-1-1.html




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

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