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

像这样的东西应该适用于读取三位数。

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

但是,如果您正在阅读数字(1、2、3、18、33、418 或类似的数字),您可能想要使用int triangulo[3];。如果你真的想存储 6 组三个数字,你将需要一个二维数组:

int triangulo[6][3];

...

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