本文目錄一覽:
- 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;
}
有什麼問題請留言。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/289447.html