c++题目 高手进

来源:百度知道 编辑:UC知道 时间:2024/06/08 14:10:59
1编写一个n*n方阵主对角元素之和的函数,并设计一个测试主函数
提示:先定义一个10*10 (或其它大小)的数组(二维数组),然后定义一个函数体,使用
for loop计算对角之和,并返回结果。
在定义函数时,要注意如何传递一个二维数组
return type name (int m [] [10]...) //必须固定二维数组的下标
2. 编写一个把有n个元素的数组a中的元素就地逆置的函数,所谓就地逆置就是逆置后的元素还保存在数组a中,并设计一个测试主函数进行设计
提示:先定义一个一维数组,然后用两个指针分别指向数组头和尾
注意如何在数组和指针之间互相转化

p = &a[0]

#include "stdafx.h"
#include<iostream.h>

#define N 3
void GetSum(int a[N][N], int& sum1,int& sum2 )
{
int i,j;
sum1 = 0;
sum2 = 0;
for(i = 0; i < N;i++)
{
for(j =0 ;j <N; j++)
{
if( (i + j )== (N - 1))
{
sum1 = sum1 + a[i][j];
}
if (i == j) {
sum2 = sum2 + a[i][j];
}
}
}
}
void Swap(int& a, int &b)
{
int temp;
temp = a;
a = b;
b = temp;
}
void SwapArray(int a[N])
{
int iValue = N / 2;
for(int i = 0 ; i < iValue ; i++)
{
Swap(a[i],a[N-i-1]);
}
}

void main()
{
int a[3][3] = {1,2,3,4,5,6,7,8,9};
int sum1,sum2;
GetSum(a, sum1, sum2);
cout << "sum1 " << sum1 << endl;
cout << "sum2 " << sum2 << end