c语言编程练习

由于自己的编程水平不高,所以从现在开始每天编一个小程序来提高编程能力。

编程1

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

//printf("\1\1\n");   /*输出两个笑脸*/ 为什么‘\1’输出的就是一个笑脸呢?
//因为\1表示ASCII码为1的字符(即笑脸符)

#include <stdio.h>

int a[4] = {1, 2, 3, 4};

int main()
{
    int i=0, j=0, k=0, m=0;
    for(i=0;i<4;i++)
    {
        for(j=0;j<4;j++)
        {
            for(k=0; k<4;k++)
            {
                if(a[i] != a[j] && a[i] != a[k] && a[j] != a[k])
                {
                    printf("%d",  a[i]);

                    printf("%d",  a[j]);

                    printf("%d",a[k]);
                    printf("   ");

                    m++;
                    if(m%5 == 0)
                    printf("\n");
                }
            }
        }
    }
    printf("%d\n",m);
    return 0;
}
//总结其实根本可以不用数组的,直接用数,加三个循环就行了

编程练习2
题目:题目:企业发放的奖金根据利润提成。利润(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>

void main()
{
    for(;;)
    {
        float I=0;
        double cash=0;

        printf("请输入当月利润!单位:万元\n");
        scanf("%f",&I);

        if(I<10 || I==10)
        {
            cash = I * 0.1;
            printf("%f\n",cash);
        }
        else if(I>10 || I<20)
        {
            I = I - 10;
            cash = 10*0.1 + I*0.075;
            printf("%f\n",cash);
        }
        else if(I>20 || I<40)
        {
            I = I - 20;
            cash = 10*0.1 + 10*0.075 + I*0.05;
            printf("%f\n",cash);
        }
        else if(I>40 || I<60)
        {
            I = I - 40;
            cash = 10*0.1 + 10*0.075 + 20*0.05 + I*0.03;
            printf("%f\n",cash);
        }
        else if(I>60 || I<100)
        {
            I = I - 60;
            cash = 10*0.1 + 10*0.075 + 20*0.05 + 20*0.03 + I*0.015;
            printf("%f\n",cash);
        }
        else if(I>100)
        {
            I = I - 100;
            cash = 10*0.1 + 10*0.075 + 20*0.05 + 20*0.03 + 40*0.015 + I*0.01;
            printf("%f\n",cash);
        }
    }
}
//总结:答案解析说:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。 
//奖金定义成长整型,大概和四舍五入一个意思,由于单位是万元,所以就算是小数点后几位也是一笔不小
//的数目

编程练习3
题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

#include <stdio.h>
#include <math.h>

void main()
{
    //int x=0, y=0;
    long int i,x=0, y=0;

    for(i=1;i<100000;i++)
    {
        x=sqrt(i+100);
        y=sqrt(i+168);

        if(x*x == i+100 && y*y == i+168)
        printf("%d\n",i);
    }
}
//总结:可以直接使用编译器自身提供的函数来开方,但是要包含《math.h》这个头文件
//在定义变量的时候,注意int只能存放4个字节的数据

编程练习4
题目:输入某年某月某日,判断这一天是这一年的第几天?

#include <stdio.h>

void main()
{
    long int year;
    int month, day;
    printf("请输入年月日:\n");
    scanf("%d %d %d",&year, &month, &day);

    if((year/4==0 && year/100!=0)||(year/400==0))
    {
        switch(month)
        {
            case 1: 
                printf("%d\n",day);
                break;
            case 2:
                printf("%d\n",day+31);
                break;
            case 3:
                printf("%d\n",day+31+28);
                break;
            case 4:
                printf("%d\n",day+31+28+31);
                break;
            case 5:
                printf("%d\n",day+31+28+31+30);
                break;
            case 6:
                printf("%d\n",day+31+28+31+30+31);
                break;
            case 7:
                printf("%d\n",day+31+28+31+30+31+30);
                break;
            case 8:
                printf("%d\n",day+31+28+31+30+31+30+31);
                break;
            case 9:
                printf("%d\n",day+31+28+31+30+31+30+31+31);
                break;
            case 10:
                printf("%d\n",day+31+28+31+30+31+30+31+31+30);
                break;
            case 11:
                printf("%d\n",day+31+28+31+30+31+30+31+31+30+31);
                break;
            case 12:
                printf("%d\n",day+31+28+31+30+31+30+31+31+30+31+30);
                break;
        }

    }
    else 
    {
        switch(month)
        {
            case 1: 
                printf("%d\n",day);
                break;
            case 2:
                printf("%d\n",day+31);
                break;
            case 3:
                printf("%d\n",day+31+27);
                break;
            case 4:
                printf("%d\n",day+31+27+31);
                break;
            case 5:
                printf("%d\n",day+31+27+31+30);
                break;
            case 6:
                printf("%d\n",day+31+27+31+30+31);
                break;
            case 7:
                printf("%d\n",day+31+27+31+30+31+30);
                break;
            case 8:
                printf("%d\n",day+31+27+31+30+31+30+31);
                break;
            case 9:
                printf("%d\n",day+31+27+31+30+31+30+31+31);
                break;
            case 10:
                printf("%d\n",day+31+27+31+30+31+30+31+31+30);
                break;
            case 11:
                printf("%d\n",day+31+27+31+30+31+30+31+31+30+31);
                break;
            case 12:
                printf("%d\n",day+31+27+31+30+31+30+31+31+30+31+30);
                break;
        }
    }
}
//总结:代码写得太复杂,起始switch语句可以只使用一次的

编程练习5
题目:输入三个整数x,y,z,请把这三个数由小到大输出。

#include <stdio.h>

void main()
{
    int m, n, p, q;
    
    int a[3];
    printf("请输入三个整数\n");
    scanf("%d %d %d",a, &a[1], &a[2]);

    for(m=0;m<3;m++)
    {
        for(n=m+1;n<3;n++)
        {
            if(a[n]<a[m])
            {
                p=a[n];
                a[n]=a[m];
                a[m]=p;
            }
        }
    }
    for(q=0;q<3;q++)
    {
        printf("%d\n", a[q]);
    }
}
//总结:本次排序使用的是冒泡排序的方法

编程练习6
题目:输出特殊图案,请在c环境中运行,看一看,Very Beautiful!

#include <stdio.h> 
main() 
{ 
    char a=176,b=219; 
    printf("%c%c%c%c%c\n",b,a,a,a,b); 
    printf("%c%c%c%c%c\n",a,b,a,b,a); 
    printf("%c%c%c%c%c\n",a,a,b,a,a); 
    printf("%c%c%c%c%c\n",a,b,a,b,a); 
    printf("%c%c%c%c%c\n",b,a,a,a,b);
} 
//总结:输出的ascii码被cmd以GBK编码输出了,在cmd里面输入
//mode con cp select=437选择英文编码再运行就可以正常显示了
//用完了使用mode con cp select=936改回简体中文
//即在cmd中修改,然后在cmd命令行模式下运行该程序

编程练习7
题目:输出9*9口诀。

#include <stdio.h> 

void main()
{
    int i, j;
    for(i=1;i<10;i++)
    {
        for(j=1;j<i+1;j++)
        printf("%d*%d=%-3d",j,i,i*j);  /*-3d表示左对齐,占3位*/ 
        printf("\n");
    }
}
//总结:在输出的时候%-3d表示的是左对齐,占3位
//注意第二个循环的循环范围,在他循环结束后才输出一个换行符
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,236评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,867评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,715评论 0 340
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,899评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,895评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,733评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,085评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,722评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,025评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,696评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,816评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,447评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,057评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,009评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,254评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,204评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,561评论 2 343

推荐阅读更多精彩内容

  • 今天做一下练习题。 1、假如我国国民生产总值的年增长率为9%,计算10年后我国国民生产总值与现在相比增长多少百分比...
    重耳兄阅读 2,282评论 0 8
  • 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔...
    叶总韩阅读 5,126评论 0 41
  • 50道经典Java编程练习题,将数学思维运用到编程中来。抱歉哈找不到文章的原贴了,有冒犯的麻烦知会声哈~ 1.指数...
    OSET我要编程阅读 6,943评论 0 9
  • 【程序1】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子...
    Xplorist阅读 654评论 0 2
  • 今天早上宝宝睡到七点多才起来,上午带着宝宝一起去高新区行政服务中心去办理了户口事情。姥爷抱着睡回来。 下午睡觉起来...
    熊小笨阅读 136评论 0 0