本文目录一览:
1、用C语言编写程序(两个矩阵相加)
2、C语言编程两个数求和
3、c语言输入两个整数a和b如何求和?
4、C语言的两个数相加怎么写?
用C语言编写程序(两个矩阵相加)
用C语言编写程序(两个矩阵相加)代码如下:
/**
MatrixAddition.c
实现两个矩阵相加
*/
#include <stdio.h>
const int COLS=3;
void printMatirx(int *pArray,int rows,int cols);
void printMatirx2(int (*pArray)[COLS],int rows);
int main()
{
int A[3][4] = {
{15,10,9,12},
{18,14,8,7},
{16,13,6,11}
};
printf("矩阵A=\n");
printMatirx(A,3,4);
int B[3][4] = {
{4,3,5,2},
{0,9,6,1},
{5,7,2,6}
};
printf("矩阵B=\n");
printMatirx(B,3,4);
int C[3][4];
int i,j;
printf("矩阵A+矩阵B=\n");
for(i=0; i < 3; i++) // 控制行
{
for(j=0; j < 4; j++)
{
C[i][j] = A[i][j] + B[i][j];
}
}
int (*p)[COLS] = C;
printMatirx2(p,3);
/* 结果应为:
19 13 14 14
18 23 14 8
21 20 8 17
*/
printf("矩阵C-矩阵A=\n");
for(i=0; i < 3; i++) // 控制行
{
for(j=0; j < 4; j++)
{
printf("%3d", C[i][j] - A[i][j]); // 输出结果
}
printf("\n");
}
/* 结果应为:
4 3 5 2
0 9 6 1
5 7 2 6
*/
// 矩阵数乘:
int D[3][4];
printf("矩阵D:\n");
for(i=0; i < 3; i++) // 控制行
{
for(j=0; j < 4; j++)
{
D[i][j] = 1;
printf("%d\t", D[i][j]); // 输出结果
}
printf("\n");
}
int mul;
printf("矩阵D数乘以:");
scanf("%d", &mul);
printf("矩阵D数乘以%d=\n", mul);
for(i=0; i < 3; i++) // 控制行
{
for(j=0; j < 4; j++)
{
D[i][j] = D[i][j] * mul;
printf("%d\t", D[i][j]); // 输出结果
}
printf("\n");
}
return 0;
}
C语言矩阵加减法函数:
void matrix_a(double **a_matrix, const double **b_matrix, const double **c_matrix, int krow, int kline, int ktrl)
{
// a_matrix = b_matrix + c_matrix
// krow : 行数
// kline : 列数
// ktrl : 大于0: 加法,不大于0: 减法
int k, k2;
for (k = 0; k < krow; k++)
{
for(k2 = 0; k2 < kline; k2++)
{
a_matrix[k][k2] = b_matrix[k][k2] + ((ktrl > 0) ? c_matrix[k][k2] : -c_matrix[k][k2]);
}
}
}
参考资料:
C语言编程两个数求和
用数组做,高精度算法。数组的每一个元素放一个位,如 a[0]
代表个位,a[1]
代表十位,依此类推。
下面是算法的实现:
c[0] = (a[0] + b[0]) % 10; // c[x]为结果,a[x],b[x]为两个加数
overflow = (a[0] + b[0]) / 10; // overflow为进位的值
for (i = 1; i < n; i++) // n为你两个加数的最大位数
{
c[i] = (a[i] + b[i] + overflow) % 10; // a和b的第i位相加再加上第i-1位的进位的和的个位是c第i位的值
overflow = (a[i] + b[i] + overflow) / 10; // a和b的第i位相加再加上第i-1位的进位的和的十位是向高位的进位
}
当然读数的时候要注意,由于位数太大,可以将其当成字符串读,再按位分离。(可能还有其他办法,不列举)
举个实例:
987 + 87 = ?
- 个位相加
c[0] = (a[0] + b[0]) % 10 = (7 + 7) % 10 = 4
,进位overflow = (a[0] + b[0]) / 10 = 1
- 十位相加
c[1] = (a[1] + b[1] + overflow) % 10 = (8 + 8 + 1) % 10 = 7
,进位overflow = (a[1] + b[1] + overflow) / 10 = 1
- 百位相加
c[2] = (a[2] + b[2] + overflow) % 10 = (9 + 0 + 1) % 10 = 0
,进位overflow = (a[1] + b[1] + overflow) / 10 = 1
...
c语言输入两个整数a和b如何求和?
#include <stdio.h>
int main()
{
int a, b, sum;
printf("请输入两个整数:");
scanf("%d %d", &a, &b); // 输入a、b
sum = a + b; // 数据处理,把a、b的和赋值给sum
printf("这两个数的和是:%d\n", sum);
return 0;
}
简介
C语言是一门面向过程的计算机编程语言,与 C++、C#、Java 等面向对象编程语言有所不同。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。C语言描述问题比汇编语言迅速、工作量小、可读性好、易于调试、修改和移植,而代码质量与汇编语言相当。
C语言的两个数相加怎么写?
int a, b, c;
scanf("%d%d", &a, &b); // 输入a,b
c = a + b; // 两数相加给c
printf("%d", c); // 输出c
简介
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。 尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。 二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言制定了一套完整的国际标准语法,称为 ANSI C,作为C语言最初的标准。