给c语言加注释

给c语言加注释,第1张

#include //标准输入输出库所在的头文件

//自定义函数声明

void add(int *m,int *m1,int *m2,int r,int c)//矩阵加法

void sub(int *m,int *m1,int *m2,int r,int c)//矩阵减法

void mult(int *m,int *m1,int *m2,int r,int p,int c)//矩阵乘法

void disp(int *m,int r,int c)//打印数组数据(矩阵里的数据)

//主测试函数

void main()

{

int a[3][4]={{4,3,5,2},{5,1,7,3},{2,7,6,2}}

int b[3][4]={{2,4,4,-7},{4,2,5,-8},{7,-3,-4,2}}

int c[4][3]={{5,4,4},{1,3,1},{4,4,2},{7,1,3}}

int d[3][4]={0}

int e[3][4]={0}

int f[3][3]={0}

printf("\nA(3x4):\n")

disp(a[0],3,4)//显示矩阵a

printf("\nB(3x4):\n")

disp(b[0],3,4)//显示矩阵b

add(d[0],a[0],b[0],3,4)// 计算矩阵 a + b,并将结果存到d中

printf("\nD(3x4)=A+B:\n")

disp(d[0],3,4)//显示a+b的结果(即d中的数据)

sub(e[0],a[0],b[0],3,4)// 计算矩阵 a - b,并将结果存到e中

printf("\nE(3x4)=A-B:\n")

disp(e[0],3,4)//显示a-b的结果(即e中的数据)

printf("\nA(3x4):\n")

disp(a[0],3,4)// 显示矩阵a

printf("\nC(4x3):\n")

disp(c[0],4,3)//显示矩阵c

mult(f[0],a[0],c[0],3,4,3)//计算矩阵a*c 并将结果存到f中

printf("\nF(3x3)=A*C:\n")

disp(f[0],3,3)//显示a*c的结果(即f中的数据)

}

//函数定义

/*

*****函数功能:两个矩阵进行加法运算 C = A+B

*****参数: m 指向运算结果存放的二维数组(即矩阵) C的首地址

***** m1为矩形A的首地址,m2为矩形B的首地址

***** r 为矩阵的行数, c为矩阵的列数

*(m+i*c+j) = *(m1+i*c+j) + *(m2+i*c+j)这个表示将矩阵A的第i行j列的数据 与 矩阵B的第i行j列的数据 相加

然后将结果赋值给矩阵C的第i行j列数据

*(m1+i*c+j) :m1+i*c+j 这个表示指向矩阵A的第i行第j列的数据的指针,则 *(m1+i*c+j) 就表示矩阵A的第i行第j列的数据

*(m2+i*c+j) :m2+i*c+j 这个表示指向矩阵B的第i行第j列的数据的指针,则 *(m2+i*c+j) 就表示矩阵B的第i行第j列的数据

*(m+i*c+j) : m+i*c+j 这个表示指向矩阵C的第i行第j列的数据的指针,则 *(m+i*c+j) 就表示矩阵C的第i行第j列的数据

这里是用指针实现的,

*(m+i*c+j) = *(m1+i*c+j) + *(m2+i*c+j)

等价于

c[i][j] = a[i][j] + b[i][j]

*/

void add(int *m,int *m1,int *m2,int r,int c) //

{

int i,j

for(i=0i<ri++)

for(j=0j<cj++)

*(m+i*c+j) = *(m1+i*c+j) + *(m2+i*c+j)

}

//注释与上边加法类似

void sub(int *m,int *m1,int *m2,int r,int c) //两个矩阵之间的减法运算

{

int i,j

for(i=0i<ri++)

for(j=0j<cj++)

*(m+i*c+j) = *(m1+i*c+j) - *(m2+i*c+j)

}

/*注释与上边类似,因为矩阵乘法运算公式较为复杂一些,可自行对照矩阵乘法运算公式

如矩阵c = a * b

for(k=0k<pk++)

t += *(m1+i*p+k) * *(m2+k*c+j)//表示将m1的第i行k列的数据 与 m2的第k行j列的数据相乘 ,

//并将p (k的值从0到p) 次结果进行累加

*(m+i*c+j)=t //最后将这个累加的结果赋值给矩阵c的第i行第j列的数据

*/

void mult(int *m,int *m1,int *m2,int r,int p,int c)//两个矩阵之间的乘法运算

{

int i,j,k,t

for(i=0i<ri++)

for(j=0j<cj++)

{

t=0

for(k=0k<pk++)

t += *(m1+i*p+k) * *(m2+k*c+j)

*(m+i*c+j)=t

}

}

//显示打印矩阵中的数据

void disp(int *m,int r,int c)

{

int i,j

for(i=0i<ri++)

{

for(j=0j<cj++)

printf("%6d",*(m+i*c+j))

printf("\n")

}

}

程序不全。给你注释前段:

int priority(char operator) //优先权函数,输入参数加减乘除之一

{

switch(operator)

{

case '+': case '-' : return 1 // 如果是加减 返回1

case '*': case '/' : return 2 // 如果是 乘除返回2

default: return 0// 否则 返回0

}

}

int two_result(int operator,int operand1,int operand2) //两数运算结果函数

{

switch(operator) // 运算符

{

case '+':return(operand2+operand1) // 如果是 加,返回两数之和

case '-':return(operand2-operand1) // 如果是 减,返回第二数减第一数之差

case '*':return(operand2*operand1) // 如果是 乘,返回两数之积

case '/':return(operand2/operand1) // 如果是 除,返回两数之商

}

}

void main()

{

char expression[50] // 字符串,存表达式

int position=0 // 位置,初始为0

int op=0 // *** 作

int operand1=0// 数1

int operand2=0// 数2

int evaluate=0 // 计算值

printf("\nPlease input the inorder expression:")//提示输入表达式

gets(expression)//读一行字符串

while(expression[position]!='\0'&&expression[position]!='\n') //如果该字符既不是新行,也不是字符串结束标志 则循环

{

if(is_operator(expression[position])) //判断该字符是不是运算符

{

接下去是栈 *** 作,压入和d出,按优先权找到 *** 作符和 *** 作数,依次计算结果,最后输出表达式 和四则运算结果。

#include

调入基本输入输出函数库

int

main()

主函数(整形)

void

sort(int

x[],int

n)

说明

无类型函数sort函数参数为整形数组x和整形变量n

int

i,*p,a[10]

定义整形变量

i

,整形指针变量p

及整形数组

a

p=a

指针p得到数组

a的首地址

printf("please

enter

10个整数:")

显示输入10个整数提示

for(i=0,i<10,i++)

十次循环

输入值

scanf

程序不全缺东西,只能解答到这


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11699819.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-18
下一篇2023-05-18

发表评论

登录后才能评论

评论列表(0条)

    保存