• ベストアンサー

3つほどプログラムをおしえてください。

(1)100までの整数をいくつか入力し、10刻みでの個数を表示し、負の数が入力されると整数の入力を終わるプログラムです。各範囲の個数は配列に格納する。 実行結果 65 30 21 95 5 -1 0--- 9 : 1 10--- 19 : 0 20--- 29 : 1 30--- 39 : 1 40--- 49 : 0 50--- 59 : 0 60--- 69 : 1 70--- 79 : 0 80--- 89 : 0 90---100 : 1 (2)数字の文字列を入力し、その文字列に含まれる各数字(文字)'0','1',~'9'の個数を表示するプログラムの作成。 実行結果 1231234567 0: 0 1: 2 2: 2 3: 2 4: 1 5: 1 6: 1 7: 1 8: 0 9: 0 (3) 変数xは、0~1までの0.01刻みの値(101個)を取るとする。このとき、2次関数 f(x)=3x^2+2x+1の値が2.0<f(x)<3.0となるxの値をの個数を求めるプログラムの作成。ただし、xを引数としf(x)の値を返す関数を作成して、それを使用する。 実行結果 number=21 やってるうちにわけがわからなくなってしまいます。どなたかよろしくおねがいします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

(2) のヒント # わからなくなったら箇条書き! [1] 10個の箱を用意する [2] 文字列を入力する [3] 入力された文字それぞれに対し[4]を繰り返す [4] それが'0'なら0番目の箱, '1'なら1番目の箱... に玉を入れる [5] 10個の箱それぞれに対し[6]を繰り返す [6] 玉の数をプリントする。 で、それぞれの行を計算機のコトバに置き換えます。 [1] int count[10]; [2] scanf など [3] for ( i = 0; i < 文字数; ++i ) [4] ここは自分で考えましょう [5] for ( i = 0; i < 10; ++i ) [6] printf("%d:%d\n",i, count[i]); ほらできた。

その他の回答 (2)

  • asuca
  • ベストアンサー率47% (11786/24626)
回答No.2

1についてヒントを 入力された数字を10で割ってその答えを印と型に変換して変数に入れその変数をa[x]などのようにして入れてやります。ただa[9]は100を入力されたときようにa[10]と足してやります。 後は表示するだけです。

  • yatokesa
  • ベストアンサー率40% (201/496)
回答No.1

どこら辺が「わけがわからなくなる」のでしょうか? それが解らなければ答えようがありません。 #解答を書くのは簡単ですが、課題のようなので書きません。

関連するQ&A

  • プログラミングについて

    課題1: キーボードから整数a, b の値を入力し, を計算して表示するプログラムを作成せよ.ただし,べき乗を計算するユーザ関数 int power(int a,int b) を定義し,関数の再帰的呼び出しを使用すること.なお,b >= 0 とみなし,bが負の値のときは「ここでは扱いません」と表示するようにすること.関数 power() の中で途中の計算も表示するようにすること.  作成したプログラムを以下の[プログラム]の次に貼り付けなさい.また,aの値として「学生番号下1桁 + 3 」 の値を入力し,bの値として「(学生番号下2桁を5で割った余り) + 1」の値を入力したときの結果を[実行結果]の次に貼り付けなさい. 実行結果例 :   (学生番号 0234789 の場合) ( aは a= 9+3= 12 , b は b 整数aを入力して下さい:12 整数bを入力して下さい:5 power(12,0)= 1 power(12,1)= 12 power(12,2)= 144 power(12,3)= 1728 power(12,4)= 20736 power(12,5)= 248832 12の5乗は 248832 です 課題2: キーボードから英字の氏名を「名前_苗字」の順でアンダーバー( 「_ 」の文字) で区切って入力し,その文字列を文字コード順に並び替え,さらにそれについてバイナリサーチを実行して「i」の文字を探すプログラムを作成しなさい.並び替えた文字列およびその中の何番目に「i」が見つかったのかを表示するようにせよ.見つからなかった場合は「見つかりませんでした」と表示するようにせよ.実行結果例を参考にすること. プログラムを作成したら,入力値を色々変えて何回か実行し,プログラムが正しく動作することを確認しなさい.確認が済み次第,作成したプログラムを以下の[プログラム]の次に貼り付けなさい.また,各自の名前と苗字を入力したときの実行結果を[実行結果]の次に貼り付けなさい 実行結果例 :   (氏名: 工大 太郎 の場合) 名前と苗字をアンダーバーで区切って入力してください(各先頭文字は大文字) Kodai_Taro 並び替え後 KT_aadioor i を探します lo=0 x[4]=a hi=9 lo=5 x[7]=o hi=9 lo=5 x[5]=d hi=6 lo=6 x[6]=i hi=6 i は 6番目にありました 課題3: 5桁の正の整数をキーボードより入力し、その各桁の値を降順(大→小の順)に並び換えてそれらを順番に表示するプログラムを作成しなさい.以下の手順に従うこと. (1) int 型のサイズ5の配列 A を用意する. (2) 5桁の正の整数をキーボードより入力し,その各桁の値が一桁目から順番に A の各要素に入るようにする (例:値が12345 のとき, A[0]=5, A[1]=4, A[2]=3, A[3]=2, A[4]=1 となるようにする) (3) Aのデータを選択ソートにより降順に並び替える (2)では繰り返し処理を行なうこととし,for 文を用いること. (ヒント: たとえば 12345 の3桁目を取り出したいとき,まずその数を100 で割る.int 型同士の割り算の場合,小数点以下が切り捨てられるので 123 となる.それを10で割った余りを求めれば 3 が得られる.同様に,4桁目を取り出したいときは,1000 で割った整数値の10で割った余りを求めればよい) (3)は演習(3) で作成したプログラムを参考にすること プログラムを作成したら,入力値を色々変えて何回か実行し,プログラムが正しく動作することを確認しなさい.それが済み次第,完成したプログラムを以下の[プログラム]の次に貼り付けなさい.また,各自の学生番号下5桁の値を入力したときの実行結果を[実行結果]の次に貼り付けなさい. 実行結果例 学生番号0114583の場合  5桁の正の整数値を入力してください 14583 ソート前 3 8 5 4 1 i=0 8 3 5 4 1 i=1 8 5 3 4 1 i=2 8 5 4 3 1 i=3 8 5 4 3 1 ソート後 8 5 4 3 1 課題4: 以下の内容を実行するプログラムを作成しなさい.ただしMには「(各自の学生番号下3桁を5で割った余り)+5」を用いよ.また,Nには「(各自の学生番号下2桁を3で割った余り)+2」 を用いよ.作成したプログラムを以下の [プログラム] の次の行に貼り付けること.また実行結果を[実行結果]の次の行に貼り付けなさい.入力値は,学生番号の一桁目から順に入力し,さらに必要ならば「9,8,7」の順に入力せよ.以下の実行の概念図も参考にすること 実行内容 int 型のサイズ M の一次元配列 x があり,キーボードから値を入力してその配列の各要素に代入する.それらの値を N 個ずつ右にずらしてローテーションする 実行結果例 (学生番号 0123457 の場合) M= (457 を 5で割った余り)+ 5 = 2+5 = 7 N= ( 57 を 3で割った余り)+ 2 = 0+2 = 2      よって,サイズ7の配列のデータを      右に2個ずつローテーション (0) 整数を入力してください 7 (1) 整数を入力してください 5 (2) 整数を入力してください 4 (3) 整数を入力してください 3 (4) 整数を入力してください 2 (5) 整数を入力してください 1 (6) 整数を入力してください 0 ローテーション前 7 5 4 3 2 1 0 ローテーション後 1 0 7 5 4 3 2 課題5: キーボードから文字列を入力し,その文字列の2番目の空白の次の文字以降を表示するプログラムを作成しなさい.ただし,文字列の入力には関数 gets を用いること. また,文字列のアクセスにはポインタを用い,関数 putchar を用いて一文字づつ表示させるようにすること. 実行結果は,学生番号,名前(英語),苗字(英語) をそれぞれスペースで区切って入力したときの結果を表示すること 実行結果例 : 学生番号0112345 氏名 田中健 の場合 文字列を入力してください。 0112345 Ken Tanaka 2番目の空白以降を出力します Tanaka windows vista visual studioでのプログマミングの作成を多いと思いますがとても困っていますのでなにとぞお願いします。

  • C言語のプログラムです。

    次のようなプログラムを作成しようと考えています。 1.文字列を入力し、入力した文字列にアルファベット以外の文字が含まれていたら再入力。 2."end"もしくは"END"が入力されたらプログラム終了。 3.main関数とは別の関数で入力した文字列に現れる文字を全て入力順に大文字で表示する。(小文字と大文字は同じ文字として扱い、出現個数も合わせて表示する) ※2.では文字列を比較するstrcmpを使用。 表示結果例)  入力:DxbhzAeFSXY  出力:D=1,X=2,B=1,H=1,Z=1,A=1,E=1,F=1,S=1,Y=1 (応用)3.では入力順に表示させていたが、アルファベット順に結果を表示する。 上記の2.までのプログラムは作成できたのですが、3.及び応用が分からず大変困っています。 どなたかご教授ください。 #include <stdio.h> #include <string.h> int sub(int ss[i],int n){ int x; for(x=1; x<=n; x++){ //小文字を大文字に変換 if(ss[i]>=97){ ss[i]=ss[i]-32; } } } int main(void){ char ss[80]; char sa[2][4]={{\"end\"},{\"END\"}}; int a, i, n; int flag= 0; //アルファベット以外の入力があった際の判別 do{ printf(\"文字列を入力してください\\n\"); gets(ss); n= strlen(ss); //文字列ssの長さを求める if(n=3 && ((strncmp(ss,sa[0],3)==0)) || ((strncmp(ss,sa[1],3)==0))){ //endまたはENDの判定 return 0; } for(i=0; i<n; i++){ if((ss[i]>=65 && ss[i]<=90) || (ss[i]>=97 && ss[i]<=122)){ } else{ flag=1; break; } } }while(flag=1); }

  • C言語プログラムの課題

    大学で以下のような課題が出ました。でも全然わかりません。わかる方がいらっしゃったら、是非教えてほしいです★ 1整数値123を変数iに代入して、iの値を表示するプログラムを作成せよ。 2実数値3.14159を変数xに代入して、xの値を表示するプログラムを作成せよ。 3文字型せーた'A'を変数chに代入して、chの値を表示するプログラムを作成せよ。ただし、chの値を表示する際には、%d,%x,%cの書式を用いること。 4キーボードから入力された2つの整数値i,jの値を画面に表示するプログラムを作成せよ。 5キーボードから2つの整数値を、変数in1とin2に入力して、以下の計算をした結果を画面に表示するプログラムを作成せよ。 in1+in2= in1-in2= in1*in2= in1/in2= in1%in2=

  • 初歩的なプログラムなんですが・・・

    まだ勉強始めたばっかりで色々ネットのページも調べてみたんですがどうしてもわからないのでどなたか教えてもらえませんか?? scanf()関数を用いて同じ長さの文字列を2つ入力して、この2つの文字列が同じ文字列ならば、 「等しい文字列を入力」と画面表示して、異なるならば「異なる文字列を入力」と画面表示したいんですが^^; 実行結果は 同じ長さの文字列を2つ入力しなさい abcde abcde 等しい文字列を入力 のような結果がほしいんです。 どなたかお願いします^^;

  • C++ countについて

    最近C++の勉強を始めたのですが、 int count(char*a) という関数はどういう意味なんでしょうか? この関数を使って、たとえば abcde1f234 と打ち込むと、この文字列の数字の個数(この場合、4)を表示するプログラムを作成しなければならないのですが。 ifを使って0以上ならカウント、0以下ならカウントしないという感じで作ってみたのですが、打ち込んだ文字列全ての個数が表示されてしまいます。 どなたか解答お願いします。

  • 書籍「独習C++」にある問題について

    書籍「独習C++」で学習していますが、その中で意味のわからない 事が出て来たので教えてください。 P.79 2章の最後のページにある、総合理解度チェックの1番 「promptという名前のクラスを作成し、コンストラクタ関数に任意のプロンプト文字列を渡します。 コンストラクタではその文字列を表示し、入力として整数を受け取ります。 この値をcountという名前の非公開変数に保存します。 prompt型のオブジェクトを破棄する際には、ユーザーが入力した回数だけ、コンピュータのビープ音を鳴らします。」 とありますが、 ・任意のプロンプト文字列を渡すとあるが、プログラム実行者に入力させるという意味なのか? ・プロンプト文字列とは何か? ・入力として整数を受け取ります、の意味がわからない、プログラム実行者に整数を入力させるのでしょうか? ・ユーザーが入力した回数だけ、とあるが、何の入力を指しているのか? 日本語的に意味がわからないので教えてください。

  • c言語がわかりません。

    (1)入力された文字列(10文字以下)の`a`の文字を除き、結果を表示するプログラムを作成する。 (2)入力された文字列について、数文字(0から9)の各々の出現個数と、それ以外の文字の出現個数をカウントし表示するプログラムを作成する。

  • プログラム

    「一行に書かれた式(文字列)の値を求めるプログラム」 少なくとも2つの2桁までの正の整数値の加減乗除ができること。 このプログラムのやりかたがわかりません、教えてください。。

  • プログラムについてです。

    main関数内でキーボードから入力された2つの整数について、その整数値の和差乗除をユーザ定義関数shisoku()内で計算し、main関数内で結果を出力するプログラムを作成せよ。 ただし、すべて局所変数で構成し、大域変数を使ってはならない。 僕は和差、乗除はできるんですが和差乗除ができません。

  • 任意の文字列を入力し、文字列に母音(a,i,u,e,o)が何個含まれているかをint型数値として返すような関数VowelNumber()を作成せよ。 また,この関数を使用して,キーボードから入力された文字列に母音が何個含まれているかを表示するプログラムを作成せよ。 <実行結果> 文字列の入力-->>university 母音は4個含まれています。

専門家に質問してみよう