混淆了如果在C ++中包含数组的ledder

时间:2015-10-06 04:17:01

标签: c++

#include<iostream>
#include<conio.h>

using namespace std;
//const int n=20;

class cofee
{     
   //public:
   int i;
   //int n=20;
   int price[20];
   //int totalprice[n];

   public:
   void getprice()
   {    
      if(i=1)
      {
         price[i]=10;
         cout<<"price is :"<<price[i]<<""\n;
      }
      else if(i=2)
      {
         price[i]=20;
         cout<<"price is :"<<price[i];
      }
      else if(i=2)
      {
         price[i]=30;
         cout<<"price is :"<<price[i];
      }
      else
      {
         cout<<"\n";
      }
   }

   void total()
   {
      int sum=0;
      int n=3;
      for(i=1;i<=n;i++)
      {
         sum = sum+price[i];
      }
      cout<<"total is:"<<sum;
   }
};

int main()
{
   cofee c;
   int i;

   do
   {
      cout<<"enter your choice";
      cout<<"\n1.plain cofee";
      cout<<"\n2.cold cofee";
      cout<<"\n3.farali cofee";
      cout<<"\n4.total";
      cout<<"\n5.quit";
      cout<<"\n";
      cin>>i;

      switch(i)
      {
         case 1 : c.getprice(); break;
         case 2 : c.getprice(); break;
         case 3 : c.getprice(); break;
         case 4 : c.total(); break;
         case 5 : break;
         default : cout<<"\nwrong cchoice";
      }
   }while(i!=5);

   getch();
   return 0;
}

我已经尝试了几乎所有我能做的但仍然没有给出正确的输出。它既没有出现任何错误或警告。

如果否则ledder价格不存储i = 2&amp;的价值3.需要帮助来解决它。

1 个答案:

答案 0 :(得分:0)

当你在if中使用(=)时,你没有比较值,你实际上给了他值,所以第一个“if”将永远为真。如果它们都是“if”而不是“else if”它们都是真的(使用“==”代替)!此外,对于您的变量,如果您没有将它们指定为公共变量,则默认情况下它们将是私有的。