ency の回答履歴

全386件中261~280件表示
  • リス;ト構造のポインタ

    struct list{ int data; struct list *next; }; struct list *cons(int x,struct list *n){ struct list *ans; ans=(struct list*)malloc(sizeof(struct list)); if(ans!=null) ans->date=x; ans->next=n; } return ans;} void main(){ int x; struct list *top=NULL; struct list **tail=⊤ while(scanf("%d",&x)==1){ *tail=cons(x,NULL);  tail=&((*tail)->next):         }  入力した順にリストに追加されるプログラムらしいのですが、void main(){}の中のプログラムの動きが よく分かりません。このプログラムの動作の流れを簡単に教えてください。漠然とした質問カと思いますが よろしくお願いします。

  • 2次元配列の1次元目のバッファ

    static const char *mainstr[][?] = {  "abc",  "123" }; このソースのabcや123の部分をたまに書き替えてコンパイルするということをしています。 そのときに?の数値を算出するのを手動でやっていますが、自動にするために?にプログラムを書くようなことはできないでしょうか? 大きい固定値にはしたくなく、最小の?の値にしておきたいです。

  • char形配列の整数を抜き出したい

    char str="今週,23位"; int a; という配列の数字の部分(23)を抜き出してaに放り込みたいのですが、便利な関数とかあれば教えて頂けないでしょうか。お願いします。 

  • char形配列の整数を抜き出したい

    char str="今週,23位"; int a; という配列の数字の部分(23)を抜き出してaに放り込みたいのですが、便利な関数とかあれば教えて頂けないでしょうか。お願いします。 

  • char形配列の整数を抜き出したい

    char str="今週,23位"; int a; という配列の数字の部分(23)を抜き出してaに放り込みたいのですが、便利な関数とかあれば教えて頂けないでしょうか。お願いします。 

  • ポインタについて

    配列のポインタについて教えてください。 int array[2][2]={1,2,3,4}; int *p; のような場合、 p=array;  にするとエラーがでますが、なぜですか? (p=(int *)array;のようにキャストすれば平気) _1_2_3_4_という風にメモリー上に並んでいますよね? 配列の場合array(&array[0][0])はこのメモリーの1が格納されているアドレスを指すわけですが、これをポインタpに入れるとなにか問題でも起こるんですか?

  • 変数の値がおかしくなる

    以下のようなプログラム(DLLとEXE)を書いたのですが、変数の値がおかしくなる(●参照)箇所があります。原因がお分かりになりましたら、ご回答をよろしくお願い致します。 ●mkdll.cppの、sub1()の(※1)までは、input[]が正しい値で入っているが、(※2)で値がおかしくなる。(※1)から(※2)までで、input[]は参照するだけです。 ---test.cpp(EXE)--- … main(){ int input[10],output[10]; int err; CDLL DLL; err = DLL.func(input,output); … return(0); } ---test.cpp End--- ---mkdll.h(DLL)--- … class __declspec(dllexport) CDLL{ public: int func(int *input, int *output); private: int sub1(int *input, int *output); int sub2(int in, int out); … }; ---mkdll.h End--- ---mkdll.cpp(DLL)--- #include "mkdll.h" … int CDLL::func(int *input, int*output){ int i; int error; error = sub1(input, output); return(error); } int CDLL::sub1(int *input, int *outout){ int i; int in1, in2, out1, out2; int err; //(※1) for(i=0; i<5; i++){ err = 0; in1 = input[i*2]; in2 = input[i*2+1]; //(※2) err = sub2(in1, out1); if(err != 0) return(err); … } } … ---mkdll.cpp End---

  • 変換しなくても、直接『』←を入力する方法を教えて下さい!!!

    今、『』←このカッコ記号が出ずに困っています。「かっこ」と入力し、変換してこの記号を探す事はできますが、せっかくキーボード上にある(一般的に@マークの付近にあるキーボードの右上にある記号です。ひらがなの「せ」と「れ」のキーです)ので、直接入力できたら速いと思い以前から色々試しているのですが、未だに出ません。。。簡単そうな事なのですが大変困っていますので、分かる方がおみえでしたら教えていただきたいと思います。どうぞ宜しくお願い致します。

  • 力学がまったく分からない

    大学一年のものなんですが、(物理系学科で)大学の講義で力学があるんですが、最初、内積、外積を習い(この辺りから担当の助教授の分かりにくさにきずきはじめたんですが、)ここは自分で購入した参考書で理解しましたが、次に微分方程式をほぼ説明なしで板書のみ。それから、簡単な運動、運動方程式、エネルギー保存と猛スピードでかつほぼ板書のみの授業が続き、まったく理解できず、講義中はただ黒板を写しているだけです。さらに教科書がなく簡単なプリントで授業を進めていくので自ら参考書を買ってやっても範囲が合わなかったり、担当の助教授は私の長年の経験からこのやり方が一番いいとひねくれた解法を用いています。自分はやる気は十分あるし期末まで一ヶ月あるんで何とかいい点がとりたいんですが、どうすればよいですか??アドバイスお願いします。

  • 等速円運動

    例えば水素で陽子の周りを電子が円運動すると本などによく書いてありますが・・・ このときになぜ円運動するのでしょうか?磁場が発生しているのでしょうか? 実際は、回転運動をすると電磁波を出しエネルギーを失ってしまい破綻というのは知っています。 例えば2平面で正の電荷を帯びた粒子をおき、その後負の電荷を距離を置いておくと、この負の粒子は円運動するのですか? (正の電荷が重く動かないとすると)

  • ネットワーク入門者です、おしえてください!

    就職してネットワークセキュリティ機器の営業職をはじめたのですが、コンピューターやネットワークの知識がない為製品のカタログやHPを見ていても専門用語やスペック、機能等が全く理解できません。 それどころか職場の人の言ってることもほとんどわかりません。 初心者がこれらの知識を勉強するのに適している方法や順序、わかりやすい書籍などアドバイスお願いいたします。 具体的に扱っている製品はジュニパー社のNetScreenでファイアウォール VPN等の機能のものです。 http://www.juniper.co.jp/products/integrated/ 製品のHPです、参考にしてください。 よろしくお願いいたします。

  • 摂氏の値を計算するプログラム・・?

    摂氏Cと華氏Fの間には C=5/9(F-32)という関係式があり、華氏の上限、下限、きざみを入力して摂氏の値を求めるプログラムを関数を使って作りたいのですが、自分で作ってみたところ関数の部分がよくわかりません。printf("摂氏 華氏\n");までは画面上に出力されます。そのあとの結果が出ないのです。以下に自分で書いたものを書きますので、どこをどう直したらいいか教えてください!お願いします!! #include<stdio.h> double functionC(double F,double F1,double F2,double l) { double temp; for(F=F1; F<=F2; F++){ F = F+l; temp = 5/9*(F-32); } return(temp); } main(void) { double C,F3,F4,i,j; printf("摂氏の値を計算します\n 華氏の下限、上限、きざみを入力してください\n"); printf("華氏の下限:\n"); scanf("%f", &F3); printf("華氏の上限:\n"); scanf("%f", &F4); printf("きざみ:\n"); scanf("%f", &i); printf("摂氏 華氏\n"); for(j=F3; j<=F4; j++) printf("%f %f\n", functionC(j,F3,F4)); }

  • 行列の積を関数を使って求める・・?

    2つの行列の行と列を入力し、積を計算するプログラムを関数を使って書きたいのですが、上手く行きません。どこをどのように直したらよいか教えてください!お願いします!! 以下が私が書いたプログラムです。 #include<stdio.h> #define NUMBER 10 int first(int x1,int x2,int y1,int y2,int i,int j,int k) { int a[NUMBER][NUMBER] = {0}; int b[NUMBER][NUMBER] = {0}; int c[NUMBER][NUMBER] = {0}; do{ printf("2つの行列の行と列を入力してください\n"); scanf("%d", &x1); scanf("%d", &x2); scanf("%d", &y1); scanf("%d", &y2); if(x1 != y2){ printf("行列の積は計算できません\n"); } }while(x1 != y2); printf("行列Aの要素を入力してください\n"); for(i=0; i<x1; i++){ for(j=0; j<x2; j++) scanf("%d", &a[i][j]); } printf("行列Bの要素を入力してください\n"); for(j=0; j<y1; j++){ for(k=0; k<y2; k++) scanf("%d", &b[j][k]); } } int second(int x1,int x2,int y1,int y2,int i,int j,int k) { int a[NUMBER][NUMBER] = {0}; int b[NUMBER][NUMBER] = {0}; int c[NUMBER][NUMBER] = {0}; for(i=0; i<x1; i++){ for(k=0; k<y2; k++){ for(j=0; j<x2; j++) c[i][k] = c[i][k] + a[i][j]*b[j][k]; } } for(i=0; i<x2; i++){ for(k=0; k<y2; k++) printf("%3d", c[i][k]); printf("\n"); } } int main(void) { int a[NUMBER][NUMBER] = {0}; int b[NUMBER][NUMBER] = {0}; int c[NUMBER][NUMBER] = {0}; printf("行列の積を計算します\n %d\n", first(x1,x2,y1,y2,i,j,k)); printf("行列Aと行Bの積は\n %3d",second(x1,x2,y1,y2,i,j,k)); }

  • 関数について

    char *str_char(const char *str, int c) { while (*str++) if (*str == c) return ((char *)str); return (NULL); } /*文字列strから文字cを検索し最初に存在する文字へのポインターを返す*/ 上記関数なのですが 5行目を return (str); にしてはなぜいけないのでしょうか。

  • 関数について

    char *str_char(const char *str, int c) { while (*str++) if (*str == c) return ((char *)str); return (NULL); } /*文字列strから文字cを検索し最初に存在する文字へのポインターを返す*/ 上記関数なのですが 5行目を return (str); にしてはなぜいけないのでしょうか。

  • オブジェクト指向の教え方

    新入社員にJavaを教えているところなのですが、オブジェクト指向プログラミングをどのように教えていいか困っています。 全員がC言語研修を受講済みで、さらにJava言語も、継承やオーバーロード、例外まで一通り教えて、一応理解しています。 そこで、次のレベルとして、C言語風のプログラミング(「プログラム=関数の集まり」の考え方)から、オブジェクト指向(「プログラム=オブジェクトの集まり」の考え方)に意識改革させたいところです。 問題領域をオブジェクトの集まりとしてとらえ、そこからクラスを抽出していく、という説明がよくありますが、 「何をオブジェクトにするのか」「どのようにクラスを抽出したらいいのか」の部分を詳しく教えたいのですが、どのように説明したらいいでしょうか。また、参考になるWebサイトなどありませんでしょうか? 自分が普段作るときは、ほぼ「勘」でクラス設計していますので、それでは教えられなくて困っています。よろしくお願いします。

    • ベストアンサー
    • thamansa
    • Java
    • 回答数6
  • 文字列配列をサブルーチンにアドレス渡ししてscanf入力

    main関数内で char strarray[3][21] という文字列配列を宣言し、 サブルーチンvoid input(・・・)内でscanfを使って strarray[0]~strarray[2]の各行に入力を行うとします。 ここでポインタを引数としてstrarrayをmainとinputで共有する場合、 strarrayに関して以下の項目はどう記述すればよいのでしょうか? 1)inputを宣言する際の仮引数の書式 2)main内でinputを呼び出す際の引数の書式 3)input内でscanfする際の引数の書式 いろいろ組み合わせを試してはみたのですが、 どうにもSegmentationFaultを回避できません。 いい加減混乱してきたので、そろそろすっきりと整理したいと思っています。 よろしくお願いします。 …まあ「構造体使えばいいじゃないか」と言われてしまえばそれまでなのですが…

  • スイッチとルータの違いについて

    L3スイッチとか、L4スイッチを業務で使用しているのですが、L3スイッチとルータって何が違うのでしょうか?ルーティングの機能はついているのでしょうか… Catalyst系は全てスイッチなのでしょうか… 初歩的な質問ですがよろしくお願いしますm(_ _)m

  • C言語での、年複利の計算方法が分かりません。

    C言語で以下の問題で困っています。 「年複利の定期預金を始める。満期時の残高を計算せよ。 ・満期時の残高 = 元金×(1+年利率)^年数 ・whileを、使う。」 という問題です。そこで、以下のようにプログラムを書きましたが、うまく動きません。どこが、間違っているのでしょうか?分かる方、お願いします。 #include <stdio.h> main() { /*初期化*/ int a=1, m, t; float b=1, n; /*値の入力*/ printf ("元金を入力してください。\n"); printf ("元金 ="); scanf ("%d", &m); printf ("年利率を入力してください。\n"); printf ("年利率 ="); scanf ("%f", &n); printf ("定期の年数を入力してください。\n"); printf ("定期の年数 ="); scanf ("%d", &t); while (a <= t){ b = b *(1 + n); a = a + 1; } /*出力*/ printf ("満期時の残高は、%fです。", m*b); }

  • 関数から戻り値を得る方法について

    知り合いの方から関数の戻り値をえるときにreturn以外に例えば File(&i,&k);←関数呼び出し int File(int **j, double *k)←関数 {      ~      ~ } とやると(double *k)は関数からの出力として、呼び出しているFile(&i,&k)の(&k)に返されると聞きました。しかも、戻り値はint File()のintに依存しないと言われて試してみたのですが、どうもうまくいきません。 正しいやり方知っている方いましたら、教えて下さい。あと複数戻り値を返したいときはどうすればいいんでしょうか?