這兩個陣列不會存盤輸入,每個索引號的增量始終為 0,如 printf 所述。
int main()
{
int ingredientsAmount;
double ingredientsPrice[10];
double ingredientsWeight[10];
scanf("%d", &ingredientsAmount);
for(int i = 0; i < ingredientsAmount; i )
{
scanf("%lf", &ingredientsPrice[i]);
printf("Price stored at index %lf\n", i);
scanf("%lf", &ingredientsWeight[i]);
printf("Weight stored at index %lf\n", i);
}
return 0;
}
uj5u.com熱心網友回復:
您%lf對型別為 的物件使用了不正確的轉換說明符int。使用轉換說明符%d。寫
printf("Price stored at index %d\n", i);
和
printf("Weight stored at index %d\n", i);
或者也許你的意思是以下
printf("Price stored at index %d is %f\n", i, ingredientsPrice[i]);
和
printf("Weight stored at index %d is %f\n", i, ingredientsWeight[i]);
注意for回圈是不安全的,因為ingredientsAmount用戶輸入的變數的值可能大于宣告陣列的大小。
至少你應該寫
if ( scanf("%d", &ingredientsAmount) != 1 || ingredientsAmount > 10 )
{
ingredientsAmount = 10;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/361335.html
上一篇:fork()之后的訊息行為
