2017-02-13 16 views
-1
#include <iostream> 

using namespace std; 

int main() 
{ 
    string input; //User input 
    char a; //Individual characters 
    int score(0); //Final score 
    int numa(0); //Number of a 
    int numg(0); //Number of g 
    int numm(0); //Number of m 
    int numf(0); //Number of f 
    int numk(0); //Number of k 
    int numj(0); //Number of j 

    cout << "Enter Text: "; //Requesting and storing user input 
    cin >> input; 
    cout << endl; 

    a = input[0]; 
    cout << a; 
    if(a != '!' || a != '.') 
    { 
     int num(0); 
     while(num<=input.length()) 
     { 
      a = input[num]; 
      switch(a) 
      { 
       case 'a': 
       case 'A': 
        score += 1; 
        numa++; 
        break; 

       case 'g': 
       case 'G': 
        score += 2; 
        numg++; 
        break; 

       case 'm': 
       case 'M': 
        score += 3; 
        numm++; 
        break; 

       case 'f': 
       case 'F': 
        score += 4; 
        numf++; 
        break; 

       case 'k': 
       case 'K': 
        score += 5; 
        numk++; 
        break; 

       case 'j': 
       case 'J': 
        score += 8; 
        numj++; 
        break; 

       default: 
        break; 
      } 
      num++; 
     } 
    } 
    cout << "Number of a's (worth 1 point each): " << numa << endl; 
    cout << "Number of g's (worth 2 point each): " << numg << endl; 
    cout << "Number of m's (worth 3 point each): " << numm << endl; 
    cout << "Number of f's (worth 4 point each): " << numf << endl; 
    cout << "Number of k's (worth 5 point each): " << numk << endl; 
    cout << "Number of j's (worth 8 point each): " << numj << endl; 
    cout << endl; 
    cout << "Total score: " << score; 
} 

このプログラムは、ユーザーの入力を受け取り、そこに含まれる内容に基づいてスコアを与えます。文字aは1点、gは2、mは3、fは4、kは5、jは8です。または "。"だから、aaa!そしてaaa。 aaa!aaとaaa.aaは3点を与えなければならない。と "。"無視される。また、文字列が "!"で終わっていない場合は実行しないでください。または "。"、aaaa!およびaaaa。 aaaaは何も返しませんが、両方に対して4点を返します。問題は、switch文で定義されていない空白や文字tがある場合、プログラムは実行されません。最終目標はこの声明のためのものです。 28.C++改行中whileループ

+0

あなたの好きな本では、空白で何が行われているかについてもっと読む必要があると思います。 – molbdnilo

+0

こんにちはmolbdnilo、私はまだC + +の非常に新しいです。 >>は空白を普通の文字とは違って扱いますか? – INeedHelp101

+0

はい、そうです。あなたが学んでいる材料が何であれ、これを教えるべきですが、そうでなければ良い本のリストがあります。[ここ](http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-そしてリスト)。 – molbdnilo

答えて

0

のスコアを返すために、あなたの他のケースの底に、代わりにない場合は、アクションではなくまた他の

switch(a){ 
    case 'a': 
    case 'A': 
    ..... 
    default: 
     break; 
} 

破る使いとして継続使用のスイッチのデフォルトのアクションを移動してみてください必要な場合は、他の条件をテストする必要はありません。あなたは通常のelse節で置き換えることができます

+0

申し訳ありませんが、私の問題を他の文字で修正しましたが、空白がまだ壊れているようです。別のコメントは空白を別々に処理したと述べています。しかし、私は初心者であり、完全に理解していません。 – INeedHelp101