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(\
}
==============================================================
【程序 1 7】
题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
1. 程序分析:利用 while 语句, 条件为输入的字符不为 '\\n'.
#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);
==============================================================
【程序 1 8】
题目:求 s=a+aa+aaa+aaaa+aa...a 的值,其中 a 是一个数字。例如
2+22+222+2222+22222(此时
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(\
}
==============================================================
【程序 1 9】
题目:一个数如果恰好等于它的因子之和,这个数就称为“完数” 。例如 6=1+2+3.
编程
找出 1000 以内的所有完数。
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(\
}
}
{