C c语言二维数组的输出输出问题

数组 C语言基础:遍历输出三维数组 - 为程序员服务
为程序员服务
C语言基础:遍历输出三维数组
#include &stdio.h&
int main(void)
int row, column,
float values[2][3][5] = {
{{1.0, 2.0, 3.0, 4.0, 5.0},
{6.0, 7.0, 8.0, 9.0, 10.0},
{11.0, 12.0, 13.0, 14.0, 15.0}},
{{16.0, 17.0, 18.0, 19.0, 20.0},
{21.0, 22.0, 23.0, 24.0, 25.0},
{26.0, 27.0, 28.0, 29.0, 30.0}}
for (row = 0; row & 2; row++)
for (column = 0; column & 3; column++)
for (table = 0; table & 5; table++)
printf(&values[%d][%d][%d] = %f\n&, row, column, table,
values[row][column][table]);
values[0][0][0] = 1.000000
values[0][0][1] = 2.000000
values[0][0][2] = 3.000000
values[0][0][3] = 4.000000
values[0][0][4] = 5.000000
values[0][1][0] = 6.000000
values[0][1][1] = 7.000000
values[0][1][2] = 8.000000
values[0][1][3] = 9.000000
values[0][1][4] = 10.000000
values[0][2][0] = 11.000000
values[0][2][1] = 12.000000
values[0][2][2] = 13.000000
values[0][2][3] = 14.000000
values[0][2][4] = 15.000000
values[1][0][0] = 16.000000
values[1][0][1] = 17.000000
values[1][0][2] = 18.000000
values[1][0][3] = 19.000000
values[1][0][4] = 20.000000
values[1][1][0] = 21.000000
values[1][1][1] = 22.000000
values[1][1][2] = 23.000000
values[1][1][3] = 24.000000
values[1][1][4] = 25.000000
values[1][2][0] = 26.000000
values[1][2][1] = 27.000000
values[1][2][2] = 28.000000
values[1][2][3] = 29.000000
values[1][2][4] = 30.000000
您可能的代码
相关聚客文章
相关专栏文章&>&&>&&>&&>&二维数组输入输出子函数.c
二维数组输入输出子函数.c
上传大小:466B
二维数组输入输出子函数
综合评分:0(0位用户评分)
所需积分:1
下载次数:2
审核通过送C币
创建者:nigelyq
创建者:bg4sop
创建者:huilan_same
课程推荐相关知识库
上传者其他资源上传者专辑
网络技术热门标签
VIP会员动态
android服务器底层网络模块的设计方法
所需积分:0
剩余积分:720
您当前C币:0
可兑换下载积分:0
兑换下载分:
兑换失败,您当前C币不够,请先充值C币
消耗C币:0
你当前的下载分为234。
二维数组输入输出子函数.c
会员到期时间:
剩余下载次数:
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可奖励20下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:C语言二维数组总结
所有用到的的数组是:a[3][3]={{23,46,11},{99,45,82},{72,90,21}};
一:遍历打印输出二维数组的元素
#include &stdio.h&
void main(){
int a[3][3]={{23,46,11},{99,45,82},{72,90,21}};
for(int i=0;i&3;i++){
&&&&&for(int
j=0;j&3;j++){
&&&&&&&&&printf("%d&&",a[i][j]);
&&&&&&printf("\n");
思路:【1:每一个下标号对应的元素值是唯一的;
2:因为是二维数组,必须要遍历行,列所以需要两个循环变量;
3:在每一次循环遍历列数后,就用换行语句,可以打印输出标准的行列格式】
二:逆序输出二维数组的元素
#include &stdio.h&
void main(){
int a[3][3]={{23,46,11},{99,45,82},{72,90,21}};
for(int i=2;i&=0;i--){
&&&&&for(int
j=2;j&=0;j--){
&&&&&&&&&printf("%d&&",a[i][j]);
思路:【1:每一个下标号对应唯一的元素值;
2:当下标号发生顺序改变的时候,他们所代表的元素值也发生顺序变化。】
三:求二维数组的最值,每一行最值,每一列最值
#include &stdio.h&
void main(){
int a[3][3]={{23,46,11},{99,45,82},{72,90,21}};
int max=a[0][0];
for(int i=0;i&3;i++){
&&&&&for(int
j=0;j&3;j++){
&&&&&&&&&if(max&a[i][j]){
&&&&&&&&&max=a[i][j];
&&&&&&&&&}
printf("%d \n",max);
思路:【1:必须声明一个临时的最大值,最好是二维数组中的任何一个元素值,不能比二维数组中的最小值还要小,比最大值还要大!
2:循环遍历二维数组的每一个元素值,一一比较,比临时最大值还大的话,就覆盖掉。】
#include &stdio.h&
void main(){
int a[3][3]={{23,46,11},{99,45,82},{72,90,21}};
int max=a[0][0];
for(int i=0;i&3;i++){
&&&&&max=a[i][0];
&&&&&for(int
j=0;j&3;j++){
&&&&&&&&&if(max&a[i][j]){
&&&&&&&&&max=a[i][j];
&&&&&&&&&}
&&&&&printf("第
%d 行的最大值是:%d\n",(i+1),max);
思路:【1:求每一行的最值,先临时设置一个值是二维数组里面的一个元素值;
2:遍历每一列,再遍历行的总数次,并且每遍历下一次的时候,最值要归位。不能将以前的最值拿下来比较】
#include &stdio.h&
void main(){
int a[3][3]={{23,46,11},{99,45,82},{72,90,21}};
int max=a[0][0];
for(i=0;i&3;i++){
&&&&&for(j=0;j&3;j++){
&&&&&printf("%d
",a[i][j]);
&&&&&printf("\n");
printf("\n");
for(j=0;j&3;j++){
&&&&&max=a[0][j];
&&&for(i=0;i&3;i++)
&&&&&if(max&a[i][j]){
&&&&&max=a[i][j];&&&
&&&&&&printf("第
%d 列的最大值是:%d \n",(j+1),max);
三:求二维数组的总和和平均值,每行每列的和还有平均值
#include &stdio.h&
void main(){
int a[3][3]={{23,46,11},{99,45,82},{72,90,21}};
int s=0,s1=0,s2=0;
printf("输出的标准格式如下:\n");
for(i=0;i&3;i++){
&&&&&for(j=0;j&3;j++){
&&&&&printf("%d
",a[i][j]);
printf("\n");
printf("\n");
for(i=0;i&3;i++){
&&&&&for(j=0;j&3;j++){
&&&&&&&&s=s+a[i][j];
printf("该二维数组的和:=&&平均值是:%d\n",s,s/9);
printf("\n");
for(i=0;i&3;i++){
&&&for(j=0;j&3;j++){
s1=s1+a[i][j];
&&&printf("第 %d
行的和是: =&&&平均值是:
%d\n",(i+1),s1,s1/3);
printf("\n");
for(i=0;i&3;i++){
for(j=0;j&3;j++){
s2=s2+a[j][i];
printf("第 %d 列的和是:
=&&&平均值是:
%d\n",(i+1),s2,s2/3);
思路:【1:求累加之和的固定模式是:int s=0;s=s+变化的值,就是指循环遍历的数组元素值;
2:在求每行,每列的和的时候,也是采用求累加之和的固定模式,求每一行的和就遍历每一列,求每一列。就遍历每一行;
3:在求每一行,每一列的和是时,记住要清0】
四:求该数组的对角线之和
#include &stdio.h&
void main(){
int a[3][3]={{23,46,11},{99,45,82},{72,90,21}};
int s1=0,s2=0;
printf("输出的标准格式如下:\n");
for(i=0;i&3;i++){
&&&&&for(j=0;j&3;j++){
&&&&&printf("%d
",a[i][j]);
printf("\n");
for(i=0;i&3;i++){
for(j=0;j&3;j++){
&&&&&&&&if(i+j==2){
&&&&&&&&s1=s1+a[i][j];
printf("该数组的左对角线和是:= \n\n",s1);
for(i=0;i&3;i++){
for(j=0;j&3;j++){
&&&&&&&&if(i==j){
&&&&&&&&s2=s2+a[i][j];
printf("该数组的右对角线和是:= \n",s2);
思路:【1:任何行列都相等的的二维数组,都有两条线和;
2:左对角线之和判断条件是:行列加和绝对等于当前数组的最大长度减一;
3:右对角线之和判断条件是:行列都相等】
五:将数组进行行列互换【矩阵互换】
#include &stdio.h&
void main(){
int a[3][3]={{23,46,11},{99,45,82},{72,90,21}};
int b[3][3];
printf("输出的标准格式如下:\n");
for(i=0;i&3;i++){
&&&&&for(j=0;j&3;j++){
&&&&&printf("%d
",a[i][j]);
printf("\n");
for(i=0;i&3;i++){
for(j=0;j&3;j++){
b[i][j]=a[j][i];
printf("\n行列互换后:\n");
for(i=0;i&3;i++){
for(j=0;j&3;j++){
&&& printf("%d
",b[i][j]);
printf("\n");
思路:【1:必须要申请一个数组,要求长度不变,行列是互换的;
2:在遍历原数组的时候,只要保证行列的循环变量颠倒位置即可】
六:将该数组的进行从小到大排序,每行,每列从小到大排序
#include &stdio.h&
void main(){
int a[3][3]={{23,46,11},{99,45,82},{72,90,21}};
int i,j,m,n;
printf("二维数组的标准形式如下:\n");
for ( i = 0; i & 3; i++) {
&&&&&&&&&&&&for
( j = 0; j & 3; j++) {
&&&&&&&&&&&&&&&
printf("%d ",a[i][j]);
&&&&&&&&&&&&}
&&&&&&&&&&&&
printf("\n");
printf("\n");
for ( i = 0; i & 3; i++) {
&&& for ( j = 0;
j & 3; j++) {
for (int m = 0; m & 3; m++) {
&&&&&&&&&&&&for
(int n = 0; n &3; n++) {
&&&&&&&&&&&&&&&
if (a[i][j] & a[m][n]) {
&&&&&&&&&&&&&&&&&&&&int
t = a[i][j];
&&&&&&&&&&&&&&&&&&&&a[i][j]
= a[m][n];
&&&&&&&&&&&&&&&&&&&&a[m][n]
&&&&&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&&&&&&}
&&&&&&&&&&&&&&&
&&&&&&&&&&&&}
printf("二维数组从小到大排序是:\n");
&&&&&&&&for
( i = 0; i & 3; i++) {
&&&&&&&&&&&&for
( j = 0; j & 3; j++) {
&&&&&&&&&&&&&&&
printf("%d ",a[i][j]);
&&&&&&&&&&&&}
&&&&&&&&&&&&printf("\n");
#include &stdio.h&
void main(){
int a[3][3]={{23,46,11},{99,45,82},{72,90,21}};
int i,j,k;
printf("二维数组的标准形式如下:\n");
for ( i = 0; i & 3; i++) {
&&& for ( j = 0;
j & 3; j++) {
&&&&&&&&printf("%d
",a[i][j]);
&&&&&&&&&&&&}
&&&&&&&&printf("\n");
printf("\n");
for(k=0;k&3;k++){
&&&for(i=0;i&2;i++){
for(j=0;j&2-i;j++){
if(a[k][j]&a[k][j+1]){
t=a[k][j];
a[k][j]=a[k][j+1];
a[k][j+1]=t;
printf("二维数组每一行从小到大排序是:\n");
&&& for ( i = 0;
i & 3; i++) {
for ( j = 0; j & 3; j++) {
&&&&&&&&&&&&printf("%d
",a[i][j]);
&&&&&&&&&&&&}
&&&&&&&&&&&&printf("\n");
只对没行列排序:
思路:【1:将每一行,列都看作是一维数组,利用一维数组排序的规则进行排序即可;
2:遍历的总次数是:最大长度减一;
3:遍历的趟数是总数减去次数的循环变量即可;】
对整个二维数组:
#include &stdio.h&
void main(){
int a[3][3]={{23,46,11},{99,45,82},{72,90,21}};
int i,j,m;
//输出标准形式
printf("标准形式如下:\n");
for(i=0;i&3;i++){
for(j=0;j&3;j++){
&&& printf("%d
",a[i][j]);
printf("\n");
//按照一维数组模式进行存储值
printf("\n一维数组排序后:\n");
for(i=0;i&3;i++){&&&&&&
m=i*3;&&&&&&&&&&&&&&//m=0&&&m=3&&&m=6
for(j=0;j&3;j++){&&&&&&&&
b[m]=a[i][j];&&&&&&
[1]&&[2]&&[3]&&[4]&&&[5]&&[6]&&[7]&&&[8]
m++;&&&&&&&&&&&&&&&
//1&&&&&2&&&
5&&&&&6&&&
7&&&8&&&&&9
printf("%d&&&",m);
printf("\n");
//对一维数组排序
for(i=0;i&8;i++){
for(j=0;j&8-i;j++){
&&&&&&&&if(b[j]&b[j+1]){
&&&&&&&&&&&&int
&&&&&&&&&&&&b[j]=b[j+1];
&&&&&&&&&&&&b[j+1]=t;
//按照二维数组形式输出
for(m=0;m&9;m++){
&&& printf("%d
if((m+1)%3==0){
printf("\n");
思路:【1:将二维数组转为为一维数组,对一维数组进行排序;再按照二维数组格式进行输出;
2:在里面一层循环的外面要进行重新设值。】
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。}

我要回帖

更多关于 c语言输出二维数组 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信