このコードは、小数点以下2桁で入力されているものの正確な値を出力することになっていますが、が入力されている。驚いたことに名前は完璧に印刷されていますが、印刷された(注文金額)値は常に小数点以下2桁でゼロになります。何が問題になったのか教えてください。そして、はい、私はまだこれの初心者です。数値の値が何であっても0.00浮動小数点値の出力を持つ
#include<stdio.h>
#include<string.h>
struct customer
{ char customer_name[20];
float order_amount;
}c[10];
int main()
{ int i;
clrscr();
printf("\n******Enter customer details******\n");
for(i=0; i<10; ++i)
{
printf("\nEnter customer name: ");
fflush(stdin);
gets(c[i].customer_name);
printf("Enter order amount: ");
scanf(" %0.2f",&c[i].order_amount);
}
printf("\n\t*********Displaying information*********\n");
printf("\nCustomers that has ordered are: \n");
for(i=0; i<10; ++i)
{ printf("\nCustomer name: %s\n",c[i].customer_name);
printf("Ordered amount: %0.2f\n",c[i].order_amount);
}
return 0;
}
ありがとうございます。
は '')(取得は使用しないでください。これまでバッファーオーバーフローがあなたを襲うでしょう。 – Siguza
'fflush(stdin);'は未定義のビヘイビア*と 'gets()'を呼び出し、バッファオーバーランの危険が避けられず、C99では廃止され、C11では削除されます。ワイルドコード... – MikeCAT
テスト用の入力データを投稿してもよろしいですか? – MikeCAT