0

私はプログラムを実行する必要があり、入力は6行のデータセットで、3つの数字がスペースで区切られ、最後の行に「c」または「f」があります:

input:
4 5 6
7 8 9
7 8 9
4 5 6
7 8 9
7 8 9
c
4 5 6
7 8 9
7 8 9
4 5 6
7 8 9
7 8 9
c
4 5 6
7 8 9
7 8 9
4 5 6
7 8 9
7 8 9
f

6 行の最後の文字が ac の場合は、他の 6 行に進み、af の場合は終了します。

私は意図します:

int main(){

char a;
int triangulo[6][3];
do{
    for(int i=0; i<6; i++){
            cin>>triangulo[i][0]>>triangulo[i][1]>>triangulo[i][2];                    
    }

    cin>>a;  
}while(a != 'f'); 


system("pause");
}

しかし、今はうまくいきます。助けてもらえますか。スペースで区切られた同じ行で3つの数字を受け取り、非常に多くのデータセットを受け取る方法がわからないためです。

そして別の質問です。たとえば、ユーザーが c を 7 回書いた場合、データセットごとに配列を作成する必要がありますか??

input:
4 5 6
7 8 9
7 8 9
4 5 6
7 8 9
7 8 9
c
4 5 6
7 8 9
7 8 9
4 5 6
7 8 9
7 8 9
c
4 5 6
7 8 9
7 8 9
4 5 6
7 8 9
7 8 9
f

そして、各配列を合計する必要があり、合計が出力である場合、データセットごとに配列を作成する必要がありますか??

output
126
126
126
4

2 に答える 2

0

これを試して?

int main(){

    char a;
    int triangulo[3];
    int sum=0;
    do{
        for(int i=0; i<6; i++){
            cin>>triangulo[0] >> triangulo[1] >> triangulo[2];
            sum=sum+triangulo[0]+triangulo[1]+triangulo[2];
        }

        cin>>a;  
    }while(a != 'f'); 

    cout<<sum;

    system("pause");
}

すべての配列を保存したい場合は、配列を入力する前にユーザーに数値(配列の数)を入力させ、 を使用してメモリを割り当てることができますnew

于 2013-06-29T17:17:04.300 に答える
0

このようなものは、3桁を読み取るために機能するはずです。

cin>>triangulo[0] >> triangulo[1] >> triangulo[2]; 

ただし、数字 (1、2、3、18、33、418 など) を読み取る場合は、int triangulo[3];代わりに使用することをお勧めします。実際に 3 つの数値を 6 セット格納する場合は、2 次元配列が必要になります。

int triangulo[6][3];

...

        cin>>triangulo[i][0] >> triangulo[i][1] >> triangulo[i][2]; 
于 2013-06-29T17:01:19.550 に答える