1.c语言二维数组怎么表示
使用的时候是循环不到a[3][2]的,三行两列的整型数组最多可以访问到a[2][1],因为数组下标是从0开始的,切记不要越界哦~
c语言 二维数组的初始化
二维数组的初始化 二维数组初始化也是在类型说明时给各下标变量赋以初值。 二维数组可按行分段赋值,也可按行连续赋值。 例如对数组a[5][3]:
1.按行分段赋值可写为static int a[5][3]={ {80,75,92},{61,65,71},{59,63,70},{85,87,90},{76,77,85} };
2.按行连续赋值可写为static int a[5][3]={ 80,75,92,61,65,71,59,63,70,85,87,90,76,77,85 };
这两种赋初值的结果是完全相同的。
3.可以只对部分元素赋初值,未赋初值的元素自动取0值。
例如: static int a[3][3]={{1},{2},{3}}; 是对每一行的第一列元素赋值,未赋值的元素取0值。 赋值后各元素的值为: 1 0 02 0 03 0 0
static int a [3][3]={{0,1},{0,0,2},{3}}; 赋值后的元素值为 0 1 00 0 23 0 0
4.如对全部元素赋初值,则第一维的长度可以不给出。
2.c语言中二维数组如何使用
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i,j,n=1;
int a[15][15];
//赋值
for(j=0;j<15;j++)
{
for(i=0;i<15;i++)
{
a[j][i] = n;
n++;
}
}
//输出显示
for(j=0;j<15;j++)
{
for(i=0;i<15;i++)
{
printf("%3d ",a[j][i]);//%3d,3表示3按三个字符对齐
}
printf("\n");//显示完一行换行
}
return 0;
}
3.编写c语言二维数组
一:
#include <stdio.h>
void main(){
int i,j;
int a[5][3];
for(i=0;i<5;i++)
for(j=0;j<3;j++){
scanf("%d",&a[i][j]);
}
for(i=0;i<5;i++){
for(j=0;j<3;j++){
printf("%d ",a[i][j]);
}
printf("\n");}
}
二:
#include <stdio.h>
void main(){
int i,j;
int a[3][3];
for(i=0;i<3;i++)
for(j=0;j<3;j++){
scanf("%d",&a[i][j]);
}
for(i=0;i<3;i++){
for(j=0;j<3;j++){
printf("%d ",a[i][j]);
}
printf("\n");}
printf("\n");
for(j=0;j<3;j++){
for(i=0;i<3;i++){
printf("%d ",a[i][j]);
}
printf("\n");
}
}
4.c语言 二维数组如何输入 该怎么输入数组,才能输出
其实并不存在真正的“二维”,只不过是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};
编译器会自动的将线性信息写入二维数组中。
5.C语言如何建立一个二维数组
刚刚看错了,原来是C语言,这样就好了.
输入m,n
int m,n;
int i,j;
scanf("%d%d",&m,&n);
int **mm=(int**)malloc(m*sizeof(int*));
for(i=0;i<m;i++)
mm[i]=(int*)malloc(n*sizeof(int));
这就建了一个二维数组mm[m][n]了.
使用时,就直接mm[i][j]就可以了.
先输入行数m,列数n
然后输入一个m*n的矩阵
然后输出这个矩阵.
#include <stdio.h>
#include <malloc.h>
void main() {
int m,n;
int i,j;
scanf("%d%d",&m,&n);
int **mm=(int**)malloc(sizeof(m*sizeof(int*)));
for(i=0;i<m;i++)
mm[i]=(int*)malloc(sizeof(n*sizeof(int)));
for(i=0;i<m;i++) {
for(j=0;j<n;j++)
scanf("%d",&mm[i][j]);
}
for(i=0;i<m;i++) {
for(j=0;j<n;j++)
printf("%d ",mm[i][j]);
printf("\n");
}
}
6.c语言中定义一个二维数组
int a[100][100]; //先把数组定义的大点
int n,m,i,j;
printf("请输入行数:");
scanf("%d",&n);
printf("请输入列数:");
scanf("%d",&m);
printf("请输入%d行%d列数字\n",n,m);
for(i=0;i<n;i++)
for(j=0;j<m;j++)
scanf("%d",a[i][j]);
7.C语言 二维数组
给你写个大概吧,具体的语都就饭吃了。
int Score[],i=0,SumScore=0;
scanf("%d",Score[i]);//初始化第一个分数,用来做while循环起始条件
while(Score[i]100则认为完成!")
scanf("%d",&Score[i]); //输入成绩
}
printf("总成绩:"+SumScore);
printf("平均分:"+SumScore/(i-1));
最高分和最提分在循环的时候,记录一个最大值和一个最小值,就不给你写了。累了今天
8.c语言二维数组实例
以下是几个简单的C语言二维数组实例代码
1. 输出第n行的杨辉三角形:
#include<stdio.h>
void main()
{
int i,j,n; int a[100][100]={0};//定义一个二维数组。
scanf("%d",&n);
a[0][1]=1;
for(i=1;i<n;i++)
for(j=1;j<i+2;j++)
a[i][j]=a[i-1][j]+a[i-1][j-1];
for(i=0;i<n;i++)
{
for(j=1;j<i+2;j++)
printf("%d\t",a[i][j]);
printf("\n");
}
}样例输入:5
样例输出:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
2. 将一个n*m矩阵的行和列互换,并输出:
#include<stdio.h>
void main()
{
int i,j,n,m;
int a[100][100],b[100][100];
scanf("%d%d",&n,&m);
for(i=0;i<n;i++)
for(j=0;j<m;j++)
{
scanf("%d",&a[i][j]);
b[j][i]=a[i][j];
}
printf("输出原矩阵:\n");
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
printf("%d\t",a[i][j]);
printf("\n");
}
printf("输出互换后的矩阵:\n");
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
printf("%d\t",b[i][j]);
printf("\n");
}样例输入:
2 3
15 46 47
16 3 48
样例输出:
输出原矩阵:
15 46 47
16 3 48
输出互换后的矩阵:
15 16
46 3
47 48
9.C语言二维数组输入
#include<stdio.h>
void main()
{
char a[3][4];
int i,j;
for(i=0;i<3;i++){
fflush(stdin);
scanf("%c %c %c %c",&a[i][0],&a[i][1],&a[i][2],&a[i][3]);
}
for(i=0;i<3;i++){
for(j=0;j<4;j++){
printf("%c ",a[i][j]);
}
printf("\n");
}
}
2个问题
1.你的数组是第二纬是4个下标,你的内层循环只有3个。
2.需要增加 fflush(stdin);用来清空键盘输入的缓冲区
支持字符数组
转载请注明出处育才学习网 » c语言二维数组怎么呢写