2.程序源代码:
main() {
int a,b,num1,num2,temp;
printf(\
scanf(\ if(num1 { temp=num1;
num1=num2; num2=temp;
} a=num1;b=num2;
while(b!=0)/*利用辗除法,直到b为0为止*/
{ temp=a%b; a=b; b=temp;
}
printf(\ printf(\
}
==============================================================
【程序17】
题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
1.程序分析:利用while语句,条件为输入的字符不为'\\n'.
2.程序源代码: #include \ main() {char c;
int letters=0,space=0,digit=0,others=0; printf(\
while((c=getchar())!='\\n')
{
if(c>='a'&&c<='z'||c>='a'&&c<='z')
letters++; else if(c==' ') space++;
else if(c>='0'&&c<='9')
digit++;
else others++;
}
printf(\
space,digit,others);
}
==============================================================
【程序18】
题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如
2+22+222+2222+22222(此时
共有5个数相加),几个数相加有键盘控制。
1.程序分析:关键是计算出每一项的值。
2.程序源代码:
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(\
}
==============================================================
【程序19】
题目:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.
编程
找出1000以内的所有完数。
1. 程序分析:请参照程序<--上页程序14.
2.程序源代码:
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(\
} }