请教两个c++问题 急用 重赏救命啊

2025-05-22 19:39:08
推荐回答(3个)
回答1:

都这么简单的,不好好学习.
1.
#include
int main (int argc, char **argv)
{
int i = 0;
int val = 0;
FILE *fp = fopen("data.txt", "w");
if (NULL == fp)
return -1;
for (i = 0; i < 5; i++)
{
scanf("%d", &val);
fprintf(fp, "%d\n", val);
}
fclose(fp);

fp = fopen("data.txt", "r");
if (NULL == fp)
return -1;
for (i = 0; i < 5; i++)
{
fscanf(fp, "%d", &val);
if (val % 2)
printf("---");
else
printf("***");
printf("%d\n", val);
}
fclose(fp);
}

2.
int main(int argc, char **argv)
{
double pi = 1.0;
double e = 1e-5;
int d = 3;
int max = (int)(1.0 / e + 0.5);
bool flag = false;
for (d = 3; d <= max; d += 2)
{
pi += ((!flag ? -1.0 : 1.0) / (double)(d));
flag = !flag;
}
pi *= 4; /*多谢jandy123提醒*/
printf("PI:%.15f\n", pi);
}

回答2:

//这个是第一个,jandy123回答的程序是C语言,我这个是CPP:
#include
#include
using namespace std;

int main( )
{
int i;
int data;
ofstream ofs("data.txt");
for (i = 0; i < 5; i++)
{
cin >> data;
ofs << data << endl;
}
ofs.close();

ifstream ifs("data.txt");
for (i = 0; i < 5; i++)
{
ifs >> data;
if (data%2)
cout << "---" << data << endl;
else
cout << "***" << data << endl;
}
ifs.close();
return 0;
}

//这个是第二个:
#include
using namespace std;
int main()
{
double pi = 0.0;
int i = 1;
double t = 1.0/(double)(2*i-1);
while (t > 1.0e-6)
{
if (i%2)
pi += t;
else
pi -= t;
i++;
t = 1.0/(double)(2*i-1);
}
pi *= 4;
cout << "π=" << pi << endl;
return 0;
}

回答3:

#include

int main()
{
int x;
FILE *fout=fopen("data.txt","w");
for(int i=0;i<5;i++)
{
scanf("%d",&x);
fprintf(fout,"%d\n",x);
}
fclose(fout);
FILE *fin=fopen("data.txt","r");
for(i=0;i<5;i++)
{
fscanf(fin,"%d\n",&x);
if(x%2==0)
printf("***%d\n",x);
else
printf("---%d\n",x);
}
return 0;
}
第二个问题
#include
#define ER 0.00000001

int main()
{
double quarpai=1;
double x=1;
double newnum=1;
bool rght=1;
while(newnum>ER)
{
x+=2;
newnum=1/x;
if(rght==1)
{
quarpai-=newnum;
rght=0;
}
else
{
quarpai+=newnum;
rght=1;
}
}
quarpai*=4;
printf("%lf\n",quarpai);
return 0;
}