Ⅰ c语言二维数组输出不分行
int a[3][3]={1,3,5,7,9,2,4,6,8};
for(i=0;i<=2;i++)
{
for(j=0;j<=2;j++)
{
printf(“%d",a[i][j]);
}
printf("\n");
/*这个转行要放在第一个for之中,第二个for之后,表示第一行自行显示完后,输入转行,进行第二行循环*/
}
Ⅱ c语言中 二维数组要怎么输入怎么换行啊
scanf那行里的a[i][j]要写成&a[i][j],输入就正常的输入就行了,其实scanf读入数字的时候,数字可以用空格、回车或者TAB间隔,比如说一个2x2的数组,你输入
10 11
12 13
或者输入10 11 12 13都是可以的。
Ⅲ C语言二维数组矩阵法。
C语言最萌了!萌教至高无上!
如果你学到C++了,看这个http://..com/question/329120220.html?an=0&si=6
如果没有,恩哼
1. 先看二维数组的本质http://ke..com/view/1188148.htm
2. 然后看二维数组做参数——其实二维数组做参数的时候一点都不萌http://..com/question/198430999.html?an=0&si=7
3. 用指针伪装的二维数组的传递。如果只让用C,我还是觉得指针最萌了
#include <stdio.h>
#include <stdlib.h>
void transpose(int *matrix, int row, int column)
{
int i,j;
int* temp;
temp=(int*)malloc(row*column*sizeof(int));
for(i=0;i<row;i++)
{
for(j=0;j<column;j++)
{
*(temp+row*j+i)=*(matrix+column*i+j);
}
}
for(i=0;i<row*column;i++)
{
*(matrix+i)=*(temp+i);
}
free(temp);
}
void main(void)
{
int i,j;
int matrix[3][2]={{1,2},{3,4},{5,6}};
transpose(&matrix[0][0],3,2);
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
{
printf("%d ",*(&matrix[0][0]+3*i+j));
}
printf("\n");
}
system("pause");
}
最后一行的system("pause"),是系统调用的暂停,如果你的编译器不够萌,不能够支持,就去掉吧。
每一块砖头都刻着萌字——by砖头88
Ⅳ c语言数组问题
我没执行,不过思路很清晰,应该没什么错误。
我就一个问题,比如同时出现2个以上的最小值,比如说你输入的数字里面3最小,但是里面有2个以上的数字3,这情况想过吗?
Ⅳ C语言 数组中换行
你这可这样改
for (i=0;i<2;i++)
{
for (j=0;j<3;j++)
{
printf("%5d",a[i][j]);
b[j][i]=a[i][j];
}
printf("\n");//将换行放到这里
}
你现在的程序相当于这个
for (i=0;i<2;i++)
{
printf("\n");//将换行放到这里
for (j=0;j<3;j++)
{
printf("%5d",a[i][j]);
b[j][i]=a[i][j];
}
}
因为j为0时j%3为0满足条件,输出一个换行
Ⅵ C语言中,scanf语句输入数组时可以分行吗
#include<iostream>
#include<string>
usingnamespacestd;
intmain()
{
inti,j,a[4][4];
//for(i=0;i<=3;i++)没看出这个循环是什么意思
for(i=0;i<=3;i++)//多重循环,不能都用一个变量
{
for(j=0;j<=3;j++)
{
scanf("%d",&a[i][j]);
}
//printf("
");
}
for(i=0;i<4;i++)
printf("%d%d%d%d
",a[i][0],a[i][1],a[i][2],a[i][3]);
return0;
}
看图,格式化输入,是根据可识别格式化字符(%d)和输入时不符合规则的分隔符(如空格 回车)来识别的,所以你的输入可以比较随意。
Ⅶ c语言,想输出任意一个矩阵(行列可以自己设计的),要怎么做啊,我最头痛的就是二维数组不能空着啊。。
不可以直接定义空数组,
可以试试一下方法
可以通过malloc()函数动态分配,示例:
//---------------------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
typedef int datatype;
datatype **na(const int m,const int n) /*创建一个m行n列的datatype类型数组,返回首地址,如果创建失败则返回NULL*/
{
int i;
datatype **a=(datatype**)malloc(sizeof(datatype *)*m);
if (!a) {
return NULL;
}
else
for (i = 0; i<m; i++) {
a[i]=(datatype*)malloc(sizeof(datatype)*n);
if (!a[i]) {
return NULL;
}
}
return a;
}
void dela(datatype **a,const int m) /*删除用na()函数创建的并且有m行元素的二维数组a*/
{
int i;
for (i = 0; i<m; i++)
free(a[i]);
free(a);
}
int main(void)
{
datatype **dta=na(3,2); /*创建一个3行2列的datatype数组*/
int i,j;
if (!dta) { /*如果创建失败,则输出错误信息并结束程序*/
fprintf(stderr,"MEMORY ERROR\n");
return -1;
}
else
{
for (i=0; i<3; i++) { /*使用刚才创建的二维数组*/
for (j=0; j<2; j++) {
dta[i][j]=i*j;
printf("%d ",dta[i][j]);
}
putchar('\n');
}
}
dela(dta,3); /*动态创建的数组要手动删除*/
return 0;
}
//---------------------------------------------------------------------------
Ⅷ C语言二维数组换行问题
把putchar(10)去掉,把上面一句printf和下面一句printf用{}括起来就行了。
Ⅸ C语言中,程序开始给数组赋值时,一行写不下,换行怎么办直接回车换行有什么影响吗
可以换行,
换行在语法上相当于一个空格。
所以,不能把关键字拆在两行中