c语言二维数组的计算
① c语言中的二维数组的运算问题
上面能运行下面报错?不可能吧
数组是在栈空间上分配的,c默认不支持动态数组,所以如果你使用rule_num作为数组的下标定义一个数组是会报错的。如果希望使用变长数组,可以采用malloc动态分配。
另外,标准的c语言程序要求将所有的变量都定义在函数的开头,也就是说你将char型数组写在while循环中这一个写法本身也是有问题的。能够编译通过可能因为你是用的是c++编译器。
另外,vc默认的栈为1m,1个char类型变量需要1b的空间,10000^2需要95m,所以栈溢出也是有可能的。
② 急急!!!如何用c语言输入和输出一个二维数组
#include <stdio.h>
#include <stdlib.h>
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;
}
运行成功
③ 用C语言实现二维数组的相关运算
1.不用说了
2.即row=0,col=0和row=MAX_ROW,col=MAX_COL元素的和
3.简单点将二维数组存到一维数组中,然后分别将奇数下标和偶数下标求和。
4.row=col的元素之和
④ 用C语言进行二维数组计数
#include<stdio.h>
void count(int x[100],int a[1000][10]){
int iA,iB;
for(iA=0; iA<100; iA++){
x[iA] = 0;
}//初始化
for(iA=0; iA<1000; iA++){
for(iB=0; iB<10; iB++){
if(a[iA][iB] >= 1 && a[iA][iB] <= 100){
x[a[iA][iB]-1] += 1;//x[?] 记录 ?+1 出现的次数
}
}
}//遍历数组
}
⑤ c语言二维数组下标的值怎么算
数组的下标是从0开始,由于数组是连续存储的,你可以想象用一个4x4的表格来表达这个数组,然后把for循环体内语句中数组对应的下标值根据算术表达式进行计算就可以啦。
2+6+9+2 =19,其他的数组下标都可用这种方法来计算。
⑥ c语言中 用函数计算二维数组每行之和以及每列之和 怎么编程
已通过测试
#include <stdio.h>
void fun(int a[][10],int row,int col)
{ int i,j,k,sum;
int r[10],c[10];
k=0;
for(i=0;i<row;i++)
{ sum=0;
for(j=0;j<col;j++)
sum+=a[i][j];
r[k]=sum;
k++;
}
k=0;
for(j=0;j<col;j++)
{ sum=0;
for(i=0;i<row;i++)
sum+=a[i][j];
c[k]=sum;
k++;
}
for(k=0;k<row;k++)
printf("the sum of NO.%d row is %d\n",k+1,r[k]);
for(k=0;k<col;k++)
printf("the sum of NO.%d column is %d\n",k+1,c[k]);
}
main()
{ int a[10][10],row,col;
int i,j;
printf("Input the row and column of array:");
scanf("%d%d",&row,&col);
for(i=0;i<row;i++)
for(j=0;j<col;j++)
scanf("%d",&a[i][j]);
fun(a,row,col);
}
⑦ c语言中的二维数组
C 语言中的多维数组(multidimensional array)其实就是元素为数组的数组。n 维数组的元素是 n-1 维数组。例如,二维数组的每个元素都是一维数组,一维数组的元素当然就不是数组了。
多维数组声明时,每个维度用一对方括号来表示:char screen[10][40][80]; // 一个三维数组
数组 screen 包含 10 个元素,从 screen[0] 到 screen[9]。每个元素又是一个二维数组,它有 40 个元素,这 40 个元素均是一维数组,然后每个一维数组内都有 80 个字符。整体来说,screen 数组有 32000(10×40×80)个 char 类型元素。
想要获取该三维数组 screen 内的某个 char 元素,必须指定 3 个索引值。例如,下面的语句把字符Z写入该数组的最后一个元素位置:screen[9][39][79] = 'Z';
⑧ 求C语言编程:调用函数计算二维数组所有元素的平均值
两个for循环
记录二维数组的总值
count+=array[i][j]
key记录数组元素个数
key++;
最后
return
count/key
或:
double avg(int x[10][10])
{
int i,j,sum;
for(i=0;i<10;i++)
{
for(j=0;i<10;j++)
sum+=x[i][j];
}
return sum/((i+1)*(j+1));
}
(8)c语言二维数组的计算扩展阅读:
函数作为另一个函数调用的实际参数出现。这种情况是把该函数的返回值作为实参进行传送,因此要求该函数必须是有返回值的。例如: printf("%d",max(x,y)); 即是把max调用的返回值又作为printf函数的实参来使用的。在函数调用中还应该注意的一个问题是求值顺序的问题。
⑨ 用C语言实现二维数组的相关运算
#include<stdio.h>
#define n 5
int a[n][n];//定义一个大小为n的二维数组,这里以n=5为例
void main()
{
int i,j;
printf("请逐行输入矩阵:\n");
for(i=0;i<n;i++)
{
printf("第%d行:",i+1);
for(j=0;j<n;j++)
{
scanf("%d",&a[i][j]);
}
}//这是手动对a[n][n]初始化
int sum1();
int sum2();
int sum3();//这些都是函数声明
printf("%d,\t%d,\t%d",sum1(),sum2(),sum3());
}
int sum1()//用来计算边缘元素之和
{
int s=0;
int i,j;
for(i=0,j=0;j<n;j++)
{s+=a[i][j];}
j--;i++;
for(;i<n;i++)
{s+=a[i][j];}
i--;j--;
for(;j>=0;j--)
{s+=a[i][j];}
j++;i--;
for(;i>0;i--)
{s+=a[i][j];}
return(s);
}
int sum2()//用来计算不相邻元素之和
{
int s=0;
int i,j;
for(i=0;i<n;i++)
{
for(j=i%2;j<n;j+=2)
{s+=a[i][j];}
}
return(s);
}
int sum3()//用来计算对角线元素之和
{
int s=0;
int i;
for(i=0;i<n;i++)
{
s+=a[i][i];
s+=a[i][n-1-i];
}
if(n%2)
return(s-a[n/2][n/2]);//如果n为奇数,矩阵正中央的元素就被多算了一遍,所以要把它减掉
else
return(s);
}
⑩ c语言二维数组乘法和加法怎么算的请举例说明,顺便说说使用条件吧。谢谢
在数学中,一个矩阵说穿了就是一个二维数组。一个n行m列的矩阵可以乘以一个m行p列的矩阵,得到的结果是一个n行p列的矩阵,其中的第i行第j列位置上的数等于前一个矩阵第i行上的m个数与后一个矩阵第j列上的m个数对应相乘后所有m个乘积的和。比如,下面的算式表示一个2行2列的矩阵乘以2行3列的矩阵,其结果是一个2行3列的矩阵。
031130*1+3*00*1+3*(-2)0*3+3*(-1)0-6-3
62*{0-2-1}={6*1+2*06*1+2*(-2)6*3+2*(-1)}={6216}