在循环中输入int数

时间:2014-10-11 11:22:48

标签: loops pow

好的,所以我的任务是从自然数中得到一个数字并求平方数(使用函数while,这意味着还没有数组:S)。例如,我输入123,所以sum = 1 * 100 + 2 * 10 + 3 * 1;然而问题是数字可能是任何数字。我的问题是,功率随着int而上升,但是如此--1,10,99,1000。对我来说问题是99.也回答是循环,但我稍后会修复它。这是我的代码:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main()
{
    int N,
        number=0,
        answer=0,
        a=1,
        i=0;

    printf("Type natural number: ");
    scanf("%d",&N);

    while(N>i)
{
    number=N%10;
    N/=10;
    a=10;
    a=pow(a,i);
    answer+=number*number*a;
    printf("%d\n", answer);
    i++;
}
    return 0;
}

1 个答案:

答案 0 :(得分:0)

反过来尝试一下。不要使输入为整数。从流的开头开始,获取字符,将其转换为int'数字'。然后做

answer = 10 * answer;
answer += (number * number);

这将逐渐建立你的答案。请注意,由于您的示例似乎与代码不匹配,因此我不确定这是您所要求的。

如果这是非基础的,请告诉我,我会更新它。