请哪位大侠帮我用C++编一个程序,急用,我将不胜感激。

2025-05-13 18:07:01
推荐回答(2个)
回答1:

C++我没怎么学过,我一般都用C。
如果ai,bi为实数的话,结果如下:

#include

#define PRICISION 0.001 //PRICISION 为所要求的精度

int main()
{
int a = 0;
int b = 0;
float ai = 0;
float bi = 0;
int i = 0;
float c = 0;

printf("Please input a:");
scanf("%d",&a);
printf("Please input b:");
scanf("%d",&b);
printf("Please input c:");
scanf("%f",&c);
printf("\n\n\n");

ai = (float)a;
bi = (float)b;
for (i = 0; i < 100; i++)
{
printf("[%f,%f]\n",ai,bi);
if (((ai + PRICISION) > c) && ((ai - PRICISION) < c) || (((bi + PRICISION) > c) && ((bi - PRICISION) < c)))
{
printf("Found it !\n");
break;
}
else if ((c > (bi + PRICISION)) || (c < (ai - PRICISION)))
{
printf("Not found !\n");
break;
}
else
{
if (c > ((ai + bi)/2))
{
ai = (ai + bi)/2;
}
else
{
bi = (ai + bi)/2;
}
}
}
}

硬要改成C++的话,结果如下:

#include
#include

#define PRICISION 0.01 //PRICISION 为所要求的精度

void main()
{
int a = 0;
int b = 0;
float ai = 0;
float bi = 0;
int i = 0;
float c = 0;

cout<<"Please input a:";
cin>>a;
cout<<"Please input b:";
cin>>b;
cout<<"Please input c:";
cin>>c;

ai = (float)a;
bi = (float)b;
for (i = 0; i < 100; i++)
{
cout<<"["< if (((ai + PRICISION) > c) && ((ai - PRICISION) < c) || (((bi + PRICISION) > c) && ((bi - PRICISION) < c)))
{
cout<<"Found it !"< break;
}
else if ((c > (bi + PRICISION)) || (c < (ai - PRICISION)))
{
cout<<"Not found !"< break;
}
else
{
if (c > ((ai + bi)/2))
{
ai = (ai + bi)/2;
}
else
{
bi = (ai + bi)/2;
}
}
}
}

回答2:

#include
using namespace std;

int main() {
int a,b;
float c;
cout<<"输入a,b的值"< cin>>a>>b;
cout<<"输入c的值"< cin>>c;
for(int i = 0; i < 100; i++) {
if(c==a||c==b||b-a==1) break;
if((a+b)/2>c)
b = (a+b)/2;
else
a = (a+b)/2;
}
cout< return 0;
}