任务是使用scanf("%d")
然后用printf("%с")
不一样的atoi标准功能再次打印得到int
,itoa。至于我明白我需要把所有的数字再加入\0
char和打印,但是我怎么可以把它。我想到了分割number%10 + /0
和number/10
以减少1个字符的循环。 因此代码看起来应该像平滑这个INT转换为char
#include <conio.h>
#include <stdio.h>
main(void)
{
int number,reserve ;
char Array[50];
scanf_s("%d",&number);
if (number > 0 || number == 0)
{
do
{
reserve = number % 10;
printf("%c", reserve + '/0');
number /= 10;
} while (number != 0);
}
else
{
number *= -1;
printf("-");
do
{
reserve = number % 10;
printf("%c", reserve + '/0');
number /= 10;
} while (number != 0);
}
_getch();
return 0;
}
同样可以有负数,所以我需要一些if
语句来检查它是否为负,并且在情况下,它是循环应该避免它,我们不会得到类似-%10
所以我不知道如果循环是正确的(希望有人会解决它并解释我应该如何)。等待你的建议。行
number = number % 10;
的
循环控制是错误的:例如,对于'42'你需要'2'循环不'42'。尝试'do {...} while(number!= 0);'。并仔细考虑循环内容。请*运行*您的代码! –
你应该看看[适当的C格式](// prohackr112.tk/r/properties-formatting)。或者学习如何[彻底模糊你的代码](// prohackr112.tk/r/proper-c-obfuscation)。 –
'itoa'不是一个标准功能 –