c语言八进制转换为十进制or十进制转换为8进制
1.c语言八进制转换为十进制
```c#include<stdio.h>int main(){ char *p,s[20];int n;p=s;gets(p);n=0;while(*(p)!='\0'){n=n*8+*p-'0';p++;}printf("%d",n);return 0;}
**2.十进制转换为八进制**```c1 #include<stdio.h>2 int main(){3int x;4scanf("%d",&x);5printf("%o",x);//8进制为o,16进制为x6 }
`题目描述:
给定一个正整数,写出它的 8 进制表示。
输入描述:
多组输入,输入的第一行为一个正整数 n,表示接下来有 n 组数据,每一行为 1 个正整数 a (0 < a <= 10000)。
输出描述:
对于每一组数据,求出 a 的 8 进制表示法。
样例输入:
2
5
10
样例输出:
5
12
#include "stdio.h"#define MAX 100int main(){int ans[MAX];int n;scanf("%d", &n);for (int i = 0; i < n; i++){int a;scanf("%d", &a);int base = 1;ans[i] = 0;while (a > 0){ans[i] += base * (a % 8);a /= 8;base *= 10;}}for (int i = 0; i < n; i++)printf("%d\n", ans[i]);return 0;}