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了一个 你试试 ....