c++小白,初学数组,一道有关问题,请大家帮帮忙,多谢
c++小白,初学数组,一道问题,请大家帮帮忙,谢谢
B C E H L Q
C D F I M R
D E G J N S
E F H K O T
这道题的要求是输出这个
下面是我写的代码
#include<iostream>
using namespace std;
int main()
{
const int ROW_SIZE=6;
const int COLUMN_SIZE=5;
char ch[ROW_SIZE][COLUMN_SIZE];
ch[0][0]='A';
for(int i=1;i<ROW_SIZE;i++)
{
ch[0][i]=ch[0][0]+i;
}
for(int j=1;j<COLUMN_SIZE;j++)
{
ch[j][0]=ch[0][0]+j;
}
for(int k=1;k<COLUMN_SIZE;k++)//在这个for循环我想让每一行的第一个分别输出的是B,C,D,E.
{
cout<<ch[k][0]<<" ";
for(int l=1;l<ROW_SIZE;l++)
{
ch[k][l]=ch[k][l-1]+l;
cout<<ch[k][l]<<" ";
}
cout<<endl;
}
return 0;
}

但是为什么每一行的第一个都变成了上一行的最后一个,是最后for循环里的for循环对数组产生影响了么?
谢谢。
------解决思路----------------------
for(int i=1;i<ROW_SIZE;i++)
{
ch[0][i]=ch[0][0]+i;
}
for(int j=1;j<COLUMN_SIZE;j++)
{
ch[j][0]=ch[0][0]+j;
}
行和列搞错了吧
------解决思路----------------------
很明显是行和列搞错了。
------解决思路----------------------
没环境,晚上测试。先贴出来。。
------解决思路----------------------
根据你给的输出结果,总结这个输出的规律,自己写的一个代码,你可以参考一下,谢谢。
------解决思路----------------------
引用上楼的:
for (i = 0; i < ROW_SIZE; i ++)
{
cout<<ch[i][0]<<" "; //这行可以省略,就不会重复出现第一列了。。。。。
for (j = 0; j < COLUMN_SIZE; j ++)
{
cout<<ch[i][j]<<" ";
}
cout<<endl;
}
return 0;
}
B C E H L Q
C D F I M R
D E G J N S
E F H K O T
这道题的要求是输出这个
下面是我写的代码
#include<iostream>
using namespace std;
int main()
{
const int ROW_SIZE=6;
const int COLUMN_SIZE=5;
char ch[ROW_SIZE][COLUMN_SIZE];
ch[0][0]='A';
for(int i=1;i<ROW_SIZE;i++)
{
ch[0][i]=ch[0][0]+i;
}
for(int j=1;j<COLUMN_SIZE;j++)
{
ch[j][0]=ch[0][0]+j;
}
for(int k=1;k<COLUMN_SIZE;k++)//在这个for循环我想让每一行的第一个分别输出的是B,C,D,E.
{
cout<<ch[k][0]<<" ";
for(int l=1;l<ROW_SIZE;l++)
{
ch[k][l]=ch[k][l-1]+l;
cout<<ch[k][l]<<" ";
}
cout<<endl;
}
return 0;
}
但是为什么每一行的第一个都变成了上一行的最后一个,是最后for循环里的for循环对数组产生影响了么?
谢谢。
------解决思路----------------------
for(int i=1;i<ROW_SIZE;i++)
{
ch[0][i]=ch[0][0]+i;
}
for(int j=1;j<COLUMN_SIZE;j++)
{
ch[j][0]=ch[0][0]+j;
}
行和列搞错了吧
------解决思路----------------------
很明显是行和列搞错了。
------解决思路----------------------
没环境,晚上测试。先贴出来。。
------解决思路----------------------
根据你给的输出结果,总结这个输出的规律,自己写的一个代码,你可以参考一下,谢谢。
#include "stdafx.h"
#include <iostream>
using namespace std;
#define COLUMN_SIZE 6
#define ROW_SIZE 4
int _tmain(int argc, _TCHAR* argv[])
{
char szTable[COLUMN_SIZE][ROW_SIZE];
memset(szTable, 0, COLUMN_SIZE * ROW_SIZE);
char chStart = 'B';
for (int i = 0; i < COLUMN_SIZE; i++)
{
for(int j = 0; j < ROW_SIZE; j++)
{
if ( i > 0)
{
szTable[i][j] = szTable[i-1][0] + i + j;
}
else
{
szTable[i][j] = chStart + i + j;
}
}
}
for (int i = 0; i < ROW_SIZE; i++)
{
for (int j = 0; j < COLUMN_SIZE; j++)
{
cout << szTable[j][i];
cout << " ";
}
cout << endl;
}
return 0;
}
------解决思路----------------------
引用上楼的:
for (i = 0; i < ROW_SIZE; i ++)
{
cout<<ch[i][0]<<" "; //这行可以省略,就不会重复出现第一列了。。。。。
for (j = 0; j < COLUMN_SIZE; j ++)
{
cout<<ch[i][j]<<" ";
}
cout<<endl;
}
return 0;
}