C/C++の宿題を片付け ..
[2ch|▼Menu]
263:デフォルトの名無しさん
07/07/18 14:33:09
>>262
strccat(a, b) ≡ strcpy(a + strlen(a), b) ≡ strcpy(strchr(a, '\0'), b)

264:262
07/07/18 14:37:06
262の駄文は忘れてくれ
問題2の修正版
URLリンク(kansai2channeler.hp.infoseek.co.jp)

265:デフォルトの名無しさん
07/07/18 15:08:56
>>246
色々穴だらけだが
URLリンク(kansai2channeler.hp.infoseek.co.jp)


266:デフォルトの名無しさん
07/07/18 15:18:43
>>262
最後のナル文字にさえ気をつければ便利だし安全だよ。

267:デフォルトの名無しさん
07/07/18 15:19:45
サイズの方が重要かも。

268:265
07/07/18 15:24:25
あ、コメントの処理入れるの忘れた
まあいいや
どうせもともと穴だらけだ

269:ヒープ
07/07/18 15:36:58
[1] 授業単元:C言語演習
[2] 問題文(含コード&リンク):
ヒープソートを用いて、配列に格納された10個の数値データを
大きい順に並び替える。変化がわかるようにソート前と後を出力させる。

[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 早いとありがたいです
[5] その他の制限: 特にありません
よろしくおねがいします。

270:デフォルトの名無しさん
07/07/18 17:26:12
>>177
#include <stdio.h>

int main(void) {
int i,j,k,sn,flg[3]={0},suka;
int n[3][5]={
{157788,457190,-1},
{5161,7093,7485,9614,-1},
{64,79,-1}
};
printf("Input number > ");
scanf("%d",&sn);
for(i=0,k=1000000; i<3; i++,k/=100) {
for(j=0; n[i][j]>0; j++) {
if(n[i][j]==sn%k) {
flg[i]++;
break;
}
}
}
for(i=0,suka=1; i<3; i++) {
if(flg[i]) {
printf("%d等 \n",i+1);
suka=0;
}
}
if(suka) printf("はずれ\n");
return 0;
}


271:デフォルトの名無しさん
07/07/18 18:07:53
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
2次元配列の中にデータの入ったファイルを読み込んで代入する方法を
main関数ともう1つ関数をつくって作成せよ。
例. box[5][5];の2次元配列にファイルのデータ(ここではdata.txt)を代入
data.txt
1 1 1 1 1
2 2 2 2 2
3 3 3 3 3
4 4 4 4 4
5 5 5 5 5

[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 今日中です
[5] その他の制限: 特にありません
よろしくおねがいします。

272:175
07/07/18 19:53:23
>>261
ありがとうございました!m(__)m
自分でも色々いじってみましたが、思っていた通りの完璧な出来でした。
本当に助かりました!



273:デフォルトの名無しさん
07/07/18 20:09:44
[1] 授業単元:情報活用
[2] 問題文:キーボードから順次入力された正の整数を0が入力されるまで、
配列に順番に格納し、入力された(0を除く)値の平均値(実数として扱うこと)
にもっとも近い値(平均との差が最小となる値)が何番目に入力された
どういう値であるかを表示するプログラムを作成せよ。

例)
数字(1)を入力してください。 2
数字(2)を入力してください。 5
数字(3)を入力してください。 3
数字(4)を入力してください。 1
数字(5)を入力してください。 0
入力された数字の平均は2.75です。
これは、3番目に入力された3に最も近いです。
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C
[4] 期限: [7月19日20:00]
[5] その他の制限:特になし

ギリギリまで頑張ったのですができませんでした。わかる方お願いします

274:デフォルトの名無しさん
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回のみ使用できるものとする
Aアルゴリズムは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で範囲チェックを行い、範囲外の入力だった
場合は、エラーメッセージを表示して再入力させること
A日の入力については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("第A回");break;
case 1932:puts("第B回");break;
case 1936:puts("第C回");break;
case 1948:puts("第D回");break;
case 1952:puts("第E回");break;
case 1956:puts("第F回");break;
case 1960:puts("第G回");break;
case 1964:puts("第H回");break;
case 1968:puts("第I回");break;
case 1972:puts("第J回");break;
case 1976:puts("第K回");break;
case 1980:puts("第L回");break;
case 1984:puts("第M回");break;
case 1988:puts("第N回");break;
case 1992:puts("第O回");break;
case 1994:puts("第P回");break;
case 1998:puts("第Q回");break;
case 2002:puts("第R回");break;
case 2006:puts("第S回");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;
}


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5379日前に更新/328 KB
担当:undef