[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 2chのread.cgiへ]
Update time : 01/02 08:45 / Filesize : 213 KB / Number-of Response : 531
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C/C++の宿題を片付けます 91代目



1 名前:デフォルトの名無しさん [2007/06/23(土) 23:03:25 BE:255611693-2BP(12)]
あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他や発言はスルーの方向で。

【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
・問題文は、出題されたまま全文を書いてください。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはやめましょう。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。

【質問テンプレ】
[1] 授業単元:
[2] 問題文(含コード&リンク):
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)

【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
【C 関数検索 man on WWW】 www.linux.or.jp/JM/index.html
【過去ログ検索】        chomework.sakura.ne.jp/
【wiki】               www23.atwiki.jp/homework/

【前スレ】
C/C++の宿題を片付けます 90代目
pc11.2ch.net/test/read.cgi/tech/1181802185/

116 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 22:55:12 ]
wile → while

あとはわからん。
そもそもこのプログラム22行しかないのに、なんで27行目のエラーが出てるんだ?

117 名前:89 mailto:sage [2007/06/24(日) 22:58:15 ]
>>114
全角のエラー修復できました。

smp3.c(21) : error C2143: 構文エラー : ';' が '{' の前にありません。
smp3.c(27) : error C3409: 空の属性ブロックは認められません。
smp3.c(27) : error C2143: 構文エラー : ']' が '(' の前にありません。
smp3.c(27) : error C2059: 構文エラー : '-'
smp3.c(27) : error C2059: 構文エラー : ')'




118 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 23:01:09 ]
>>89
ほれ。
#include <stdio.h>
int main(int argc, char **argv)
{
    int c;
    if (argc > 1 && !freopen(argv[1], "r", stdin))
        return perror(argv[1]), 1;
    while ((c = getchar()) != EOF)
        printf("%d\n", c);
    return 0;
}

119 名前:89 mailto:sage [2007/06/24(日) 23:01:55 ]
>>116
レスどうもです。
smp3.c(17) : error C2143: 構文エラー : ';' が '{' の前にありません。
smp3.c(23) : error C3409: 空の属性ブロックは認められません。
smp3.c(23) : error C2143: 構文エラー : ']' が '(' の前にありません。
smp3.c(23) : error C2059: 構文エラー : '-'
smp3.c(23) : error C2059: 構文エラー : ')'

また一つエラーが減りました。
問題文も含めた場合の最終行が27行目です。
今回は問題文を消しました。


120 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 23:03:39 ]
まさかとはおもうが

[EOF] ← これもソースにタイプしてるのか?

121 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 23:06:24 ]
>100
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define N 1000

int myrand(void)
{
     return (int)(rand() / (RAND_MAX + 1.0) * N);
}

int main(void)
{
     int i, j, m;
     char check[N] = {0};

     srand(time(NULL));

     scanf("%d", &m);
     for(i=0; i<m; i++) {
          int cnt = 0;
          for(j=0; j<N; j++) check[myrand()] = 1;
          for(j=0; j<N; j++) if(!check[j]) cnt++;
          printf("出現しなかった整数の個数:%d\n", cnt);
     }
     return 0;
}

122 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 23:13:23 ]
>>110
- int B[3][3];
+ double B[3][3];

- fscanf(fpin, "%d", &B[i][j]);
+ fscanf(fpin, "%lf", &B[i][j]);

- fprintf(fpout, "%3d", B[i][j] / 3);
+ fprintf(fpout, "%g", B[i][j]/3);

とりあえずこんなところでどうよ。

123 名前:デフォルトの名無しさん [2007/06/24(日) 23:27:56 ]
>>122さん!
計算できました!ありがとうございます!
そこでまた質問で申しわけないんですが答えが
1.66667-0.6666670.666667
0.66666710.333333
0.3333330.6666670.666667
のように表示されてしまうんですが、1.66667と1とかの間にスペースを設けたいん
ですが何か手はありませんか?無知ですいません。

124 名前:デフォルトの名無しさん [2007/06/24(日) 23:32:44 ]
[1] 授業単元:プログラミング C
[2] 問題文(含コード&リンク): 以下のPADとプログラムを作成しなさい≪面白いプログラム≫
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
 [3.3] 言語:C
[4] 期限: 6/25の9時まで
[5] その他の制限: switch文を習った後の課題です。
他の課題は終わらせましたが、どうしても面白いと思えるものを作ることが出来ませんorz


力を貸してください。お願いします。



125 名前:デフォルトの名無しさん mailto:sage [2007/06/24(日) 23:50:54 ]
>>123
- fprintf(fpout, "%g", B[i][j]/3);
+ fprintf(fpout, "%g ", B[i][j]/3);
これでおk

126 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 00:04:04 ]
>>97
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4377.txt

127 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 00:30:14 ]
[1] 授業単元:プログラミングU
[2] 問題文リンク:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4379.txt
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: C言語のみ
[4] 期限: 2007年06月26日AM01:00まで
[5] その他の制限: 特にないです。
  自力ではどうしてもできませんでした。
  どうかよろしくお願いします。


128 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 00:30:57 ]
【質問テンプレ】
[1] 授業単元: プログラミング言語
[2] 問題文:
数値の列を入力し,それをリスト構造にデータを
格納せよ.その際,数値が大きさの順に並ぶよう
にせよ.
- 入力する数値の数を限定してもよい
- たとえば5個
• リストの内容を先頭から出力せよ.
- 結果として入力された数値の列が,大きさ順
に並び替えられて表示されることになる.
• リスト構成する要素(セル)はmalloc関数でヒー
プ領域から確保するものとする.
[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン:visual studio2005
 [3.3] 言語:C++
[4] 期限:6月28日まで
[5] その他の制限:ポインタの練習です。一応、こんな感じらしいです。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4380.txt
どなたかご教授お願いします

129 名前:デフォルトの名無しさん [2007/06/25(月) 00:46:17 ]
|
| ∧         ∧
|/ ヽ        ./ .∧
|   `、     /   ∧
|      ̄ ̄ ̄    ヽ
| ̄ ̄月曜日 ̄ ̄ ̄ ̄)
| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄.\
|ヽ-=・=-′ ヽ-=・=-  /
|::    \___/    / やぁ・・・・
|:::::::    \/     /


130 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 00:52:10 ]
鬱入った。
寝る。

131 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 00:57:49 ]
>>19
適当。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4381.txt

132 名前:デフォルトの名無しさん [2007/06/25(月) 01:33:09 ]
>>125さん
できました!ありがとうございました!

133 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 02:53:58 ]
>>131 ありがとうございました

134 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 03:06:59 ]
[1] 授業単元:C++研究
[2] 問題文:
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4262.txt(プログラム1)
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4381.txt(プログラム2)
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4383.txt(プログラム3)
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4384.txt(プログラム4)
上記1〜4のプログラムを下記のように修正します。

クラス(設計図)部分を概要部分(ヘッダファイル)と実装部分(ソースファイルに分け)
そしてメイン部分も分け、4つのプログラムを新しく作り直しなさい。

[3] 環境
 [3.1] OS:Windows xp
 [3.2] コンパイラ名とバージョン:Visual studio.2005
 [3.3] 言語: C++
[4] 期限: ([2007年6月26日12:00まで]
[5] その他の制限:特になし
どうかよろしくお願いします



135 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 03:17:42 ]
>>134
単にソースをclass.cpp class.h main.cppとかってファイル作って
にコピペしまくるだけで終了しない?

136 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 03:51:42 ]
>>124
これは難問だ
何をもって面白いとするかがわからんことには作りようがない

技術的には>>124は全然問題なさそうだから、こんなのはどうだ?
怪しいswitch文だが、ちゃんとコンパイルは通る
実行結果が予想できるかい?
プログラムの挙動的には面白いと思うんだが

int main(){
  switch(1){
    while(1){
      case 0:
        printf("0");
        break;
      default :
        printf("default");
      case 1:
        printf("1");
    }
  }
  return 0;
}

良い子はマネしないようにな

137 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 04:06:16 ]
もう一つ怪しいswitch文
01default って出力されそうだけど、実行結果は case 1: のところで無限ループになる

int main(){
  int i = 0;
  switch(i){
    while(1){
      case 1:
        printf("1");
        i++;
        continue;
      case 0:
        printf("0");
        i++;
        continue;
      default :
        printf("default");
        break;
    }
  }
  return 0;
}

138 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 04:10:19 ]
[1] 授業単元: プログラミング基礎A
[2] 問題文(含コード&リンク):
n乗の数を求める関数を、作成しなさい。
  ◎以下を参考の事
・n乗値を求める関数
n乗値
数字iのn乗値を返す関数
関数定義 double myPow(double i, int n)
例1:i=1.2,n=3の場合,1.728になる
例2:i=1.2,n=-3の場合,0.5787[037]になる
例3:i=1.2,n=0の場合,1.0になる

正,0,負の3つの場合があることに注意

[3]
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:Microsoft Visual Studio .NET 2003
 [3.3] 言語:C++
[4] 期限:2007年6月25日10時30分
[5] その他の制限:出来るだけ複雑ではなく簡単(初歩的)なものにすること。

よろしくおねがいします。

139 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 04:27:21 ]
>>137
コンパイラ何?
もしかしてBCCじゃね?w

140 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 04:35:55 ]
BCCでもよく見たら01111…ってなってた
てっきり11111…と怪しい動作するもんだと思った
BCCを疑ってごめんなさい。

141 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 05:37:21 ]
>>137
こんなコードは出来ればごめん被りたいが、
「switchはラベルに飛ぶだけ」てのが良く分かる例かもね。

142 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 05:43:33 ]
[1] 授業単元: 複雑学
[2] 問題文(含コード&リンク):

次のH´enon 写像(エノン写像) のボックスカウンティング次元を考える.

(Xn,Yn)→(Xn+1,Yn+1)=(Yn+1-a*X^2*n, b*Xn) :a = 1.4, b = 0.3 に固定する.

10×10分割したマス目内にアトラクタの点が入っているかどうか調べる.点が入っているマス目の数を数えよ
サンプルプログラム kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4376.txt
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 25日正午
[5] その他の制限: プログラムをリザイレクションしてdatファイルにしてGNUPLOTでグラフを表示させる。
          グラフ vista.jeez.jp/img/vi8271774448.jpg

よろしくお願いします。


143 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 07:23:55 ]
>>138
double myPow(double i, int n)
{
    double a=1.0;
    if(n<0){
        n=n*-1;
        i=1/i;
    }
    if(n != 0){
        while(n-->0) a*=i;
    }
    return a;
}

144 名前:デフォルトの名無しさん [2007/06/25(月) 09:24:55 ]
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク): 簡単な絵を書いて画面に出力しろ
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C言語
[4] 期限: 無し
[5] その他の制限: printf();などの出力関数のみを使った場合はNGとする



145 名前:124 [2007/06/25(月) 10:02:36 ]
>>136
2つもレスしていただいて、本当にありがとうございます。
早速試してみます。


教授の面白いというのはどうもお笑い系のようです。
関西出身のようで、講義に使うプログラムもがんばって笑いを誘おうとしていますので。

146 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 10:34:26 ]
>>142
nS
hist[i][j]
printf("%f %f\n", x, y), hist[px][py]++;

147 名前:デフォルトの名無しさん [2007/06/25(月) 10:56:51 ]
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク): テキストファイルを読み込み、A〜Zまでの文字がそれぞれ何個現れたかを数えろ。大文字と小文字は区別しないもとする。
[3] 環境
 [3.1] OS: (Windows/Linux/等々) WinXP
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) Borland C++ Compiler 5.5
 [3.3] 言語: (C/C++/どちらでも可 のいずれか) C言語
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) 無期限
[5] その他の制限: 

自分で書いたコード
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4386.txt

上記のコードの中の
/* ファイルに含まれているアルファベットの個数をカウント */ 
この部分がうまく働きません

何がいけないんでしょうか?

148 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 11:01:39 ]
>>147
なんだこれ。
--
if('a' <= ch && ch >= 'z')
--
やりたいことは、if (ch >= 'a' && ch <= 'z')かif ('a' <= ch && ch <= 'z')じゃないのか?

149 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 11:03:11 ]
if('a' <= ch && ch >= 'z')
else if('A' <= ch && ch >= 'Z')

if('a' <= ch && ch <= 'z')
else if('A' <= ch && ch <= 'Z')

chと文字の位置を変えるから(略

150 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 11:04:41 ]
>>148
ああああああああああ、、、
アホみたいなミスしてました・・・
恥ずかしい



151 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 11:07:42 ]
[1] 授業単元: プログラミング
[2] 問題文:
1、英大文字は小文字に英小文字は大文字に変えて出力するプログラムを作りなさい

2、テキストの中に現れる0から9までの数字の頻度を調べるプログラムを作りなさい

[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
 [3.3] 言語: C
[4] 期限: ([2007年06月25日14:20まで
[5] その他の制限:特にありません

時間があまりありませんが、できるところまででも
よろしくお願いします

152 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 11:15:41 ]
>>151

#include <stdio.h>
#include <ctype.h>
#include <conio.h>

int main(void)
{
char ch;

ch = getche();
if('a' <= ch && ch <= 'z') printf(" -> %c\n",toupper(ch));
else if('A' <= ch && ch <= 'Z') printf(" -> %c\n",tolower(ch));

return 0;
}


>>147のアルファベットのとこを数字に変える

153 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 11:21:14 ]
is関数使っとけ

154 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 11:34:14 ]
<ctype.h>使ってるんならis関数使わないほうが不自然だよな。



155 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 11:39:39 ]
isalpha( ) か
存在を忘れてた


156 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 11:41:20 ]
>>151
1.
#include <stdio.h>
#include <ctype.h>
int main(void){
   int ch;
   while((ch = getchar()) != EOF){
      if(islower(ch)) putchar(toupper(ch));
      else if(isupper(ch)) putchar(tolower(ch));
      else putchar(ch);
   }
   return 0;
}

2.
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main(void){
   int i, count[10] = {0};
   char buf[2] = {0}, *p = buf;
   while((*p = getchar()) != EOF)
      if(isdigit(*p))
         count[atoi(buf)]++;
   for(i = 0; i < 10; i++) printf("%d : %d\n", i, count[i]);
   return 0;
}

157 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 12:26:34 ]
>>128
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4389.txt
悪い。元のがちょっとアレだったんでコマンドライン引数から入力拾うように勝手に仕様変えちった
要点を掴んでほしい

158 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 12:47:34 ]
152ー156の方々非常に迅速な解答ありがとうございました

159 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 16:15:49 ]
[1] 授業単元: プログラミング
[2] 問題文:
成績を管理するプログラムを作成する.一人一人の学生には,学籍番号(整数)がつけられているの
で,学籍番号と成績(実数)の組みで管理することとする.本問題で作成するプログラムは,4人の学生について,
英語と数学の成績を入力すると,英語と数学の合計点で最高点を取った学生を出力するものとする.
成績を管理する構造体の名前をstudent_t(この名前はtypedefで定義した名前を指す)とし,構造体のメンバを,
学籍番号はint型とし,名前をidとする
英語の成績はdouble型とし,名前をengとする
数学の成績はdouble型とし,名前をmathとする
とする.また,以下の関数を作成し,それを利用すること.
n人のデータを入力する関数:void InputData(student_t s[], int n)
第一引数は学生の配列
第二引数は学生の人数
関数自体は,何人でも扱えるように作成すること

課題実行においては以下の点に注意すること.
プログラム名は「score」とすること.
結果の表示は小数点以下3桁で表示すること.
各教科の得点は,正の数に限定してよい.
最高点が複数人いた場合は,最高点を取った中で最初に入力された人を表示すること.
[3] 環境
 [3.1] OS: windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C
期限はいつでもいいです。よろしくおねがいします。

160 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 16:21:04 ]
[1] 授業単元: プログラミング
[2] 問題文:
数字の書かれているテキストファイルを読み込んで、その数字に1を加えた数をテキストファイルに出力するプログラムを作成しなさい.
読み込むテキストファイルには1行目に整数が書かれており、2行目以降には何も書かれていないとする.
課題実行においては以下の点に注意すること.
プログラム名は「count」とすること.
読み込むテキストファイル名はcount.txtとする.
出力するテキストファイル名はcount.txtとする.

[3] 環境
 [3.1] OS: windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C
これもわかりません。よろしくおねがいします。


161 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 16:23:20 ]
>>159
#include <stdio.h>
main()
{
FILE *fpin,*fpout;
char c;
int i,j;
int B[3][3];
fpin = fopen("in-1.txt","r");
fpout = fopen("out-1.txt","w");
while(fscanf(fpin,"%c",&c)!=EOF)
if(c == 'B')
{for(i=0;i<3;i++)
{for(j=0;j<3;j++)
{fscanf(fpin, "%d", &B[i][j]);
}}}
for (i=0; i<3; i++) {
for (j=0; j<3; j++)
fprintf(fpout,"%3d",B[i][j]/3);
fprintf(fpout,"\n");
}

fclose(fpin);
fclose(fpout);
return(0);
}


162 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 16:26:54 ]
>>127
#include <iostream>
#define STACK 10
#define QUEUE 10
typedef int stack;
typedef int queue;
static int sfirst = 0, slast = 0, qfirst = 0, qlast = 0, qcount = 0;
int push(stack *s, int i){ return slast == STACK ? -1 : (s[slast++] = i);}
int pop(stack *s){ return slast == sfirst ? -1 : s[--slast];}
int enqueue(queue *q, int i){
   if(qlast == qfirst && qcount) return -1;
   q[qlast] = i, qcount++;
   qlast = (qlast + 1)%QUEUE;
   return i;
}
int dequeue(queue *q){
   int ret;
   if(qlast == qfirst && !qcount) return -1;
   ret = q[qfirst], qcount--;
   qfirst = (qfirst + 1)%QUEUE;
   return ret;
}
int main(){
   stack s[STACK];
   queue q[QUEUE];
   std::cout << "push" << std::endl; for(int i = 0; i < 13; i++) std::cout << push(s, i) << std::endl;
   std::cout << "pop" << std::endl; for(int i = 0; i < 13; i++) std::cout << pop(s) << std::endl;
   std::cout << "enqueue" << std::endl;for(int i = 0; i < 13; i++) std::cout << enqueue(q, i) << std::endl;
   std::cout << "dequeue" << std::endl;for(int i = 0; i < 13; i++) std::cout << dequeue(q) << std::endl;
   return 0;
}

163 名前:デフォルトの名無しさん [2007/06/25(月) 16:29:50 ]
>>126さんありがとうございます
自分自身でも理解できるように勉強してみます

164 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 16:31:20 ]
>>162
>  [3.3] 言語: C言語のみ



165 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 16:32:25 ]
>>160
#include <stdio.h>
int main(void)
{
    int n = 0;
    FILE *fp;
    if ((fp = fopen("count.txt", "r+")) == NULL)
        return 1;
    fscanf(fp, "%d", &n);
    rewind(fp);
    fprintf(fp, "%d\n", ++n);
    fclose(fp);
    return 0;
}

166 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 16:41:16 ]
>>144
$ cat vitamin.c
#include <stdio.h>
int main(int argc, char **argv)
{
    if (argc < 2 || argv[1][0] == 0)
        return 0;
    putchar(argv[1][0]);
    ++argv[1];
    return main(argc, argv);
}
$ cc vitamin.c
$ ./a.out "簡単な絵"

167 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 16:50:21 ]
>>165
ありがとうございました。

168 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 16:54:15 ]
>>160
#include <stdio.h>

int main(void){
   FILE *fp = fopen("count.txt", "r");
   size_t len;
   int i, flag = 1;
   char buf[1023], ret[1024] = {0}, *p;
   
   if(!fp) exit(1);
   fgets(buf, sizeof(buf), fp);
   if((p = strchr(buf, '\n')) != NULL) *p = '\0';
   
   len = strlen(buf);
   for(i = 0; i < len; i++){
      if(flag && (buf[len - i - 1] == '9')) ret[len - i] = '0', flag = 1;
      else if(flag) ret[len - i] = buf[len - i - 1] + 1, flag = 0;
      else ret[len - i] = buf[len - i - 1];
   }
   
   if(flag) ret[0] = '1', p = ret;
   else p = ret + 1;
   
   if((fp = freopen("count.txt", "w", fp)) == NULL) exit(2);
   fputs(p, fp);
   fclose(fp);
   
   return 0;
}

169 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 17:42:43 ]
>>159
#include <stdio.h>

typedef struct tag_student_t{
    double eng, math;
    int id;
}student_t;

void InputData(student_t s[], int n){
    int i;
    for(i = 0; i < n; i++){
        printf("student %d\ninput data (id, eng, math) : ", i + 1);
        scanf("%d%lf%lf", &s[i].id, &s[i].eng, &s[i].math);
    }
}

int main(void){
    student_t s[4];
    double max = -1;
    int i, i_max = 0;
   
    InputData(s, 4);
   
    for(i = 0; i < 4; i++)
        if(max < s[i].eng + s[i].math)
            i_max = i, max = s[i].eng + s[i].math;
   
    printf("id : %d eng : %.3f math : %.3f sum : %.3f\n",
    s[i_max].id, s[i_max].eng, s[i_max].math, s[i_max].eng + s[i_max].math);
   
    return 0;
}

170 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 17:48:10 ]
>>162
#include <stdio.h>
#define STACK 10
#define QUEUE 10
// <中略>
int main(void){
    stack s[STACK];
    queue q[QUEUE];
    int i;
    puts("push");
    for(i = 0; i < 13; i++) printf("%d\n", push(s, i));
    puts("pop");
    for(i = 0; i < 13; i++) printf("%d\n", pop(s));
    puts("enqueue");
    for(i = 0; i < 13; i++) printf("%d\n", enqueue(q, i));
    puts("dequeue");
    for(i = 0; i < 13; i++) printf("%d\n", dequeue(q));
    return 0;
}

171 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 17:52:09 ]
>>162
すいません。C言語までしか習っていないのでC言語のみでお願いします。

172 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 17:53:48 ]
>>170
できればでいいのですが問1と問2にわけて頂けないでしょうか

173 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 18:15:22 ]
>>172
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4390.txt

174 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 18:29:03 ]
>>128
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4391.txt



175 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 19:18:34 ]
[1] 授業単元:データ構造とアルゴリズム
[2] 問題文:
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4394.txt

[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン:Visual Studio .NET 2003
 [3.3] 言語:C
[4] 期限:2007/6/26 10:30
[5] その他の制限:入力はfopen系関数を使用したものではなく、コマンドプロンプトから入力が保存されたテキストファイルを読み込む方法で行うようにしなければならない。

どんなに考えてもわかりません。わからないまま前日になってしまいました…
よろしくお願いします。

176 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 19:24:03 ]
まいったな……何の問題なのかも分からないや。

177 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 19:59:11 ]
[1] 授業単元:プログラム技術
[2] 問題文:
 (2)次に引数の順番を入れ替えて逆順に表示するプログラムに直せ。
  ソースプログラムを書き込んで提出せよ。*/

main(int argc , char *argv[]){
int i;

printf("%d argument(s).\n" , argc -1);
for(i=argc-1; i>=0; i--){
printf("argv[%d] : \"%s\"\n", i , argv[i]);
}
}


引数の順番を入れ替えると(char *argv[] , int argc)入力した文字は反映されず、argument(s).の前に
意味不明の数字が表示されて動作を終了してしまいます。
C:\c>smp2 a b c
3616655 argument(s).

ちなみに、引数を入れ替えなければ、逆に表示されます。

回答、よろしくお願いします。


[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン:Visual Studio .NET 2003
 [3.3] 言語:C
[4] 期限:2007/6/26
[5] その他の制限:

178 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 20:02:43 ]
>>173
ありがとうございました!
いろいろ注文多くすいませんでした。

179 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 20:05:55 ]
>>177
argumentでスレを検索汁

180 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 20:07:42 ]
>>177 >>14

181 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 20:11:23 ]
>>177
> 引数の順番を入れ替えると(char *argv[] , int argc)
っつか吹いたっw

182 名前:177 mailto:sage [2007/06/25(月) 20:16:15 ]
>>179>>180
検索しましたが、何の参考にもなりませんでした。
まだ習い始めたばかりでよく分からないんです・・・

>>181
なにか根本的に間違っていたりしますか?
いや、冗談抜きでこの授業分からないんです・・・


183 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 20:18:02 ]
>>182
言葉の意味を勘違いしているだけでしょ。main関数の中の引数の変数の定義を逆にしてどーすんだと。
仕様からして不適切だし、もしそれで答えろっていうなら、そんな講師は全世界レベルで非難を浴びますw

184 名前:デフォルトの名無しさん [2007/06/25(月) 20:22:35 ]
[1] 授業単元:情報処理
[2] 問題文:
 3つのベクトルA=(a1,a2,a3),B=(b1,b2,b3),c=(c1,c2,c3)がある。次のベクトル三重積に関する等式を示すプログラムを条件にしたがって作成せよ。
(A×B)×C=-(B,C)A+(A,C)B ここにA×Bは外積(A,B)は内積を示す。

データの入出力はファイルを使用
ファイル入出力に関してもサブルーチン化
ベクトルはそれぞれ一次元配列化
外積、内積ともにサブルーチンを作成し、外積は左辺、内積は右辺を計算できるようにすること

[3] 環境
 [3.1] OS:linux
 [3.2] コンパイラ名とバージョン:g77 fortran
 [3.3] 言語:fortran
[4] 期限:2007/6/26
ぜひともおねがいします><



185 名前:177 mailto:sage [2007/06/25(月) 20:24:28 ]
>>183
レスどうもです。なるほどorz

>次に引数の順番を入れ替えて

↑では、これは何をしろと言っているのでしょうか・・・。
う〜ん、ますます分からなくなってきたorz


186 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 20:24:50 ]
>言語:fortran
( ^ω^)・・・


187 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 20:26:37 ]
>>185
問題文を全て一字一句違わず書けばいいよNE☆

188 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 20:28:15 ]
>>160
#include <stdio.h>
#include <stdlib.h>
int main()
{
char *p;
long l;
char buff[128];
FILE *fop = fopen("count.txt","r");
fgets(buff,sizeof(buff),fop);
l =strtol(buff,&p,10);
fclose(fop);
fop =fopen("count.txt","a+");
fprintf(fop,"\n%d",l+1);
return 0;
}

189 名前:177 mailto:sage [2007/06/25(月) 20:29:13 ]
>>187
/*(1)次のプログラムを実行し結果を確認せよ。
 (2)次に引数の順番を入れ替えて逆順に表示するプログラムに直せ。
  ソースプログラムを書き込んで提出せよ。*/

問題文はコレで全てですorz


190 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 20:33:31 ]
>>189
だから、受け継いだ値を逆から表示しろって問題なんでしょ?そういうこと。
括弧の中を逆にして受け継げって問題だったら全世界レベルで爆笑もんだよw
スイスのジュネーブにあるISO団体が、んだごるぁ?てめぇんとこは俺らが決めた標準はおろか
C言語の基本も理解していないおかしな授業をしてんのかと?国際的な裁判にかけられちゃいますよ?

191 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 20:35:29 ]
>>177
まぁ、もし 入れ替え っていうなら、例えば引数を3つ受け継いだのなら
1番目と3番目を入れ替えるコードを書けと?そして argv[1] から順に表示しろと?
そういう問題ならそうすべきだが、そんなことせずに単純に逆から表示すりゃ良いでそ。

192 名前:177 mailto:sage [2007/06/25(月) 20:41:53 ]
みなさんどうもです。そうですね、main()の中を入れえ変えるってのは
いくらなんでも無さそうですね。

有難うございました。


193 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 20:41:56 ]
>>177
mainに関して、いろいろ実験してみるといい。
例えば、こんなのも駄目だ。
#include <stdio.h>

int main(char *argv[])
{
    printf("%s\n", argv[0]);
    return 0;
}


194 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 20:42:00 ]
>>189
ほれよ。無駄な上に君の環境で動くかどうか分からないソース
(多分大丈夫だろうけど)

#include <stdio.h>
int main(int argc, char **argv)
{
    int i, j;
    char *tmp;
    printf("%d argument(s).\n" , argc -1);
    printf("argv[0] : \"%s\"\n", argv[0]);
    for (i = 1, j = argc - 1; i < j; ++i, --j) {
        tmp = argv[i];
        argv[i] = argv[j];
        argv[j] = tmp;
    }
    for (i = 1; i < argc; ++i)
        printf("argv[%d] : \"%s\"\n", i, argv[i]);
    return 0;
}



195 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 20:49:58 ]
乱数を発生させて、1〜100までを網羅するように表示せよ。(順番は問わない)

まったく、わからんよ。見かけによらず重い

196 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 20:55:07 ]
>>195
日本語でおk

197 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 20:59:13 ]
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define swap(type, x, y) do{ type temp = x; x = y; y = temp;}while(0)

int main(void)
{
    int x[100], i, j, k;
    srand((unsigned int)time(NULL));
    for(i = 0; i < 100; i++) x[i] = i + 1;
    for(i = 0; i < 1000; i++){
        j = (int)(((double)rand()/(RAND_MAX + 1))*100);
        k = (int)(((double)rand()/(RAND_MAX + 1))*100);
        swap(int , x[j], x[k]);
    }
    for(i = 0; i < 100; i++) printf("%3d ", x[i]);
    return 0;
}

198 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 21:04:26 ]
>>195
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(void) {
int a[100],i,tmp,pos;
int a_sz=sizeof(a)/sizeof(a[0]);

srand((unsigned)time(NULL));
for(i=0; i<a_sz; i++)
a[i]=i+1;

for(i=0; i<a_sz; i++) {
pos=rand()%a_sz;
tmp=a[pos];
a[pos]=a[i];
a[i]=tmp;
}
for(i=0; i<a_sz; i++)
printf("%d ",a[i]);
return 0;
}

199 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 21:07:18 ]
[1] 授業単元:プログラミングT
[2] 問題文(含コード&リンク):
・ポインタを説明せよ。(Wikipedia,Google等参照不可。また書籍の参照も不可。自分の文章で答えること)
・構造体を説明せよ。(同上)
[3] 環境
 [3.1] OS:NULL
 [3.2] コンパイラ名とバージョン:NULL
 [3.3] 言語:C
[4] 期限:2007年06月25日(本日)
[5] その他の制限:同じ文章を見つけた場合は成績評価「不可」とする。

よろしくお願いします。

200 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 21:08:14 ]
そっか、配列の要素を一回ずつ交換してやればいいんだな。

201 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 21:09:29 ]
>>199
同じ学校の学生が見てたら終わりじゃん

202 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 21:09:52 ]
>>199
ja.wikipedia.org/wiki/%E6%A7%8B%E9%80%A0%E4%BD%93
ja.wikipedia.org/wiki/%E3%83%9D%E3%82%A4%E3%83%B3%E3%82%BF_%28%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%29
何も丸々言葉を写さなきゃおk。自分が理解して自分の言葉で書けばええやん。

203 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 21:10:22 ]
OS NULLって何?

204 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 21:10:59 ]
>>203
Oナニー Siてたら NULLヌルしちゃった、てへっ ♥



205 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 21:11:53 ]
むずいね。

206 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 21:12:03 ]
>>199
先生がこのスレを見ている可能性は考えなかったのか

207 名前:199 mailto:sage [2007/06/25(月) 21:16:56 ]
>>206

先生、にちゃんねる大嫌いそうだったから、つい書いてしまいました。

208 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 21:19:10 ]
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):

Mission 1 で作成した「Projection1.java 」は「0 列目」と,
「引数で指定した列」をCSV 形式で出力しましたが, 今度は
「0 列目」と「引数で指定した列以外の全ての列」をCSV 形式で
取り出すプログラムに変更せよ.
それを「Quiz6.java 」というファイルとして作成し,
いつもの要領で,WebCT に添付ファイルとして提出.
「CSV.java 」または「Projection1.java 」をコピーして作
ると良い. クラス名は「Quiz6 」としてください

[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン: Java?
 [3.3] 言語: C
[4] 期限: 今日中に提出
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)

209 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 21:20:17 ]
class Quiz6{
public static void main(String[] args){
String[][] seiseki = {
{"名前"," 国語"," 算数"," 英語"},
{"あべ","45","56","98"},
{"いいだ","70","45","30"},
{"いしかわ","32","70","75"},
{"おがわ","90","10","42"},
{"かご","85","32","80"},
{"かめい","75","92","40"},
{"こんの","30","30","100"},
{"たかはし","85","20","50"},
{"たなか","80","38","68"},
{"つじ","20","60","75"},
{"にいがき","82","42","75"},
{"ふじもと","18","70","78"},
{"みちしげ","60","46","88"},
{"やぐち","28","99","82"},
{"よしざわ","76","45","80"}
};
int col = Integer.parseInt( args[0] );
quiz6(seiseki,col);
}

210 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 21:21:26 ]
public static void Quiz6(String[][] table,int col){
int i,j;
for(i=0; i<table.length; i++){
System.out.println(table[i][0]+","+table[i][col]);
}
}
public static void printTable(String[][] table){
int i,j;
for(i=0; i<table.length; i++){
System.out.print(table[i][0]);
for(j=1; j < table[i].length; j++){
if( ★指定した列でなければ ){
     System.out.print(★);
}
}
System.out.print( "\n" );
}
}
}


★の箇所がわかりません。お願いします。

211 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 21:21:26 ]
>>208
スレ違い

212 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 21:21:35 ]
>>208
スレタイ100回読み直せ
ついでに>>1

213 名前:128 mailto:sage [2007/06/25(月) 21:28:26 ]
>>157さん、>>174さんありがとうございました
参考にさせていただきます

214 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 21:29:58 ]
こいつCとJAVAの区別ついてないんじゃないの?



215 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 21:31:07 ]
なるほど
> [3.2] コンパイラ名とバージョン: Java?
> [3.3] 言語: C
だものな

216 名前:デフォルトの名無しさん [2007/06/25(月) 21:32:59 ]
[1] 授業単元:情報数理

[2] 問題文(含コード&リンク):
複素数型を扱うライブラリcomplex.cを後述するヘッダ
ファイル complex.hに基づいて作ってください。
さらにmain.cというファイルで適当な計算のサンプル
を作り#include “complex.h”として作成したライブラリ
が適切に動作するか検証してください。

typedef struct complex complex; /* complex 型の宣言 */
struct complex {
double real; /* 実部 */
double imag; /* 虚部 */
};
/* プロトタイプ宣言 */
complex cAdd(complex, complex); /* 複素数の加算 x+y */
complex cMult(complex, complex); /* 複素数の乗算 xy */
complex cDiv(complex, complex); /* 複素数の除算 x/y */
double cAbs(complex); /* 複素数の絶対値 |x| */
complex cSub(complex, complex); /* 複素数の減算 x-y */
void printComplex(complex); /* 複素数型データのstdoutへの表示出力 */

[3] 環境
 [3.1] OS:WindowsXP
 [3.2] bcc32
 [3.3] C
[4] 期限:無期限






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<213KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef