2014-10-11 1 views
0

ОК, поэтому моя задача - получить одну цифру из натурального числа и суммировать квадратные числа (используя функцию while, что означает, что еще нет массивов: S). Например, я набираю 123 так, что sum = 1 * 100 + 2 * 10 + 3 * 1; Однако проблема в том, что цифра может быть любой. Моя проблема в том, что мощность растет с помощью int, но так же - 1, 10, 99, 1000. Проблема для меня - 99. Также ответ - цикл, но я исправлю это позже. Вот мой код:power int number while in loop

#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; 
} 

ответ

0

Попробуйте это наоборот. Не вводите целое число. Начните с начала потока, получите символ, преобразуйте его в int 'number'. Затем сделайте

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

Это поможет вам немного поправить ответ. Обратите внимание, что я не уверен, что это то, о чем вы просите, потому что ваш пример не соответствует коду.

Дайте мне знать, если это вне базы, и я обновлю его.

+0

Уже обошел вокруг круглую функцию :). Спасибо за ваше предложение. – user240179

 Смежные вопросы

  • Нет связанных вопросов^_^