我需要做一个程序,输入是一组数据,有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行后的最后一个字母是c,则继续其他6行,如果是f,则完成。
我打算:
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
答案 0 :(得分: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];
答案 1 :(得分: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
分配内存之前让用户输入一个数字(将有多少个数组)。