データ数、品名、単価、数量を入力すると、単価×数量=金額を計算して表示するプログラムを作成しなければならないのですが、なかなかうまくいきません。
教科書を眺めてみたり、友人に相談したりして以下のようなものを作りました。
#include <stdio.h>
int main(void)
{
int n, gokei;
char hinmei[256];
int tanka[256], suryo[256], kingaku[256];
int i, count;
n=0;
suryo=0;
count=0;
for(i = 0;i < 256;i++)
{
hinmei[i] = 0;
tanka[i] = 0;
suryo[i] = 0;
kingaku[i] = 0;
}
printf("入力するデータ数を入力してください>");
scanf("%d", &n);
count = n;
while(n != 0)
{
printf("品名を入力してください>");
scanf("%c", &hinmei);
hinmei[i] = hinmei;
printf("単価を入力してください>");
scanf("%d", &tanka);
tanka[i] = tanka;
printf("数量を入力してください>");
scanf("%d", &suryo);
kingaku[i] = tanka[i] * suryo[i];
gokei = kingaku[i] + gokei;
n--;
i++;
}
i = 0;
printf("品名 単価 数量 金額\n\n");
printf("----------------------------------------------\n\n");
while(count != 0)
{
printf("%d ,%c ,%d ,%d", hinmei[i], tanka[i], suryo[i], kingaku[i]);
printf("\n\n");
count--;
i++;
}
printf("----------------------------------------------\n\n");
printf("合計 %d", gokei);
return 0;
}
完成例としては
(n=3の場合)
入力するデータ数を入力してください>3
品名を入力してください>食パン
単価を入力してください>150
数量を入力してください>2
品名を入力してください>たまご
単価を入力してください>220
数量を入力してください>1
品名を入力してください>チーズ
単価を入力してください>380
数量を入力してください>1
品名 単価 数量 金額
------------------------------------------------
食パン 150 2 300
たまご 220 1 220
チーズ 380 1 380
------------------------------------------------
合計 900
のような感じを望んでいます。
丸一日悩みましたが、限界を感じたので・・・
構造体は?配列は?もっと省略できるのではないか?などと考えておりました。
どなたか修正点、もしくはまったく違う考え方でもかまいません、良ければご教授願います。
(当方文系大学でプログラミングはド初心者ですので、甘口で評価していただけると助かります^^;)