㈠ 求編寫一個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();
}
--------------------------------------------------------------