【20171010】C语言每日一练

【程序22】
题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。

//分析程序可知和比较三个数的大小思路差不多

#include <stdio.h>

int main(int argc, char* argv[])
{
    char i,j,k;
    //其中i,j,k分别是a,b,c三个的对手
    for(i = 'x';i <= 'z';i++)
    {
        for(j = 'x';j <= 'z';j++)
        {
            if(i != j)
            {
                for(k = 'x';k <= 'z';k++)
                {
                    if(k != i && k !=j)
                    {
                        if(i != 'x' && k != 'x' && k != 'z')
                        {
                            printf("a对%c,\tb对%c,\tc对%c\t",i,j,k);
                        }
                    }
                }
            }
        }
    }
}

运行结果:

这里写图片描述

【程序23】 
题目:打印出如下图案(菱形)
*
***
*****
*******
*****
***
*

#include <stdio.h>

int main(int argc, char* argv[])
{
    int i,j;
    for(i = 1;i <= 4;i++)
    {
        for(j = 1;j <=2 * i -1;j++)
        {
            printf("*");
        }
        printf("\n");
    }

    for(i = 3;i >=1;i--)
    {
        for(j = 1;j <= 2*i-1;j++)
        {
            printf("*");
        }
        printf("\n");
    }
}

运行结果:

这里写图片描述

【程序24】
题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和。

#include <stdio.h>

int main(int argc, char* argv[])
{
    int a;//a是循环变量
    double k;//k存放之前的i的值
    double i = 2;
    double j = 1;//i为分子,j为分母
    double sum = 0;//sum存放和

    for(a = 1; a <= 20;a++)
    {
        sum = sum + i/j;
        k = i;
        i = i + j;
        j = k;

    }
    printf("二十项总和为:%f",sum);    

}

运行结果:

这里写图片描述

【程序25】
题目:求1+2!+3!+…+20!的和
(话说20!好像溢出了)

#include <stdio.h>

int main(int argc, char* argv[])
{
    int i;//阶乘的循环变量
    int j;//阶乘相加循环变量20
    //先阶乘再相加
    long sum = 0;//保存和

    for(j =1;j <=10;j++)
    {   long a = 1;
        for(i = 1;i <= j;i++)
        {
            a = a * i;

        }
        printf("%d的阶乘是%ld",j,a);
        printf("\n");
        sum = sum + a;
    }
    printf("1+2!+3!+...+10!的和为:%ld",sum);
}

20!的代码实现:

这里写图片描述

10!的代码实现:

这里写图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值