C语言中求两数相乘的程序

C语言中求两数相乘的程序,第1张

思路:double类型的范围: -1710(-308)~1710(308),如果两个数的乘积不超过这样的精度,可以直接使用符号进行运算。

参考代码:

#include<stdioh>

int main()

{

double a,b;

scanf("%lf%lf",&a,&b);

printf("%2lf",ab); //保留两位小数

return 0;

}

/

运行结果:

1205 5985

721192500

/

不需要列素数表,整除一定是素数,如果是合数早就被前面的素数整除掉了

Program fenjie;

var

x,i,x2,counter:integer;

begin

write(x,'=');

x2:=x;

counter:=0;

i:=2;

repeat

if x2 div i then

begin

inc(counter);

x2:=x2 div i;

if counter>1 then

write('');

write(i)

end

else

inc(i)

until x2=1;

readln

end

看看

main()

{

int i,n;

scanf("%d",&n);

for(i=1;i<=10;i++)

{

printf("%d\t", in);

if (i%2==1) printf("\n");

}

return 0;

}

可以先插入两个文本框控件用来放要输入的两个乘数,插入一个标签控件来放得出的积,界面可以自己设计,代码如下

Private Sub Text1_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then

If Len(Text1Text) <= 2 Then

Text2SetFocus

Else

Text1Text = ""

End If

End If

End Sub

Private Sub Text2_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then

Label1Caption = "=" & Str(Val(Text1Text) Val(Text2Text))

End If

End Sub

第一个文本框加了一个数位识别,如果要有新的变化,可以自己探索一下。

1

//10以内所有自然数相乘

package javaapplication1;

public class Multiply {

public static void main(String[] args ){

int i,j;

for(i=1;i<10;i++)

{for(j=1;j<=i;j++)

{ Systemoutprintf("%d%d=%-4d",i,j,ij);

}Systemoutprintf("\n");

}

}

}

2

//100以内所有自然数

package javaapplication1;

public class Naturalnumber {

public static void main(String[] args ){

int i,k=0;

for(i=0;i<100;i++)

{

k++;

Systemoutprintf("%-4d",i);

if(k%10==0) //控制每行输出10个自然数

Systemoutprintf("\n");

}

}

}

n项连乘取对数的结果通常称为对数积(log product)。

对数积的定义是:如果有一个数字序列(a1, a2, …, an),则对数积的值为:

log(a1 a2 … an) = log(a1) + log(a2) + … + log(an)

也可以使用下列等式表示对数积:

log(a1 a2 … an) = log(a1) + log(a2) + … + log(an)

例如,如果有一个数字序列(2, 3, 5, 7),则对数积的值为:

log(2 3 5 7) = log(2) + log(3) + log(5) + log(7)

#include<stdioh>

int main()

{int n,i;

 scanf("%d",&n);

 printf("%d=",n);

 for(i=2;n>1;i++)

 {for(;n%i==0;)

    {printf("%d",i);

     n/=i;

     if(n>1)printf("");

    }

 }

 printf("\n");

 return 0;

}

可以调用 matrix2() 或 matrix() 做矩阵相乘。

下面主函数 以 调用 matrix() 为例,介绍过程:

输入参数,动态分配数组,输入矩阵数据,调用,输出,释放内存。

#include<iostream>

using namespace std;

#include<stdioh>

/---------------------

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

a[ny][nk]

b[nk][nx]

c[ny][nx]

---------------------/

void matrix2(int a,int b, int c, int nx, int ny, int nk)

{

int i,j,k;

for(j=0;j<ny;j++){

for(i=0;i<nx;i++){

c[jnx+i]=0;

for(k=0;k<nk;k++)c[jnx+i]+= a[jnk+k] b[knx+i];

};

};

}

/---------------------

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

---------------------/

void matrix(int b,int c, int a, int nx, int ny, int nk)

{

int i,j,k;

for (j=0;j<ny;j++)for(i=0;i<nx;i++)a[j][i]= 0;

for(j=0;j<ny;j++){

for(i=0;i<nx;i++){

for(k=0;k<nk;k++)a[j][i]+= b[j][k]c[k][i];

};

};

}

int main()

{

int i,j,k,tmp;

int b_row,b_col;

int c_row,c_col;

int a_row,a_col;

int b,c,a;

printf("please enter b_row b_col of matrix B\n");

scanf("%d %d",&b_row,&b_col);

c_row = b_col;

printf("please enter c_col of matrix C\n");

scanf("%d",&c_col);

a_row = b_row;

a_col = c_col;

a = (int ) malloc(sizeof(int ) a_row);

for (j=0;j<a_row;j++){

a[j] = (int ) malloc(sizeof(int) a_col);

}

b = (int ) malloc(sizeof(int ) b_row);

for (j=0;j<b_row;j++){

b[j] = (int ) malloc(sizeof(int) b_col);

}

c = (int ) malloc(sizeof(int ) c_row);

for (j=0;j<c_row;j++){

c[j] = (int ) malloc(sizeof(int) c_col);

}

if (!c[c_row-1]) {

printf("no enought memory\n");exit(0);

}

printf("Please input int matrix b[%d][%d]\n",b_row,b_col);

for (j=0;j<b_row;j++)

for (i=0;i<b_col;i++){

scanf("%d",&tmp);

b[j][i] = tmp;

}

printf("Please input int matrix c[%d][%d]\n",c_row,c_col);

for (j=0;j<c_row;j++)

for (i=0;i<c_col;i++){

scanf("%d",&tmp);

c[j][i] = tmp;

}

matrix( b ,c,a, a_col, a_row, b_col);

for(j=0;j<a_row;j++)

{

for (i=0;i<a_col;i++) printf("%d ",a[j][i]);

printf("\n");

};

for (i=0;i<a_row;i++) free((void )a[i]); free((void )a);

for (i=0;i<b_row;i++) free((void )b[i]); free((void )b);

for (i=0;i<c_row;i++) free((void )c[i]); free((void )c);

return 0;

}

数据和结果例子:

please enter b_row b_col of matrix B

3 2

please enter c_col of matrix C

3

Please input int matrix b[3][2]

1 2 3 4 5 6

Please input int matrix c[2][3]

1 2 3 4 5 6

9 12 15

19 26 33

29 40 51

以上就是关于C语言中求两数相乘的程序全部的内容,包括:C语言中求两数相乘的程序、素数连乘、c语言编写一个程序,要求输入一个数,输出该数分别与1~10相乘的结果等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/zz/9693557.html

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

发表评论

登录后才能评论

评论列表(0条)

保存