• 締切済み

C言語でプログラムを作成したいのですが・・・

C言語でプログラムを作成したいのですが・・・ 急ぎです!!!どなたかお教えください 情報処理の授業のレポート課題です 内容は次のようなものです 傾向の分析 ・入力された英文中の、アルファベットの並びについて分析する、以下のようなプログラムを作る ・大文字/小文字は無視して(どちらかに揃えて)考える ・アルファベットの並びで考えて 前 → 後 の順の並びか、後→前の順の並びかを判定し、それぞれの個数を数え、最終的にどちらが多かったかを表示 ・最も出現する回数の多かった、2文字の並びを表示する ・スペースとピリオドは無視する 例: This is a pen. ・thisisapen と考える ・th:後→前, hi: 前→後, is:前→後 ... ・前→後: 5回, 後→前:4 回 なので前→後の方が多い ・一番多く出現している並びは is お願いします

みんなの回答

回答No.5

英文のアルファベットの並びは ABCDEFGHIJKLMNOPQRSTUVWXYZ です。 ÄÜÖ+-*@123等が出たときにどうするか考える。

  • hashioogi
  • ベストアンサー率25% (102/404)
回答No.4

先生は、生徒が真面目に授業に参加していればできるであろう範囲を課題としていると思います。あなたの将来の就職先はどのような分野を考えていらっしゃいますか? 就職先を探す際にも当然試験があって情報処理系なら試験であなたのC言語の実力が判断されます。私がいた会社でも学校が推薦したからと言って100%合格させていたわけではありません。この程度の課題は頑張って自分で教科書のあちこちを見ながらでもやっておかないと将来困ることになると思います。

  • koujikuu
  • ベストアンサー率43% (428/992)
回答No.3

一つずつ順番に処理して下さい 1) 文字列の中の小文字を全て大文字に変換 小文字のアスキーコードなら-0x20で大文字に変換 2) 文字列の大文字アルファベット以外を削除 3) 文字列から一文字と次の一文字を取り出し比較、前後か後前のカウンターをUPする、文字列最後-1までループ 4) 配列(26*26) を用意して、一文字目のアスキーコード-0x41 * 二文字目のアスキーコード-0x41 を配列添え字としてカウントする

回答No.2

26x26の行列用意して行:直前の文字,列今の文字で勘定するだけっしょ。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

せめて「どこがわからないのか」くらいは書いてください.

関連するQ&A

  • 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言語 暗号化プログラムの作成

    アルファベット文字列を暗号化するプログラムを作りたいのですが、暗号化の方法がわかりません。 暗号化は、アルファベット文字列を入力した後、数字を入力して、その数字分文字をずらすというものです。 例:"Date 5"⇒"Ifyj 5" (Dの5個先はIなのでIとする。 同様にa⇒f    t⇒y    e⇒j) "Take 20"⇒"Muey 20" (Zを過ぎたらまたAからずらしていく。)

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

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

  • 教えていただけませんか?C言語 文字列について

    学校で文字列のプログラムを組む課題が出ました 以下のような課題です 1つの文字列を読み込んで,ピリオドで改行し出力するプログラムを作成しろ ・読み込む文字列の長さ 最大で80文字 ・文字列の終わりは必ずピリオドで ・文字列の途中に現れるピリオドの次には必ずスペースが続く ・ピリオドに続くスペースは出力しない 例えば Hello. It is fine. Good-bye.  と打つと Hello. It is fine. Good-bye. と表示されるようなプログラムです そして自分で以下のプログラムを組みました ----------------------------------------------------------- #include <stdio.h> #include <string.h> int main(void){ int i; char A[100]; char *a; fgets(A,80,stdin); a = strtok(A, "."); printf("%s.\n",a); while(a != NULL){ a = strtok(NULL,"."); if (a != NULL){ printf("%s.\n",a); } } return 0; } --------------------------------------------------------------- ですがこれだとピリオドの後のスペースと文字列の後によくわからない改行が出力されてしまいます 自分で何とかするべきなのでしょうがどうにもうまく行きません どこをどうすればいいのか教えていただけないでしょうか?

  • 恥ずかしながらC言語解析中のプログラムで!?

    練習問題 5-20 列数を示す数値を入力し、'a'~'z'の文字を指定された列数に従って表示するプログラムを作成しなさい。  以下のプログラムを解析中で、まだ素人で基本的な質問ですがご了承ください。 1) int col; /* 2) char i;/*文字列関数*/ 3) scanf( "%d", &col ); /*英数文字の行に並ぶアルファベットの個数を1~26までの任意の数字を一件入力する。*/ 4) for( i = 0 ; i < 26 ; i++ ){ /*アルファベットは26個はa b c・・・の順番でループする命令*/ 5) if( i > 0 && ( i % col ) == 0 )/*アルファベットのループ範囲はa~です。アルファベット26文字÷3)で入力した数の余りが0・・・? 6) printf( "\n" ); /*結果がでたら改行する。*/ 7) printf( "%c", 'a' + i ); /* 現在解析中*/ 8) } -----------------------------------------------------------------  以上ですが、  5)の==0で、このプログラムでの役割は何ですか?  よろしくお願いいたします。

  • C言語の問題が解けません!

    僕は、C言語を勉強しているのですがこの問題の答えがわかりません。 どうか教えてください。 回答お願いします。 ・問題・ 10文字以内の2つの英単語を入力し、アルファベット順で最初にくる単語を表示するプログラムを作りなさい。 /プログラム/ #include<stdio.h> #include<string.h> int main(void) { char str1[256],str2[256]; int i; printf("文字列1は?"); printf("文字列2は?"); return 0; }

  • C言語での並び替えのプログラム

    A[6][5]={{"abei"}, {"aceh"}, {"adeg"}, {"aef"}, {"bcfi"}, {"bdfh"}}; と配列があるとします。 (a).A[1][5]の文字列とA[2][5]の文字列を比較して、"abceih"という組み合わせた文字列を作り、その文字列の数を出します(この場合6個)。次に、A[3][5]のA[4][5]を比較して組み合わせて文字列を作り、その文字列の数を出します。A[5][5]とA[6][5]も同じように比較して組み合わせて文字列を作り、その文字列の数を出し、最後にそのすべての数の和を出します。 (b).この配列を並べ変えて(a)をします。 並び替え方は配列6個のとき 1.(1)(2)(3)(4)(5)(6) 2.(1)(2)(3)(5)(4)(6) 3.(1)(2)(3)(6)(4)(5) 4.(1)(3)(2)(4)(5)(6) 5.(1)(3)(2)(5)(4)(6) 6.(1)(3)(2)(6)(4)(5) 7.(1)(4)(2)(3)(5)(6) 8.(1)(4)(2)(5)(3)(6) 9.(1)(4)(2)(6)(3)(5) 10.(1)(5)(2)(3)(4)(6) 11.(1)(5)(2)(4)(3)(6) 12.(1)(5)(2)(6)(3)(4) 13.(1)(6)(2)(3)(4)(5) 14.(1)(6)(2)(4)(3)(5) 15.(1)(6)(2)(5)(3)(4) の15通りになります。 この配列の並びを前から配列を2つずつ取り出して比較すれば全組み合わせが完了したことになります。 この15通りの組み合わせの中で総和が一番少なくなる組み合わせ方を探すプログラムを作りたいのです。 そしてこのとき、配列が最大で40個までとなることがあるとするとその並べ替えのプログラムはどうなるでしょうか? 比較するプログラムは作ることに成功しましたが並べ替えのプログラムがうまく作れません誰か教えていただけないでしょうか?

  • C言語のアルゴリズムについて

    C言語で「標準入力から英語の文章を読み込んで,文字列Ilmorが出現した行をその行番号とともに表示するプログラムを作りなさい.」とプログラムを作りたいのですが、文字列を発見するところまでは分かるのですが、その行どうやって表示すればいいのか分かりません。また、文章を読み込むのもすごくややこしく最後にエンターを二回押すなどの制限があります。(scanf) 参考になるプログラムを書いていただける方いませんか?できればC言語のアルゴリズムについて詳しく書いた本やサイトがあれば教えていただきたいです。 レベルは超入門的な本を2,3冊読んだ程度です。アルゴリズムなどにはまったく触れてなかったし、ライブラリー関数も少ししか載ってなかったので関数の本もあれば教えていただきたいです。

  • C言語でプログラミング。(文字を置き換えるやり方)

    scanfなどで入力した文字列(アルファベット)の中にある特定の文字を違う文字に置き換えるようなプログラムってどのように作ったらよいのでしょうか?? 例えば、(sという文字をtと言う文字に変える・・・sound→tound)などのように、入力した文字を置き換えて、もう一度表示するようにするには、どうしたらよいのでしょうか? 関数を使ってプログラムを作りたいと思っているのですが・・・ なにかヒントなどがあったらお願いします。

  • C言語のプログラミングで困っています;

    数値を20回まで入力させることができ、それを大きい順に並べ直して表示させる。この時20回まで入力しなくとも0で抜け出すことができる。 このようなプログラムの作成をご教授お願いします;;