e=1+1/1!+1/2!+1/3!+ ……
long fun(long n)
{
while(n>=0)
{
if(n==0)return 1;
else return n*fun(n-1);
}
}
main()
{
double d,e=1.0;
long i=1;
do
{
e+=(double)(1.0/fun(i));
d=(double)(1.0/fun(i));
i++;
}
while(d>10e-6);
printf("%lf\n",e);
getch();
}
----------------解决方案--------------------------------------------------------
4. 打印10~1000之间满足下列条件的所有数: 正序读和反序读都相同,例如:55、232等。
main()
{
int i;
for(i=10;i<1000;i++)
{
if(i/100==0)
{
if((i/10)==(i%10))
printf("%-4d",i);
}
else
{
if((i/100)==(i%10))
printf("%-4d",i);
}
}
getch();
}
[此贴子已经被作者于2007-1-12 14:09:53编辑过]
----------------解决方案--------------------------------------------------------
5.从键盘任意输入一个大于0且小于1000的整数,然后输出此整数的所有整数因子。
例如:输入12,输出1,2,3,4,6,12。
main()
{
int n,i;
printf("Input n=:");
scanf("%d",&n);
if(n<=0||n>=1000)printf("error!\n");
else
{
for(i=1;i<=n;i++)
{
if(n%i==0)printf("%-5d",i);
}
}
getch();
}
----------------解决方案--------------------------------------------------------
朋友。谢谢
----------------解决方案--------------------------------------------------------
朋友。谢谢!
----------------解决方案--------------------------------------------------------
谢谢大家帮忙。
----------------解决方案--------------------------------------------------------
6.编写一个函数,将字符串中的元音字母输出。例如字符串为“boy and girl”, 则输出为: oai
main()
{
char a[100]="You are welcome!";
int i=0;
printf("\n");
while(a[i]!=0)
{
if(a[i]=='a'||a[i]=='A'||a[i]=='i'||a[i]=='I'||a[i]=='u'||a[i]=='U'||a[i]=='e'||a[i]
=='E'||a[i]=='o'||a[i]=='O')
printf("%-2c",a[i]);
i++;
}
getch();
}
----------------解决方案--------------------------------------------------------
2.计算:s=1+1/1+1/2+…… +1/n ,其中n由键盘输入。
#include<stdio.h>
void main()
{
float s=1,a;
int n,i;
printf("Please input a number:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
a=(float)i;
s=s+1/a;
}
printf("The result is: %f\n",s);
}
----------------解决方案--------------------------------------------------------
呵呵,这些题目都是有点简单,自己看看书
再认真想一下应该都会做出来的啊!
----------------解决方案--------------------------------------------------------
3.用台劳级数求e的近似值,直到最后一项小于10-6
e=1+1/1!+1/2!+1/3!+ ……
#include<stdio.h>
int fun(int n)
{
while(n>=0)
{
if(n==0)return 1;
else return (n*fun(n-1));
}
}
void main()
{
double d,e=1;
int i=1;
do
{
e+=(double)(1.0/fun(i));
d=(double)(1.0/fun(i));
i++;
}
while(d>10e-6);
printf("The result is:e=1+1/1!+1/2!+1/3!+...=%f\n",e);
}
[此贴子已经被作者于2007-1-12 16:19:18编辑过]
----------------解决方案--------------------------------------------------------