07/07/18 20:12:21
[1] 授業単元: C言語プログラミング
[2] 問題文(含コード&リンク):○×ゲーム(3目並べ) をプロンプト上で動かす。com/man対戦、先攻後攻は選択可能
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:
[3.3] 言語:C
[4] 期限: 今週金曜
[5] その他の制限: 特になし
275:デフォルトの名無しさん
07/07/18 20:13:01
>>273
なんか前々スレくらいで全く同じ問題に回答した気がする。
276:スモーク
07/07/18 20:17:27
[1] 授業単元: C言語
[2] 問題文(含コード&リンク): 問題009
多分岐型
整数型の変数a・b と、文字型の変数e を用意し、
キーボードから2つの数値と1つの演算子を入力し
、その計算結果cを出力するプログラムを作成しなさい。
実行される計算は和・差・積・商・剰余の5種類とし、
演算子はそれぞれ’+’、’-’、’*’、’/’、’%’で
表現されるものとする。
演算子にそれ以外の記号が入力された場合は
エラーメッセージを表示する。
また0による除算の回避も含めること。
[3] 環境
3.1] OS: (Windows XP)
[3.2] コンパイラ名とバージョン: (VS 2005)
[3.3] 言語:C
[4] 期限: ([2007年07月20日hh:金曜まで]
[5] その他の制限:
課題の数は残り20くらいありますが、半分は片付けました。
しかし、追加されてくるものを回答する時間がもうありません。
どうかよろしくおねがいします。
あなたの能力が便りです。
277:デフォルトの名無しさん
07/07/18 20:20:53
釣りか?
278:デフォルトの名無しさん
07/07/18 20:21:21
除算の結果の小数点以下は?
279:デフォルトの名無しさん
07/07/18 20:25:19
>>271
URLリンク(kansai2channeler.hp.infoseek.co.jp)
280:デフォルトの名無しさん
07/07/18 20:27:06
[1] 授業単元:情報
[2] 問題文:2次方程式a*x*x + b*x + c = 0の解を求めるプログラムを作成せよ。
係数a,b,cはdouble型で、キーボードから入力するものとする。
虚数解の出力も行うこと。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C
[4] 期限: あしたまで
[5] その他の制限:ありません
よろしくおねがいします
281:22
07/07/18 20:37:28
名前:デフォルトの名無しさん[sage] 投稿日:2007/07/15(日) 09:55:51
[1] 授業単元: C言語 基礎&応用
[2] 問題文(含コード&リンク): 問題文:URLリンク(kansai2channeler.hp.infoseek.co.jp)
ソース:URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS:windowsXP
[3.2] コンパイラ名とバージョン:Visual studio.2005
[3.3] 言語:C言語
[4] 期限:2007/07/19の12:00まで。
[5] その他の制限:特になし
どうにか講師が作らせたかった内容になったらしく問題1と2はOKでました。
最後の問題3です。よろしくお願いいたします。
282:スモーク
07/07/18 20:41:23
[1] 授業単元: C言語
[2] 問題文(含コード&リンク): 問題009
多分岐型
整数型の変数a・b と、文字型の変数e を用意し、
キーボードから2つの数値と1つの演算子を入力し
、その計算結果cを出力するプログラムを作成しなさい。
実行される計算は和・差・積・商・剰余の5種類とし、
演算子はそれぞれ’+’、’-’、’*’、’/’、’%’で
表現されるものとする。
演算子にそれ以外の記号が入力された場合は
エラーメッセージを表示する。
また0による除算の回避も含めること。
[3] 環境
3.1] OS: (Windows XP)
[3.2] コンパイラ名とバージョン: (VS 2005)
[3.3] 言語:C
[4] 期限: ([2007年07月20日hh:金曜まで]
[5] その他の制限:
課題の数は残り20くらいありますが、半分は片付けました。
しかし、追加されてくるものを回答する時間がもうありません。
どうかよろしくおねがいします。
あなたの能力が便りです。
小数点以下は切り捨てでいいですよ。
とにかく0による除算の回避とあるだけなのでそのとおりで済むはずです。
多少のミスはかまいません。それ以外がうまく機能すればよいです。
また、ほかの問題も載せますのでよろしくお願いします。
283:デフォルトの名無しさん
07/07/18 20:42:52
ここまでくると、嫌がらせとしか思えないな
284:デフォルトの名無しさん
07/07/18 20:43:30
なんか追記の書き方がムカツクのは俺の心が狭いからかな
285:デフォルトの名無しさん
07/07/18 21:07:30
>>280
汚くて&間違ってたらスマソ
URLリンク(kansai2channeler.hp.infoseek.co.jp)
286:285
07/07/18 21:11:36
あー、a=0の時の処理書いてないわ
適当に追加してね
287:デフォルトの名無しさん
07/07/18 21:26:20
>>284
俺も。>>285はキリストかあるいはMだと思う。
288:デフォルトの名無しさん
07/07/18 21:39:00
>>282
#include <stdio.h>
#include <stdlib.h>
int main(void){int a,b,c;char e;if(scanf("%d %d %c",&a,&b,&e)!= 3){
fprintf(stderr, "input error\n");return EXIT_FAILURE;}switch (e) {
case '+': c = a + b; break;case '-': c = a - b; break;
case '*': c = a * b; break;case '/':
case '%':if (b == 0) {fprintf(stderr, "zero divide\n");
return EXIT_FAILURE;}if (e == '/') {c = a / b;} else {c = a % b;}
break;default:fprintf(stderr, "illegal operator\n");return EXIT_FAILURE;}
printf("result = %d", c);
return EXIT_SUCCESS;}
289:alsk
07/07/18 21:56:33
健康についての英語のエッセイを500~600字程度でお願いしたいのですが…
可能でしょうか?
タバコとか、肥満についてならなんでもいいんで!
290:デフォルトの名無しさん
07/07/18 21:57:11
>>289
スレ違いすぎ。
291:デフォルトの名無しさん
07/07/18 22:00:17
(´-`).。oO(英語で500~600"字"ってかなり少なくないか?)
292:デフォルトの名無しさん
07/07/18 22:03:32
(´-`).。oO("語"の間違いだろ・・・常考)
293:デフォルトの名無しさん
07/07/18 22:04:01
釣りか単なるマルチだろ…
294:デフォルトの名無しさん
07/07/18 22:40:52
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
次のようにプログラムを作成せよ。前回のプログラムのmainとnumber大域変数は変更しない。
intのスタックを2つ作る(大域変数)。1つのスタックは数値をいれる。もう1つには演算子を表す数をいれる
例
+→0 弱低
-→1 ↓
*→2 ↓
/→3 強高
#include<stdio.h>
#include<ctype.h>
char *p;char c[100];
int expression(void);
int term(void);
int number(void);
main(){
int ans;
while(1){
printf("Enter expression : ");
fgets(c,90,stdin);
p=&c;
if(*p == '\n')
{break;}
ans=expression();
printf("Answer:%d\n" , ans);
}
}
295:デフォルトの名無しさん
07/07/18 22:42:19
int expression(){
int ans;
ans = term();
while(1){
if(*p == '+'){
*p++;
ans = ans + term();
}
else if(*p == '-'){
*p++;
ans = ans - term();
}
else
break;
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2007年07月19日
[5] その他の制限:特になし
296:デフォルトの名無しさん
07/07/18 23:13:01
>>223
お願いします
297:デフォルトの名無しさん
07/07/18 23:16:30
>>279
回答ありがとうございます。
とてもみやすかったです^^
298:デフォルトの名無しさん
07/07/18 23:24:06
>>297
readfile関数内の int j はいらないから消しといて><
299:デフォルトの名無しさん
07/07/19 00:12:58
>>273
#include <stdio.h>
#include <math.h>
#define N 128
int main(void)
{
int i=0, j, n=0, x[N];
float avg=0.0, tmp;
while(1){
printf("数字(%d)を入力してください。: ", i+1);
scanf("%d", &x[i]);
if(x[i] == 0) break;
avg += x[i];
i++;
if(i == N) break;
}
avg = avg / i;
printf("\n入力された数字の平均は%fです。\n", avg);
tmp = fabs(avg - x[0]);
for(j=1 ; j<i ; j++){
if(tmp > fabs(avg - x[j])){
tmp = fabs(avg - x[j]);
n = j;
}
}
printf("これは、%d番目に入力された%dに最も近いです。\n", n+1, x[n]);
return(0);
}
300:デフォルトの名無しさん
07/07/19 00:33:57
[1] 授業単元:計算機
[2] 問題文(含コード&リンク):
スタックを利用し、入力された文字を逆順に出力するプログラム。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
ここまで作ったのですが、ポップアップがうまく出来ません
[3] 環境
[3.1] OS: (Windows/Linux/等々) windows
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) bcc32
[3.3] 言語: (C/C++/どちらでも可 のいずれか) C
[4] 期限:7/26
どなたかご教授お願いしますorz
301:273
07/07/19 00:47:41
>>299
ありがとうございますmm
明日やってみます。
本当にありがとうございます。
302:デフォルトの名無しさん
07/07/19 00:51:41
>>296
URLリンク(kansai2channeler.hp.infoseek.co.jp)
303:デフォルトの名無しさん
07/07/19 00:58:09
>>300
よく分からないのだが、
対話的に1文字ずつ文字入力を行い、1文字ずつ取り出したいのか?
それとも、
文字列を入力し、結果の反転文字列を一気に出力したいのか?
304:デフォルトの名無しさん
07/07/19 00:58:15
>300
char x;
scanf("%s", &x);
ってなんだ?
305:デフォルトの名無しさん
07/07/19 01:02:05
>>303
入力は1文字ずつで、出力は1文字ずつ出したり全部出したり出きる様にしたいんです。
306:デフォルトの名無しさん
07/07/19 01:11:28
[1] 授業単元:Cぷろぐらみんぐ
[2] 問題文:複素数a+bi(iは複素数)のn乗を求めて出力するプログラムを作れ。
a,bはdouble型とし、nはint型で、キーボードから入力するものとする。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C
[4] 期限: はやめでおねがいします
[5] その他の制限:特にないです
307:デフォルトの名無しさん
07/07/19 01:16:07
「はやめ」っていつまでだよ
明日の朝とかもうちょっと具体的に書け
308:デフォルトの名無しさん
07/07/19 01:19:00
[1] 授業単元:プログラミング論
[2] 問題文(含コード&リンク):URLリンク(sakuratan.ddo.jp)
return ????部分が分かりません。
[3] 環境
[3.1] OS: (Windows/Linux/等々)WinXP
[3.2] コンパイラ名とバージョン:VC6
[3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限: 今日
[5] その他の制限:なし
よろしくおねがいしますorz
309:デフォルトの名無しさん
07/07/19 01:24:12
なんでいちいち外部に上げるかね
310:デフォルトの名無しさん
07/07/19 01:24:47
>>308
問題文じゃねええええええええええええええええええええええええええええええええええええええええええ
311:デフォルトの名無しさん
07/07/19 01:27:19
>>308
double 型の値を返すんだから、
FXかFX1じゃねえの?
問題文がないしわけがわからんよ
312:308
07/07/19 01:28:11
>>310
問題文がついてないんです・・・
一次正弦関数の補完値を求めたいみたいなんですけど
グーグル先生に聞いてもよく分かりませんでした。
313:デフォルトの名無しさん
07/07/19 01:29:36
は?
問題文がないなら宿題じゃねえじゃん
314:デフォルトの名無しさん
07/07/19 01:30:00
>>306
int main(){
double a,b,t; int n;
scanf("%lf,%lf,%d",&a,&b,&n);
while(--n>0)
t=b,b=2*a*b,a=a*a-t*t;
printf("%g+%gi\n",a,b);
}
315:デフォルトの名無しさん
07/07/19 01:31:47
[1] 授業単元: c言語
[2] 問題文(含コード&リンク):
整数nを入力し、1~nまでの整数を使い、n桁の組み合わせを出力する。
同じ整数は2回以上使ってはいけない。
例えば3を入力した場合
012 021 102 120 201 210
を出力したい。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc 3.4
[3.3] 言語: C
[4] 期限: 7/23
[5] その他の制限: 特に無し
もうさっぱりです。お願いします。
316:308
07/07/19 01:32:04
>>313
「ここ埋めてきて」と…
317:デフォルトの名無しさん
07/07/19 01:33:24
>>316
俺たちはその「ここ埋めてきて」とか一時正弦関数の補完とか言われてな・・・
もしかして文章で伝えられずに口頭だったから何も書かなかったのか・・・
もうだめぽ
318:デフォルトの名無しさん
07/07/19 01:46:04
>>315
> 整数nを入力し、1~nまでの整数を使い、n桁の組み合わせを出力する。
...
>例えば3を入力した場合
>012 021 102 120 201 210
この例だったら、1 ~ n じゃなくて 0 ~ n-1 じゃないのか?
319:300
07/07/19 01:46:55
とりあえず1文字ずつ入力して1文字ずつ出力しようとしてみたけど
どうしても最後の文字(1番最初に入力した物)が出力されません。。
配列には入ってるみたいなんだが・・・
320:デフォルトの名無しさん
07/07/19 01:47:47
>>315
n桁ってのは上限はないのか?
321:デフォルトの名無しさん
07/07/19 01:48:52
1違いは良く見直せというのはプログラミングをやる人間にとっての常套句
322: ◆Kt53Ir50Qk
07/07/19 01:50:39
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):
線形リストを用いて過去に素数とわかった数を保存し、指定された数(N)以下の素数を求めるプログラムを作成する。
Nはプログラム実行中に外部から入力できるようにする。
・素数かどうかを判定する際には線形リストに保存されている素数のみ利用する。
・引数として与えた数が、引数として与えられた素数を保存する線形リスト中の素数で割り切れるかどうかを判定する関数を作る。
・順番に小さい数から線形リストに保存してある素数で割り切れるかどうかを判断し、割り切れない場合(素数)は線形リストに加えていく。 [3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: VC 6.0
[3.3] 言語: C/C++の違いがわからない
[4] 期限: はやめ
[5] その他の制限: 特になし
わ か り ま せ ん
323:デフォルトの名無しさん
07/07/19 01:53:41
>>318
うっかりしてました。
123 132 213 231 312 321
の間違いです。
>>320
基本的に上限はありませんが、あんまり数が大きいと
馬鹿になりませんので…。
大体5か6くらいまでを想定してます。
324:デフォルトの名無しさん
07/07/19 01:58:48
>>300
変な所は色々あるんだが、とりあえず、
case 3:
while(sp>0){
sp--;
printf("%c", Stack[sp]);
}
printf("\n");
break;
325:デフォルトの名無しさん
07/07/19 02:01:00
>>322
最初は線形リストになにも保存されていないと思われるが、どうする?
326: ◆Kt53Ir50Qk
07/07/19 02:05:05
たぶん、いくつかの素数を入れた素数テーブルを作っておくんだと思いますが、、、
よくわからないです。
↓授業で使った線形プログラム
URLリンク(sakuratan.ddo.jp)
327:デフォルトの名無しさん
07/07/19 02:07:59
何?
さくらアップローダーが流行ってるの?
328:300
07/07/19 02:10:22
きったないプログラムだけどなんとか動くようになりました。。。
あとは修正頑張ってみます。
ありがとうございました。
329:デフォルトの名無しさん
07/07/19 02:12:17
>>323
#include <stdio.h>
#define N 6
int nextperm(int p[], int n){
int i, j, t;
i = n - 1;
p[0] = 0;
while (p[i] >= p[i + 1]) i--;
if (i == 0) return 0;
j = n;
while (p[i] >= p[j]) j--;
t = p[i]; p[i] = p[j]; p[j] = t;
i++; j = n;
while (i < j){ t = p[i]; p[i] = p[j]; p[j] = t; i++; j--; }
return 1;
}
int main(){
int i, n, p[N + 1];
do{ scanf("%d", &n); }while(n < 1 || N < n);
for (i = 1; i <= n; i++) p[i] = i;
do{ for (i = 1; i <= n; i++) printf("%d", p[i]); putchar(' '); }while(nextperm(p,n));
return 0;
}
ぐぐって出てきたのほぼそのまんまだから動作原理はシラネ
330:デフォルトの名無しさん
07/07/19 02:23:00
>>300
がんばれ
331:デフォルトの名無しさん
07/07/19 03:01:10
自分で書いたソースを晒して質問するのって、それなりに大変だよな。
宿題丸投げして、回答があっても放置される事が多いけど。
332: ◆Kt53Ir50Qk
07/07/19 03:13:35
>326 まちがってました。授業でやったのは
URLリンク(sakuratan.ddo.jp)
でした。さっきのは自分でぐちゃぐちゃにしたやつでした。
333:306
07/07/19 07:44:56
今日、19日のうちにおねがいします
334:デフォルトの名無しさん
07/07/19 08:53:07
>>329
まさにそのまんまがあったんですね…。
ありがとうがざいます。
335:デフォルトの名無しさん
07/07/19 08:57:12
>>333
もうで照るだろ
336:デフォルトの名無しさん
07/07/19 09:57:38
[1] 授業単元:プログラミング基礎
[2] 問題文(含コード&リンク):
a,b,c,d,eに1~5の整数を一つずつ入れて
a + b - c * d / e
の結果の最大になる値、最小となる値、そのときのa,b,c,d,eを求めよ。
(算数的に計算するのではなく全パターンをためすこと。)
また、結果は何通りあるかも求めよ。
[3] 環境
[3.1] OS: (/Linux/)
[3.2] コンパイラ名とバージョン: (gcc 2.95-2)
[3.3] 言語: C
[4] 期限: 2007年07月20日17:40
[5] その他の制限: 無し
337:デフォルトの名無しさん
07/07/19 11:08:25
[1] プログラミング
[2] 問題 配列 int a[12]を用意し、a[i] = I ( i=0,1,2,…,10),a[11] = a[0]+a[1]+a[2]+…[10]とせよ
[3.1] OS:windows
[3.2] コンパイラ名とバージョン:VS2005
[3.3] 言語: C ++
[4]本日まで
問題の意味がよく分からないかもしれませんがよろしくお願いします。
338:デフォルトの名無しさん
07/07/19 11:56:02
>>336
URLリンク(kansai2channeler.hp.infoseek.co.jp)
339:デフォルトの名無しさん
07/07/19 12:12:46
>>338
ありがとうございます。
ところで、count が120になったのですが、
a + b - c * d / e
のaとbまたはcとdを入れ替えると同じになると思うので
値は5*4*3*2*1通り未満になりませんか?
よくわからないので、もうすこしがんばってみます。
340:デフォルトの名無しさん
07/07/19 12:17:01
>>339
同値になる入れ換えは考慮してない。
必要かな?
341:デフォルトの名無しさん
07/07/19 12:23:35
>>340
どちらかといえばあったほうがいいです。
342:デフォルトの名無しさん
07/07/19 12:25:21
授業単元:プログラミング
問題文(含コード&リンク):
環境
OS:Windows xp
コンパイラ名とバージョン:ボーランド
言語:C
期限:
その他の制限:
テーマ:ポインタの利用
英文字の単語の出題をカウントしなさい
英文字に含まれる単語数は10以下とする
ポインタ配列を使用する
char english[] = "My name is Taro.Your name is Hanako.";
実行画面
My:1
name:2
is:2
Taro:1
Your:1
Hanako:1
343:デフォルトの名無しさん
07/07/19 12:28:13
授業単元:プログラミング
問題文(含コード&リンク):
環境
OS:Windows xp
コンパイラ名とバージョン:ボーランド
言語:C
期限:
その他の制限:
テーマ:ユーザ関数の作成
問題1:2値の最大を求めるユーザ関数を作成しなさい
プロトタイプ宣言:int Max(int dt1,int dt2);
実行画面
数値1を入力==>10
数値2を入力==>15
大きい値:15
344:デフォルトの名無しさん
07/07/19 12:50:24
>>343
#include <stdio.h>
int Max(int dt1,int dt2);
int main(void) {
int a,b,c;
printf("数値1を入力==>");
scanf("%d",&a);
printf("数値2を入力==>");
scanf("%d",&b);
printf("大きい値:%d",Max(a,b));
return 0;
}
int Max(int dt1,int dt2) {
return dt1>dt2 ? dt1 : dt2;
}
345:デフォルトの名無しさん
07/07/19 13:04:30
>>341
URLリンク(kansai2channeler.hp.infoseek.co.jp)
これでどうかな
346:デフォルトの名無しさん
07/07/19 13:25:20
>>345
たとえば
1 +2 -3 *4/ 5
1と2の入れ換えで結果が重複して120の半分の60通りになり
3と4の入れ換えで結果が重複して60の半分の30通りになりそうなので
あっていると思います。
ありがとうございました。
ちなみにこれは算数オリンピックの第一問です。
347:デフォルトの名無しさん
07/07/19 13:31:01
>>346
aとb、cとdの値に順序性を持たせた。
宿題ではないのか?
348:デフォルトの名無しさん
07/07/19 13:42:23
>>347
それをC言語でとかせる宿題です。
349:デフォルトの名無しさん
07/07/19 13:42:49
>>337です。
聞いてみたところどうもfor文を使うらしいのですがどこに使えばいいのか分かりません
よろしくお願いします。
350:デフォルトの名無しさん
07/07/19 13:47:18
>>337>>349
int a[12];
int i;
for(i = 0; i < 11; i++) a[i] = i;
a[11] = 0;
for(i = 0; i < 11; i++) a[11] += a[i];
351:デフォルトの名無しさん
07/07/19 13:48:00
>>337です。
たびたびすみません。
先ほどの問題でデバックの結果がa[11] = a[0]+a[1]+a[2]+…+a[10]と表示できればいいそうです。
よろしくお願いします
352:デフォルトの名無しさん
07/07/19 13:51:54
printf("a[11] = %d\n", a[11]);
353:デフォルトの名無しさん
07/07/19 13:54:06
何方か342お願いします
354:デフォルトの名無しさん
07/07/19 13:55:43
[1]単元:プログラミング
[2]問題:URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3]環境
OS:リナックス
コンパイラ:cc
言語:C
[4]期限:来週の水曜日までに
よろしくお願いします.
355:デフォルトの名無しさん
07/07/19 14:06:47
[1]単元:プログラミング
[2]問題:複数人の、名前と不定個の得点を入力し、平均点が50点を超える場合のみ、
名前と平均点を出力するプログラムをつくれ。得点の最大個数は10個である。
平均点は、小数点以下2桁までとせよ。入力は3人のデータとし、得点の入力終了は負数(-1)とする
一応ココまでやりました
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3]環境
OS:windows
コンパイラ:bcc32
言語:C
[4]期限:7/20
356:デフォルトの名無しさん
07/07/19 14:06:55
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク)
演算子のオーバーロードにより、複素数a,bの絶対値の大小を与える
演算子 < を作成せよ。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン: CC
[3.3] 言語:C++
[4] 期限: 7月20日
どなたかよろしくお願いします。
357:デフォルトの名無しさん
07/07/19 14:21:04
>>356
#include <complex>
template <typename T>
bool operator<(const std::complex<T>& left, const std::complex<T>& right) {
return std::abs(left) < std::abs(right);
}
358:デフォルトの名無しさん
07/07/19 14:32:44
誰か >>306 お願いします。
359:デフォルトの名無しさん
07/07/19 14:53:49
>>385
複素数をn乗するってことでおk?
360:デフォルトの名無しさん
07/07/19 14:58:11
予言者か!
361:デフォルトの名無しさん
07/07/19 15:24:32
>>360
書いた自分でワロタ
362:デフォルトの名無しさん
07/07/19 15:39:45
>>359 おkです。
363:デフォルトの名無しさん
07/07/19 15:43:07
授業単元:プログラミング
問題文(含コード&リンク):
環境
OS:Windows xp
コンパイラ名とバージョン:ボーランド
言語:C
期限:
その他の制限:
テーマ:標準関数の利用
問題1:文字列を入力、英文字とそれ以外を収納する配列に振り分けしなさい
使用する標準関数:isalpha()など
実行画面
文字列入力==>A12H&jfTy8uZ3#
英字:AHjfTyuZ
その他:12&83#
問題2:文字列と削除文字列を入力し、文字列中から削除文字列を排除しなさい
使用する標準関数:strncmp(),strcpy(),strlen()など
実行画面
文字列入力(m1)==>ABCDEFAADABC
364:デフォルトの名無しさん
07/07/19 15:55:56
syntax errorってなんですか?
cygwin上でemacsを使ってCのソースの入力してコンパイルしたのですが、
syntax errorとでまして、コンパイルできません^^;
↓
syntax error before '{' token
とでます^^;
基本中の基本かもしれませんが^^;
誰かわかりますか?
365:364
07/07/19 15:59:12
失礼・・・カテ違いでした^^;
366:デフォルトの名無しさん
07/07/19 16:01:42
>>306
#include <stdio.h>
int main(void){
double a, b, prev_a, prev_b, const_a, const_b;
int i, n;
printf("a b n : "); scanf("%lf%lf%d", &a, &b, &n);
const_a = a, const_b = b;
for(i = 1, prev_a = a, prev_b = b; i < n; i++, prev_a = a, prev_b = b){
a = prev_a*const_a - prev_b*const_b;
b = prev_a*const_b + const_a*prev_b;
}
printf("%g + %gi\n", a, b);
return 0;
}
367:デフォルトの名無しさん
07/07/19 16:27:16
>>363
>>205と同じやね。>>262>>264
368:デフォルトの名無しさん
07/07/19 17:12:56
>>342
URLリンク(kansai2channeler.hp.infoseek.co.jp)
バグっているかも試練
369:368
07/07/19 17:23:40
後、ボーランドで確認してない。よろ
370:デフォルトの名無しさん
07/07/19 17:58:40
[1] 授業単元:プロA
[2] 問題文
構造体
struct coord{
float x;
float y;
}
を用い、また、coord.data(内容は以下のようなもの)を作成して、
1.2 3.4
2.1 4.5
3.2 2.1
2.0 4.9
5.3 2.8
1.5 3.2
これらの値をメンバx,yに読み込み、(例えばa.x,a.y,b.x,b.y
又はa[0].x,a[0].yなど好きな変数名を作成すればよい。
構造体はa[0],a[1]のように配列でもよい。
この場合、メンバとはa[0].xなどとして結びつく)
xとyの平均をoutput2.dataに出力するプログラムを作れ。
[3] 環境
Windows ,CC ,C++
[4] 期限: 7/19 21:00
よろしくお願いします。
371:デフォルトの名無しさん
07/07/19 18:36:25
>>355
URLリンク(kansai2channeler.hp.infoseek.co.jp)
372:デフォルトの名無しさん
07/07/19 18:46:15
どなたか>>354お願いします
373:デフォルトの名無しさん
07/07/19 19:08:19
[2] 問題文(含コード&リンク):
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: BCC 5.5.1
[3.3] 言語: C
[4] 期限: できればお早めに
お手数ですが宜しくお願いいたします
374:デフォルトの名無しさん
07/07/19 19:25:43
>>354 (>>372)
URLリンク(kansai2channeler.hp.infoseek.co.jp)
375:デフォルトの名無しさん
07/07/19 19:30:20
>>354
URLリンク(kansai2channeler.hp.infoseek.co.jp)
376:デフォルトの名無しさん
07/07/19 19:32:59
>>373
下の二つの関数を追加して
int gcd(int a, int b){ // 最大公約数を求める関数
int c;
while((c=a%b)!=0){a=b;b=c;}
return b;
}
int gcd3(int a, int b, int c){
return gcd(gcd(a, b), c);
}
if(gcd3(a, b, c)!=1) // これが成り立つ時はなにかの倍数
377:デフォルトの名無しさん
07/07/19 20:28:26
>>373
問1は、ループをxyz共に1000回ずつ回すのは無駄だから
for(x=1; x<=MAX-2; x++) {
for (y=x+1; y<=MAX-1; y++) {
for (z=y+1; z<=MAX; z++) {
みたいにすれば速くなるよ
問2はできてるんじゃないの?
378:デフォルトの名無しさん
07/07/19 20:48:32
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):実行結果と同じ内容を表示するプログラムの作成
実行結果
+
++
+++
++++
+++++
[3] 環境
[3.1] OS:Windows Vista Business
[3.2] コンパイラ名とバージョン:Microsoft Visual Studio 2005
[3.3] 言語:C言語
[4] 期限:2007年9月3日
[5] その他の制限:①文字の出力にはprintfを使用し、プログラム中に2回のみ使用できるものとする
②アルゴリズムはwhile文の2重ループで行うこと
379:デフォルトの名無しさん
07/07/19 20:49:04
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):月(1~12)と日(1~31)をキーボードから入力し、入力された日付を表示する
プログラムの作成
実行結果 (「」内の部分はキーボードからの入力)
月を入力:「15」
月の入力は1以上12以下にしてください
月を入力:「8」
日を入力:「46」
日の入力は1以上31以下にしてください
日を入力:「25」
入力された日付は8月25日です
[3] 環境
[3.1] OS:Windows Vista Business
[3.2] コンパイラ名とバージョン:Microsoft Visual Studio 2005
[3.3] 言語:C言語
[4] 期限:2007年9月3日
[5] その他の制限:①月の入力については1~12で範囲チェックを行い、範囲外の入力だった
場合は、エラーメッセージを表示して再入力させること
②日の入力については1~31で範囲チェックを行い、範囲外の入力だった
場合は、エラーメッセージを表示して再入力させること
380:デフォルトの名無しさん
07/07/19 20:54:54
>>378
#include <stdio.h>
int main(void)
{
int i=0, j;
while(i < 5){
j = 0;
while(j <= i){
printf("+");
j++;
}
printf("\n");
i++;
}
return(0);
}
381:デフォルトの名無しさん
07/07/19 20:57:13
>>379
終了の条件は?
382:デフォルトの名無しさん
07/07/19 21:04:44
>>377
問2はいきなり7309から始まるんですよ…
383:デフォルトの名無しさん
07/07/19 21:06:37
>>382
いや、それはそれ以前に処理されたものが画面に表示しきれていないだけでは・・・
実際には処理されているよ。
384:デフォルトの名無しさん
07/07/19 21:07:54
>>382
っ a.exe > result.txt
プロンプトのバッファを超えただけと思う
385:デフォルトの名無しさん
07/07/19 21:21:19
294です。おねがいします
386:デフォルトの名無しさん
07/07/19 21:23:49
>>381
何の終了条件ですか?
387:デフォルトの名無しさん
07/07/19 21:32:44
ああ、1周でいいのか
388:デフォルトの名無しさん
07/07/19 21:38:22
>>379
#include <stdio.h>
int main(void){
int m, d, tmp;
while(1){
printf("月を入力:");
scanf("%d", &m);
if(m<1 || m>12) fprintf(stderr, "月の入力は1以上12以下にしてください\n");
else break;
}
switch(m){
case 2:
tmp = 2;
break;
case 4:
case 6:
case 9:
case 11:
tmp = 1;
default:
tmp = 0;
}
while(1){
printf("日を入力:");
scanf("%d", &d);
if(d < 1 || d > 31-tmp) fprintf(stderr, "日の入力は1以上%d以下にしてください\n", 31-tmp);
else break;
}
printf("入力された日付は%d月%d日です\n\n", m, d);
return(0);
}
389:デフォルトの名無しさん
07/07/19 21:44:17
うわあ、switch文でbreak;書き忘れた><
390:デフォルトの名無しさん
07/07/19 22:00:18
>>375
サンクスです☆
391:デフォルトの名無しさん
07/07/19 22:09:26
>>379
#include <stdio.h>
int main(void) {
int month = 0, day = 0;
while (month<1 || 12<month) {
printf("月を入力:");
scanf("%d", &month);
if (month<1 || 12<month) printf("月の入力は1以上12以下にしてください\n");
}
while (day<1 || 31<day) {
printf("日を入力:");
scanf("%d", &day);
if (day<1 || 31<day) printf("日の入力は1以上31以下にしてください\n");
}
printf("入力された日付は%d月%d日です", month, day);
return 0;
}
392:デフォルトの名無しさん
07/07/19 22:22:33
>>294>>295
お願いします
393:デフォルトの名無しさん
07/07/19 23:01:43
>>376 >>377 >>383
ありがとうございました~!
394:体験版ありw
07/07/19 23:15:53
株式会社リアルクソエイト
URLリンク(www.realcreate.net)
WILLTY(ウィルティ)はネットワーク上や
外部媒体からウィルスやハッカーが侵入する際の
異常な電子の動きをキャッチし、コンピュータの入り口で
確実にブロックしてしまうという世界初の画期的な方法が
とられています。
たとえ、ウィルス感染したCD,FD,USBなどをインストールしても、
コンピューターがウィルス感染することはありません。
正常なデーターのみがコンピューター内に取り込まれます。
■ 電源コンセントからの情報漏洩をブロック
WILLTYは電源LANシステムを応用したデーター漏洩やハッキングをブロックします。
コンピュータ電源をコンセントに差し込んだ瞬間から機密情報は丸裸になっています。
LAN上のセキュリティーをどれだけ強固にしても、電源コンセントから
あなたの情報は筒抜けになっています
395:デフォルトの名無しさん
07/07/19 23:16:32
>>393
if ( dvsr >= trg ){
このtrgって、sqrtを取得して比較すれば
素数判定が早くできないかな。
dvsr++;
これも奇数を見るだけで良いのじゃないかな。
チェック対象件数が半減すると覆うよ。
396:デフォルトの名無しさん
07/07/19 23:17:16
↑のソフト使った人感想ちょうだいw
397:デフォルトの名無しさん
07/07/19 23:22:24
ウィルスに感染した電子ってスピンか何かが違うのか?
398:デフォルトの名無しさん
07/07/19 23:24:02
URLリンク(kansai2channeler.hp.infoseek.co.jp)
で>>261を参考にしながらPPMファイルを出力したいのですが、できません。
環境はWindows xp + cygwinです。
0 10 10 100 30 10 50 50 100 255 0 0
0 100 20 100 100 20 50 0 20 0 255 0
0 200 30 100 200 30 80 20 15 0 0 255
をCygwin上で入力しています。
何がいけないのでしょうか・・
399:デフォルトの名無しさん
07/07/19 23:24:10
>>397
違わないだろw
壮大な釣りソフトw
400:デフォルトの名無しさん
07/07/19 23:53:45
こんなソフト通用すると思ってんのかw
401:デフォルトの名無しさん
07/07/20 00:04:20
>>394
あぶねえ。
俺、“そういう試みをチャレンジしている会社がある”と信じるところだった。
402:デフォルトの名無しさん
07/07/20 00:14:35
そういうウィルスを作れたら、
量子コンピュータどころじゃない、
21世紀最大の発明となる鴨。
遺伝情報の媒体って超ひもあたりでやるのか?
エンコードやデコードどうするのかなw
403:デフォルトの名無しさん
07/07/20 00:45:57
>>294
とりあえずは問題の意味が分からないんだけど、それは置いておいて
>>294>>295に出ているソースをベースにして作らないといけないの?
コンパイルさえできないんだけど。
404:デフォルトの名無しさん
07/07/20 01:58:29
>>294>>295です
書いてあるプログラムのmainとnumber大域変数は変更しないで
intのスタックを2つ作る(大域変数)。
1つのスタックは数値をいれる。もう1つには演算子を表す数をいれます。
405:デフォルトの名無しさん
07/07/20 02:01:27
コンパイルは出来なくてもいいんです。確か1つ引っかかりますよね。
406:デフォルトの名無しさん
07/07/20 06:45:10
[1] 授業単元:C言語
[2] 問題文(含コード&リンク): 問題010
多分岐型(2)
次の説明は冬季オリンピックの開催年についての説明である。
キーボードから変数year に入力された年号について、
開催された年に第何回大会が開催されたか
画面に表示するプログラムを作成しなさい。
また開催年でない場合は、画面にその旨メッセージを出力すること。
【説明】
1924 年の第1 回大会以来、4 年に1 度開催されている。
1992 年の第16 回大会までは夏季大会と同じ年に開催されたが、
1994 年の第17 回大会からは、夏季大会の2 年後に開催されるようになった。
1940 年、1944 年は第二次世界大戦の影響で中止。
次回は2010 年、第21 回大会、カナダのバンクーバーで開催予定。
[3] 環境
[3.1] OS: Windows;
[3.2] コンパイラ名とバージョン: (VS)
[3.3] 言語: C
[4] 期限: ([2007年07月21日まで]
[5] その他の制限:
よろしく。
407:デフォルトの名無しさん
07/07/20 07:02:51
>>406
やだ
408:デフォルトの名無しさん
07/07/20 07:26:01
>>406
ほらよ、とっときな
#include <stdio.h>
int main(void){
int year;
while(1){
printf("年号は?");scanf("%d",&year);
switch(year){
case 1924:puts("第①回");break;
case 1928:puts("第②回");break;
case 1932:puts("第③回");break;
case 1936:puts("第④回");break;
case 1948:puts("第⑤回");break;
case 1952:puts("第⑥回");break;
case 1956:puts("第⑦回");break;
case 1960:puts("第⑧回");break;
case 1964:puts("第⑨回");break;
case 1968:puts("第⑩回");break;
case 1972:puts("第⑪回");break;
case 1976:puts("第⑫回");break;
case 1980:puts("第⑬回");break;
case 1984:puts("第⑭回");break;
case 1988:puts("第⑮回");break;
case 1992:puts("第⑯回");break;
case 1994:puts("第⑰回");break;
case 1998:puts("第⑱回");break;
case 2002:puts("第⑲回");break;
case 2006:puts("第⑳回");break;
default:puts("開催されなかった、あるいはどうなるか分かりません。");break;
}}return 0;
}
409:デフォルトの名無しさん
07/07/20 07:27:22
>>405
コンパイル出来ないのは、
「大域変数を変更する」以前の
「書いてあるプログラム」の問題。
410:デフォルトの名無しさん
07/07/20 11:06:04
>>354
URLリンク(kansai2channeler.hp.infoseek.co.jp)
411:タウリン2000mg配合
07/07/20 11:13:28
[1] 授業単元:計算機プログラミング
[2] 問題文:input7.txtから4×4の行列の要素を読み込み、その逆行列を出力するプログラムを作成せよ。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:よくわかりません。
[3.3] 言語: C言語
[4] 期限: 2007/8/3 まで
URLリンク(www.fluid.cse.nagoya-u.ac.jp)
を改造して作ればいいという課題です。
抜けてる部分だけ作ればいいんですが、それでもいまいちわかりません。
どなたか親切な方がいたら教えてもらえないでしょうか。
412:デフォルトの名無しさん
07/07/20 11:42:11
>>406
URLリンク(kansai2channeler.hp.infoseek.co.jp)
413:デフォルトの名無しさん
07/07/20 11:48:58
>>412
どんなソースかと思いきやww
414:デフォルトの名無しさん
07/07/20 13:02:20
アマリニモカワイソスギル
415:デフォルトの名無しさん
07/07/20 13:05:47
>>411
nagoya-u.ac.jpって書いてあるけど、ブラクラ?
416:デフォルトの名無しさん
07/07/20 13:15:02
>>363
#include <stdio.h> #include <string.h> #include <ctype.h>
#define SIZE 500
int main()
{ char English[SIZE] = {'\0'}; char Other[SIZE] = {'\0'};
char buff[SIZE]= {'\0'}; char *temp; int i,j=0,k=0; int len;
fgets(buff,sizeof(buff),stdin); if(temp = strchr(buff, '\n'))
*temp = '\0';
for(i = 0; buff[i] != '\0'; i++){
if(isalpha(buff[i]))
English[j++] = buff[i];
else
Other[k++] = buff[i];
}
printf("English %s Other %s \n",English,Other);
printf("英文字入力\n");
fgets(buff,sizeof(buff),stdin);
if(temp = strchr(buff, '\n'))
*temp = '\0';
printf("削除文字入力\n");
fgets(Other,sizeof(Other),stdin);
if(temp = strchr(Other, '\n'))
*temp = '\0';
len = strlen(Other);
while(temp = strstr(buff,Other)){
memcpy(temp,temp+len,sizeof(buff));
}
printf("削除後 %s \n", buff);
return 0;
}
417:デフォルトの名無しさん
07/07/20 13:17:10
>>415
サンプルソースだ。問題ないと思うが。
418:デフォルトの名無しさん
07/07/20 13:36:14
[1] 授業単元:演習
[2] 問題文:自然数nを入力すると、任意のディレクトリに任意の名前でn個のフォルダを作成するプログラムを作りなさい。
なお、危険防止のためnの上限は5とする事。
[3] 環境
[3.1] OS: (Windows)
[3.2] コンパイラ名とバージョン: (vs)
[3.3] 言語: (C言語)
[4] 期限:今日中
419:デフォルトの名無しさん
07/07/20 13:38:38
C++の認定試験てあるの?
420:デフォルトの名無しさん
07/07/20 13:52:41
[1] 授業単元: 演習
[2] 問題文(含コード&リンク):
探索パターンと置換パターン、入力ファイル名を引数にとり、
入力ファイルの探索パターンに合致する部分をすべて置換パターンに置き換えるプログラムを作成せよ
パターンにはsedで扱える正規表現のうち、下の部分が使えるように実装せよ
. 改行をのぞく任意の1文字にマッチ
[abc…] aまたはbまたはc…のうちいずれか1文字にマッチ
d* 0個以上のd(dは文字または正規表現)にマッチ
\(str\) 文字列str(strは正規表現を含んでよい)二マッチ
\n n番目に表れた\(...\)の中の文字列にマッチ (nは1から9の整数)
\c cに^,$,.,*,[,\をおくことによりそれ自身にマッチ
.* 0個以上の改行を除く任意の文字にマッチ
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 07年7月22日
[5] その他の制限: system()等使わずに正規表現を実装すること
421:お願いします!
07/07/20 13:54:03
「2個のサイコロ振りをシミュレートするCプログラムを書け。1個目のサイコロ振りにも2個目サイコロ振りにも関数randを使い、2つの出目の和を計算する。」
この問題です!よろしくぅお願いします!
422:デフォルトの名無しさん
07/07/20 13:55:20
>>421
#include <stdlib.h>
#include <stdio.h>
int main() {
int a,b;
a = rand() % 6 + 1;
b = rand() % 6 + 1;
printf("%d", a + b);
return 0;
}
423:デフォルトの名無しさん
07/07/20 14:02:04
>>422
ありがとうございますぅ!ただ、何と何が出たか分からないから個別に表示もおながいもうしあげます
424:デフォルトの名無しさん
07/07/20 14:03:22
printf("%d + %d = %d\n", a, b, a + b);
425:デフォルトの名無しさん
07/07/20 14:04:14
>>423
ほれ
#include <stdlib.h>
#include <stdio.h>
int main() {
int a,b;
a = rand() % 6 + 1
printf("a = %d\n", a);
b = rand() % 6 + 1;
printf("b = %d\n", b);
printf("%d", a + b);
return 0;
}
426:デフォルトの名無しさん
07/07/20 14:05:19
おー!すばらしい!!!あと、半か丁か表示できますか??
427:デフォルトの名無しさん
07/07/20 14:10:53
if(a % 2 == 0) printf("aは丁"); else printf("aは半");
if(b % 2 == 0) printf("bは丁"); else printf("bは半");
428:デフォルトの名無しさん
07/07/20 14:11:47
ちがうよ、2個の合計で丁か半か判断するんだってばwww
429:デフォルトの名無しさん
07/07/20 14:12:12
>>426
そろそろ自分でやったらどうだい?
430:デフォルトの名無しさん
07/07/20 14:13:10
if((a + b) % 2 == 0) printf("丁"); else printf("半");
431:デフォルトの名無しさん
07/07/20 14:15:04
あと、掛け金もおながいします
その辺はきでんのセンスで
432:デフォルトの名無しさん
07/07/20 14:20:09
>>431
なんでいっぺにいわないんだい?
自分でやりなさい。
433:デフォルトの名無しさん
07/07/20 14:22:53
>>431
指定の口座に3本ほど振り込んでくれないか
434:デフォルトの名無しさん
07/07/20 14:23:55
お金はないので他のお礼で。。。
435:デフォルトの名無しさん
07/07/20 14:25:16
釣りだろ
436:デフォルトの名無しさん
07/07/20 14:25:25
6カ月分のガス料金を求めましょう
使用料金=基本料金+(1㎥当たりの単価×使用量)
使用量 基本料金 1㎥当たりの単価
25㎥以下 690円 127円
25㎥から500㎥以下 1170円 108円
500㎥より多い 6980円 96円
月の使用量を順番にキーボードから入力する。
使用料金は基本料金+(1㎥当たりの単価×使用量)で計算する。
各月の使用料金を算出して以下のように表示させる。
例)
1gatu 2gatu 3gatu 4gatu 5gatu 6gatu Goukei heikin
Charge 12500 25600 35410 19860 13250 2980s0 1278540 21906
437:デフォルトの名無しさん
07/07/20 14:26:15
>>434
体?でどう?
438:デフォルトの名無しさん
07/07/20 14:27:04
㎥が文字化けしているぞ?
439:デフォルトの名無しさん
07/07/20 14:31:26
int ryokin(int siyou)
{
int kihon, tanka;
if(siyou <= 25) { kihon = 690; tanka = 127; }
else if(siyou <= 500) { kihon = 1170; tanka = 108; }
else { kihon = 6980; tanka = 96; }
return kihon + siyou * tanka;
}
440:デフォルトの名無しさん
07/07/20 14:36:55
>>438 してないお(^ω^)
441:デフォルトの名無しさん
07/07/20 14:38:41
>>437
女でよければ。。
442:デフォルトの名無しさん
07/07/20 14:39:41
int i, siyou[6], charge[6];
int gokei,heikin;
gokei = 0;
for(i = 0; i < 6; i++) {
printf("%d月の使用量:", i);
scanf("%d", &siyou[i]);
charge[i] = ryokin(siyou[i]);
gokei += charge[i];
}
heikin = gokei / 6;
printf("1gatu 2gatu 3gatu 4gatu 5gatu 6gatu Goukei heikin \n");
printf("Charge");
for(i = 0; i < 6; i++) printf("%6d", charge[i]);
printf("%6d", gokei);
printf("%6d\n", heikin);
443:デフォルトの名無しさん
07/07/20 14:41:16
>>441はやっぱなし!高校生だし
444:デフォルトの名無しさん
07/07/20 14:47:10
>>443
えええええええええええええええええええええええええええええええ
ええええええええええええええええええええええええええええええ
えええええええええええええええええええええええええええええ
ええええええええええええええええええええええええええええ
えええええええええええええええええええええええええええ
ええええええええええええええええええええええええええ
えええええええええええええええええええええええええ
ええええええええええええええええええええええええ
えええええええええええええええええええええええ
ええええええええええええええええええええええ
えええええええええええええええええええええ
ええええええええええええええええええええ
えええええええええええええええええええ
ええええええええええええええええええ
えええええええええええええええええ
ええええええええええええええええ
えええええええええええええええ
ええええええええええええええ
えええええええええええええ
ええええええええええええ
えええええええええええ
ええええええええええ
えええええええええ
ええええええええ
えええええええ
ええええええ
えええええ
ええええ
えええ
ええ
え
445:デフォルトの名無しさん
07/07/20 14:50:05
>>444
for(int i = 0; i < 31; i++) {
for(int j = 0; j < 31 - i; j++) printf("え");
puts("");
}
446:デフォルトの名無しさん
07/07/20 14:50:29
>>445
実はもう書いてあったw
447:デフォルトの名無しさん
07/07/20 14:57:14
なにこの流れ
448:デフォルトの名無しさん
07/07/20 15:13:49
あと、>>418も私です
お礼はできませんが、ほんとお願いします
449:デフォルトの名無しさん
07/07/20 15:16:18
名前は指定なしで勝手にきめていいの?
450:デフォルトの名無しさん
07/07/20 15:16:57
指定しないほうがありがたいです☆
451: ◆DpMW3bRjps
07/07/20 15:26:22
[1] 授業単元:プログラミング実習
[2] 問題文(含コード&リンク):任意の文字列を入力し、その文字列の中に任意の文字が何個入っているかを出力する
プログラムのソースコードを提出しなさい。
実行例)
文字列を入力してください
yamamotoyama
さがす文字を入力してください
y
入力された文字列の中に指定された文字は2個あります
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc 3.4
[3.3] 言語: C
[4] 期限: 2007年07月23日17時まで
[5] その他の制限:今回初めて文字配列というものを習いました!春から初めた初心者です
よろしくお願いします!!
452:デフォルトの名無しさん
07/07/20 15:41:33
>>451
#include <stdio.h>
#define N 128
int main(void)
{
char target, str[N];
int i, count=0;
printf("文字列を入力してください\n> ");
gets(str);
printf("さがす文字を入力してください\n> ");
gets(&target);
for(i=0 ; i<N ; i++){
if( str[i] == target ) count++;
}
printf("\n入力された文字列の中に指定された文字は%d個あります\n", count);
return(0);
}
453:デフォルトの名無しさん
07/07/20 16:02:07
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: (Windows/Linux/等々) 自宅はWindows、学内はLinux
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) 自宅:Microsoft Framework SDK 学内:gcc
[3.3] 言語: (C/C++/どちらでも可 のいずれか) C
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) 7月21日まで(おそらく日付変わるまでなら大丈夫)
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
基本的に情報系の高校生でも組めるようなプログラムにしていただけると助かります。
多少複雑になってもいいので、できるだけ基本的な命令(ifとかfor)でお願いします
454: ◆DpMW3bRjps
07/07/20 16:25:21
>>451さんへ
ありがとうございます!!
455: ◆UoNQqijD4I
07/07/20 17:08:04
>452ですが。今コンパイルしたら下のようにエラーがでました(><)
/tmp/cc2eSWqP.o(.text+0x38): In function `main':
: warning: the `gets' function is dangerous and should not be used.
456:デフォルトの名無しさん
07/07/20 17:13:46
内容:
[1] 授業単元:C++
[2] 問題文 文字列の長さを計算する関数を作成せよ
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
[3.3] 言語: C++
[4] 期限: (20日18:00まで]
[5] その他の制限: 以下の内容に手を加えて欲しいのですが・・・
#include <stdio.h>
#define MAX 100
string_length(char str[MAX]);
int main(void){
int i,string_len;
char string[MAX];
printf("入力:");
scanf("%s",string);
printf("文字列の大きさは%dです。",string_length(string));
return(0);
}
int string_legth(char str[MAX]){
int i;
int str_len;
for(i=0;str[i]!='\0';i++);{
}
str_len=i;
return(str_len);
}
Error: 外部シンボル '_string_length' が未解決
と、出て四苦八苦してるのでよろしくお願いします
457:デフォルトの名無しさん
07/07/20 17:15:06
>>455
ワーニングだ
fgetsに帰ればおk
458:デフォルトの名無しさん
07/07/20 17:16:07
> char target, str[N];
> gets(&target);
コレは幾らなんでもマズい
459:デフォルトの名無しさん
07/07/20 17:19:11
>>456
- string_length(char str[MAX]);
+ int string_length(char str[MAX]);
- int string_legth(char str[MAX]){
+ int string_length(char str[MAX]){
460:456
07/07/20 17:22:01
>>459さん
ありがとうございます。俺が間抜けでした!!
レポート出してきます!!
461:デフォルトの名無しさん
07/07/20 18:32:36
>>418
URLリンク(kansai2channeler.hp.infoseek.co.jp)
チェックは甘いが。
462:電通女 ◆v1Uy5WkQ7k
07/07/20 19:41:06
試験勉強中です…付き合ってくださる師匠様募集中…
[1] 授業単元:関数を自作する
[2] 問題文:n!を計算するプログラムを作る
[3] 環境
[3.1] OS:Windows XP
[3.2] コンパイラ名とバージョン:???
[3.3] 言語:C++ …なんですけど、先生はいつもC言語と混ざっている気がする。
#include <stdio.h>
int kaijo(int n)
{
int ans,i;
ans=i;
for(i=1;i<=n;i++) ans*=i;
return ans;
}
int main(void)
{
int n,k;
printf("n="); scanf("&d",&n);
k=kaijo(n);
printf("%d!=%d\n",n,k);
return 1;
}
とやってみたら、
n=5
10494432!=0
となってしまって…。
463:デフォルトの名無しさん
07/07/20 19:44:44
scanf("&d",&n);をscanf("%d",&n);に変えると幸せになれる
464:デフォルトの名無しさん
07/07/20 19:47:59
kaijo()もおかしいから、それだけじゃ幸せにはなれない
465:デフォルトの名無しさん
07/07/20 19:52:57
順を追って考えろ
int ans, i;
このときのansの値とiの値は特に決められていない
だからans = i;
としたところで何も意味がない
ans = 定数にしてやれ
466:電通女 ◆v1Uy5WkQ7k
07/07/20 19:53:09
>>463
それだけで幸せになれました。ありがとうございます。
またわからないとこが出てきたら来ます。
467:デフォルトの名無しさん
07/07/20 19:55:12
これで電通かよ・・・
大阪電気通信大学の間違いじゃないのか・・・
468:デフォルトの名無しさん
07/07/20 19:58:03
>>462
一緒に幸せになろう
469:電通女 ◆v1Uy5WkQ7k
07/07/20 19:59:05
いや、私は電気通信大学じゃないですよw
電気通信大学意以外でも電通って訳すところ、以外とたくさんあるようで。
470:デフォルトの名無しさん
07/07/20 20:03:29
[1] 授業単元: 情報演習基礎
[2] 問題文(含コード&リンク):
・ 区間[ a, b ]において連続なる関数f ( x) について,定積分の計算を行う。
・適用する式は,シンプソンの公式f ( x)=1/(1+x2)とする。
・a=0, b=100, e=0.0000001の場合の積分値とnの値を表示する
・各変数(nを除く)の型はdoubleとする
[3] 環境
[3.1] OS: WinXP
[3.2] コンパイラ名とバージョン: visualstudio2005
[3.3] 言語:C++
[4] 期限: 2007 7/22
[5] その他の制限:標準ライブラリは禁止
よろしくおねがいします。
471:デフォルトの名無しさん
07/07/20 20:05:12
>>470
printfも使っちゃだめなのか?w
472:電通女 ◆v1Uy5WkQ7k
07/07/20 20:08:25
#include <stdio.h>
int add(int a,int b)
{
int c=a+b;
a=100;b=200;
return c;
}
int main(void)
{
int a,b,c;
a=1;b=2;c=add(a,b);
printf("%d+%d=%d\n",a,b,c);
return 1;
}
これの実行結果が1+2=3になるんですけど、最初の方の100も200も消えちゃってるってことですか?
473:デフォルトの名無しさん
07/07/20 20:12:04
>>472
関数の中で宣言した変数は関数を抜けると消えてなくなるよ?
474:デフォルトの名無しさん
07/07/20 20:17:42
ここは宿題スレであって質問スレではないから
質問をしたいなら質問スレに行け。
475:電通女 ◆v1Uy5WkQ7k
07/07/20 20:23:41
おっと、すみません。
初心者歓迎スレに移行しまする。
476:デフォルトの名無しさん
07/07/20 20:23:42
>>453
URLリンク(kansai2channeler.hp.infoseek.co.jp)
477: ◆UoNQqijD4I
07/07/20 20:27:13
>>457さん、fgetsに変えたのにまだエラーがでます泣
478: ◆UoNQqijD4I
07/07/20 20:30:25
>477ですが、ちなみに今度はこんなエラーです
tin.c: 関数 `main' 内:
tin.c:12: error: too few arguments to function `fgets'
tin.c:14: error: too few arguments to function `fgets'
tin.c:16: error: `gcc' undeclared (first use in this function)
tin.c:16: error: (Each undeclared identifier is reported only once
tin.c:16: error: for each function it appears in.)
tin.c:16: error: 文法エラー before "for"
tin.c:16: error: 文法エラー before ')' token
tin.c: トップレベル:
tin.c:20: error: 文法エラー before string constant
tin.c:20: 警告: conflicting types for built-in function `printf'
tin.c:20: 警告: data definition has no type or storage class
479:デフォルトの名無しさん
07/07/20 20:33:22
>>471
URLリンク(www.geocities.jp)
こういうやつのつもりで言ったんですが、違うんですか?
課題が出るときに標準ライブラリ禁止といわれただけなので、よくわからないです
480:デフォルトの名無しさん
07/07/20 20:35:13
>>478
いやゴメン、使い方はオンラインマニュアルなりで確認しようね
とりあえず
fgets(buf, sizeof(buf), stdin);
にすればおk
あと>>458
481:480
07/07/20 20:35:50
bufじゃなかった、strだった
482:デフォルトの名無しさん
07/07/20 20:49:02
finを思い出した。
483:電通女 ◆v1Uy5WkQ7k
07/07/20 20:57:35
スイマセンこれは宿題なんでこっちで教えてください。
1+2+3+…+nをつくるんですが、
#include <stdio.h>
int sum(int n)
{
int ans,i;
ans=i;
for(i=0;i<=n;i++) ans+=i;
return ans;
}
int main(void)
{
int n,s;
printf("n="); scanf("%d",&n);
s=sum(n);
printf("1から%dまでの和は%dです。\n",n,s);
return 1;
}
こうしたら実行結果が
n=5
1から5までの和は16です。
となってしまったんですが、どこで1増えてしまってるんでしょうか?
484:デフォルトの名無しさん
07/07/20 20:59:16
>>483
よく見てないけど、sum()の中の
ans=i;
485:デフォルトの名無しさん
07/07/20 20:59:42
ans=i;をans=0;に変えると幸せになれる
486:デフォルトの名無しさん
07/07/20 20:59:44
>>483
>ans=i;
何を代入してるんだ。
487:電通女 ◆v1Uy5WkQ7k
07/07/20 21:00:39
ああ!
ans=0;
ですね!ありがとうございました!
488:デフォルトの名無しさん
07/07/20 21:11:04
上に書いてあったのに読んでないんだな
489:デフォルトの名無しさん
07/07/20 21:19:48
宿題を人に投げる人間なんてそんなもん。
490:デフォルトの名無しさん
07/07/20 21:20:35
ans=iはans=1の写し間違いだとesp
491:電通女 ◆v1Uy5WkQ7k
07/07/20 21:38:53
おお、なるほど。
492:デフォルトの名無しさん
07/07/20 21:44:31
コピペに移し間違いなんt
493:デフォルトの名無しさん
07/07/20 22:48:16
>>479
C言語にprintf関数やputs関数など、多数の関数群(標準ライブラリ関数)があるように
よく読んだか?
494:デフォルトの名無しさん
07/07/20 22:49:58
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
次のようにプログラムを作成せよ。以下のプログラムのmainとnumber大域変数は変更しないで、
intのスタックを2つ作る(大域変数)。1つのスタックは数値をいれる。もう1つには演算子を表す数をいれる
#include<stdio.h>
#include<ctype.h>
char *p;char c[100];
int expression(void);
int term(void);
int number(void);
main(){
int ans;
while(1){
printf("Enter expression : ");
fgets(c,90,stdin);
p=&c;
if(*p == '\n')
{break;}
ans=expression();
printf("Answer:%d\n" , ans);
}
}
495:デフォルトの名無しさん
07/07/20 22:50:48
int expression(){
int ans;
ans = term();
while(1){
if(*p == '+'){
*p++;
ans = ans + term();
}
else if(*p == '-'){
*p++;
ans = ans - term();
}
else
break;
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2007年07月21日
[5] その他の制限:特になし
496:デフォルトの名無しさん
07/07/20 22:55:05
>>494
翻訳ソフトにかけた日本語みたいだな。さっぱりわからん。
497:デフォルトの名無しさん
07/07/20 22:56:27
>>494
こんな問題出す糞教官は死んだ方がいいな
498:デフォルトの名無しさん
07/07/20 22:58:10
>>493
読み飛ばして勘違いしていました
すみません
>>470は標準ライブラリではなく
C++標準ライブラリです
499:デフォルトの名無しさん
07/07/20 23:01:05
>>494
問題文は?
500:デフォルトの名無しさん
07/07/20 23:02:02
>>498
std::coutとかも標準ライブラリじゃねぇの?
501:デフォルトの名無しさん
07/07/20 23:23:13
必要なものはアセンブラで組めと
502:デフォルトの名無しさん
07/07/20 23:24:09
>>494です
書いたプログラムのmainとnumber大域変数は変更しないで、
intが2つのに変えます。1つにはスタックは数値をいれて、もう1つには演算子を表す数をいれます。
それで、+-*/を出来るようにします。
例えば
+の時は0
-の時は1
*の時は2
/の時は3 を入れるそうです。
503:デフォルトの名無しさん
07/07/20 23:24:54
日本語でおk
504:デフォルトの名無しさん
07/07/20 23:29:52
>>1に
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
ってあるから標準ライブラリ使うなって言うトチ狂った事が多発するんじゃね?
ここで
[5] その他の制限: (どこまで習っているか、ある特定の標準ライブラリ関数は使ってはいけない等々)
って書いとけばちょっとはマシになるのでは?
505:デフォルトの名無しさん
07/07/20 23:30:58
別にどうでも良い。
スルーするなり、非標準の関数を用いるなり、好きにすれば良いじゃん。
506:デフォルトの名無しさん
07/07/20 23:31:08
[1] 授業単元: アルゴリズム
[2] 問題文(含コード&リンク): URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限: 7/23
[5] その他の制限: 特になし
よろしくお願いします
507:デフォルトの名無しさん
07/07/20 23:34:06
[5] その他の制限:(#include<stdio.h>は使ってはいけない等々)
[6] どこまで習っているか (for文を習いました等々)
もっと具体的に、そして分けたほうがいいんじゃないか?
508:デフォルトの名無しさん
07/07/20 23:39:25
>>494
括弧は使うの?
509:デフォルトの名無しさん
07/07/20 23:41:46
>>507
んなコマいこと言ってたらキリが無い
510:デフォルトの名無しさん
07/07/20 23:44:49
>>508
括弧はどこの括弧ですか?大域変数なら、その大域変数を用いて
プログラムを作成するみたいです
511:デフォルトの名無しさん
07/07/20 23:45:05
>>506
再帰
int fib(int n) {
if (n == 0) return 0;
else if (n == 1) return 1;
else return fib(n-1) + fib(n-2);
}
非再帰
int fib(int n) {
int a = 0;
int b = 1;
while (n > 0) {
int t = a+b;
a = b;
b = t;
n = n-1;
}
return a;
}
512:508
07/07/20 23:48:54
>>494, 510
入力する式で括弧を使うかってこと
513:デフォルトの名無しさん
07/07/20 23:52:35
>>506
そのフィボナッチ数列あってる?
初項と第2項は共に1じゃなかったっけ?
514:デフォルトの名無しさん
07/07/20 23:55:37
>>513
fib(1)とfib(2)を1にしたいんじゃないかな
そうすっと、fib(0)を0にしてfib(1)を1にするとちょうどよくなる
515:デフォルトの名無しさん
07/07/21 00:03:37
>>512
括弧は使っても使わなくても大丈夫です。
とにかく、問題文の内容を使い動けばいいみたいです
516:デフォルトの名無しさん
07/07/21 00:04:58
>>506
#include <stdio.h>
int fib1(int n) { //再帰
if (n == 0) return 0;
else if (n == 1) return 1;
else return fib1(n-1) + fib1(n-2);
}
int fib2(int n) { //非再帰
int a = 0;
int b = 1;
while (n > 0) {
int t = a+b;
a = b;
b = t;
n = n-1;
}
return a;
}
int main(void) {
int n[] = {10, 20, 30, 40, 45};
int i;
for (i=0;i<5;i++) printf("%d ", fib1(n[i]));
putchar('\n');
for (i=0;i<5;i++) printf("%d ", fib2(n[i]));
putchar('\n');
return 0;
}
517:デフォルトの名無しさん
07/07/21 00:20:07
>>515
>以下のプログラムのmainとnumber大域変数
mainとnumberは大域変数なのか?
>とにかく、問題文の内容を使い動けばいいみたいです
前スレで回答があったんだがな。気がつかなかった?
518:デフォルトの名無しさん
07/07/21 00:51:20
>>511 >>516
ありがとうございました
参考にさせてもらいます
519:デフォルトの名無しさん
07/07/21 02:36:41
3目並べのプログラムです。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
何度も対戦できるようにするために列の判定の配列を初期化するようにしたらコンパイルエラーが出るようになってしまいました。
頭の中がぐちゃぐちゃになってきたので、アドバイス等いただければと思います。
正常にプログラムを実行したとき、先攻or後攻を決めることになりますが
また実装はしていませんのでお飾り状態です。
520:デフォルトの名無しさん
07/07/21 02:39:33
>>517
以下のプログラムのmainとnumber大域変数は変更しないで、
1つのスタックは数値ともう1つには演算子を表す数を大域変数にすればいいと
思います
521:デフォルトの名無しさん
07/07/21 02:50:35
>>520
mainは大域変数なのか?
522:デフォルトの名無しさん
07/07/21 02:58:09
>>519
酔っぱらっているので、ロジックはチェックできないがw
まず、変数と関数に同じcheckを割り当てることを止めろ。
配列={0}とできるのは、配列変数の宣言をする時。
それ以外の箇所で初期化したいなら、
ループで各要素に0を代入するか、
>memset(area,sizeof(area),0);
とかするといいぞ。
523:デフォルトの名無しさん
07/07/21 03:18:49
>>520
宿題の回答を依頼したいなら、
使う用語は理解してからにしてくれ。
大域をpublicと言う意味で使うにしても、
mainやnumberは変数ではないよ。
スタックと言う言葉の意味は分かっているのか?
依頼したい内容が、そもそも通じてないから、
回答が無いのじゃないかな?
524:デフォルトの名無しさん
07/07/21 03:27:57
>>521>>523
あやふやな言い方ですいません。mainとnumber大域変数は変更しないで、
intのスタックを2つ作りたいです。
1つのスタックは数値をいれる。
もう1つには演算子を表す数をいれる。です。
よろしくお願いします
525:デフォルトの名無しさん
07/07/21 03:36:44
>>519
battle→put→battleって流れがあるからずっと対戦続けてるとばぐるよ。
int check[8]がグローバルである必要が無い。check関数内のみでOK。
もちろん名前は>522の言うように別でw
あと、do-whileですっきりしそうなところがいっぱいある。
別に直さなくても動くから無視してくれていいけど。
526:デフォルトの名無しさん
07/07/21 03:36:51
だから、そもそもmainは変数じゃないって。
変数じゃない物を、変更できる訳はないよ。
あなたが言う「スタック」とは何なのか
説明してくれないと、意味が分からない。
527:526
07/07/21 03:39:36
振り先は>>524です。orz
528:デフォルトの名無しさん
07/07/21 03:41:46
>>524
あやふやな言い方を直したつもりなのか同じことを繰り返しているぞw
元のプログラムに「number大域変数」というものが存在しない。
よって変更するしないとかいう意味がわからない。
提示したプログラムだが途中までしかコピペしていないんじゃないか?
break;なんかで終わってるしterm関数が見当たらない。
529:デフォルトの名無しさん
07/07/21 03:44:40
>>526
スタックはおそらくそのままスタックでいいかと。
2つってのが引っかかるが演算子と数値で2つ作るんだろう。
「1+2-3」って入力ならスタックA「1 2 3」スタックB「+ -」になって
popA popB popAの演算をスタックがなくなるまで行う。
って感じでエスパーしてみた。
乗除に対応しようとした時点で破綻する設計だなw
530:526
07/07/21 03:54:08
この問題、奇特な人が回答しているんだが。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
依頼者はこれが気に入らないのかな。
もちろん、この時の依頼者は別人かも試練。
だが、「スタックで実装しろ」の言う意味は
理解してからにして欲しい。
531:519
07/07/21 03:55:30
URLリンク(kansai2channeler.hp.infoseek.co.jp)
checkをローカルに戻してareaの再初期化をforに変更しました。
プログラムを実行すると、途中でうまく配置できていない感じになってしまいます。
先攻後攻は先ほどと同じく未実装です。
532:デフォルトの名無しさん
07/07/21 03:57:18
すいませんでした。
プログラムが途中でした。
}
return(ans);
}
int number(void){ //数値データ
int i=0;
while (isdigit(*p)){
i = i*10+(*p++)-48;
}
return(i);
}
533:デフォルトの名無しさん
07/07/21 03:58:33
とりあいずmainとnumberは変更しないで、
intのスタックを2つ作る。
1つのスタックは数値をいれる。
もう1つには演算子を表す数をいれる。です。
534:デフォルトの名無しさん
07/07/21 04:00:58
>>530さん
書き込みが食い違いになってしまいすいません。
535:526
07/07/21 04:02:18
だから、スタックって何?
536:デフォルトの名無しさん
07/07/21 04:05:17
whileをintだけで書けってことをいいたいのか?
537:526
07/07/21 04:07:07
>>533
「演算子を表す数」を定義してくれ
538:デフォルトの名無しさん
07/07/21 04:07:33
あれか?それともint使ってとにかく数値をいれるのと
演算子を表す数のを作ればいいのか?
539:526
07/07/21 04:13:19
要件定義ができないなら、それでも良いが、
どういう物を作って欲しいのか、理解可能な表現にして下さい。
少なくとも宿題をそのまんま書いてくれないと、espの領域になる。
540:デフォルトの名無しさん
07/07/21 04:17:12
演算子を表す数ですか?
一応黒板に書いてあったのを書き込みました
541:デフォルトの名無しさん
07/07/21 04:19:48
確か+が一番弱く/が一番強くなるように作ると言っていました
542:デフォルトの名無しさん
07/07/21 04:20:14
>>531
print関数がおかしい。
ループ部分を以下みたいにしてみ。
for(i=0;i<9;i++){
if(area[i] == 0)
printf(" ");
else if(area[i] == 1)
printf("○");
else if(area[i] == 4)
printf("×");
else
printf("as");
printf("|");
if ( i % 3 == 2 )
printf("\n");
}
とりあえずは動くよ。
543:526
07/07/21 04:21:36
>>531で示した回答にどういう不満があるのか、
せめてそれだけども答えてくれ。
>演算子を表す数ですか?
>一応黒板に書いてあったのを書き込みました
見落としたかも知れないから、
演算子と定数の対応表を再掲してくれ。
544:526
07/07/21 04:23:51
スタックの定義も提示してくれ。
545:519
07/07/21 04:31:10
URLリンク(kansai2channeler.hp.infoseek.co.jp)
>>542
挙動は正常になったようなのですが
2度目以降の対戦がうまく動作しません・・・(´・ω・`)
area[]の初期化は出来ていると思うのですが・・・
>>543
レスアン間違ってないですか?
546:519
07/07/21 04:33:00
初期化できてなかったですね・・・^^;
すいません、みすってました
547:526
07/07/21 04:35:27
>>541
宿題の意味が分からないなら、>>531で宿題の回答にしたらいい。
この回答に不満があるなら、
この回答のどこが設問と違うか、提示すればいいだけだと思うが。
548:519
07/07/21 04:41:21
526さんは何を言ってるんでしょうか?
私ともう一人質問をされてる方がいるんだとおもんですが・・・?
私は3目並べの話をしてるんですが?
549:526
07/07/21 04:46:50
>>548 気にしないで下さい。あなたの推察通りです。
済まん、酔っぱらいだ
>>547で書いた>>541は>>540の間違いだ。訂正する。
550:519
07/07/21 05:08:59
URLリンク(kansai2channeler.hp.infoseek.co.jp)
先攻or後攻も考慮してみました。
課題の指示としては
1,二人対戦・com対戦可能
2,毎回com/man対戦・終了を選ぶ
というものです。
このプログラムでみたせてるでしょうか?
私の中ではOKだとは思うのですが
できてねーぞごるぁ! とかあればおねがいします
551:デフォルトの名無しさん
07/07/21 05:14:31
【即会い!!】
私自身が使用してみて、即出会えた出会い系サイトを紹介するブログ始めました。
2chと併用して使える良質な即日系サイトのみを厳選して薦めております。
↓↓↓
【ブログ ~即出会えるサイト】URLリンク(deaigets.blog97.fc2.com)
552:519
07/07/21 05:18:33
もう一つ指示があったのを忘れていました。
・戦歴の表示
というのがあったので、追加しました
URLリンク(kansai2channeler.hp.infoseek.co.jp)
評価お願いします。
553:519
07/07/21 05:22:51
何度もすみません、凡ミスがあったので修正しました。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
554:デフォルトの名無しさん
07/07/21 07:22:22
とても丁寧な読みやすいコーディングだね。
ソース流し読みしただけだけど敢えて問題があるとするなら
ループでscanfを使ってるくらい?
555:デフォルトの名無しさん
07/07/21 09:35:31
>>519
良くできてると思いますよ。
556:519
07/07/21 10:06:42
ありがとうございました。
557: ◆yb5ufjhaCo
07/07/21 11:21:02
すいません、あんまりわからないので、教えてください。
ほんとに初歩の質問ですいません
1] 授業単元: プログラミング基礎
[2] 問題文(含コード&リンク):
<次のプログラムの断片は誤りを含んでいるところがある。
その誤りの理由を述べ、正しい動作をするようにその箇所を修正した
プログラム断片全てを書け。ただし無関係のところまで変えないこと。
[3] 環境
[3.1] OS: Linuxです
[3.2] コンパイラ名とバージョン: gcc です
[3.3] 言語: Cでお願いします。
[4] 期限: 25日いっぱいまでです。
558: ◆yb5ufjhaCo
07/07/21 11:22:35
すいません。問題忘れてました…
(1)
if(c = '\0')
n++;
(2)
while(c = getchar() !=EOF)
putchar(c);
(3)
for(i = 0; i < 10; j++){
total += i;
}
(4)
switch(c){
case 'y':
state = 1;
case 'n':
state = 0;
default:
state = -1;
}
お願いします…
559: ◆yb5ufjhaCo
07/07/21 11:23:13
(5)
if(k = 0)
1++;
else
1--;
(6)
for (i = 0; i < 8; j++){
b[i] -= a[i+j];
}
(7)
switch(c){
case 'y':
count--;
case 'n':
count++;
default:
break;
}
560:デフォルトの名無しさん
07/07/21 11:28:31
1:=
2:(c=getchar())
3:無限るーっぷって怖くね?
4:break;
5:=, 1++, 1--
6:3に同じ
7:break;
違うかも
561:519
07/07/21 13:07:12
comが1Pのリーチを阻止できるようにしたいのですが、
どういうコードを書けばいいでしょうか?
562: ◆M2clACoxQA
07/07/21 13:28:04
[1] 授業単元: プログラミング 基礎
[2] 問題文(含コード&リンク):
#include <stdio.h>
int main(void)
{
int i = 1;
int j = 0;
do{
j = j + i;
i += 2;
}while(i<=99);
printf("1から99までの奇数の総数は%dです。\n", j);
return 0;
}
以上の「奇数の総和」を求めるプログラムを関数化して作成しなさい。
開始値と終了値を引数として使用し、main関数で確認する。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: visual studio2005
[3.3] 言語: C言語
[4] 期限: 2007年7月21日15:00まで
[5] その他の制限:
習ったのは、if-else文 do-while文 for文。
sum関数を使うと言っていました。
まだ習いたてなので、あまり難しいのはわかりません。
よろしくお願いします・・・
563:デフォルトの名無しさん
07/07/21 13:32:20
>>562
お前さんのところで作ったsum関数とやらは知らんがそれ見ながらdo{}whileの処理を
sum関数の要領でmain文の外に追い出せばいいだけ。
564: ◆M2clACoxQA
07/07/21 13:40:18
>>563
なるほど・・・そういうことだったんですね。
変に難しいことを考えてしまいました^^;
親切に教えてくださり、ありがとう御座いました!!
565:デフォルトの名無しさん
07/07/21 14:13:55
>>547
エラーで書けなくなった為遅くなりました。
checkはまだ習っていません。何通りかやり方があると
言っていたので他にも実行するプログラムはありますか?
何度もあやふやな言い方だと迷惑だと思うので、友達に確認してから
もう一度書き込みします。
よろしくお願いします
566:デフォルトの名無しさん
07/07/21 14:31:37
習ってないも糞もおまいさんの作った関数だろうから習ってないとか意味不明。
授業中に提示された関数をただ使ってるだけだならちゃんと話聞いとけ馬鹿で終了だし。
他に実行できるプログラムはあると言えるけど、
>>519の要件満たせばいいだけならプログラマの数だけやり方はあると言えるから、
質問自体の意味がない。
何がしたいのかはっきりすればどうすればいいのか言えるけど、
何がしたいのかを言わないようじゃエスパーに頼るしかないし。
567:519
07/07/21 14:37:48
>>566
私は565じゃないですよ!!!!!
568:デフォルトの名無しさん
07/07/21 14:42:14
>>565
お前さんが>>494なら、>>547は>>594にあるとおり、ただの勘違いのようだから
スルー汁
>>530のレスは読んだのか?
569:568
07/07/21 14:43:13
×>>547は>>594にあるとおり
○>>547は>>549にあるとおり
570:デフォルトの名無しさん
07/07/21 14:48:50
なんかここんとこgdgd説教したりそんなんじゃ相手に伝わらないよ俺はわからんよって
だったらgdgdレスしてないで答えなきゃ良いじょのいこっ(えなり君風に)
571:デフォルトの名無しさん
07/07/21 15:04:37
>>568
>>530は読みました。>>530自体が問題のプログラムで。
問題は、/*-+の順に計算できるようにする。そのためにint2つ作る。
1つは数字、1つは記号(/*-+)
572:デフォルトの名無しさん
07/07/21 15:11:11
>>420をお願いします
573:519
07/07/21 15:17:54
私が質問している3目並べは
>>561をおねがいします!
574:デフォルトの名無しさん
07/07/21 15:48:08
>>573
check関数内で、check変数の値が2になっているラインに置けばいい。
ってか、checkの名前がかぶってるのをやめたほうがいいって言われてなかった?
575:デフォルトの名無しさん
07/07/21 16:01:30
[1] 授業単元: C言語
[2] 問題文(含コード&リンク):
整数n、rを入力し全組み合わせを配列に配置するプログラムを作成しなさい。
例えばn=4,r=2の場合
{{1,2},{1,3},{1,4},{2,3},{2,4},{3,4}}
となる。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc 3.4
[3.3] 言語: C
[4] 期限: 7/25
[5] その他の制限: 特に無し
画面に出力するだけなら何とかなりそうなんですが配列に入れるとなると
もう何がなんだか…
576:デフォルトの名無しさん
07/07/21 16:06:56
>>575
配列なんて出てくるか?
2重ループで一発だと思うんだが?違う?
577:デフォルトの名無しさん
07/07/21 16:08:30
お前は何を言ってるんだ
578:デフォルトの名無しさん
07/07/21 16:16:34
適当に大きめの2次配列に入れるなり、
動的確保するなりして入れればいいだけじゃないか。
表示できるなら配置もできるだろ。
579:デフォルトの名無しさん
07/07/21 16:20:31
【即会い!!】
私自身が使用してみて、即出会えた出会い系サイトを紹介するブログ始めました。
2chと併用して使える良質な即日系サイトのみを厳選して薦めております。
フリメ登録OKなサイトを拡充しました!
↓↓↓
【ブログ ~即出会えるサイト】URLリンク(deaigets.blog97.fc2.com)
580:デフォルトの名無しさん
07/07/21 16:34:05
>>494
最小限の実装.変な式を入れたときにどうなるかは知らない.
<変更点>
・以下のグローバル変数を追加
int ops[100], vals[100], optop, valtop;
・term()は使わないので消していい
・expression() の内容を以下に変更
int expression() {
valtop = optop = -1;
vals[++valtop] = number();
while (1) {
int opcode;
if (*p == '+') opcode = 1;
else if (*p == '-') opcode = 2;
else if (*p == '*') opcode = 3;
else if (*p == '/') opcode = 4;
else opcode = 0;
while (optop >= 0 && ops[optop] >= opcode) {
if (ops[optop] == 1) vals[valtop-1] += vals[valtop];
if (ops[optop] == 2) vals[valtop-1] -= vals[valtop];
if (ops[optop] == 3) vals[valtop-1] *= vals[valtop];
if (ops[optop] == 4) vals[valtop-1] /= vals[valtop];
valtop--; optop--;}
if (opcode == 0) break;
ops[++optop] = opcode;
*p++;
vals[++valtop] = number();}
if (valtop != 0) printf("some error\n");
return vals[0];}
581:デフォルトの名無しさん
07/07/21 16:40:46
>>578
なんで2次配列なのか小一時間問い詰めたい
582:デフォルトの名無しさん
07/07/21 16:44:54
>>576
なんで2重ループなのか小一時間問い詰めたい
583:デフォルトの名無しさん
07/07/21 16:55:27
>>578
表示できるといっても再帰で表示させてるんで
うまいこと添字があわなくて…
配列に配置させるのに利用できないんです
584:デフォルトの名無しさん
07/07/21 17:16:20
>>453 俺もやってみた。クソースだがw
URLリンク(kansai2channeler.hp.infoseek.co.jp)
585:519
07/07/21 17:31:19
>>574
名前が被ってるというと?
586:デフォルトの名無しさん
07/07/21 17:43:21
>>575
URLリンク(kansai2channeler.hp.infoseek.co.jp)
2次元配列ではなくポインタ配列だが。
587:デフォルトの名無しさん
07/07/21 17:44:29
>>585
関数と変数が同じ名前ってこと。
問題ないけどソース読みづらい。
588:デフォルトの名無しさん
07/07/21 18:28:35
[1] 授業単元: C言語入門
[2] 問題文(含コード&リンク):
ゼータ関数は次式で定義される。
ζ(s) = ∑(1/n^s)
s=6のとき、π^6/945に収束する。これを確認するプログラムを作製せよ。
ただし、級数の和を無限個とるのではなく、有限の範囲内で(n=100)で計算せよ。
条件1:倍精度型で計算し、6パターン以上は比較できるようにすること。
条件2:二重ループを使うこと。そのため、外側ループでは初期値をmとして,
nまでm刻みで値を変更し、内側ループでは該当する値に応じたゼータ関数値を算定できるようにコーティングせよ。(例えば、n=1000と、m=100に設定した場合、nの値を10パターン変化させることができる。)
[3] 環境
[3.1] OS:MAC OS X
[3.2] コンパイラ名 gcc
[3.3] 言語:C
[4] 期限:来週の月曜日まで
[5] その他の制限: とくに無し
条件が多いですが、よろしくお願いします。
589:デフォルトの名無しさん
07/07/21 18:43:31
それ7/18までじゃなかったっけ?
590:デフォルトの名無しさん
07/07/21 19:03:58
>>587
同じ名前で変数と関数があったら、
普通、再定義エラーにならないか?
591:デフォルトの名無しさん
07/07/21 19:14:43
グローバルとローカルの違いってCの基礎じゃないの?
592:デフォルトの名無しさん
07/07/21 19:20:33
グローバル変数と関数が同じ名前だったんだが。
593:デフォルトの名無しさん
07/07/21 19:22:03
ローカルでも普通にエラーでるんじゃね?
594:デフォルトの名無しさん
07/07/21 19:23:01
っていうか>>519の最新が553?
595:593
07/07/21 19:25:33
さっき>>553で名前被りエラー出なかったからあのレス忘れてくれ。
596:デフォルトの名無しさん
07/07/21 19:29:31
最新にしてはエラーや警告出まくるんだけどw
で、comに考える力を与えてみた。
int com_put(){
int input;
do{
input = rand()%9;
}while(area[input] != 0);
if (area[0] + area[1] + area[2] == 8) input = (area[0] == 0)*0 + (area[1] == 0)*1 + (area[2] == 0)*2;
else if(area[3] + area[4] + area[5] == 8) input = (area[3] == 0)*3 + (area[4] == 0)*4 + (area[5] == 0)*5;
else if(area[6] + area[7] + area[8] == 8) input = (area[6] == 0)*6 + (area[7] == 0)*7 + (area[8] == 0)*8;
else if(area[0] + area[3] + area[6] == 8) input = (area[0] == 0)*0 + (area[3] == 0)*3 + (area[6] == 0)*6;
else if(area[1] + area[4] + area[7] == 8) input = (area[1] == 0)*1 + (area[4] == 0)*4 + (area[7] == 0)*7;
else if(area[2] + area[5] + area[8] == 8) input = (area[2] == 0)*2 + (area[5] == 0)*5 + (area[8] == 0)*8;
else if(area[0] + area[4] + area[8] == 8) input = (area[0] == 0)*0 + (area[4] == 0)*4 + (area[8] == 0)*8;
else if(area[2] + area[4] + area[6] == 8) input = (area[2] == 0)*2 + (area[4] == 0)*4 + (area[6] == 0)*6;
else if(area[0] + area[1] + area[2] == 2) input = (area[0] == 0)*0 + (area[1] == 0)*1 + (area[2] == 0)*2;
else if(area[3] + area[4] + area[5] == 2) input = (area[3] == 0)*3 + (area[4] == 0)*4 + (area[5] == 0)*5;
else if(area[6] + area[7] + area[8] == 2) input = (area[6] == 0)*6 + (area[7] == 0)*7 + (area[8] == 0)*8;
else if(area[0] + area[3] + area[6] == 2) input = (area[0] == 0)*0 + (area[3] == 0)*3 + (area[6] == 0)*6;
else if(area[1] + area[4] + area[7] == 2) input = (area[1] == 0)*1 + (area[4] == 0)*4 + (area[7] == 0)*7;
else if(area[2] + area[5] + area[8] == 2) input = (area[2] == 0)*2 + (area[5] == 0)*5 + (area[8] == 0)*8;
else if(area[0] + area[4] + area[8] == 2) input = (area[0] == 0)*0 + (area[4] == 0)*4 + (area[8] == 0)*8;
else if(area[2] + area[4] + area[6] == 2) input = (area[2] == 0)*2 + (area[4] == 0)*4 + (area[6] == 0)*6;
area[input] = 4;
}
597:デフォルトの名無しさん
07/07/21 21:56:05
>>586
どうもありがとうございます。
なんか今更情報科にきたことを後悔…
複雑になると頭がこんがらがる
598:デフォルトの名無しさん
07/07/21 22:32:47
[1]単元:プログラミング
[2]問題:URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3]環境
OS:リナックス
コンパイラ:gcc
言語:C
[4]7月23日
よろしくお願いします。
599:デフォルトの名無しさん
07/07/21 22:41:33
>>588 MinGWで。Macで動くか知りません
#include <stdio.h>
#include <math.h>
int main(int argc, char *argv[])
{
int i, j, s = 6, n = 100, m = 10;
double d = 0;
for(i = m; i <= n; i += m) {
for(j = i-m+1; j < i; j++) d += 1/pow(j,s);
printf("n = %i\t:\t%.15f\n", i, d);
}
printf("π^6/945:\t%.15f\n", pow(M_PI,s)/945);
return 0;
}
600:デフォルトの名無しさん
07/07/21 22:55:00
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):以下のプログラムのmainとnumberは変更しないで、
intのスタックを2つ作る。1つは数値をいれる。もう1つには演算子を表す数をいれる
#include <stdio.h> #include <stdlib.h> #include <ctype.h>
char *p; char c[100]; int expression(void);int term(void);
int number(void);main(){ int ans;while(1){
printf("Enter expression : ");fgets(c,90,stdin);
p=c;if(*p == '\n') break;ans = expression();
printf("Answer:%d\n", ans);}}int expression(){
int ans;ans = term();while(1){if(*p == '+'){
p++;ans = ans + term();}else if(*p == '-'){
p++;ans = ans - term();}else break;}
return(ans);}int term(){int ans,x;ans = number();
while(1){if(*p == '*'){p++;ans = ans * number();}
else if(*p == '/'){p++;x = number();
if(x == 0){printf("Division by 0\n");
exit(1);}ans = ans / x;}
else break;}return(ans);}
int number(){int i=0;while (isdigit(*p)){i=i*10+(*p++)-48;}
return(i);}
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 年07月23日
[5] その他の制限: 特になし