//分别定义函数实现八进制转二进制
#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
参考方法:
#include <stdio.h> #include <string.h> void reverseStr(char* str); int main() { char str[30]; printf("输入一个字符串: "); scanf("%s", str); printf("翻转之前的字符串为:"); reverseStr(str); return 0; } void reverseStr(char* str) { if(*str=='\0') return; reverseStr(str+1); printf("%c",*str); }1614c-examples-reverse-sentence-recursion
参考方法:
#include <stdio.h> #include <string.h> char* reverseStr(char* str); int main() { char str[30]; printf("输入一个字符串: "); scanf("%s", str); printf("翻转之前的字符串为:%s\n",str); printf("翻转之后的字符串为:%s",reverseStr(str)); return 0; } char* reverseStr(char* str) { int i=0; int j=strlen(str)-1; char temp; while (i<j) { temp=*(str+i); *(str+i)=*(str+j); *(str+j)=temp; i++; j--; } return str; }1613c-examples-octal-binary-convert
//分别定义函数实现八进制转二进制 #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; }