本文目录一览:
- 1、C语言谁能帮我写个for循环给二维数组赋值
- 2、C语言中,对二维数组所有元素遍历一次,有几种循环方式?为什么?
- 3、C语言怎么用for循环为二维数组赋值?请举个例子。
- 4、在c语言中二维数组里面的for循环嵌套中如何跳出循环?(最外面的for循环)
- 5、C语言二维数组用for循环初始化无法访问最后一列的元素
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;
}
有什么问题请留言。