i的值增加后成本价变为0

时间:2019-12-08 08:17:10

标签: c arrays loops

我一直在尝试执行以下代码。.但是,我一直得到相同的错误结果,我也不知道为什么! 我的密码

TestViewModel
  

这是程序的输出。

int main()
{
        char* sel_items[15]={"apple","ball","keyboard","mouse"};   /*Selling items*/
        float sel_profit[15];         /*Selling Profit*/
        float sel_price[15];          /*Selling Price*/
        float cost_price[15];        /*Original Price*/
        int i;
        for(i=0;i<4;i++)
        {                                                                                                                                                                                                                                                     printf("\n\t\t\tENTER %s PRICE: ",sel_items[i]);
                scanf("%f",sel_price);                           /*Selling Price input here*/
                printf("\n\t\t\tENTER %s SELLING PROFIT :",sel_items[i]);  
                scanf("%f",sel_profit);                          /*Selling Profit input here*/
                cost_price[i]=sel_price[i]*sel_profit[i]/100;        /*Original Price*/
                printf("\n\t\t\t\t\tORIGINAL PRICE : %f",cost_price[i]);
     }
return 0;
}
  

通过循环帮助我。当第一个循环执行时,条件变为真,所有相应的指令均被执行,但是在第二个循环后我不知道会发生什么。请帮忙。

1 个答案:

答案 0 :(得分:0)

您的sel_pricesel_profit是数组,在循环中访问它们的方式是错误的,您应该使用索引来访问数组元素。

将此scanf("%f",sel_price);替换为scanf("%f",&sel_price[i]);,sel_profit也是如此。

您的for循环应该是这样的:-

 for(i=0;i<4;i++)
    {                                                                                                                                                                                                                                                     
            printf("\n\t\t\tENTER %s PRICE: ",sel_items[i]);
            scanf("%f",&sel_price[i]);                           /*Selling Price input here*/
            printf("\n\t\t\tENTER %s SELLING PROFIT :",sel_items[i]);  
            scanf("%f",&sel_profit[i]);                          /*Selling Profit input here*/
            cost_price[i]=sel_price[i]*sel_profit[i]/100;        /*Original Price*/
            printf("\n\t\t\t\t\tORIGINAL PRICE : %f",cost_price[i]);
    }