• 締切済み

tryしてみてください

入力した文字列(英語)を指定された文字数だけ後にスライドし文字列の暗号化を行うプログラムを作成せよ ただし、zの次はA、Zの次はaになるようにせよ。 if switch for while do-while 配列 をなるべく使う。 <実行結果> 暗号化する英文を入力してください society スライドする文字数を入力してください 5 暗号化後の文字列 HmztZsnAjwxnyD

みんなの回答

  • ts3m-ickw
  • ベストアンサー率43% (1248/2897)
回答No.8

この設問文章と実行結果の例では「後にスライド」の意味するところが判らんですね。 理解力のない学生向けに「aを5文字スライドしたらfになる」とかヒント書いておけばいいのにさ。 中央大学もつまらん課題を出すものですねぇ。

noname#245945
noname#245945
回答No.7

実行結果と合いませんが、参考までに。 #include <stdio.h> #include <ctype.h> #include <string.h> #define BUF_SIZE 1024 int shift(char target, int shift_num) { if('a' <= target){ target = target - 'a' + 26; } else if('A' <= target){ target = target - 'A'; } shift_num += target; shift_num %= 52; if(shift_num < 26){ return shift_num + 'A'; } return shift_num + 'a' - 26; } int main(void) { char buf[BUF_SIZE]; int shift_num; int i; fprintf(stdout, "input a string.\n"); fscanf(stdin, "%s", buf); fprintf(stdout, "input shift num.\n"); fscanf(stdin, "%d", &shift_num); for(i=0; i<strlen(buf); i++){ if(isalpha(buf[i])){ fputc(shift(buf[i], shift_num), stdout); } else{ fprintf(stdout, "\nerror: not a alphabet.\n"); return -1; } } return 0; }

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.6

スライドする文字数を聞くのを忘れました。 まあいいか。

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.5

#include <iostream> #include <string> #include <stdexcept> class 暗号化エラー : pubic std::runtime_error { public:  explicit 暗号化エラー(const std::string& what)   : std::runtime_error(what)  {  } }; int main() {  try  {   std::string 文字列;   std::cout << "暗号化する英文を入力してください" << std::endl;   std::cin >> 文字列;   if (文字列 == "society")   {    std::cout << "暗号化後の文字列" << std::endl;    std::cout << "HmztZsnAjwxnyD" << std::endl;   }   else   {    throw 暗号化エラー("暗号化方法不明");   }  }  catch (暗号化エラー& e)  {   std::cerr << e.what() << std::end;   // TODO 暗号化エラー固有の処理  }  catch (std::exception& e)  {   std::cerr << e.what() << std::endl;  } }

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

しかし, よく考えるとこの問題ってかなりえげつないなぁ. 本質的に「表引き」以外の方法が存在しないのか....

noname#130082
noname#130082
回答No.3

tryするのが最優先ですか? try{  if( 自分に答えられる質問 && 答える時間がある ){   答える  } } catch( 質問ではない e1 ){  規約違反処理 } catch( 丸投げ e2 ){  規約違反処理 } 何に困っているのか分からないので、補足説明をお願いいたします。

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

この入力でこの出力が得られる根拠を示してください.

  • asuncion
  • ベストアンサー率33% (2126/6288)
回答No.1

解いてみたり、やってみたり、tryしてみたりするのは、誰ですか? あなたですよ。

関連するQ&A

  • やってみてください

    文字列を入力させ、入力した文字列の長さを出力させるプログラムを作成せよ。 if switch for while do-while 配列 をなるべく使う。 <実行結果> 文字列を入力してください society Length of "society" is 7

  • 確認したいのでやってみてください

    0から50までの素数を列挙するプログラムを作成せよ。 素数→0,1を除く、2つしか約数がない数 if switch for while do-while 配列 をなるべく使う。 <実行結果> 0~50までの素数は以下となります 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47

  • VBA Dowhile 判断条件に動的配列を使う

    Dim i As Long Dim A() As String '何かの処理で配列全部に文字列を入れる。 i=1 Do while Len(A(i))>0 '何かの処理 i=i+1 Loop 配列の全部の要素に文字列が入ってると、最後のiでエラーになります。静的配列を使う場合は、要素数に余裕を持たせて宣言するので問題無かったのですが、動的配列を使うようになりエラーが出ました。 動的配列では条件判断に配列を使わない方がいいのでしょうか?というよりDowhile自体使わない方がいいのでしょうか。 勿論やりようで使える筈です。例えば要素数を1個追加して空""にするとか。常識的な方法はあるのでしょうか。例えばFor nextとか。

  • 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個までとなることがあるとするとその並べ替えのプログラムはどうなるでしょうか? 比較するプログラムは作ることに成功しましたが並べ替えのプログラムがうまく作れません誰か教えていただけないでしょうか?

  • 配列への文字入力について

    配列に改行を含む文字列を入力する際に見やすいソースにする 方法を教えて頂きたいです。 下記、【理想】のようにa[i]へ文字列を入力する際に改行した文字を揃えたいの ですが、 このままだとa[i]にスペースも入ってしまいます。 その為、現在は【現在】のような記載をしています。 見やすい記載方法がありましたら、ご教授ください。 【理想】 while read line do ~省略~ a[i]="abc bcs aaa" ~省略~ done 【現在】 while read line do ~省略~ a[i]="abc bcs aaa" ~省略~ done ==前提情報== シェルスクリプトを作っています bashで作成します

  • C言語 暗号化プログラムの作成

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

  • C言語をなるべく早く教えてください

    C言語の問題集の回答がないので困っているので誰か教えてください。 私はまだ始めたばかりなので手におえません。 今私が理解しているif文、switch文、for文、while文、do-while文、配列、を 使用してでお願いします。 入力した行列を表示させるプログラムを作成しなさい。ただし、行列は任意に指定できるものにし、表示のさせ方にも気を付けること。 実行結果例1 N×M行列数を入力してください N=3 M=2 3×2行列を入力して下さい 1行1列を入力して下さい 1 1行2列を入力して下さい 2 2行1列を入力して下さい 3 2行2列を入力して下さい 4 3行1列を入力して下さい 5 3行2列を入力して下さい 6 入力した3×2行列は次のようなものです 1.00 2.00 3.00 4.00 5.00 6.00 <実行結果例2> N×M行列数を入力してください N=3 M=4 3×4行列を入力して下さい 1行1列を入力して下さい 1 1行2列を入力して下さい 2 1行3列を入力して下さい 3 1行4列を入力して下さい 4.23 2行1列を入力して下さい 5.1224 2行2列を入力して下さい 92.12 2行3列を入力して下さい 2.12 2行4列を入力して下さい 36.54 3行1列を入力して下さい 2.213 3行2列を入力して下さい 9.56 3行3列を入力して下さい 8 3行4列を入力して下さい 5.23153 入力した3×4行列は次のようなものです 1.00 2.00 3.00 4.23 5.12 92.12 2.12 36.54 2.21 9.56 8.00 5.23

  • 【FORTRAN77】DO WHILE文 これで正しいの?

    まったくさわったことのないFORTRAN77の解読をさせられています。 次のような場合はどうなるのでしょうか? コンパイル・実行できる環境がないので、教えて下さい。 データ数5の実数型配列をA(5)とする。 マイナスのデータは必要ないので、データ数を、今の5つから、マイナスデータを引いた数字に変更したい。 (ここでは、データ数のみを変更するものとします) N = 5 A(1) = -3. A(2) = -5. A(3) = -1. A(4) = 5. A(5) = 3. の時、次の使い方は正しく動くの? DO WHILE (A(N) .LE. 0.) N = N - 1 END DO 最初のWHILEループ N = 1から見ていって、A(1)がマイナスだから、 Nが4になる。 次のWHILEループ ・N = 4になったから、A(4)を見る? ・それともちゃんと順番にA(2)を見る? WHILEループが終わったら、ちゃんとN = 2になっている?

  • やってみてください

    次の文字列において、任意の文字列を検索し、任意の文字列で置換するプログラムを作成せよ ただし、検索条件に当てはまらないときは以下の文字列をそのまま出力するものとする。 "acabcabbcb" if switch for while do-while 配列 をなるべく使う。 <実行結果1> 元の文字列   :acabcabbcb 検索する文字列 :ca 置換する文字列 :L 置換後の文字列 :aLbLbbcb <実行結果2> 元の文字列   :acabcabbcb 検索する文字列 :b 置換する文字列 :DFGH 置換後の文字列 :acaDFGHcaDFGHDFGHcDFGH <実行結果3> 元の文字列   :acabcabbcb 検索する文字列 :cabb 置換する文字列 :A 置換後の文字列 :acabAcb <実行結果4>(検索条件に当てはまらない時) 元の文字列   :acabcabbcb 検索する文字列 :asdf 置換する文字列 :w 置換後の文字列 :acabcabbcb

  • 入力チェックのプログラム

    すみません、教えてください。 『キーボードから入力された数値の範囲をチェックする。 範囲は0~10000とし、入力の際に文字(A~Z,a~z,特殊文字)、空白を含む入力、リターンのみの入力はERRORを表示する。再度、入力を要求し、正常データが入力された時点でOK(入力数値)と表示し、終了する』 という問題なのですが、whileを使って、配列に格納した文字を条件があうまで判定すればいいのではないかとは思うのですが、範囲のチェックをどのようにしたらよいのかよくわかりません。 どのようにしたらよいか教えていただけませんでしょうか。 よろしくお願いします。