哇 好久不写C 忘得差不多

为了得到一个数的"相反数",我们将这个数的数字顺序颠倒,然后再加上原先的数得到"相反数"。例如,为了得到1325的"相反数",首先我们将该数的数字顺序颠倒,我们得到5231,之后再加上原先的数,我们得到5231+1325=6556.如果颠倒之后的数字有前缀零,前缀零将会被忽略。例如n = 100, 颠倒之后是1.
输入描述:
输入包括一个整数n,(1 ≤ n ≤ 10^5)


输出描述:
输出一个整数,表示n的相反数

输入例子1:
1325

输出例子1:
6556

好多c的基础都忘掉了,scanf都差点拼错,题很简单,就是写的比较乱,忘得太多了。以后还是要没事写一道。。。。。

 1 #include <stdio.h>
 2 #include <string.h>
 3 #include<stdlib.h>
 4 #define maxn 100005
 5 int main(){
 6     char num1[maxn];
 7     char num2[maxn];
 8     scanf("%s", num1);
 9     
10     int lens = strlen(num1);
11     int i, x,y, bb;
12     int j = 0;
13     for(i = 0; i<lens; i++){
14         x = num1[lens-i-1]-'0';
15         y = num1[i]-'0';
16         int aa = x+y;
17         aa+=j;
18         if(aa>=10){
19             bb = aa-10;
20             num2[lens-i-1] = '0'+bb ;
21             j = 1;
22         }
23         else{
24             num2[lens-i-1] = aa+'0';
25             j = 0;
26         }
27     }
28     if(j==1){
29         printf("1");
30     }
31     printf("%s
", num2);
32 }
原文地址:https://www.cnblogs.com/yishilin/p/7776804.html