C 语言教程 在线

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;
}