if(a%i==0)/*如果i是a的因子*/
{n++;/*n加1,表示新找到一个因子*/
s=s-i;/*s减去已找到的因子,s的新值是尚未求出的因子之和*/
switch(n)/*将找到的因子赋给k1...k9,或k10*/
{case1:
k1=i;break;/*找出的笫1个因子赋给k1*/
case2:
k2=i;break;/*找出的笫2个因子赋给k2*/
case3:
k3=i;break;/*找出的笫3个因子赋给k3*/
case4:
k4=i;break;/*找出的笫4个因子赋给k4*/
case5:
k5=i;break;/*找出的笫5个因子赋给k5*/
case6:
k6=i;break;/*找出的笫6个因子赋给k6*/
case7:
k7=i;break;/*找出的笫7个因子赋给k7*/
case8:
k8=i;break;/*找出的笫8个因子赋给k8*/
case9:
k9=i;break;/*找出的笫9个因子赋给k9*/
case10:
k10=i;break;/*找出的笫10个因子赋给k10*/
}
}
if(s==0)
{
printf("%d,Itsfactorsare",a);
if(n>1)printf("%d,%d",k1,k2);/*n>1表示a至少有2个因子*/
if(n>2)printf(",%d",k3);/*n>2表示至少有3个因子,故应再输出一个因子*/
if(n>3)printf(",%d",k4);/*n>3表示至少有4个因子,故应再输出一个因子*/
if(n>4)printf(",%d",k5);/*以下类似*/
if(n>5)printf(",%d",k6);
if(n>6)printf(",%d",k7);
if(n>7)printf(",%d",k8);
if(n>8)printf(",%d",k9);
if(n>9)printf(",%d",k10);
printf("\n");
}
}
return0;
}
5-9-2
#include<>
intmain()
{intm,s,i;
for(m=2;m<1000;m++)
{s=0;
for(i=1;iif((m%i)==0)s=s+i;
if(s==m)
{printf("%d,itsfactorsare",m);
for(i=1;iif(m%i==0)printf("%d",i);
printf("\n");
}
}
return0;
}
5-10
#include<>
intmain()
{
inti,n=20;
doublea=2,b=1,s=0,t;
for(i=1;i<=n;i++)
{
s=s+a/b;
t=a,
a=a+b,
b=t;
}
printf("sum=%\n",s);
return0;
}
5-11
#include<>
intmain()
{
doublesn=100,hn=sn/2;
intn;
for(n=2;n<=10;n++)
{
sn=sn+2*hn;/*第n次落地时共经过的米数*/
hn=hn/2;/*第n次反跳高度*/
}
printf("第10次落地时共经过%f米\n",sn);
printf("第10次反弹%f米\n",hn);
return0;
}
5-12
#include<>
intmain()
{
intday,x1,x2;
day=9;
x2=1;
while(day>0)
{x1=(x2+1)*2;/*第1天的桃子数是第2天桃子数加1后的2倍.*/
x2=x1;
day--;
}
printf("total=%d\n",x1);
return0;
}
5-13
#include<>
#include<>
intmain()
{
floata,x0,x1;
printf("enterapositivenumber:
");
scanf("%f",&a);
x0=a/2;
x1=(x0+a/x0)/2;
do
{x0=x1;
x1=(x0+a/x0)/2;
}while(fabs(x0-x1)>=1e-5);
printf("Thesquarerootof%is%\n",a,x1);
return0;
}
5-14
#include<>
#include<>
intmain()
{doublex1,x0,f,f1;
x1=;
do
{x0=x1;
f=((2*x0-4)*x0+3)*x0-6;
f1=(6*x0-8)*x0+3;
x1=x0-f/f1;
}while(fabs(x1-x0)>=1e-5);
printf("Therootofequationis%\n",x1);
return0;
}
5-15
#include<>
#include<>
intmain()
{floatx0,x1,x2,fx0,fx1,fx2;
do
{printf("enterx1&x2:
");
scanf("%f,%f",&x1,&x2);
fx1=x1*((2*x1-4)*x1+3)-6;
fx2=x2*((2*x2-4)*x2+3)-6;
}while(fx1*fx2>0);
do
{x0=(x1+x2)/2;
fx0=x0*((2*x0-4)*x0+3)-6;
if((fx0*fx1)<0)
{x2=x0;
fx2=fx0;
}
else
{x1=x0;
fx1=fx0;
}
}while(fabs(fx0)>=1e-5);
printf("x=%\n",x0);
return0;
}
5-16
#include<>
intmain()
{inti,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("\n");
}
for(i=0;i<=2;i++)
{for(j=0;j<=i;j++)
printf("");
for(k=0;k<=4-2*i;k++)
printf("*");
printf("\n");
}
return0;
}
5-17
#include<>
intmain()
{
chari,j,k;/*是a的对手;j是b的对手;k是c的对手*/
for(i='x';i<='z';i++)
for(j='x';j<='z';j++)
if(i!
=j)
for(k='x';k<='z';k++)
if(i!
=k&&j!
=k)
if(i!
='x'&&k!
='x'&&k!
='z')
printf("A--%c\nB--%c\nC--%c\n",i,j,k);
return0;
}
第6章利用数组处理批量数据【第168页】
6-1
#include<>
#include<>
intmain()
{inti,j,n,a[101];
for(i=1;i<=100;i++)
a[i]=i;
a[1]=0;
for(i=2;ifor(j=i+1;j<=100;j++)
{if(a[i]!
=0&&a[j]!
=0)
if(a[j]%a[i]==0)
a[j]=0;
}
printf("\n");
for(i=2,n=0;i<=100;i++)
{if(a[i]!
=0)
{printf("%5d",a[i]);
n++;
}
if(n==10)
{printf("\n");
n=0;
}
}
printf("\n");
return0;
}
6-2
#include<>
intmain()
{inti,j,min,temp,a[11];
printf("enterdata:
\n");
for(i=1;i<=10;i++)
{printf("a[%d]=",i);
scanf("%d",&a[i]);
}
printf("\n");
printf("Theorginalnumbers:
\n");
for(i=1;i<=10;i++)
printf("%5d",a[i]);
printf("\n");
for(i=1;i<=9;i++)
{min=i;
for(j=i+1;j<=10;j++)
if(a[min]>a[j])min=j;
temp=a[i];
a[i]=a[min];
a[min]=temp;
}
printf("\nThesortednumbers:
\n");
for(i=1;i<=10;i++)
printf("%5d",a[i]);
printf("\n");
return0;
}
6-3
#include<>
intmain()
{
inta[3][3],sum=0;
inti,j;
printf("enterdata:
\n");
for(i=0;i<3;i++)
for(j=0;j<3;j++)
scanf("%3d",&a[i][j]);
for(i=0;i<3;i++)
sum=sum+a[i][i];
printf("sum=%6d\n",sum);
return0;
}
6-4
#include<>
intmain()
{inta[11]={1,4,6,9,13,16,19,28,40,100};
inttemp1,temp2,number,end,i,j;
printf("arraya:
\n");
for(i=0;i<10;i++)
printf("%5d",a[i]);
printf("\n");
printf("insertdata:
");
scanf("%d",&number);
end=a[9];
if(number>end)
a[10]=number;
else
{for(i=0;i<10;i++)
{if(a[i]>number)
{temp1=a[i];
a[i]=number;
for(j=i+1;j<11;j++)
{temp2=a[j];
a[j]=temp1;
temp1=temp2;
}
break;
}
}
}
printf("Nowarraya:
\n");
for(i=0;i<11;i++)
printf("%5d",a[i]);
printf("\n");
return0;
}
6-5
#include<>
#defineN5
intmain()
{inta[N],i,temp;
printf("enterarraya:
\n");
for(i=0;iscanf("%d",&a[i]);
printf("arraya:
\n");
for(i=0;iprintf("%4d",a[i]);
for(i=0;iprintf("continuornot(Y/N)");
scanf("%c",&c);
if(c=='N'||c=='n')
flag=0;
}
return0;
}
6-10
#include<>
intmain()
{inti,j,upp,low,dig,spa,oth;
chartext[3][80];
upp=low=dig=spa=oth=0;
for(i=0;i<3;i++)
{printf("pleaseinputline%d:
\n",i+1);
gets(text[i]);
for(j=0;j<80&&text[i][j]!
='\0';j++)
{if(text[i][j]>='A'&&text[i][j]<='Z')
upp++;
elseif(text[i][j]>='a'&&text[i][j]<='z')
low++;
elseif(text[i][j]>='0'&&text[i][j]<='9')
dig++;
elseif(text[i][j]=='')
spa++;
else
oth++;
}
}
printf("\nuppercase:
%d\n",upp);
printf("lowercase:
%d\n",low);
printf("digit:
%d\n",dig);
printf("space:
%d\n",spa);
printf("other:
%d\n",oth);
return0;
}
6-11
#include<>
intmain()
{chara[5]={'*','*','*','*','*'};
inti