c++函数调用 二维数组对角线求和

问题描述

c++函数调用 二维数组对角线求和

#include
using namespace std;
int main()
{
double sum_2diagonal(double* arry_2d,unsigned int m,unsigned int n);
int i,j;
double summ;
unsigned int x,y;
double arry[100][100];
cin>>x>>y;
for(i=0;i
for(j=0;j
{
cin>>arry[i][j];
}
summ=sum_2diagonal(arry,x,y);
cout<<summ;
return 0;
}

double sum_2diagonal(double (*arry_2d)[100][100] ,unsigned int m,unsigned int n)
{
int i,j;
double sum=0,t=0;
for(i=0;i<m;i++)
for(j=0;j<n;j++)
{
if(i=j)
{ sum=sum+((*arry_2d)[i][j]);
}

}
return sum;

}

解决方案

问题是什么呢?还是有什么错误?

解决方案二:

 for(i=0;i for(j=0;j {  //这是什么鬼
cin>>arry[i][j];
}
summ=sum_2diagonal(arry,x,y);
cout<<summ;
return 0;
}

解决方案三:

  • 1.你要问什么?
  • 2.sum_2diagonal可以简化
double sum_2diagonal(double arry_2d[][100], unsigned int m, unsigned int n)
{
    int n0 = (m>n) ? n : m;
    int i;
    double sum = 0, t = 0;
    for (i = 0; i < n0; i++)
        sum += (arry_2d[i][i]);
    return sum;
}

解决方案四:

虽然不知道你要表达什么,但是我感觉你计算对角线的和的时候指针用错了

解决方案五:

sum_2diagonal这个函数参数传错了,直接double *arry_2d即可。

解决方案六:

中间那个for循环没复制全,sum_2diagonal的数组指针的参数不需要指定数组的大小。

时间: 2024-10-26 18:23:00

c++函数调用 二维数组对角线求和的相关文章

Java基础-06.总结二维数组,面向对象

1:二维数组(理解) (1)元素是一维数组的数组.(2)格式:A:数据类型[][] 数组名 = new 数据类型[m][n];B:数据类型[][] 数组名 = new 数据类型[m][];C:数据类型[][] 数组名 = new 数据类型[][]{{...},{...},{...}};D:数据类型[][] 数组名 = {{...},{...},{...}}; /*二维数组:就是元素为一维数组的一个数组. 格式1:数据类型[][] 数组名 = new 数据类型[m][n]; m:表示这个二维数组有

php 基础有关问题二维数组求和

  php 基础问题二维数组求和 ! 数组: $a = array(array("a"=>"aa","a1"=>1,"a2"=>1),array("a"=>"bb","a1"=>2,"a2"=>2),array("a"=>"cc","a1"=>

《C语言及程序设计》实践项目——二维数组与指针

返回:贺老师课程教学链接 [项目1-二维数组当函数参数]定义一个函数来完成对参数数组中元素的求和工作,函数声明如下: int sum(int array[ ][4],int m,int n); //该函数完成对array数组中的前m行和n列元素求和 在以下程序的基础上,完成对sum函数的定义. #include <stdio.h> int sum(int array[ ][4],int m,int n);//该函数完成对array数组中的前m行和n列元素求和 int main() { int

link中如何颠倒一个二维数组?二维数组不支持revses吧?

问题描述 link中如何颠倒一个二维数组?二维数组不支持revses吧? link中如何颠倒一个二维数组?二维数组不支持revses吧? 解决方案 可以用select Enumerable.Range(0 arr.GetLength(1)).Select(x => Enumerable.Range(0 arr.GetLength(1)).Select(y => arr[x y]).Reverse().ToArray()).Reverse().ToArray(); 解决方案二: 长方形的矩阵有上

c++程序-我用vector里resize函数创建了一个二维数组,怎么给它排序?代码如下,哪里错了呢?

问题描述 我用vector里resize函数创建了一个二维数组,怎么给它排序?代码如下,哪里错了呢? #include #include #include #include #include using namespace std; int main() { int n, m; cout << "input the row:n and the column:m" << endl; cin >> n >> m; vector< vec

2013级C++第15周项目——二维数组

课程主页在:http://blog.csdn.net/sxhelijian/article/details/11890759 [项目1-折腾二维数组]创建一个长度为5行4列的二维整型数组,通过初始化,为数组中的前两列的10个元素赋初值,然后通过键盘输入,使后两列的10个元素获得值,将所有元素值乘以3后保存在数组中.输出数组时,按行序优先输出,再按列序优先输出(输出的第一行是数组中的第一列--,其实输出的就是"转置"),再将数组"倒"着输出(即最后一行最后一列的最先输

[总结]C语言二维数组作为函数的参数

前言:今天在实现装配线调度程序时候,用到了二维数组,并将其作为函数的参数.在写程序的时候,遇到一些问题,即二维数组做函数的参数应该如何正确表示.我写程序的错误如下程序所示: 1 #include <cstdio> 2 void print(int *a[3]) 3 { 4 printf("%d\n",a[0][0]); 5 } 6 7 int main() 8 { 9 int a[2][3] = {1,2,3,4,5,6}; 10 print(a); 11 return 0

c语言-C语言使用随机分布函数rand()%100;但是二维数组a[0][0]的值大于100,其他正常

问题描述 C语言使用随机分布函数rand()%100;但是二维数组a[0][0]的值大于100,其他正常 #include #include #define M 5 #define N 4 void china(int a[][N],int b[M]);/*给二维数组随机分配数值,并求二维数组每行数值之和*/ void orange(int a[][N],int b[M]);/*将付好值得数组和求和打印出来*/ void main() {int a[M][N],b[N]; china(a,b);

剑指offer系列之三:在二维数组中查找元素

题目描述: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 由于题目条件的成立,所以使得这道题可以使用对角线的方法完成,可以从右上角的元素考虑,如果目标查找元素小于右上角的元素,那么不可能在右上角元素所在的列,如果目标大于剩余列的右上角的元素,那么不可能在该右上角元素所在的行.依照这个规律,就可以完成目标元素的查找(参考剑指offer书中的思路).基于此,我写出如下的代码(已被