yama5140 の回答履歴

全461件中101~120件表示
  • プログラミングの課題で困っています。

    大至急です。プログラミングの課題です。 プログラミングはvisual C++ 2008を使ってます。 丸棒(円柱)の慣性モーメントは   I=M{(d^2/16)+(l^2/12)}   で与えられる。ここでMは棒の質量、dは直径、lは長さをあらわす。 また、長さの等しい二本の糸でつるした軽い台の上に棒を置き、鉛直軸回りに回転運動させたときの振動周期は    T=2π√(Ih/Mgab) で与えられる。なおgは重力加速度であり9.81[m/s^2]とする。 h=0.5[m] a=0.1[m] b=0.2[m]として実験装置を構成した時、d、l、M すなわち棒の寸法と質量を入力すると、 回転振動の周期を計算し表示するプログラムを作成せよ。  ただし慣性モーメントの計算は関数hunc_Iとしてmain関数とは別に定義せよ。 という課題が出て、わからなくて困ってます。このプログラムの答えを教えてください。 よろしくお願いします。

    • ベストアンサー
    • noname#218530
    • C・C++・C#
    • 回答数9
  • プログラミングの課題で困ってます。

    正弦関数x=sintのグラフを■で描きなさい(31行程度で)。数値xに対する■の数はウインド各行に表示される しきれる範囲内で任意に定めてよい。 という課題が出ました。よくわからなくて困っています。 下記に書いてるプログラミングを参考に答えを教えていただきたいと思い、質問させていただきました。よろしくお願いします。 また、下記を参考にしなくてもよいです。 プログラミングはvisual C++ 2008を使ってます。 #include "stdafx.h" #include<stdio.h> #include<math.h> int _tmain(int argc, _TCHAR* argv[]) { double x[100]; int i , j; for(i=0; i<31; i++){ x[i]=sin(0.1*i); } // for(j=0; j<31; j++){ // printf("%lf\n",y[j]); // } for(i=0; i<31; i++){ for(j=0; j<x[i]*20; j++){ printf("■"); } printf("\n"); } return 0; }

    • ベストアンサー
    • noname#218530
    • C・C++・C#
    • 回答数4
  • 先日12/3に関東地方で突発的に発生した大雨

    先日12/3に関東地方で突発的に発生した大雨について質問させて下さい。 この大雨は、6~8月辺りならまだしも、12月ではめずらしい天気だったと思います。 雨の発生メカニズムは、「暖かい空気と冷たい空気が交じり合う時に、暖かい空気が湿っていればそれが冷えて空気中に水蒸気を保持できなくなり(飽和水蒸気量?)、それが雨粒となって雨になる」という説明だったかと憶えています。 特に大雨はそれが激しくなったものという理解をしているのですが、今年の冬では、暖かい空気と冷たい空気が交じり合うという要素が無かったように思います。 (夏ならなんとなく分かるけれども、この冬に暖かい空気がどこにあるのか想像できない)。 という事で、今回の大雨はどのようなメカニズムで発生したのか、そのロジックとしては湿った暖かい空気がどこかにあるという事が前提になると思っているのですが、実感はしないだけでそういったものがあるのでしょうか? あるいは、また別のメカニズムで大雨が発生したのでしょうか?  また、上空に突発的に湿った暖かい空気の塊がどこかに生成されたのであれば、その生成元はなんなのかがよく分かりません。 検索しても、キーワードが悪い為か、そうした先日の雨の発生メカニズムの情報がウェブ上ではなかなかヒットしません。 どなたかご存知の方がいらっしゃいましたら、教えて頂ければ幸いです。 宜しくお願い致します。

    • ベストアンサー
    • booter
    • 地学
    • 回答数2
  • スロット プルグラムについて

    今、スロットをC++で作っています。 しかし、確実に実行されません。 分かるかた、教えていただけないでしょうか? プログラムがめちゃくちゃなのは承知の上です。 優しい回答お願いします。 #include <stdio.h> #include <stdlib.h> #include <time.h> void r_dsp(int rel[3][3]); int r_han(int rel[3][3],int tc); main() { int co=100, r, i, j, kc,num ,rel[3][3]; srand(time(NULL)); while( co > 2 ){ printf("何枚コインを入れますか?(1~3):"); scanf("%d",&kc); if( kc == 99 ) break; if( kc < 1 || kc > 3 ){ continue; } co -= kc; for( i = 0 ; i < 3 ; i++ ){ for( j = 0 ; j < 3 ; j++ ){ r = (double)rand() / RAND_MAX * 10; rel[i][j] = r; } } r_dsp(rel); co += r_han(rel, kc); printf("残りコイン=%d枚\n", co); } } void r_dsp(int rel[3][3]) { char num[][3]={"0","1","2","3","4","5","6","7","8","9"}; int i, j; for( i = 0 ; i < 3 ; i++ ){ for( j = 0 ; j < 3 ; j++ ){ printf("%s ", num[rel[i][j]]); } printf("\n"); } } int r_han(int rel[3][3], int tc) { int i, hk=0; for( i = 0 ; i < 3 ; i++ ){ if( i == 1 || tc != 1 ) if( rel[i][0] == 7 ) if( rel[i][1] == 7 ) if( rel[i][2] == 7 ) hk += 100; else hk += 10; else hk += 2; } if( tc == 3 ){ if( rel[0][0] == 7 ){ if( rel[1][1] == 7 ) if( rel[2][2] == 7 ) hk += 100; else hk += 10; else hk += 2; } if( rel[2][0] == 7 ){ if( rel[1][1] == 7 ) if( rel[0][2] == 7 ) hk += 100; else hk += 10; else hk += 2; } } printf("払出し枚数=%d\n", hk); return hk; }

  • 大学のプログラミング課題について

    大学でプログラミングの課題が出たのですが、よくわからないので 詳しく教えてほしいです。 問題 99文字までの文字列を入力し,アルファベットの小文字は大文字に,アルファベットの大文字は小文字に,またアルファベット以外の文字はアスタリスク’*’に変換した文字列を出力するプログラムを作成せよ 実行結果は 99文字以下の文字列を入力してください.abcABC123sDFgh#"x32YY= 変換された文字列はABCabc***SdfGH**X**yy*です. というようになるはずなのですが、うまくいきません。 私が考えたのは #include <stdio.h> int main(void) { int i,j; char t[100],u; printf("99文字以下の文字列を入力してください"); scanf("%s",t); printf("変換された文字列は"); for(i=0;t[i]>0;i++); { } for(j=0;j<=i;j++); { if(t[j]>=65 && t[j]<=90) { u=t[j]+32; printf("%c",u); } else if(t[j]>=97 && t[j]<=122) { u=t[j]-32; printf("%c",u); } else { u='*'; printf("%c",u); } } printf("です\n"); } というものです。 ちなみに、他のライブラリ関数は使わないで作らないといけません。 どこが間違っているのかも含めて 教えていただけると嬉しいです。

    • ベストアンサー
    • noname#140177
    • C・C++・C#
    • 回答数12
  • プログラム 課題

    14.1と16の組み合わせと、32と33.9の組み合わせを分けて取り出す プログラムを作りたいのですが、正直どんなプログラムになるのかわかりません。 (予想としては、ifを使ったりするのではないかと思うのですが。) 以下の配列がファイルのデータです 32 33.9 14.1 14.1 16 16 16 14.1 33.9

  • C言語をお願いします

    普通には出来たのですが、配列や関数の使い方がよく分かりません。 助けてください。よろしくお願いします。 問 1~30の整数の範囲で、3辺a, b, c(cを斜辺)の三角形のうち、直角三角形が成立する場合を見つけて配列に入れる。その後、配列をもとにプログラムを作成。 ※a, b, c辺を見つけて配列に入れる機能は関数にすること。 ※a <= b、b <= cを仮定。 #include<stdio.h> int myfunc(int x, int y, int z); int main(){ int a, b, c; for(a=1; a<=30; a++){ for(b=a; b<=30; b++){ for(c=b; c<=30; c++){ if(a*a + b*b == c*c){ printf("%d,%d,%d",a,b,c); puts(" "); } } } } return 0; } 実行例 3,4,5 5,12,13 ・ ・ よろしくお願いします。

    • 締切済み
    • noname#128756
    • C・C++・C#
    • 回答数6
  • C言語で分からないところがあるのですが

    すみません。C言語のポインタで分からないことがあって来ました。 ポインタの理屈は理解してはいるのですが、いざソースコードを書いてみようということになると全く手がつけられずにいます。 以下のソースコードですが、strlen()と同じ働きをする関数mystrlen()と、strcmp()と同じ働きをする関数mystrcmpを、ポインタを使って作成するものです。どこをどうすればいいのか教えてくださいませんか。 #include <stdio.h> int main(void) { char str1[80], str2[80]; int i, j; int len1, len2; printf("第1の文字列を入力してください: "); gets(str1); printf("第2の文字列を入力してください: "); gets(str2); /* * 文字列の長さを確認する */ /* NULL文字(文字列の最後)まで読み飛ばす */ for (len1 = 0; len1 < 80 && str1[len1] != '\0'; len1++) ; /* ループ終了後、len1 に文字列の長さが入っている */ if (len1 < 80) { printf("%s は %d 文字の長さです\n", str1, len1); } else { printf ("第1の文字列が80字以上あります\n"); } /* str2 についても同様 */ for (len2 = 0; len2 < 80 && str2[len2] != '\0'; len2++) ; if (len2 < 80) { printf("%s は %d 文字の長さです\n", str2, len2); } else { printf ("第2の文字列が80字以上あります\n"); } if (len1 < 80 && len2 < 80) { for (i = 0; i < 80 && str1[i] != '\0' && str2[i] != '\0' && str1[i] == str2[i]; i++) ; if (str1[i] == str2[i]) { /* 両者同時に == '\0' のはず*/ printf("文字列は等しい\n"); } else if (str1[i] < str2[i]) { /* str1[i] == '\0' のはず*/ printf("%s は %s より小さい\n", str1, str2); } else { /* str2[i] == '\0' のはず*/ printf("%s は %s より大きい\n", str1, str2); } } /* * 十分なスペースがあれば、str2をstr1の最後に連結する */ if (len1 + len2 < 80) { /* str1 の末尾を探す */ for (i = 0; str1[i] != '\0'; i++) ; /* ループを抜けた段階では i は len1 と同じはずなので、 上記のループを作らず、i の代わりに len1 を用いるのも可 */ /* それ以降に str2 の中身をコピーする */ for (j = 0; str2[j] != '\0'; j++) { str1[i+j] = str2[j]; } str1[i+j] = '\0'; printf("%s\n", str1); } else { printf ("文字列をつなげた長さが80字以上あります\n"); } /* * str2をstr1にコピーする */ if (len1 + len2 < 80) { for (i = 0; str1[i] != '\0'; i++) { str1[i] = str2[i]; } str1[i] = '\0'; printf("%s %s\n", str1, str2); } return 0; }

    • 締切済み
    • noname#160322
    • C・C++・C#
    • 回答数7
  • 全ての漢字を取得する方法

    全てまではいかなくとも、なるだけ多くの漢字を取得して 配列などに格納したいのですが、取得する方法を教えてもらいたいです。

  • 全ての漢字を取得する方法

    全てまではいかなくとも、なるだけ多くの漢字を取得して 配列などに格納したいのですが、取得する方法を教えてもらいたいです。

  • C言語の文字列の取り扱いが分かりません

    こんにちは。 C言語で分からないことがあり、質問させていただきました。 学校で、文字列の取り扱いを習いました。 そこで質問なんですが、以下のソースコードをstrcpy , strcat , strcmp , strlen を使わずに書くことってできないですか? 先生に質問したところ、ポインタとかいうのを使うのだそうですが、それを使わずに書くことってできるんですか?もしよろしければお願いします。 以下のプログラムですが、ユーザーから2つの文字列を受けて、そこから4つの文字列関数を使ってみましょう、というやつです。実行結果も貼っておきますね。 #include <string.h> #include <stdio.h> int main(void) { char str1[80], str2[80]; int i; printf("INPUT 1st word-line. : "); gets(str1); printf("INPUT 2nd word-line. : "); gets(str2); /*文字列(word-line)の長さを確認します。*/ printf("%s is %d moji long.\n", str1, strlen(str1)); printf("%s is %d moji long.\n", str2, strlen(str2)); /*文字列を比較します。*/ i = strcmp(str1, str2); if (!i) printf("two word-lines are same length.\n"); else if (i < 0) printf("%s is smaller than %s.\n", str1, str2); else printf("%s is bigger than %s.\n", str1, str2); /*十分なスペースがあるのなら、str2をstr1の最後に結合させます。*/ if((strlen(str1) + strlen(str2)) < 80 ){ strcat(str1, str2); printf("%s\n", str1); } /*str2をstr1にコピーする*/ strcpy(str1, str2); printf("%s %s\n", str1, str2);

    • ベストアンサー
    • noname#160322
    • C・C++・C#
    • 回答数7
  • 地球が温暖化しているのはCO2が増えたせい?

    今まで、地球が温暖化しているのは、マスコミ等の報道でCO2が増えたせいとばかり思っていましたが、その考えは間違いで、単に地球の温度変化周期変動のトレンドで、現在は温暖化に向かっているだけだという考えもあると聞きました。どちらが科学的に本当なんでしょうか。詳しい方教えてください。

  • 多次元配列を分かりやすく教えて下さい。

    多次元配列を分かりやすく教えて下さい。 特に3次元以上が分かりません。

  • 16進数を入力するプログラムを作成するという課題がでたのですが、

    16進数を入力するプログラムを作成するという課題がでたのですが、 下記の内容でコンパイルしたところ、'A'一文字は10を表示しましたが 3E8は148など、数と組み合わせるとまったく違う答えが表示されます。 どうしたらよいのか見当も付かず困っております、教えてください #include<stdio.h> main() { int number; int ch; printf("input ?"); number=0; ch=getcher(); while(ch !='\n'){ if('0'<= ch && ch <= '9'){ number=number*10; number=number+(ch-'0'); } if('A'<= ch && ch <= 'F'){ number=ch-'A'+10; } ch=getcher; } printf("your input number is %d\n",number); }

  • 皆様に、C言語についての質問です・・><

    皆様に、C言語についての質問です・・>< プログラミングの内容は以下のようなものです。 標準関数のstrシリーズは使用不可です 以下の実行結果をもとにプログラミングしなさい。 char m[30]; 実行結果 文字,個数==>A,5 文字,個数==>b,3 文字,個数==>c,1 文字,個数==>E,2 文字,個数==>^Z 文字列:AAAAABBBcEE Ctrl+Zが押されるまでやるらしいですが・・・ どうか教えてください>< できれば皆様の例をみてみたいです・・・

  • 日本では、風速17.2m/s(34kt)以上の熱帯性低気圧を台風と呼ぶ

    日本では、風速17.2m/s(34kt)以上の熱帯性低気圧を台風と呼ぶそうですが、どのような計算をすれば34kt(時速34海里:1海里1,852m)が17.2m/sになるのでしょうか?なんど計算しても17.49m/sになるのですが・・・。

    • ベストアンサー
    • ryu5569
    • 地学
    • 回答数3
  • 日本では、風速17.2m/s(34kt)以上の熱帯性低気圧を台風と呼ぶ

    日本では、風速17.2m/s(34kt)以上の熱帯性低気圧を台風と呼ぶそうですが、どのような計算をすれば34kt(時速34海里:1海里1,852m)が17.2m/sになるのでしょうか?なんど計算しても17.49m/sになるのですが・・・。

    • ベストアンサー
    • ryu5569
    • 地学
    • 回答数3
  • 2次元配列を引数とする関数について

    2次元配列を引数とする関数について 私は今、2次元配列を引数とする関数の表を作るという課題に取り組んでいます。 条件として、int a[数字][数字]={{1,2,3...}}という配列の宣言と同時の初期化は使わず、 関数内で表の値を代入し、値を表示する関数を作り、事実上二つの関数を作るというものです。 私は以下のようなプログラムを作り、動かしましたが、[数字][数字]=********のような本来 あるべき実行結果とは異なる数字の羅列が出てきてしまいました。 ↓ #include <stdio.h> void func(int a[][6]); void fund(int b[4][6]); void main(void) { int a[4][6]; fund(a); func(a); } void func(int a[][6]) { int i,j,b[4][6]; fund(b); for(i=0;i<4;i++)        { for(j=0;j<6;j++) { printf("a[%d][%d]=%d\n",i,j,a[i][j]); printf("\n"); } } } void fund(int b[4][6]) { int i,j; for(i=0;i<4;i++) { for(j=0;j<6;j++)          { scanf("b[%d]*[%d]=%d\n",&i,j,b[i][j]); } } } 本来の実行結果 1 2 3 4 5 6 2 4 6 8 10 12 3 6 9 12 15 18 4 8 12 16 20 24 紙にも書いて何回も見直しましたが、どこがおかしいのかわかりませんでした。 どうすれば良いのでしょうか? 何か良いアドバイスをよろしくお願いします。

  • int型をchar[]に変換する方法

    int型をchar[]に変換する方法 C++で、たとえば int i = 234; を宣言します。それを char c[4] = {'2','3','4','\0'}; に変換する方法があれば教えてください

  • 論理演算子の論理和(OR)の || について

    論理演算子の論理和(OR)の || について これキーボードのどこを打ったら入力できるんですかね・・ LLでないみたいですし・・・知っている方いらっしゃったらどうかお願いします