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.十进制转换为八进制**
```c
1 #include<stdio.h>
2 int main(){
3 int x;
4 scanf("%d",&x);
5 printf("%o",x);//8进制为o,16进制为x
6 }
`题目描述:
给定一个正整数,写出它的 8 进制表示。
输入描述:
多组输入,输入的第一行为一个正整数 n,表示接下来有 n 组数据,每一行为 1 个正整数 a (0 < a <= 10000)。
输出描述:
对于每一组数据,求出 a 的 8 进制表示法。
样例输入:
2
5
10
样例输出:
5
12
#include "stdio.h"
#define MAX 100
int 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;
}