if(a%b==0)
break;
if(b==a)
{sum=sum+a;
printf("%d\n",a);}}
printf("%d\n",sum);
}
20、计算分数序列:
2/1,3/2,5/3,8/5,13/8,21/13,…,的前10项之和并输出
#include
main()
{
inti;
doublea,b,m;
doublesum=0.0;
a=1.0;
b=2.0;
for(i=0;i<10;i++)
{
sum+=b/a;
m=b;
b=a+b;
a=m;
}
printf("sum=%lf\n",sum);
}
21、编写程序输出S=1-1/2+1/3-1/4+…+1/99-1/100的结果。
#include
main()
{
intn;
floats1,s2,s,a,b;
s1=0;
s2=0;
s=0;
for(n=1;n<=100;n++)
{
if(n%2==0)
{
a=(float)-1.0/n;
s1+=a;//等价于s1=s1+a//
}
else
{
b=(float)1.0/n;
s2+=b;
}
}
s=s1+s2;
printf("s=%f",s);
}
22、编程:
输入3个正整数,判断能否组成三角形,如果能够组成三角形,则输出三角形的面积,否则输出错误。
三角形面积公式:
area=sqrt(s(s-a)(s-b)(s-c)),其中s=1/2(a+b+c)。
(提示:
sqrt(x)属于math.h)
#include
#include
main()
{
floata,b,c;
floats,area;
printf("a,b,c=\n");
scanf("%f,%f,%f",&a,&b,&c);
if(a+b>c&&a+c>b&&b+c>a)
{
s=(a+b+c)/2.0;
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("area=%f\n",area);
}
else
printf("Wrong!
");
}
23、将一个正整数分解质因数。
例如:
输入90,打印出90=2*3*3*5。
#include
main()
{
inta,i;
printf("请输入一个正整数:
");
scanf("%d",&a);
printf("%d=",a);
for(i=2;i<=a;i++)
{
while(a%i==0)
{
printf("%d*",i);
a=a/i;
}
}
}
24、一个数如果恰好等于它的因子之和,这个数就称为“完数”。
例如6=1+2+3。
编程找出1000以内的所有完数。
#include
main()
{
inti,j,n,sum;
sum=0;
for(i=1;i<=1000;i++)
{
n=0;
for(j=1;j
{
if(i%j==0)
n=n+j;
}
if(n==i)
{
sum=sum+i;
}
}
printf("%d\n",sum);
}
(求和)
#include
main()
{
inti,j,n,sum;
sum=0;
for(i=1;i<=1000;i++)
{
n=0;
for(j=1;j
{
if(i%j==0)
n=n+j;
}
if(n==i)
{
sum=sum+i;
}
}
printf("%d\n",sum);
}
25、输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
#include
main()
{
charstr[1000]="190fsd9iqkdsE";
inti,n,a=0,b=0,c=0,d=0;
for(i=0;str[i]!
=0;i++)
{
if((str[i]>'a'&&str[i]<'z')||(str[i]>'A'&&str[i]>'Z'))
a+=1;
elseif(str[i]=='')
b+=1;
elseif(str[i]>'0'&&str[i]<'9')
c+=1;
else
d+=1;
}
printf("a=%d\nb=%d\nc=%d\nd=%d\n",a,b,c,d);
}
26、实现两个数的#法和$法运算。
如输入3,4,#,输出25;输入3,4,$,输出34;提示:
#法和$法运算是自己定义的一种运算,a#b=a*a+b*b,a$b=a*10+b。
#include
main()
{
inta,b,s;
charc;
printf("Plesaseinputa,b,c!
");
scanf("%d,%d,%c",&a,&b,&c);
switch(c)
{
case'#':
s=a*a+b*b;
printf("%d\n",s);
break;
case'$':
s=a*10+b;
printf("%d\n",s);
break;
}
}
27、初始化数组a中包含10个不同的整数,要求从键盘输入一个整数,若这个整数在数组中则从数组中删除这个整数并输出删除后的数组,否则输出no。
#include
main()
{
inta[10]={1,2,3,4,5,6,7,8,9,10};
inti,n;
printf("Pleaseenteronenumber:
");
scanf("%d",&n);
for(i=0;i<10;i++)
{
if(n==a[i])
break;
}
if(i<10)
{
for(i=i;i<10;i++)
{
a[i]=a[i+1];
}
for(i=0;i<9;i++)
printf("%d,",a[i]);
}
else
printf("no\n");
}
28、初始化一字符串(字符串中的每个字符各不同),要求从键盘输入一个字符,删除字符串中和输入字符相同的字符,输出处理后的字符串。
#include
main()
{
chara[]={"abcdefghijklmnopqrstuvwxyz"};
charC;
inti,nC;
printf("Pleaseinputaletter:
");
scanf("%c",&C);
for(i=0;i<26;i++)
{
if(C==a[i])
nC=i;
}
for(i=nC;i<25;i++)
a[i]=a[i+1];
a[24]=a[25];
for(i=0;i<25;i++)
printf("%c",a[i]);
printf("\n");
}
29、计算一个4*4矩阵的主对角线的元素之和以及最大元素的值。
要求初始化矩阵,输出计算结果并输出该矩阵。
#include
main()
{
chara[]={"abcdefghijklmnopqrstuvwxyz"};
charC;
inti,nC;
printf("Pleaseinputaletter:
");
scanf("%c",&C);
for(i=0;i<26;i++)
{
if(C==a[i])
nC=i;
}
for(i=nC;i<25;i++)
a[i]=a[i+1];
a[24]=a[25];
for(i=0;i<25;i++)
printf("%c",a[i]);
printf("\n");
}
30、初始化一字符串(长度小于20个字符),取出第3个字符到第7个字符组成的子串,输出该子串。
#include
main()
{
chara[]={"abcdefghijklmn"};
inti;
for(i=2;i<7;i++)
printf("%c",a[i]);
printf("\n");
}
31、编程计算一个a[3][4]数组的最小值所在位置,输出该位置以及a[3][4]矩阵。
要求初始化矩阵。
#include
main()
{
inta[3][4]={{1,2,3,4},{4,5,6,7},{7,0,8,9}};
inti,j,min,imin=0,jmin=0;
min=a[0][0];
for(i=0;i<3;i++)
for(j=0;j<4;j++)
{
if(a[i][j]{
min=a[i][j];
imin=i;
jmin=j;
}
}
printf("min=a[%d][%d]\n",imin,jmin);
for(i=0;i<3;i++)
for(j=0;j<4;j++)
{
if(j==0)
printf("\n");
printf("%d",a[i][j]);
}
}
32、初始化一矩阵a[4][4],计算每行的最大元素值,要求输出原始矩阵以及每行的最大元素值。
#include
main()
{
inta[4][4]={{1,3,5,7},{0,4,9,10},{3,5,2,7},{2,5,1,9}};
inti,j,max;
for(i=0
;i<4;i++)
{
for(j=0;j<4;j++)
{
max=a[i][0];
if(a[i][j]>max)
max=a[i][j];
}
printf("%d\n",max);
}
for(i=0;i<4;i++)
for(j=0;j<4;j++)
{
if(j==0)
printf("\n");
printf("%d",a[i][j]);
}
}
33、编程实现:
计算矩阵a[3][4]每行元素的和。
要求输出原始矩阵以及每行元素的和值。
要求初始化矩阵。
#include
main()
{
inta[3][4]={{1,2,3,4},{4,5,6,7},{4,5,7,9}};
inti,j,sum=0,s=0;
for(i=0;i<3;i++)
for(j=0;j<4;j++)
{
if(j==0)
printf("\n");
printf("%d",a[i][j]);
}
printf("\n");
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
{
sum+=a[i][j];
}
printf("sum=%d\n",sum);
sum=0;
}
}
34、"一维数组中存放任意10个整数,从第四个数据开始直到最后一个数据,依次向右移动一个位置。
输出原始数据和移动后的结果。
要求初始化数组。
例如:
原始数据为:
610298717182345,
输出结果为:
6102998717182345。
"
#include
main()
{
inta[11]