1樓:逆之流水
/每計算完一組資料後需要把 」m「 清0,樓上把m = 0放到」j < 3「的迴圈裡,迴圈的次數就多了,降低了效率。而且貌似邏輯上有點錯誤。
int main()
int a[50][4];
int i,j,k,m=0,s,n;
int b[12]=;
scanf("%d",&n);
for(i=0;im = 0; /
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
b[1]=b[1]+1;
for(k=0;kelsefor(k=0;ka[i][3]=m+a[i][2];
for(i=0;iprintf("%d",a[i][3]);
return 0;
2樓:網友
我試了一下 是可以執行。
且結果正確。
3樓:網友
題目都不說清楚很難看的。
c語言中如何實現大數計算
4樓:網友
/*關於任意精度大數的高精度求冪運算。
在以前的文章中看到介紹一種演算法,就是使用10000進製法,用陣列來儲存資料。
原理如下:先說計數方法:
十進位和其他進位都是用權和數字(好象這裡名詞不對,記不清楚了)來計數的:
比如 num=123456790
這個數的大小就是:
我們可以這樣來寫這個數:
令a=123,b=456,c=790
那麼,abc看起來就象和123456790是一樣的。
看到這裡你明白了吧?
我們可以分段表示乙個非常大的數而不必考慮它的溢位,而只用考慮段數是否大於乙個數即可。
舉個例子:上邊,a的最大值是999,bc也同樣都是,我們只用保證這三個數不溢位。
那麼,num就不會溢位。
再乙個乘法。
我們老祖宗給我們留下的算盤,很妙,它其實就是最基本的計算機之一。
我們算乘方時,只用乘以乙個數:
這樣來列式子:
即: 123 456 790
246 912 (1)580(溢位) 第三段有溢位,加到上一段。
呵呵,就這樣,打算盤一樣,進位。
至此,我們已經將需要計算的溢位和乘方計算問題解決了,只用看**了:
程式用乙個含有1024個無符號整數(上限65536)的陣列來存放各段資料。
每乙個數是一段,每乙個資料可以表示9999這麼大的數(便於進位)
計算一次,檢查是否超過9999,如果超過,把這一段減去10000,然後向上乙個位(即上乙個數)進1(這可以稱為 "一萬進位 ")
程式可以計算小於2的13605次方,大於0次方的任意的二的乘方。
其實這樣算起來一點也沒有必要,不過,我覺得好玩,過癮。
另外,藉助對數,可以很輕鬆的算出這些來,相比之下,本程式無任何誤差而已。
我稱這個演算法為 " '一萬進位 '算盤法 ":
#include " "
int main(void)
開始計算,外層為乘方次數,內層為每一位計算*/
for(tm_cnt=0;tm_cnt 9999) }
if(overflow==1)
if(position> 1023) }
printf( "%d ",temp[sgn_cnt-1]);
for(sgn_cnt=position-2;sgn_cnt> =0;sgn_cnt--)
return 0;
2的1000次方:
c語言:數的長度
5樓:網友
這個很好理解呀,設 n!=m=10^n(10的n次方) 只要求出n就知道m有多少位的數了,對等式兩邊取底 n=log10(m)=log10(1*2*..n)=log10(1)+log10(2)+.
log10(n) (對數的運演算法則 loga*b=loga+logb)
c語言中求兩個數之和
6樓:墨汁諾
#include
int main()
int a,b,sum;//一、定義變數,int代表資料型別——整數du,sum求和;
printf("請輸入兩個整數:");
scanf("%d %d",&a,&b);//二、輸入資料,%d對輸dao入型別的限制代表——整數,並把這倆個數分別給&a和&b兩個變數,&取位址運算子;
sum=a+b;//三、資料處理,把a、b的和賦值給sum;
printf("這兩個數的和是:%d",sum);//四、輸出結果,%d輸出乙個整形數這個數就是sum;
printf("計算完成,謝謝使用!");
return 0;//返回;
或:#include
voidmain()
7樓:網友
程式沒錯,注意輸入,輸入兩個數之間的間隔是逗號,因為scanf("%d,%d",&a,&b);就規定了格式。
c語言是一種電腦程式設計語言,它既具有高階語言的特點,又具有組合語言的特點。
它由美國貝爾研究所的於1972年推出,1978年後,c語言已先後被移植到大、中、小及微型機上,它可以作為工作系統設計語言,編寫系統應用程式,也可以作為應用程式設計語言,編寫不依賴計算機硬體的應用程式。
它的應用範圍廣泛,具備很強的資料處理能力,不僅僅是在軟體開發上,而且各類科研都需要用到c語言,適於編寫系統軟體,三維,二維圖形和動畫,具體應用比如微控制器以及嵌入式系統開發。
8樓:網友
很負責的告訴你,程式沒錯,注意輸入,輸入兩個數之間的間隔是逗號,因為scanf("%d,%d",&a,&b);就規定了格式了~~你再試試?
9樓:徐徐隨風倒
注意輸入格式問題。
比如你想給a賦值 4, b 賦值5
輸入的時候要用逗號分隔 4,5
10樓:網友
在我的編譯器上執行ok的。
錯誤情況未寫明,請描述你的輸入和輸出分別是什麼。
想了下可能有錯的地方:
1.輸入不是整數。
2.超限。3.輸入格式有誤。正確的是「乙個數」+「另乙個數」
11樓:唯一的啊啊
輸入格式由scanf(「%d,%d」,&a,&b); 這一行決定。
在c語言中怎樣表示乙個數的 「n」 次方
12樓:默nbhg陰
c語言中計算乙個數的n次方可以用庫函式pow來實現。函式原型:double pow(double x, double y)。
舉例如下:double a = pow(, 2); // 計算的平方。
注:使用pow函式時,需要將標頭檔案#include包含進原始檔中。
13樓:哼哈嗯嗯
#include
int number_power(const int n,int k)
return num;
int main()
拓展:c語言是一門通用計算機程式語言,應用廣泛。c語言的設計目標是提供一種能以簡易的方式編譯、處理低階儲存器、產生少量的機器碼以及不需要任何執行環境支援便能執行的程式語言。
14樓:網友
#include int fun(int x,int n) return s;} int main()/*執行結果:求2的10次方 1024*/
舉例如下double a = pow(, 2); // 計算的平方。
使用pow函式時,需要將標頭檔案#include包含進原始檔中。
在c語言中,10的n次方可以表示為pow(10, n) 其中pow函式在標頭檔案中,所以呼叫該函式的時候,必須將加進來,即#include 原型:extern float pow(float x, float y); 功能計算x的y次冪。 說明:
x應大於零,返回冪指數的結果。
15樓:安徽新華電腦
a^n a的n次方 符號是 6上面的那個。
16樓:網友
都說了是c語言,你就寫個vb語言,你是不會c語言嗎?
17樓:網友
#include
int a=5;
int mypow(int n)//這個函式是你要實現的void main()
18樓:諾比獅子醬
使用中庫函式pow來實現。
比如要表示2^n,可以一開始宣告乙個變數:n;然後輸入n的值;最後輸出2^n.
**如下:#include
#include
void main()
C語言相關數問題,C語言相關數問題
include int main int temp,n,number 90 key printf 請輸 入這組數字的個數 scanf d n printf n請輸入這組數字,每行乙個 n for temp 0 temp相關數 scanf d key printf n相關數為 n for temp 0...
C 中長度大小的問題!!C語言 字串長度問題!
這個涉及到結構體的記憶體對齊問題。一 結構體變數中成員的偏移量必須是成員大小的整數倍 0被認為是任何數的整數倍 二 結構體大小必須是所有成員大小的整數倍。1,首先對於結構體test。float佔4個位元組,char name 10 相當於2個節位元組,再加乙個2位元組。由於剩下的2位元組不足乙個fl...
用c語言列印,用c語言列印1 100的數 每打10個數換行
具體的 如下 include int main void int i for i 1 i 100 i printf d i if i 10 0 printf n return 0 主要就是應用for迴圈來列印數字,然後用選擇語句,當列印了十個數字就換行。c語言入門 3.接下來,我們又點 檔案 選擇新...