Я пытаюсь использовать оператор switch для 3 условий.Условия были:
- Когда a, b и c равны нулю, любое значение x является решением.Печать: любое значение x является решением.
- Когда a и b равны нулю, а c - нет, решения не существует.Печать: решения не существует.
- Когда a равно нулю, а b не равно нулю, единственным решением является x = -c / b.Вычислите значение x и распечатайте решение.
Когда я попытался запустить мою программу, она показала неверные результаты.Мои данные были
a = 0
b = 0
c = 0
Так что предполагалось вывести «Любое значение x - это решение», но это не так.
Моя программа:
#include <stdio.h>
//Function declarations
void getData (int* a, int* b, int* c);
float calculateX (int a, int b, int c);
//===================================================
int main (void)
{
//Local declarations
int a;
int b;
int c;
float x;
//Statements
getData (&a, &b, &c);
calculateX (a, b, c);
int temp;
printf("\nEnter an integer and press enter to exit the program: ");
scanf("%d", &temp);
return 0;
}
//----------------------------------------------------
void getData (int* a, int* b, int* c)
{
printf("Enter three integers: ");
scanf("%d %d %d", a, b, c);
return;
}
//----------------------------------------------------
float calculateX (int a, int b, int c)
{
float x;
printf("Input is: %d %d %d\n", a, b, c);
switch(a, b, c)
{
case 1: (a, b, c == 0);
printf("Any value of x is a solution.");
break;
case 2: (a, b == 0 && c!= 0);
printf("No solution exists.");
break;
case 3: (a == 0 && b!= 0);
x = (float)(-c/b);
printf("The value of x is: %.1f", x);
break;
default: printf("Cannot calculate.");
}
return a, b, c;
}
И мой вывод был:
Enter three integers: 0 0 0
Input is: 0 0 0
Cannot calculate.
Enter an integer and press enter to exit the program: