C语言能写出什么样有趣的小程序?

c语言是一种通用的计算机编程语言,应用非常广泛。

C语言的设计目标是提供一种能够以简单的方式编译处理低级内存,生成少量机器码,无需任何运行环境支持即可运行的编程语言。

c语言提供了很多底层处理功能,但仍然保持了良好的跨平台特性。用标准规范编写的c语言程序可以在许多计算机平台上编译,甚至包括一些嵌入式处理器(单片机或MCU)和超级计算机。

题目:有1,2,3,4个数。你能编多少个不同的三位数?它们一共多少钱?

程序分析:能填百、十、单位的数都是1、2、3、4。在所有排列形成之后,不满足条件的排列被移除。

程序源代码:

主()

{int i,j,k;printf(\ n);for(I = 1;我& lt5;I++)/*以下是三重循环*/for(j = 1;j & lt5;j++)

for(k = 1;k & lt5;k++),{f (i!=ki!=jj!=k) /*确保I,J,K互不相同*/ printf(%d,%d,%d\n,I,J,K);}}

题目:企业发奖金是以利润为基础的。利润(I)小于或等于654.38+万元时,可增加奖金654.38+00%;利润高于654.38+万元低于20万元时,低于654.38+万元的部分扣除654.38+00%,高于654.38+万元的部分扣除7.5%。20-40万元之间,20万元以上部分可扣除5%;40-60万之间,40万以上部分可抵扣3%;60万元到654.38+0万元之间,60万元以上的部分可以获得654.38+0.5%的佣金;高于654.38+0万元时,高于654.38+0万元的部分将获得654.38+0%的佣金。从键盘输入当月的利润I,找出应发的奖金总额。

程序分析:请用数轴分割定位。注意,奖金应该被定义为一个增长整数。

程序源代码:

主()

{

long int I;

int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;

scanf(%ld,I);

bonus 1 = 100000 * 0.1;bonus 2 = bonus 1+100000 * 0.75;

bonus 4 = bonus 2+200000 * 0.5;

bonus 6 = bonus 4+200000 * 0.3;

bonus 10 = bonus 6+400000 * 0.15;

如果(我& lt=100000)

奖金= I * 0.1;

else if(I & lt;=200000)

bonus = bonus 1+(I-100000)* 0.075;

else if(I & lt;=400000)

bonus = bonus 2+(I-200000)* 0.05;

else if(I & lt;=600000)

bonus = bonus 4+(I-400000)* 0.03;

else if(I & lt;=1000000)

bonus = bonus 6+(I-600000)* 0.015;

其他

bonus = bonus 10+(I-1000000)* 0.01;

printf(bonus=%d,bonus);

}

6.题目:一个整数,加100后是一个完整的正方形,加168是一个完整的正方形。数字是多少?

方案分析:如果判断在65438+百万以内,开药前在这个数上加100,再开药前在这个数上加268。如果开药后的结果符合以下条件,则为结果。

程序源代码:

#包含数学. h

主()

{

long int i,x,y,z;

for(I = 1;我& lt100000;i++)

{ x = sqrt(I+100);/*x是处方加100后的结果*/

y = sqrt(I+268);/*y是168相加后的结果*/

If(x * x = = I+100y * y = = I+268)/*如果一个数的平方根的平方等于该数,则表示该数完全平方*/

printf(\n%ld\n,I);

}

}

7.题目:输入某年的某一天,决定这一天是一年中的哪一天。

方案分析:以3月5日为例,你要把前两个月加起来,再加5天,就是今年的这一天。在特殊情况下,闰年和输入月份大于3,你应该考虑增加一天。

程序源代码:

主()

{

int日、月、年、和、闰;

printf(\ n请输入年、月、日\ n);

scanf(%d,%d,%d,年,月,日)。

Switch(month)/*计算某个月之前一个月的总天数*/

{

案例1:sum = 0;打破;

情况二:sum = 31;打破;

案例三:sum = 59打破;

情况四:sum = 90打破;

情况5:sum = 120;打破;

案例6:sum = 151;打破;

案例7:sum = 181;打破;

案例8:sum = 212;打破;

案例9:sum = 243;打破;

案例10:sum = 273;打破;

案例11:sum = 304;打破;

案例12:sum = 334;打破;

defaultrintf(数据错误);打破;

}

总和=总和+天;/*加上一天中的天数*/

if(year % 400 = = 0 | |(year % 4 = = 0 year % 100!=0))/*判断是否是闰年*/

leap = 1;

其他

闰= 0;

if(leap = = 1 month & gt;2)/*如果是闰年,月份大于2,总天数要加一天*/

sum++;

printf(今天是第%dth天。,sum);}

8.题目:输入三个整数x,Y,z Y,Z,请从小到大输出这三个数。

程序分析:我们尽量把最小的数放在X上,先比较X和Y。如果X >;Y交换X和Y的值,然后比较X和Z,如果X >: Z交换X和Z的值,可以最小化X。

程序源代码:

主()

{

int x,y,z,t;

scanf(%d%d%d,x,y,z);

if(x & gt;y)

/*交换x,y的值*/

if(x & gt;z)

/*交换x和z的值*/

如果(y & gtz)

/*交换z和y的值*/

printf(从小到大:%d %d %d\n,x,y,z);

}

9.标题:用*输出字母c的图案。

程序分析:您可以使用

程序源代码:

#包含stdio.h

主()

{

printf(你好C-world!\ n);

printf(* * * * \ n);

printf(* \ n);

printf(* \ n);

printf(* * * * \ n);

}

10.标题:输出特殊图案,请在C环境下运行,看看吧,非常漂亮!

程序分析:有256个字符* * *。不同的角色,不同的图形。

程序源代码:

#包含stdio.h

主()

{

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);}

11.标题:输出9*9公式。

程序分析:考虑分支和列,***9行9列,I控制行,J控制列。

程序源代码:

#包含stdio.h

主()

{

int i,j,result

printf(\ n);

for(I = 1;我& lt10;i++)

{ for(j = 1;j & lt10;j++)

{

结果= I * j;

printf(%d*%d=%-3d,I,j,result);/*-3d表示左对齐,占3位数*/

}

printf(\ n);/*每行后换行*/

}

}

12.题目:国际象棋棋盘需要出口。

程序分析:我控制行,J控制列,根据I+J之和的变化控制输出黑色方块还是白色方块。

程序源代码:

#包含stdio.h

主()

{

int i,j;

for(I = 0;我& lt8;i++)

{

for(j = 0;j & lt8;j++)

如果((i+j)%2==0)

printf(%c%c,219,219);

其他

printf();

printf(\ n);

}

}

13.标题:打印楼梯,同时在楼梯上方打印两张笑脸。

程序分析:I控制行,J控制列,J根据I的变化控制输出黑方块的个数。

程序源代码:

#包含stdio.h

主()

{

int i,j;

printf(\ n);/*输出两张笑脸*/

for(I = 1;我& lt11;i++)

{

for(j = 1;j & lt= I;j++)

printf(%c%c,219,219);

printf(\ n);

}