
c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 100000
void reverse(char *str) {
int i, j
char temp
for (i = 0, j = strlen(str) - 1i <ji++, j--) {
temp = str[i]
str[i] = str[j]
str[j] = temp
}
}
void add(char *num1, char *num2, char *result) {
int carry = 0
int i = 0
int len1 = strlen(num1)
int len2 = strlen(num2)
reverse(num1)
reverse(num2)
while (i <len1 || i <len2 || carry != 0) {
int n1 = (i <len1) ? (num1[i] - '0') : 0
int n2 = (i <len2) ? (num2[i] - '0') : 0
int sum = n1 + n2 + carry
result[i] = (sum % 10) + '0'
carry = sum / 10
i++
}
result[i] = '\0'
reverse(result)
}
int main() {
char num1[MAX_LEN], num2[MAX_LEN], result[MAX_LEN]
printf("请输入第一个整数:")
scanf("%s", num1)
printf("请输入第二个整数:")
scanf("%s", num2)
add(num1, num2, result)
printf("两个整数的和为:%s\n", result)
return 0
}
在上面的代码中,reverse函数用于将一个字符串反转。add函数用于将两个字符串表示的超长整数相加,结果存储岁姿在result字符串中。在add函数中,我们首先将两个字符串反转,然后按位进行加法运算,将结果存储在result字符串中。最后,我们将result字符串再次反转,以得到正确的结果。
需要注意碰肆的是,在进行加法运算时,需要考虑到进位的情况。当两个数的位数不同时,需要在较短的数前面补0,以便按位相加。
你这个是什么网站啊?看到好多在老毁喊网上提交答案#include <stdio.h>余穗
void main()
{
int op1, op2, result
char ch
scanf("侍野%d%c%d", &op1, &ch, &op2)
result = op1 + op2
printf("%d%c%d=%d\n", op1, ch, op2, result)
}
int a,bscanf("%d%d",&a,&b)
printf("%d %d %d %d %d",a+b,a-b,a*b,a/悔困兆b,a%b)
好像是碧租这尺旦样。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)