当前位置:首页 » 编程语言 » c语言数字a和数组b相乘
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言数字a和数组b相乘

发布时间: 2023-01-18 10:45:20

A. 在c语言中,如何一维数组a表示的行向量与一维数组b表示的列向量的乘积,函数返

行等于列的可以相乘。假定行列数 为 n, 用 函数 float fun(float *a, float *b, int n) 计算。

#include <stdio.h>
float fun(float *a, float *b, int n){
int i;
float sum=0.0;
for (i=0;i<n;i++) sum=sum+a[i]*b[i];
return sum;
}
main()
{
float x[5]={1,2,3,4,5};
float y[5]={1,2,3,4,5};
float r;
r = fun(x,y,5); // 调用的例子
printf("%g",r);
return 0;
}

B. 用c语言编2个数组元素之间的乘积

main(){
int a[10],b[10],c[10];

int i;
for(i=0;i<10;i++){
printf("Enter a arr number %d :",i+1);
scanf("%d",&a[i]);
printf("Enter b arr number %d :",i+1);
scanf("%d",&b[i]);
}
for(i=0;i<10;i++){
c[i]=a[i]*b[i]; //得到相乘结果存入C数组.
}

for(i=0;i<10;i++)
printf("\n%d",c[i]);//输出结果
}

C. c语言编程中怎么实现两个二维数组相乘,帮帮忙。

这是我的代码,自己改改,不懂QQ896776703
#include<stdio.h>
#define MAX 10
void matrixMultipy(int A[][MAX],int B[][MAX],int C[][MAX],int n,int m,int s);
void main()
{
int n,m,s,i,j,A[MAX][MAX]={0},B[MAX][MAX]={0},C[MAX][MAX]={0};
printf("Please input row and column of the two matrix:");
scanf("%d%d%d",&n,&m,&s);
printf("Please input the elements of the two matrix:\n");
printf("The first one:\n");
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
scanf("%d",&A[i][j]);//A[n][m]
}
}

printf("The next one:\n");
for(i=0;i<m;i++)
{
for(j=0;j<s;j++)
{
scanf("%d",&B[i][j]);//B[m][s]
}
}

matrixMultipy(A,B,C,n,m,s);//注意二维数组做实参的形式

printf("The result is:\n");
for(i=0;i<n;i++)
{
for(j=0;j<s;j++)
{
printf("%-5d ",C[i][j]);//C[n][s]
}
printf("\n");
}

}

void matrixMultipy(int A[][MAX],int B[][MAX],int C[][MAX],int n,int m,int s)
{
int i,j,k;
for(i=0;i<n;i++)
{
for(j=0;j<s;j++)//i和j控制C[][]的行与列
{
for(k=0;k<m;k++)//控制行与列相乘时往下走
{
C[i][j]+=A[i][k]*B[k][i];
}
}
}
}

D. C语言二维数组相乘

表达式赋值方向错了,赋值时,变量要放在=号左右,=号右边放表达式:
错: a[i][j]*b[i][j]=c[i][j];
对: c[i][j]=a[i][k]*b[k][j]
另外,乘法要用三重循环
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
for(k=0;k<3;k++) /*以下两行我修改了*/
c[i][j]=a[i][k]*b[k][j];
}
}

E. C语言2个数相乘

两数相乘的C语言编程:
#include <stdio.h>
void main()
{
int a,b,c;
scanf("%a%b",&a,&b);//输入两个整数
c=a*b; //两个数的相乘运算
printf("两数相乘的结果: %d\n",c);
}

F. c语言 求出矩阵a和矩阵b的乘积,结果存入矩阵c中,并按矩阵的形式将c打印输出。其中a是3行2列数

#include<stdio.h>
#include<stdlib.h>
#defineROW12
#defineCOL12
#defineROW2COL1
#defineCOL24
intmain(void)
{
intarr1[ROW1][COL1]=
{
{1,2},
{3,4}
},
arr2[ROW2][COL2]=
{
{1,2,1,2},
{1,2,1,2}
},
arr3[ROW2][COL2],i,j,k;
for(i=0;i<ROW1;i++)
{
for(j=0;j<COL2;j++)
{
arr3[i][j]=0;
for(k=0;k<ROW2;k++)
{
arr3[i][j]+=arr1[i][k]*arr2[k][j];
}
}
}
for(i=0;i<ROW2;i++)
{
for(j=0;j<COL2;j++)
{
printf("%-3d",arr3[i][j]);
}
printf(" ");
}
system("pause");
return(0);
}

G. C语言2个数相乘

两数相乘的C语言编程:



(7)c语言数字a和数组b相乘扩展阅读:

C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

C 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。

H. C语言编写一个函数将两个一维数组对应元素相乘

两个一维数组的长度必须相同,否则无法相乘。
思路为,循环遍历数组,并将对应元素相乘,结果存到第三个数组中。
以整型为例,示例代码如下:
void array_multi(int *a, int *b, int *r, int len)//将长度为len的数组a,b对应元素相乘,结果存于r中。
{
int i;
for(i = 0; i < len; i ++)//遍历数组。
r[i] = a[i]*b[i];//对应元素相乘,并存于r中。
}

I. 有一下两个数组,用c语言或java编程实现数据a中的元素分别与数组b每行元素对应相乘并相加

class test{
public static void main(String [] args){

int b[][]={{33,32,56,45,33},{77,33,65,45,23},{43,55,43,67,65}};
int a[]={12,16,10,14,15};
for(int i=0;i<3;i++){
for(int j=0;j<5;j++){
s[i] = b[i][j]*a[j];
}
}

for(int i=0;i<3;i++){
System.out.println(s[i]);
}
}
}

J. 用C语言编写两个100位的数相乘,数用数组表示,最好带注释

#include<stdio.h>
/**两个数相加*/
void Add_test(char *Num_a,int a_len,char *Num_b,int b_len,char *result,int *result_len)
{
int sum = 0,i,j;
j = a_len < b_len ? b_len: a_len;
for(i = 0;i < j;i ++)
{
if(a_len > i)
sum += Num_a[a_len - i - 1];
if(b_len > i)
sum += Num_b[b_len - i - 1];
result[j - i] = sum%10;
sum /=10;
}
if(sum == 0)
{
for(i = 0;i < j;i ++)
{
result[i] = result[i+1]
}
*result_len = j;
}
else
{
result[0] = sum;
*result_len = j + 1;
}
}

/*一个高位数和一个个位数相乘*/
void Mult_test(char *Num_a,int a_len,char Num_b,char *result,int *result_len)
{
int mult = 0,i;
for(i = 0;i < a_len;i ++)
{
mult = mult + Num_a[a_len - i - 1]*Num_b;
result[j - i] = mult%10;
mult /=10;
}
if(mult == 0)
{
for(i = 0;i < j;i ++)
{
result[i] = result[i+1]
}
*result_len = j;
}
else
{
result[0] = mult ;
*result_len = j + 1;
}
}

/*高位数和高位数相乘*/
void Mult_M(char *Num_a,int a_len,char *Num_b,int b_len,char *result,int *result_len)
{
int i,tmp_len;
char * tmp = (char *)malloc(sizeof(char)*(a_len+b_len));
*result_len = 1;//结果的初始长度
result[0] = 0;//结果的初始值为0
for(i = 0;i < a_len;i ++)
{
Mult_test(Num_b,b_len,Num_a[i],tmp,&tmp_len);//Num_a的每一位与Num_b相乘
if((a_len - i - 1) != 0)//第i位算出来的结果后面加(a_len - i - 1)个0
{
memset(tmp+tmp_len,0,a_len - i - 1);
tmp_len = tmp_len + a_len - i - 1;
}
Add_test(result,*result_len,tmp,tmp_len,result,result_len);//把Num_a的每一位与Num_b相乘的结果与以前的结果相加
}
free(tmp);
}