匿名使用者
匿名使用者 發問時間: 電腦與網際網路程式設計 · 7 年前

c else if 問題

#include<iostream>

#include<math.h>

#include<stdio.h>

#include<stdlib.h>

using namespace std;

int main()

{

double a,b,c,A,A2;

cout<<"ax^2+bx+c =0\n 請依序輸入a,b,c\n";

cin>>a>>b>>c;

if(b*b-4*a*c > 0)

printf("A=%lf\n",& (2*a/(-1)*b + sqrt(b*b - 4*a*c))); //12

printf("A=%lf\n",& (2*a/(-1)*b - sqrt(b*b - 4*a*c))); //13

else if((b*b-4*a*c) == 0) //14

printf("A=&lf", & ((-1)*b/2*a) ); //15

else if((b*b-4*a*c) < 0)

printf("無解\n");

system("pause");

return 0;

}

======================================

1>------ 已開始建置: 專案: 1, 組態: Debug Win32 ------

1> 1.cpp

1>1.cpp(12): error C2102: '&' 需要左值 (l-value)

1>1.cpp(13): error C2102: '&' 需要左值 (l-value)

1>1.cpp(14): error C2181: 不合法的 else (沒有相符的 if)

1>1.cpp(15): error C2102: '&' 需要左值 (l-value)

========== 建置: 0 成功、1 失敗、0 最新、0 略過 ==========

懇求指導!

已更新項目:

以上作廢!!!!!!!!

==========================

#include

#include

#include

#include

using namespace std;

int main()

{

double a,b,c,A,A2,A3;

cout<<"ax^2+bx+c =0\n 請依序輸入a,b,c\n";

cin>>a>>b>>c;

A=(2*a/(-1)*b + sqrt(b*b - 4*a*c));

A2=(2*a/(-1)*b - sqrt(b*b - 4*a*c));

2 個已更新項目:

A3=((-1)*b/2*a);

if(b*b-4*a*c > 0)

printf("A=%lf\n",&A );

printf("A=%lf\n",&A2);

else if((b*b-4*a*c) == 0)

printf("A=&lf", &A3); //17

else if((b*b-4*a*c) < 0)

3 個已更新項目:

printf("無解\n");

system("pause");

return 0;

}

====================

1>------ 已開始建置: 專案: 1, 組態: Debug Win32 ------

1> 1.cpp

1>1.cpp(17): error C2181: 不合法的 else (沒有相符的 if)

========== 建置: 0 成功、1 失敗、0 最新、0 略過 ==========

4 個已更新項目:

OK!

17的地方請教一下!

謝謝

3 個解答

評分
  • 7 年前
    最佳解答

    A=((-1)*b + sqrt(b*b - 4*a*c))/(2*a); //分子分母倒過來而且少了括號

    A2=((-1)*b - sqrt(b*b - 4*a*c))/(2*a);//同上

    A3=((-1)*b/2*a);

    if(b*b-4*a*c > 0){ //括號

    printf("A=%lf\n",A ); //&A->A

    printf("A=%lf\n",A2); //&A2->A2

    }

    else if((b*b-4*a*c) == 0)

    printf("A=%lf\n", A3); //&lf->%lf,&A3->A3

    不需要stdio.h跟stdlib.h

    2013-06-14 18:04:57 補充:

    printf可以考慮改成cout

    2013-06-16 14:49:36 補充:

    c++為了保持相容性是可以理解跟使用printf的

    但c++不建議使用printf,當然練習或為了特定目的例外

    2013-06-16 14:51:05 補充:

    #include

    #include

    這兩行是不需要的

    有iostream就應當可以執行

    2013-06-16 14:51:43 補充:

    吃字了!!stdio.h跟stdlib.h不需要

    2013-06-16 15:03:49 補充:

    Soryy!!A3=((-1)*b/2*a);這個地方也錯了

    應該是A3=(-1)*b/(2*a);

  • 7 年前

    問個問題..這是C還是C++阿??

  • 7 年前

    if(b*b-4*a*c > 0)

    {

    printf("A=%lf\\n",&A );

    printf("A=%lf\\n",&A2);

    }

    用大括弧。

    參考資料: 自己
還有問題?馬上發問,尋求解答。