switch( D = b*b -4*a*c )
{
case D > 0:
printf("2実根\n");
break;
case D == 0:
printf("重根\n");
break;
case D < 0:
printf("実根なし\n");
break;
}
気持ちは分かるけど... caseラベルに書けるのは定数だけだぞ!switch( sign(D = b*b -4*a*c) )
{
case 1:
printf("2実根\n");
break;
case 0:
printf("重根\n");
break;
case -1:
printf("実根なし\n");
break;
}
とするとか... 素直にif文の入れ子で3分岐した方が簡単!
if( D > 0 )
x1 = (-b + sqrt(D))/(2*a);
x2 = (-b - sqrt(D))/(2*a);
printf("%f, %f\n", x1, x2 );
else if( D == 0 )
/* 以下略 */
インデントして気持ちは分かるが、コンパイラは気持ちでは動かない!!x1 = (-b + sqrt(D))/2*a;
x2 = (-b - sqrt(D))/2*a;
算数で、10÷2×5の答えは何ですか?