E-Yuのプロフィール

@E-Yu E-Yu
ありがとう数4
質問数0
回答数8
ベストアンサー数
2
ベストアンサー率
40%
お礼率
0%

  • 登録日2007/12/04
  • 配列の中を変更

    入力したnameに、入力したageの数だけ文字を進める(例えばnameがOda、ageが12→表示結果がAmp)にする関数を作成しようとしたのですが、やり方がまったくわかりません。 そもそもこのような場合、文字1つ1つに別の配列を使わなければならないのでしょうか? #include <stdio.h> #define N 1 #define NAME 20 typedef struct{ char name[NAME]; char age; } person; int main(void){ int i; person persons[N]; for(i=0;i<N;i++){ printf("name > "); scanf("%s" , persons[i].name); printf("age > "); scanf("%d" , &persons[i].age); } for(i=0;i<N;i++){ printf("name = %s\n" , persons[i].name); printf("age = %d\n" , persons[i].age); } return 0; }

  • リストの削除について

    以下のようなプログラムを作ったのですが、このプログラムに削除をする関数を加えたいです。 たとえば削除する値2と入力した場合 1 3 7 8 9 15 19 20と表示させたいのですがどのように行えばよいでしょうか? 自分が作った削除の関数だとうまくできませんでした。どうしたらよいのでしょうか? よろしくお願いします。 #include<stdio.h> #define NUM 12 typedef struct{ int IntData; int NextIndex; } MyList; void ShowList(MyList data[]); int DeleteALL(int value,MyList data[]); int main(void) { int i; int datano=NUM; int dt[NUM]={1,2,2,3,2,7,8,9,15,19,20,2}; int del=0,temp=0,del=0; char sentaku[3]; MyList data[NUM]; for(i=0;i<datano;i++){ data[i].IntData=dt[i]; data[i].NextIndex=i+1; } data[NUM-1].NextIndex=-1; ShowList(data); while(1){ printf("選択(削除=v, 編集終了=q):"); scanf("%s",sentaku); if(sentaku[0]=='v'){ printf("削除する値:"); scanf("%d",&del); temp=DeleteALL(del,data) printf("%d つのノードを削除しました\n",temp); ShowList(data); } else if(sentaku[0]=='q'){ return 0; } else{puts("もう一度入力");} } } void ShowList(MyList data[])//表示する関数 { int i=0; printf("リスト: "); while(i!=-1){ printf("%d ",data[i].IntData); i=data[i].NextIndex; } printf("\n"); } /* 以下自分が作った削除の関数 */ int DeleteALL(int value,MyList data[]) { int i=0,dn=0,count=1; while(data[i].NextIndex!=-1){ i=data[i].NextIndex; dn++; } for(i=0;i<dn;i++){ if(value==data[i].IntData){ count++; data[i-1].NextIndex=data[i].NextIndex; data[i].NextIndex=-1; } return count; }

  • スレッドの中断についての質問

    現在、C#でプログラミングを開発しております。初心者ですので、よろしくお願いします。 public delegate void MyMethod(); private Thread t1=null ; public void btn_Download_Click(object sender, EventArgs e) //Go! {   Thread t1 = new Thread(new ThreadStart(DownloadThread_HTTP));   t1.IsBackground = true; t1.Start(); } public void DownloadThread_HTTP() // download Thread { MyMethod DOWNLOAD_with_HTTP = new MyMethod(this.DOWNLOAD_with_HTTP); this.BeginInvoke(DOWNLOAD_with_HTTP); } public void DOWNLOAD_with_HTTP() { ...... } private void button2_Click(object sender, EventArgs e) //pause button { t1.Join(); } コードは 以上です。コンパイラは大丈夫ですけど、プログラムを実行するときに button2をクリックすると NullReferenceException例外エラーが出ます。t1の値がNullのためっていうことをわかりますけど、どうやれば t1の値がNullにならないのですか? ご教授ください、お願いいたします。

  • fscanfを使った読み取り

    datファイルの内容が 100,KAWAI YOSIKI,299,AKASAKA NOBORU・・・・ のような感じになっていて その中身を構造体配列に格納したい場合についてお聞きしたいです。 構造体の型は struct date { int id; char name[80]; }; のような感じです。自分なりに考えてfscanfを使って(省略部分あり) struct o_kaiin[20]; fp=fopen("date.dat","rb"); for(i=0;i<20;i++) { fscanf(fp,"%d%s",&o_kaiin[i].id,&o_kaiin[i].name); } という感じで格納しようとしたのですが、エラーが起こってしまいます。 名前の間に空白が無ければ問題ないのですが、このような文字列の場合 どのようにして読み込めばいいのでしょうか?ご教授ください。

  • 画像を表示するには

    C言語をおぼえたてなんですが 文字はprintfで表示するやり方がわかるんですが 画像はどのように表示するのでしょうか?