C#语言100例经典源代码
程序1】
题目:有J 2、3. 4个数字,能组成多少个互不相同且无重复数字的三位数都 是多少
1 •程序分析:可填在百位.十位.个位的数字都是1、2、3、4o组成所有的排 列后再去
掉不满足条件的排列。
2.程序源代码:
ma i n ()
{
int i,j,k;
pr intf C\rT);
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 三位互不相同*/
pr i ntf ("%d, %d, %d\n", i, j, k);
}
)
【程序2】
题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提 10%;利润高
于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部 分,可可提
成%; 20万到40万之间时,高于20万元的部分,可提成免费分享源码大全5%; 40万到60万之间 时高于
40万元的部分,可提成3%; 60万到100万之间时,高于60万元的部分,可提 成%,高于
100万元吋,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放 奖金总数
1.程序分析:请利用数轴来分界,定位。注意定爻时需把奖金定艾成长整型。
2.程序源代码:
ma i n ()
{
Iong i nt i;
i nt bonusl,bonus2,bonus4, bonus6, bonuslO, bonus;
scanf ("%ld", &i);
bonus1=100000*;bonus2=bonus1+100000*;
bonus4=bonus2+200000*;
bonus6=bonus4+200000*;
bonusl0=bonus6+400000*;
if (i<=100000)
bonus二i *;
else if(i<=200000)
bonus二bonus*! + (i-100000) *;
else if(i<=400000)
bonus二bonus2+(i-200000) *;
else if(i<=600000)
bonus二bonus4+(i-400000)*;
else if(i<=1000000)
bonus二bonus6+(i-600000)*;
e I se
bonus二bonusl0+ (i T 000000)*; pr intf ("bonus=%d", bonus);
)
【程序3】
题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平 方数,请问该数是多少
1.程序分析:在10万以内判斷,先将该数加上100后再开方,再将该数加上268 E再开方,如果开方E
的结果满足如下条件,即是结果。请看具体分析:
2.程序源代码:
#i ncIude H H
ma i n ()
{
long int i,x, y, z;
for (i=1;i<100000;i++)
{ x=sqrt(i+100); /*x为加上100后开方后的结果*/
y=sqrt(i+268); /*y为再加上168后开方后的结果*/
i f (x*x== i +100&&y*y== i +268) /*如果一个数的平方根的平方等于该数,这说明此 数是完全平方数*/
pr intf (H\n%ld\n,\ i);
}
)
【程序4】
题目:输入某年某月某日,判断这一天是这一年的第几天
1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即 本年的第几天,特殊
情况,闰年且输入月份大于3时需考虑多加一天。
2•程序源代码:
ma i n ()
int day, month, year, sum, Ieap;
pr i ntf ("\npI ease i nput year,month, day\nH); scanf (H%d, %d, %du, &year, &month, &day);
switch (month)/*先计算某月以前月份的总天数*/ {
case 1:sum=O;break;
case 2:sum=31;break;
case 3:sum=59;break;
case 4:sumz=90;break;
case 5:sum=120;break;
case 6:sum=151;break;
case 7:sum=181;break;
case 8:sunF212;break;
case 9:sum=243;break;
作者:zhlei81 2005-1-22 11:29 回复此发言
2经典C源程序100例
case 10:sum=273;break;
case 11:sum=304;break;
case 12:sum=334;break;
defauIt:printf(”data errorH);break;
)
surrFsum+day; /*再加上某天的天数*/
if (year%400==0| | (year%4==0&&year%100!=0))/*判断是不是闰年*/
Ieap=1;
e I se
leap=0;
if (Ieap==1 &&month>2)/*如果是闰年且月份大于2,总天数应该加一天*/ sum++;
pr i n tf (”l t is the %dth day. sum);}
【程序5】
题目:输入三个整数x,y,z,请把这三个数由小到大输出。
1.程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y 则将x与y的值进行交换,
然后再用X与Z进行比较,如果X>Z则将X与Z的值进行交换,这样能使X最小。
2 •程序源代码:
ma i n () irrt x, y, z, t;
scanf (n%d%d%dM, &x, &y, &z);
if (x>y)
(t=x;x=y;y=t;J /*交换 x, y 的值*/
if(x>z)
{t=Z ; Z=X ; X=t ; } /*交换 X, z 的值*/
if (y>z)
{t=y;y=z;z=t;}/*交换 z, y 的值*/
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论