6.9 最后1 项为特别小的数的多项式之和
计算 1/1+1/3+1/5+?, 直到最后 1 项的值小于 10 -6 为止, 多项式累加和保留2位小数。 提示:
(1) 第 1 项 =1 ,第二项 =1/3,第三项 =1/5...... 每一项的值越来越小,小于 10 -6 的是哪一项呢?
(2)10 -6 在程序中的表示方式: 0.000001 或者 1e-6
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
#include
float a=1,b=0;
while((1.0/a)>0.000001) { b=b+1.0/a; a=a+2; }
printf(\,b); return 0; }
6.10 最大值的位置
从键盘上输入8个数,输出最大数是第几个输入的。
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
#include
for(i=2;i<=8;i++) { scanf(\,&b); if(b>a) { a=b; c=i; } }
printf(\最大数在第%d位置\\n\,c); return 0; }
6.11 区间输出
m、n从键盘输入,将区间[m,n)内的不能被3整除的数输出。
1. 2. 3. 4. 5.
#include
scanf(\,&a,&b); for(i=a;i
6. 7. 8. 9. 10. 11. 12. 13.
{
if(i%3!=0) printf(\,i); }
printf(\); return 0; }
6.14 统计及格人数
从键盘输入10个学生的成绩,要求统计及格人数并输出。
1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
#include
printf(\及格人数=%d个\\n\,i); return 0; }
6.16 寻找玫瑰花 (单重循环)
如果一个 4 位数等于它的各位数字的 4 次方和,则这个4 位数称为“玫瑰花”数,例如 1634 就是一个玫瑰花数。要求用单重循环完成,即不使用穷举法,求出所有玫瑰花数。
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
#include
for(a=1000;a<=9999;a++) { b=a/1000; i=a/100; d=a/10; r=a;
if(b*b*b*b+i*i*i*i+d*d*d*d+r*r*r*r==a) printf(\,a); }
return 0; }
6.17 鸡兔同笼问题之二
设在一只笼子里关着鸡和兔子共m只,笼子中的脚数有n,求鸡和兔各有多少只? m和n从键盘输入。
编程思路:穷举法。
1. 2. 3.
#include
4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
scanf(\,&a,&b);
if((a%2!=0)&&(b%2!=0)) printf(\无此结果\\n\ else
for(i=1;i<=a;i++) { for(d=1;d<=a;d++)
{ if((i+d==a)&&(2*i+4*d==b)) printf(\鸡=%d,兔=%d\\n\,i,d); } }
return 0; }
6.18 小写字符转换成大写输出 2016.3.30 模块考试原题:
连续输入15个小写字符,将他们转换成大写字符并输出。 小写转大写:字符-32 考点:字符输入输出,循环
1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
#include
printf(\,a); }
return 0; }
7.2 [n-200]区间满足条件的个数
n, k 从键盘上输入, 输出 [n-200] 间所有末位是k或者能被k整除的数的个数。
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
#include
printf(\,a); return 0; }
7.3 100匹马运100担货
100 匹马驮 100 担货,大马一匹驮3担,中马一匹驮 2 担,小马两匹驮1担,编写程序计算大 中 小马的个数,以例如 20,0,80 格式输出。
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
#include
for(b=0;b<=100;b++) { for(n=0;n<=100;n++) { for(m=0;m<=100;m++)
if((b+m+n==100)&&(3*m+2*n+b*0.5==100)) printf(\,m,n,b); } }
return 0; }
7.4 数之和
输出两位数中不能被 4 或 5 整除的数之和。
1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
#include
for(b=10;b<=99;b++) { if(b%4!=0||b%5!=0) m=m+b; }
printf(\,m); return 0; }
7.5 聚餐问题
现有30人聚餐,其中可能有男人、女人和小孩,吃饭餐费共500元。每个男人30元,每个女人20元,每个小孩10元。问男人女人小孩各多少人?
输出每种可能,如男人0人、女人20人、小孩10人,则输出0,20,10?
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
#include
if((b+m+n==30)&&(30*m+20*n+b*10==500)) printf(\,m,n,b); } }
return 0; }
7.6 数组元素的输入输出
从键盘依次输入10个整数,按输入顺序的相反顺序(即逆序)进行输出。
提示:
(1) 首先打消想定义 a 、 b 、 c 、 d 、 e 、 f 、 g 、 h 、 i 、 j 的想法。 (2) 学会数组的声明、数组元素的输入和输出。
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
#include
printf(\);
return 0; }
7.12 输出最小数及其所对应的下标
从键盘上输入10个整数,编程输出其中最小的数以及其所对应的下标。要求用数组实现。 提示:例如 89 、 23 、 44 、 55 、 77 、11、 34 、 20 、 35、30, 这十个数中最小值为11 ,它在数组中的下标为 5 。 (1) 第一段循环:给数组元素赋值;
(2)假定 最小值= 第一个数组元素,最小值的下标= 第一个数组元素的下标; (3) 第二段循环:最小值和后面的 9 个数组元素比较; (4) 输出结果;
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
#include
{ int b,a[10],m=0,c=0; for(b=0;b<=9;b++) { scanf(\,&a[b]); } m=a[0];
for(b=0;b<=9;b++) { if(a[b] printf(\最小值=%d\\n下标=%d\\n\,m,c); return 0; } 7.13 查找数 已知数学集合A为{1,3,5,9,11,13,15,19,23,25}, 从键盘上输入一个自然数 n, 若n在集合A中,则输出 n 在集合中的所处的位置, 例如:输入 5 ,则输出其在集合中的 位置=3 ;输入 10 ,输出“无此数”。