要参加c语言考试想得高分,请帮帮我,用Devc++写来着,辛苦了这个看起来就会很长
看一下这个
#include <stdio.h>
#include <string.h>
char A[50] = "";
char B[50] = "";
char C[50] = "";
int main() {
printf("Please input number A: ");
fgets(A, 50, stdin);
A[strcspn(A, "\n")] = '\0'; // remove newline character
printf("Please input number B: ");
fgets(B, 50, stdin);
B[strcspn(B, "\n")] = '\0'; // remove newline character
// Check if input is valid
if (strlen(A) > 30 || strlen(B) > 30) {
printf("[Error] Numbers invalid.\n");
return 1;
}
// Check if input contains non-digit characters
for (int i = 0; i < strlen(A); i++) {
if (A[i] < '0' || A[i] > '9') {
printf("[Error] Numbers invalid.\n");
return 1;
}
}
for (int i = 0; i < strlen(B); i++) {
if (B[i] < '0' || B[i] > '9') {
printf("[Error] Numbers invalid.\n");
return 1;
}
}
// Calculate the sum and store in C
int carry = 0;
int i = strlen(A) - 1, j = strlen(B) - 1, k = 0;
while (i >= 0 || j >= 0 || carry > 0) {
int sum = carry;
if (i >= 0) {
sum += A[i] - '0';
i--;
}
if (j >= 0) {
sum += B[j] - '0';
j--;
}
C[k++] = sum % 10 + '0'; // store the digit in C
carry = sum / 10; // carry for the next digit
}
C[k] = '\0'; // null-terminate the string
// Remove leading zeros from the result
int leading_zeros = 0;
while (leading_zeros < k && C[leading_zeros] == '0') {
leading_zeros++;
}
if (leading_zeros > 0) {
memmove(C, C + leading_zeros, k - leading_zeros + 1); // remove leading zeros
k -= leading_zeros;
C[k] = '\0'; // null-terminate the string again
}
// Display the result
printf("%s\n", C);
return 0;
}
【相关推荐】
去看看我的动态吧,里面讲过一个大数相加
#include <stdio.h>
#include <string.h>
char A[50], B[50], C[50];
int main(void)
{
scanf("%30[0123456789]", A);
fflush(stdin);
scanf("%30[0123456789]", B);
int lenA = strlen(A), lenB = strlen(B);
char *pa = A + lenA - 1, *pb = B + lenB - 1, *pc = &C[48], *pc1 = C;
int i = 0, z, n, m, f = 0;
m = lenA > lenB ? f = 1, lenA : lenB;
n = lenA > lenB ? lenB : lenA;
z = m - n;
while (m)
{
if (m > z)
*pc += *pa-- + *pb-- - '0';
else
*pc += (f == 1) ? *pa-- : *pb--;
if (*pc > '9')
{
*pc -= 10;
*(pc - 1) += 1;
}
pc--;
m--;
}
while (*pc1++ == 0)
i++;
puts(C + i);
return 0;
}