用C语言编写输入两个整数实现整数减法A-B 要求:分三种情况: 1.减数长度大于被减数 交换减数与被减数,输出负号,方便减 2.减数长度等于被减数(分三种情况) a.减数大于被减数,类似1情况1 b.减数等于被减数,两数相等,直接输出0,完成。 c.减数小于被减数 3.减数长度小于被减数输入两个整数输出结果大整数减法
时间: 2024-03-12 07:44:32 浏览: 90
好的,以下是C语言实现输入两个整数实现整数减法A-B的代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_LEN 1000 // 定义最大长度
int main()
{
char a[MAX_LEN + 1], b[MAX_LEN + 1], ans[MAX_LEN + 1]; // 定义字符串数组
int lena, lenb, lens, flag = 0; // lena为a的长度,lenb为b的长度,lens为结果的长度,flag为标志位
// 输入两个整数
printf("请输入被减数A:");
scanf("%s", a);
printf("请输入减数B:");
scanf("%s", b);
lena = strlen(a);
lenb = strlen(b);
// 分三种情况
if (lena < lenb || (lena == lenb && strcmp(a, b) < 0)) {
char temp[MAX_LEN + 1];
strcpy(temp, a);
strcpy(a, b);
strcpy(b, temp);
flag = 1;
}
lens = lena > lenb ? lena : lenb;
int i = lena - 1, j = lenb - 1, k = lens - 1;
int borrow = 0; // 定义借位变量
while (i >= 0 || j >= 0) {
int x = i >= 0 ? a[i] - '0' : 0;
int y = j >= 0 ? b[j] - '0' : 0;
int z = x - y - borrow;
if (z < 0) {
z += 10;
borrow = 1;
} else {
borrow = 0;
}
ans[k--] = z + '0';
i--;
j--;
}
// 去除前导零
while (ans[lens - 1] == '0' && lens > 1) {
lens--;
}
// 输出结果
if (flag) {
printf("-");
}
for (i = 0; i < lens; i++) {
printf("%c", ans[i]);
}
printf("\n");
return 0;
}
```
该代码可以实现输入两个整数进行减法运算,并且可以处理减数长度大于被减数、减数长度等于被减数、减数长度小于被减数这三种情况。
阅读全文