简单的c ++ program-Id问题返回1退出状态

时间:2015-03-04 21:48:32

标签: c++

所以我在学校这样做,我不知道这个问题是什么 程序的任务是读取输入的数字,然后从后面开始写入,就像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;

}

1 个答案:

答案 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类似的语法,非常方便