zoukankan      html  css  js  c++  java
  • 【C语言】八进制转十进制

    程序中函数 fun()的功能: 将一个由八进制数字字符组成的字符串转换为与其值相等的十进制整数。
    规定输入的字符串最多只能包含5位八进制数字字符。 **输入格式要求:gets 提示信息:"输入一个八进制字符串(5位):" "错误:字符串太长 " "错误:%c 不是一个八进制字符 " **输出格式要求:"输入的八进制字符串为" " %s 转换成十进制整数为:%d " 程序运行示例如下: 输入一个八进制字符串(5位):234 输入的八进制字符串为234 234 转换成十进制整数为:156

     1 #include<stdio.h>
     2 #include<string.h>
     3 #include<math.h>
     4 int fun(char str[]);
     5 main()
     6 {
     7     char str[10];
     8     int i,flag=0;
     9     printf("输入一个八进制字符串(5位):");
    10     gets(str);
    11     if (strlen(str) > 5)
    12         printf("错误:字符串太长
    
    ");
    13     else
    14     {
    15         for (i = 0; str[i]!=''; i++)
    16         {
    17             if (str[i] < '0' || str[i] > '7')
    18             {
    19                 printf("错误:%c 不是一个八进制字符
    
    ", str[i]);
    20                 flag=-1;
    22             }
    23         }
    24         if(flag==0)
    25         {
    26             printf("输入的八进制字符串为%s", str);
    27             printf("
    %s 转换成十进制整数为:%d
    ", str, fun(str));
    28         }
    29         
    30     }
    31 
    32 }
    33 int fun(char str[])
    34 {
    35     int n = 0, i=0;
    36     while (str[i]!='')
    37     {
    38         n += (str[strlen(str)-i-1]-48) * pow(8,i);  //这是一个字符,需要进行转换才是int型数字
    39         i++;
    40     }
    41     return n;
    42 }
    
    
    
     
     1 #include <stdio.h>
     2 #include <string.h>
     3 #include <stdlib.h>
     4 int fun(char *p)
     5 {                        
     6     int n;
     7     n = *p - '0';
     8     p++;
     9     while (*p != 0)
    10     {                        
    11         n = n * 8 + *p - '0';
    12         p++;
    13     }
    14     return n;
    15 }                        
    16 main()
    17 {                        
    18     char s[6];
    19     int i;
    20     int n;
    21     printf("输入一个八进制字符串(5位):");
    22     gets(s);
    23     if (strlen(s) > 5)
    24     {                        
    25         printf("错误:字符串太长
    
    ");
    26         exit(0);
    27     }
    28     for (i = 0; s[i]; i++)
    29     {                        
    30         if (s[i] < '0' || s[i] > '7')
    31         {                        
    32             printf("错误:%c 不是一个八进制字符
    
    ", s[i]);
    33             exit(0);
    34         }
    35     }
    36     printf("输入的八进制字符串为");
    37     puts(s);
    38     n = fun(s);
    39     printf("
    %s 转换成十进制整数为:%d
    ", s, n);
    40 }                        
    
    
    
    
    
  • 相关阅读:
    基于mave的dubbo分别架构
    海西 · 云交付 DevOps实践落地方案
    LoadRunner接口测试标准模板
    SVN多分支开发模式V1.0.1
    API接口规范V1.0——制定好规范,才好合作开发
    Effective Java 第三版——12. 始终重写 toString 方法
    Effective Java 第三版——11. 重写equals方法时同时也要重写hashcode方法
    Effective Java 第三版——10. 重写equals方法时遵守通用约定
    Effective Java 第三版——9. 使用try-with-resources语句替代try-finally语句
    Effective Java 第三版——8. 避免使用Finalizer和Cleaner机制
  • 原文地址:https://www.cnblogs.com/20201212ycy/p/14907607.html
Copyright © 2011-2022 走看看