2014-09-23 3 views
0

я обнаружил, что void main не является правильным, но даже когда я изменить его int или стереть его,Простые решения уравнений в C

Я не получаю то, что я должен, к которому это значение для X учитывая значения для A и B для уравнения ax + b = 0, и все, что я получаю, равны нулю.

Как я могу это исправить?

void main() 
{ 
    float a,b,x=0; 
    printf("\n Write the values for A and B"); 
    scanf("&%F&%F",&a,&b); 
    if(a==0)printf("\n Not a valid operation"); 
    else{x=-b/a; 
     printf("\n Answer is x=%f",x); 
    } 
} 
+0

', если (а == 0)' не правильный способ для проверки ошибок. Если scanf не удалось, то 'a' будет неопределенным, поскольку вы никогда не инициализировали его. Кроме того, он не проверяет, было ли успешно прочитано 'b'. Чтобы исправить это, заранее установите 'a = 0' или проверьте возвращаемое значение' scanf'. Это должно быть '2', если были прочитаны« 2 ». –

ответ

1

Использование спецификаторов формата для чтения a и b показаться странным. Не уверен, хотите ли вы иметь эти &. Ознакомьтесь с деталями действительных спецификаторов формата по адресу http://en.cppreference.com/w/cpp/io/c/fscanf.

Try:

scanf("%f%f",&a,&b); 

& не спецификатор формата. При использовании

scanf("&%F&%F",&a,&b); 

scanf ожидает персонажам & во входном потоке.

+0

Это решило (спасибо большое! – MarieC

+0

Добро пожаловать. Рад, что я мог бы помочь. –

0

Попробуйте

scanf("%f%f",&a,&b); 

вместо

scanf("&%F&%F",&a,&b); 
Смежные вопросы