C语言经典例题100,1~6

一、有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

#include<stdio.h>
int main()
{
    int i,j,k;
    int number=0;
    for(i=1;i<5;i++)
        for(j=1;j<5;j++)
            for(k=1;k<5;k++)
            {
                if((i!=j)&&(i!=k)&&(j!=k))
                {
                    number++;
                    printf("%d--",100*i+10*j+k);
                }
            }
    printf("1、2、3、4四个数字组成无重复数字的三位数的个数为:%d个。\n",number);
    getch();
return 0; }

二、企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?

#include<stdio.h>

int main()
{
    long profit,bonus;
    printf("请输入利润额:\n");
    scanf("%ld",&profit);
    if(profit<=100000)
        bonus=profit*0.1;
    else
    {
        if(profit<=200000)
            bonus=100000*0.1+(profit-100000)*0.075;
        else
        {
            if(profit<=400000)
                bonus=100000*0.1+100000*0.075+(profit-200000)*0.05;
            else
            {
                if(profit<=600000)
                    bonus=100000*0.1+100000*0.075+200000*0.05+(profit-400000)*0.03;
                else
                {
                    if(profit<=1000000)
                        bonus=100000*0.1+100000*0.075+200000*0.05+200000*0.03+(profit-600000)*0.015;
                    else
                        bonus=100000*0.1+100000*0.075+200000*0.05+200000*0.03+400000*0.015+(profit-1000000)*0.01;
                }
            }
        }
    }
    printf("\n利润额为%ld,奖金为%ld。\n",profit,bonus);
    getch();
    return 0;
}

三、一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

#include<stdio.h>

int main()
{
    long i,j;
    int x;
    for(i=13;i<50000;i++)
        for(j=13;j<50000;j++)
            if((i*i-100)==(j*j-168))
                printf("the number is %ld.\n",(i*i-100));
    getch();
    return 0;
}

四、输入某年某月某日,判断这一天是这一年的第几天?

#include<stdio.h>

int Judge_leapyear(int year)
{

    if(year%400==0)
        return 1;
    else
    {
        if(year%4==0&&(year%100!=0))
            return 1;
        else
            return 0;
    }
}

int main()
{
    int year,month,day,alldays;
    printf("请输入年份:\n");
    scanf("%d",&year);
    printf("\n请输入月份:\n");
    scanf("%d",&month);
    printf("\n请输入日期:\n");
    scanf("%d",&day);
    
    switch(month)
    {
        case 1:alldays=0;break;
        case 2:alldays=31;break;
        case 3:alldays=31+28;break;
        case 4:alldays=31+28+31;break;
        case 5:alldays=31+28+31+30;break;
        case 6:alldays=31+28+31+30+31;break;
        case 7:alldays=31+28+31+30+31+30;break;
        case 8:alldays=31+28+31+30+31+30+31;break;
        case 9:alldays=31+28+31+30+31+30+31+31;break;
        case 10:alldays=31+28+31+30+31+30+31+31+30;break;
        case 11:alldays=31+28+31+30+31+30+31+31+30+31;break;
        case 12:alldays=31+28+31+30+31+30+31+31+30+31+30;break;
        default:printf("error!\n.");break;
    }
    alldays+=day;
    if(month>2&&Judge_leapyear(year))
        alldays++;
    printf("你输入的日期是:%d年%d月%d日,是%d年的第%d天。\n",year,month,day,year,alldays);
    getch();

    return 0;
}

            

五、输入三个整数x,y,z,请把这三个数由小到大输出。

#include<stdio.h>

int main()
{
    int a,b,c;
    int temp=0;
    printf("请输入三个整数:\n");
    scanf("%d%d%d",&a,&b,&c);

    if(a>b)
    {
        temp=a;
        a=b;
        b=temp;
    }
    if(b>c)
    {
        temp=c;
        c=b;
        b=temp;
    }
    if(a>b)
    {
        temp=a;
        a=b;
        b=temp;
    }
    printf("%d<%d<%d\n",a,b,c);
    getch();
    return 0;
}

六、用*号输出字母C的图案。

#include<stdio.h>

int main()
{
    printf("                          ***\n");
    printf("                       **\n");
    printf("                      *\n");
    printf("                     *\n");
    printf("                     *\n");
    printf("                     *\n");
    printf("                      *\n");
    printf("                       **\n");
    printf("                         ***\n");

    getch();
    return 0;
}