ただいま私は偶数なら2で割り奇数なら1足してから2で割る、というものなのですが、
どうもうまく起動しません;;
是非理由を教えてください
以下プログラムコード
#include <stdio.h>
int keisan(int x);
int main(void)
{
int y;
static int x;
printf("数値を入れて下さい:");
scanf("%d",&x);
do{
y=(keisan(x));
printf("%d\n",y);
}while(y>1);
return 0;
}
int keisan(int x)
{
if(x%2==1){
x++;}
x=x/2;
return x;
}
起動しません(T T)
Re:起動しません(T T)
起動しましたが、無限ループが発生しました。
こういうことですか?
こういうことですか?
#include <stdio.h> int keisan(int x); int main(void) { int y; static int x; printf("数値を入れて下さい:"); scanf("%d",&x); y=x;/*追加:yに値をコピー*/ do{ /*y=(keisan(x)); これだとxの値が変わっていないため無限ループ */ y=(keisan(y)); printf("%d\n",y); }while(y>1); return 0; } int keisan(int x) { if(x%2==1){ x++;} x=x/2; return x; }
Re:起動しません(T T)
これだけのコードならばxはいらないと思います。
#include <stdio.h> int keisan(int x); int main(void) { int y; /*static int x; */ printf("数値を入れて下さい:"); /*scanf("%d",&x); */ scanf("%d",&y); do{ y=(keisan(y)); printf("%d\n",y); }while(y>1); return 0; } int keisan(int x) { if(x%2==1){ x++;} x=x/2; return x; }
Re:起動しません(T T)
すみません、上の補足説明です。
本来は、例えば24を入れたとすると、
24
12
6
3
2
1
と表示されるはずなのですが、
上のプログラムでは
12
12
12
・
・
・
となってしまいます。
本来は、例えば24を入れたとすると、
24
12
6
3
2
1
と表示されるはずなのですが、
上のプログラムでは
12
12
12
・
・
・
となってしまいます。