搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 题目是编写一个函数将一个十六进制数转化为十进制数,请问我程序错在哪?求指教!谢谢!
标题:
题目是编写一个函数将一个十六进制数转化为十进制数,请问我程序错在哪?求 ...
只看楼主
wp231957
来 自:神界
等 级:
版主
威 望:
422
帖 子:13681
专家分:53296
注 册:2012-10-18
第
11
楼
得分:3
那还不如这样写更好
程序代码:
int
con(
int
j) {
return
j; }
反正CPU也不认识你是几进制的 涉及进制转换的就不可能用%x 来接收16进制数据
DO IT YOURSELF !
2018-01-02 15:43
li384022
等 级:
论坛游侠
帖 子:102
专家分:176
注 册:2017-12-29
第
12
楼
得分:0
#include<stdio.h>
#include<math.h>
int con(int);
int main(){
int i,k;
printf("16\n");
scanf("%x",&i);
k=con(i);
printf("shi %d\n",k);
getch();
}
int con(int j){
int sum=0,count=0;
if(j==0){
printf("1\n");
}
while(j>0){
sum+=(j%16)*pow(16,count);
j=j/16;
count++;
}
return sum;
}
兄弟 把缺的汉字自己打上 这么做函数没什么意义啊 你的问题是16进制得余或除16 等于的符号是==
2018-01-02 16:18
li384022
等 级:
论坛游侠
帖 子:102
专家分:176
注 册:2017-12-29
第
13
楼
得分:10
#include<stdio.h>
#include<math.h>
int con(int);
int main(){
int i,k;
printf("16\n");
scanf("%x",&i);
k=con(i);
printf("shi %d\n",k);
getch();
}
int con(int j){
int sum=0,count=0;
if(j==0){
printf("1\n");
}
while(j>0){
sum+=(j%16)*pow(16,count);
j=j/16;
count++;
}
return sum;
}
你是想这样 ??
2018-01-02 16:20
风雨晨曦
等 级:
新手上路
帖 子:33
专家分:0
注 册:2017-12-5
第
14
楼
得分:0
回复 10楼 吹水佬
我试了一下你的,运行正确!对比发现问题出在我的程序里有那个if{j=0}的条件语句的存在,我删了后就好了,可是我不知道为啥有这个条件语句我的程序就会那样。。
2018-01-02 17:06
风雨晨曦
等 级:
新手上路
帖 子:33
专家分:0
注 册:2017-12-5
第
15
楼
得分:0
回复 13楼 li384022
嗯嗯对!就是你这样!我终于知道我哪错了,原来是我的条件语句里j应该==0
2018-01-02 17:10
风雨晨曦
等 级:
新手上路
帖 子:33
专家分:0
注 册:2017-12-5
第
16
楼
得分:0
回复 8楼 wp231957
非常感谢你!
2018-01-02 17:12
li384022
等 级:
论坛游侠
帖 子:102
专家分:176
注 册:2017-12-29
第
17
楼
得分:0
回复 14楼 风雨晨曦
j==0 是j等于零
j=0 是把0赋值给j
j是16进制数 如果把j/10得到的不是正确结果
2018-01-02 17:16
17
2/2页
1
2
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-483886-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.043595 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved