C语言经典100例(21-40)

此文为本人在练习菜鸟教程C语言经典100例时所写的部分代码记录(21~40)

网址为: http://www.runoob.com/cprogramming/c-100-examples.html

#include<stdio.h>
int main(void)
{
    int i,x = 1;
    for(i = 0; i < 9; i++)
    {
        x =  (x + 1) * 2;
    }
    printf("%d\n",x);
}
#include<stdio.h>
int main(void)
{
    int i,j,k;
    for(i = 0;i <= 3; i++)
    {
        for(j = 1;j <= 3 - i; j++)
            printf(" ");
        for(k = 1; k <= 2*i+1; k++)
            printf("*");
        printf("\n");
    }
    for(i = 1; i <= 3; i++)
    {
        for(j = 1; j <= i; j++)
            printf(" ");
        for(k = 1; k <= 7-2*i; k++)
            printf("*");
        printf("\n");
    }
    return 0;
}
#include<stdio.h>
int main(void)
{
    float sum = 0,temp;
    float a = 2,b = 1;
    int i;
    for(i = 0; i < 20; i++)
    {
        sum += a / b;
        temp = b;
        b = a;
        a = temp + a;
    }
    printf("%9.6f\n",sum);
    return 0;
}
#include<stdio.h>
double Fun(double n)
{
    if(n == 0)
        return 1;
    else
        return n*Fun(n - 1);
}
int main(void)
{
    double sum = 0, i;
    for(i = 1;i <= 20; i++)
    {
        sum += Fun(i);
    }
    printf("%lf\n",sum);
    return 0;
}

#include<stdio.h>
int fact(int n)
{
    if(n == 0 || n == 1)
        return 1;
    else
        return n*fact(n - 1);
}

int main(void)
{
    int i;
    for(i = 0; i <= 5; i++)
    {
        printf("%d!=%d\n",i,fact(i));
    }
    return 0;
}
#include<stdio.h>
void Print(char a[], int n)
{
    if(n >= 0)
    {
        printf("%c",a[n]);
        Print(a,n - 1);
    }

}

int main(void)
{
    char a[5];
    printf("请输入5个字符 :");
    for(int i = 0; i < 5; i++)
        scanf("%c",&a[i]);
    printf("相反顺序输出结果 : ");
    Print(a,4);
    return 0;
}

#include<stdio.h>
int age(int n)
{
    if(n == 1)
        return 10;
    else
        return age(n - 1) + 2;
}

int main(void)
{
    int n;
    n = age(5);
    printf("%d\n",n);
    return 0;
}
#include<stdio.h>
int main(void)
{
    int n,count = 0,num;
    printf("请输入一个不多于5位的正整数:");
    scanf("%d",&n);
    num = n;
    while(n)
    {
        n = n/10;
        count++;
    }
    printf("为%d位数,逆序为:",count);
    while(num)
    {
        printf("%-3d",num%10);
        num = num/10;
    }
    return 0;
}
#include<stdio.h>
#define N 20
int main(void)
{
    int i,j;
    int n;
    int a[N];
    printf("请输入数字:");
    scanf("%d",&n);
    for(j = 0; j < 5; j++)
    {
        a[j] = n%10;
        n = n/10;
    }
    j = 0;
    i = 4;
    while(i < j)
    {
        if(a[i] != a[j])
        {
            printf("这不是回文数\n");
            return 0;
        }
        j++;
        i--;
    }
    printf("这是回文数\n");
    return 0;
}
#include<stdio.h>
int main(void)
{
    char ch;
    printf("请输入第一个字母:\n");
    ch = getchar();
    getchar();
    switch(ch)
    {
    case 'm':
    case 'M':
        printf("monday\n");
        break;
    case 'w':
    case 'W':
        printf("wednesday\n");
        break;
    case 'f':
    case 'F':
        printf("friday\n");
        break;
    case 't':
    case 'T':
        {
            printf("请输入下一个字母:\n");
            scanf(" %c",&ch);
            if(ch == 'h')
                printf("thursday\n");
            if(ch == 'u')
                printf("tuesday\n");
            break;
        }
    case 's':
    case 'S':
        {
            printf("请输入下一个字母:\n");
            scanf(" %c",&ch);
            if(ch == 'a')
                printf("saturday\n");
            if(ch == 'u')
                printf("sunday\n");
            break;
        }
    }
    return 0;
}
#include<stdio.h>
#include<string.h>
#define N 80
void delete_x(char *str,char *s,char ch);
int main(void)
{
    char str[N],ch;
    char s[N];
    memset(str,'\0',sizeof(str));
    memset(s,'\0',sizeof(s));
    gets(str);
    scanf(" %c",&ch);
    delete_x(str,s,ch);
    puts(s);
    return 0;
}

void delete_x(char *str,char *s,char ch)
{
    int i,j = 0, str_len = strlen(str);
    for(i = 0; i < str_len; i++)
    {
        if(str[i] != ch)
        {
            s[j] = str[i];
            j++;
        }
    }
}
#include<stdio.h>
#include<string.h>
#define N 80
void reverse(char *str)
{
    int j = strlen(str);
    int i = 0;
    j--;
    while(i < j)
    {
        char temp;
        temp = str[i];
        str[i] = str[j];
        str[j] = temp;
        i++;
        j--;
    }
}

int main(void)
{
    char str[N];
    memset(str,'\0',sizeof(str));
    gets(str);
    reverse(str);
    puts(str);
    return 0;
}
#include<stdio.h>
#include<stdlib.h>
void bubblesort(int a[],int n)
{
    int i, j;
    int flag ;
    for(i = 0; i < n - 1; i++)
    {
        flag = 0;
        for(j = 0; j < n - 1; j++)
        {
            int temp;
            if(a[j] > a[j + 1])
            {
                temp = a[j];
                a[j] = a[j + 1];
                a[j + 1] = temp;
                flag = 1;
            }
        }
        if(flag == 0)
            break;
    }
}

int mycmp(const void *a,const void *b)
{
    if((const int *)a - (const int *)b == 0)
        return 0;
    else if((const int *)a - (const int *)b > 0)
        return 1;
    else
        return -1;
}

int main(void)
{
    int a[10];
    printf("请输入 10 个数字:\n");
    for(int i = 0; i < 10; i++)
        scanf("%d",&a[i]);

    qsort(a,10,sizeof(int),mycmp); //快速排序

    bubblesort(a,10);//冒泡排序
    
    printf("排序结果是:\n");
    for(int i = 0; i < 10; i++)
        printf("%d ",a[i]);

    return 0;
}
#include<stdio.h>
int tangle_sum(int *a,int n)
{
    int i;
    int sum = 0;
    for(i = 0; i < n; i++)
        sum += a[i*n + i];
    return sum;
}
int main(void)
{
    int a[3][3],ret;
    int *p = *a;
    printf("请输入矩阵(3*3):\n");
    for(int i = 0;i < 3; i++)
    {
        for(int j = 0; j < 3; j++)
        {
            scanf("%d",&a[i][j]);
        }
    }
    ret = tangle_sum(p,3);
    printf("对角线之和为:%d",ret);
    return 0;
}
#include<stdio.h>
#define N 100
void insert_sort(int a[],int *length,int x);
int main(void)
{
    int a[N] = {0},j = 0,x,n;
    printf("输入数组长度:\n");
    scanf("%d",&n);
    printf("原始数组是:\n");
    for(;j < n; j++)
        scanf("%d",&a[j]);
    printf("插入一个新的数字:");
    scanf("%d",&x);
    insert_sort(a,&n,x);
    for(int i = 0;i < n; i++)
        printf("%4d",a[i]);
    return 0;
}

void insert_sort(int a[],int *length,int x)
{
    int i = 0,j;
    while(x > a[i]) //找到待插入位置
        i++;

    for(j = *length - 1; j >= i; j--)
        a[j + 1] = a[j];
    a[j + 1] = x;
    (*length)++;
}
#include<stdio.h>
void reverse_print(int a[],int n);
int main(void)
{
    int a[10] = {0,1,2,3,4,5,6,7,8,9};
    printf("原始数组是:\n");
    for(int i = 0; i < 10;i++)
        printf("%-3d",a[i]);
    printf("\n排序后的数组:\n");
    reverse_print(a,10);
    return 0;
}

void reverse_print(int a[],int n)
{
    int i = 0;
    int j = n - 1;
    while(i < j)
    {
        if(i < j)
        {
            int temp;
            temp = a[i];
            a[i] = a[j];
            a[j] = temp;
        }
        i++;
        j--;
    }
    for(i = 0; i < n; i++)
        printf("%-3d",a[i]);
}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值