鱼C论坛

 找回密码
 立即注册
查看: 3866|回复: 2

谭浩强 第四版 第七章,习题16 求解

[复制链接]
发表于 2012-8-14 14:36:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 meKj 于 2012-8-21 00:00 编辑
  1. #include <stdio.h>
  2. int main()
  3. {
  4.         void shiliu (char a[]);
  5.         char a[30];
  6.         int flag = 1 , i ;
  7.            for (flag ;flag == 1 ; )                   //为什么主函数进不了循环?
  8.             {
  9.          printf("请输入一个十六进制:");
  10.         gets (a);
  11.         for (i = 0 ; a[i] != '\0' ; i ++)
  12.         {
  13.                 if ('0' <= a[i] && a[i] <= '9' || 'a' <= a[i] && a[i] <= 'f' || 'A' <= a[i] && a[i] <= 'F')
  14.                 {
  15.                 flag = 0 ;
  16.                 }
  17.                 else
  18.                 {
  19.                 flag  =1 ;
  20.                         printf("你的输入有误请重新输入:");
  21.                         break ;
  22.                 }
  23.         }
  24.         }
  25.         shiliu (a);
  26. }
  27. void shiliu (char a[])
  28. {
  29.         int b[30];
  30.         int i , j , d , e , c , m = 16 , n = 0 ,g , k ;
  31.         for (i = 1 ;  ; i ++)
  32.         {
  33.                 if (a[i] == '\0')
  34.                 {
  35.                         for (j = 0 ; i  != 0 ; j ++ , i --)
  36.                         {
  37.                                 b[j] = a[i - 1];
  38.                         }
  39.                         b[j] = '\0' ;
  40.                         break ;
  41.                 }
  42.                
  43.         }
  44.         for (j = 0 ; b[j] != '\0' ; j ++)
  45.         {
  46.                 if ('0' <= b[j] && b[j] <= '9')
  47.                 {
  48.                         for (d = '0' ,g = 0 ; d <= '9' ; d ++ , g ++)
  49.                         {
  50.                                 if (d == b[j])
  51.                                 {
  52.                                         b[j] = g;
  53.                                         break ;
  54.                                 }
  55.                         }
  56.                 }
  57.                 else
  58.                 {
  59.                         for (e = 'A' , c = 10 ; e <= 'F' ; e ++, c ++)
  60.                         {
  61.                                 if (e == b[j])
  62.                                 {
  63.                                         b[j] = c ;
  64.                                         break;
  65.                                 }
  66.                         }
  67.                 }
  68.         }
  69.         for (i = 0 , j = 0; b[i] != '\0' ;  i ++ , j ++)
  70.         {
  71.                 if (i == 0)
  72.                 {
  73.                         ;
  74.                 }
  75.                 else
  76.                 {
  77.                     for (k = 1  ; k <= i ; k ++)
  78.                         {
  79.                                 b[j] = b[j] * m ;
  80.                         }
  81.                 }
  82.                 n = b[j] + n ;
  83.         }
  84.         printf("%d\n",n);
  85. }
复制代码

小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2012-8-20 23:43:03 | 显示全部楼层
呵呵,不好意思,之前发错了,搞到大家都不敢回我贴。
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2012-8-20 23:55:59 | 显示全部楼层
小弟刚刚重新看了一遍,已经解决了,也把一些低级的错误改了,不过那里要改进的还望多指点。
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-11-14 16:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表