C++ if-else条件出错 #包括 #包括 使用名称空间std; main() { int gans[20]={43575、87565、33256、92394、12839、30956、23595、21983、10223、65805、000001、32998、47899、56688、55442、63363、65897、12758、32546、42536}; 双保险费[]等于{500.00、700.00、800.00、900.00、1200.00、1500.00、1800.00、2000.00、2100.00、2300.00、2800.00、3000.00、3200.00、3500.00、4000.00、10000.00、100000.00、200000.00、500000.00、1000000}; int bolcliente,i; coutbolcliente; if(bolcliente==gans[0]){cout

C++ if-else条件出错 #包括 #包括 使用名称空间std; main() { int gans[20]={43575、87565、33256、92394、12839、30956、23595、21983、10223、65805、000001、32998、47899、56688、55442、63363、65897、12758、32546、42536}; 双保险费[]等于{500.00、700.00、800.00、900.00、1200.00、1500.00、1800.00、2000.00、2100.00、2300.00、2800.00、3000.00、3200.00、3500.00、4000.00、10000.00、100000.00、200000.00、500000.00、1000000}; int bolcliente,i; coutbolcliente; if(bolcliente==gans[0]){cout,c++,arrays,if-statement,C++,Arrays,If Statement,那else只指它正上方的if。比方说bolcliente==gans[10]。程序检查每个条件。当它到达bolcliente==gans[19],它发现不,它不相等,所以它运行cout你需要在每个if之前添加else,除了第一个。如果有50个数字而不是20个,会怎么样?如果有100个数字而不是20个,你会把所有的if语句都写100次吗?1000个项目怎么样?你会累坏自己的用你写代码的方式 这样想吧——要么你找到了一个项目,要么你还没有找到一个项目。因此有两种情况。在了解这些信息的同时,考虑如何使

else
只指它正上方的
if
。比方说
bolcliente==gans[10]
。程序检查每个条件。当它到达
bolcliente==gans[19]
,它发现不,它不相等,所以它运行
cout你需要在每个
if
之前添加
else
,除了第一个。

如果有50个数字而不是20个,会怎么样?如果有100个数字而不是20个,你会把所有的if语句都写100次吗?1000个项目怎么样?你会累坏自己的用你写代码的方式

这样想吧——要么你找到了一个项目,要么你还没有找到一个项目。因此有两种情况。在了解这些信息的同时,考虑如何使用这些信息重写你的if/else

下面是同样的代码,采用了更理智的方法(它将解决您的问题):

#包括
#包括
#包括
使用名称空间std;
int main()
{
int gans[]={43575、87565、33256、92394、12839、30956、23595、21983、10223、65805,
000001, 32998, 47899, 56688, 55442, 63363, 65897, 12758, 32546, 
42536};    
常量int numGans=sizeof(gans)/sizeof(gans[0]);
双保险费[]等于{500.00,700.00,800.00,900.00,1200.00,1500.00,1800.00,
2000.00, 2100.00, 2300.00, 2800.00, 3000.00, 3200.00, 3500.00, 
4000.00, 10000.00, 100000.00, 200000.00, 500000.00, 1000000 
};    
int bolcliente,i;
coutbolcliente;
int*pGans=std::find(gans,gans+numGans,bolclient);
//找到一个项目
if(pGans!=gans+numGans)
{
int whichOne=std::距离(gans,pGans);

你几乎可以用一个
std::find
调用和一个if-else来替换所有的巨大块。我仍然不知道很多函数,这就是为什么我尽我所能制作它的原因,但是谢谢……哦,我明白了,但是当我在每个if之后添加一个else时,它会显示同样多的“else”正如我所做的,在这个例子中,它打印了19次coutqwow,我想这是你做的很多工作,但是我还在第二学期,我不知道很多函数,但是谢谢,我会尝试理解你的代码看看第二个例子中的for循环。你应该知道for()是什么如果这是你的第二学期,循环。它应该足够简单易懂。如果你大声说出循环中的内容,它应该是有意义的。哈哈,当然我知道循环是什么,但我不知道其他一些函数,比如sizeof或std::fin,我读它是为了理解它们,但这就是为什么我的代码非常简单,因为这是我可以做的方式…那么,你知道我如何在自己的代码中解决我的问题吗?使用简单for循环的第二个示例很简单。如果你知道for循环是什么,你知道数组是什么,那么我看不出理解代码有什么问题。
sizeof(array)/sizeof(array[0])
给出了数组中的元素数,而没有对值进行硬编码,仅此而已你现在能理解循环吗?另外,了解一下如果then else做了什么,但不要在你现在使用它时使用它。这就是我要说的。一个好的程序员会在代码中发现重复的模式,并总是试图找到解决问题的方法。你不应该自动接受“简单的解决方案”,因为从长远来看,这种简单的解决方案变得不可维护。类似于在地毯下扫垃圾,然后说你已经打扫了房间。是的,房间是“干净的”,但你能在地毯下扫多少垃圾呢?
#include<iostream>
#include<cstdlib>
using namespace std;
main()
{
int gans[20]={43575, 87565, 33256, 92394, 12839, 30956, 23595, 21983, 10223, 65805, 000001, 32998, 47899, 56688, 55442, 63363, 65897, 12758, 32546, 42536};    
double premios[]={500.00, 700.00, 800.00, 900.00, 1200.00, 1500.00, 1800.00, 2000.00, 2100.00, 2300.00, 2800.00, 3000.00, 3200.00, 3500.00, 4000.00, 10000.00, 100000.00, 200000.00, 500000.00, 1000000 };    

int bolcliente, i;       
cout<<"Introduzca su numero de boleto: ";
cin>>bolcliente;


if(bolcliente==gans[0]) {cout<<"Felicidades, haz ganado el premio de: "<<premios[0]<<" pesos";} 
 if(bolcliente==gans[1]) {cout<<"Felicidades, haz ganado el premio de: "<<premios[1]<<" pesos";} 
  if(bolcliente==gans[2]) {cout<<"Felicidades, haz ganado el premio de: "<<premios[2]<<" pesos";} 
   if(bolcliente==gans[3]) {cout<<"Felicidades, haz ganado el premio de: "<<premios[3]<<" pesos";}
    if(bolcliente==gans[4]) {cout<<"Felicidades, haz ganado el premio de: "<<premios[4]<<" pesos";}
     if(bolcliente==gans[5]) {cout<<"Felicidades, haz ganado el premio de: "<<premios[5]<<" pesos";}
      if(bolcliente==gans[6]) {cout<<"Felicidades, haz ganado el premio de: "<<premios[6]<<" pesos";}
       if(bolcliente==gans[7]) {cout<<"Felicidades, haz ganado el premio de: "<<premios[7]<<" pesos";}
        if(bolcliente==gans[8]) {cout<<"Felicidades, haz ganado el premio de: "<<premios[8]<<" pesos";}
         if(bolcliente==gans[9]) {cout<<"Felicidades, haz ganado el premio de: "<<premios[9]<<" pesos";}
          if(bolcliente==gans[10]) {cout<<"Felicidades, haz ganado el premio de: "<<premios[10]<<" pesos";}
           if(bolcliente==gans[11]) {cout<<"Felicidades, haz ganado el premio de: "<<premios[11]<<" pesos";}
            if(bolcliente==gans[12]) {cout<<"Felicidades, haz ganado el premio de: "<<premios[12]<<" pesos";}
             if(bolcliente==gans[13]) {cout<<"Felicidades, haz ganado el premio de: "<<premios[13]<<" pesos";}
              if(bolcliente==gans[14]) {cout<<"Felicidades, haz ganado el premio de: "<<premios[14]<<" pesos";}
               if(bolcliente==gans[15]) {cout<<"Felicidades, haz ganado el premio de: "<<premios[15]<<" pesos";}
                if(bolcliente==gans[16]) {cout<<"Felicidades, haz ganado el premio de: "<<premios[16]<<" pesos";}
                 if(bolcliente==gans[17]) {cout<<"Felicidades, haz ganado el premio de: "<<premios[17]<<" pesos";}
                  if(bolcliente==gans[18]) {cout<<"Felicidades, haz ganado el premio de: "<<premios[18]<<" pesos";}
                   if(bolcliente==gans[19]) {cout<<"Felicidades, haz ganado el premio de: "<<premios[19]<<" pesos";}
                    else{cout<<"Lo sentimos, no haz ganado premio alguno, suerte para la proxima"<<endl;            }     



system("pause");
}
#include <iostream>
#include <cstdlib>
#include <algorithm>

using namespace std;

int main()
{
    int gans[]={43575, 87565, 33256, 92394, 12839, 30956, 23595, 21983, 10223, 65805, 
                000001, 32998, 47899, 56688, 55442, 63363, 65897, 12758, 32546, 
                42536};    
    const int numGans = sizeof(gans) / sizeof(gans[0]);
    double premios[]={500.00, 700.00, 800.00, 900.00, 1200.00, 1500.00, 1800.00, 
                      2000.00, 2100.00, 2300.00, 2800.00, 3000.00, 3200.00, 3500.00, 
                      4000.00, 10000.00, 100000.00, 200000.00, 500000.00, 1000000 
                     };    
    int bolcliente, i;       
    cout<<"Introduzca su numero de boleto: ";
    cin>>bolcliente;
    int* pGans = std::find(gans, gans + numGans, bolcliente);

    // found an item
    if ( pGans != gans + numGans )
    {
        int whichOne = std::distance(gans, pGans);
        cout << "Felicidades, haz ganado el premio de: "<< 
                premios[whichOne]<<" pesos";
    }
    else 
    // didn't find the item
        cout<<"Lo sentimos, no haz ganado premio alguno, suerte para la proxima"
           << endl;
}
bool found = false;
for (int i = 0; i < numGans && !found; ++i)
{
    if (gans[i] == bolcliente)
    {
      cout << "Felicidades, haz ganado el premio de: " << premios[i] << " pesos";
      found = true;
    }
}
if ( !found )
    cout << "Lo sentimos, no haz ganado premio alguno, suerte para la proxima" << endl;