___________________________________________________________________
程序源代码: main() {
int a,n,count=1; long int sn=0,tn=0;
printf(\scanf(\
printf(\while(count<=n) {
tn=tn+a; sn=sn+tn; a=a*10; ++count; }
printf(\}
题目:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2 +3.编程找出1000以内的所有完数。
___________________________________________________________________
程序源代码: main() {
static int k[10]; int i,j,n,s;
for(j=2;j<1000;j++) { n=-1; s=j;
for(i=1;i { if((j%i)==0) { n++; s=s-i; k[n]=i; } }
if(s==0) {
printf(\for(i=0;i printf(\printf(\[n]); } } }
题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下, 求它在第10次落地时,共经过多少米?第10次反弹多高?
___________________________________________________________________
程序源代码: main() {
float sn=100.0,hn=sn/2; int n;
for(n=2;n<=10;n++) {
sn=sn+2*hn; hn=hn/2; }
printf(\printf(\}
题目:一只猴子摘了N个桃子第一天吃了一半又多吃了一个,第二天又吃了余下的 一半又多吃了一个,到第十天的时候发现还有一个.
___________________________________________________________________
程序源代码:
main() {
int i,s,n=1;
for(i=1;i<10;i++) {
s=(n+1)*2 n=s; }
printf(\第一天共摘了%d个桃\\n\}
迭代法求方程根
___________________________________________________________________
#define Epsilon 1.0E-6 #include
float a,x0,x1;
printf(\请输入要求的数:\scanf(\x0=a/2;
x1=(x0+a/x0)/2;
while(fabs(x1-x0)>=Epsilon) {
x0=x1;
x1=(x0+a/x0)/2; }
printf(\的平方根:%f.5\\n\}
#define Epsilon 1.0E-6 #include
float num,pre,this; do {
scanf(\}while(num<0); if (num==0)
printf(\else {
this=1; do {
pre=this;
this=(pre+num/pre)/2;
}while(fabs(pre-this)>Epsilon); }
printf(\}
用牛顿迭代法 求方程 2*x*x*x-4*x*x+3*x-6 的根
#define Epsilon 1.0E-6 #include
float x1,x0=1.5;
x1=x0-(2*x0*x0*x0-4*x0*x0+3*x0-6)/(6*x0*x0-8*x0+3); while(fabs(x1-x0>=Epsilon) { x0=x1;
x1=x0-(2*x0*x0*x0-4*x0*x0+3*x0-6)/(6*x0*x0-8*x0+3); }
printf(\方程的根为%f\\n\}
用二分法求上题
#define Epsilon 1.0E-5 #include
folat x1,x2,x0,f1,f2,f0; x0=(x1+x2)/2;
f0=2*x0*x0*x0-4*x0*x0+3*x0-6; while(fabs(f0)>=Epsilon) {
if(f0*f1<0) { x2=x0;
f2=2*x2*x2*x2-4*x2*x2+3*x2-6; }
if(f0*f2<0) { x1=x0;
f1=2*x1*x1*x1-4*x1*x1+3*x1-6; }
x0=(x1+x2)/2;
f0=2*x0*x0*x0-4*x0*x0+3*x0-6; }
printf(\用二分法求得方程的根:%f\\n\}
题目:打印出如下图案(菱形) * *** ****** ******** ****** *** *
___________________________________________________________________
程序分析:先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利 用双重for循环,第一层控制行,第二层控制列。
___________________________________________________________________
程序源代码: main() {
int i,j,k;
for(i=0;i<=3;i++) {
for(j=0;j<=2-i;j++) printf(\
for(k=0;k<=2*i;k++) printf(\printf(\}
for(i=0;i<=2;i++) {
for(j=0;j<=i;j++) printf(\
for(k=0;k<=4-2*i;k++) printf(\printf(\} }
题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同, 十位与千位相同。
___________________________________________________________________
程序分析:同29例
___________________________________________________________________