zoukankan      html  css  js  c++  java
  • C语言基础

    1.输入.123456  输出0.123456

    #include <stdio.h>
    int main()
    {
        char s[7];
        int i,sum=0;
        float x=0,k=0.1;
        gets(s);
        for(i=1;s[i];i++)
        {
            if(s[i]>=48&&s[i]<=57)
            {
                x+=(float)(s[i]-48)*k;
                k/=10;
            }
        }
        printf("%f
    ",x);
        return 0;
    }


    2.
       *
      ***
     *****
    *******
     *****
      ***
       *

    #include <stdio.h>
    int main()
    {
        int n,i,j;
        scanf("%d",&n);
        for(i=1;i<=n;i++)
        {
            for(j=1;j<=n-i;j++)
                printf(" ");
            for(j=1;j<=2*i-1;j++)
                printf("*");
            puts("");
        }
        for(i=n-1;i>=1;i--)
        {
            for(j=1;j<=n-i;j++)
                printf(" ");
            for(j=1;j<=2*i-1;j++)
                printf("*");
            puts("");
        }
        return 0;
    }


    3.输入352 输出352
    注意:程序中输入数据只能用getchar(),不允许用scanf(),也不允许用数组。

    #include <stdio.h>
    int main()
    {
        int i,x=0;
        char c;
        c=getchar();
        while(c>='0'&&c<='9')
        {
            c-=48;
            x=x*10+c;
            c=getchar();
        }
        printf("%d
    ",x);
        return 0;
    }


    4.判断是否为素数

    #include <stdio.h>
    #include <math.h>
    int main()
    {
        int n,i,k;
        scanf("%d",&n);
        if(n==1)
        {
            printf("NO
    ");
            return 0;
        }
        k=sqrt(n);
        for(i=2;i<=k;i++)
            if(n%i==0)
              break;
        if(i>k)
            printf("YES
    ");
        else
            printf("NO
    ");
        return 0;
    }


    5.G总共有n个台阶,每次可以跨1个台阶,也可以跨2个台阶,问,有多少种上法?
    例如, 若有3个台阶可以有3种上法:
    (1)1+1+1(跨1个,跨1个,跨1个)
    (2)1+2 (跨1个,跨2个)
    (2)2+1(跨2个,跨1个)
    Input
    键盘输入台阶数
    Output
    给出方案数
    Sample Input
    3
    Sample Output
    3
    (递归)

    #include <stdio.h>
    int fun(int n)
    {
        int m;
        if(n==1)
            return 1;
        else if(n==2)
            return 2;
           else
            m=fun(n-1)+fun(n-2);
              return m;
    }
    int main()
    {
        int n,m;
        scanf("%d",&n);
        m=fun(n);
        printf("%d",m);
        return 0;
    }
    


    6.十进制转换成二进制(多组输入)
    #include <stdio.h>

    #include <stdio.h>
    int fun(int n)
    {
        if(n==0)
            return 1;
        fun(n/2);
        printf("%d",n%2);
        return n;
    }
    int main()
    {
        int n;
        while(scanf("%d",&n)!=EOF)
        {
            if(n==0)
                printf("0");
            else
               fun(n);
            puts("");
        }
        return 0;
    }


    7.指针被调求最大公约数与最小公倍数

    #include <stdio.h>
    int main()
    {
        void sub(int a,int b,int *m,int *n);
        int a,b,m,n;
        scanf("%d,%d",&a,&b);
        sub(a,b,&m,&n);
        printf("%d,%d,a=%d,b=%d
    ",m,n,a,b);
        return 0;
    }
    void sub(int a,int b,int *m,int *n)
    {
        int t,i,c;
        if(a<b)
        {
            t=a;a=b;b=t;
        }
        for(i=a;i<=a*b;i+=a)
            if(i%b==0)
            break;
        *m=i;
        c=a%b;
        for(i=1;c!=0;i++)
        {
            a=b;b=c;c=a%b;
        }
        *n=b;
    }


    8.一个球从一百米高空坠下,每次落地后反弹高度的一半,再落下反弹……第10次落地时,经过了多少路程,第10次反弹多高。

    #include <stdio.h>
    int main()
    {
        int t,i;
        double a=100,s=100;
        for(i=1; i<9; i++)
        {
            a=a/2;
            s+=(a*2);
        }
        printf("%f
    ",s);
        for(t=1; t<10; t++)
            a=a/2;
        printf("%f",a);
        return 0;
    }
    


    9.局部静态变量
    ~1!+2!+3!+……+n!

    #include <stdio.h>
    int super(int i)
    {
        static int f=1;
        f*=i;
        return f;
    }
    int main()
    {
        int i,n,f,s=0,super(int);
        scanf("%d",&n);
        for(i=1; i<=n; i++)
        {
            f=super(i);
            s+=f;
        }
        printf("%d
    ",s);
        return 0;
    }
    


    10  输入1 3 5 7 9 11 13 15 17 19    12   将12插入按顺序输出

    #include <stdio.h>
    int main()
    {
        int i,a[11],n,t;
        for(i=0; i<=9; i++)
            scanf("%d",&a[i]);
        scanf("%d",&n);
        for(i=0; i<=9; i++)
            if(a[i]>n)
            {
                t=a[i];
                a[i]=n;
                n=t;
            }
        a[10]=n;
        for(i=0; i<=9; i++)
            printf("%d ",a[i]);
        printf("%d",a[10]);
        return 0;
    }
    


    11 将不重复的数输出

    #include <stdio.h>
    int main()
    {
        int i,a[10],j,k=0,e=0;
        for(i=0; i<=9; i++)
            scanf("%d",&a[i]);
        for(i=0; i<=9; i++)
        {
            for(j=0; j<=9; j++)
            {
                if((a[i]==a[j])&&(i!=j))
                {
                    k++;
                    break;
                }
                if(j==9)
                {
                    if(e==0)
                               printf("%d",a[i]);
                    else
                        printf(" %d",a[i]);
                    e++;
                }
            }
        }
        if(k==10)
            printf("No");
        return 0;
    }
    


    12 输入10个数 统计每次出现的次数

    #include <stdio.h>
    int main()
    {
        int a[10],i,s,j,p;
        for(i=0; i<=9; i++)
            scanf("%d",&a[i]);
        for(i=0; i<=9; i++)
        {
            p=0,s=0;
            for(j=0; j<10; j++)
            {
                if(a[i]==a[j])
                    s++;
            }
            for(j=0; j<i; j++)
                if(a[i]==a[j])
                    p=1;
            if(p==0)
                    printf("%d:%d
    ",a[i],s);
    
        }
        return 0;
    }
    


    13 不管键盘输入什么数 数组只接收不重复的数
     

    #include <stdio.h>
    int main()
    {
        int a[20],i,j;
        char c;
        for(i=0; i<=9';i++)
                {
                scanf("%d%c",&a[i],&c);
                for(j=0;j<i;j++)
                if(a[i]==a[j]&&i!=j)
                {
                i--;
                break;
            };
            }
                for(i=0;i<=9;i++)
                printf("%d
    ",a[i]);
                return 0;
            }
    
  • 相关阅读:
    使用truffle测试部署合约
    nodejs promise深度解析
    pthread线程特定数据
    基于信号量与互斥锁实现的生产者和消费者
    Linux coredump 的打开和关闭
    Linux 双网卡配置两个IP同时只有一个会通的原因
    进程间通信-共享内存
    进程间通信-消息队列
    TCP/IP SIGPIPE信号
    Select模式和超时
  • 原文地址:https://www.cnblogs.com/zcy19990813/p/9702833.html
Copyright © 2011-2022 走看看