C语言数组里的元素怎么加减乘除

Python023

C语言数组里的元素怎么加减乘除,第1张

加法:

voidAdd(char s1[],char s2[])//参数为两个字符串数组{int num1[M],num2[M] int i,j len1 = strlen (s1) len2 = strlen (s2) for (i = len1-1,j = 0i >= 0i--)//num1[0]保存的是低位num1[j++]= s1[i] - '0' for (i = len2-1,j = 0i >= 0i --)num2[j++] = s2[i] - '0' for (i = 0i <Mi ++){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 >= 0i --)printf ("%d",num1[i])elseprintf ("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-1i>=0i--)//把数字倒过来a[j++]=str1[i]-'0' len2=strlen(str2) for(j=0,i=len2-1i>=0i--)//倒转第二个整数b[j++]=str2[i]-'0' for(i=0i<len2i++)//用第二个数乘以第一个数,每次一位for(j=0j<len1j++)c[i+j]+= b[i]*a[j]//先乘起来,后面统一进位for(i=0i<MAX*2i++)//循环统一处理进位问题if(c[i]>=10){c[i+1]+=c[i]/10 c[i]%=10 } for(i=MAX*2(c[i]==0)&&(i>=0)i--)//跳过高位的0if(i>=0)for(i>=0i--)printf("%d", c[i]) elseprintf("0") pritnf("\n")} 除法最难 看这里吧http://wenku.baidu.com/link?url=rvqp3ApH2ujxsqTnoEnUmxc-hcvZz0Z8aV2NbvdxKOjBwRqx60Gju0ll56kccdo7u2_Kw8J1BGMlQpYmBhg4nT4lp7xt7mGtqaPV7x4CI-y(你们竟然会布置除法! 一般都是到乘法)

一、因为a和b数组是整数,整数相除,c是默认取整的,而*1.0之后就将数字变成浮点型的了,可以得出正确答案

二、c[1]=(1.0*b[1])/a[1]或者(float)(b[1])/a[1],强制类型转换。

三、乘以1.0是将整数转换为浮点型数(小数),1是整数,乘以整数还是整数,所以不起作用。

用%这个算符,意思是取余数

比如:

a=2

b=3

那么b%a的结果就是3除以2的余数,结果是1;

参考程序段:

main()

{

int i,n

printf("input your number: \n")

scanf("%d",&n)

for(i=1i<ni++)

{

if(n%i) continue

printf("%d ",i)

}

}

扩展资料:

余数有如下一些重要性质(a,b,c 均为自然数):

(1)余数和除数的差的绝对值要小于除数的绝对值(适用于实数域);

(2)被除数 = 除数 × 商 + 余数;

除数=(被除数 - 余数)÷ 商;

商=(被除数 - 余数)÷除数;

余数=被除数 - 除数 × 商。

参考资料来源:百度百科-余数