7个C语言小程序让你快速入门程序世界

相信这么努力的你 已经置顶了我

老九学堂 你身边的IT导师

今天,上班/上课第二天

是时候拼命开始学习了

今天大雄就分享10个

比较基础的C语言的小程序

希望给初学C语言的小伙伴们一点点帮助

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

程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。

程序源代码:

#include<stdio.h>
#include<stdlib.h>
int main()
{
 int i, j, k;
 printf("\n");
 for (i = 1; i < 5; i++)/*以下为三重循环*/
  for (j = 1; j < 5; j++)
   for (k = 1; k < 5; k++)
   {
    if (i != k && i != j && j != k) /*确保i、j、k三位互不相同*/
     printf("%d,%d,%d\n", i, j, k);
   }
 system("pause");
 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> #include<stdlib.h> int main() { { long int i; int bonus1, bonus2, bonus4, bonus6, bonus10, bonus; scanf("%ld", &i); bonus1 = 100000 * 0.1; bonus2 = bonus1 + 100000 * 0.75; bonus4 = bonus2 + 200000 * 0.5; bonus6 = bonus4 + 200000 * 0.3; bonus10 = bonus6 + 400000 * 0.15; if (i <= 100000) bonus = i * 0.1; else if (i <= 200000) bonus = bonus1 + (i - 100000)*0.075; else if (i <= 400000) bonus = bonus2 + (i - 200000)*0.05; else if (i <= 600000) bonus = bonus4 + (i - 400000)*0.03; else if (i <= 1000000) bonus = bonus6 + (i - 600000)*0.015; else bonus = bonus10 + (i - 1000000)*0.01; printf("bonus=%d", bonus); } system("pause"); return 0; }

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

程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后 的结果满足如下条件,即是结果。

程序源代码:

#include <math.h>
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
 long int i, x, y, z;
 for (i = 1; i < 100000; i++)
 {
  x = sqrt(i + 100);/*x为加上100后开方后的结果*/
  y = sqrt(i + 268);/*y为再加上168后开方后的结果*/
  if (x*x == i + 100 && y*y == i + 268)/*如果一个数的平方根的平方等于该数,这说明此数是完全平方数*/
   printf("\n%ld\n", i);
 }
 system("pause");
 return 0;
}

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

程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。

程序源代码:

#include<stdio.h>
#include<stdlib.h>
int main(void)
{
  int day, month, year, sum, leap;
  printf("\nplease input year,month,day\n");
  scanf("%d,%d,%d", &year, &month, &day);
  switch (month)/*先计算某月以前月份的总天数*/
  {
  case 1:sum = 0; break;
  case 2:sum = 31; break;
  case 3:sum = 59; break;
  case 4:sum = 90; break;
  case 5:sum = 120; break;
  case 6:sum = 151; break;
  case 7:sum = 181; break;
  case 8:sum = 212; break;
  case 9:sum = 243; break;
  case 10:sum = 273; break;
  case 11:sum = 304; break;
  case 12:sum = 334; break;
  default :printf("data error"); break;
  }
  sum = sum + day;/*再加上某天的天数*/
  if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0))/*判断是不是闰年*/
   leap = 1;
  else
   leap = 0;
  if (leap == 1 && month > 2)/*如果是闰年且月份大于2,总天数应该加一天*/
   sum++;
  printf("It is the %dth day.", sum);
 
 system("pause");
 return 0;
}

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

程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。

程序源代码:

#include<stdio.h> #include<stdlib.h> int main(void) { int x, y, z, t; scanf_s("%d%d%d", &x, &y, &z); if (x > y) /*交换x,y的值*/ if (x > z) /*交换x,z的值*/ if (y > z) /*交换z,y的值*/ printf("small to big: %d %d %d\n", x, y, z); system("pause"); return 0; }

6、题目:用*号输出字母C的图案。

程序分析:可先用<|>*<|>号在纸上写出字母C,再分行输出。

程序源代码:

#include<stdio.h> #include<stdlib.h> int main(void) { printf("Hello C-world!\n"); printf(" ****\n"); printf(" *\n"); printf(" * \n"); printf(" ****\n"); system("pause"); return 0; }

7、题目:输出9*9口诀。

程序分析:分行与列考虑,共9行9列,i控制行,j控制列。

程序源代码:

#include<stdio.h>
#include<stdlib.h>
int main(void)
{
  int i, j, result;
  printf("\n");
  for (i = 1; i < 10; i++)
  {
   for (j = 1; j < 10; j++)
   {
    result = i * j;
    printf("%d*%d=%-3d", i, j, result);/*-3d表示左对齐,占3位*/
   }
   printf("\n");/*每一行后换行*/
  }
 system("pause");
 return 0;
}

敲代码一定要多敲多想

在小伙伴思考的同时加深理解

一定不要只是干巴巴的照敲哟!

今日互动

进入编程世界

你有什么快速通道呢?

如果小伙伴刚刚开始学习编程语言

大雄给大家推荐下面的教材

这三本教材是公认的语言学习权威书籍

再配上老九学堂的学习视频

对小伙伴们的编程语言基础学习

会起到事半功倍的效果

原文发布于微信公众号 - 老九学堂(xuetang9)

原文发表时间:2018-10-09

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏算法与数据结构

拓扑排序 HDU - 5695

众所周知,度度熊喜欢各类体育活动。  今天,它终于当上了梦寐以求的体育课老师。第一次课上,它发现一个有趣的事情。在上课之前,所有同学要排成一列, 假设最开始每...

23950
来自专栏Java Web

Java 8——行为参数化

前言 《Java8实战》不得不说是一本好书,捧起来看起来就兴奋得不想放下,其中介绍的函数式编程实在是太令人兴奋了,不仅仅大大提高了代码的可读性,而且提高了代码的...

46870
来自专栏企鹅号快讯

为什么说Kotlin的可读性比Java好?

作者|小创 编辑|覃云 不久之前,我看了一篇文章,大意是 Kotlin 与 Java 之间的对比,像这种文章,我一般是直接忽略的,但是那天我还是打开了,然后就看...

36150
来自专栏小蠢驴iOS专题

Masonry拓展-链式编程 & 函数式编程

15440
来自专栏程序员与猫

使用抽象类和接口的优解

10510
来自专栏程序员维他命

如何提高代码的可读性? - 读《编写可读代码的艺术》

很多同行在编写代码的时候往往只关注一些宏观上的主题:架构,设计模式,数据结构等等,却忽视了一些更细节上的点:比如变量如何命名与使用,控制流的设计,以及注释的写法...

12310
来自专栏nimomeng的自我进阶

探索命名之美(一)

很多新码农在工作中总会被老鸟批评程序命名的陋习,我也被批评过很多次。痛定思过,我决定要研究应该怎么命名,为什么要给函数一个好的命名很难,应该怎么样给函数命名。

18930
来自专栏C语言及其他语言

【每日一题】亲密数

题目描述 两个不同的自然数A和B,如果整数A的全部因子(包括1,不包括A本身)之和等于B;且整数B的全部因子(包括1,不包括B本身)之和等于A,则将整数A和B称...

30140
来自专栏编程

邪恶的编码魔咒,你中招没?

关键时刻,第一时间送达! 自从我观看了Gary Bernhardt所推崇的视频以后,就对某些编程语言的怪异表现着迷了。一些编程语言比其他语言有更多令人感到意外的...

18970
来自专栏张泽旭的专栏

回溯法解决八人过河问题

一家六口,一个爸爸,一个妈妈,俩儿子,俩女儿,还有一个警察,一个坏蛋,过一条河,爸爸不在妈妈伤害儿子,妈妈不在爸爸伤害女儿,警察不在坏蛋伤害一家六口,只有妈妈爸...

10520

扫码关注云+社区

领取腾讯云代金券