トップページ⇒tech
1001コメント425KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG?2BP(12)
あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他や発言はスルーの方向で。

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

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

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

【前スレ】
C/C++の宿題を片付けます 95代目
http://pc11.2ch.net/test/read.cgi/tech/1187944110/
0516デフォルトの名無しさん2007/09/30(日) 19:43:45
>>514
面白いな
0517デフォルトの名無しさん2007/09/30(日) 20:32:33
>>501
#include<stdio.h>

int main(void){
int i, j, n, num[9+1];

while(1)
{
printf("行数(1-9):");
scanf("%d", &n);
if(1<=n && n<=9) break;
printf("\nエラー\n");
}

num[0]=num[1]=1;
for(i=0;i<n;i++)
{
num[i+1]=0;
for(j=i;j>=0;j--) num[j+1]+=num[j];
for(j=0;j<=i+1;j++) printf(" %d", num[j]);
printf("\n");
}
return 0;
}
0518デフォルトの名無しさん2007/09/30(日) 20:38:28
言語間違えた orz
#include<iostream>

int main(void){
int i, j, n, num[10];

while(1){
std::cout << "行数(1-9):";
std::cin >> n;
if(1<=n && n<=9) break;
std::cout << std::endl << "エラー" << std::endl;
}

num[0]=num[1]=1;
for(i=0;i<n;i++){
num[i+1]=0;
for(j=i;j>=0;j--) num[j+1]+=num[j];
for(j=0;j<=i+1;j++) std::cout << num[j] << " ";
std::cout << std::endl;
}
return 0;
}
0519デフォルトの名無しさん2007/09/30(日) 21:42:56
>>500
日本語でおk
少し長い文章を書くと内容がめちゃくちゃになるようなので
何をしたいのか最初から箇条書きで書き直し
0520デフォルトの名無しさん2007/09/30(日) 21:48:50
>>515
自分で計算してOKです
そして言語ですが、確認したらCでもC++でも可能との事
問題文のソース例はCの場合でした
0521デフォルトの名無しさん2007/09/30(日) 21:49:34
>>511
>>517
0522デフォルトの名無しさん2007/09/30(日) 21:57:28
サンクス!
05235002007/09/30(日) 22:01:09
以下のファイル(file1.txt)があるとします。
このファイルをfgetsで読み込んで、文字が書かれてない行にきたら
それまで読み込んだ文字を違うファイル(output_file1.txt)に出力します。
出力したらまた元のファイルの読み込みを始めます。そして文字が書かれてない行に
きたら、また違う別のファイル(output_file2.txt)に出力します。
読み込むファイルfile1.txtが
a
ts
u
s
a

a
w
a

a
u
とすると
出力するファイルoutput_file1.txtに
a
ts
u
s
a
また次の出力するファイルoutput_file2.txtに
w
a
と出力できるようにしたいということです。すみません説明できなくて

05245002007/09/30(日) 22:02:17
>また次の出力するファイルoutput_file2.txtに
>w
>a

でなくて
a
w
a
です
0525デフォルトの名無しさん2007/09/30(日) 22:25:40
fout=0として書き込む前にチェックするのが普通だろうが、まあいいや。
#include <stdio.h>
int main(void){
char buff[256];int i=1;
FILE *fin=fopen("file1.txt","r"),*fout=fopen("output_file1.txt","w");
while(fgets(buff,sizeof(buff)/sizeof(buff[0]),fin)){
if(buff[0]=='\n'){
fclose(fout);
sprintf(buff,"output_file%d.txt",++i);
fout=fopen(buff,"w");
}else{
fputs(buff,fout);
}
}
fclose(fout);fclose(fin);
return 0;
}
0526デフォルトの名無しさん2007/09/30(日) 22:29:03
>>523-524
重要なのは
どんな入力に対して
どんな出力が必要か
を明記する事であって、ころころ変わるあなたの考える処理方法ではない

仮に、読み上げソフトか何かに与えて、同時発音させるのが目的ならば
あなたの考えはあと何回も変わるだろうし…
もう少し、何の為に何をどうしたいのかを整理して出直してきて下さい


[user]$ awk -f a.awk < memo.txt

#!/bin/awk -f
BEGIN{count=1}
!/^$/ && NF>1{
filename=sprintf("output_file%d.txt", count);
for(i=2;i<=NF;i++) print $i>> filename
count=count+1;
}
0527デフォルトの名無しさん2007/09/30(日) 23:02:45
未回答&&期限内の問題ってある?
0528デフォルトの名無しさん2007/09/30(日) 23:06:49
>>527 Hello Worldを表示せよ
05295002007/09/30(日) 23:14:39
525
ありがとさん
0530デフォルトの名無しさん2007/09/30(日) 23:16:12
[1] 授業単元: C言語基礎
[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4998.txt
[3] 環境
 [3.1] OS: Windows
 [3.3] 言語: C言語
[4] 期限:10月1日午前1時まで
[5] その他の制限:C言語を習い始めてまだ3ヶ月程度です
         よろしくおねがいします
0531デフォルトの名無しさん2007/09/30(日) 23:23:48
>>530
課題1
#include <stdio.h>
int main( void )
{
int year;
int check;
scanf( "%d", &year );

if ( year % 400 == 0 ) {
check = 1;
}
else if ( year % 100 == 0 ) {
check = 0;
}
else if ( year % 4 == 0 ) {
check = 1;
}
else {
check = 0;
}

if ( check == 0 ) {
printf( "閏年ではありません" );
}
else {
printf( "閏年です" );
}

return 0;
}
0532デフォルトの名無しさん2007/09/30(日) 23:33:35
>>530
課題2(むりやりswitch使った悪い例)
#include <stdio.h>
int main( void ){
const char * const tv_name[] = {
"HBC", "NHK総合",
"STV", "NHK教育",
"TVH", "UHB",
"HTB",
};
int channel;
scanf( "%d", &channel );

switch ( channel ) {
case 1: channel = 0; break;
case 3: channel = 1; break;
case 5: channel = 2; break;
case 12: channel = 3; break;
case 17: channel = 4; break;
case 27: channel = 5; break;
case 35: channel = 6; break;
default: channel = -1; break;
}
if ( channel != -1 ) {
printf ( "%s", tv_name[ channel ] );
}
return 0;
}
0533デフォルトの名無しさん2007/09/30(日) 23:35:40
遅れたorz
#include <stdio.h>

int main(void){
int input;
char *channel=NULL;
scanf("%d",&input);
switch (input){
case 1:channel="HBC";break;
case 5:channel="STV";break;
case 12:channel="NHK教育";break;
case 17:channel="TVH";break;
case 27:channel="UHB";break;
case 35:channel="HTB";break;
default:channel="砂嵐";break;
}
printf("%s\n",channel);
return 0;
}
0534デフォルトの名無しさん2007/09/30(日) 23:39:37
#include <stdio.h>

int main(void)
{
int a;
printf("西暦を入力してください。");
scanf("%d",&a);

if((a % 4 == 0 && a % 100 != 0) || a % 400 == 0)
printf("%d年は閏年です。\n ",a);
else
printf("%d年は閏年じゃありません。\n",a);

return(0);
}
0535 ◆AsDEGV.0To 2007/10/01(月) 00:02:45
[1] 授業単元:コンピュータとプログラミング
[2] 問題文(含コード&リンク):
年月日(YYYY MM DD)と10個の整数値をキーボードから入力し、それにの値を
バイナリファイルに保存するプログラムを作成すること。それぞれの値の形は、
年(short),月(short),日(short),入力した整数値(int)とすること。
[3] 環境
 [3.1] OS: Windows
 [3.3] 言語: C言語
[4] 期限:2007年10月01日01:10まで
[5] その他の制限:ポインタ・ファイル入出力迄はやっています。

宜しくお願いします。
0536デフォルトの名無しさん2007/10/01(月) 00:14:46
バイナリで保存しなきゃだめなの?
05375302007/10/01(月) 00:19:17
>>531
>>532
>>533
>>534
ありがとうございます
0538 ◆4Jr51i3qWE 2007/10/01(月) 00:21:27
>>536
バイナリと指定されています
0539デフォルトの名無しさん2007/10/01(月) 00:26:59
>>535
#include<stdio.h>

int main(void)
{
short year, month, day;
int i, value[10], value_num=sizeof(value)/sizeof(value[0]);
FILE *fp;

printf("年:");
scanf("%hd", &year);
printf("月:");
scanf("%hd", &month);
printf("日:");
scanf("%hd", &day);
for(i=0;i<value_num;i++)
{
printf("%2d番目の数値入力:", i+1);
scanf("%d", &value[i]);
}

fp=fopen("binary.dat", "wb");
if(fp==NULL) return 1;

fwrite(&year, sizeof(year), 1, fp);
fwrite(&month, sizeof(month), 1, fp);
fwrite(&day, sizeof(day), 1, fp);
fwrite(value, sizeof(value[0]), value_num, fp);
fclose(fp);

return 0;
}
0540デフォルトの名無しさん2007/10/01(月) 00:29:37

チョン、さっさと死ねや
0541 ◆4Jr51i3qWE 2007/10/01(月) 00:30:38
>>539
有難うございました。
0542デフォルトの名無しさん2007/10/01(月) 00:32:55

チョン、さっさと死ねや
0543デフォルトの名無しさん2007/10/01(月) 00:33:43

チョン、さっさと死ねや
0544デフォルトの名無しさん2007/10/01(月) 00:34:18
キョンかと思った俺はハルヒ厨
0545 ◆4Jr51i3qWE 2007/10/01(月) 00:56:01
2番目の問題もお願いします。

[1] 授業単元:コンピュータとプログラミング
[2] 問題文(含コード&リンク):
年月日(YYYY MM DD)と10個の整数値をキーボードから入力し、それにの値を
バイナリファイルに保存するプログラムを作成すること。それぞれの値の形は、
年(short),月(short),日(short),入力した整数値(int)とすること。

上記の問題で作成したファイルを読み込んで、内容をディスプレイに順番に表示するプログラムを作成する事。
[3] 環境
 [3.1] OS: Windows
 [3.3] 言語: C言語
[4] 期限:2007年10月01日01:55まで
[5] その他の制限:ポインタ・ファイル入出力迄はやっています。

連続になりますが、お手数掛けます。
0546デフォルトの名無しさん2007/10/01(月) 01:01:45
>>545
#include<stdio.h>

int main(void)
{
short year, month, day;
int i, value[10], value_num=sizeof(value)/sizeof(value[0]);
FILE *fp;

fp=fopen("binary.dat", "rb");
if(fp==NULL) return 1;

fread(&year, sizeof(year), 1, fp);
fread(&month, sizeof(month), 1, fp);
fread(&day, sizeof(day), 1, fp);
fread(value, sizeof(value[0]), value_num, fp);
fclose(fp);

printf("%d %d %d\n", year, month, day);
for(i=0;i<value_num;i++)
{
printf("%2d番目の数値:%d\n", i+1, value[i]);
}

return 0;
}
0547 ◆4Jr51i3qWE 2007/10/01(月) 01:04:48
ありがとうございます。
0548デフォルトの名無しさん2007/10/01(月) 02:05:28
[1] 授業単元:
[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4999.txt
[3] 環境
 [3.1] OS: windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 10月1日23:00まで
[5] その他の制限: よろしくお願いします
0549デフォルトの名無しさん2007/10/01(月) 02:28:59
>>548
キリ番げとw
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5000.txt
参考にしろってプログラムがひどすぎる。
減算、除算のところに副作用があるから修正したいならしといて。
0550デフォルトの名無しさん2007/10/01(月) 05:51:27
>>501, >>520 (1),(2),(3)

http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4996.c
0551デフォルトの名無しさん2007/10/01(月) 10:23:57
授業単元:C
問題文(含コード&リンク):
2000分を時間に換算するプログラムを作成しなさい
int min=2000;
実行画面
33時間20分です
0552デフォルトの名無しさん2007/10/01(月) 10:34:12
>>551
テンプレ書けハゲ
0553デフォルトの名無しさん2007/10/01(月) 10:37:25
>>551
#include<stdio.h>
int main(void){
int min=2000;
printf("%d時間%d分です",min==2000?33:0,min==2000?20:0);
return0;
}
0554デフォルトの名無しさん2007/10/01(月) 11:03:21
[1] 授業単元:独習Cによる自主勉強
[2] 問題文:下記コメント
[3] 環境
 [3.1] OS: windowsXP
 [3.2] コンパイラ名とバージョン:BCC5.5
 [3.3] 言語: C
[4] 期限:特に無し
[5] その他の制限:くだらない問題ですみません
/*任意の数(ただし32767個まで)のdouble型を入力でき、それらの値を入力の
たびにディスクファイルに書き込むプログラムを作成してください。この
ファイルの名前はvaluesとします。また、入力された値の個数を監視し、それを
countという名前のファイルに書き込むものとする*/
0555デフォルトの名無しさん2007/10/01(月) 11:04:57
int main(void)
{
FILE *fp1,*fp2;
int count=0;
double value;
char str[20];
if((fp1=fopen("values","wb"))==NULL){
printf("ファイルが開けません\n");
exit(1);}

if((fp2=fopen("count","wb"))==NULL){
printf("ファイルが開けません\n");
exit(1);}

do{
if((gets(str))==0){
printf("エラーが発生しました\n");
exit(1);}
if((value=atof(str))==0.0)break;

if(fwrite(&value,sizeof value,1,fp1)!=1){
printf("書き込みエラー\n");
exit(1);}
count++;
}while(count<32767);

if(fwrite(&count,sizeof count,1,fp2)!=1){
printf("書き込みエラー\n");
exit(1);}

fclose(fp1);
fclose(fp2);}
0556デフォルトの名無しさん2007/10/01(月) 11:06:16
って↑のコードを作ってコンパイルして実行したのですが
正常にファイルが出来ません。
0557デフォルトの名無しさん2007/10/01(月) 11:12:40
[1] 授業単元:
[2] 問題文(含コード&リンク):
[3] 環境
OS: WindowsL
コンパイラ名とバージョン: 言語:C
問題:台形の面積を求めるプログラムを作成しなさい
int a = 3;
int b = 4;
int h = 5;

実行画面
面積 = 17.50
0558557のスレ主です2007/10/01(月) 11:16:21
面積の上辺 aは3
下辺 bは4
高さ hは5です
0559デフォルトの名無しさん2007/10/01(月) 11:21:47
[1] 授業単元:
[2] 問題文(含コード&リンク):休み期間中に108問ある問題を終らせるには、毎日平均何問解けばよいか計算するプログラムを作成しなさい
int day = 29;
実行画面
3問:8日
4問:21日
0560デフォルトの名無しさん2007/10/01(月) 11:55:04
>>559
三つも問題くれて有難う
0561デフォルトの名無しさん2007/10/01(月) 11:57:19
>>557
#include<stdio.h>
int main(){
int a=3, b=4, h=5;
printf("面積=%lf",a==3&&b==4&&h==5?17.50:0);
return 0;
}
0562デフォルトの名無しさん2007/10/01(月) 12:03:26
[1] 授業単元:カプセル化
[2] 問題文(含コード&リンク): 下記のソースをカプセル化に。
[3] 環境
 [3.1] OS: XP
 [3.2] コンパイラ名とバージョン: VC
 [3.3] 言語: C++
0563デフォルトの名無しさん2007/10/01(月) 12:09:22
>>453です

>>486さん解答ありがとうございます。
質問なんですがこれいがいに#includeとか他に付け足す文字ってありますか…??
0564デフォルトの名無しさん2007/10/01(月) 12:33:15
>>563
ないから書いてないのだろう
0565デフォルトの名無しさん2007/10/01(月) 12:35:04
>>563
>486じゃないが、その課題で作成するのは関数だけなんだろ。
他につけたしちゃ拙いじゃないか。
0566 ◆vLIz8KOkPM 2007/10/01(月) 13:21:31

>>454の問題に対して、>>496の解答をいただいたのですが、
以下のエラー、バグがでます・・・
直していただけないでしょうか?お願いします


% gcc -o k13 k13.c
k13.c: 関数 `main' 内:
k13.c:89:
警告: 互換性のないポインタ型からの引数 1 個の `printf' を渡します
k13.c:91:
警告: 互換性のないポインタ型からの引数 1 個の `printf' を渡します
k13.c:92:
警告: 互換性のないポインタ型からの引数 1 個の `printf' を渡します
k13.c:93:
警告: 互換性のないポインタ型からの引数 1 個の `printf' を渡します
k13.c:94:
警告: 互換性のないポインタ型からの引数 1 個の `printf' を渡します
% ./k13
あなたの口座番号を入力して下さい:9012
暗証番号を入力して下さい:0123
鈴木一郎 様ですね.
引出し金額を入力して下さい:20000
預金残高は 518600 円です.
„$��„$��„$��„$��„$��„$��„$
��„$��„$��„$��„$��„$��„$��
あなたの口座番号を入力して下さい:^[[A^[[A
中断
%
0567デフォルトの名無しさん2007/10/01(月) 13:41:42
「fprintf()がprintf()に化けている」に一票。
0568 ◆vLIz8KOkPM 2007/10/01(月) 14:18:42
問題>>454
解答>>496

あと、

口座データの読み込み(1:ファイルから 2:初期値を使用)? :
口座データの保存(1:ファイルへ 2:保存しない)? :

この二つの入力が出来ないプログラムになっているのですが、どうすれば出来るようになりますか?
0569kiarano2007/10/01(月) 14:20:00
[1] 授業単元:
[2] 問題文(含コード&リンク): 次の関数が何をするプログラムか具体的な使い方を示して答えてください。

void q(int *a,int n){
int i,j;
int tmp;
 for(i=1;i<n;i++){
for(j=i;j>0 && a[j-1]>a[j];j--){
tmp=a[j];
a[j]=a[j-1];
a[j-1]=tmp;
}
}
}


[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語:C言語
[4] 期限: 2007年10月3日まで


0570デフォルトの名無しさん2007/10/01(月) 14:24:56
>>569
コンパイルできません
0571デフォルトの名無しさん2007/10/01(月) 14:29:24
[1] 授業単元: c言語
[2] 問題文(含コード&リンク): 下にあり
[3] 環境
 [3.1] OS: (Windows
 [3.2] コンパイラ名とバージョン: cc
 [3.3] 言語: C
[4] 期限: できるだけ早めに
[5] その他の制限: 特になし
組み合わせ(nCr)
コンビネーションを計算するcomb(n,r)を作成せよ

どうやるんですかね?
0572デフォルトの名無しさん2007/10/01(月) 14:29:29
>>569

ソートする関数
具体的な使い方
void q(int *a,int n){
int i,j,tmp;
for(i=1;i<n;i++){
for(j=i;j>0 && a[j-1]>a[j];j--){
tmp=a[j];
a[j]=a[j-1];
a[j-1]=tmp;
}}}
void main(){
int a[2]={0,1};
printf("%d %d\n",a[0],a[1]);
q(a,2);
printf("%d %d\n",a[0],a[1]);
}
0573デフォルトの名無しさん2007/10/01(月) 14:29:33
>>569
勘だと昇順ソート
0574デフォルトの名無しさん2007/10/01(月) 14:31:36
>>569
処理の内容はバボゥソート。
int a = {789, 32, 1, 66, 93, 892, 8475, 6, 29, 9};
q(a, sizeof(a) / sizeof(*a));
{
 int end = a + sizeof(a) / sizeof(*a);
 while(a != end) {
  printf("%d\n", *a++);
 }
}

って実際に動かしてみりゃわかるんじゃない?
0575デフォルトの名無しさん2007/10/01(月) 14:32:37
ぐはー、きで(←変換できない)かー。重複すまん。
0576デフォルトの名無しさん2007/10/01(月) 14:38:33
>>568
>この二つの入力が出来ないプログラムになっているのですが、どうすれば出来るようになりますか?
そういうロジックを書き足せば。

>>570
わざわざ途中の非表示文字までコピペせんでも。

>>569
その関数を呼ぶロジックを書けって事?
0577デフォルトの名無しさん2007/10/01(月) 14:55:58
>>571
#include<stdlib.h>
int comb(int n,int r){
if(n==0||r==0)return 1;
switch(rand()%3){
case 0:return n*comb(n-1,r-1)/r;
case 1:return (n>r?comb(n-1,r):0)+comb(n-1,r-1);
case 2:{int s=0;for(;n>=r;n--)s+=comb(n-1,r-1);return s;}
default:return 0;
}
}
0578デフォルトの名無しさん2007/10/01(月) 15:01:49
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク): おもしろいプログラムを作成し、提出せよ。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
 [3.3] 言語: C
[4] 期限: 10/2 14時まで
[5] その他の制限: 今までif,for,while,switchくらいしかやってませんが、特に制限といったものはないとのことです。
システム的におもしろいのではなくギャグ系のおもしろいです。
自分ではどうもおもしろいプログラムを作成できません、力をかしてください。
お願いします。
0579デフォルトの名無しさん2007/10/01(月) 15:15:27
何が面白ければ良いのか?ソースが工夫されているとか?内容が?
そんな曖昧な課題で明日の14時までって、今まで何しとったん?
05805782007/10/01(月) 15:25:43
内容です。教授が関西出身でお笑い好きのようで・・・・・・・。

先送りばかりして他の課題等に逃げてました。
僕が悪いんですが、どうか力をかしてください。
0581デフォルトの名無しさん2007/10/01(月) 15:43:22
>>578
7行プログラミングスレから拾ってきて,適当に識別子を変えればいいんでね?
0582デフォルトの名無しさん2007/10/01(月) 15:51:18
ギャグプログラムを作れって前に見た記憶があるような

渾身のギャグを考えて書き込めば?
誰かプログラムにしてくれるだろきっと
05835782007/10/01(月) 15:55:26
>>581
見てきましたが、言語が違うのか僕には何が書いてあるのかさっぱりでした。
まだはじめて間もないので・・・・・・力がなくてすいません。
05845782007/10/01(月) 15:59:26
>>582
どちらかというとプログラムできないというよりおもしろい物が思いつかないんです。
他の普通の課題は終わらせることができたんですけど
0585 ◆vLIz8KOkPM 2007/10/01(月) 16:05:51
>>576です
>>578
そのロジックがわからないんですが…
0586デフォルトの名無しさん2007/10/01(月) 16:09:51
>>578
#include<stdio.h>
#include<string.h>

int main(void){
const char *ptr, scenario[]={
"昨日、近所の $place 行ったんです。 $place 。 $lf "
"そしたらなんか人がめちゃくちゃいっぱいで座れないんです。 $lf "
"で、よく見たらなんか垂れ幕下がってて、 $event 、とか書いてあるんです。 $lf "
"もうね、アホかと。馬鹿かと。 $lf "
"お前らな、 $event 如きで普段来てない $place に来てんじゃねーよ、ボケが。 $lf "
" $event だよ、 $event 。 $lf "
"なんか親子連れとかもいるし。一家4人で $place か。おめでてーな。 $lf "
"よーしパパ $talk 、とか言ってるの。もう見てらんない。 $lf "
};
char *keyword[]={"$place", "$event", "$talk", "$lf"};
char *variant[]={"大学", "期末試験", "満点とるぞー", "\n"};
char buf[100];
int i, n;

ptr=scenario;
while(sscanf(ptr, "%s%n", buf, &n)>=1){
ptr+=n;
for(i=0;i<4;i++){
if(strcmp(buf, keyword[i])==0) break;
}
if(i<4) printf("%s", variant[i]);
else printf("%s", buf);
}

return 0;
}
0587デフォルトの名無しさん2007/10/01(月) 16:12:44
>>585
他人を騙るな。
05885782007/10/01(月) 16:17:02
>>585
僕は後半組なんですが、前半組はジャンケンを数回繰り返すプログラムが好評がよかったようです。
なぜか教授側のPCが不調で口頭で伝えられただけなので詳しくはわかりません。すいません。

でも、例にあげられたのは簡単な文章と選択肢がありそれによりボケがあったりツッコミがあったりするプログラムでした。




ロジックの意味がうまく把握できていないんですが、これでいいでしょうか?
0589デフォルトの名無しさん2007/10/01(月) 16:20:12
× 好評がよかった
○ 好評だった
05905782007/10/01(月) 16:22:06
>>589
頭悪くてすみません。
今後注意します。
05915782007/10/01(月) 16:27:31
>>586
ちゃんと表示されました。
ありがとうございます。
0592デフォルトの名無しさん2007/10/01(月) 16:53:50
>587間違えました…すみませんm(__)m

>>568です。
>>576
そのロジックがわからないんで、教えていただけないでしょうか?
0593デフォルトの名無しさん2007/10/01(月) 17:00:10
[1] 授業単元:データ構造とアルゴリズム1
[2] 問題文(含コード&リンク):次のads-01-hw.cppを完成させよ
seiseki.txt の中身は10人の学生の名前、数学と生物学の成績
出力は画面出力ではなく、ファイルに出力せよ。
関数 heikin は各学生の数学と生物学の成績の平均を求める。
seiseki.txt:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5003.txt
ads-01-hw.cpp:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5002.txt
出力結果:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5004.txt
[3] 環境 
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:Microsoft Visual Studio .NET 2003
 [3.3] 言語:C++
[4] 期限: 2007年10月3日10:00まで
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
関数
ポインタとアドレス
forループ
構造体
ファイルI/O
よろしくおねがいします。
0594デフォルトの名無しさん2007/10/01(月) 17:04:48
>>592
>そのロジックがわからないんで、教えていただけないでしょうか?
いやです。
0595デフォルトの名無しさん2007/10/01(月) 18:16:31
>>593
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5005.txt
0596 ◆vLIz8KOkPM 2007/10/01(月) 20:36:46
どなたか>>568をお願いします。期限が明日朝9時なんです…
0597デフォルトの名無しさん2007/10/01(月) 20:44:22
>>559
#include<stdio.h>

int main(int argc, char *argv[])
{
int day=29, question=108;

if(argc>=2) sscanf(argv[1], "%d", &day);
if(argc>=3) sscanf(argv[2], "%d", &question);

printf("%d問:%d日\n", question/day, day-(question%day));
if(question%day) printf("%d問:%d日\n", question/day+1, question%day);

return 0;
}
0598デフォルトの名無しさん2007/10/01(月) 20:48:02
>>556
異常なファイルの内容kwsk
0599デフォルトの名無しさん2007/10/01(月) 21:02:38
>>578
ネタを書くか、もしくは探して URL を…
#include<stdio.h>

int main(int argc, char *argv[]){
char *message[]={
"A「隣の空き地に囲いができたってね?」\nB「へー」\n",
"A : Do you know that fence was completed in the next vacant lot?\nB : Hey,really?!\n"
};
int choice=-1;

printf("0 か 1 を入力して下さい (0:日本語 1:English) :");
scanf("%d", &choice);

switch(choice){
case 0:
case 1:
printf("%s", message[choice]);
break;
default:
printf("\nERROR : Invalid number ! %d\n", choice);
}

return 0;
}
0600デフォルトの名無しさん2007/10/01(月) 21:04:15
>>596
わり。作ってアップすんの忘れてた。
>>494だそうなんで、入力をループで回すとこは入れてないよ。

http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5007.txt
0601デフォルトの名無しさん2007/10/01(月) 21:20:05
>>586
ソースコードがルー大柴でわろた
0602デフォルトの名無しさん2007/10/01(月) 22:09:52
>>595ありがとうございました。感謝です
0603 ◆vLIz8KOkPM 2007/10/02(火) 00:14:04
>>600
ありがとうございますm(__)mお陰様で大変助かりました。感謝しています。
0604デフォルトの名無しさん2007/10/02(火) 02:50:52
>>586
ギャルゲのスクリプトが作りたくなってきた
0605デフォルトの名無しさん2007/10/02(火) 12:41:42
[1] 授業単元:C言語
[3.1] OS(Windows)
3.2] bcc5.5
 [3.3] 言語: (C++)
[4] 期限:今日中
文字列aと文字列cを入力し
aに含まれる文字の数とaで最初にcが出てくる位置、最後にcが出てくる位置を
表示するプログラムを作成しなさい。
#include <stdio.h>
int str_src(char *,char);
int str_src2(char *,char);
int main(void)
{
char a[255],c;
printf("aを入力してください -> ");
scanf("%s",a);
printf("cを入力してください ->");
scanf(" %c",&c);
printf("%sの中に%cは%i個です\n",a,c,str_src(a,c));
printf("%s");
return 0;
}
int str_src(char *a,char c)
{
int count=0;
int i;
for(i=0; a[i]!='\0'; ++i)
if(a[i] == c) ++count;
return count;
}
ここまではやったのですが残りわからないのでお願い致します。
0606デフォルトの名無しさん2007/10/02(火) 12:46:46
文字列cと書いてあるが、ソースみると一文字だけど、一文字の方でいいんだよな?
0607デフォルトの名無しさん2007/10/02(火) 12:49:18
>>606
あ、すみません文字列aだけでcは文字です。
0608デフォルトの名無しさん2007/10/02(火) 13:43:25
>>605>>607
str_srcでカウントして何が楽しいのか分からなかったから
やりかけのソース無視した。

http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5010.txt
0609デフォルトの名無しさん2007/10/02(火) 13:46:49
ちょっと訂正
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5011.txt
06106072007/10/02(火) 14:03:01
>>609
本当にありがとうございました。
助かりました。
0611デフォルトの名無しさん2007/10/02(火) 14:50:45
[1] 授業単元: 総合
[2] 問題文:じゃんけんプログラムを作りなさい。(あいこも作ること)
[3] 環境
 [3.1] OS:WindowsXP
 [3.2] BorlandC++
 [3.3] 言語:C++
0612デフォルトの名無しさん2007/10/02(火) 15:35:08
じゃんけん以外に特に指定無し?
0613デフォルトの名無しさん2007/10/02(火) 16:16:44
>>611
普通に作るつもりだったのに、魔がさした
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5012.txt
0614デフォルトの名無しさん2007/10/02(火) 16:46:16
判定なげー
0615デフォルトの名無しさん2007/10/02(火) 17:08:20
同じく判定みて吹いた。
■ このスレッドは過去ログ倉庫に格納されています