矩阵多维数组笔试题
2015-09-26 23:57
330 查看
1、请用C/C++实现matrix_sum函数,要求如下:
计算N*N矩阵对角线元素之和;
N*N矩阵定义为int类型的二维数组;
N>1,矩阵中的元素是随机的值。
2、请用C/C++编写一个程序完成以下功能:
如下图所示,设每个小格子都是边长为1的正方形。
R为M*N个小格子组成的矩形。
打印出如图中R对角线经过的格子的坐标,M和N的值为大于1的随机整数。
思路:
代码:
计算N*N矩阵对角线元素之和;
N*N矩阵定义为int类型的二维数组;
N>1,矩阵中的元素是随机的值。
#include <stdio.h> #include <stdlib.h> int matrix_sum( int matrix[10][10],int row ) { int i,j; int sum = 0; printf("矩阵matrix:\n"); for(i=0; i<row; ++i) { for(j=0; j<row; ++j) { matrix[i][j] = rand(); printf("%d\t",matrix[i][j]); } printf("\n"); } for(i=0; i<row; ++i) { for(j=0; j<row; ++j) { if(i == j) { sum += matrix[i][j]; } } } return sum; } int main() { int a[10][10]; int sum = matrix_sum( a, 10); printf("\n矩阵对角线元素为:%d\n",sum); return 0; }
2、请用C/C++编写一个程序完成以下功能:
如下图所示,设每个小格子都是边长为1的正方形。
R为M*N个小格子组成的矩形。
打印出如图中R对角线经过的格子的坐标,M和N的值为大于1的随机整数。
思路:
代码:
#include <stdio.h> #include <stdlib.h> #include <time.h> void Print(int M, int N) { double rate = (double)M/(double)N;//利用相似三角形 float first = 0; float end = rate; //用来判断M和N是否相等 int Fir; int End; int i,j; for(i=0; i<N; ++i) { if(end == (int)end) { End = end; } else { End = end + 1; } Fir = first; for(j=Fir; j<End; ++j) { printf(" (%d,%d)",i+1,j+1); } printf("\n"); first = end; end = first + rate; } } int main() { int start = 1; int end = 10; srand(time(0)); int M = rand()%(end-start)+start; int N = rand()%(end-start)+start; printf("%d*%d 矩阵对角线所经过的格子为:\n",M,N); Print(M,N); printf("\12"); M=9;N=5; printf("%d*%d 矩阵对角线所经过的格子为:\n",M,N); Print(M,N); printf("\12"); M=5;N=5; printf("%d*%d 矩阵对角线所经过的格子为:\n",M,N); Print(M,N); printf("\12"); return 0; }
相关文章推荐
- C++11中的std::function
- 启动另一个Activity
- Java复选框JCheckBox和单选按钮JRadioButton用法详解
- iOS7极限编程 第一部分 第二章 世界是扁平化的:新的UI范式 (译)
- 2003域控升级为2008域控步骤。
- SNMP简单网络管理协议
- hdu(5477)——A Sweet Journey
- 辞职二战一个月感想
- 快乐的sublime编辑器(笔记)
- /usr/bin/cd 是什么鬼
- 在哪下载XCode dmg安装文件
- uva 11210 Chinese Mahjong 中国麻将 dfs回溯
- Google Java编程风格指南
- 【JAVA】数字相加
- 布局
- C++: 函数返回非引用类型与返回引用类型
- 405个手机项目
- Postman用法简介-Http请求模拟工具
- Android之万能适配器Adapter的使用
- reactjs