S117 の回答履歴

全72件中61~72件表示
  • C言語のお薦めの本

    現在、C言語を学んでいます。やっと、初心者向けの本に書いてある内容は 理解できるようになりました。 今度はその憶えた知識で実際にいろいろな練習問題を解いていきたいと思っています。 そこで、主に練習問題をメインとした本を教えてください。 詳しい解説なども書いてあれば助かります。 よろしくお願いします。。

  • ダブルポインタで2次元配列を作成

    2次元配列を作り、そのアドレスなどを表示させましたが どうもおかしいです。 3行5列の配列で、3本のポインタ配列がありますが、 その配列のアドレスがかぶっているのです。 まずはコンパイルしてみてください。 #include<stdio.h> main() { int i; int k; int y=1; int **p; p=(int **)malloc(sizeof(int *)*3); for(i=0;i<=2;i++) { *(p+i)=(int *)malloc(sizeof(int)*5); } for(i=0;i<=2;i++){ for(k=0;k<=4;k++){ p[i][k]=(i+k)*y; } y=y*10; } for(i=0;i<=2;i++){ for(k=0;k<=4;k++){ printf("%4d",*(*(p+i)+k)); } printf("\n"); } printf("\n"); for(i=0;i<=2;i++) { printf("%p\n",p+i); } printf("\n"); for(i=0;i<=2;i++) { printf("%p\n",&p+i); } printf("\n"); for(i=0;i<=2;i++) { printf("%p\n",*(p+i)); } printf("\n"); for(i=0;i<=4;i++) { printf("%p\n",*(p)+i); } printf("\n"); for(i=0;i<=4;i++) { printf("%p\n",&*(p)+i); } printf("\n"); for(i=0;i<=4;i++) { printf("%p\n",&**(p)+i); } printf("\n"); for(i=0;i<=4;i++) { printf("%p\n",*(p+1)+i); } printf("\n"); for(i=0;i<=4;i++) { printf("%p\n",&*(p+1)+i); } printf("\n"); for(i=0;i<=4;i++) { printf("%p\n",&**(p+1)+i); } printf("\n"); for(i=0;i<=4;i++) { printf("%p\n",*(p+2)+i); } printf("\n"); for(i=0;i<=4;i++) { printf("%p\n",&*(p+2)+i); } printf("\n"); for(i=0;i<=4;i++) { printf("%p\n",&**(p+2)+i); } printf("\n"); for(i=0;i<=2;i++){ for(k=0;k<=4;k++){ printf("%p\n",&*(*(p+i)+k)); }} free(p); return 0; } どこがかぶっているかと申しますと、 for(i=0;i<=4;i++) { printf("%p\n",&*(p)+i); } と for(i=0;i<=4;i++) { printf("%p\n",&*(p+1)+i); } と for(i=0;i<=4;i++) { printf("%p\n",&*(p+2)+i); } です。 これが同じアドレスになるはずは論理的にありえないことです。 VC++2008無料バージョンです。 よろしくお願いいたします。

  • 万年カレンダー

    万年カレンダー作ろうとしているのですが、ここからの作り方がわかりませんので、教えてください。 int youbi_chk(int,int,int); int uru_chk(int); void main(void) { int yy,mm; char week[7][4]={\"SUN\", \"MON\", \"TUE\", \"WED\", \"THU\", \"FRI\", \"SAT\"}; int mday[12]={31,28,31,30,31,30,31,31,30,31,30,31}; printf(\"年(西暦:4桁)を入力して下さい:\"); scanf(\"%d\",&yy); printf(\"月を入力して下さい:\"); scanf(\"%d\",&mm);

  • 基本情報技術者試験の過去問題の解説が理解できなくて困っています。

    私は現在基本情報技術者試験を受けるために勉強しています。 勉強の一貫として、過去の試験問題を解いているのですが、 平成18年度午後の問6の問題(↓)が、どうしてもわかりません。 ネットで解説など探したところ、発見はしましたが どうしてこの答になるのかといったことは結局わかりませんでした。 というのも、この下記の解説は、問題を理解している人が見ればわかるかもしれませんが、 私のように正答を導き出してすらいない者ではついていけないと感じたからです。 もっと詳しい解説がないものかと探したのですが、今のところ見当たりません。 そこで、どなたかこの問題の解説を詳しくしていただける方がいないものかと今回質問をさせていただきました。 どなたかこの問題の解説をしていただけないでしょうか。 問題 http://www.rs.kagu.tus.ac.jp/infoserv/j-siken/H18a2/pm06.html 解説 http://www5f.biglobe.ne.jp/~pafu/kihonweb/kaic/c_18h06.htm ご回答よろしくお願いいたします。

  • 万年カレンダー

    万年カレンダー作ろうとしているのですが、ここからの作り方がわかりませんので、教えてください。 int youbi_chk(int,int,int); int uru_chk(int); void main(void) { int yy,mm; char week[7][4]={\"SUN\", \"MON\", \"TUE\", \"WED\", \"THU\", \"FRI\", \"SAT\"}; int mday[12]={31,28,31,30,31,30,31,31,30,31,30,31}; printf(\"年(西暦:4桁)を入力して下さい:\"); scanf(\"%d\",&yy); printf(\"月を入力して下さい:\"); scanf(\"%d\",&mm);

  • 変数名や関数名の命名方法

    どうも初めて質問させていただきます。 私はプログラマの2年生で、現在C++で作業しています。 最近になってようやくプログラミングに自信を持てるようになり、 だいぶコーディングも早くなった気がしています。 ですが、いつも変数名や関数名またはクラス名といった名前を付ける際に 非常に時間がかかってしまいます。 和英辞典を使って調べたりするのですが、 そのまま名付けても、他の人が見て意味が理解できなさそうなことが多いです。 みなさんは変数名など考えるときに、どのようにしていますか? 何かプログラミング専門の和英辞典みたいな書籍など出ているのでしょうか? お役立ち情報ありましたら、どうぞよろしくお願いします。

  • Cで2次元配列にCSVファイルを格納するには?

    ~.csvというファイルがあって、ファイルの中身は256*256のある数字の2次元配列です。 このファイルを読み込んで、2次元配列に格納したいのですが、どのようなソースを書けばいいのでしょうか? プログラミングをちゃんと勉強してこなかったために苦戦しています。 #include <stdio.h> #include <stdlib.h> int main(int argc,char *argv[]){ FILE *fi; char I[256]; char J[256]; if((fi=fopen("ch.csv","r"))==NULL){//csvもこのような記述でよみこむことができるのか? printf("ファイルオープンエラー\n"); exit(1); } while(fgets(J,256,fi) != NULL) { これより先が全く書けていない状態です。 ここまでもこのソースで大丈夫でしょうか? かなり基本的なことだと思いますが、よろしくお願いします。

  • 構造体のメモリ確保のキャストについて

    構造体のメモリ確保をする際に、処理系はVC++ 6.0なので キャストしなければならないのですがどうすればよいか分かりません。 構造体にはint型とchar型が入っているのですがこの場合はどのようにキャストすればよいのでしょうか? お願いします。

  • 構造体のメモリ確保のキャストについて

    構造体のメモリ確保をする際に、処理系はVC++ 6.0なので キャストしなければならないのですがどうすればよいか分かりません。 構造体にはint型とchar型が入っているのですがこの場合はどのようにキャストすればよいのでしょうか? お願いします。

  • 平均値を関数を用いて出力したいのですが。。

    平均値を関数を用いて出力したいのですが一箇所でつまずいてしまい ました。ソースは #include <stdio.h> #include <stdlib.h> #include <time.h> /*構造体宣言*/ struct Students{ int N; int A; int B; int C; double ave; }; /*平均値を計算する関数*/ struct Students Average(struct Students std[i]){ std[i].ave=(double)(std[i].A+std[i].B+std[i].C)/3; return std[i]; } int main(void){ struct Students std[49]; /*構造型配列*/ int i,N,A,B,C,num,scannum; FILE*file; /*ファイルのポインタを用意*/ srand((unsigned)time(NULL)); /*乱数の初期化/ file=fopen("Data.txt","r"); /*Dataファイルの読み込み*/ /*ファイルのオープンチェック*/ if(file==NULL){ fprintf(stderr,"cannnot open file 'Data.txt'\n"); exit(1); } /*Studentsにデータを格納*/ for(i=0;i<=49;i++){ fscanf(file,"%d%d%d",&N,&A,&B); std[i].N=N; std[i].A=A; std[i].B=B; std[i].C=70+(rand()/(RAND_MAX+1.0)*31); std[i].ave=Average(std[i]); /*表示*/ printf("学籍番号:%d.",std[i].N); printf("科目A:%d.\n",std[i].A); printf("科目B:%d.\n",std[i].B); printf("科目C:%d.\n",std[i].C); printf("平均点:%d.\n",std[i].ave); fclose(file); return 0; } 目標はA,B,Cの平均を出したいのですが関数宣言の際にstd[i]を 用いると未定義扱いになってしまい実行が出来ない状態です。 自分としては↑のソースでi番目の配列の平均値を導出し、表示 させようとしてるのですが。。。。アドバイスをお願いします。 m(__)m

  • ローランドma-8の繋ぎ方

    roland ma-8の線の繋ぎ方が分からないので教えてください。 http://sound.kogarashi.info/roland_ma8.html 上記のページに一番下の写真を見てもらえば分かりやすいと思います。 左端とパソコンを ステレオミニプラグ-ステレオミニプラグ http://www.yodobashi.com/enjoy/more/i/cat_1045_144_504_19162321/138390.html で繋いで右側の赤と白と左側の黒を ピンプラグ-ピンプラグ×2 http://www.yodobashi.com/enjoy/more/i/cat_1045_144_504_19161897/1249668.html で繋いでいるのですが左のスピーカーから音が出ません。 線が間違っているのでしょうか? 回答お願いいたします。(o*。_。)oペコッ

  • ローランドma-8の繋ぎ方

    roland ma-8の線の繋ぎ方が分からないので教えてください。 http://sound.kogarashi.info/roland_ma8.html 上記のページに一番下の写真を見てもらえば分かりやすいと思います。 左端とパソコンを ステレオミニプラグ-ステレオミニプラグ http://www.yodobashi.com/enjoy/more/i/cat_1045_144_504_19162321/138390.html で繋いで右側の赤と白と左側の黒を ピンプラグ-ピンプラグ×2 http://www.yodobashi.com/enjoy/more/i/cat_1045_144_504_19161897/1249668.html で繋いでいるのですが左のスピーカーから音が出ません。 線が間違っているのでしょうか? 回答お願いいたします。(o*。_。)oペコッ