//分别定义函数实现八进制转二进制
#include <stdio.h>
int octTodeci(int num);//声明八进制转十进制函数
long long deciTobina(int num);//声明十进制转二进制函数
int powNum(int base,int exp);//声明求base的exp次方函数
void main()
{
int octNum, deciNum;
long long binaNum;
printf("Please enter an octal number:");
scanf("%d", &octNum);
deciNum = octTodeci(octNum);
binaNum = deciTobina(deciNum);
printf("The conversion from octal number %d to binary number is %lld.\n%", octNum, binaNum);
}
int octTodeci(int num)//定义八进制转十进制函数
{
int n = 0,remainder,result = 0;
while (num != 0)
{
remainder = num %10;
result += remainder*powNum(8, n);
num /= 10;
++n;
}
return result;
}
long long deciTobina(int num)//定义十进制转二进制函数
{
int remainder,n=0;
long long result = 0;
while (num != 0)
{
remainder = num % 2;
result += remainder*powNum(10, n);
num /= 2;
++n;
}
return result;
}
int powNum(int base,int exp)//定义求base的exp次方函数
{
int result = 1,k;
for (k = exp; k >= 1;--k)
result *= base;
return result;
}
1612c-examples-binary-decimal-convert
参考方法:
#include<stdio.h>
//求a的b次方函数
unsigned ppow(unsigned a, unsigned b) {
unsigned cc = 1;
while (b) {
cc*=a;
b--;
}
return cc;
}
int main()
{
unsigned long long n = 0;
unsigned i, k=0, count = 0;
printf("请输入2进制数:");
scanf_s("%lld", &n); //用scanf()在Visual Studio 2019 会警告返回值被忽略
while (n) {
i = n % 10; //这个说错了,2和10都可以,用10会比较好
if (i) { //判断i是否为0
count += ppow(2, k);
}
k++; //k做为2的次方数,每次n /= 10 就+1
n /= 10;
}
printf(" 转成10进制= %d",count);
return 0;
}
1611c-examples-table-style
将 1~100 的数据以 10x10 格式顺序输出。
#include<stdio.h>
int main()
{
int i, j, count=0;
for(i=1;i<=10;i++){
for(j=1;j<=10;j++){
count++;
printf("%4d",count);
}
printf("\n");
}
return 0;
}
1615c-examples-reverse-sentence-recursion
参考方法:
1614c-examples-reverse-sentence-recursion
参考方法:
1613c-examples-octal-binary-convert
1612c-examples-binary-decimal-convert
参考方法:
1611c-examples-table-style
将 1~100 的数据以 10x10 格式顺序输出。