C语言的简单应用(四)

来源:互联网 发布:天书世界阵法1升2数据 编辑:程序博客网 时间:2024/05/16 11:39

第四天

日子过得有些快,现在是2017/7/16日,手头上的东西还有一大堆,继续推进中。。。

1、题目:打印出杨辉三角形(要求打印出10行如下图)
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1…..

#include<stdio.h>int main(){    int i,j,a[10][10];    for(i=0;i<10;i++)    {        a[i][0]=1;        a[i][i]=1;     }      for(i=2;i<10;i++)     for(j=1;j<i;j++)     a[i][j]=a[i-1][j-1]+a[i-1][j];     for(i=0;i<10;i++)     {     for(j=0;j<=i;j++)     printf("%d ",a[i][j]);     putchar('\n');    }     return 0;}

2、题目:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数

#include<stdio.h>#define max 20int main(){    int i,j,k=0,m,a[max];    for(i=0;i<max;i++)    {        printf("a[%d]=",i);scanf("%d",&a[i]);    }    printf("input shifted position:");    scanf("%d",&m);    while(m)    {        j=a[max-m];      for(i=max-1-m;i>=k;i--)        a[i+1]=a[i];        a[k]=j;        k++;         m--;          }    puts("print the array:");    for(i=0;i<max;i++)    printf("%d\n",a[i]) ;    return 0;}

3、约瑟夫环问题

#include<stdio.h>int main(){    int n,m;    printf("input n,m:") ;    while(~scanf("%d,%d",&n,&m))    {        int ans=0;        for(int i=2;i<=n;i++)            ans=(ans+m)%i;        printf("the %d is it\n",ans+1);   /*从0编号则不加1,从1编号加1*/        printf("input n,m:") ;     }      return 0;}

4、编写程序,计算字符串中字符个数

#include<stdio.h>int main(){    int n,m;    printf("input n,m:") ;    while(~scanf("%d,%d",&n,&m))    {        int ans=0;        for(int i=2;i<=n;i++)            ans=(ans+m)%i;        printf("the %d is it\n",ans+1);        printf("input n,m:") ;     }      return 0;}

5、题目:编写,输入n为偶数时,求1/2+1/4+…+1/n,当输入n为奇数时,1/1+1/3+…+1/n
分析:一个这么简单的题,差点栽在i+=2上了,我居然会想到i+2。。。。

#include<stdio.h>int main(){    int n,i,j;    float s=0.0,t=0.0;    printf("input a number:");    scanf("%d",&n);    if(n%2==0)    for(i=2;i<=4;i+=2)         s+=1.0/i;    else for(i=1;i<=n;i+=2)            t+=1.0/i;        if(n%2==0)        printf("the sum is:%f",s);        else printf("the sum is:%f",t);    return 0;} 

6、题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子平均分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?

#include<stdio.h>int main(){    int i,total=1;    for(i=0;i<5;i++)    total=5*total+1;    printf("the least:%d",total);    return 0; } 

7、题目:八进制转十进制(暂时只实现数字,不含字母类)

#include<stdio.h>int main(){    char*p,s[6];    int n;    p=s;    gets(p);    n=0;    while(*(p)!='\0')    {        n=n*8+*p-'0';        p++;    }    printf("%d",n);    return 0; } 

8、输入数字,打印出对应的*,非数字停止。

#include<stdio.h>int main(){    int i,n;    printf("input number:");    while(scanf("%d",&n))    {         for(i=0;i<n;i++)      printf("*");       putchar('\n');      printf("input number:");    }    return 0;}

9、题目:某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换。

#include<stdio.h>int main(){    int a,i,t,s=0,b[4];    printf("input a number:");    scanf("%d",&a);    for(i=0;i<4;i++)    {        b[i]=a%10;        a/=10;        b[i]=(b[i]+5)%10;    }    for(i=0;i<=1;i++)    {        t=b[i];        b[i]=b[3-i];        b[3-i]=t;    }    printf("the number is:");    for(i=3;i>=0;i--)    printf("%d",b[i]);    return 0;}

10、printf函数的小程序

#include<stdio.h>int main(){    int i=43;    printf("%d",printf("%d",printf("%d",i)));    return 0; } 

总结

第四天了,那份C语言题库已经被我榨干了,现在需要寻找新的合作伙伴,明天更新期待已久的排序!

原创粉丝点击