2011-07-11 24 views
0

..C++程序中讀取日期值有這個計劃問題

得到一個錯誤「必須在管線116返回 '詮釋' ..

#include <iostream> 
#include <fstream> 
//#include <stdio> 
#include <string> 
using namespace std; 
/********************************************************************/ 
/*Function: to validate the score is valid 
Parameter: score1 ,score 2, score3 
return: true: if 3 score is valid 
     false: if at least 1 score is invalid 
/********************************************************************/ 

bool isitavalidset(int score1,int score2,int score3) 

{ 
    bool isvalid = true; 
    //check valid score1 
    if(score1 < 18 || score1> 100) 
    { 
     cout<<"Score1 is invalid value\n"; 
     isvalid = false; 
    } 
    //check valid score2 
    if(score2 < 18 || score2> 100) 
    { 
     cout<<"Score3 is invalid value\n"; 
     isvalid = false; 
    } 
    //check valid score3 
    if(score3 < 18 || score3> 100) 
    { 
     cout<<"Score3 is invalid value\n"; 
     isvalid = false; 
    } 

    return isvalid; 
} 

/********************************************************************/ 
/*Function: to classify the status of 3 score 
Parameter: score1 ,score 2, score3 
return: print out the screen 
/********************************************************************/ 
void findpattern(int score1, int score2,int score3) 
{ 
    //stayed in the same 
    if((score1 == score2) &&(score2 == score3)) 
    { 
     cout<<"stayed the same\n"; 
    }//inccreasing 
    else if((score1 < score2) && (score2 < score3)) 
    { 
     cout<<"increasing\n"; 
    }//decreasing 
    else if((score1 > score2) &&(score2 > score3)) 
    { 
     cout<<"decreasing\n"; 
    }//two left or right are the same 
    else if((score1 == score2) || (score2 == score3)) 
    { 
     cout<<"two the same\n"; 
    }//up and down 
    else if(score1 > score2) 
    { 
     cout<<"up and down\n"; 
    }//down and up 
    else if(score1 < score2) 
    { 
     cout<<"down and up\n"; 
    }//no case,it is impossible to occur 
    else { 
     cout<<"this type of value is not classified\n"; 
    } 
} 
/********************************************************************/ 
/*Function: to count 3 score for each group 
Parameter: score1 ,score 2, score3 
return: print out the screen 
/********************************************************************/ 
void countranges(int score1, int score2, int score3) 
{ 
    int belowpar = 0; 
    int atpar = 0; 
    int abovepar = 0; 
    //we do not care the range, because we has been check the range outside, this number must be valid 
    if(score1 < 70) belowpar++; 
    else if(score1 == 70) atpar++; 
    else if(score1 > 70) abovepar++; 
    //we do not care the range, because we has been check the range outside, this number must be valid 
    if(score2< 70) belowpar++; 
    else if(score2 == 70) atpar++; 
    else if(score2 > 70) abovepar++; 
    //we do not care the range, because we has been check the range outside, this number must be valid 
    if(score3 < 70) belowpar++; 
    else if(score3 == 70) atpar++; 
    else if(score3 > 70) abovepar++; 
    //printing the value here 
    cout<<belowpar<<" below par (18-69 range)  " <<atpar<<" at par (exactly 70)   "<<abovepar<<" above par (71-100 range)\n"; 

} 
/********************************************************************/ 
/*Function: to call the other function 
Parameter: score1 ,score 2, score3 
return: nothing 
/********************************************************************/ 
void classify(int score1,int score2, int score3) 
{ 
    findpattern(score1, score2, score3); 
    countranges(score1, score2, score3); 
} 
/********************************************************************/ 
/*Function: control the input of data and print result 
Parameter: score1 ,score 2, score3 
return: nothing 
/********************************************************************/ 


// Getting error from this line,,, error "must return 'Int' 
void main(int argc, char* argv[]) 
{ 
    int score1,score2,score3; 
    int totalgroupgood = 0; 
    int totalgroupbad = 0; 
    //Input file 
    ifstream infile; 
    if(argc != 2) 
    { 
     return; 
    } 
    //read the file from input 
    infile.open (argv[1]); 

     while(!infile.eof()) // To get you all the lines. 
      { 
       //set value to score1,score2,score3 
       infile>>score1; 
       infile>>score2; 
       infile>>score3; 

       if(isitavalidset(score1,score2,score3)) 
       { 
        classify(score1,score2,score3); 
        totalgroupgood++; 
       }else{ 
        totalgroupbad++; 
       } 

     } 

    infile.close(); 
    cout<<"Total valid group:"<<totalgroupgood<<"\n"; 
    cout<<"Total invalid group:"<<totalgroupbad<<"\n"; 


} 

謝謝。

回答

2
void main(int argc, char* argv[]) 

是不合法的;它必須被改爲:

int main(int argc, char* argv[]) 

main()是一種特殊情況,您可以選擇將return聲明放到最後,這是可選的。來自Bjarne Stroustrup的頁面的See here, the link。簡而言之,main()必須返回int

+0

ohhhhh thanx alottttttt,我現在看到它,非常酷非常感謝你:) – Joey