當前位置:首頁 » 編程語言 » C語言一個數的各個數相乘
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

C語言一個數的各個數相乘

發布時間: 2022-04-12 20:03:45

『壹』 c語言實現各位數字的相乘

C語言用這個,C++用樓上那個。

#include<stdio.h>
int main()
{
int n, i;
char c;
printf("\n Please input an integer number (decimal), this program will get the proct of every digit of the number. End the input with \"Enter\".\n ");
n=1;
c=getchar();

while(c !='\n')
{ if(c<'0' || c>'9')
{ printf("\n Error! The input is incorrect. The character input just now is not a digital. Finish.\n",n);
return 0;
}
if(c=='0')
{ printf("\n The character input just now is \"0\", the proct is \"0\". No need to input more.\n Finish.\n",n);
return 0;
}
n*=(int)(c-48);
c=getchar();
}

printf("\n The proct is \"%d\". \n Finish.\n", n);

return 1;
}

『貳』 c語言多個數相乘

#include <stdio.h>

int main(){

int t=1;

for(int i=1;i<=5;i++)

t*=i;

printf("%d",t);

return 0;

}

『叄』 C語言大整數相乘

我用C語言寫了一個,在VC2005下測試通過。

#include <stdio.h>
#include <string.h>

typedef unsigned char CHAR;
typedef unsigned int UINT;

/*十進制形式的a與b,注意低位在前高位在後*/
CHAR a[10000];/*被乘數*/
CHAR c[20000];/*乘積和乘數*/
UINT temp1,temp2;/*用來存放中間結果*/

UINT da, db; /*記錄a和b的位數*/

/*清零*/
void Zero( CHAR* x, UINT n )
{
UINT i;
for ( i = 0; i < n; i ++ )
x[i] = '0';
}

CHAR CharToNum( CHAR c )
{
return c - 0x30;
}

CHAR NumToChar( CHAR c )
{
return c + 0x30;
}

/*這個函數模擬大整數的左移*/
void LShift( CHAR* x, int digits )
{
UINT i;
for ( i = 0; i < digits - 1; i ++ ) {
x[i] = x[i+1];
}
x[digits] = 0;
}

/*這個乘法函數計算大整數a與給定的y的乘積,乘積加入c右半部*/
void OneDigitMultiply( UINT y )
{
UINT i;
UINT cm = 0; /*乘法進位*/
UINT ca = 0; /*加法進位*/
if ( y != 0 ) {
for ( i = 0; i < da; i ++ ) {
/*乘*/
temp1 = ((UINT)a[i]) * y + cm;
cm = temp1 / 10;
temp1 %= 10;

/*加*/
temp2 = ((UINT)c[i+10000]) + temp1 + ca;
if ( temp2 > 9 ) {
ca = 1;
temp2 -= 10;
} else {
ca = 0;
}
c[i+10000] = temp2;
}
c[da+10000] += cm + ca;
}
else {
/*如果被乘數本位是0就直接返回*/
return;
}
}

/*這個函數用來輸出*/
void OutputResult()
{
CHAR* p = c + 20000;
while( *p == 0 ) {
p --;
}
printf("乘積是:\n");
while( *p != 'x' ) {
printf("%d", *p);
p --;
}
}

void main()
{
Zero( a, 10000 );
Zero( c, 10000 );
printf("輸入被乘數:");
scanf("%s",a);
printf("輸入乘數:");
scanf("%s",c);

/*記錄位數*/
da = strlen( (const char*)a );
db = strlen( (const char*)c );
/*反轉以使低位在前*/
strrev( (char*)a );
strrev( (char*)c );

UINT i;

/*a與b存儲的是char字元,減去0x30就能直接當數字使用了*/
for ( i = 0; i < 10000; i ++ ) {
if ( a[i] != '\0' ) {
a[i] = CharToNum( a[i] );
}
}
for ( i = 0; i < 20000; i ++ ) {
if ( c[i] != '\0' ) {
c[i] = CharToNum( c[i] );
}
}

/*這個乘法演算法可以參看二進制乘法器的原理*/
for ( i = 0; i < db; i ++ ) {
OneDigitMultiply( c[0] );
LShift(c, 20000);
}
c[10000-db-1] = 'x'; /*給數字尾部作個標記*/

OutputResult();

getchar();
getchar();
}

第二題:
#include <stdio.h>

void main()
{
float a;
scanf("%f",&a);
if ( a - (int)a == 0 ) {
printf("是整數\n");
}
else {
printf("不是整數\n");
}
getchar();
getchar();
}

『肆』 C語言問題,要求輸入一個數,輸出該數分別於1~10的數相乘的結果。有什麼比較簡單的方法嗎

用for循環:

inta;
scanf("%d",&a);
for(inti=1;i<11;i++)
{
printf("%d*%d=%d ",a,i,a*i);
}

『伍』 c語言編寫三個數乘積

好久都沒碰過c語言了。。。除非你輸入的最後一個數是最小的,否則一直你的max會一直都輸出的是最後一個數字
if(z>x,z>y)只要滿足一個條件,就會執行
a=z
你是要同時滿足兩個條件,所以必須要加上and
也就是要寫成if(z>x&&z>y)
上面的也要這么改

『陸』 C語言2個數相乘

兩數相乘的C語言編程:



(6)C語言一個數的各個數相乘擴展閱讀:

C語言是一門通用計算機編程語言,應用廣泛。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。

C 語言是以函數形式提供給用戶的,這些函數可方便的調用,並具有多種循環、條件語句控製程序流向,從而使程序完全結構化。

『柒』 C語言,求任意兩數相乘的積!

#include <stdio.h>

void main()

{

int a,b,c;

printf("請輸入a和b的值:");

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

c = a * b;

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

}

(7)C語言一個數的各個數相乘擴展閱讀:

C語言中,運算符的運算優先順序共分為15 級。1 級最高,15 級最低。 在表達式中,優先順序較高的先於優先順序較低的進行運算。而在一個運算量兩側的運算符 優先順序相同時,則按運算符的結合性所規定的結合方向處理。

結合性:C語言中各運算符的結合性分為兩種,即左結合性(自左至右)和右結合性(自右至左)。例如算術運算符的結合性是自左至右,即先左後右。如有表達式x-y+z 則y 應先與「-」號結合,執行x-y 運算,然後再執行+z 的運算。這種自左至右的結合 方向就稱為「左結合性」。

而自右至左的結合方向稱為「右結合性」。最典型的右結合 性運算符是賦值運算符。如x=y=z,由於「=」的右結合性,應先執行y=z 再執行x=(y=z)運算。C語言運算符中有不少為右結合性,應注意區別,以避免理解錯誤。

『捌』 用C語言程序輸入一個三位數,計算並輸入各位數上的乘積

#include<stdio.h>
void main()
{
int a;
printf("請輸入一個三位數:");
scanf("%d", &a);
printf("各位數上的乘積為:%d\n", (a/100) * (a%10) * (a/10%10));
}

『玖』 用C語言編一個程序求一個數各位數之積

這個問題其實很簡單!
辦法有兩個,
1.因為不知道你要輸入的是幾位數,所以可以用動態數組,輸入數字之後,每一個位置其實就只有一個數字,那麼就可以直接用每個位置的數字相乘!
2,不用動態數組的話,可以直接用int,思路是,不停的除以10,求余數,得到的余數就是那一位的數字!一直到余數為0的時候停止!
這里只給出大概思路。可以根據這兩個思路自己編!
祝你成功!

『拾』 C語言中怎樣編寫求出任意數的所有乘積

int main(void)
{
int i,n;

scanf("%d",&n);

for(i=1;i<n/2;i++){f
if(0==n%i)
printf("%d\n",i);
}

printf("%d\n",n);
}