mdsk.net
当前位置:首页 >> C语言二维数组输入 >>

C语言二维数组输入

2维数组可以按一维排列 a[j][i] 对应 a[j*n+i]#include main() { int i,j,n,m; int *a, *b; static int v; scanf("%d %d",&n,&m); a = (int*)malloc(sizeof(int)*n*m); b = (int*)malloc(sizeof(int)*n*m); for (j=0;jfor (i=0;i{ scanf("%d",&v); a[j*m+i]=v; b[i*n+j]=v;} for (j=0;jfor (j=0;j}

其实并不存在真正的“二维”,只不过是C编译器自动的将它 一行一行的保存成了一维信息.所以,二维数组的输入只要用双重循环即可,比如:int a[11][11]; for(int i=0; i<10; i++){ for(int j=0; j<10; j++){ scanf("%d",&a[i][j]); } } 其实 int a[3][3] 可以这样初始化:int a[3][3] = {0,1,2,3,4,5,6,7,8}; 编译器会自动的将线性信息写入二维数组中.

for(i=0;i

使用scanf函数循环输入 for(i = 0; i < 7; ++i){ for (j = 0; j < 5; ++j){ scanf ("%d", &arr[i][j]); } }

#include <stdio.h>#define M 256#define N 256 void main() { int a[M][N],i,j; printf("Input data:\n"); for(i=0;i<M;i++) for(j=0;j<N;j++) scanf("%d",&a[i][j]); printf("%d\n",a[i][j]); }

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 #include<stdio.h> int main() { char ch[55][105] = {0}; int m,n,i,j; scanf("%d %d",&n,&m); // 输入的时复候注意空格隔开制 getchar(); // 获取bai输入两个数字之后输du入的回车,否则

main(){ int i,j,a[10][10]; for(i=0;i

scanf("%c %c %c %c",&a[i][0],&a[i][1],&a[i][2],&a[i][3]);改成 scanf("%c%c%c%c",&a[i][0],&a[i][1],&a[i][2],&a[i][3]); 试试看,可能就是你的这几个空格捣乱for(i=0;i<3;i++)/*这里是i<4吧*/ for(j=0;j<3;j++)

scanf("%d", &a[n][m]);

输出的时候用%c 看错了 第一个for循环变量使用错了,过界了

krfs.net | wlbk.net | btcq.net | ncry.net | ddng.net | 网站首页 | 网站地图
All rights reserved Powered by www.mdsk.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com