问题及代码:
/*
* Copyright (c) 2014, 烟台大学计算机学院
* All rights reserved.
* 文件名称:test.cpp
* 作 者:陈旭
* 完成日期:2014年 11 月 27 日
* 版 本 号:v1.0
*
* 问题描述:按照要求折腾二维数组
* 输入描述:略
* 程序输出:略
*/
#include <iostream>
using namespace std;
int main()
{
int i,j,t;
int a[5][4]= {{0,1},{4,5},{8,9},{12,13},{16,17}};
//键盘输入后两列10个元素的值
cout<<"请输入10个整数:"<<endl;
for(i=0; i<=4; i++)
for(j=2; j<=3; j++)
cin>>a[i][j];
cout<<"数组中的值为:"<<endl;
for(i=0; i<=4; i++)
{
cout<<"第"<<i<<"行:";
for(j=0; j<=3; j++)
{
cout <<a[i][j]<<" "; //按行序优先输出
}
cout <<endl;
}
cout<<"现在将所有元素乘以3倍...完成!"<<endl;
cout<<"行序优先输出:"<<endl;
for(i=0; i<=4; i++)
for(j=0; j<=3; j++)
a[i][j]=3*a[i][j];
for(i=0; i<=4; i++)
{
cout <<"第"<<i<<"行:";
for(j=0; j<=3; j++)
{
cout <<a[i][j]<<" ";
}
cout<<endl;
}
cout<<"列序优先输出:"<<endl;
for(i=0;i<=4;i++)
for(j=0;j<=i;j++)
{
t=a[i][j];
a[i][j]=a[j][i];
a[j][i]=t;
}
for(j=0;j<=3;j++)
{
cout <<"第"<<j<<"行:";
for(i=0;i<=4;i++)
cout<<a[j][i]<<" ";
cout<<endl;
}
cout<<"倒着输出:"<<endl;
for(i=4; i>=0; --i)
{
cout<<"第"<<i<<"行:";
for(j=3; j>=0; --j)
cout<<a[i][j]<<" ";
cout<<endl;
}
cout<<"数组中的偶数:"<<endl;
for(i=0;i<=4;i++)
for(j=0;j<=3;j++)
{
if(a[i][j]%2==0)
cout<<"a["<<i<<"]["<<j<<"]="<<a[i][j]<<endl;
}
cout<<"行列下标之和为3的倍数的元素:"<<endl;
for(i=0;i<=4;i++)
for(j=0;j<=3;j++)
{
if((i+j)%3==0)
cout<<"a["<<i<<"]["<<j<<"]="<<a[i][j]<<endl;
}
return 0;
}
运行结果:
知识点总结:
通过这个程序的编写,让我们对二维数组的初步运用与“折腾”有了个初步的理解认识,对后面深入的运行做铺垫。
学习心得:
首次做这个,真的是挺难得,老是运行不出来或是有小毛病,不断的改正,花了大量时间才勉强弄成这个样子的。
本文通过一个C++程序实例,展示了如何实现二维数组的多种操作,包括输入、输出、元素乘法、行列转换、逆序输出及筛选特定元素等。通过实际编程加深了对二维数组的理解。
570

被折叠的 条评论
为什么被折叠?



