Ejercicios básicos de programación en C ++ para calcular la solución de ecuaciones cuadráticas en una variable y juzgar si se han probado tres condiciones

La pregunta original proviene del ejemplo de C ++ del tutorial novato
: encuentre las raíces de una ecuación cuadrática en una incógnita
Inserte la descripción de la imagen aquí

El método de implementación es bastante simple, es el programa más básico en lenguaje C. La
siguiente es la respuesta dada por el tutorial para principiantes:

#include <iostream>
#include <cmath>
using namespace std;
 
int main() {
    
    
 
    float a, b, c, x1, x2, discriminant, realPart, imaginaryPart;
    cout << "输入 a, b 和 c: ";
    cin >> a >> b >> c;
    discriminant = b*b - 4*a*c;
    
    if (discriminant > 0) {
    
    
        x1 = (-b + sqrt(discriminant)) / (2*a);
        x2 = (-b - sqrt(discriminant)) / (2*a);
        cout << "Roots are real and different." << endl;
        cout << "x1 = " << x1 << endl;
        cout << "x2 = " << x2 << endl;
    }
    
    else if (discriminant == 0) {
    
    
        cout << "实根相同:" << endl;
        x1 = (-b + sqrt(discriminant)) / (2*a);
        cout << "x1 = x2 =" << x1 << endl;
    }
 
    else {
    
    
        realPart = -b/(2*a);
        imaginaryPart =sqrt(-discriminant)/(2*a);
        cout << "实根不同:"  << endl;
        cout << "x1 = " << realPart << "+" << imaginaryPart << "i" << endl;
        cout << "x2 = " << realPart << "-" << imaginaryPart << "i" << endl;
    }
 
    return 0;
}

Um, me di cuenta de esta función muy rápidamente,
pero al probar, las
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
tres situaciones son tan molestas que tengo que compilar y ejecutar una y otra vez (¡obviamente esto es más rápido! ¡Oye!
¿Hay alguna forma de probar estas tres situaciones una y otra vez? otra vez ?.
Inserte la descripción de la imagen aquí

Agrega un contador,
um, perfecto ~

#include<iostream>
#include<cmath>
using namespace std;

int main()
{
    
    
	int count,counta,countb,countc;
	
	float det,x1,x2,a,b,c;
	float realPart,imaginaryPart;
	
	while(count != 1){
    
    
		cout << "please input the parameter:" << endl;
		cin >> a >> b >> c;
	
		det = b*b - 4*a*c;
	
			
		if(det > 0){
    
    
			cout << "the roots are real and different" << endl;
			x1 = (-b + sqrt(det))/(2*a);
			x2 = (-b - sqrt(det))/(2*a);
			cout << "x1 = " << x1 << endl;
			cout << "x2 = " << x2 << endl;
			counta = 1;

		}
	
		else if(det == 0){
    
    
			cout << "the root is equal" << endl;
			x1 = x2 = -b/(2*a);
			cout << "x1 = x2 =  "<< x1 << endl;
			countb = 1;

	
		}	
//	det<0 两个根是复数(跟高中讲的不太一样嗷) 两个复数根为共轭复根 
		else {
    
    
			cout << "一对共轭复根出现辽" << endl;
			
			realPart = -b/(2*a);
			imaginaryPart = ( -sqrt(det) ) / (2*a);
			
			if (imaginaryPart){
    
    
//				复数中的b不存在的情况 
				cout << "x1 = " << realPart << endl;
				cout << "x2 = " << realPart << endl;
				countc = 1;
			}
			else{
    
    
				cout << "x1 = " << realPart << '+' << imaginaryPart << 'i' << endl;
				cout << "x2 = " << realPart << '-' << imaginaryPart << 'i' << endl;
				countc = 1;//计数器 
			}
			

		}
			if(counta==1 && countb==1 && countc==1){
    
    
				count = 1;
			}
	}
	cout << "duang----------------------------------duang" << endl;
	cout << "已经试过了det>0 det=0 det<0 三种情况咯~" << endl;
	 
	
	
}

Finalmente, la prueba termina felizmente. .
(Yako, cuya carga de trabajo parece haber aumentado
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/qq_45704942/article/details/114959829
Recomendado
Clasificación