回答受付が終了しました

ID非公開

2020/10/26 0:04

66回答

C言語について質問です。

補足

#include <stdio.h>のみのヘッダーファイルでかけますか?

回答(6件)

0

その場合は数値のまま考えると結構大変なので、一旦文字列に変換してから3が含まれるかどうか判断するのが簡単です。 itoa() もしくは sprintf() を使えば文字列に変換できます。 その後 strchr() で検索すればOKです。 追記: itoa()は使えませんでした。 一応書いてみました。 buffのサイズは多い目にしてるだけです。 #include <stdio.h> #include <stdlib.h> #include <time.h> int main(void) { srand((unsigned)time(NULL)); for(int i=0;i<10;i++){ int n=rand()%100+1; //1~100の乱数 printf("%d:",n); char buff[10]; //3桁+1必要 sprintf(buff,"%d",n); //10進数文字列に変換 if(strchr(buff,'3')) printf("3が含まれる\n"); else printf("3が含まれない\n"); } return 0; }

2

『3のつく数字だけを表示することはできるのか。』 できます。 基本的には、人間が3の付く数字を判別するのと同じ方法でOKです。 あなたは、13や23を見て、どうやって3が含まれているかを判別していますか? 「そんなの見れば分かるじゃん」と思わずに、 自分はどうやってそこに3を見つけているのか、考えてみて下さい。 まぁ、13とかだとあまりに一目瞭然なので、例えば…… 5749845984150756243571846918248 は、3を含む数ですか? 含むか含まないかをどうやって調べました? というところが、3を含む数かどうかを判別するアルゴリズムの芽となります。 自分がどうやって判断しているのか、その思考を辿って、それを文章にしてみること。 それがプログラミングの第一歩です。 (実はここはプログラミングにおいてとても大事な部分です。 言語の勉強なんてどれだけやったところで、ここをマスターしない事には、プログラミングはできるようになりません。 ぜひ、頑張ってみてください)

2人がナイス!しています

0

とりあえず引数に渡した数字に3が含まれていれば1を返しそうでなければ0を返す関数を書きました。動作未確認ですが考えだけでも読みといてくれればと思います。 int find(int a){ while(a<=0){ if(a%10==3){ return 1; }else{ a=a/10; } }return 0; }

0

for ( i=1 ; i<=100 ; i++ ) if( i % 10 == 3 ) printf( "%d\n", i ); でどうなるでしょうか。 % は 剰余演算子です。