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 21:38:35 浏览: 10
这段代码实现了两个字符串代表的数字的加法,但是输出只有100,原因是在输入时使用了换行符(\n)作为分隔符,导致第二个字符串 s2 包含了换行符。在字符串转换为数字时,换行符被转换为了 0,因此实际上只进行了 1001 和 909 这两个数字的加法,得到的结果是 100。解决办法是去掉 scanf 函数中的换行符,即将 "%s\n%s" 改为 "%s%s"。
相关问题
#include<iostream> #include<stdio.h> #include<string.h>这三个头文件的异同
这三个头文件都是C++中常用的头文件,其中<iostream>和<cstdio>是C++标准库的一部分,<string.h>则是C语言标准库中的头文件,在C++中也可以使用。
它们的异同点如下:
1. #include<iostream>:这个头文件定义了输入输出流(iostream)对象,例如cin和cout。它还定义了一些用于输入输出流的函数。
2. #include<stdio.h>(或者<cstdio>):这个头文件定义了C标准输入输出函数(如printf和scanf),以及文件操作相关的函数(如fopen和fclose)。
3. #include<string.h>:这个头文件定义了一些字符串处理函数,如strcpy和strcat。
它们的共同点是都提供了在程序中使用的函数和类型定义。同时,它们都是使用预编译指令#include来包含进程序中的。
#include <iostream> #include <stdio.h> #include <math.h> #define N 5
这段代码是C++中的预处理指令,用于引入头文件和定义宏。具体解释如下:
1. `#include <iostream>`:引入iostream头文件,该头文件包含了C++中输入输出流的相关函数和对象,例如cout和cin。
2. `#include <stdio.h>`:引入stdio.h头文件,该头文件包含了C语言中的输入输出函数,例如printf和scanf。
3. `#include <math.h>`:引入math.h头文件,该头文件包含了数学函数的声明和定义,例如sqrt和pow。
4. `#define N 5`:定义一个宏常量N,并将其值设置为5。宏定义是一种在编译前进行文本替换的机制,这里将所有出现N的地方都替换为5。
这段代码的作用是引入所需的头文件和定义一个宏常量N,并没有实际的功能代码。
相关推荐
![text/x-c](https://img-home.csdnimg.cn/images/20210720083646.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)