二维数组输出,关于java中二维数组输出的问题
二维数组输出,关于java中二维数组输出的问题详细介绍
本文目录一览: C语言中如何直接输出一个二维数组
#include
void main()
{ int a[2][3]={{4,2,5},{2,6,4}};
int i,j;
for(i=0;i<2;i++)
{ for(j=0;j<3;j++)
printf("%d",a[i][j]);
}
数组是从下标0开始储存的,这样就可以输出了
#include
void main()
{ int a[2][3]={{4,2,5},{2,6,4}};
int i,j;
for(i=0;i<2;i++)
{ for(j=0;j<3;j++)
printf("%d",a[i][j]);
}
行和列的下标都是从0开始的
#include
void main()
{
int str[3][2]={1,2,3,4,5,6},i,j;
for(i=0;i<3;i++)
{ for(j=0;j<2;j++)
printf("%d",str[i][j]);
printf("\n");
}
}
c语言中直接输出一个二维数组是用数组来访问输出的,例子:
#include
#define M 4#define N 3void main(){ int a[M][N],i,j; for(i=0;i
<m;i++) for(j="0;j<N;j++)" a[i][j]="3*i+j;" for(i="0;i<M;i++)" { printf("%d\t",a[i][j]); 直接用数组来访问 printf("\n"); }}除了可以直接访问,也可以用指针来访问,用指针指向该数组,便可进行对数组的读写操作。
运行结果图:
急急!!!如何用c语言输入和输出一个二维数组??
c语言的输入输出可用标准库里面的输入输出函数,即scanf和printf。
输入输出二维数组的例子:
#include
int main()
{
int M = 5 , N = 5;
int array[M][N]; //定义一个5x5的int数组
printf("输入:");
for(int i = 0 ; i < M ; i++){
for(int j = 0 ; j < N ; j++){
scanf("%d",&array[i][j]);
}
}
printf("输出:");
for(int i = 0 ; i < M ; i++){
for(int j = 0 ; j < N ; j++){
printf("%d ",array[i][j]);
}
}
return 0;
}
扩展内容:
二维数组:
二维数组本质上是以数组作为数组元素的数组,即“数组的数组”,类型说明符 数组名[常量表达式][常量表达式]。二维数组又称为矩阵,行列数相等的矩阵称为方阵。对称矩阵a[i][j] = a[j][i],对角矩阵:n阶方阵主对角线外都是零元素。
二维数组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 个字节。
请看代码:
#include
#include
int main()
{
int **p; //定义二维指针。
int m, n;//行数和列数。
int i,j;
scanf("%d%d", &m, &n); //输入行数和列数。
if(m <= 0 || n <= 0) return -1; //行数或列数非法。
p = (int **) malloc(sizeof(int *) *m);//申请一组一维指针空间。
for(i = 0; i < m; i ++)
p[i] = (int *)malloc(sizeof(int) * n); //对于每个一维指针,申请一行数据的空间。
for(i = 0; i < m; i ++)
for(j = 0; j < n; j ++)
scanf("%d",&p[i][j]);//输入第i行第j列的数据。其中&p[i][j]也可以写作p[i]+j或者是 *(p+i) + j. 功能相同。
printf("输入的数组为%d行%d列:\n", m, n);
for(i = 0; i < m; i ++)
{
for(j = 0; j < n; j ++)//这个循环可以输出一行元素。
printf("%d ", p[i][j]);//输出i行j列的元素。
printf("\n");//每行输入结束加换行符。
}
//释放内存
for(i = 0; i < m; i ++)
free(p[i]);
free(p);
return 0;
}
拓展资料:
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言订定了一套完整的国际标准语法,称为ANSI C,作为C语言最初的标准。C语言之所以命名为C,是因为 C语言源自Ken Thompson发明的B语言,而 B语言则源自BCPL语言。
#include
void main()
{
int i,j,a[2][3];
printf("请输入数组数据:");
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
{
scanf("%d",&a[i][j]);
}
}
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
{
printf("%d",a[i][j]);
printf("\n");
}
}
}
拓展资料
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。
C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。并定于在微软职业开发者论坛(PDC)上登台亮相。C#是微软公司研究员Anders Hejlsberg的最新成果。C#看起来与Java有着惊人的相似;它包括了诸如单一继承、接口、与Java几乎同样的语法和编译成中间代码再运行的过程。但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司 .NET windows网络框架的主角。
#denfine N 4
#define M 3
int main(void)
{
int array[M][N],**temp;//一个3*4的数组
temp=array;
for(int i=0;i
<m;++ i)
for(int j=0;j
<n;++j)
scanf("%d",array++);
for(int i=0;i
<m;i++)
for(int j=0;j
<n;j++)
printf("%d",a[i][j]);
return 0;
}
#include
void print(int arry[3][3])
{
int i, j;
printf ("The arry is:\n");
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
{
if (arry[i][j] > 8 || arry[i][j] < 0)
{
printf("\nError,please input the number between 0 and 8!");
exit(1);
}
else
{
printf ("%3d",arry[i][j]);
}
}
printf ("\n");
}
printf ("\n");
}
参考资料:百度百科-网页链接
扩展资料:
C语言是一门通用计算机编程语言,广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的美国国家标准语法,称为ANSI C,作为C语言最初的标准。[1] 目前2011年12月8日,国际标准化组织(ISO)和国际电工委员会(IEC)发布的C11标准是C语言的第三个官方标准,也是C语言的最新标准,该标准更好的支持了汉字函数名和汉字标识符,一定程度上实现了汉字编程。
C语言是一门面向过程的计算机编程语言,与C++,Java等面向对象的编程语言有所不同。
其编译器主要有Clang、GCC、WIN-TC、SUBLIME、MSVC、Turbo C等。
二位数组的定义需要自己定义数组量,我这里定义两组,每组三个元素,采用循环嵌套的方式输入以及输出,例子如下。
#include
using namespace std;
int main()
{
int s[2][3];
for (int i = 0; i <= 1; i++)
{
cout << "请输入第"<
<i+1<<"组数据"<<endl;
for (int j = 0; j <= 2; j++)
{
cin >> s[i][j];
}
cout << endl;
}
for (int i = 0; i <= 1; i++)
{
cout << "第" << i + 1 << "组数据为" << endl;
for (int j = 0; j <= 2; j++)
{
cout<< s[i][j]<<"\t";
}
cout << endl;
}
}
效果如图;
#include
#include
int main()
{
int a[2][2];
int i,j;
for (i=0;i<2;i++)
{
for (j=0;j<2;j++)
{
scanf("%d ",&a[i][j]);
}
}
for(i=0;i<2;i++)
for(j=0;j<2;j++)
printf("%d",a[i][j]);
return 0;
}
运行成功
</i+1<<"组数据"<<endl;
</n;j++)
</m;i++)
</n;++j)
二维数组如何直接输出
看了半天才大概明白了你的意思。加个换行符就有点二维数字的样子了。
#include
int main()
{
int i,j,n,a[100][100];
while(scanf("%d",&n)==1)
{
for(i=0;i
<n;i++)
{
for(j=0;j
<n;j++)
{
scanf("%d",&a[i][j]);
}
}
for(i=0;i
<n;i++)
{
for(j=0;j
<n;j++)
{
printf("%d ",a[i][j]);
}
printf("\n"); //修改了这里
}
}
return 0;
}
PHP输入二维数组,方法如下:
1、定义一个二维数组
$new =array("姓名"=>array("name","sunwei"),"地址"=>array("dz"),"编号"=>array("id"));2、PHP代码遍历并输出该二维数组
while ( list( $key, $val ) = each( $new ) ) { echo "$key => $val"."
"; while ( list( $key1, $val1 ) = each( $val ) ) { echo "$key1 => $val1"."
"; }}
</n;j++)
</n;i++)
</n;j++)
</n;i++)
二维字符数组如何输入和输出
原理:二维字符数组相当于一个一维数组(每个元素就是个字符串)。
输出二维字符数组,等于输出一个一维的字符串数组。
实现代码如下:
#include
void main()
{
int i;
char name[2][25];
for(i=0;i<2;i++)
{
scanf("%s",&name[i]);
}
printf("输出:\n");
for(i=0;i<2;i++)
{
printf("%s\n",name[i]);
}
}
你的输入、输出语句都是错的,完成程序修改如下:
main()
{
char a[2][15];
int i,j;
for(i=0;i<2;i++) scanf("%s",a[i]);
for(i=0;i<2;i++) printf("%s",a[i]);
}
多个字符串的输入输出
#include
int main()
{
char a[3][20];
char *p;
int i;
p=a[0];//a[0]为列指针,p指向0行0列元素,p=a[0]+j指向0行j列元素。
for (i=0;i<3;i++)gets(a[i]);
// for (i=0;i<3;i++)printf("%s\n",a[i]);
for (i=0;i<3;i++)printf("%s\n",p+i*20); //指针寻址
;//第二个字符串开始的地址,应该是a[0][0]后移20个字符的地方。p是指向字符的指针
}
数组名表示列指针*(a+i)等价于a[i]列指针
#include
int main()
{
char a[3][20];
int i;
for (i=0;i<3;i++)gets(*(a+i));//列指针*(a+i)和a[i]等价
// for (i=0;i<3;i++)printf("%s\n",*(a+i));
for (i=0;i<3;i++)printf("%s\n",*(a+i));
}
个人看法 如果是赋给a[i][j]的话应该是%c吧
这样:
#include
int main()
{
char a[3][20];
char *p;
int i;
p=a[0];//a[0]为列指针,p指向0行0列元素,p=a[0]+j指向0行j列元素。
for (i=0;i<3;i++)gets(a[i]);
// for (i=0;i<3;i++)printf("%s\n",a[i]);
for (i=0;i<3;i++)printf("%s\n",p+i*20); //指针寻址
;//第二个字符串开始的地址,应该是a[0][0]后移20个字符的地方。p是指向字符的指针
}
数组名表示列指针*(a+i)等价于a[i]列指针
#include
int main()
{
char a[3][20];
int i;
for (i=0;i<3;i++)gets(*(a+i));//列指针*(a+i)和a[i]等价
// for (i=0;i<3;i++)printf("%s\n",*(a+i));
for (i=0;i<3;i++)printf("%s\n",*(a+i));
}
扩展资料:注意事项
对于二维数组的输入,一般是一行一行的输入,当然也可以一个个来,但最好的还是一行一行的输入。
所以一行一行的输入:
for(int i= 0;i < N;i++)
scanf("%s",perNum[i]);
对于输入,单个输入用的是%c,而一行来输入就是%s。
而有一个情况,此时输入每行都是要存18个数字,所以想法就是设二维数组的时候,列数就是18。
char perNum[100][18];
那这个时候输入输出代码:
char perNum[100][18];
int N;
scanf("%d",&N);
for(int i= 0;i < N;i++)
scanf("%s",perNum[i]);
for(int i= 0;i < N;i++)
printf("%s\n",perNum[i]);
其中,第一行的2,是说明这个二维数组的行数。
这个时候发现,输入没问题,但输出的时候,按理来说,应该是2行18列。可是发现第一行的输出把第二行的输入也一起输出了。
这个问题在于,输出的时候,是根据\0,即换行符号判断是否要换行输出。但由于设定的列数才18,刚刚好只把输入给存完,这样子就没有地方存换行符(\0)。
所以这里的改进就是,把二维数组的列数至少多一位,用于存放换行符。
所以代码改为:
char perNum[100][19];//比18多一位,存放换行符
int N;
scanf("%d",&N);
for(int i= 0;i < N;i++)
scanf("%s",perNum[i]);
for(int i= 0;i < N;i++)
printf("%s\n",perNum[i]);
C语言编程 二维数组 输出一个23的矩阵
#include
void main()
{
int a[2][3];
int i,j;
printf("输入一个2*3整型数组\n");
for(i=0;i<2;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
printf("\n输出一个2*3整型数组\n");
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
printf("%d ",a[i][j]);
printf("\n");
}
}
运行示例:
输入一个2*3整型数组
1 2 3
4 5 6
输出一个2*3整型数组
1 2 3
4 5 6
Press any key to continue
1 方法:通过嵌套的两个for循环来遍历二维数组
2 代码
#include
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;
}
#include
void main()
{
int a[2][3];
int i,j;
printf("输入一个2*3整型数组\n");
for(i=0;i<2;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);printf("\n输出一个2*3整型数组\n");
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
printf("%d ",a[i][j]);
printf("\n");
}
}
扩展资料:注意事项
c语言的输入输出可用标准库里面的输入输出函数,即scanf和printf。
输入输出二维数组的例子:
#include
int main()
{
int M = 5 , N = 5;
int array[M][N]; //定义一个5x5的int数组
printf("输入:");
for(int i = 0 ; i < M ; i++){
for(int j = 0 ; j < N ; j++){
scanf("%d",&array[i][j]);
}
}
printf("输出:");
for(int i = 0 ; i < M ; i++){
for(int j = 0 ; j < N ; j++){
printf("%d ",array[i][j]);
}
}
return 0;
}
C语言中的二维数组的赋值,输入输出怎么用
二维数组的赋值与输出,都需要对各个元素进行逐个输出,可以用双重for循环输出全部元素。
举例如下:
int a[2][4];int i;// 对二维数组a进行赋值for(i=0; i<2; i++) // 行 for(j=0; j<4; j++) // 列 a[i][j] = i+j; // 对二维数组a进行赋值为行号与列号之和 // 输出二维数组a的各元素值for(i=0; i<2; i++) // 行{ for(j=0; j<4; j++) // 列 printf("%d ", a[i][j]; // 输出二维数组a的各元素值 printf("\n"); // 每输出一行就回车换行}
只能逐个去输入和输出~~~没有捷径的,一个采用循环语句去操作,以减少代码的体积;
如楼上给出的程序:
main()
{ int i,j,a[10][10];
for(i=0;i<10;i++)
for(j=0;j<10;j++)
scanf("%d",&a[i][j]);
for(i=0;i<10;i++)
{ for(j=0;j<10;j++)
printf("%d ",a[i][j]);
printf("\n"); }
}
用下标的方法逐个进行输入和输出操作;
main()
{ int i,j,a[10][10];
for(i=0;i<10;i++)
for(j=0;j<10;j++)
scanf("%d",&a[i][j]);
for(i=0;i<10;i++)
{ for(j=0;j<10;j++)
printf("%d ",a[i][j]);
printf("\n"); }
}
代码,实现先输入二维数组的行数m和列数n,并再输入m*n个整型数据存到动态二维数组中。最后输出所有二维数组的元素值。
int main()
{
int**p;//定义二维指针。
int m,n;//行数和列数。
int i,j;
scanf("%d%d",&m,&n);//输入行数和列数。
if(m<=0||n<=0)return-1;//行数或列数非法。
p=(int**)malloc(sizeof(int*)*m);//申请一组一维指针空间。
for(i=0;i
<m;i++)
p
=(int*)malloc(sizeof(int)*n);//对于每个一维指针,申请一行数据的空间。
for(i=0;i
<m;i++)
for(j=0;j
<n;j++)
scanf("%d",&p
[j]);//输入第i行第j列的数据。其中&p[j]也可以写作p+j或者是*(p+i)+j.功能相同。
printf("输入的数组为%d行%d列:\n",m,n);
for(i=0;i
<m;i++)
{
for(j=0;j
<n;j++) 这个循环可以输出一行元素。
printf("%d",p
[j]);//输出i行j列的元素。
printf("\n");//每行输入结束加换行符。
}
//释放内存
for(i=0;i
<m;i++)
free(p
);
free(p);
return 0;
}
扩展资料:函数:free
功能:与malloc()函数配对使用,释放malloc函数申请的动态内存。(另:对于free(p)这句语句,如果p是NULL指针,那么free对p无论操作多少次都不会出问题。如果p不是NULL指针,那么free对p连续操作两次就会导致程序运行错误。)
用法;void free(void*ptr);
程序例:
C/C++代码如下:
#include
#include
#include
//or#include
int main(void)
{
char*str;
/*allocate memory for string*/
str=(char*)malloc(10);
/*copy"Hello"to string*/
strcpy(str,"Hello");
/*display string*/
printf("String is%s\n",str);
/*free memory*/
free(str);
str=NULL;
return 0;
}
</m;i++)
</m;i++)
</n;j++)
</m;i++)
</m;i++)
c语言:怎样输出一个四行四列的二维数组?
int a[4][4];这就是一个二维数组,你按照位置将数字放进去就好,注意数组都是从0开始就好,类似根据坐标放数据
用两层for。
比如a[4][4];
for(int i=0;i<4;i++)
for(int q=0;q<4;q++)
printf("%d ",a[i][q]);
按规律打印m行n列的数字:
#include
int main(){ int m,n,i,j,k; k=1; printf("请输入m:"); scanf("%d",&m); printf("请输入n:"); scanf("%d",&n); int a[m][n]; for(i=0;i
<n;i++) for(j="0;j<n;j++)" { a[j][i]="k;" k++; } for(i="0;i<m;i++)" printf("%d",a[i][j]); printf("\n"); return 0;}输出一个如图所示的四行四列的二维数组:
#include
int main(){ int i,j; for(i=1;i<4;i++) { for(j=0;j<4;j++) printf("%d",4*j+i); printf("\n") }}
怎么定义一个二维数组,并输出结果
/*定义一个2×3的整型数组a,并对其元素逐个赋值,最后依次输出每个元素参考代码如下:*/#include
int main(){ int i,j,a[2][3];//定义整型数组 for(i=0;i<2;i++)//输入数组,数组的下标从0开始 { for(j=0;j<3;j++) scanf("%d",&a[i][j]); } for(i=0;i<2;i++) { for(j=0;j<3;j++) printf("%d ",a[i][j]);//输出数组 printf("\n");//每一行结束输出回车 } return 0;}
用什么语言写?C的话就简单了,大概是
#include
Int a[5][5]
main()
{int i ,j;
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
{printf("shuzu :\n",a[i][j]);
}
}
}
关于java中二维数组输出的问题
所谓的二维数组其实是数组的数组(每个一维数组的长度可以不同,所以二维数组也称为锯齿数组)。假设有:
int[][] arr={new int [1] {1},new int [2] {2,3},new int [3] {4,5,6}};
则二维数组arr.length等于3,表示它由3个一维数组组成,即3行。
arr[0].length表示第1个一维数组的长度1,即1列。
arr[1].length表示第2个一维数组的长度2,即2列。
arr[2].length表示第3个一维数组的长度3,即3列。
所以,这个二维数组看起来像这个样子:
1
2,3
4,5,6
它每一行的长度都不同。
对于你的二维数组,score.length表示行数4,即二维数组由4个一维数组组成。
而score[i].length、score[j].length表示第i+1行、第j+1行的列数,由于score是列数等长的二维数组,它们都等于3。score.length与score[i].length和score[j].length,3者表示不同的含义,不可混用(尽管它们的值可能相同)。