本文目錄一覽:
C語言二維數組解題,新手求教
如果確定是連續的數,則不用管原來什麼順序了,直接循環從小到大填到數組裡就好。
如果不是連續的數,則按普通的一維排序算法,在操作時把1維轉為2維就好。
1維轉2維:
i是1維序號,(x,y)是2維序號, i,x,y都是從0開始的。由i算出(x,y)。
y=i/5;
x=i%5;
C語言中如何直接輸出一個二維數組
c語言中直接輸出一個二維數組是用數組來訪問輸出的,例子:
#includestdio.h
#define M 4
#define N 3
void main()
{
int a[M][N],i,j;
for(i=0;iM;i++)
for(j=0;jN;j++)
a[i][j]=3*i+j;
for(i=0;iM;i++)
{ for(j=0;jN;j++)
printf(“%d\t”,a[i][j]);//直接用數組來訪問
printf(“\n”);
}
}
除了可以直接訪問,也可以用指針來訪問,用指針指向該數組,便可進行對數組的讀寫操作。
運行結果圖:
關於C語言中的二維數組
已測試
#includestdio.h
void Seg(char words[], char wArray[][100] );
void main()
{
char s[200],array[2][100];
gets(s);
Seg(s,array);
printf(“%s\n%s\n”,array[0][0],array[1][0]);
}
void Seg(char words[], char wArray[][100] )
{
int i,j;
for(i=0;words[i]!=’ ‘;i++)
wArray[0][i]=words[i];
wArray[0][i]=’\0′;
for(i++,j=0;words[i]!=’\0′;i++,j++)
wArray[1][j]=words[i];
wArray[1][j]=’\0′;
}
C語言寫程序二維數組?
註:此解法如果個子最高的人不止一個,那麼只會輸出第一個個子最高的人的站位坐標。可以稍作修改,即找到最大值後,遍曆數組每個元素,只要是等於最大值的就將其站位坐標輸出(數組下標從0開始,實際站位坐標要加1)
修改後代碼如下:
c語言二維數組
int a[5][6]前10個元素在存儲空間數組排列方式為:
a[0][0],a[0][1],a[0][2],a[0][3],a[0][4],a[0][5],a[0][6],a[1[0],a[1[1],a[1[2],
二維數組可以看成一維數組:轉換成一維數組a[]。。。如果是a[10]實際上是位置的第11個元素即a[1[3]。。但a[10]是第11個元素了。
如果題目就是所寫的那樣,答案是a[1[3],就是題目出題不清,現在教育同社會現象是一樣的,不能完全相信的。很多奇葩題目和答案不是什麼新鮮事。
如果題目說的是元素下標,還有些道理。
C語言編程 二維數組
1 方法:通過嵌套的兩個for循環來遍歷二維數組
2 代碼
#includestdio.h
void Find(int num, int arr[3][2], int row, int col){
for (int i = 0; i row; i++){
for (int j = 0; j col; j++){
if (arr[i][j] == num){
printf(“找到了,行列下標為(%d,%d)\n”, i, j);
return;
}
}
}
puts(“沒找到”);
}
int main(){
int arr[3][2] = { { 1, 2 }, { 3, 4 }, { 5, 6 } };
int num;
scanf(“%d”, num);
Find(num, arr, 3, 2);
getchar();
getchar();
return 0;
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/254334.html