超急(仅限未来12小时)!!!C++的题目!!!

王朝知道·作者佚名  2009-08-26
窄屏简体版  字體: |||超大  
 
分類: 電腦/網絡 >> 程序設計 >> 其他編程語言
 
問題描述:

题目1:编程计算PAI=4-4/3+4/5-4/7+4/9.........,并回答程序要计算多少项才 能得到3.14,3.141,3.1415,3.14159。

请问以下程序哪里有错?

#include <stdio.h>

#include <math.h>

double p, d1, d2, s, ep;

long c; int k;

void main()

{

for (k=1, ep=100.0; k<=4; k++, ep*=10.0)

{

p=3.1415926;

d1=4.0; d2=1.0; c=0; s=0;

do

{ if (c%2==0)

s+=d1/d2;

else s-=d1/d2;

c++; d2+=2.0;

}

while ((int)(s*ep)-(int)(p*ep)!=0||fabs(s-p)>=0.5/ep);

printf("p=%f, s=%f, c=%ld\n", p, s, c);

scanf("%*c);

}

}

题目2:回文整数是指正读和反读相同的整数,编程,输入一个整数,判断它是不 是回文整数。

请问以下程序哪里有错?

#include <stdio.h>

void main ()

{

int x,s,a;

printf("请输入整数x.\n");

scanf("%d",&x);

a=x

while (x)

{

s=s*10+x%10; x/=10;

}

if (a==s)

printf("此整数是回文数.\n");

else

printf("此整数不是回文数.\n");

}

题目3:编写从指定文件输入整数,统计文件中有多少整数,并指出最大和最小数

我不会编。编了一点点就编不下去了,请高手指点。谢谢。

#include <stdio.h>

FILE *fp;

int main ()

{

char frame[40];

printf("输入文件名! \n");

scanf("%s%*c",fname);

if ((fp=fopen(fname,"r"))==NULL)

{

printf("不能打开文件%s.\n",fname);

return 0;

}

參考答案:

我刚看到,以下是我把你的改了一下,也不知道对你对,你参考一下吧!

一.

#include <stdio.h>

#include <math.h>

double p, d1, d2, s, ep;

long c; int k;

int a;

void main()

{

for (k=1, ep=100.0; k<=4; k++, ep*=10.0)

{

p=3.1415926;

d1=4.0; d2=1.0; c=0; s=0.0;

do

{ if (c%2==0)

s+=d1/d2;

else s-=d1/d2;

c++; d2+=2.0;

}

while ((int)(s*ep)-(int)(p*ep)!=0||fabs(s-p)>=0.5/ep);

a=(int)(s*ep);

printf("p=%f, s=%f, c=%ld\n", p, (float)a/ep, c);

scanf("%*c");

}

}

二.

#include <stdio.h>

void main ()

{

int x,s=0,a;

printf("请输入整数x.\n");

scanf("%d",&x);

a=x;

while (x)

{

s=s*10+x%10; x/=10;

}

if (a==s)

printf("此整数是回文数.\n");

else

printf("此整数不是回文数.\n");

}

三.

#include <stdio.h>

FILE *fp;

int main ()

{

char ch,fname[40];

int max=0,min=0,i=0,n=0,s=0;

printf("输入文件名! \n");

scanf("%s%*c",fname);

if ((fp=fopen(fname,"r"))==NULL)

{

printf("不能打开文件%s.\n",fname);

return 0;

}

else

{

do

{

if(ch!='\0')

{

ch=fgetc(fp);

do{

s=s*10+ch;

ch=fgetc(fp);

}while(ch!=' ');

if(s>max)max=s;

if(s<min)min=s;

n++;

i++;

}

else break;

}while(1);

}

printf("一共是%c个整数,最大为%d,最小为%d",n,max,min);

return 0;

}

小贴士:① 若网友所发内容与教科书相悖,请以教科书为准;② 若网友所发内容与科学常识、官方权威机构相悖,请以后者为准;③ 若网友所发内容不正确或者违背公序良俗,右下举报/纠错。
 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航