質問編集履歴

2 誤解を招く箇所があったので消しました

Teemro_431265

Teemro_431265 score 21

2018/07/28 13:50  投稿

関数がうまく動いてくれません
voidの関数を使って10進数を2進数にするプログラムを作りたいのですが関数に入った後の計算結果が表示がされず、そのまま次のコマンドが入力できるようになってしまいます。
自分としては関数の中で無限ループを回して2で割ったあまりを出力すればいいと考えました。また負の値が入力されたら抜けるようにしました。
./a.out
10進数から2進数にした数値を入力してください
66
みたいな感じになってしまいます。
```c
#include<stdio.h>
#include<stdlib.h>
void d2btrans(int);
int main(){
   int n,f;
   printf("10進数から2進数にした数値を入力してください\n");
   scanf("%d",&n);
//f=void d2btrans(int n);
printf("\n");
//printf("%d",n);
return 0;
}
void d2btrans(int i){
  //printf("%d",i);
 
if(i<0){
   exit(2);
}
   while(i>0){
       int i=0;  
       i%=2;
       printf("%d",i);
   }
}
```
  • C

    4517 questions

    C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

1 いらないものがあったので消しました

Teemro_431265

Teemro_431265 score 21

2018/07/28 13:29  投稿

関数がうまく動いてくれません
voidの関数を使って10進数を2進数にするプログラムを作りたいのですが関数に入った後の計算結果が表示がされず、そのまま次のコマンドが入力できるようになってしまいます。
自分としては関数の中で無限ループを回して2で割ったあまりを出力すればいいと考えました。また負の値が入力されたら抜けるようにしました。
./a.out
10進数から2進数にした数値を入力してください
66
みたいな感じになってしまいます。
```c
#include<stdio.h>
#include<stdlib.h>
void d2btrans(int);
int main(){
   int n,f;
   printf("10進数から2進数にした数値を入力してください\n");
   scanf("%d",&n);
//f=void d2btrans(int n);
printf("\n");
//printf("%d",n);
return 0;
}
void d2btrans(int i){
   printf("%d",i);
   //printf("%d",i);
if(i<0){
   exit(2);
}
   while(i>0){
       int i=0;
       i%=2;
       printf("%d",i);
   }
}
```
  • C

    4517 questions

    C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る