c語言數組運算
A. 用c語言數組計算兩個數的四則運算,考慮兩個數非常大的情況
假設A
100位、B
100位分別存到數組m、n中。(位數不一樣時,小的數補零填充)
1、加法時,從低位按位相加、進位
2、減法時,重高位開始比較大小,然後從低位開始按位減、借位
3、乘法時,低位按位乘、進位
4、除法時,用模運算求整數商,小數部分折半減,逐步精確
附:直接點的方法也可以先轉化成二進制、然後用補碼運算
B. C語言中關於數組間的運算
這種運算,在線性代數裡面叫矩陣乘法
A[2][3]×B[3][2]結果是C[2][2]
A={{1,2,3},{4,5,6}},
B={{1,5},{5,3},{8,1}},
C=A×B={{35,14},{77,41}}。
其中C[i][j]=A的第i行與B的第j列各個元素相乘後,再相加得到的和。
如C[1][1]={4,5,6}*{5,3,1}=4*5+5*3+6*1=41
C. C語言中計算數組長度的方法是什麼
用 sizeof 可以獲得數據類型或變數在內存中所佔的位元組數。同樣,用 sizeof 也可以獲得整個數組在內存中所佔的位元組數。因為數組中每個元素的類型都是一樣的,在內存中所佔的位元組數都是相同的,所以總的位元組數除以一個元素所佔的位元組數就是數組的長度。
比較特別的是,比特右移(>>)運算符可以是算術(左端補最高有效位)或是邏輯(左端補0)位移。例如,將11100011右移3比特,算術右移後成為11111100,邏輯右移則為00011100。
運算符的優先順序從高到低大致是:單目運算符、算術運算符、關系運算符、邏輯運算符、條件運算符、賦值運算符(=)和逗號運算符。
C語言特點:
其一,廣泛性。C語言的運算范圍的大小直接決定了其優劣性。C語言中包含了34種運算符,因此運算范圍要超出許多其它語言,此外其運算結果的表達形式也十分豐富。
其二,簡潔性。9類控制語句和32個關鍵字是C語言所具有的基礎特性,使得其在計算機應用程序編寫中具有廣泛的適用性,不僅可以適用廣大編程人員的操作,提高其工作效率,同時還能夠支持高級編程,避免了語言切換的繁瑣。
D. C語言數組整體可以參加各種數學運算對嗎
不對
C語言數組不可以整體賦值,更何況參加數學運算了。
一個數組有10個元素,如果和一個變數相加,怎麼能知道是那個元素起作用了。
E. C語言數組里的元素怎麼加減乘除
加法:
voidAdd(char s1[],char s2[])//參數為兩個字元串數組{ int num1[M],num2[M]; int i,j; len1 = strlen (s1); len2 = strlen (s2); for (i = len1-1,j = 0; i >= 0; i--)//num1[0]保存的是低位 num1[j++]= s1[i] - '0'; for (i = len2-1,j = 0; i >= 0; i --) num2[j++] = s2[i] - '0'; for (i = 0; i < M; i ++) { num1[i] += num2[i]; if (num1[i] > 9) { num1[i] -= 10; num1[i+1] ++; } } for(i = M-1; (i >= 0)&&(num1[i] == 0); i --) ;//找到第一個不是 0的數的位置 if (i>= 0) //從高位到低位輸出每個數 for(; i >= 0; i --) printf ("%d",num1[i]); else printf ("0\n");}
減法等於加上負的數
乘法
voidMulti(char str1[],char str2[]){ int len1,len2,i,j; int a[MAX+10],b[MAX+10],c[MAX*2+10]; memset (a,0,sizeof(a)); memset (b,0,sizeof(b)); memset (c,0,sizeof(c)); len1=strlen(str1); for(j=0,i=len1-1; i>=0; i--)//把數字倒過來 a[j++]=str1[i]-'0'; len2=strlen(str2); for(j=0,i=len2-1; i>=0; i--)//倒轉第二個整數 b[j++]=str2[i]-'0'; for(i=0; i<len2; i++)//用第二個數乘以第一個數,每次一位 for(j=0;j<len1; j++) c[i+j]+= b[i]*a[j]; //先乘起來,後面統一進位for(i=0;i<MAX*2; i++)//循環統一處理進位問題 if(c[i]>=10) { c[i+1]+=c[i]/10; c[i]%=10; } for(i=MAX*2; (c[i]==0)&&(i>=0);i--);//跳過高位的0 if(i>=0) for(; i>=0; i--) printf("%d", c[i]); else printf("0"); pritnf("\n");} 除法最難 看這里吧http://wenku..com/link?url=rvqp3ApH2ujxsqTnoEnUmxc-_-y(你們竟然會布置除法! 一般都是到乘法)
F. 關於C語言數組的運算。
首先你可以進行單步測試自己看看能不能學習到過程(程序員以後寫程序排錯 要學會自己單步測試找問題)
過程很簡單 你定義了一個1維數組 數組長度為10 從a[0] —— a[9] 進行for循環計算 i=9 a[9]=10-9=1 同理 a8=2 a5=5 a2=8 所以輸出 a2,a5,a8 分別就是852
希望幫到你!
G. c語言中數組可以直接進行運算么
數組之間直接運算肯定不行,就算強制寫,那得出來的也是別的東西。(估計不是你想要得)
H. C語言 數組移位運算
for(i=0;i<23;i++) rec_array[i]=rec_array[i+1]<<1 沒編譯器 YY了一個 你試試 ....