こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

プログラムがうまくいきません。教えてください。

プログラムがうまくいきません。教えてください。

#include <stdio.h>
int main(void){
int a, b, c, d, f;
printf("国語=");
scanf("%d", &a);
printf("算数=");
scanf("%d", &b);
printf("理科=");
scanf("%d", &c);
printf("社会=");
scanf("%d", &d);
f = ((a>90)?1:0)+((b>90)?1:0)+((c>90)?1:0)+((d>90)?1:0);
printf("\n合計[%d],平均[%.2f]\n",(a+b+c+d),((double)(a+b+c+d)/4.0));
printf("国語[%d],[%.3f%%],[%d]\n",a,((double)a/1.5),((a>90)?1:0));
printf("算数[%d],[%.3f%%],[%d]\n",b,((double)b/1.5),((b>90)?1:0));
printf("理科[%d],[%.3f%%],[%d]\n",c,((double)c/1.5),((c>90)?1:0));
printf("社会[%d],[%.3f%%],[%d]\n",d,((double)d/1.5),((d>90)?1:0));
printf("総合判定[%d],\n", ((f>=3)?1:0));
return (0);
}
と入力したのですが、実行結果の国語から社会までの[]部分を上下揃えたいのですが揃いません。このプログラムにどのようなことを追加すれば揃えることができますか?教えてください!

投稿日時 - 2010-05-11 00:48:18

QNo.5886646

困ってます

質問者が選んだベストアンサー

とりあえずプログラムが見づらいです
一応直しましたが、ダブルのところが一桁になるとなんかおかしいです
これが精一杯

#include "stdio.h"
int main(void){
 int a, b, c, d, f;
 printf("各科目の点数を入力してください\n");
 printf("国語="); scanf("%d", &a);
 printf("算数="); scanf("%d", &b);
 printf("理科="); scanf("%d", &c);
 printf("社会="); scanf("%d", &d);

 f = ((a>90)?1:0)+((b>90)?1:0)+((c>90)?1:0)+((d>90)?1:0);

 printf("\n合計[%3d],平均[%2.2lf]\n",a+b+c+d,(double)(a+b+c+d)/4.0);
 printf("国語[%3d],[%2.3lf%%],[%d]\n",a,(double)a/1.5,(a>90)?1:0);
 printf("算数[%3d],[%2.3lf%%],[%d]\n",b,(double)b/1.5,(b>90)?1:0);
 printf("理科[%3d],[%2.3lf%%],[%d]\n",c,(double)c/1.5,(c>90)?1:0);
 printf("社会[%3d],[%2.3lf%%],[%d]\n",d,(double)d/1.5,(d>90)?1:0);
 printf("総合判定[%d],\n", ((f>=3)?1:0));
 return 0;
}

人にプログラムを見てもらうときはもう少し見やすい工夫をしましょう

投稿日時 - 2010-05-11 02:30:13

お礼

ありがとうございます。
これからは見やすいように工夫をしておきます。

投稿日時 - 2010-05-11 02:37:17

このQ&Aは役に立ちましたか?

5人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

Wr5

>と入力したのですが、実行結果の国語から社会までの[]部分を上下揃えたいのですが揃いません。
>このプログラムにどのようなことを追加すれば揃えることができますか?教えてください!

科目名の後の"[%d]"を"[%3d]"とか?

投稿日時 - 2010-05-11 01:13:33

あなたにオススメの質問