c语言10个经典小程序

 更新时间£º2013年01月30日 17:11:29   作者£º   我要评论

c语言的经典程序£¬学习c语言的初学者可以参考下

¡¾程序1¡¿
题目£º有1¡¢2¡¢3¡¢4个数字£¬能组成多少个互不相同且无重复数字的三位数£¿都是多少£¿
1.程序分析£º可填在百位¡¢十位¡¢个位的数字都是1¡¢2¡¢3¡¢4¡£组成所有的排列后再去
¡¡¡¡¡¡¡¡¡¡¡¡掉不满足条件的排?#23567;?
2.程序源代码£º

复制代码 代码如下:

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


¡¾程序2¡¿
题目£º企业发放的奖金根据利润提成¡£利润(I)低于或等于10万元时£¬奖金可提10%£»利润高
¡¡¡¡¡¡于10万元£¬低于20万元时£¬低于10万元的部分按10%提成£¬高于10万元的部分£¬可可提
¡¡¡¡¡¡成7.5%£»20万到40万之间时£¬高于20万元的部分£¬可提成5%£»40万到60万之间?#22791;?#20110;
¡¡¡¡¡¡40万元的部分£¬可提成3%£»60万到100万之间时£¬高于60万元的部分£¬可提成1.5%£¬高于
¡¡¡¡¡¡100万元时£¬超过100万元的部分按1%提成£¬从键盘输入当月利润I£¬求应发放奖金总数£¿
1.程序分析£º请利用数轴来分界£¬定位¡£注意定义时需把奖金定义成长整型¡£¡¡¡¡¡¡¡¡¡¡¡¡
2.程序源代码£º
复制代码 代码如下:

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

¡¾程序3¡¿
题目£º一个整数£¬它加上100后是一个完全平方数£¬再加上168又是一个完全平方数£¬请问该数是多少£¿
1.程序分析£º在10万以内判断£¬先将该数加上100后再开方£¬再将该数加上268后再开方£¬如果开方后
¡¡¡¡¡¡¡¡¡¡¡¡的结果满足如下条件£¬?#35789;?#32467;果¡£请看具体分析£º
2.程序源代码£º

复制代码 代码如下:

#include "math.h"
main()
{
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);
¡¡ }
}

¡¾程序4¡¿
题目£º输入某年某月某日£¬判断这一天是这一年的第几天£¿
1.程序分析£º以3月5日为例£¬应该先把前两个月的加起来£¬然后再加上5天即本年的第几天£¬特殊
¡¡¡¡¡¡¡¡¡¡¡¡情况£¬闰年且输入月份大于3时需考虑多加一天¡£
2.程序源代码£º

复制代码 代码如下:

main()
{
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;
¡¡defaultrintf("data error");break;
}
sum=sum+day; ¡¡/*再加上?#31243;?#30340;天数*/
¡¡if(year%400==0||(year%4==0&&year%100!=0))/*判断是不是闰年*/
¡¡¡¡leap=1;
¡¡else
¡¡¡¡leap=0;
if(leap==1&&month>2)/*如果是闰年?#20197;?#20221;大于2,总天数应该加一天*/
sum++;
printf("It is the %dth day.",sum); }

¡¾程序5¡¿
题目£º输入三个整数x,y,z£¬请把这三个数由小到大输出¡£
1.程序分析£º我们想办法把最小的数放到x上£¬先将x与y进行比较£¬如果x>y则将x与y的?#21040;?#34892;交换£¬
¡¡¡¡¡¡¡¡¡¡¡¡然后再用x与z进行比较£¬如果x>z则将x与z的?#21040;?#34892;交换£¬这样能使x最小¡£
2.程序源代码£º

复制代码 代码如下:

main()
{
int x,y,z,t;
scanf("%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);
}

¡¾程序6¡¿
题目£º用*号输出字母C的图案¡£
1.程序分析£º可先用<|>*<|>号在纸上写出字母C£¬再?#20013;?#36755;出¡£
2.程序源代码£º

复制代码 代码如下:

#include "stdio.h"
main()
{
printf("Hello C-world!\n");
printf(" ****\n");
printf(" *\n");
printf(" * \n");
printf(" ****\n");
}

¡¾程序7¡¿
题目£º输出特殊图案£¬请在c环境中运行£¬看一看£¬Very Beautiful!
1.程序分析£º字符共有256个¡£不同字符£¬图形不一样¡£¡¡¡¡¡¡¡¡¡¡¡¡
2.程序源代码£º

复制代码 代码如下:

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

¡¾程序8¡¿
题目£º输出9*9口诀¡£
1.程序分析£º?#20013;?#19982;列考虑£¬共9行9列£¬i控制行£¬j控制?#23567;?
2.程序源代码£º

复制代码 代码如下:

#include "stdio.h"
main()
{
¡¡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");/*每一行后换行*/
¡¡¡¡ }
}

¡¾程序9¡¿
题目£º要求输出国际象棋棋盘¡£
1.程序分析£º用i控制行£¬j来控制列£¬根据i+j的和的变化来控制输出黑方格£¬还是白方格¡£
2.程序源代码£º

复制代码 代码如下:

#include "stdio.h"
main()
{
int i,j;
for(i=0;i<8;i++)
¡¡{
¡¡¡¡for(j=0;j<8;j++)
¡¡¡¡¡¡if((i+j)%2==0)
¡¡¡¡¡¡¡¡printf("%c%c",219,219);
¡¡¡¡¡¡else
¡¡¡¡¡¡¡¡printf(" ");
¡¡¡¡¡¡printf("\n");
¡¡ }
}

¡¾程序10¡¿
题目£º打印楼梯£¬同时在楼梯上方打印两个笑脸¡£
1.程序分析£º用i控制行£¬j来控制列£¬j根据i的变化来控制输出黑方格的个数¡£
2.程序源代码£º

复制代码 代码如下:

#include "stdio.h"
main()
{
int i,j;
printf("\n");/*输出两个笑脸*/
for(i=1;i<11;i++)
¡¡{
¡¡for(j=1;j<=i;j++)
¡¡ ¡¡printf("%c%c",219,219);
¡¡printf("\n");
¡¡ }
}

相关文章

  • C++如?#38382;?#29616;广义表详解

    C++如?#38382;?#29616;广义表详解

    广义表是非线性结构£¬其定义是递归的¡£那么下面跟着小编一起看看如何用C++实现广义表£¬有需要的可以参考借鉴¡£
    2016-08-08
  • C++ STL入门教程(6) set(集合)的使用方法

    C++ STL入门教程(6) set(集合)的使用方法

    这篇文章主要为大家详细介绍了C++ STL入门教程的第六篇£¬set集合的使用方法£¬具有一定的参考价值£¬?#34892;?#36259;的小伙伴们可以参?#23478;?#19979;
    2017-08-08
  • 深度剖析C语言结构体

    深度剖析C语言结构体

    今天小编就为大家分享一篇关于深度剖析C语言结构体£¬小编觉得内容挺不错的£¬现在分享给大家£¬具有很好的参考价值£¬需要的朋友一起跟随小编来看看吧
    2018-12-12
  • C++利用LuaIntf调用Lua的方法示例

    C++利用LuaIntf调用Lua的方法示例

    这篇文章主要给大家介绍了关于C++利用LuaIntf调用Lua以及利用lua-intf来调用C++函数的相关资料£¬文中通过示例代码介绍的非常详细£¬?#28304;?#23478;的学习或者工作具有一的参考学习价值£¬需要的朋友们下面来一起看看吧¡£
    2017-11-11
  • 2048小游戏C语言实现代码

    2048小游戏C语言实现代码

    这篇文章主要为大家详细介绍了2048小游戏C语言实现代码£¬具有一定的参考价值£¬?#34892;?#36259;的小伙伴们可以参?#23478;?#19979;
    2018-05-05
  • 深入理解双指针的两种用法

    深入理解双指针的两种用法

    本篇文章是?#36816;?#25351;针的两种用法进行了详细的分析介绍£¬需要的朋友参考下
    2013-05-05
  • C++高级程序员成长之路

    C++高级程序员成长之路

    本文主要是结合自身的经验£¬给大家罗列了一些如何成为C++高级程序员的方法和注意事项£¬分享给大家£¬希望对新手能够有所帮助¡£
    2015-12-12
  • C++使用一个栈实现另一个栈的排序算法示例

    C++使用一个栈实现另一个栈的排序算法示例

    这篇文章主要介绍了C++使用一个栈实现另一个栈的排序算法,结合实例形式分析了C++借助辅助栈实现栈排序算法的相关操作技巧,需要的朋友可以参考下
    2017-05-05
  • 对C语言中指针的理解与其基础使用实例

    对C语言中指针的理解与其基础使用实例

    这篇文章主要介绍了对C语言中指针的理解与其基础使用实例,文中援引了知乎热门问题"为什么说指针是 C 语言的精髓£¿"中的精彩回答,需要的朋友可以参考下
    2016-03-03
  • C++实现查找二叉树中和为某一值的所?#26032;?#24452;的示例

    C++实现查找二叉树中和为某一值的所?#26032;?#24452;的示例

    这篇文章主要介绍了C++实现查找二叉树中和为某一值的所?#26032;?#24452;的示例,文中的方法是根据数组生成二叉排序树并进行遍历,需要的朋友可以参考下
    2016-02-02

最新评论

ÁÉÄþ35Ñ¡7¿ª½±½á¹û