㈠ 求编写一个c语言大数乘法的程序,尽量简单一些,要求每一步有详细讲解。

#include<iostream>

#include<fstream>

#include<string>//加入这行

usingnamespacestd;

voidmultiply(constchar*a,constchar*b);

intmain()

{

stringnum1,num2;//初始状态用string来存储大数

cout<<"现在,来两个大数吧!"<<endl;

cin>>num1>>num2;

constchar*p1=num1.c_str();//将string转为constchar*

constchar*p2=num2.c_str();//将string转为constchar*

multiply(p1,p2);

system("pause");

return0;

}

voidmultiply(constchar*a,constchar*b)

{

inti,j,ca,cb,*s;

ca=strlen(a);

cb=strlen(b);

s=(int*)malloc(sizeof(int)*(ca+cb));//分配存储空间

for(i=0;i<ca+cb;i++)s[i]=0;//每个元素赋初值0

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

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

s[i+j+1]+=(a[i]-'0')*(b[j]-'0');


for(i=ca+cb-1;i>=0;i--)//这里实现进位操作,从低位到高位开始进位

if(s[i]>=10)//将大于10的数的进位加到高位,即i-1位,i位留余数

{

s[i-1]+=s[i]/10;

s[i]%=10;

}

char*c=(char*)malloc((ca+cb)*sizeof(char));//分配字符数组空间,因为它比int数组省!

i=0;while(s[i]==0)i++;//跳过头部0元素

for(j=0;i<ca+cb;i++,j++)c[j]=s[i]+'0';

c[j]='';

for(i=0;i<ca+cb;i++)cout<<c[i];

cout<<endl;

free(s);

}

㈡ c语言乘法计算

严格来讲,你的代码是错误的,用int的b接收double型的a的计算结果,是不可以的,即使回结果是整数。答
结果当然也会出现误差。正确的应该是:
double a=10.3845;
double b;
b=10000*a;
printf("%lf",b);
补充:把上面 printf("%lf",b);改为printf("%.0lf",b); 就能使后面无小数。

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

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

参考代码:容

#include<stdio.h>
intmain()
{
doublea,b;
scanf("%lf%lf",&a,&b);
printf("%.2lf",a*b);//保留两位小数
return0;
}
/*
运行结果:
12055985
7211925.00
*/

㈣ C语言编程九九乘法表

1、首先打开抄VC++6.0软件,点袭击左上角的file,然后选择新建,这里我们新建一个控制台应 用程序,并输入工程名。

㈤ 求高手用C语言写个乘法的程序~

#include<stdio.h>
int i;
int n;
int aa[1000]; /*最多1000个数相乘,可以自己修改*/
int sum=1;

void main()
{

printf("请输入要求相乘数的个数:");
scanf("%d",&n);
printf("请输入要求相乘数的数字:");
printf("\n");
for(i=0;i<n;i++)
{
scanf("%d",&aa[i]);
sum=sum*aa[i];
}
printf("计算结果为%d:",sum);
printf("\n");
}

㈥ 乘法在c语言中怎么表示

估计你的意思是说C语言编译成汇编语言之后乘法怎么表示吧,因为在汇编中加法确实是用ADD表示的,下面给你运算符表:

ADD 加法.
ADC 带进位加法.
INC 加 1.
AAA 加法的ASCII码调整.
DAA 加法的十进制调整.
SUB 减法.
SBB 带借位减法.
DEC 减 1.
NEC 求反(以 0 减之).
CMP 比较.(两操作数作减法,仅修改标志位,不回送结果).
AAS 减法的ASCII码调整.
DAS 减法的十进制调整.
MUL 无符号乘法.
IMUL 整数乘法.
以上两条,结果回送AH和AL(字节运算),或DX和AX(字运算),
AAM 乘法的ASCII码调整.
DIV 无符号除法.
IDIV 整数除法.
以上两条,结果回送:
商回送AL,余数回送AH, (字节运算);
或 商回送AX,余数回送DX, (字运算).
AAD 除法的ASCII码调整.
CBW 字节转换为字. (把AL中字节的符号扩展到AH中去)
CWD 字转换为双字. (把AX中的字的符号扩展到DX中去)
CWDE 字转换为双字. (把AX中的字符号扩展到EAX中去)
CDQ 双字扩展. (把EAX中的字的符号扩展到EDX中去)

㈦ 如何用C语言写出一个乘法口诀表。

编写如下:

#include<stdio.h>

int main()

{int i,j;for(i=1;i<=9;i++)

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

{printf("%d*%d=%d ",i,j,i*j);}

printf(" ");}return 0;}

运行结果

(7)c语言乘法程序扩展阅读:

其余方法如下:

乘法口诀参考答案

main()

{ int a=1,b=1;

clrscr();

do


{ do{ printf(" %d*%d=\%d ",b,a,a*b);

b++;} while (b<=a);


printf(" ");

a++;

b=1;} while (a<10);}


乘法口诀参考答案
main()
{ int a=1,b=1;clrscr();

while (a<10)

{ while (b<=a)


{ printf(" %d*%d=%d ",b,a,a*b);

b++}

printf(" ");

a++;b=1;}}


乘法口诀

main()

{ int a=1,b=1;

clrscr();


loop: printf(" %d*%d=%d ",b,a,a*b);

if(a==b)

{ printf(" ");


a++;

b=1;

if(a>9) goto end;}


else b++;

goto loop;

end:;}

㈧ 求c语言矩阵乘法程序

1,若程序定义为三行三列的矩阵,并在主函数中键盘赋值。请编写函数juzhen(int a[][3],int n),函数功能是:使矩阵左下角元素中的值乘以.例如:若矩阵中的值为:
1 9 7
2 3 8
4 5 6
n=3,则矩阵值变为:
1 9 7
6 9 8
12 15 18
注:二维数组下三角元素每行最后元素的列标和该列的列号一致

#include <stdio.h>
int juzhen(int a[][3],int n)
{
int i,j;
for (i=1;i<3;i++)
for (j=0;j<=i;j++)
a[i][j]=a[i][j]*n;
}
main()
{
int i,j,a[3][3],m;
clrscr();
printf("please enter 9 numbers :\n");
for (i=0;i<3;i++)
for (j=0;j<3;j++)
scanf("%d",&a[i][j]);
printf("the old ju zhen is:\n");
for (i=0;i<3;i++)
{
for (j=0;j<3;j++)
printf("%3d",a[i][j]);
printf("\n");
}
printf("please enter a int number:\n");
scanf("%d",&m);
juzhen (a,m);
printf("the new ju zhen is:\n");
for (i=0;i<3;i++)
{
for (j=0;j<3;j++)
printf("%3d",a[i][j]);
printf("\n");
}
}
2,请编写函数juzhen,该函数的功能是:将三行四列矩阵x乘以四行三列矩阵y,结果放在三行三列矩阵中。矩阵相乘的基本方法是:矩阵Xy中行列下标分别为i,j的元素的值,是矩阵X中第i行上四个元素与矩阵Y中第j列上四个元素对应相乘的积。
X和Y矩阵原型可运行后看到!
#include <conio.h>
#include <stdio.h>
void juzhen (int a[3][4],int b[4][3],int ab[3][3])
{
int i,j,z;
for (i=0;i<3;i++)
for (j=0;j<4;j++)
for (z=0;z<3;z++)
ab[i][z]=ab[i][z]+a[i][j]*b[j][z];/*此得为要填写的内容*/
}
main()
{
int x[3][4]={1,0,1,1,2,1,0,1,1,2,0,3};
int y[4][3]={1,1,1,0,0,0,2,1,1,1,1,3};
int xy[3][3]={0},i,j;
clrscr();
juzhen (x,y,xy);
printf("x ju zhen is:\n");
for (i=0;i<3;i++)
{
for (j=0;j<4;j++)
printf("%3d",x[i][j]);
printf("\n");
}
printf("y ju zhen is:\n");
for (i=0;i<4;i++)
{
for (j=0;j<3;j++)
printf("%3d",y[i][j]);
printf("\n");
}
printf("xy ju zhen is:\n");
for (i=0;i<3;i++)
{
for (j=0;j<3;j++)
printf("%3d",xy[i][j]);
printf("\n");
}
}
由于你没有说要求,我就写了两个,这是两道比较精典的求c语言矩阵乘法程序

㈨ c语言九九乘法表程序怎么写

一下代码生成的样式和你的样式一模一样。连空格都不回偏离。答请点赞。
#include <stdio.h>
void main()
{
int i,j;
for (i=1;i<=9;i++)
{
printf("%d ",i);
for (j=1;j<=i;j++)
printf("%d ",j*i);
printf("\n");
}
printf(" ");
for(i=1;i<=9;i++)
printf("%d ",i);
getch();
}
--------------------------------------------------------------