2016-10-13 1 views
0

私はこの問題を受け取りました。ここでは、数値(1〜100)が特殊かどうかを計算して決定します。桁の合計に4を掛け、結果が元の数と等しい場合、その数は特別な数です。だから私はコードを書いた。しかし、ループは機能していません。ループの外では、コードは何の問題もなく、可変数は任意の値を持つことができます。何が問題なのでしょうか?前もって感謝します。だから私はこのコードを書きましたが、ループは機能しません

#include <stdio.h> 

int main(void) 
{ 
    int number; 
    int originalnumber; 

for(number=1;number<=100;number++) 
{   
    originalnumber = number; 

    int sum = 0, result; 

    while(number>0) 
    { 
     result = number % 10; 
     sum = sum + result; 
     number = number/10; 
    } 

    if((sum*4)==originalnumber) 
    { 
     printf("\n%d is special number.", originalnumber); 
    } 
    else 
    { 
     printf("\n%d is not special number.", originalnumber); 
    } 
} 
} 
+0

任意の答えはあなたの質問に答えた場合は、(答えの左に貪欲のチェックマーク)、それを受け入れるご検討ください。これはあなたと回答者にいくつかの評判を与え、答えとして答えをマークします。 – 2501

答えて

5

ループを反復する変数:numberを変更しています。

originalnumberと同じように、numberのコピーを作成して、ループの反復を邪魔することなく修正できます。

2

問題は、forループで使用される "number"変数を変更しているためです。 あなただけの、以下のようにループでoriginalnumberを交換し、数にシーケンスを割り当てることができます:

#include <stdio.h> 

int main(void) 
{ 
    int number; 
    int originalnumber; 

    for(originalnumber=1;originalnumber<=100;originalnumber++) 
    {   
     number = originalnumber; 

     int sum = 0, result; 

     while(number>0) 
     { 
      result = number % 10; 
      sum = sum + result; 
      number = number/10; 
     } 

     if((sum*4)==originalnumber) 
     { 
      printf("\n%d is special number.", originalnumber); 
     } 
     else 
     { 
      printf("\n%d is not special number.", originalnumber); 
     } 
    } 
} 
0

は、whileループで「数」変数を使用しないでください。ここで異常な動作を引き起こす外部ループを反復する変数の変更。

0

whileループとゼロになるたびに値の値を変更していますか。新しい変数に数値を代入し、その変数を変更します。

#include <stdio.h> 

int main(void) 
{ 
int number; 
int originalnumber; 

for(number=1;number<=100;number++) 
{   
originalnumber = number; 

int sum = 0, result; 

while(originalnumber >0) 
{ 
    result = originalnumber % 10; 
    sum = sum + result; 
    originalnumber = originalnumber/10; 
} 

if((sum*4)==number) 
{ 
    printf("\n%d is special number.", number); 
} 
else 
{ 
    printf("\n%d is not special number.", number); 
} 

}}

関連する問題