所以我在学校这样做,我不知道这个问题是什么 程序的任务是读取输入的数字,然后从后面开始写入,就像123一样,它将返回321 我写的代码似乎对我好,但只是错误它给予的Id返回1退出状态。我完全不知道在这么小的代码中会出现什么问题 所以在这里。为了使它更容易理解Nc是数字编号,s是乘数.c就像我在我的while循环中将它除以之前从n中提取的最后一个数字。 n是输入数n1是想要的数字。
int main(int argc, char** argv) {
int n,nc,n1,c,s;
printf("Enter number: \n");
scanf("%d",&n);
while(n>0){
n/=10;
nc+=1;
}
s=pow(10,nc);
while(n>0){
c=n%10;
n1+=c*s;
s/=10;
n/=10;
}
printf("New number is %d",n1);
system("pause");
return 0;
}
答案 0 :(得分:0)
int string2int(string input)
/// converts a string into an integer
{
int output = 0;
unsigned len = input.length();
for (unsigned i = 0; i < len; i++)
{
char u = input[i]; // getting char from string
int y = int(u); y -= '0'; // using character subtraction to make int
output += y * pow(10, len - i - 1); // moving digit to appropriate spot
} // the len - i - 1 is what makes the output go in correct order
return output;
}
应该注意的是,pow在这个上下文中是我创建的一个函数,它只是使用一个循环,如果你想使用标准的pow,你应该对结果进行舍入,还应该注意这个函数使用字符串。
为了阅读用户的输入,我建议使用std :: cin,它使用与std :: cout类似的语法,非常方便