C/C++の宿題を片付け ..
39:デフォルトの名無しさん
07/07/16 16:47:16
というか、このくらいの問題に手も足もでない、自力でできないくらいじゃ
単位やらなくてもいいんじゃない?と俺は思うよ。
40:デフォルトの名無しさん
07/07/16 16:52:34
それには同意だが、そんなこと知ったことじゃないし、暇つぶしになるから問題なし。
#include <stdio.h>
#include <stdlib.h>
int main(void){
int m,n,i,j,**a;
char buf[256];
printf("mの値を入力せよ:");
fgets(buf,sizeof(buf),stdin);
sscanf(buf,"%d",&m);
printf("nの値を入力せよ:");
fgets(buf,sizeof(buf),stdin);
sscanf(buf,"%d",&n);
a=(int**)calloc(m,sizeof(int*));
if(a==NULL){printf("メモリ確保失敗。\n");exit(1);}
for(i=0;i<m;i++){
a[i]=(int*)calloc(n,sizeof(int));
if(a[i]==NULL){printf("メモリ確保失敗。\n");exit(1);}
}
for(i=0;i<m;i++)for(j=0;j<n;j++){
a[i][j]=i*n+j;
printf("a[%d][%d]=%d\n",i,j,a[i][j]);
}
for(i=0;i<m;i++)free(a[i]);
free(a);
return 0;
}
41:デフォルトの名無しさん
07/07/16 17:04:25
このスレは宿題を淡々を片付けるスレだから
レベルが低かろうが高かろうがどうでもいいと思うぜ
42:デフォルトの名無しさん
07/07/16 17:14:32
[1] 授業単元:IT入門
[2] 問題文(含コード&リンク):
繰り返し複素数(実部,虚部はそれぞれ整数型とする)を入力し,ユーザが最後に1
(1+i*0)を入れたら今まで入力した複素数の実部と虚部のペアをすべて出力し,さらに
入力した複素数すべての積を出力するプログラムを作成せよ.
なお,ユーザが入力する回数に制限はないものとする.
stdio.hの他にstdlib.hをインクルードしておく必要がある.
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc 最新版
[3.3] 言語: C
[4] 期限:2007年7月21日
[5] その他:参考プログラム(URLリンク(www-it.sci.waseda.ac.jp))を使ってください
43:デフォルトの名無しさん
07/07/16 17:15:08
>>40
ありがとうございます。
提出期限と同じ木曜日に出題されて今日まで連休中考えていたけど
配列はどうしても苦手で参考サイトを回ってみたけど、さっぱりでした。
>>39
それでも単位は欲しいのが大学生です。
44:42
07/07/16 17:15:52
URLリンク(www-it.sci.waseda.ac.jp)
もう一度リンクしておきます
45:デフォルトの名無しさん
07/07/16 17:32:14
どうでもいいけど直リンだと2chでお願いしてるのがバレバレだよ。
46:デフォルトの名無しさん
07/07/16 17:33:19
どうせ誰がコピッたかなんて分かるわけが…
ソース見りゃ分かるか。
47:デフォルトの名無しさん
07/07/16 17:39:27
>>29
ソース自体は書いたんだが、ポインタのポインタを有効に使う方法が思いつかないなぁ・・・。
48:47
07/07/16 17:50:22
>>29
URLリンク(kansai2channeler.hp.infoseek.co.jp)
とりあえずupしといたんで、ポインタのポインタ使用版に改良できる人いたらお願い。
49:デフォルトの名無しさん
07/07/16 17:56:33
gets使うなよ。
50:デフォルトの名無しさん
07/07/16 18:06:10
そういう事は言ってやるなよ。
宿題丸投げする奴への餞別のつもりだろ。
51:デフォルトの名無しさん
07/07/16 18:12:33
申し訳ありません。宜しくお願いします
【質問テンプレ】
[1] アプリ開発
[2] OS内にあるサウンド出力プログラム作成
[3.1] Windows
[3.2]eclipse バージョンは分かりません
[3.3] どちらでもイイらしいです
[4] 7/18(水)
[5] スタイルシートを自ら作りSQLで模擬エクセル作成、バックトラック法、動的計算法はやりました
52:デフォルトの名無しさん
07/07/16 18:16:04
>>51
接続部位のデバイス設定をやりたいのか
WAVとかmp3とかの出力ファイルを作りたいのか
メディアプレイヤーとかのアプリを作りたいのかはっきりしろw
意味が中途半端で分からんw
53:デフォルトの名無しさん
07/07/16 18:17:54
ecliってCコンパイラあったのか?
ちょっとしか触った事ないけどJava用IDEってイメージだった
54:デフォルトの名無しさん
07/07/16 18:18:36
>>51 eclipseならbccだろ?ちゃんと書いたほうがいいよ
55:36
07/07/16 18:18:48
すいませんがどなたか使い方教えてください・・・
750 :デフォルトの名無しさん [sage] :2007/07/12(木) 13:00:15
>>748 ショボイですが
暗号
#include <stdio.h>
#include <ctype.h>
static char alpha[53] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
static char table[53] = "zNFeYMljvJXKicfrGyDEOwQpHkCLbxhqRAPsnouVTaWIZdUmBStg";
int getindex(char *str, int ch){
int i;
for(i = 0; i < 52 && str[i] != ch; i++) ;
return i;
}
int main(int argc, char *argv[]){
FILE *fpin, *fpout;
int ch, op;
if(argc < 3 || (fpin = fopen(argv[1], "r")) == NULL || (fpout = fopen(argv[2], "w")) == NULL) exit(1);
while((ch = fgetc(fpin)) != EOF)
if(isalpha(ch)) fputc(table[getindex(alpha, ch)], fpout);
else fputc(ch, fpout);
fclose(fpin), fclose(fpout);
return 0;
}
56:デフォルトの名無しさん
07/07/16 18:18:59
>>27
URLリンク(kansai2channeler.hp.infoseek.co.jp)
2重ポインタ版。
縦に表示なんて面倒な指定さえなければもっとメモリ節約できるけど。
57:56
07/07/16 18:19:44
安価ミス
>>27×
>>29○
58:デフォルトの名無しさん
07/07/16 18:23:31
>>55
「main」関数に「引数」があるわけだな
ぐぐってみろ
ぐぐってまったく意味不明だったら答えてやる
59:デフォルトの名無しさん
07/07/16 18:24:45
>>51 ちょwwwそれ宿題ってレベルじゃねーぞw どこの学校だよw
60:56
07/07/16 18:25:29
訂正、下の方の
putchar(str[j][i]);
の行を
if(str[j][i]!='\0')putchar(str[j][i]);
にしといて。
61:デフォルトの名無しさん
07/07/16 18:25:54
>>55
問題文もくれなきゃ何がしたいのかわからん。
ソース見る限り単一換字暗号?
62:デフォルトの名無しさん
07/07/16 18:27:31
>>42
URLリンク(kansai2channeler.hp.infoseek.co.jp)
63:デフォルトの名無しさん
07/07/16 18:33:17
>>51
多分これじゃダメなんだろうな
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]){
char cmd[10+FILENAME_MAX];
if(argc==2){
sprintf(cmd, "start %s", argv[1]);
system(cmd);
}
return 0;
}
64:デフォルトの名無しさん
07/07/16 18:37:24
>>61
任意の英文について、換字暗号表を用いて暗号化するプログラムと、
暗号化した文を同様の表を用いて解読するプログラムを作成せよ。
入力する文章と換字暗号表の形式は自由にしてよいものとする。(別に用意したテキストファイルから読み込む形のほうが好ましい)
例
abcd… という英文があったとき、換字暗号表がa→t b→y c→e d→k…だったなら、
tyek…と出力されるプログラム、またその逆操作するプログラム
という意味です。
という文章でお願いしたところ、>>55のような回答をいただきましたが、使い方がわかりませんでした
よろしくお願いします
65:51
07/07/16 18:37:46
すいません 組み込み系です。
>>52さんの言われている中では「接続部位のデバイス設定」になると思います
>>63すいません OS無しで作る方法を・・・・・
66:デフォルトの名無しさん
07/07/16 18:39:58
OS無しとは、一気に難易度が上がったな。
67:デフォルトの名無しさん
07/07/16 18:40:10
>>51
UNIX板行った方がいいと思うよ あっちは組み込み系だから・・・・・・
68:デフォルトの名無しさん
07/07/16 18:41:40
その誘導のしかたもどうかと思う。
69:デフォルトの名無しさん
07/07/16 18:41:54
>>56
スベース文字のスキップがない
70:デフォルトの名無しさん
07/07/16 18:42:24
>>51 ちょwwどこの学校だ・・・・・今後の参考に教えてくれないか?
71:デフォルトの名無しさん
07/07/16 18:46:30
>>51 マジレス:卒業したら年収700万で雇うから来てくれ
housurejiak2245589761045@hotmell〜
72:デフォルトの名無しさん
07/07/16 18:47:12
>>51 の学校で他人のソースコピペ無しで卒業なら、めちゃめちゃ優秀なマだな
73:デフォルトの名無しさん
07/07/16 18:52:43
>>51 君の学校は新しいOSを開発しているのか?
申し訳無いが、俺らはソフト屋だ。そっち側はまったく分からん
助けにならなくて申し訳ない
74:デフォルトの名無しさん
07/07/16 19:00:12
CPUの演算がどのように行われているのかをまず覚えよ
底辺マは出力結果にしか興味を持たない だからバグがでる
75:デフォルトの名無しさん
07/07/16 19:02:39
>>51
サウンドデバイスの IO の定義が無いとどうにもならない
最低限でも
1.音量設定の方法
2.周波数設定の方法
3.サウンドバッファへの書き込み&失敗検出の方法
くらいは必要だと思うよ
76:55
07/07/16 19:05:29
>>58
ぐぐってみましたが意味不明でした…
すいません、教えていただけますか?
77:デフォルトの名無しさん
07/07/16 19:06:56
>>63 が駄目ならこれも駄目ってことか
OS無しって難しすぎだろ
PlaySound("c:\\windows\\media\\chimes.wav", NULL, SND_SYNC | SND_FILENAME);
78:デフォルトの名無しさん
07/07/16 19:08:20
>>76
./a.out 変換元ファイル 変換後ファイル名
79:デフォルトの名無しさん
07/07/16 19:10:28
>>64
出てきたバイナリのコマンドラインに対象テキストファイル名と出力先ファイル名を追記。
例えばコンパイルして出てきたプログラムがa.exe、暗号化するテキストがbefore.txt、
出力先をafter.txtとするなら
a.exe before.txt after.txt
でafter.txtに暗号化済みのファイルが出力される。
逆操作は不可。そういう意味では>>55は要件を満たしていないね。
こんなとこに丸投げする人にいう事じゃないと思うけど
こんくらいのソース読めないでこれからやっていけると思ってる?
80:51
07/07/16 19:12:04
すいません
やっぱり 自分でやってみます
自分で考えて解決しなきゃ成長しませんもんね・・・・・
色々ありがとうございました。
>>71さん、心使いは嬉しいのですが学校で研究を続けるつもりなので・・・・
それと学校名は出せません。ごめんなさい
81:デフォルトの名無しさん
07/07/16 19:15:45
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc 3.4
[3.3] 言語: C
[4] 期限: 明日まで
[5] その他の制限: 出来る限り単純な方法で回答して下さると助かります。
よろしくお願いします。
82:デフォルトの名無しさん
07/07/16 19:16:44
擁護するわけじゃないけど、コマンドライン引数の実際の使い方は教本によっちゃ物凄い投げやりだからな。
こんなんで分かればエスパーだろってぐらい。
で、分からんから後まわしにして課題出てくると四苦八苦するんだよな。
83:デフォルトの名無しさん
07/07/16 19:16:53
>>80
ここの方達が手上げてるのを完成させるの難しくない?
>>67の行ってるUNIX板行った方がよくない?
84:デフォルトの名無しさん
07/07/16 19:18:28
>>81
前スレに同じのがあったから見てくるといいと思うよ。
85:デフォルトの名無しさん
07/07/16 19:20:27
LL構文解析懐かしすぎる
86:デフォルトの名無しさん
07/07/16 19:27:12
>>29
だれかお願いします。
>>47,48ががんばってくれたけど「ポインタのポインタ」使用版でないと
駄目な課題なので分かる方お願いします。
>>47,48
ありがとうございます。
87:56=57=60
07/07/16 19:29:07
orz
88:51
07/07/16 19:32:53
自分も投げ出してたから人のこと言えないけど
時間かかってでも自分で考えて解決した方がいいと思う
89:デフォルトの名無しさん
07/07/16 19:34:51
>>88
秀同って事でスレ終了 乙です
90:デフォルトの名無しさん
07/07/16 19:45:35
>>78
その通りやっても出来ない・・・なぜでしょうか
91:デフォルトの名無しさん
07/07/16 19:57:19
>>90
次の一連のコマンドを打ち込んだ結果を晒してみて
echo hello>a.txt
./a.out a.txt b.txt
echo $?
cat b.txt
92:91
07/07/16 19:59:42
最後に追加
ls -l a.out a.txt b.txt
93:デフォルトの名無しさん
07/07/16 20:00:57
C:\Documents and Settings\******>echo hello>a.txt
C:\Documents and Settings\******>./a.out a.txt b.txt
'.' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
C:\Documents and Settings\******>echo $?
$?
C:\Documents and Settings\******>cat b.txt
cat: b.txt: No such file or directory
こうなりました
94:デフォルトの名無しさん
07/07/16 20:02:44
C:\Documents and Settings\******>ls -l a.out a.txt b.txt
ls: a.out: No such file or directory
ls: b.txt: No such file or directory
-rw-rw-rw- 1 user group 7 Jul 16 19:59 a.txt
追加の分はこうなりました
コマンドプロンプトで実行しました
95:91
07/07/16 20:05:31
>>93
linux じゃなかったのかよ!
echo hello>a.txt
.\a.exe a.txt b.txt
type b.txt
dir
96:デフォルトの名無しさん
07/07/16 20:08:41
笑った。
どうみてもコマンドプロンプトかcygwinとかだね。
97:デフォルトの名無しさん
07/07/16 20:21:17
>>86
皆さんの回答を参考にして作ってみた。これでどうかな。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
98:デフォルトの名無しさん
07/07/16 20:31:46
よく見てないけど。
if(buf[strlen(buf)-1] == '\n')
buf[strlen(buf)-1] = 0;
↑ifで判定する必要ない。
99:デフォルトの名無しさん
07/07/16 20:41:55
>>42
URLリンク(kansai2channeler.hp.infoseek.co.jp)
参考コードは一部使用していない
100:99
07/07/16 20:52:38
>>42
URLリンク(kansai2channeler.hp.infoseek.co.jp)
一部訂正
101:デフォルトの名無しさん
07/07/16 21:00:34
>>42
コンパイルしていない
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct _{ int r, i; } img;
static img *ary=NULL;
static int arysize;
static int arylen;
void putimg(img img){
if(arysize<=arylen){
arysize+=10;
ary=realloc(ary, sizeof(img)*arysize);
}
ary[arylen++]=img;
}
int main(void){
img m;
int i;
for(;;){
scanf("%d,%d", &m.r, &m.i);
if(m.r==1&&m.i==0) break;
putimg(m);
}
for(m.r=1, m.i=i=0;i<arylen;i++){
printf("%d+%d*i\n", ary[i].r, ary[i],i);
m.r=m.r*ary[i].r-m.i*ary[i].i;
m.i=m.r*ary[i].i+m.i*ary[i].r;
}
printf("%d+%di\n", m.r, m.i);
}
102:デフォルトの名無しさん
07/07/16 21:04:13
[1] 授業単元: プログラミング言語
[2] 問題文(含コード&リンク):
• 区間[ a, b ]において連続なる関数f ( x) について,定積分の計算を行う
• 適用する公式は,シンプソンの公式
S=h/3{y(0)+y(2n)+4{y(1)+y(2)+....+y(2n-1)}+y(2)+y(4)+.....+y(2n-2)}
• f ( x)=1/(1+x2)
• a=0, b=10, e=0.0000001の場合の積分値とnの値を表示する
• 各変数(nを除く)の型はdoubleとする
[3] 環境
[3.1] OS:windows xp
[3.2] コンパイラ名とバージョン:Microsoft Visual Studio 2005
[3.3] 言語:C++
[4] 期限:次の木曜まで
[5] その他の制限: これといって無し
リンク先に手順の例とかがあります
URLリンク(kansai2channeler.hp.infoseek.co.jp)
とりあえず自分でやってみたけど無理でした。この雑魚にどなたかご教授をorz
あと最後らへんのprintf文の、&nの&は無かったことに(´;ω;`)
103:デフォルトの名無しさん
07/07/16 21:05:06
>>97
ぜんぜん良いと思います。
ありがとうございます。
ポインタのポインタを使っていてちゃんと動作するものなら問題ないので。
104:デフォルトの名無しさん
07/07/16 21:09:42
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: cygwin
[3.3] 言語: C
[4] 期限: 7/17午前中
[5] その他の制限: なし
105:デフォルトの名無しさん
07/07/16 21:19:06
>>103
ベースは>>56さんのなので、よろ
106:デフォルトの名無しさん
07/07/16 21:34:45
>>102
#include <stdio.h>
double f(double x){
return 1.0/(1.0+x*x);
}
int main(void){
double a=0.0, b=10.0, h, sum;
long n=10000000, i;
h=(b-a)/n;
sum=f(a)+f(b);
for(i=1;i<n;i+=2) sum+=2*f(a+h*i);
for(i=2;i<n;i+=2) sum+=4*f(a+h*i);
sum*=h/3;
printf("Answer: %f\n", sum);
return 0;
}
107:デフォルトの名無しさん
07/07/16 22:14:38
>>106さん、ありがとうございます。工夫すればかなり短くなるんですね・・・
それと、問題文に抜けてしまったんですが
• s2は最新の計算結果,s1は一つ前の計算結果
• |s2-s1|<eとなるまで,nを1増やしながら,以下の
処理を繰り返す
- s1←s2
- s2を新しいnで計算する
というのはどうすれば出来るでしょうか?よろしければご教授お願いします
108:デフォルトの名無しさん
07/07/16 22:24:21
>>104
#include <stdio.h>
int main(void){
int masu[9], a, i, j, turn = 0;
char *koma[3] = {" 0 ", " X ", " * "};
for(i = 0; i < 9; i++) masu[i] = 2;
while(1){
do{
printf("?"), scanf("%d", &a);
if(a >= 9) continue;
}while(masu[a] != 2);
masu[a] = turn%2;
turn++;
for(i = 0; i < 3; i++){
for(j = 0; j < 3; j++) printf("%s", koma[masu[i*3 + j]]);
printf("\n");
}
if((masu[(a + 3)%9] == masu[a] && masu[(a + 6)%9] == masu[a]) ||
(masu[3*a/3 + (a + 1)%3] == masu[a] && masu[3*a/3 + (a + 2)%3] == masu[a]) ||
(a%4 == 0 && masu[0] == masu[a] && masu[4] == masu[a]&& masu[8] == masu[a]) ||
(a%2 == 0 && a%8 != 0 && masu[(a + 2)%8 + 2] == masu[a] && masu[(a + 4)%8 + 2] == masu[a])){
printf("%s\n", koma[masu[a]]);
break;
}else if(turn >= 9){
printf("draw\n");
break;
}
}
return 0;
}
109:デフォルトの名無しさん
07/07/16 22:29:18
一つでまとめますかw
あんたすごいよ。
110:21
07/07/16 22:30:37
どなたか>>21お願いします!
111:デフォルトの名無しさん
07/07/16 22:33:10
>>107
#include <stdio.h>
#include <math.h>
double f(double x){
return 1.0/(1.0+x*x);
}
int main(void){
double a=0.0, b=10.0, e=0.0000001, h, s1=0.0, s2;
long n, i;
int is_first=1;
for(n=2;;n+=2){ // アルゴリズムの関係で n は偶数
h=(b-a)/n;
s2=f(a)+f(b);
for(i=1;i<n;i+=2) s2+=2*f(a+h*i);
for(i=2;i<n;i+=2) s2+=4*f(a+h*i);
s2*=h/3;
if(!is_first && fabs(s2-s1)<e) break;
s1=s2;
is_first=0;
}
printf("n=%ld integral=%f\n", n, s2);
return 0;
}
112:デフォルトの名無しさん
07/07/16 22:46:56
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):
CSVファイルからデータを読み込み、構造体に入れる。
CSVファイルの中身は、名前・住所・電話番号で、10件以内である。
構造体には、登録番号・名前・住所・電話番号を入れる。
登録番号は自分でつける。
最初に、登録番号と名前を表示し、入力された登録番号に応じて
名前住所電話番号を表示する。
[3] 環境
[3.1] OS:windows cygwin
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限: 今日中
[5] その他の制限:特になし
色々かんがえたのですがわかりませんでした。。
よろしくおねがいします。
113:デフォルトの名無しさん
07/07/16 22:48:53
>>111さん
素早い回答ありがとうございました。おかげで次の宿題は出せそうです。ありがとうございました。
114:デフォルトの名無しさん
07/07/16 22:49:29
>>107
ごめん間違った
for(i=1;i<n;i+=2) s2+=2*f(a+h*i);
for(i=2;i<n;i+=2) s2+=4*f(a+h*i);
↓
for(i=1;i<n;i+=2) s2+=4*f(a+h*i);
for(i=2;i<n;i+=2) s2+=2*f(a+h*i);
115:デフォルトの名無しさん
07/07/16 22:50:12
あちゃー手遅れだったか
116:スモーク
07/07/16 22:50:23
多分岐型
整数型の変数a・b と、文字型の変数e を用意し、
キーボードから2つの数値と1つの演算子を入力し
、その計算結果cを出力するプログラムを作成しなさい。
実行される計算は和・差・積・商・剰余の5種類とし、
演算子はそれぞれ’+’、’-’、’*’、’/’、’%’で
表現されるものとする。
演算子にそれ以外の記号が入力された場合は
エラーメッセージを表示する。
また0による除算の回避も含めること。
まだcaseになれていないのだろうか・・・。
教えてください。
117:スモーク
07/07/16 22:51:41
他にも。
多分岐型(2)
次の説明は冬季オリンピックの開催年についての説明である。
キーボードから変数year に入力された年号について、
開催された年に第何回大会が開催されたか
画面に表示するプログラムを作成しなさい。
また開催年でない場合は、画面にその旨メッセージを出力すること。
118:デフォルトの名無しさん
07/07/16 22:55:35
>>117
説明がneeeeeeeeeeeee
119:107
07/07/16 22:56:05
>>114さん、わざわざ丁寧にありがとうございます!(´;ω;`)ブワッ
120:デフォルトの名無しさん
07/07/16 22:57:52
【質問テンプレ】
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
文字列を置換するプログラムをつくれ。
どのような形でもいいので、置き換える文字列と置き換えられる文字列を受け取り
置換した文章を出力する。なるべくポインタを使うこと。試しにちゃんと動くか確認すること。
(例)”僕" を ”私” に置換する
僕は20才だ。僕の好きなたべものはお酒だ。
-> 私は20才だ。私の好きなたべものはお酒だ。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン:(gcc 2.95.3)
[3.3] 言語: C
[4] 期限: (2007年07月31日23:59まで )
[5] その他の制限: 無し
121:デフォルトの名無しさん
07/07/16 22:58:12
まぁ、感謝されたって力つかなきゃ意味無いし、暇つぶしの種にされてるだけだから考え物だけどな。
122:デフォルトの名無しさん
07/07/16 23:05:22
>>110
あれでできてるんじゃねえのか?
scanfの前に"c2p Message:","p2c Message:"とか
printfをいれて挙動をチェックしろ
123:デフォルトの名無しさん
07/07/16 23:11:52
[1] 授業単元:データ構造とアルゴリズム
[2] 問題文:
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ名とバージョン:Visual Studio .NET 2003
[3.3] 言語:C
[4] 期限:2007/7/17(火) 10:30
[5] その他の制限:入力はfopen系関数を使用したものではなく、コマンドプロンプトから入力が保存されたテキストファイルを読み込む方法で行うようにしなければならない。
どうかよろしくお願いします。
124:デフォルトの名無しさん
07/07/16 23:16:50
[1] 授業単元:C言語
[2] 問題文(含コード&リンク): メンバx[]の値が定まっているPoint5Dのインスタンスを引数とし,
その2ノルムを計算して返す関数 Norm を書け.
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:明日まで
[5] その他の制限:無し
問題の意味がいまいち分かりません…orz
よろしくお願いします。
125:デフォルトの名無しさん
07/07/16 23:17:09
>>120
#include <stdio.h>
#include <string.h>
void replace(char *sentence, char *src, char *dest){
char *ptr;
int src_len;
src_len=strlen(src);
for(;;){
ptr=strstr(sentence, src);
if(ptr==NULL) break;
printf("%.*s%s", ptr-sentence, sentence, dest);
sentence=ptr+src_len;
}
printf("%s", sentence);
}
int main(void){
char *sentence="僕は20才だ。僕の好きなたべものはお酒だ。";
char *src="僕", *dest="私";
replace(sentence, src, dest);
return 0;
}
126:デフォルトの名無しさん
07/07/16 23:18:52
>>120
#include <stdio.h>
int main(int argc, char **argv)
{
char *queue;
int c, qhead = 0, qtail = 0, qsize;
if (argc < 3)
return fprintf(stderr, "usage: %s from to\n", argv[0]), 1;
qsize = strlen(argv[1]);
queue = malloc(qsize);
while ((c = getchar()) != EOF) {
queue[qtail] = c;
qtail = (qtail + 1) % qsize;
if (qhead != qtail) continue;
if (memcmp(&queue[qhead], argv[1], qsize - qhead) == 0
&& memcmp(queue, argv[1] + qsize - qhead, qtail) == 0) {
fputs(argv[2], stdout);
qhead = qtail = 0;
} else {
putchar(queue[qhead]);
qhead = (qhead + 1) % qsize;
}
}
while (qhead != qtail) {
putchar(queue[qhead]);
qhead = (qhead + 1) % qsize;
}
free(queue);
return 0;
}
127:126
07/07/16 23:21:41
あ。
#include <stdlib.h>
#include <string.h>
もしといて。スマソ。
128:デフォルトの名無しさん
07/07/16 23:28:07
>>125
ありがとうございます。かなりきれいにできていますね。
自分もstrstr ()を使ったのですが、途中でつまってしまいました。
129:デフォルトの名無しさん
07/07/16 23:28:59
>>120 便乗
#include <stdio.h>
#include <string.h>
int main(void)
{
char buf[1024], rep[2048], word1[32], word2[32], *p = buf, *q = rep;
scanf("%[^\n]%s%s", buf, word1, word2);
while(*p){
if(!strncmp(p, word1, strlen(word1))) strcpy(q, word2), p += strlen(word1), q += strlen(word2);
else *q++ = *p++;
}
*q = '\0';
puts(rep);
return 0;
}
130:デフォルトの名無しさん
07/07/16 23:31:06
>>126
すごいですね。こんなやりかたもあったのですか。
131:デフォルトの名無しさん
07/07/16 23:38:44
>>129
検索単語がみつかったら単語の文字の数だけ前に進めてstrcpy()をつかうのですね。
それも考えていたのですが、できそうでできませんでした。
みなさん、ありがとうございました。
132:デフォルトの名無しさん
07/07/16 23:40:48
[1] 授業単元:情報基礎
[2] 問題文:
・1から9までの数字を一回ずつ使った9桁の数字を小町数という。
自乗した数が小町数となるような自然数をすべて求めるプログラムを作成し
その数と小町数の両方を出力せよ
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C
[4] 期限: (明日まで )
[5] その他の制限: 無し
C言語習いたてで、期限ぎりぎりまでがんばったんですけどダメでした
どなたかよろしくお願いします。
133:デフォルトの名無しさん
07/07/16 23:52:56
昔のスレに同じ質問あった気がするな
134:22
07/07/16 23:54:32
>>25
ありがとうございます。
なんですが、元々のソースを追記修正して今まできたので
一応そのような形でって事になってます。
制限なしと書いていましたが、現在のソースを
やっと作れるか作れないかぐらいのレベルなので
>>25さんのだとまだちょっとわからないことがいろいろとあります。
勉強してみます。ありがとうございました。
135:デフォルトの名無しさん
07/07/17 00:08:28
>>132
#include <stdio.h>
#include <string.h>
int check(unsigned long n)
{
char f[10] = { '0' };
for (n = n * n; n > 0; n /= 10)
f[n % 10] = '1';
return memcmp(f, "0111111111", 10) == 0;
}
int main(void)
{
unsigned long n;
/*
* 最小小町数 123456789, sqrt(123456789) = 11111.11...
* 最大小町数 987654321, sqrt(987654321) = 31246.96...
*/
for (n = 11111; n < 31428; ++n)
if (check(n))
printf("%lu * %lu = %lu\n", n, n, n * n);
return 0;
}
136:135
07/07/17 00:11:09
あ、コメント間違ってら
sqrt(987654321) = 31426.96...
ね、正しくは。
137:デフォルトの名無しさん
07/07/17 00:18:27
>>136
わざわざありがとうございます!
今できる環境にないので明日大学で試してみます
138:デフォルトの名無しさん
07/07/17 01:10:25
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:本日(17日)まで
[5] その他の制限:無し
よろしくお願いします。
139:デフォルトの名無しさん
07/07/17 01:50:51
>>108
ありがとうございます。
終了条件の部分大変参考になりました。
140:デフォルトの名無しさん
07/07/17 03:38:07
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):迷路の作成(探索)
2次元配列を用いて迷路をつくりSTARTからGOALまでの経路を視覚的にわかるように出力せよ。
(例)壁1 通路0 START8 GOAL9
データ
1 1 1 1 1 1 1 1 1 1
1 9 0 0 0 1 0 1 0 1
1 1 1 1 0 1 0 0 0 1
1 0 1 0 0 1 1 1 0 1
1 0 1 0 1 1 0 0 0 1
1 0 0 0 1 0 0 1 1 1
1 1 0 1 1 0 1 0 0 1
1 0 0 0 1 0 1 0 1 1
1 0 1 0 0 0 0 0 8 1
1 1 1 1 1 1 1 1 1 1
141:デフォルトの名無しさん
07/07/17 03:38:42
続きです
出力結果
**********
*G+++* * *
****+* *
* *++*** *
* *+** *
* ++* ***
**+** * *
* ++* * **
* *+++++S*
**********
[3] 環境
[3.1] OS:Mac
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:本日(17日)まで
[5] その他の制限:無し
現在奮闘中ですがなかなかできませんorz
よろしくお願いします。
142:デフォルトの名無しさん
07/07/17 04:26:02
>>142
#include <stdio.h>
#define X 10
#define Y 10
int map[X][Y]={ {1,1,1,1,1,1,1,1,1,1}, {1,9,0,0,0,1,0,1,0,1},
{1,1,1,1,0,1,0,0,0,1},{1,0,1,0,0,1,1,1,0,1},
{1,0,1,0,1,1,0,0,0,1},{1,0,0,0,1,0,0,1,1,1},
{1,1,0,1,1,0,1,0,0,1},{1,0,0,0,1,0,1,0,1,1},
{1,0,1,0,0,0,0,0,8,1},{1,1,1,1,1,1,1,1,1,1}};
char expr[]=" *+34567SG";
int next(int x, int y) {
if (map[x][y] == 0) map[x][y] = 2;
if (map[x-1][y] == 9 || map[x-1][y] == 0 && next(x-1, y)) return 1;
if (map[x][y-1] == 9 || map[x][y-1] == 0 && next(x, y-1)) return 1;
if (map[x+1][y] == 9 || map[x+1][y] == 0 && next(x+1, y)) return 1;
if (map[x][y+1] == 9 || map[x][y+1] == 0 && next(x, y+1)) return 1;
if (map[x][y] == 2) map[x][y] = 0;
return 0; }
int main() {
int x, y, r=0;
for (x=0; x<X; x++) for (y=0; y<Y; y++) if (map[x][y] == 8) next(x, y);
for (x=0; x<X; x++) {
for (y=0; y<Y; y++) putchar(expr[map[x][y]]);
putchar('\n');
}
return 0; }
143:142
07/07/17 04:30:54
安価ミスた.orz
144:デフォルトの名無しさん
07/07/17 04:46:27
URLリンク(ja.wikipedia.org)
145:デフォルトの名無しさん
07/07/17 08:50:03
>>138
URLリンク(kansai2channeler.hp.infoseek.co.jp)
146:デフォルトの名無しさん
07/07/17 09:22:08
>>112
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct{
char num[128], name[128], adr[128], tel[128];
}Data;
int main(int argc, char *argv[])
{
Data x[10];
FILE *fp;
int i = 0, j;
char buf[1024], *p, search[128];
if(argc < 2) fprintf(stderr, "usage : %s string\n", argv[0]), exit(1);
if((fp = fopen(argv[1], "r")) == NULL) perror(argv[1]), exit(2);
while(fgets(buf, sizeof(buf), fp) != NULL){
printf("num : "), scanf("%s", x[i].num);
if((p = strtok(buf, ",")) != NULL) sscanf(p, "%s", x[i].name);
if((p = strtok(NULL, ",")) != NULL) sscanf(p, "%s", x[i].adr);
if((p = strtok(NULL, ",")) != NULL) sscanf(p, "%s", x[i].tel);
i++;
}
for(j = 0; j < i; j++)
printf("%s %s\n", x[j].num, x[j].name);
printf("search : "), scanf("%s", search);
for(j = 0; j < i; j++)
if(!strcmp(search, x[j].num))
printf("%s %s %s\n", x[j].name, x[j].adr, x[j].tel);
return 0;
}
147:デフォルトの名無しさん
07/07/17 11:28:50
[1] 授業単元:IT入門B1
[2] 問題文:繰り返し複素数(実部,虚部はそれぞれ整数型とする)を入力し,ユーザが最後に1 (1+i*0)を入れたら今まで入力した複素数の実部と虚部のペアをすべて出力し,さらに入力した複素数すべての積を出力するプログラムを作成せよ.
なお,ユーザが入力する回数に制限はないものとする.
stdio.hの他にstdlib.hをインクルードしておく必要がある.
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:c
[4] 期限:2007年7月30日
[5] その他の制限: 特になし
参考プログラムです→URLリンク(www-it.sci.waseda.ac.jp)
よろしくお願いします。
148:デフォルトの名無しさん
07/07/17 11:38:25
>>147
検索して死ね
149:デフォルトの名無しさん
07/07/17 11:39:39
[1]授業単元:プログラミング技術III
[2]問題文:URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ: gcc
[3.3] 言語: C
[4] 期限:7/18まで
[5] その他の制限:特になし
よろしくお願いします
150:デフォルトの名無しさん
07/07/17 13:09:50
[1]授業単元:ゲームV
[2]問題文:数独(wiki参照Wikipedia項目リンク)解読プログラム
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ: gcc
[3.3] 言語: C
[4] 期限:7/20
[5] その他の制限:関数は2つ以下、#include <stdio.h>のみを使用すること
宜しくお願いします
151:デフォルトの名無しさん
07/07/17 13:22:11
>>150
URLリンク(www.techfinesse.com)
こんなのがあるようだぞ
その制限には引っかかるようだがなw
152:デフォルトの名無しさん
07/07/17 13:30:55
[1] データ構造論
[2]treeprintのプログラムを参考にして木をカッコ表記で表示するプログラムを作り、コマンド X で動作するようにせよ。
/* treeprint() : 2分探索木を根から順にすべて表示する(1行10個毎) */
int num; /* 1行のデータ個数を制御するための変数。*/
void treeprint(void)
{
num= 0;
/* 木の根ノードからサブ関数trprintを用いてプリント開始。*/
trprint(start->right);
}
int trprint(TNODE *p) /* trprint(p) : p の2分木を再帰的にプリント。*/
{
if(p != end){ /* p が終端ノードでないならば */
trprint(p->left); /* pの左部分木を再帰的にプリント。 */
printf("%5d%c",p->key, (++num % 10) ? ' ':'\n'); /* pのkey値を表示。 */
trprint(p->right); /* pの右部分木を再帰的にプリント。 */
}
}
[3.1] Linux [3.2] gcc 3.4 VC 6.0等 [3.3] C言語
[4] 2007年07月18日12:00まで]
[5] プログラムの中のtreeprintだけ問題文の載せています
よろしくお願いします
153:デフォルトの名無しさん
07/07/17 13:33:01
>>149
URLリンク(kansai2channeler.hp.infoseek.co.jp)
154: ◆Il0WZuGYWw
07/07/17 14:47:00
>>150
bsdのportsの中に入ってるお
155:デフォルトの名無しさん
07/07/17 15:36:03
>>150
何の工夫も無い力技だが一応やってみた。
出回っているソースは確実にこれよりはマシだろう。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
156:デフォルトの名無しさん
07/07/17 16:23:42
あ、あ、ぼるじょあのほうにカキコしてしまった……
こっちのほうがいいのかな?マルチは怒られますよね?よければ誰かぼるじょあスレ見てください〜〜
157:デフォルトの名無しさん
07/07/17 19:15:37
>>142
遅い時間にも関わらず回答ありがとうございます。
確かに動作できました。
しかしながら関数を3つ作ってとけとのことでしたorz
すみませんがお時間がありましたら回答おねがいします。
問題は>>140-141です
よろしくお願いします<(__)>
158:c言語初心者
07/07/17 20:00:23
授業名:プログラミング1
プリントを渡されてやってこいとのことでした。
問題1
サイコロを10000回投げたとき、1から6までのそれぞれの目が
何回ずつ出たか調べるプログラムを作成せよ
#include<stdio.h>
#include<stdlib.h>
#define uniformrand()((double)rand() / ((double)RAND_MAX + 1.0))
int main(void)
{
int i, j,spot, f[ ?(1) ];
srand(0);
for (j = 1;j <= 6;j++){
f[j] = 0;
}
for( i = 1;i <= 10000; i++){
spot = (int)(6 * uniformrand()) + 1;
[ ?(2) ]
}
return 0;
}
です。どうかよろしくお願いします。
159:デフォルトの名無しさん
07/07/17 20:01:52
C++です
距離の単位にyかmが入力されるともう片方の単位に変換するプログラムです。
ただし、距離を変換する部分は、関数transを定義し、main関数で呼び出すこと。
距離の数値を入れた後に動かなくなるんですが、何が違うのか教えてほしいです。。
よろしくお願いします
#include <iostream>
using namespace std;
double trans(char a,double b)
{
double c;
cin>>a;
cin>>b;
if(a='y')
{
c=b*0.914;
return c;
}
else if(a='m')
{
c=b/0.914;
return c;
}
}
160:デフォルトの名無しさん
07/07/17 20:02:55
続き
int main()
{
char a;
double b;
cout<<"meter or yard -->";
cin>>a;
while(a!='E')
{
cout<<"input data -->";
cin>>b;
{
if(a='y')
{
cout<<b<<" yard --> "<<trans(a,b)<<" meter";
}
else if(a='m')
{
cout<<b<<" meter --> "<<trans(a,b)<<" yard";
}
cout<<"meter or yard -->";
cin>>a;
}
}
return 0;
161:デフォルトの名無しさん
07/07/17 20:04:35
a=='y' にしろ
162:デフォルトの名無しさん
07/07/17 20:05:45
>>158
結果の出力は要らないのか?
163:デフォルトの名無しさん
07/07/17 20:05:48
>>158
#include<stdio.h>
#include<stdlib.h>
#define uniformrand()((double)rand() / ((double)RAND_MAX + 1.0))
int main(void)
{
int i, j,spot, f[7];
srand(0);
for (j = 1;j <= 6;j++){
f[j] = 0;
}
for( i = 1;i <= 10000; i++){
spot = (int)(6 * uniformrand()) + 1;
f[spot]++;
}
for(i=1; i<=6; i++) {
printf("%d %d \n",i,f[i]);
}
return 0;
}
164:デフォルトの名無しさん
07/07/17 20:06:15
>158
(1)7
(2)f[spot]++;
165:c言語初心者
07/07/17 20:07:34
たぶん(1),(2)にあてはまるものをいれてこいってことだと思います。
よろしくおねがいします。。
166:デフォルトの名無しさん
07/07/17 20:10:40
>161
改善されませんでした・・・
167:デフォルトの名無しさん
07/07/17 20:14:50
>>159
>>161 に加えて
trans(a,b)で余計に a, b を入力させようとしてるから.
引数で渡してんだから,そこで入力させてどうする.
168:c言語初心者
07/07/17 20:27:54
ありがとうございました
講義名:プログラミング1
プリントを渡されてやってこいとのことでした。よろしくおねがいします
1,2,・・・13の中から5個の数をランダムに選び出すプログラムを作成せよ
#include<stdio.h>
#include<stdlib.h>
#define uniformrand()((double)rand() / ((double)RAND_MAX + 1.0))
int a[13];
void RandomPermutation(int n)
{
例題2と同じ
}
int main(void)
{
int i;
RandomPermutation(13);
for (i = 0;i < (1)? ; i++){
printf("%4d \n", (2)? );
}
return 0;
}
です。(1)(2)の部分をお願いします。『例題2と同じ』という場所は
問題の横に横に例題2というのが乗っていました。だけど、自分はどこからどこまでが例題2
と同じ部分なのかがわからないです。例題2の部分がいるならそれも打ちます。よろしくお願いします。
169:デフォルトの名無しさん
07/07/17 20:37:44
(1)13
(2)a[i]
170:デフォルトの名無しさん
07/07/17 20:41:31
[1] 授業単元:C言語演習
[2] 問題文:
テキストファイルを読み込みたとえばテキストファイルに
3+4=
5*6=
...etc(これは他のその他の数式、etcと直接出力しない)
と書かれていたら画面に
3+4=7
5*6=30
...etc
と出力せよ。
[3] 環境
[3.1] OS: (Linux)
[3.2] コンパイラ名とバージョン: (gcc )
[3.3] 言語: (C言語)
[4] 期限: 7月19日
171:c言語初心者
07/07/17 20:46:29
講義名:プログラミング1 プリントを渡されてやってこいとのことでした。よろしくおねがいします
よく切られたトランプから、5枚のカードを選び出すプログラムを作成せよ、
ただし、トランプにはジョーカーは含まれないものとする。
#include<stdio.h>
#include<stdlib.h>
#define uniformrand()((double)rand() / ((double)RAND_MAX + 1.0))
int a[ (1)? ];
void RandomPermutation(int n)
{
例題2と同じ
}
int main(void)
{
int i;
RandomPermutation( (1)? );
for(i = 0; i < 5; i++){
if( (2)? ){
printf("ハート% 4d \n", n (3)? );
}else if ( (4)? ){
printf("ダイア% 4d \n", n (5)? );
}else if ( (6)? ){
printf("クラブ% 4d \n", n (7)? );
}else{
printf("ハート% 4d \n", n (8)? );
}
return 0;
}
問2もありがとうございました。(1)から(8)までをよろしくお願いします
172:デフォルトの名無しさん
07/07/17 20:47:34
>>170
演算の種類は?
173:デフォルトの名無しさん
07/07/17 21:06:43
>>172
足し算、引き算、割り算、掛け算です。説明不足ですいません。
174:スモーク
07/07/17 21:23:34
こんばんわ。すみません、今度は説明を書いたのでよろしくお願いします。
「1」課題:C言語でコードを記述して実行する。
「2」内容:多分岐型のコードを使って整数型の変数a・b と、文字型の変数e を用意し、
キーボードから2つの数値と1つの演算子を入力して、その計算結果cを出力するプログラムを作る。
というもの。さらに、実行される計算は和・差・積・商・剰余の5種類とし、
演算子はそれぞれ’+’、’-’、’*’、’/’、’%’で、
表現されるものとする。 演算子にそれ以外の記号が入力された場合は、
エラーメッセージを表示する。
また0による除算の回避も含めるものです。
「3」OS:WINDOWS XP SP2。
「4」バージョン:Visual Studio 2005。
「5」期限:今週の金曜まで。
「6」 コンパイラのバージョン: gcc。
これでおねがいします。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5372日前に更新/328 KB
担当:undef