C语言的这个代码,输入1001\n9099,输出只有100,怎么回事?#include <stdio.h> #include <string.h> int a[100001], b[100001], c[100001]; char s1[100001], s2[100001]; bool x = false; int main() { memset(a, 0, sizeof(a)); memset(b, 0, sizeof(a)); memset(c, 0, sizeof(a)); scanf("%s\n%s",s1,s2); int i, j; a[0] = strlen(s1); b[0] = strlen(s2); for (i = 1;i<=a[0]; i++) a[i] = s1[a[0] - i] - '0'; for (i = 1;i<=b[0]; i++) b[i] = s2[b[0] - i] - '0'; for (j = 1; j <= (a[0] > b[0] ? a[0] : b[0]); j++) { c[j] = a[j] + b[j]; if (c[j] >= 10) { c[j]%=10; a[j + 1]++; } } c[0] = j; if (c[j + 1] > 0) c[0]++; for (i = c[0]; i >= 1; i--) { if (x == false && c[i] == 0) continue; x = true; printf("%d", c[i]); } if (x == false) printf("0"); printf("\n"); return 0; }
时间: 2024-03-31 08:38:35 浏览: 15
这段代码实现了两个字符串代表的数字的加法,但是输出只有100,原因是在输入时使用了换行符(\n)作为分隔符,导致第二个字符串 s2 包含了换行符。在字符串转换为数字时,换行符被转换为了 0,因此实际上只进行了 1001 和 909 这两个数字的加法,得到的结果是 100。解决办法是去掉 scanf 函数中的换行符,即将 "%s\n%s" 改为 "%s%s"。
相关问题
#include<stdio.h>#include<stdlib.h>#include<string.h>
在C语言中,`#include<stdio.h>`、`#include<stdlib.h>`和`#include<string.h>`分别包含了输入/输出、内存管理以及字符串处理相关的库。这里给你演示如何使用这些头文件中的函数:
1. **输入/输出(stdio.h)**:
```c
#include<stdio.h>
int main() {
printf("Hello, World!\n"); // 使用printf输出字符串
scanf("%s", "Enter your name: "); // 使用scanf从用户那里读取输入
return 0;
}
```
2. **内存管理(stdlib.h)**:
```c
#include<stdlib.h>
int *createArray(int size) {
int *array = malloc(size * sizeof(int)); // 分配动态内存
return array;
}
void freeMemory(int *array, int size) {
free(array); // 释放已分配的内存
}
```
3. **字符串处理(string.h)**:
```c
#include<string.h>
char* copyString(const char* src) {
char* dest = (char*)malloc(strlen(src) + 1); // 动态分配内存复制字符串
strcpy(dest, src);
return dest;
}
```
注意,C语言的标准库函数可能需要链接到适当的库,如`-lstdc++` 或 `-lm`,具体取决于编译器设置。
#include<stdio.h> #include<stdlib.h> #include<string.h>C语言中,这三个分别代表什么意思
`#include<stdio.h>`, `#include<stdlib.h>`, 和 `#include<string.h>` 是 C 语言中的预处理器指令,它们分别引入了不同的库:
1. `<stdio.h>`:这是一个标准输入输出库,提供了处理标准输入(如键盘输入)和标准输出(如屏幕打印)的函数,如 `printf()` 和 `scanf()`。
2. `<stdlib.h>`:这是一个标准库,包含了各种实用程序函数,如内存管理(动态内存分配和释放,例如 `malloc()` 和 `free()`),以及用于初始化、进程管理和错误处理的函数。
3. `<string.h>`:这个库是字符串处理的标准库,提供了字符串操作的功能,比如字符串复制 (`strcpy()`)、比较 (`strcmp()`)、查找 (`strstr()`)、长度计算 (`strlen()`) 等。
使用这些头文件可以让程序员直接使用这些库中的函数,而无需自己编写实现。在编写 C 程序时,通常会在顶部使用这些预处理器指令来引入所需的函数。
相关推荐
![text/x-c](https://img-home.csdnimg.cn/images/20210720083646.png)
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)