C语言二维数组用循环如何输入数据~~急啊~!谢谢~!
发布网友
发布时间:2022-04-23 02:13
我来回答
共4个回答
热心网友
时间:2023-10-11 07:48
1、一般情况下,题目会给出n不大于m,m不大于几的*条件,此时只需这样定义即可
int
a[n]m],其中n和m作为常数进行宏定义,比如
#define
n
5
#define
m
6
2、学到动态内存分配后,就不会有这样的担忧,需要时,可用malloc()函数在“堆”空间申请内存,该函数的原型是:
void
*malloc(
size_t
size
);,功能是要求系统分配大小为size个字节的堆空间,注意到该函数的分会类型是void,通过强制类型转换即可获得需要的数据类型,比如
int
*p;
p
=
(int
*)malloc(30);
如果申请成功,则返回该区域的首址,失败则返回null。
热心网友
时间:2023-10-11 07:48
两个循环体实现数的输入,具体如下:
(1)for(i=0;i<3;i++)
{
(2)for(j=0;j<5;j++)
{scanf("%d",&a[j][i]);
s=s+a[j][i];}
v[i]=s/5;
s=0;
}
第一次执行时,i=0(代表第一列),然后进入第二个FOR循环,它嵌在第一个里面,j从0到4,依次输入a[0][0]\a[1][0]\a[2][0]\a[3][0]\a[4][0]\a[5][0],即每一行的第一个数据,j=5 时第二层循环不再执行,跳出至外层循环,i=1,如前,输入第二列数据,直至i=3 跳出整个循环,执行average
你的这个程序,是以列为单位输入数据,这是你程序目的的需要吧,一般说来都以行为单位,即第一层终止条件和第二层的掉换即可
热心网友
时间:2023-10-11 07:49
两个循环体实现数的输入,具体如下:
(1)for(i=0;i<3;i++)
{
(2)for(j=0;j<5;j++)
{scanf("%d",&a[j][i]);
s=s+a[j][i];}
v[i]=s/5;
s=0;
}
第一次执行时,i=0(代表第一列),然后进入第二个FOR循环,它嵌在第一个里面,j从0到4,依次输入a[0][0]\a[1][0]\a[2][0]\a[3][0]\a[4][0]\a[5][0],即每一行的第一个数据,j=5
时第二层循环不再执行,跳出至外层循环,i=1,如前,输入第二列数据,直至i=3
跳出整个循环,执行average
你的这个程序,是以列为单位输入数据,这是你程序目的的需要吧,一般说来都以行为单位,即第一层终止条件和第二层的掉换即可
热心网友
时间:2023-10-11 07:49
scanf(%d,&a[j][i])
通过嵌套循环,从这里输入数据。
C语言中的二维数组的赋值,输入输出怎么用
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");...
c语言中怎样实现对二维数组元素进行赋值并输出。
用一个两重循环就可以了:#include <stdio.h>void main(){int a[3][4] = {0}, row, col;printf("请输入数组元素的值(3行4列): \n");for (row=0; row<3; row++)for (col=0; col<4; col++)scanf("%d", &a[row][col]);printf("您输入的数组为:\n");for (row=0; ro...
输入二维数组直到输入的n为-1结束c语言该怎样写 是不是要有while(scanf...
const int r=3,c=2;//r代表2维数组的行数,c代表2维数组的列数 int arr[r][c]={0},n=0;for(int i=0;i<r;i++){ for(int j=0;j<c;j++){ cin>>n;//输入n if(n!=-1)//如果n不等于-1 arr[i][j]=n;//就把n付给数组元素 else//否则,退出循环 break;} if(n==...
C语言谁能帮我写个for循环给二维数组赋值
Scorecard[max][max]=num;//先赋值中心。提示:数组下标为(整形)25/2=12则为第13行(数组下标是从0开始数的)。do{//大循环:一圈圈赋值,扩大圈圈int i;//用于小循环的临时变量if(num>0)num--;//num逐圈减小,直到为0max++;min--;//行列的最大最小值调整(扩大圈圈)for(i=min ; i<...
C语言中从屏幕上给一个二位数组输值的程序怎么写
对二维数组输值,需要对二维数组每个元素进行遍历,并逐个输入每个元素的值。如对一个4行5列的二维数组输值,可以写作:int a[4][5];int i,j;for(i = 0; i < 4; i ++) for(j = 0; j < 5; j ++) scanf("%d",&a[i][j]);...
c语言中,一次连续输入多组数据,并且最后连续输出多组结果,应该用哪种方...
用二维数组就可以实现一次连续输入多组数据。思路是嵌套循环,外层循环控制二维数组的行数(也就是第几组数据),内层循环控制这组数据中数据个数。采用二维数组方法的有点在于,这种随机存取的数据结构方便查找和检索,但一定要注意这种方法不便于向已有数据中插入和删除数据。
C语言中一个二维数组输入的问题?为什么这个数组只让我输入了第一行
//当第一个for循环第一次循环执行结束后,n1的值为4,所以在执行第一个for循环的第二次循环时应该重置 n1=0;// n1应该在这地方初始化,不应该和m1一起初始化。for(n1;n1<4;n1++){ printf("请用户输入第%d行%d列的数据:\n",m1+1,n1+1);scanf("%d",&a[m1][n1]);printf("\n")...
C语言如何给用函数二维数组动态赋值
, &nChoose); // 让用户输入二维数组的大小 int **a = (int **)malloc(nChoose * sizeof(int *));for (int i = 0; i < nChoose; i ++){ a[i] = (int *)malloc(nChoose * sizeof(int));} Scan(a, nChoose);Calc(a, nChoose);// 最后要释放数组,也要循环 ...
C语言中一个二维数组输入的问题?为什么这个数组只让我输入了第一行
{ //第一个for循环的第一次循环结束后,n1=4;当执行第一个for循环的第二次循环时,n1还是为4 //就不执行第二个for循环了。//n1的初始化应该在第一个for循环的里面即:n1=0;for(n1;n1<4;n1++){ printf("请用户输入第%d行%d列的数据:\n",m1+1,n1+1);scanf("%d",&a[m1][n1])...
c语言输出二维数组中指定列的和 如输入二维数组: 1 2 3 4 5 6 7 8...
对应的行和列你可以自己修改,同时初始化数组的也要修改。include <stdio.h> define COL 4 define ROW 4 int main(){ int array[ROW][COL]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};int pos;for(int i = 0;i<ROW;i++){ for(int j = 0; j<COL;j++){ printf("%d...