分享
 
 
 

C程序开发经典实例之2

王朝c/c++·作者佚名  2008-06-01
窄屏简体版  字體: |||超大  

【程序11】

题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

1.程序分析: 兔子的规律为数列1, 1, 2, 3, 5, 8, 13, 21....

2.程序源代码:

main()

{

long f1, f2;

int i;

f1 = f2 = 1;

for(i = 1; i <= 20; i++)

{

printf("%12ld %12ld", f1, f2);

if(i % 2 == 0)

printf("\n"); /* 控制输出,每行四个 */

f1 = f1 + f2; /* 前两个月加起来赋值给第三个月 */

f2 = f1 + f2; /* 前两个月加起来赋值给第三个月 */

}

}

【程序12】

题目:判定101-200之间有多少个素数,并输出所有素数。

1.程序分析:判定素数的方法:用一个数分别去除2到sqrt(这个数),假如能被整除,则表明此数不是素数,反之是素数。

2.程序源代码:

#include "math.h"

/* 欢迎访问 C++Builder研究 - www.ccrun.com */

main()

{

int m, i, k, h=0, leap=1;

printf("\n");

for(m = 101; m <= 200; m++)

{

k = sqrt(m + 1);

for(i = 2; i <= k; i++)

if(m % i == 0)

{

leap = 0; break;

}

if(leap)

{

printf("%-4d", m); h++;

if(h%10==0)

printf("\n");

}

leap=1;

}

printf("\nThe total is %d", h);

}

【程序13】

题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。

1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。

2.程序源代码:

main()

{

int i, j, k, n;

printf("'water flower'number is:");

for(n = 100; n < 1000; n++)

{

i = n / 100; /* 分解出百位 */

j = n / 10 % 10; /* 分解出十位 */

k = n % 10; /* 分解出个位 */

if(i * 100 + j * 10 + k == i * i * i + j * j * j + k * k * k)

{

printf("%-5d", n);

}

}

printf("\n");

}

【程序14】

题目:将一个正整数分解质因数。例如:输入90, 打印出90=2*3*3*5。

程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:

(1)假如这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。

(2)假如n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商, 作为新的正整数你n, 重复执行第一步。

(3)假如n不能被k整除,则用k+1作为k的值, 重复执行第一步。

2.程序源代码:

/* zheng int is divided yinshu*/

main()

{

int n, i;

printf("\nplease input a number:\n");

scanf("%d", &n);

printf("%d=", n);

for(i=2;i<=n;i++)

{

while(n != i)

{

if(n % i == 0)

{

printf("%d*", i);

n = n / i;

}

else

break;

}

}

printf("%d", n);

}

【程序15】

题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。

1.程序分析:(a>b)?a:b这是条件运算符的基本例子。

2.程序源代码:

main()

{

int score;

char grade;

printf("please input a score\n");

scanf("%d", &score);

grade = score >= 90? 'A': (score>=60?'B':'C');

printf("%d belongs to %c", score, grade);

}

【程序16】

题目:输入两个正整数m和n,求其最大公约数和最小公倍数。

1.程序分析:利用辗除法。

2.程序源代码:

main()

{

int a, b, num1, num2, temp;

printf("please input two numbers:\n");

scanf("%d, %d", &num1, &num2);

if(num1 < num2)

{

temp = num1;

num1 = num2;

num2 = temp;

}

a = num1; b = num2;

while(b != 0) /* 利用辗除法,直到b为0为止 */

{

temp = a % b;

a = b;

b = temp;

}

printf("gongyueshu:%d\n", a);

printf("gongbeishu:%d\n", num1 * num2 / a);

}

【程序17】

题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

1.程序分析:利用while语句, 条件为输入的字符不为'\n'.

2.程序源代码:

#include "stdio.h"

/* 欢迎访问 C++Builder研究 - www.ccrun.com */

main()

{

char c;

int letters = 0, space = 0, digit = 0, others = 0;

printf("please input some characters\n");

while((c = getchar()) != '\n')

{

if(c >= 'a' && c <= 'z' c >= 'A' && c <

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有