當前位置:首頁 » 編程語言 » 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);
}