ただいま私は偶数なら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)
-
みけCAT
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;
}-
みけCAT
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
・
・
・
となってしまいます。