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