首页 > 解决方案 > i 值增加后成本价格变为 0

问题描述

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

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;
}

这是程序的输出。

                    *ENTER apple PRICE: 50*

                    ENTER apple SELLING PROFIT :50

                                    ORIGINAL PRICE : 25.000000   /*the loop of first item is coorect*/
                    ENTER ball PRICE: 100

                    ENTER ball SELLING PROFIT :20

                                    ORIGINAL PRICE : 0.000000 /*i dont know what happens in the second loop*/
                    ENTER keyboard PRICE: 56

                    ENTER keyboard SELLING PROFIT :3

                                    ORIGINAL PRICE : -0.000000
                    ENTER mouse PRICE: 244

                    ENTER mouse SELLING PROFIT :4

                                    ORIGINAL PRICE : 0.000000*

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

标签: carraysloops

解决方案


你的sel_priceandsel_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]);
    }

推荐阅读