繁体   English   中英

C语言,将每个序列号加1。如何在开始时删除0

[英]C language, increase each number of sequence by 1. how to remove 0 in the begining

您会收到一个号码。 函数应通过将数字的每个数字(d = 1,2,3,...)更改为d + 1来创建一个新数字。 如果数字9居中,则该数字将变为0。您不应检查特定数字是否为9(!)。 该函数应返回一个新数字。

我的代码中的问题是,当我得到一个以9开头的数字时,它的开头显示为0(但不应如下面的示例所示)。

//if input 879021 - output 980132
//if input 930 - output 41
//if input 9999 - output 0
//working with visual studio 2017

void num_incr(int number);

void main(){
   int number = 0;
   printf("Enter a whole number: ");
   scanf_s("%d", &number);
   num_incr(number);
}

void num_incr(int number) {
   if (number <= 0) {
      return;
   }
   num_incr(number / 10);
   printf("%d", (number % 10 + 1) % 10);
}

要开始删除0,请首先使return函数为整数,最后打印。

同样在当前代码中,递归未完成,因为当正整数除以0时,正整数仍将为正。

//if input 879021 - output 980132
//if input 930 - output 41
//if input 9999 - output 0
//working with visual studio 2017

int num_incr(int number);

void main(){
   int number = 0;
   printf("Enter a whole number: ");
   scanf_s("%d", &number);
   printf("%d\n", num_incr(number));
}

int num_incr(int number) {
   if (number <= 0) {
      return 0;
   }
   int up_part = num_incr(number / 10);
   return up_part * 10 + ((number % 10 + 1) % 10);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM