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


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

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



1 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 12:30:56 ]
あなたが解けない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++の宿題を片付けます 108代目
pc11.2ch.net/test/read.cgi/tech/1211980711/


110 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 12:33:57 ]
>>5の問題の補足なんですが

円の中心に原点をおくと、格子点はi,jを整数として座標(i,j)で表される。(i,j)が円環に含まれる場合に1,含まれない場合に0を返却する関数
is_inrarge(double r, int i, int j)
を作成し、これを用いて、半径Rをキー入力することでn(R)を表示するプログラムを作成しなさい。

とのことなのでこれを踏まえてもう一度この問題の解答をお願いします。

111 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 12:53:24 ]
>>109
全角はねーよw

112 名前:デフォルトの名無しさん [2008/06/10(火) 13:05:53 ]
[1] 授業単元: C++
[2] 問題文キーボードから2以上の整数を入力し、その数が素数であるかどうかを判断するコードを記述せよ。
ただし入力される数値が2以上でない場合、繰り返し入力を求めること。[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: (gcc 3.4 )
 [3.3] 言語: C++
([[4] 期限:今日の5時mで
[5] その他の制限:なし

113 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 13:07:32 ]
>>110
#include <stdio.h>

int is_inrange(double r, int i, int j)
{
return r * r >= i * i + j * j;
}

int main(void)
{
int i, j, r, count = 0;

scanf("%d", &r);

for(i=-(r+1); i<=r+1; i++) {
for(j=-(r+1); j<=r+1; j++) {
if(is_inrange(r+1, i, j)&&!is_inrange(r, i, j)) count++;
}
}

printf("%d", count);

return 0;
}

114 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 13:08:44 ]
そういうオープンな問題が出るわきゃないだろ
出した講師か教師が糞
2^2^1024-1が素数かも判定しなきゃならなくなる罠

115 名前:ルート mailto:sage [2008/06/10(火) 13:11:11 ]
[1] 授業単元: プログラミング C言語
[2] 問題文(含コード&リンク): 【課題】
                BMPファイルを読み込み、以下の処理を行って下さい。

                @2値化(白黒画像) 閾値は指定できること
                Aディザ法による2値化
                B誤差拡散法による2値化
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: VC++
 [3.3] 言語: C
[4] 期限: 〜6月13日0:00
[5] その他の制限: 無い


116 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 13:12:25 ]
なんか、ここを見てるとプログラミングを嫌いにさせたいのか
と思うような出題内容が多いよな。

まあIT業界は悲惨なので学生時代に嫌いにさせておいて
就職口から外す講師の親心なのかもしれないけどw

ってそれはねーかw

117 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 13:18:15 ]
口だけクンががんばってるなw

118 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 13:19:34 ]
@
[1] 授業単元: C++
[2] 問題文 キーボードから2以上の整数を入力し、その数が素数であるかどうかを判断するコードを記述せよ。
ただし入力される数値が2以上でない場合、繰り返し入力を求めること。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: C++
[4] 期限: 6月10日
[5] その他の制限: なし
A
[1] 授業単元: C++
[2] 問題文 直角三角形の表示を行うフローチャートは左下が直角の直角三角形を表示するプログラムであった。直角が左上側、右上側、右下側の三角形を表示するプログラムをそれぞれ作成せよ。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: C++
[4] 期限: 6月17日
[5] その他の制限: なし

お願いします。



119 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 13:24:22 ]
書くだけクンが大きなこと言えるのかなw

120 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 13:24:34 ]
>>112
#include <iostream>

int main(void)
{
int n, flag = 1;

do {
std::cout << "2以上の整数を入力してください:";
std::cin >> n;
}while(n < 2);

for(int i = 2; i*i<=n; i+=2) {
if(n % i == 0) {
flag = 0;
break;
}
}


std::cout << n << "は素数" << (flag ? "です" : "ではありません") << std::endl;
}

121 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 13:32:01 ]
2以上の素数を入力して下さい 15
15は素数です

122 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 13:32:56 ]
ミスった
i+=2 → i++

123 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 13:33:47 ]
>>118
#include <iostream>

int main()
{
int i, j, n;

std::cin >> n;

//左上
for(i=n; i>0; i--) {
for(j=i; j>0; j--) std::cout << '*';
std::cout << std::endl;
}
//右下
for(i = 0; i<n; i++) {
for(j=1; j < n - i; j++) std::cout << ' ';
for(j=0; j<=i; j++) std::cout << '*';
std::cout << std::endl;
}

//右上
for(i=0; i<n; i++) {
for(j=0; j<i; j++) std::cout << ' ';
for(j=n; j>i; j--) std::cout << '*';
std::cout << std::endl;
}
}

124 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 13:44:20 ]
2以上の素数を入力して下さい:2
2は素数ではありません

125 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 13:50:00 ]
>>124
バカ発見

126 名前:デフォルトの名無しさん [2008/06/10(火) 14:02:11 ]
[1] 授業単元: プログラミング C言語
[2] 問題文(含コード&リンク)課題:ファイル"test.txt"から文字列を読み込み、並びを逆にしてファイル"sample.txt"に出力するプログラムを作成せよ。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン:Microsoft Visual Studio 2005
 [3.3] 言語: C
[4] 期限: 〜6月11日11:00
[5] その他の制限: ポインタを使う


127 名前:110 mailto:sage [2008/06/10(火) 14:10:22 ]
>>113ありがとうございます

128 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 14:15:28 ]
>>126
#include <stdio.h>
void f(FILE *in, FILE *out)
{
int ch = fgetc(in);
if(ch==EOF) return;
f(in, out);
fputc(ch, out);
}

int main(void)
{
FILE *f_in, *f_out;

if((f_in=fopen("test.txt", "r"))==NULL) return 0;
if((f_out=fopen("sample.txt", "w"))==NULL) return 0;

f(f_in, f_out);

fclose(f_in);
fclose(f_out);

return 0;
}



129 名前:デフォルトの名無しさん [2008/06/10(火) 14:31:41 ]
>>128
正しく実行できません。


130 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 14:37:33 ]
>>126
int main(void) {
FILE* in;
FILE* out;
int c;
char ss[1024];
int i = 0;
in = fopen("test.txt", "r");
if (in == NULL) {
return -1;
}
out = fopen("sample.txt", "w");
if (out == NULL) {
return -1;
}
while ((c = fgetc(in)) != EOF) {
ss[i] = c;
i++;
}
ss[i] = '\0';
i--;
while (i >= 0) {
fputc(ss[i], out);
i--;
}
fclose(in);
fclose(out);
return 0;
}

適当すぎたorz

131 名前:130 mailto:sage [2008/06/10(火) 14:39:26 ]
おかしかったら自分でなんとかして。
結構、初心者向けに書いたつもりなので

132 名前:20 mailto:sage [2008/06/10(火) 15:38:13 ]
>>41>>41
int pattern1(double a, double b, double c){
int x, y;
y=(a-2*c)/(sqrt(3.)*c)+1;
x=b/(2*c);
return x*y-((b-x*2*c<c)?y/2:0);;
}
すみませんがここの処理が何をやってるのかわからないのですが
説明していただけませんか?

133 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 15:38:36 ]
[1] 授業単元:
Cプログラミング
[2] 問題文(含コード&リンク):()
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6813.txt
の課題2をお願いします
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
linux
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
gcc
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)

[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
明後日
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
特にありません

134 名前:デフォルトの名無しさん [2008/06/10(火) 15:41:55 ]
[1] 授業単元:プログラミング入門
[2] 問題文(含コード&リンク):小さい順の友愛数ペア10組を探し出すプログラムをつくれ。
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:VC 6.0
 [3.3] 言語:C++
[4] 期限:2008年6月17日14:40まで
[5] その他の制限:for,while,if文ぐらいしか習ってません。
  main関数のみでお願いします。
  参考プログラム:約数の和の計算
#include <stdio.h>

void main()
{
int m; /* 整数 */
int n; /* 1〜m まで繰り返す */
int s; /* 約数の和(累計) */

scanf("%d", &m); /* キーボードから整数を読み込む */

s = 0; /* s の内容をクリア */
for (n = 1; n <= m; n++) { /* 1〜m まで繰り返す */
if (m % n == 0) /* 約数の判定 */
s += n; /* 約数であれば s に足す */
}

printf("整数%dの約数の和は%dです。\n", m, s); /* 約数の和の画面表示 */
}

よろしくお願いします。



135 名前:デフォルトの名無しさん [2008/06/10(火) 15:48:26 ]
[1] 授業単元: C++
[2] 問題文次々に入力される値を合計する処理である。
変数dtにデータを入力する処理を繰り返し行い、
入力終了後その合計sumと平均aveを出力する。
なお、入力データは正の整数とし、
入力するデータがなくなったら、
終わりの印として負の値を入力する。
【ヒント】
平均の計算は、合計÷入力回数。
入力回数も変数を用意して数える。

[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: (gcc 3.4 )
 [3.3] 言語: (C++)
[4] 期限: ([2008年06月24日午後5時までまで] )
[5] その他の制限:なし

136 名前:ルート mailto:sage [2008/06/10(火) 16:02:29 ]
>>115 よろしくおねがいします


137 名前:デフォルトの名無しさん [2008/06/10(火) 16:02:34 ]
[1] 授業単元: C++
[2] 問題文 次の処理を行うプログラムを作成しなさい。

キーボードから入力した2進数を
10進数に変換して出力する。
ただし,入力が2進数でなかった場合
エラーメッセージを出力して最初からやりなおす。


【実行例】
2進数を入力してください 10101
21

2進数を入力してください 12345
エラー(2進数ではありません)


[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: (gcc 3.4 )
 [3.3] 言語: (C++)
[4] 期限: ([2008年06月24日午後5時までまで] )
[5] その他の制限:なし
お願いします

138 名前:21 mailto:sage [2008/06/10(火) 16:07:41 ]
>>101
ありがとうございました。
来週テストということもあり、前回のプログラムも含めて復習してみます。
本当にありがとうございました。



139 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 16:18:36 ]
>>135
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(void) {

char input[1024];
int temp = 0;
int dt = 0;
int count = 0;

gets(input);
while ((temp = atoi(input)) >= 0) {
count++;
dt += temp;
gets(input);
}

printf("合計:%d\n", dt);
printf("平均:%d\n", dt / count);

return 0;
}

140 名前:デフォルトの名無しさん [2008/06/10(火) 17:26:47 ]
[1]データ構造(C言語)
[2]以下のようなstudent構造体の配列をプログラム内に定義しておく。

struct student{
int num;
char name[20];
int score;
};
struct student St[]={{3, "鈴木三郎", 86}, {1, "山田一郎", 75}, {14, "高橋十四子", 93}, {2, "田中二子", 68}};

このデータをfprintf()を用いてファイルに出力するプログラムを作成せよ。またcatコマンドなどにより出力し、内容が正しいことを確認せよ。
[3]OS Linux
言語 C
[4]10日18時
[5]なし


おねがいします。

141 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 17:33:54 ]
>>134
#include <stdio.h>

int f(int n)
{
int i, s = 0;
for(i=1; i<=n/2; i++) if(n % i == 0) s += i;
return s;
}

int main(void)
{
int i, j, cnt = 0;

for(i=1; cnt < 10; i++) {
j = f(i);
if(j > i && i == f(j)) {
printf("%d, %d\n", i, j);
cnt++;
}
}

return 0;
}


142 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 17:43:09 ]
>>137
#include <iostream>

using namespace std;

int main()
{
int i, n = 0;
char buff[256], *p;
while(1) {
cout << "2進数を入力してください ";
cin >> buff;
for(p=buff; *p; p++) if(*p!='0' && *p!='1') break;
if(!*p) break;
cout << "エラー(2進数ではありません)" << endl;
}

for(p=buff; *p; p++) n = n * 2 + *p - '0';

cout << n << endl;
}

143 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 17:44:02 ]
>>140
struct student {
int num;
char name[20];
int score;
};
int main(void) {
FILE* fp = fopen("aaa.txt", "w");
int i = 0;
struct student St[]={{3, "鈴木三郎", 86}, {1, "山田一郎", 75}, {14, "高橋十四子", 93}, {2, "田中二子", 68}};
struct student st;
if (fp == NULL) {
return -1;
}
for (; i < 4; i++) {
strcpy(st.name, St[i].name);
st.num = St[i].num;
st.score = St[i].score;
fprintf(fp, "番号:%d 氏名:%s スコア:%d\n", st.num, st.name, st.score);
}
fclose(fp);
return 0;
}
Cで動くかしらんけど。

144 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 17:44:25 ]
>>133
一応動くけど初心者なので責任は取れない

暇な人は添削を m( __ __ )m

kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6851.txt

145 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 17:50:27 ]
あ、include載せ忘れてる。

ま、いっか。
それくらい自分でなんとなしてくれ。

146 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 18:15:56 ]
>>141
main関数のみでお願いします。
せっかくやってもらった立場でそうと言いにくい
>>134に代わって御願いします

147 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 18:40:06 ]
>>144
ほんとありがたいです。ありがとうございました!

148 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 19:11:37 ]
>>134
#include <stdio.h>

int main(void)
{
int i, j, cnt = 0, m, n;

for(i=1; cnt < 10; i++) {
n = 0;
for(j=1; j<=i/2; j++) if(i % j == 0) n += j;

if(n > i) {
m = 0;
for(j=1; j<=n/2; j++) if(n%j ==0) m += j;
if(m == i) {
cnt++;
printf("%d, %d\n", i, n);
}
}
}

return 0;
}




149 名前:デフォルトの名無しさん [2008/06/10(火) 19:34:18 ]
>>148 様
ありがとうございます

150 名前:デフォルトの名無しさん [2008/06/10(火) 19:44:13 ]
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
1.2の補数を用いて負の数も扱えるように拡張せよ.
2.2つの2進数の差を求めるプログラムを作成せよ.
3.任意の(変数や定数で指定した)桁数の2進数を扱えるようにせよ.
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:VC 6.0
 [3.3] 言語:C++
[4] 期限:2008年06月11日まで
[5] その他の制限:このプログラムを基にお願いします。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/clip.gif

151 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 19:44:42 ]
>>150
ワロタw

152 名前:デフォルトの名無しさん [2008/06/10(火) 19:45:31 ]
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
1.2の補数を用いて負の数も扱えるように拡張せよ.
2.2つの2進数の差を求めるプログラムを作成せよ.
3.任意の(変数や定数で指定した)桁数の2進数を扱えるようにせよ.
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:VC 6.0
 [3.3] 言語:C++
[4] 期限:2008年06月11日まで
[5] その他の制限:このプログラムを基にお願いします。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6853.txt

153 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 19:45:35 ]
盛大な釣りですね

154 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 19:49:42 ]
[1]プログラミング
[2]問題文
警報をno回鳴らす関数void alart(int no)をメイン文も含め作る。
[3-1]windows
[3-2]gcc
[3-3]C言語
[4]明後日まで。
よろしくお願いいたします。

155 名前:デフォルトの名無しさん [2008/06/10(火) 20:12:43 ]
>>150 >>152 です

すみません><

156 名前:Ctrl+Gがどうしようもないや mailto:sage動くかな [2008/06/10(火) 20:16:15 ]
void alart(int no);
int main(void){
int no=0;
alart(no);
return 0;
}

void alart(int no){
if(no);
system("echo 数字を入力してください");
system("set /p no=");
system("for /l in (1,1,%no%) do echo ^G");
system("set no=");
}


157 名前:デフォルトの名無しさん [2008/06/10(火) 20:31:48 ]
[1] 授業単元:プログラミング演習

[2] 問題: kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6854.txt
 [3.1] OS: WindowsXp
 [3.2] コンパイラ名とバージョン:visualstdio 2008
 [3.3] 言語:C++
[4] 期限:6月13日
[5] その他の制限:なし。

   よろしくお願いします.

158 名前:scanfの戻り値に自信なし mailto:sage真面目に [2008/06/10(火) 20:47:52 ]
>>154
#include <stdio.h>
void alart(int no);
int main(void){
int ret=0;
int no=0;
printf("数字を入力して下さい");
scanf("%d",&no);
if(ret){
puts("数字っつったろぼけ");
return 1;
}
alart(no);
return 0;
}
void alart(int no){
int i=0;
for(i=0;i<no;i++){
printf("\a");
}
}



159 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 20:51:19 ]
自信ないのに意味不明なコード書くのはバカ

160 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 20:52:08 ]
コード書かないのはバカですね
分かります

161 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 20:54:17 ]
man よめよ

162 名前:158 mailto:sage [2008/06/10(火) 20:56:36 ]
やべぇ
否定し忘れてる!!
if(!ret){


>>159
あ?しねよ
scanfの戻り値なんか見たことないだろ

163 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 20:58:43 ]
私のためにケンカしないで><

164 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 21:01:18 ]
/*ここまで俺の自演*/

165 名前:デフォルトの名無しさん [2008/06/10(火) 21:07:16 ]
[1] 授業単元: プログラミング C言語
[2] 問題文(含コード&リンク)課題:
      ファイル"test.txt"から文字列を読み込み、並びを逆にしてファイル"sample.txt"に出力するプログラムを作成せよ。
[3] 環境
コンパイラ名とバージョン:Microsoft Visual Studio 2005
言語: C
[4] 期限: 〜6月11日
[5] その他の制限: ポインタを使う


166 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 21:08:22 ]
>>165
ファイルポインタじゃ、ダメだった?

167 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 21:11:41 ]
ここは、使えないPGを育成するスレですか?


といてもらって、お礼もいわんとは

168 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 21:14:55 ]
>>167
あえて言おう

ここは2ちゃんねる



久しぶりに言った



169 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 21:16:33 ]
同じ質問を再度行う場合も非常に見にくいことが多い。
前回依頼時へのポインタを示してくれればそこからいろいろたどれるのに。

具体的には>>165>>126へ貼ってくれさえいればダメだったらしい
回答であるところの>>130がすぐ見れたわけだ。

もう少し考えていただければと思う。

170 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 21:17:15 ]
釣られてどうする

171 名前:デフォルトの名無しさん [2008/06/10(火) 21:17:53 ]
>>166
ファイルポインタは大丈夫みたいなんですが、
while ((c = getc(in)) != EOF)
などが上手く動作しないみたいで困ってます。

172 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 21:19:45 ]
>>171
>while ((c = getc(in)) != EOF)
        ~~~~~
fgetcじゃなくて?

173 名前:デフォルトの名無しさん [2008/06/10(火) 21:19:54 ]
>>169
次からそうします。
失礼しました。

174 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 21:20:10 ]
質問者は名前欄にレス番号を記入すべきだとも思う。

175 名前:デフォルトの名無しさん [2008/06/10(火) 21:26:29 ]
>>172
fgetcです。
文字列の書き込みや出力の部分がとんで動作しているみたぃです。

176 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 21:33:15 ]
>>157
気づけば大元のソースが見る影もなくなっていた

ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6855.cpp

177 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 21:33:34 ]
test.txtの置き場所間違ってないか?

178 名前:157 [2008/06/10(火) 21:37:51 ]
>>176

ありがとうございます。



179 名前:デフォルトの名無しさん [2008/06/10(火) 22:02:06 ]
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):()
文字列を逆向きに表示する関数void printrev(char[]);を定義せよ.テキストファイルの最初の1行を逆向きにして表示するプログラムを作成せよ.
出力例:
bash-3.2$ ./rev1 < rev1.c
>h.oidts< edulcni#

ヒント:
・文字列を逆向きに表示する関数を定義する
・繰り返し文 while ((c = getchar()) != EOF) {...} で,改行記号まで配列に文字を順番に代入する
・改行記号が来たら break
・できあがった文字の配列に終端文字\0を入れて文字列にする
・文字列を逆向きに表示する関数を使って表示する
[3] 環境
 [3.1] OS:Linux
 [3.2] gcc (すみません、詳しいことはよくわかりません;)
 [3.3] C言語
[4] 期限:前期中
[5] その他の制限:なし。

よろしくお願いします。

180 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 22:27:58 ]
さぁ、逆さ文字をコマンドプロンプトに表示できる勇者は現れるか?
バナーならなんとかできるか?

181 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 22:35:56 ]
#include <stdio.h>
#include <string.h>
int main(void) {
int i, j;
char buf[81], *p;
fgets(buf, sizeof buf, stdin);
if (p = index(buf, '\n')) *p = '\0';
for (i = 0, j = strlen(buf) - 1; i < j; i++, j--) {
int t;
t = buf[i]; buf[i] = buf[j]; buf[j] = t;
}
fputs(buf, stdout);
fputs("\n", stdout);
return 0;
}


182 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 22:38:48 ]
毎度のことで申し訳ありません。7行目の' 'と13行目の" "の中身はbackslash nです。

183 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 22:42:06 ]
ちゃんと\見えてるわけだが、お前は何を使って見てるんだ。

184 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 22:44:22 ]
>>183
>>180
>>174
>>167
こいつバカじゃね?いい加減うぜぇな。無駄口叩く奴って
本当に役に立たないクズだよなw

185 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 22:45:19 ]
>>184
おまえもな

186 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 22:45:37 ]
74です。

187 名前:181 mailto:sage [2008/06/10(火) 22:48:41 ]
あ、問題文全然読んでませんでした。誰か函数化してください。

188 名前:デフォルトの名無しさん [2008/06/10(火) 23:02:10 ]
>>185
はぁ?バカは四の五の言ってねーでソース書けよw
そのレスに反論するのは、指摘された本人だろ?
他は黙ってソース書いてんだよ、ボケが



189 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 23:03:20 ]
>>162
>>160
これもうぜーなぁ。バカは口閉じてろよ、あっキーボードを打つ指を
休めているか、タイピングできないように切断しとけば?w

190 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 23:10:10 ]
>>184
おまいさんが酉つけてガンガン回答してくれたら納得しとくわ。

191 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 23:17:36 ]
>>189
僕ちゃんは、宿題を教えてもらえなかったのかな?

192 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 23:26:47 ]
逆にたとえば俺が酉つけてたら回答も提言もそして暴言も割と
あるわけだが、それはそれでちょっとやだなあ

193 名前:デフォルトの名無しさん mailto:sage [2008/06/10(火) 23:57:39 ]
コテや酉つきの回答者のウザさは異常

194 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 00:09:45 ]
>>179

#include <stdio.h>

void printrev(char str[])
{
char *p = str;
while(*p) p++;
while(p-- > str) putchar(*p);
}

int main(void)
{
int i = 0, c;
char str[256];

while((c = getchar())!=EOF) {
str[i++] = c;
if(c=='\n') break;
}
str[i] = '\0';

printrev(str);

return 0;
}


195 名前:デフォルトの名無しさん [2008/06/11(水) 00:30:24 ]
>>165
の問題を教えてください

196 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 00:32:41 ]
>>193
そんなこと関係なくウザイ奴は一生ウザイ。
言動や行動に性格、人間性が露呈していることに気づかず
指摘されると指摘してきた奴を執拗に罵倒して自分を正当化できると
勘違いしているから、その他の周りからも嫌われているって気づいてないんだよ

197 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 00:39:56 ]
>>196
自己紹介乙w

198 名前:179 mailto:sage [2008/06/11(水) 00:42:39 ]
>>194
回答ありがとうございます!
ただ、
7行目の while(p-- > str)
13行目の char str[256];

の意味がよくわからないのですが、よかったら説明いただけないでしょうか。



199 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 00:44:04 ]
>>195
128や130のどこが気に入らないのか具体的に。
もしかして一行文字列読み込む度にそれを逆順にするとか?

200 名前:デフォルトの名無しさん [2008/06/11(水) 00:47:49 ]
[1] 授業単元:ソフトウェア演習2
[2]問題文・コード
リンク kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.cgi
[3] 環境
 [3.1] OS: Windows vista
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語:C
[4] 期限: 2008年6月12日14:30まで
[5] その他の制限:標準ライブラリに関しての制限はありませんが、一応malloc以外は使わない方針です。一方向連結リストの削除、挿入がこの単元の狙いなので双方向リストは使えません。

よろしくお願いします。

201 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 00:50:50 ]
>>198
char str[256]は単に配列。
strは変数名で特別な意味があるわけじゃない。

while(p-- > str) は
while(p > str) {
p--;
と同じこと。
pは最初文字列終端の'\0'のアドレスになってるからそこから一文字分前に移動する。
そこから順番に一文字ずつ前に移動して表示、
最後はp[0](元の文字列の先頭)を表示してループから抜ける。


202 名前:デフォルトの名無しさん [2008/06/11(水) 00:57:57 ]
>>199
すいません少し待ってください。


203 名前:200 [2008/06/11(水) 00:58:35 ]
すいません。リンクこっちに替えときます。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6857.txt

204 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 00:58:43 ]
193 名前:デフォルトの名無しさん 投稿日:2008/06/10(火) 23:57:39
コテや酉つきの回答者のウザさは異常
↑いちいち自分の不満をたらたら漏らす、場違い野郎がうざいんだが。
自己紹介って返す奴は、自分の素性をどんぴしゃで当てられて
必死になっているのを隠さずにはいられないくらい動揺している証拠。

205 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 00:59:04 ]
>>165
#include<stdio.h>
#include<stdlib.h>
#define SRC_FILE "test.txt"
#define DST_FILE "sample.txt"
int main()
{
FILE *fs, *fd;
long size, i;
char *buf;
if((fs = fopen(SRC_FILE, "r")) == NULL) {
perror(SRC_FILE);
return 1;
}
if((fd = fopen(DST_FILE, "w")) == NULL) {
fclose(fs);
perror(DST_FILE);
return 1;
}
fseek(fs, 0, SEEK_END);
size = ftell(fs);
fseek(fs, 0, SEEK_SET);
buf = malloc(size);
size = fread(buf, 1, size, fs);
for(i = size - 1; i >= 0; i --)
fputc(buf[i], fd);
free(buf);
fclose(fd);
fclose(fs);
return 0;
}

206 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 01:47:30 ]
>>205
GJ。ちと自分なりに突っ込み。
int main(void)
fseek(fs, 0L, SEEK_END); < 特に必要ないがlong型ということで
fseek(fs, 0L, SEEK_SET); < 0ではあるが後ろにLを
buf = (char*)malloc(size * sizeof(char)); < キャストと念のために型のサイズを

余談だが、1文字2バイトの全角文字には非対応やね。質問者はどこまで
要求しているのかはっきりせぬが。

207 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 01:49:24 ]
型変換あるんだから蛇足だろ

208 名前:デフォルトの名無しさん [2008/06/11(水) 02:08:29 ]
>>128
>>130
>>199
>>205
わかりました。 ありがとうございました。



209 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 02:10:22 ]
>>207
知ったか無知を露呈しなくて良いぞ、ろくにソースも書かずに
無駄口を叩くバカは。ちなみに、蛇足でもないから。
たまたま問題の無い例を用いて否定すると、墓穴掘るぞ。

210 名前:デフォルトの名無しさん mailto:sage [2008/06/11(水) 02:27:28 ]
他人のソースにいらんもんを付け足すほうがアホだろ。






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

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

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