您的位置:

c语言二维数组for循环,c语言二维数组循环赋值

本文目录一览:

C语言谁能帮我写个for循环给二维数组赋值

如图

注释非常完整,代码请在网页端查看(哪有用手机看代码的,不好看)

#includestdio.h

#define N 25 //生成的矩阵的阶数(行、列数),注意!必须为奇数

void main()

{

int Scorecard[N][N];

if(N%2==1) //N必须为奇数

{

int num=8; //要赋值的数字 初始为矩阵正中心的数字(提问者设的是8)

int max=N/2,min=max; //大循环中 从中心向外一圈圈赋值的 最大(max)、最小(min)行数。

Scorecard[max][max]=num; //先赋值中心。提示:数组下标为(整形)25/2=12则为第13行(数组下标是从0开始数的)。

do{ //大循环:一圈圈赋值,扩大圈圈

int i; //用于小循环的临时变量

if(num0)num--; //num逐圈减小,直到为0

max++; min--; //行列的最大最小值调整(扩大圈圈)

for(i=min ; i=max ;i++) //小循环 两行、两列同时赋值

{

Scorecard[min][i]=num; //第 min行 赋值

Scorecard[max][i]=num; //第 max行 赋值

Scorecard[i][min]=num; //第 min列 赋值

Scorecard[i][max]=num; //第 max列 赋值

} //圈圈的四个角会重复赋值两次,方便理解,当然可以改进到无重复赋值。

}while(min0); //当min减少到0时,说明第一行和最后一行都赋值完毕了

}

//打印验证结果

{int i,j; //用于打印遍历的行i列j

for(i=0; iN ; i++)

{

for(j=0; jN ; j++) printf("%d ",Scorecard[i][j]); //打印数字

printf("\n"); //打印完一行要换行

}

}

}

C语言中,对二维数组所有元素遍历一次,有几种循环方式?为什么?

1、行优先和列优先

有三种循环方式:FOR循环、DO-WHILE循环 、WHILE循环,字符串之间的比较,它有专门的字符串比较函数:strcmp函数。

2、不能用运算关系符

扩展资料:

二维数组A[m][n],这是一个m行,n列的二维数组。设a[p][q]为A的第一个元素,即二维数组的行下标从p到m+p,列下标从q到n+q,按“行优先顺序”存储时则元素a[i][j]的地址计算为:

LOC(a[i][j]) = LOC(a[p][q]) + ((i − p) * n + (j − q)) * t

按“列优先顺序”存储时,地址计算为:

LOC(a[i][j]) = LOC(a[p][q]) + ((j − q) * m + (i − p)) * t

存放该数组至少需要的单元数为(m-p+1) * (n-q+1) * t 个字节。

参考资料来源:

百度百科-二维数组

C语言怎么用for循环为二维数组赋值?请举个例子。

给m*n二维数组赋值1~m*n

for(i=0;im;i++)

for(j=0;jn;j++)

a[i][j]=i*m+j;

在c语言中二维数组里面的for循环嵌套中如何跳出循环?(最外面的for循环)

方案1:使用goto

for ( ; ; )

{

   for ( ; ; )

   {

       goto loop;

   }

}

loop:

   //...................

方案2:使用flag标识,实现多级跳

for ( ; ; )

{

   for ( ; ; )

   {

       if (flag == 0)

           break;

   }

   

   if (flag == 0)

       break;

}

C语言二维数组用for循环初始化无法访问最后一列的元素

改成下面的程序试一下:

#include<stdio.h

#define MAXV 5

main()

{

int edges[MAXV][MAXV];

int m,n;

for(m=0;m<MAXV;m++)

for(n=0;n<MAXV;n++)

edges[m][n]=0;

}

有什么问题请留言。