![](/img/trans.png)
[英]How to extract digits from a number in C? Begining from the most significant digit?
[英]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.