c语言程序设计关于矩阵的转置(c语言判断闰年矩阵的转置运算)
c语言程序设计关于矩阵的转置(c语言判断闰年矩阵的转置运算)矩阵的转置运算#include "stdio.h" main() { int year; printf("Please a year:\n"); scanf("%d" &year); /*判断是否是闰年*/ if((year % 4 == 0 && year % 100 !=0)||(year % 400 ==0 )) printf("%d is leap year!\n" year); else printf("%d is not leap year!\n" year); getche(); }运行结果:(1)该年份能被4整除,但不能被100整除;(2)该年份能被4整除,又能被400整除。只要符合以上的两条件之一的年份都是闰年。最简单的判断闰年的方法是用条件判断语句(if-else语句)
判断闰年
输入一个年份,判断该年是否是闰年。
题目分析:
这是一道公司面试和各种C语言考试中常考的题目。虽然这道题目十分简单,但是作为一个专业的程序员这是必备的常识。所谓闰年,是要符合下面两个条件之一:
(1)该年份能被4整除,但不能被100整除;
(2)该年份能被4整除,又能被400整除。
只要符合以上的两条件之一的年份都是闰年。最简单的判断闰年的方法是用条件判断语句(if-else语句)配合逻辑表达式进行判断,充分地利用逻辑表达式进行判断可使程序的可读性更好,效率更高。
#include "stdio.h"
main()
{
int year;
printf("Please a year:\n");
scanf("%d" &year);
/*判断是否是闰年*/
if((year % 4 == 0 && year % 100 !=0)||(year % 400 ==0 ))
printf("%d is leap year!\n" year);
else
printf("%d is not leap year!\n" year);
getche();
}
运行结果:
矩阵的转置运算
题目要求:
用键盘从终端输入一个3行4列的矩阵,编写一个函数对该矩阵进行转置操作。
题目分析:
这个问题的解决关键是要解决两个问题:(1)数据在内存中的存储问题,也就是数据结构的问题;(2)如何通过函数来实现矩阵的转置运算。显然,可以用一个二维数组来存储矩阵的数据,通过将二维数组的指针作为函数的参数进行传递,来实现矩阵转置函数的功能。
#include "stdio.h"
#include <stdio.h>
void InputMatrix(int (*a)[4] int int );
void OutputMatrix(int (*b)[3] int int );
void MatrixTranspose(int (*a)[4] int (*b)[3]);
int main(void)
{
int a[3][4] b[4][3]; /*a 存放原矩阵,b存放a 矩阵的转置矩阵*/
printf("Please input 3×4 matrix\n");
InputMatrix(a 3 4);
MatrixTranspose(a b);
printf("The Transposex Matrix is\n");
OutputMatrix(b 4 3);
getche();
return 0;
}
void InputMatrix(int (*a)[4] int n int m)
{
/*输入n*m阶的矩阵 */
int i j;
for(i=0;i<n;i )
for(j=0;j<m;j )
scanf("%d" *(a i) j);
}
void OutputMatrix(int (*b)[3] int n int m)
{
/* 输出n*m阶矩阵的值 */
int i j;
for(i=0;i<n;i )
{
for(j=0;j<m;j )
printf("%d " *(*(b i) j));
printf("\n");
}
}
void MatrixTranspose(int (*a)[4] int (*b)[3])
{
/*矩阵的转置运算*/
int i j;
for(i=0;i<4;i )
for(j=0;j<3;j )
b[i][j]=a[j][i];
}
运行结果: