c++二维数组输入输出问题

#include<iostream>
using namespace std;

int main(void)
{
int n;
char a[100][100];
cout <<"请输入字符串个数:";
cin >>n;
cout <<"请输入n个字符串" <<endl;

for(int i=0;i<n;i++)
{
cin >> a[i][100];
}

cout <<"输入完毕:"<<endl<<"现在反序输出"<<endl;
for(int i=n-1;i<=0;i--)
cout << a[i][100]<<endl;

system("pause");
return 0;
}
输入4 不能输出四个字符串 且反序输出没有结果,是怎么回事

cin >> a[i][100]; 只能输入一个字母,改为cin >> a[i];
cout << a[i][100]<<endl; 这个是输出每个字符串第100个字符,而且这个for循环只能将输入字符串的顺序颠倒,及先输入后输出
最好定义的时候初始化char a[100][100] = {0};
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-09-12
#include<iostream>
using namespace std;

int main(void)
{
int n;
char a[100][100];
cout <<"请输入字符串个数:";
cin >>n;
cout <<"请输入n个字符串" <<endl;

for(int i=0;i<n;i++)
{
cin >> a[i];
}

cout <<"输入完毕:"<<endl<<"现在反序输出"<<endl;
for(int i=n-1;i>=0;i--)
cout << a[i]<<endl;

system("pause");
return 0;
}
改成这样,你试一下
第2个回答  推荐于2018-04-15
cin >> a[i][100];改为cin>>a[i];

cout << a[i][100]<<endl;改为cout << a[i] <<endl;追问

这样可以,但是为什么呢

追答

a[i]表示第i个串的地址,a[i][100]表示第i个串的第101个字符

本回答被提问者和网友采纳

C++二维数组的输入和输出
int main(){ int m,n,i,j;int **x;scanf("%d%d",&m,&n);x=(int **)malloc(sizeof(int *)*m);for(i=0;i<m;i++){ x[i]=(int *)malloc(sizeof(int)*n);} for(i=0;i<m;i++){ for(j=0;j<n;j++){ scanf("%d",&x[i][j]);} } for(i=0;i<m;i++){...

c++二维数组输入输出问题
cin >> a[i][100]; 只能输入一个字母,改为cin >> a[i];cout << a[i][100]<<endl; 这个是输出每个字符串第100个字符,而且这个for循环只能将输入字符串的顺序颠倒,及先输入后输出 最好定义的时候初始化char a[100][100] = {0};...

dev c++输出二维数组时全部输出成了一行?
你的程序我帮你改好了,是换行符的位置不对 完整的程序如下(改动的地方见注释)include<stdio.h> int main(){ int a[3][4]={{6},{8},{3}};int i,j;for(i=0;i<=2;i++){ for(j=0;j<=3;j++){ printf("%5d",a[i][j]);\/\/这里去掉换行符 } printf("\\n");\/\/这里加一...

二维数组输入输出字符怎么读走空格?
在 C++ 中,可以使用 cin 和 cout 来输入和输出字符数组。如果要读取整个字符串(包括空格),可以使用 getline() 函数。例如,下面的代码演示了如何定义一个字符类型的二维数组,输入字符串,并将其输出:上述代码中,cin.getline() 函数会读入整行字符串,包括其中的空格。如果需要去掉字符串中的空格...

输入一个4*5的二维数组输出每列和最大的一列?
" ";} cout << endl;cout << "和最大的列为:" << max_col + 1 << endl;return 0;} 输出结果:每列的和为:34 38 42 46 50 和最大的列为:5 解释:输入的二维数组为一个4行5列的矩阵,程序首先计算每列的和,存储在数组sum中,然后遍历sum数组找到和最大的列,最后输出结果。

c++ 按下列要求编写程序:输入一个6*6的二维数组的输入,二维数组的平 ...
*r = 0; *c = 0; while (b!=a+rows*cols) { if (*b>m) { m = *b; *r = (b-a)\/cols; *c = (b-a)%cols; } b++; }}\/\/冒泡排序void Sort(int *a, int size)

C++中二维数组输入数据时候为何一直没有停止呢
代码没问题 但是感觉逻辑有点小问题 a[i][j] i作为列 j为行 一般是将 j 的for循环至于 i 的循环之上 即先输入第一行的每列数,再跳转至第二行,再第三行。。。所以你这段程序是先输入第一列的每一行的数 再输入第二列,,,你可能次序搞错了 所以。。。

C++用二维数组输出字符串为什么输出的是16进制的数,亲们帮忙改错下,么...
b[0][c] = b[1][d] = b[2][e] = b[3][f] = '\\0';main函数中输出部分改成:cout<<"大写英文字母:\\t";cout<<b[0]<<endl;cout<<"小写英文字母:\\t";cout<<b[1]<<endl;cout<<"数字\\t";cout<<b[2]<<endl;cout<<"其他字符:\\t";cout<<b[3]<<endl;我拿你的程序...

c++如何实现输入一个数值,输出对角线元素
首先根据程序的要求我们可以知道,我们要定义一个二维数组来存储从键盘输入的数据,同时要求我们输出对角线的元素,我们可以得到对角线元素的行数值和列数值相等,所以说我们只需输出行数值和列数值相等的元素还有行数值加列数为5的元素。正确代码:include <stdio.h> int main() { int d[5][5];int...

c++问题 2. 编写程序,输入一个6×6的二维整型数组,并输出该数组的平均值...
include<iostream>using namespace std;void fun(int *a[],int n){int i,j;for(i=0;i<n;i++)for(j=0;j<6;j++)cin>>a[i][j];}void show(int *a[],int n){int max,min;double aver=0,sum=0;max = min = a[0][0];for(int i=0;i<n;i++)for(int j=0;j<6;j...

相似回答