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


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

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



1 名前:デフォルトの名無しさん mailto:sage [2008/01/14(月) 22:55:25 ]
あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他や発言はスルーの方向で。

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

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

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

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

181 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 20:36:50 ]
>>176
引数に1以上与えればなんか出るはずなんだがな

182 名前:デフォルトの名無しさん [2008/01/17(木) 20:40:12 ]
>>181
すみません、こちらのミスでした。
ちゃんと実行できました。
ありがとうございました

183 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 20:42:47 ]
>>179
バッファオーバーフローのテスト
コンパイラが自動変数をどこに配置するかによっても結果が変わるので
必ずしも何かが起こるとは限らない

/* 最適化をオフにしてコンパイルしてね */
#include <stdio.h>

int main(void){
int x=123;
int y[1]={456};
int z=789;

printf("x=%d z=%d\n", x, z);
y[1]=0;
printf("x=%d z=%d\n", x, z);

return 0;
}

184 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 20:47:55 ]
point[100]なんだからiが100になっちゃいかんだろ。

185 名前:183 mailto:sage [2008/01/17(木) 20:50:44 ]
>>177
i が pointn の数値以上になるということは
//後略
の部分に問題がある可能性が高いよ


>>179
ごめん勘違いしてた

186 名前:167 mailto:sage [2008/01/17(木) 20:52:22 ]
>>178
最小に纏め上げるのが困難なもので…。
>>184
それでした。直した結果完璧に動きます。恥ずかしすぎる…。

みなさんご迷惑おかけしました。すれ汚しすみません。ありがとうございました。

187 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 20:59:58 ]
別にまとめる必要すらないだろ。
まあ大方、全体を見せたくないとか言うんだろうが

188 名前:デフォルトの名無しさん [2008/01/17(木) 21:13:50 ]
>>167
pointn = (int)((rand()/(double)(RAND_MAX+1.0f))*100);//コア数
これだろ、、おかしいの。

189 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 21:19:01 ]
>>174
文字列の式は固定ではなく、手動での入力なのです・・・。
自分の説明が不足していました、すみません。
あげていただいたプログラムを参考に、自分でももう少し頑張ってみます。



190 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 21:23:10 ]
>>188
それ自体は0-99の乱数を発生させるだけで、おかしくなくね?
キャストはなくてもいいけど、あってまずいもんでもないし。

191 名前:デフォルトの名無しさん [2008/01/17(木) 21:33:53 ]
>>190
ぉぉぅ、たしかに普通に見間違えた。
>>167 なんでもないから>>188は普通にスルーしてくれ。
かき乱してすまん。

192 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 21:34:26 ]
これだから情報を小出しにする奴は嫌いだ。。
どうせ原因は他にあるのに。

193 名前:デフォルトの名無しさん [2008/01/17(木) 21:39:10 ]
自分でここに原因があるって思って見つけられないときは
大方別のところに原因がある。
長かろうが短かろうが、主題さえはっきりしてれば別段読み解くのは難しくない。

てことで>>167ソースplz

194 名前:デフォルトの名無しさん mailto:sage [2008/01/17(木) 21:41:21 ]
もう終わってるんだけどw

195 名前:デフォルトの名無しさん [2008/01/17(木) 23:56:16 ]
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5794.txt
[3] 環境
 [3.1] OS:Windows xp
 [3.2] コンパイラ名とバージョン:VisualStudio2005
 [3.3] 言語: C
[4] 期限:1月22日
[5] その他の制限: 特にないです


196 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 00:07:14 ]
【時間切れ】 (1/17)
>>151

【未解決問題】
>>164 1/18 12:00
>>142 1/18 >>172(手動入力)
pc11.2ch.net/test/read.cgi/tech/1199515728/824 1/18

>>86 1/22
>>195 1/22
pc11.2ch.net/test/read.cgi/tech/1199515728/229 1/31
>>79 無期限
>>144 無期限 問題文>>148

197 名前:デフォルトの名無しさん [2008/01/18(金) 00:07:39 ]
>インターネット上でファイルの転送に利用されるプロトコルは?(20点)
>[1] FTP, [2] POP, [3] PPP, [4] SMTP << 1
>正解です。

これってPOP&SMTPもファイル転送で使わね?添付ファイルてきな意味で。

198 名前:デフォルトの名無しさん [2008/01/18(金) 00:13:10 ]
>>144は最小二乗法の式作ってとくところからだな

199 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 00:24:39 ]
>>197




200 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 07:26:58 ]
>>pc11.2ch.net/test/read.cgi/tech/1199515728/824 
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5795.cpp


201 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 08:06:12 ]
>>164
#include <stdio.h>
#include <stdlib.h>
int cmp( const void * l, const void * r ) { return *((int*)l)-*((int*)r); }
int main( int argc, char ** args ) {
int m, n, i, * data;
printf( "input m :" ); scanf( "%d", &m );
printf( "input n :" ); scanf( "%d", &n );
data = ( int * )calloc( m, sizeof( int ) );
if ( ! data ) { puts( "no memory."); exit(1) ; }
for ( i = 0; i < m; ++i ) scanf( "%d", &data[ i ] );
qsort( data, m, sizeof( int ), cmp );
for ( i = 0; i < n; ++i ) {
int * p, q;
printf( "search for >" ); scanf( "%d", &q );
p = bsearch( &q, data, m, sizeof( int ), cmp );
if ( p ) printf( "%d found at %d, %d\n", q, 1 + ( p - data ), data[ ( p - data ) ] );
else printf( "not found.\n" );
}
free( data );
return 0;
}


202 名前:デフォルトの名無しさん [2008/01/18(金) 10:28:31 ]
[1] 授業単元:プログラミング
[2] 問題文:問題@
      商品番号・商品名・個数・単価を対象とする構造体の配列を利用し、
      データを入力して、一覧表を表示するプログラムを作りなさい。ただし、
      各データごとに金額を、最後に合計金額を出しなさい。

      問題A
      上の問題の構造体の配列を利用し、データを入力した後、商品番号を
      並び替えを行い、その結果を一覧表として表示するプログラムを
      作りなさい。

[3] 環境
 [3.1] OS: (WindowsVISTA)
 [3.2] コンパイラ名とバージョン: (borland)
 [3.3] 言語: (C)
[4] 期限: ■■緊急■■本日1月18日正午まででお願いします。
[5] その他の制限: 特にありません。

203 名前:デフォルトの名無しさん [2008/01/18(金) 12:42:14 ]
[1] 授業単元:プログラミング
[2] 問題文:文字列を逆順にコピーする関数xcopyをポインタを用いて作り、確認のためのプログラムを作りなさい。ただし、xcopy(char*to,char*from)とします。なお、対象とするデータは通常の英数字とします。
[3] 環境
 [3.1] OS: (Windows VISTA)
 [3.2] コンパイラ名とバージョン: (borland)
 [3.3] 言語: (C)
[4] 期限: 1月18日
[5] その他の制限:

前102代目に書き込んだんですが見れなくなってしまったのでもう一度お願いします。

204 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 12:50:39 ]
>>203
昔のスレからの拾い物

700 名前:デフォルトの名無しさん[sage] 投稿日:2007/12/06(木) 20:47:06
[1] 授業単元:C言語
[2] 問題文

要素数がnoであるint型の配列v2の並びを逆順にしたものを配列v1に格納する関数、
void intary_rcpy(int v1[],const int v2[],int no) {/…/}
を作成せよ

[3] 環境
[3.1] OS:Windows XP
[3.2] VS2005
[3.3] 言語:C++
[4] 期限: 12月7日(金)の午前中まで
よろしくお願いします

702 名前:デフォルトの名無しさん[sage] 投稿日:2007/12/06(木) 21:00:46
>>700
#include <algorithm>
void intary_rcpy(int v1[],const int v2[],int no){std::reverse_copy(v2, v2+no, v1);}

205 名前: ◆vLIz8KOkPM [2008/01/18(金) 12:54:05 ]
[1] プログラミンぐ演習
[2] kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5798.txt
[3.1] Linux
[3.2] gcc
[3.3] C言語
[4] 今日15時まで

エラーの内容がわかりません…どなたか修正してください…

206 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 12:56:36 ]
>>203
void xcopy(char *to, char *from)
{
char *p = from;
while(*p) p++;
while(p--!=from) *to++ = *p;
*to = '\0';
}


207 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 13:54:06 ]
>>205
とりあえず その30行目を穴が開くまで読み返せ



new[ length ] = ’\0’;
single quotationが全角だ

208 名前:デフォルトの名無しさん [2008/01/18(金) 14:32:38 ]
[1] 授業単元: プログラミング基礎
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5799.txt
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限: [2008年01月18日23:59まで](本日中)
[5] その他の制限:

B_1は自力でいけましたが2に手が出ません;

209 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 16:20:22 ]
>>208 B_2
#include <stdio.h>
#define N 20

void place_queen(int *x, int n, int k)
{
    int i, j;
    if(k == n){
        for(i = 0; i < n; i++)
            printf("%d ", x[i]);
        putchar('\n');
        return;
    }
    for(i = 0; i < n; i++){
        for(j = 0; j < k; j++)
            if(i == x[j] || k - j == i - x[j] || k - j == x[j] - i)
                break;
        if(j == k){
            x[k] = i;
            place_queen(x, n, k + 1);
        }
    }
}

int main(void)
{
    int n, x[N];
    printf("Input n : ");
    scanf("%d", &n);
    place_queen(x, n, 0);
    return 0;
}



210 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 16:43:55 ]
>>208
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5800.txt

211 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 18:13:00 ]
>>208
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5801.txt

212 名前:211 mailto:sage [2008/01/18(金) 18:20:51 ]
>>208
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5802.txt
ごめん、こっちで。

213 名前:208 [2008/01/18(金) 21:00:56 ]
みなさんありがとうございます><;
参考にさせていただきました。非常に助かります

申し訳ないのですが、
もしよろしかったらこちらの方もお願いできませんか?
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5803.txt

214 名前:デフォルトの名無しさん [2008/01/18(金) 22:01:12 ]
[1] 授業単元: プログラミング中級
[2] 問題文(含コード&リンク):random1.txt、random2.txtという名前の2つのファイルを
作成し、それぞれに0〜100の範囲の乱数(整数)を20個ずつ書き込みなさい。
これら2つのファイルの内容を1行ずつ比較し、大きいほうの数をmax.txtに
書き込みなさい。
[3] 環境
 [3.1] OS:XP
 [3.2] コンパイラ名とバージョン: わかりません。
 [3.3] 言語: C++
[4] 期限:無期限ですが、なるべく早く知りたいです。


215 名前:214 [2008/01/18(金) 22:02:59 ]
途中まではやってみました・・

#include<stdio.h>
#include<stdlib.h>

int main(void)
{
FILE *fout, *fout2, *fout3, *fin, *fin2;

int buf,buf2;
char filename2[]="random1.txt";
char filename3[]="random2.txt";
char filename4[]="max.txt";
int i;

printf("ファイルrandom1.txtを作成しました。\n");
printf("ファイルrandom2.txtを作成しました。\n");
printf("ファイルmax.txtを作成しました。\n");


216 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 22:03:22 ]
>>213
良さそうな教授だなーとちょっと羨ましく思った。そんな俺は非情報学部。

217 名前:214 [2008/01/18(金) 22:03:42 ]
続きです

fout=fopen(filename2,"w");
srand(time(NULL));
for(i=0;i<20;i++){
buf=rand()%101;
fprintf(fout,"%d\n",buf);
}

fout2=fopen(filename3,"w");
for(i=0;i<20;i++){
buf2=rand()%101;
fprintf(fout2,"%d\n",buf2);
}

fin = fopen(filename2, "r");
if(fin == NULL){
printf("%dをオープンできません\n", filename2);
exit(1);
}

218 名前:デフォルトの名無しさん [2008/01/18(金) 22:07:50 ]
[1] 授業単元:CプログラミングT
[2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5805.txt
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:分かりません
 [3.3] 言語:C++
[4] 期限:2008年1月19日 09:00
[5] その他の制限:特にありません
よろしくお願いします!

219 名前:214 [2008/01/18(金) 22:08:01 ]
fin2 = fopen(filename3, "r");
if(fin2 == NULL){
printf("%dをオープンできません\n", filename3);
exit(1);
}

fout3=fopen(filename4,"w");
while(1){
if (fscanf(fin,"%d",buf)==EOF) break;
if (fscanf(fin2,"%d",buf2)==EOF) break;

if(buf>buf2){
fprintf(fout3,"%d\n",buf);
}
else fprintf(fout3,"%d\n",buf2);
}

fclose(fout);
fclose(fout2);
fclose(fin);
fclose(fin2);
fclose(fout3);

return 0;
}



220 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 22:16:02 ]
>>214 すこしせこいがこれじゃだめかね
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void) {
FILE *fran1, *fran2, *fmax;
char filename1[] = "random1.txt";
char filename2[] = "random2.txt";
char filename3[] = "max.txt";
int i, buf1, buf2;
if ((fran1 = fopen(filename1, "w")) == NULL ||
(fran2 = fopen(filename2, "w")) == NULL ||
(fmax = fopen(filename3, "w")) ==NULL) {
printf("ファイルが作れません\n");
return -1;
}
printf("ファイルrandom1.txtを作成しました。\n");
printf("ファイルrandom2.txtを作成しました。\n");
printf("ファイルmax.txtを作成しました。\n");
srand(time(NULL));
for (i = 0; i < 20; ++i) {
buf1 = rand()%101;
buf2 = rand()%101;
fprintf(fran1, "%d\n", buf1);
fprintf(fran2, "%d\n", buf2);
fprintf(fmax, "%d\n", (buf1 >= buf2) ? buf1 : buf2);
}
fclose(fran1);
fclose(fran2);
fclose(fmax);
return 0;
}

221 名前:デフォルトの名無しさん [2008/01/18(金) 22:30:26 ]
れいぷれいぷ

222 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 22:35:46 ]
長くなるんならアップロードしろ

223 名前:デフォルトの名無しさん [2008/01/18(金) 22:36:53 ]
すいません
丸投げじゃないんですが、
どこで聞いてもわからないのでわかるかたいたらおねがいします・・

”数値を文字列として入力して、一桁ずつを配列にいれて和・差・積を出す”
って問題で、ここでプログラム作ってもらったんですがわかんないとこがあって、、

↓これ、積の計算らしいんですけどどういう意味ですか(∵)?

int i, j, carry;

// 最大100桁になるので2N桁を0に初期化
for( i = 0 ; i < 2 * Max_Length ; i++ ) a[i] = 0;

for( i = 0 ; i < Max_Length ; i++ ) {
carry = 0;
for( j = 0 ; j < Max_Length ; j++ ) {
a[i+j] += b[i] * c[j] + carry;
carry = a[i+j] / 10;
a[i+j] -= carry * 10;

詳しく説明できるかたいたらお願いします、、


224 名前:デフォルトの名無しさん [2008/01/18(金) 22:37:47 ]
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5806.txt
[3] 環境
 [3.1] OS:Windows xp
 [3.2] コンパイラ名とバージョン:VisualStudio2005
 [3.3] 言語: C 言語
[4] 期限:1月22日
[5] その他の制限: 



225 名前:214 [2008/01/18(金) 22:43:53 ]
>>220さん
ありがとうございます。
ただ、
fprintf(fmax, "%d\n", (buf1 >= buf2) ? buf1 : buf2);
がよくわかりません。。
?や:の使い方習っていなんです。
bufとbuf2を比較して表示するところがどうしてもできません。


226 名前:220 mailto:sage [2008/01/18(金) 22:47:35 ]
if (buf1 >= buf2) {
fprintf(fmax, "%d\n", buf1);
} else {
fprintf(fmax, "%d\n", buf2);
}
こういうこと。使い方は三項演算子でぐぐれ。

227 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 22:47:48 ]
>>225
if (buf1 >= buf2)
fprintf(fmax, "%d\n", buf1);
else
fprintf(fmax, "%d\n", buf2);

228 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 23:05:12 ]
>>223
情報を小出しにしない方がいい(・3・)YO
筆算と同じ手順と考えたらいい


229 名前:デフォルトの名無しさん mailto:sage [2008/01/18(金) 23:43:09 ]
[1] C言語入門
[2] 文字列の入れ替え
[3] 環境
 [3.1] Windows XP
 [3.2] bcc55
 [3.3] C言語
[4] 1週間後
[5] 最初と最後の文字を入れ替える

動作例
文字を入力しる:12345
52341

お願いします。



230 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 00:04:48 ]
【時間切れ】 (1/18)
>142 >202 >213 ? 

【未解決問題】
>>218 1/19 9:00

>>86 1/22
>>195 1/22
>>224 1/22
>>229 1/25
pc11.2ch.net/test/read.cgi/tech/1199515728/229 1/31
>>79 無期限
>>144 無期限 問題文>>148

231 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 00:05:09 ]
[1] 授業単元:プログラミング
[2] 問題文:
グレゴリウス暦の定義を利用して入力された日は何曜日か計算しなさい
西暦1年1月1日は月曜日とする
1年は通常365日ですが閏年は366日
4で割り切れる年は閏年
100で割り切れる年は閏年ではない
400で割り切れる年は閏年
[3] 環境
 [3.1] OS:Windows xp
 [3.2] コンパイラ名とバージョン:VisualStudio2005
 [3.3] 言語: C
[4] 期限:1月21日
[5] その他の制限:
変数名、関数名の命名規約を作成
goto文は使用しない
開発途中でのreturn  プログラム途中でのexitはしない事
よろしくお願いします。

232 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 00:05:10 ]
142ですが、課題のほうは一応どうにかなったので報告。
取り組んでいただいた方、ありがとうございました。


233 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 00:09:09 ]
>>218
/* 適切なプリプロセッサ */
#define NAMEMAX 10
#define BIRTHMAX 8
#define N 10
/* Record型構造体の定義 */
typedef struct recoord {
char personal[NAMEMAX], birth[BIRTHMAX];
double height, weight;
}Record;
/* outputData関数の定義 */
void outputData(int n, Record *r)
{
printf("%d人目の出力\n", n);
printf("名前は\t\t%s\n", r[n].personal);
printf("生年月日は\t%*s\n", BIRTHMAX, r[n].birth);
printf("身長は\t\t%4.1lf\n", r[n].height);
printf("体重は\t\t%3.1lf\n", r[n].weight);
}

/* calcBMI関数の定義 */
void calcBMI(int n, Record *r)
{
printf("%d人目のBMIは\t%4.2lf\n", n+1, r[n].weight/pow(r[n].height/100, 2.0));
}

234 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 00:13:14 ]
>>231
#include<stdio.h>
int weekday(int y,int m,int d){
if(m<3)y--,m+=12;
return (y+y/4-y/100+y/400+(m*13+8)/5+d)%7;
}
int main(void){
int y,m,d;
printf("年 = ");scanf("%d",&y);
printf("月 = ");scanf("%d",&m);
printf("日 = ");scanf("%d",&d);
printf("日 月 火 水 木 金 土\n%*s↑\n",weekday(y,m,d)*3,"");
return 0 ;
}

235 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 00:17:22 ]
>>234
問題文見る限りツェラーの公式は使えん希ガス

236 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 00:23:22 ]
>>235
>変数名、関数名の命名規約を作成
って書いてあるくらいだからいいんじゃない?

237 名前:デフォルトの名無しさん [2008/01/19(土) 00:25:28 ]
[1] 授業単元:C入門
[2] 問題文 英文の文字列を入力した場合,文字数・単語数・文章数を求めるプログラムを作成せよ。
英文中の特殊文字は(,(カンマ).(ピリオド)!(イクスクラメーション)?(クエスチョンマーク))のみとする。単語の間には1つ以上(2つ以上でも可)のスペースが入れるものとする。
文章の最後には必ず .(ピリオド)!?のどれかが単独で使われる。,(カンマ)や.(ピリオド)!?の後にスペースが入る可能性があるが前にはスペースは入らないものとする。
省略につかう .(カンマ)は今回はないものとする。

 入力に関して
   キーボードから,文字列を一行で入力
 出力に関して
   文字数・単語数・文章数をそれぞれスペース1つあけて1行で出力(+改行)[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:Study C
 [3.3] 言語:C
[4] 期限:1月22日14:00
[5] その他の制限:一年なのでそこまで難しいのはつかわずにお願いします。


238 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 00:28:32 ]
[1] C言語
[2] 500パターン(test000〜test499)のファイルを用いてそれらのハッシュ値を求めるプログラム。
(ファイルを読み込む際、手動で500パターン打ち込むのは大変なので
そこもプログラムで自動的に次々とファイルを読み込むようにしていただけたら嬉しいです)

[3]
 [3.1]Mac OS X
 [3.2]よくわかりません
 [3.3]C
[4]1/19(土)
[5]特になし


よろしくお願いします。

239 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 00:29:35 ]
>>236
>西暦1年1月1日は月曜日とする
ってのが生きてこなくなるんじゃね?
まあどうでもいいかもしれんが



240 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 00:31:45 ]
>>229
#include<stdio.h>
int main(void){
char buf[0x100];
int i;
printf("文字を入力しる:");
fgets(buf,sizeof(buf),stdin);
for(i=0; buf[i]; ++i)if(buf[i]=='\n')break;
putchar(buf[i-1]);
buf[i-1] = '\0';
printf("%s",buf+1);
putchar(buf[0]);
return 0;
}
表示上では入れ替えてると思う

241 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 00:38:23 ]
>>195
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5807.cpp

データはこんな感じで
静止画の圧縮技術と最も関係深いものはどれ?
[1] ITU-T H.261,[2] JPEG,[3] MIDI,[4] MPEG
2
10
131-45=53が成り立つのは何進法のときか?
[1] 3, [2] 7, [3] 11, [4] 13
2
10

242 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 00:46:55 ]
>>239
それを生かすソース頼む

243 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 00:47:20 ]
>>240
ありがとうございます。
ただ、課題の紙にヒントみたいのがあって
char a ='X' ;
char b ='Y' ;
char c ;

c = a
a = b
b = c
って代入していく方法があるよって書かれてました。
今見つけたので前のレスで書けなくてすいませんでした。
でも教えてくれたものも正しく動くので、これでいこうと思います。
もし、お暇でしたら代入するヒントを活用したものも考えてもらえると嬉しいです。

244 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 00:53:38 ]
>>243
#include <stdio.h>
int main () {

char in[1024], c;
int i;
scanf("%s", in);

for (i = 0; i < sizeof(in) && in[i] != '\0'; ++i);

c = in[0];
in[0] = in[i-1];
in[i-1] = c;

printf("%s\n", in);
return 0;
}


245 名前:デフォルトの名無しさん [2008/01/19(土) 00:53:51 ]
>>237
こんなんで良いか?
#include <stdio.h>

#define MAX 1024

int main()
{
int c,i=0,j;
char ary[MAX] = {'\0'};
while((c = getchar())!='\n' && i < MAX){
if(c != '.' && c != ','&& c != '!'&& c != '?')
ary[i] = c;
i++;
}
for(j = 0; j < i;j++){
if(ary[j] != ' ')
putchar(ary[j]);
else if(ary[j] == ' ')
putchar('\n');
}
return 0;
}

246 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 00:59:26 ]
>>242
ソースじゃないけど、俺が考えたのは入力した年月日と1年1月1日
との日数の差を出してから7で割って割り切れたら月曜、1余ったら火曜、、、
ってやるのかなー?と


247 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 01:01:16 ]
>>243
putchar(buf[i-1]);
buf[i-1] = '\0';
printf("%s",buf+1);
putchar(buf[0]);
を削除して、char c;を追加
c = buf[i-1];
buf[i-1] = buf[0];
buf[0] = c;
printf("%s",buf);


248 名前:231 mailto:sage [2008/01/19(土) 01:11:54 ]
>>234
ありがとうございます
結構早くできてて驚きました
>>235
そうなんですか?3日前から勉強しだしたんでよくわかりません
ツェラーの公式以外だとどんな感じになるんでしょうか?

249 名前:デフォルトの名無しさん [2008/01/19(土) 01:22:04 ]
>>245 つくっていただいてありがとうございます。
英文の文字列を入力した場合,文字数・単語数・文章数を表示する部分お願いします



250 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 01:34:38 ]
>>248
ゴリ押しでやるとこんな感じ。

#include <stdio.h>

int main () {

int y, m, d, sum = 0;
int m_array[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
char *week[7] = {"日", "月", "火", "水", "木", "金", "土"};
printf("input (e.g. ****/**/**)\n>>");
scanf("%d/%d/%d", &y, &m, &d);

if (m > 2 && y % 4 == 0 && (y % 100 != 0 || y % 400 == 0)) {
++sum;
}

for (m -= 2; m >= 0; --m) {
sum += m_array[m];
}

--y;

sum = sum + y * 365 + y / 4 - y / 100 + y / 400 + d;
printf("%s曜日", week[sum%7]);
return 0;
}


251 名前:231 mailto:sage [2008/01/19(土) 01:58:56 ]
>>250
あ、多分それだと思います
こんな時間につくってもらってホントありがとうございます

252 名前:デフォルトの名無しさん [2008/01/19(土) 02:04:54 ]
>>237
なんか作っててめんどくさくなった
#include <stdio.h>

#define MAX 1024

int main()
{
int c,i=0,j,k,word=0,letter=0,wnum=0;
char ary[MAX] = {'\0'};
while((c = getchar())!='\n' && i < MAX){
if(c == '.' || c == '!'|| c == '?')
letter++;
if(c != '.' && c != ','&& c != '!'&& c != '?')
ary[i] = c;
if(c ==' ' && i>0 ){
k = i -1;
if(c ==' ' || ary[k] == '!'|| ary[k] == '?')
word++;
} i++; }
for(j = 0; j < i;j++){
if(ary[j] != ' '){
putchar(ary[j]);
wnum++;
}
else if(ary[j] == ' ')
putchar('\n');
}
printf("\n文字数=%d 単語数=%d 文章数=%d \n",wnum,++word,letter);
return 0;
}


253 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 04:17:00 ]
>>161
当方で確認した環境は WindowsXP, 処理系は cygwin(gcc 3.4.4) です。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5808.txt
fgets(), realloc(), strcat() を使いました。

254 名前:211 mailto:sage [2008/01/19(土) 08:02:26 ]
>>213
出勤前のお遊び。
追加するのはいいけど、ちゃんとテンプレで。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5812.txt

255 名前:デフォルトの名無しさん [2008/01/19(土) 08:08:43 ]
>>233
解決しました,ありがとうございます!

256 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 09:32:16 ]
>>224
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5813.txt

データの形式が解らなかったので一行に1つとしてある。
ファイル名はコマンドラインから与える形にした。
あと、stdlib.hをインクルードし忘れてたので追加して。

257 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 11:11:17 ]
【質問テンプレ】
[1] 授業単元: 基礎プログラミング
[2] 問題文(含コード&リンク):
入力された値nに対して、f(1)=f(2)=1、f(n)=f(n-1)+f(n-2)となるフィボナッチ数f(n)を表示するプログラミングを再帰を用いて作成せよ。
そのとき、関数fが呼ばれた回数をカウントして表示せよ。n=3,4,…,10のときにそれぞれ関数fが何回呼ばれたか調べよ。
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc 
[3.3] 言語:C
[4] 期限: できれば1月20日まで
[5] その他の制限:特にないと思われるけど。とりあえず再帰関数・構造体のところなので。

よろしくお願いします。

258 名前:デフォルトの名無しさん [2008/01/19(土) 11:34:03 ]
>>256
ありがとうございます。
ファイルはこれです。kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5814.txt

259 名前:デフォルトの名無しさん [2008/01/19(土) 11:43:10 ]
画像のピクセル間ごとの輝度を取得して、配列に格納するようなプログラム教えていただけませんか?
例えば100*100の画像なら、x[0][0]に座標0,0の輝度が格納されていくようなものです。



260 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 11:44:34 ]
>>259
マルチ。

261 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 11:52:57 ]
>>257
#include <stdio.h>
int call_count = 0;
int f(int n)
{
call_count++;
if(n == 1 || n == 2)
return 1;
else
return f(n - 1) + f(n - 2);
}
int main()
{
int n;
for(n = 3 ; n <= 10 ; ++n){
call_count = 0;
printf("f(%d) = %d\t(call count: %d)\n", n, f(n), call_count);
}
return 0;
}

262 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 12:22:02 ]
【質問テンプレ】
[1] 授業単元: 置き換え方ステガノグラフィ
[2] 問題文(含コード&リンク):
100*100のbmp画像を4つの50*50のブロックにわけ
各ブロックの輝度を計算し、左上からABCDとする。
(a)A>Bのとき0 B>Aのとき1とし
(b)C>Dのときは0 D>Cのときは1とする

仮に(a)=1,(b)=0という出力が得たとし
ここで入力値(a')=0,(b')=1とするとき
ブロック毎の輝度を調節し、画像を出力しなさい。
また再度計算させ出力が(a)=0,(b)=1として得られること

ここでの輝度計算は、(r*0.299)+(b*0.587)+(g*0.114)を使いなさい

[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン:Visual C++ 2005
 [3.3] 言語: C++
[4] 期限:1月21日
[5] その他の制限:無制限

263 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 13:10:33 ]
>>262
bmpの読み込みってMFCのCImageとか使って書くの?

264 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 13:27:59 ]
>>263
使っても平気です。


265 名前:デフォルトの名無しさん [2008/01/19(土) 13:50:23 ]
[1] 授業単元:プログラミング入門
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5803.txt
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C言語
[4] 期限: 今日中

266 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 14:16:14 ]
>>265
>>254

267 名前:265 mailto:sage [2008/01/19(土) 14:17:59 ]
>>266
見落としてました;
ありがとうございます

268 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 16:22:21 ]
[1] 授業単元:プログラミング初級
[2] 問題文(含コード&リンク):名前(char)、身長(double)、体重(double)、視力(視力構造体)これらのデータをメンバとする構造体を定義し、入力された表示を行うプログラムを作成してください。
入力件数は、最大5件で、名前は19文字までの入力とし、範囲外だったならばエラーメッセージ(Sorry. Input less than 20 characters.)を表示し再入力して下さい。名前に"END"が入力されたときは入力終了とします表示は身長で昇順にソートして出力して下さい
また身長、体重は、小数点第以下一位までの表示とします。視力は、小数点以下第三位までの表示とします
出力の幅は、名前が19文字文、その他は5文字分で指定してください
視力は右(double)、左(double)をメンバとする構造体で扱って下さい
1件分の入力はibput_data()で、表示はdisplay_data()で、ソートはsort_data()でと処理を関数に分けて行ってくださ
名前入力の最初に"END"が入力された場合は、その旨のメッセージ(Input data is nothing!)
を出力してください
[3] 環境
 [3.1] OS : windows
 [3.2] コンパイラ名とバージョン: Visual C++ 2005
 [3.3] 言語: C言語
[4] 期限:1月21日

269 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 20:29:14 ]
宿題じゃないと駄目?



270 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 20:44:36 ]
>>262
こんなんでいい?
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5815.txt

271 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 20:46:49 ]
>>269
速攻で答えてやんよ
 ∧_∧
 ( ・ω・)=つ≡つ
 (っ ≡つ=つ
 /   ) ババババ
 ( / ̄∪

272 名前: ◆8QYSceiIsU [2008/01/19(土) 21:04:42 ]
1] 授業単元:プログラミング
[2] 問題文(含コード&リンク)

適当な数字を与えてその数だけ「<」を使いそれに対応する「>」の例を全て表示するプログラムを作れ


2を与えた場合
<<>>
<><>

3を与えた場合
<<<>>>
<<>><>
<<><>>
<><><>

と表示する

[3] 環境
 [3.1] OS:XP
 [3.2] コンパイラ名とバージョン:cygwin
 [3.3] 言語:C
[4] 期限:2008/01/20(日)

お手数ですが、よろしくおねがいします

273 名前:shogo [2008/01/19(土) 21:11:56 ]
【質問テンプレ】
1 西暦1868年から2007年までの年号を入力して和暦に変更して出力するプログ
 ラムを作りなさい。(10点)
 例 入力 1868  出力 明治元年
      2007     平成19年
2 整数配列が–32768から32767の範囲の数しか扱えないとしたとき、10桁の整数同士
 の足し算を行うプログラムを作りなさい。(10点)
3 3桁の整数の値を入力していき、−9999が入力されたところで、それまでに入力
 された数の個数と合計を整数で、平均を浮動小数点数で出力するプログラムを作りなさ
 い。(10点)
4 3つの文字列”Happy”と“New”と“Year”をつないで1つの文字列として出力する
 プログラムを作りなさい。(10点)
5 学籍番号、氏名、出席からなる10人分のデータがある。出席の悪いものから並び替
 えて表示するプログラムを作りなさい。(10点)
 例
 BA180002 山田太郎 70
 BA170001 石田次郎 60
 データは、適当なものを各自用意して入力すること。
 

274 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 21:19:39 ]
>>272
3を与えた時、<><<>>は含まないの?

275 名前: ◆8QYSceiIsU [2008/01/19(土) 21:23:05 ]
>>274
<><<>>は含みません!

276 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 21:25:58 ]
>>275
理由は? 272の条件文からじゃ含むように思うんだけど。

277 名前:デフォルトの名無しさん mailto:sage [2008/01/19(土) 21:31:10 ]
反転すりゃ同じになるものは省きたいんじゃないかな?

278 名前:269 mailto:sage [2008/01/19(土) 21:34:12 ]
>>271
よろしくお願いしまーす。
[1] 授業単元:なし
[2] 問題文(含コード&リンク):
(kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5816.txt)
[3] 環境
 [3.1] OS: (WindowsXPsp2)
 [3.2] コンパイラ名とバージョン: (BCC55-BCC Developer1.2.21)
 [3.3] 言語: (どちらでも可)
[4] 期限: ([無期限]だけど早ければうれしい )

279 名前: ◆8QYSceiIsU [2008/01/19(土) 21:34:51 ]
>>276
すみません、<<>><>と<><<>>は括弧の計算としては同じだからだと思っていましたが、そのような指定はありませんでしたorz

とりあえず
<>><<>や><<>><とかはダメだそうです




280 名前: ◆8QYSceiIsU [2008/01/19(土) 21:37:22 ]
>>276さん
たびたびすいません、今確認したところ>>277さんの言うとおりでしたorz

281 名前:269 mailto:sage [2008/01/19(土) 21:37:22 ]
sorry!!URL修正です
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5816.txt






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

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

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