做好它
来源:互联网 发布:淘宝怎么靠id查找卖家 编辑:程序博客网 时间:2024/04/28 14:31
1、求1+4+7+……+100之和。
解法1:
main()
{int s,i;
s=0;
for(i=1;i<=100;i+=3)
s=s+i;
printf("s=%d/n",s);
}
解法2:
main()
{int s,i;
s=0;
i=1;
while(i<=100)
{s=s+i;
i+=3;
}
printf("s=%d/n",s);
}
2、求1到100之间的奇数之和与偶数之和。
解法1:
main()
{int s1,s2,i;
s1=s2=0;
for(i=1;i<=100;i++)
{if(i%2==1)
s1=s1+i; /*奇数之和*/
else
s2=s2+i; /*偶数之和*/
}
printf("s1=%d,s2=%d/n",s1,s2);
}
解法2:
main()
{int s1,s2,i;
s1=s2=0;
for(i=1;i<=99;i+=2)
s1=s1+i; /*奇数之和*/
for(i=2;i<=100;i+=2)
s2=s2+i; /*偶数之和*/
}
printf("s1=%d,s2=%d/n",s1,s2);
}
解法3:
main()
{int s1,s2,i;
s1=s2=0;
i=1;
while(i<=99)
{s1=s1+i; /*奇数之和*/
i++;
s2=s2+i; /*偶数之和*/
i++;
}
printf("s1=%d,s2=%d/n",s1,s2);
}
3、用循环程序求10的阶乘。
main()
{long p; /*int型取值范围太小*/
int i;
p=1; /*不能写作p=0;*/
for(i=1;i<=10;i++)
p=p*i;
printf("p=%ld/n",p);
}
4、求1*3*5*...*19之积。
main()
{float p;
int i;
p=1;
for(i=1;i<=19;i+=2)
p=p*i;
printf("p=%f/n",p);
}
5、从键盘输入一个正整数n,求1+2+3+...+n之和并输出。
main()
{int i,n;
long s;
s=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
s=s+i;
printf("s=%ld/n",s);
}
6、从键盘输入一个正整数,求出其阶乘并输出。
解法1:
main()
{float p;
int i,k;
p=1;
scanf("%d",&k);
for(i=1;i<=k;i++)
p=p*i;
printf("p=%f/n",p);
}
解法2:
main()
{float p;
int k;
p=1;
scanf("%d",&k);
while(k>=1)
{p=p*k;
k--;
}
printf("p=%f/n",p);
}
6A、求1-1/3+1/5-1/7+...-1/99+1/101之和。
解法1:
main()
{float s1,s2,s;
int i;
s1=s2=0;
for(i=1;i<=101;i+=4)
s1=s1+1.0/i; /*正数之和*/
for(i=3;i<=99;i+=4)
s2=s2+1.0/i; /*负数之和*/
s=s1-s2;
printf("s=%f/n",s);
}
解法2:
main()
{int i,p;
float s;
s=0;
p=1;
for(i=1;i<=101;i+=2)
{s=s+p*1.0/i; /*p用于控制累加项的正负*/
p=-p; /*改变正负号*/
}
printf("s=%f/n",s);
}
6B、求20+21+22+...+263之和。
解法1:
#include <math.h>
main()
{float s;
int i;
s=0;
for(i=0;i<=63;i++)
s=s+pow(2,i); /*2的i次幂*/
printf("s=%f/n",s);
}
解法2:
main()
{float s,t;
int i;
s=0;
t=1;
for(i=0;i<=63;i++)
{s=s+t;
t=t*2;
}
printf("s=%f/n",s);
}
7、求12+32+52+...+992之和。
main()
{long s;
int i;
s=0;
for(i=1;i<=99;i+=2)
s=s+i*i;
printf("s=%ld/n",s);
}
8、求1+1/3+1/5+...+1/99之和。
main()
{int i;
float s;
s=0;
for(i=1;i<=99;i+=2)
s=s+1.0/i; /*不能写作1/i*/
printf("s=%f/n",s);
}
9、求1+1/3+1/5+...的前20项之和。
main()
{int i;
float s;
s=0;
for(i=1;i<=20;i++)
s=s+1.0/(2*i-1); /*不能写作1/(2*i-1)*/
printf("s=%f/n",s);
}
10、求1+1/3+1/5+...之和,直到某一项的值小于10-6时停止累加。
main()
{long n; /*不能写作int n*/
float s;
s=0;
n=1;
while(1.0/n>=1e-6)
{s=s+1.0/n; /*不能写作1/n*/
n+=2;
}
printf("s=%f/n",s);
}
11、已知序列1/2,2/3,3/5,5/8,...,求其前20项之和。
解法1:
main()
{float s,a,b,t;
int i;
s=0;
a=1;
b=2;
for(i=1;i<=20;i++)
{s=s+a/b;
t=a;
a=b; /*分子为前一项分母*/
b=b+t; /*分母为前一项分子分母之和*/
}
printf("s=%f/n",s);
}
解法2:
main()
{float s,a,b;
int i;
s=0;
a=1;
b=2;
for(i=1;i<=20;i++)
{s=s+a/b;
b=a+b; /*分母为前一项分子分母之和*/
a=b-a; /*分子为前一项分母*/
}
printf("s=%f/n",s);
}
12、求1!+2!+3!+...+20!之和。
解法1:
main()
{float s,p;
int n,k;
s=0; /*该语句必须在外循环之前*/
for(n=1;n<=20;n++)
{p=1; /*该语句必须在外循环体内部*/
for(k=1;k<=n;k++) /*求n的阶乘*/
p=p*k;
s=s+p;
}
printf("s=%f/n",s);
}
解法2:
main()
{float s,p;
int n;
s=0;
p=1; /*该语句必须在循环之前*/
for(n=1;n<=20;n++)
{p=p*n; /*求n的阶乘*/
s=s+p;
}
printf("s=%f/n",s);
}
13、求1!+5!+9!+...+21!之和。
main()
{float s,p;
int n,k;
s=0; /*该语句必须在外循环之前*/
for(n=1;n<=21;n+=4)
{p=1; /*该语句必须在外循环体内部*/
for(k=1;k<=n;k++) /*求n的阶乘*/
p=p*k;
s=s+p;
}
printf("s=%f/n",s);
}
14、从键盘两个整数,求其最大公约数和最小公倍数。
解法1:辗转相除法。
⑴以其中一个数作被除数,另一个数作除数,相除求余数。
⑵若余数不为0,则以上一次的除数作为新的被除数,以上一次的余数作为新的除数,继续求余数。
⑶直至余数为0时,对应的除数就是最大公约数。
main()
{int m,n,r,g,h,p;
scanf("%d%d",&m,&n);
p=m*n;
while((r=m%n)!=0) /*余数不为0时循环*/
{m=n; /*以上一次的除数作为新的被除数*/
n=r; /*以上一次的余数作为新的除数*/
}
g=n; /*余数为0时的除数即最大公约数*/
h=p/g; /*两数之积除以最大公约数就是最小公倍数*/
printf("g=%d,h=%d/n",g,h);
}
解法2:辗转相除法。
main()
{int m,n,r,g,h,p;
scanf("%d%d",&m,&n);
p=m*n;
while(1) /*循环条件总为真*/
{r=m%n;
if(r==0) break; /*余数为0时终止循环*/
m=n; /*以上一次的除数作为新的被除数*/
n=r; /*以上一次的余数作为新的除数*/
}
g=n; /*余数为0时的除数即最大公约数*/
h=p/g; /*最小公倍数*/
printf("g=%d,h=%d/n",g,h);
}
解法3:
main()
{int m,n,g,h,i;
scanf("%d%d",&m,&n);
for(g=m;g>=1;g--)
{if((m%g==0)&&(n%g==0)) /*此时g是最大公约数*/
break;
}
for(i=1;i<=n;i++)
{h=i*m; /*h是m的倍数*/
if(h%n==0) /*此时h是最小公倍数*/
break;
}
printf("g=%d,h=%d/n",g,h);
}
15、求a+aa+aaa+...(如2+22+222+2222+22222)前n项之和。
main()
{int a,n,i;
long t,s;
scanf("%d%d",&a,&n);
t=a;
for(i=1;i<=n;i++)
{s=s+t;
t=t*10+a; /*求得下一项*/
}
printf("s=%ld/n",s);
}
16、从键盘输入一个正整数,将该数前后倒置后输出。
解法1:
main()
{int a,d;
scanf("%d",&a);
while(a!=0)
{d=a%10; /*求得个位*/
printf("%1d",d); /*输出宽度为1*/
a=a/10; /*去掉原来的个位*/
}
}
解法2:
main()
{int a,b,d;
scanf("%d",&a);
b=0;/*b用于存放倒置之后的数*/
while(a!=0)
{d=a%10; /*求得个位*/
b=b*10+d;
a=a/10; /*去掉原来的个位*/
}
printf("%d/n",b);
}
17、求出所有的水仙花数(各位数字立方之和等于数本身的三位整数)并输出。
main()
{int x,a,b,c;
for(x=100;x<=999;x++)
{a=x/100; /*x的百位*/
b=x%100/10; /*x的十位*/
c=x%10; /*x的个位*/
if(a*a*a+b*b*b+c*c*c==x)
printf("%d/n",x);
}
}
18、从键盘输入一个正整数,判断是否是完数(真因子之和等于数本身)。
main()
{int m,s,i;
scanf("%d",&m);
s=0;
for(i=1;i<=m-1;i++)
{if(m%i==0) /*求出所有真因子*/
s=s+i;
}
if(s==m)
printf("%d is a complete number./n",m);
else
printf("%d isn't a complete number./n",m);
}
19、用双重循环打印如下图形。
*
***
*****
*******
#define N 4
main()
{int i,j,k;
for(i=1;i<=N;i++)
{for(j=1;j<=N-i;j++)
printf(" "); /*打印N-i个空格*/
for(k=1;k<=2*i-1;k++)
printf("*"); /*打印2*i-1个星号*/
printf("/n");
}
}
20、用双重循环打印如下图形。
*
***
*****
*******
*****
***
*
解法1:
main()
{int i,j,k;
for(i=1;i<=4;i++) /*输出前4行*/
{for(j=1;j<=4-i;j++)
printf(" ");
for(k=1;k<=2*i-1;k++)
printf("*");
printf("/n");
}
for(i=3;i>=1;i--) /*输出后3行*/
{for(j=1;j<=4-i;j++)
printf(" ");
for(k=1;k<=2*i-1;k++)
printf("*");
printf("/n");
}
}
解法2:
main()
{int i,j,k;
for(i=1;i<=4;i++) /*输出前4行*/
{for(j=1;j<=4-i;j++)
printf(" ");
for(k=1;k<=2*i-1;k++)
printf("*");
printf("/n");
}
for(i=1;i<=3;i++) /*输出后3行*/
{for(j=1;j<=i;j++)
printf(" ");
for(k=1;k<=2*(4-i)-1;k++)
printf("*");
printf("/n");
}
}
21、从键盘输入一个正整数,判断其是否是素数。
解法1:
main()
{int m,i;
scanf("%d",&m);
for(i=2;i<=m-1;i++)
{if(m%i==0)
break;
}
if(i>m-1)
printf("%d是一个素数./n);
else
printf("%d不是一个素数./n);
}
解法2:
#include <math.h>
main()
{int m,i,k;
scanf("%d",&m);
k=sqrt(m);
for(i=2;i<=k;i++)
{if(m%i==0)
break;
}
if(i>k)
printf("%d is a prime number./n);
else
printf("%d is not a prime number./n);
}
解法3:
#include <math.h>
main()
{int m,i,k;
scanf("%d",&m);
k=sqrt(m);
for(i=2;i<=k;i++)
{if(m%i==0)
{printf("%d is not a prime number/n",m);
return; /*退出main函数*/
}
}
printf("%d is a prime number/n",m);
}
解法4:
#include <math.h>
main()
{int m,i,k,flag=0; /*flag是标志变量,flag==0表示不能整除*/
scanf("%d",&m);
k=sqrt(m);
for(i=2;i<=k;i++)
{if(m%i==0)
{flag=1; /*能除尽则不是素数*/
break;
}
}
if(flag==0)
printf("%d是一个素数./n);
else
printf("%d不是一个素数./n);
}
22、从键盘输入一行字符,若为小写字母,则转化为大写字母;若为大写字母,则转化为小写字母;否则转化为ASCII码表中的下一个字符。
解法1:
#include <stdio.h>
main()
{char ch;
ch=getchar();
while(ch!='/n')
{if(ch>='a'&&ch<='z')
ch=ch-32;
else if(ch>='A'&&ch<='Z') /*此处else不能缺省*/
ch=ch+32;
else
ch=ch+1;
putchar(ch);
ch=getchar();
}
}
解法2:
#include <stdio.h>
main()
{char ch;
while((ch=getchar())!='/n') /*先赋值再判断*/
{if(ch>='a'&&ch<='z')
ch=ch-32;
else if(ch>='A'&&ch<='Z') /*此处else不能缺省*/
ch=ch+32;
else
ch=ch+1;
putchar(ch);
}
}
23、从键盘输入一批字符(以@结束),按要求加密并输出。
加密规则:
1、所有字母均转换为小写。
2、若是字母'a'到'y',则转化为下一个字母。
3、若是'z',则转化为'a'。
4、其它字符,保持不变。
#include <stdio.h>
main( )
{char ch;
while((ch=getchar())!='@') /*先赋值再判断*/
{if(ch>='a'&&ch<='y')
ch=ch+1;
else if(ch>='A'&&c<='Y')
ch=ch+32+1;
else if(ch=='Z'||ch=='z')
ch='a';
putchar(ch);
}
putchar('/n');
}
- 做好它
- 做好一件事,让它有意义,不管回报,全力以赴
- 网易CEO丁磊:毕业生找一个喜欢的工作努力把它做好
- head first c 笔记<3> 之做一件事并把它做好
- 想为网站做好优化,最应该想清楚的是它!
- HeadFirstC笔记_3 创建小工具:做一件事并把它做好
- 它
- 做好当下,做好自己
- 做好需求
- 做好軟件服務
- 做好准备
- 做好自己
- 做好细节
- 做好项目经理
- 做好准备
- 做好四件事。。。。
- 做好自己
- 做好本职工作
- 用Windows Live Writer写CSDN博客
- Server Side ViewState 在服务器端存贮ViewState (ASP.NET 2.0)
- PHP缓存类和静态类
- CreateThread与_beginthread的区别
- C++,MFC控件笔记
- 做好它
- 安裝 DazukoFS
- Oracle的常用命令
- 求助 csv怎么转成dba
- 某诚实的站长给工信部网站备案中心的建议
- 漂亮的仿MAC Look&Feel
- [排列三预测 ] 老头排列三第294-295期推荐
- Hibernate
- ASP.NET生成静态页面和分页代码 http://blog.csdn.net/zdyguilong/archive/2007/05/24/1624491.aspx