本文目录一览:
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/n/254334.html