首页 > 解决方案 > 该函数未打印数组的值

问题描述

#include <stdio.h>
#define SIZE 7
void LowestPrice(int NoOfDoors[], int CarManufYear[], float CarCost[]);
int main()
{
int NoOfDoors[SIZE];
int CarManufYear[SIZE];
float CarCost[SIZE];
int i;
for (i = 0; i < SIZE; i++)
{
    printf ("\n------ Car With ID = %d ------", i + 1);
    printf ("\nEnter 3 values (Door, year, price):");
    if (scanf("%d%d%f", &NoOfDoors[i], &CarManufYear[i],&CarCost[i]) == EOF)
{
        break;
}
}

//i--;
while(i<SIZE)
{
NoOfDoors[i] = -1;
CarManufYear[i] = -1;
CarCost[i] = -1;
i++;
} 
 printf("\n\t\tNumber of Door Array: ");
for(int i=0; i<SIZE; i++)
{
    if (NoOfDoors[i]!=-1)
        printf("%d  ", NoOfDoors[i]);
        
    
}  

printf("\n\t\tYear Array: ");
for(int i=0; i<SIZE; i++)
{ 
    if(CarManufYear[i]!=-1)
        printf("%d  ", CarManufYear[i]);

 }
LowestPrice ( NoOfDoors,  CarManufYear, CarCost);

return 0;
}

void LowestPrice(int NoOfDoors[], int CarManufYear[], float CarCost[])
{


printf ("\n\t\t*******************************************************************\n");
printf("\t\t************************MIN CAR PRICE LIST**************************\n");
printf ("\t\tCar\tDOOR  YEAR  PRICE\n");
int id = 0, cheapest_price;
for (int i = 1; i < 7; i++)
{
  if (CarCost[id] > CarCost[i])
    id = i;
}

cheapest_price = CarCost[id];
printf ("\t\tCar\t %d: %d %d %.1f\n", id, NoOfDoors[id],CarManufYear[id], CarCost[id]);

for (int i = id; i < 7; i++)
{
    if (CarCost[i] == cheapest_price)
        printf ("\t\tCar %d: %d %d %.1f\n", i + 1, NoOfDoors[i],CarManufYear[i], CarCost[i]);
 
}


}

该功能应打印最便宜汽车的汽车信息。它可能不止一辆车。例如,如果我们有 3 辆汽车,价格分别为 3000 (id =0)、4000(id =1) 和 3000 (id =2),这个函数应该打印 id = 0 和 id =2 的 2 辆汽车的值,但该功能只是为所有汽车信息打印-1。

标签: arrayscfunction

解决方案


推荐阅读