C/C++の宿題を片付け ..
[2ch|▼Menu]
232:115
09/01/18 21:43:29
>>115です。
何度も煩わせてすみませんorz


>>188
入れてみましたがエラーの数も内容も変化なしでした・・・
問題の方を改めてロダに上げます。
もう何が間違ってるのか分からない・・・

URLリンク(kansai2channeler.hp.infoseek.co.jp)

233:デフォルトの名無しさん
09/01/18 21:45:20
>>222
URLリンク(kansai2channeler.hp.infoseek.co.jp)
スマートかどうかは知らん

234:デフォルトの名無しさん
09/01/18 21:49:02
>>219
これで良いだろう

#include <stdio.h>
int main(void)
{
int i,j,g[6],flg;
unsigned int a;
do {
printf("input number(<=32): ");
scanf("%d",&a);
} while (a>32);
for (i=0;i<6;i++) {
g[5-i]=a%2;
a>>=1;
}
for (i=0;i<6;i++) {
if (g[i]) {
for (j=i+1;j<6;j++) g[j]=(g[j]+1)%2;
}
}
for (i=0,flg=0;i<6;i++) printf("%d",g[i]);
printf("\n");
return 0;
}

235:デフォルトの名無しさん
09/01/18 21:51:08
>>230
不覚だな

236:デフォルトの名無しさん
09/01/18 21:51:08
>>213
っていうか、srandしてないから不味くね?

237:デフォルトの名無しさん
09/01/18 21:56:42
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):
(1)
キーボードから入力された0から9までの数字各々の個数をカウントし表示するプログラムを作れ
(2)
画面に任意の次数の単位行列を表示するプログラムを作れ
(3)
学生の数をまず入力した後、各自の試験成績(1課目)を順次入力した後、
最高点・最低点・平均点をそれぞれ求めて表示するプログラムを作れ
[3] 環境
 [3.1] OS:WindowsVista
 [3.2] コンパイラ名とバージョン:不明
 [3.3] 言語:C++
[4] 期限:1月21日
[5]その他の制限:特にありません
よろしくお願いします


238:デフォルトの名無しさん
09/01/18 21:58:13
>>232
だから>>170をどういじったのかを言えと

もしくは>>170をコンパイルした時(いじる前)にどんなエラーが出たかを言ってくれ

239:デフォルトの名無しさん
09/01/18 21:59:46
>>237
(1) >>140,141,143
(2) >>118,121,122

240:デフォルトの名無しさん
09/01/18 22:11:01
>>237
(3)
#include<iostream>
#include<algorithm>
#include<numeric>
#include<vector>
int main() {
int num, score;
std::cout << "Number of students = ";
std::cin >> num;
std::vector<int> scores;
for (int i = 0; i < num; i ++) {
std::cout << "Student" << 1+i << "'s score = ";
std::cin >> score;
scores.push_back(score);
}
std::cout << "-----\n";
std::cout << "The highest score is " << *std::max_element(scores.begin(), scores.end()) << ".\n";
std::cout << "The lowest score is " << *std::min_element(scores.begin(), scores.end()) << ".\n";
std::cout << "Average score is " << std::accumulate(scores.begin(), scores.end(), 0) / scores.size() << "." << std::endl;
return 0;
}

241:201
09/01/18 22:11:34
>>237
(1)
出力は勝手に考えた

#include <stdio.h>

int main(void)
{
int num[10] = {0,0,0,0,0,0,0,0,0,0};
int n = 0;
int i = 0;

while(1){
printf("input:");
scanf("%d",&n);
if(n <= 10) num[n]++;
for(i = 0;i < 10;i++)printf("%d:%d\n",i,num[i]);
printf("\n");
}
return 0;
}

242:デフォルトの名無しさん
09/01/18 22:12:09
C++と聞くととたんにがんばる奴がいるなw

243:デフォルトの名無しさん
09/01/18 22:12:24
> int num[10] = {0,0,0,0,0,0,0,0,0,0};
フイタw

244:デフォルトの名無しさん
09/01/18 22:13:21
[1] 授業単元:プログラミング
[2] 問題文:
あるゼミの各学生の名前、読み仮名、点数を入力し、最高点を取った学生の名前と
点数を表示せよ。今まで入力した中で何番目の学生が最高点かを記録するための
変数max_iを用意し、最高点が更新されるごとにmax_iを更新する。但し、max_iの
初期値は0とする。
[3] 環境
 [3.1] OS:Windows
 [3.2]
 [3.3] 言語:C言語
[4] 期限:1月19日
[5] その他の制限: 全くわからないので誰か教えてください!!よろしくお願いします!!


245:デフォルトの名無しさん
09/01/18 22:13:31
>>243
int num[10] = {0};
でいいことぐらい分かってるよ

246:デフォルトの名無しさん
09/01/18 22:14:17
>>245
フイタw

247:222
09/01/18 22:16:31
>>233
ありがとうございました。

248:デフォルトの名無しさん
09/01/18 22:16:41
ちょっと細工しておくと検索しやすくなるんだよ
誰が検索するのかは秘密♥

249:デフォルトの名無しさん
09/01/18 22:22:21
>>241
正常に機能しなくてフイタw

250:201
09/01/18 22:24:24
一応言っておくが、>>245は俺ではない(汗)

あと、
int num[10] = {0};
は知らんかった。
>>201は中坊だというわけで許してくれw

251:デフォルトの名無しさん
09/01/18 22:25:23
なにがなんだか分からない・・・・・・・

252:225
09/01/18 22:25:28
>>231
ありがとうございました。

253:デフォルトの名無しさん
09/01/18 22:25:55
>>140


254:201
09/01/18 22:26:15
>>249
ん?俺の環境(bcc)では動作するぜよ

255:デフォルトの名無しさん
09/01/18 22:28:41
>>253
>>143

256:デフォルトの名無しさん
09/01/18 22:33:12
>>254
動作する、コンパイルできたからといって、問題通りの
実行結果が出る、機能しているとは限らない。

257:デフォルトの名無しさん
09/01/18 22:33:31
>>254
if(n <= 10) num[n]++;

if(n>=0 && n<10) num[n]++;

258:デフォルトの名無しさん
09/01/18 22:34:30
>>256
問題文を読めよwww

259:デフォルトの名無しさん
09/01/18 22:45:36
>>241
int num[10]
if(n <= 10) num[n]++;
フイタw


260:デフォルトの名無しさん
09/01/18 23:17:51
>>232
だから、宣言文をブロックの先頭にしろって
VCとか関係なくC89の仕様

261:201
09/01/18 23:42:37
>>257
>>259
べ、別に、ボーっとしてたわけじゃないんだからね!orz

262:デフォルトの名無しさん
09/01/19 00:12:27
昨日も書き込んで、アドバイスをもらったのですが、
ちょっとしたトラブルが発生したので、もう一度書き込みます。

#include<stdio.h>

char *my_strcpy(char *s1, char *s2){
int i = 0;
while(s2[i] != '\0'){
s1[i] = s2[i];
i++;
}
s1[i] = '\0';

return s1;
}

int main(){
char *s1 = "abc";
char *s2 = "wxyz";
my_strcpy(s1, s2);
printf("s1:%s s2:%s \n", s1, s2);
return 0;
}

s2の文字数がs1の文字数より大きいとき、
s2が表示されないのはなぜでしょう。
教えてください。
よろしくお願いします。

263:デフォルトの名無しさん
09/01/19 00:23:00
>>262
a←s1
b
c
\0
w←s2
x
y
z
w

my_strcpy後

w←s1
x
y
z
\0←s2
x
y
z
w

あとは分かるな(ちなみにこの上書きは必ず起こるとは限らん)

あと char *s2 = "wxyz";
という風に宣言した文字列リテラルを書き換えるのはNGだ
うまく動かしたい場合は取り合えず
char s1[10] = "abc";
char s2[10] = "wxyz";
とでもするがいい


264:デフォルトの名無しさん
09/01/19 00:24:03
おっと訂正

a←s1
b
c
\0
w←s2
x
y
z
w
\0
my_strcpy後

w←s1
x
y
z
\0←s2
x
y
z


265:デフォルトの名無しさん
09/01/19 00:25:36
また間違えた、死のう

a←s1
b
c
\0
w←s2
x
y
z
\0
my_strcpy後

w←s1
x
y
z
\0←s2
x
y
z
\0

266:デフォルトの名無しさん
09/01/19 00:44:08
gcc4.1.2だとs1[i] = s2[i]を実行した瞬間に死ぬぜ。
vcはどうなってる?

267:262
09/01/19 01:11:21
どうすればよいのでしょうか。


268:デフォルトの名無しさん
09/01/19 01:14:22
>>267
取り敢えず、リテラルを書き換えないことと、
配列に確保した領域を超えて書き込まないことじゃね?

269:102
09/01/19 01:16:14
>>198
ありがとうございました。

270:デフォルトの名無しさん
09/01/19 01:18:40
>>267
#include <stdio.h>

char *my_strcpy(char *s1, char *s2)
{
int i = 0;
while (s1[i] != '\0' && s2[i] != '\0'){
s1[i] = s2[i];
i++;
}
s1[i] = '\0';
return s1;
}

int main()
{
char s1[] = "abc";
char s2[] = "wxyz";
my_strcpy(s1, s2);
printf("s1:%s s2:%s \n", s1, s2);
return 0;
}

271:デフォルトの名無しさん
09/01/19 01:21:33
while ( s1[i] && s2[i] )

272:262
09/01/19 01:22:14
>>268 >>270
ありがとうございました。

273:デフォルトの名無しさん
09/01/19 01:24:17
while (s1[i] & s2[i])

274:デフォルトの名無しさん
09/01/19 01:24:51
>>273
窓から飛び降りて良し!

275:デフォルトの名無しさん
09/01/19 01:25:19
>>267
char *s1 = "abc";
char *s2 = "wxyz";
my_strcpy(s1, s2);



char *s2 = "wxyz";
char *s1 = "abc";
my_strcpy(s1, s2);

でどう?

ちなみにmy_strcpyには返り値が有る筈なんだが……

276:デフォルトの名無しさん
09/01/19 01:27:51
>>275 wwwwwwwwwwwwwwwwwwwwwwww

277:デフォルトの名無しさん
09/01/19 01:30:39
>>275
その発想はなかったわ

278:デフォルトの名無しさん
09/01/19 01:50:36
>>275
s1とs2の中身を換えたいの?それとも、引数の順番を換えたいの?
何がしたいの?死体としたいの?

279:デフォルトの名無しさん
09/01/19 02:03:51
ロシアではwxyzをabcにする、ガハハ!

280:デフォルトの名無しさん
09/01/19 02:05:47
>>110
お前がW大学のM田Cプロとってることはよくわかった
URLリンク(www-it.sci.waseda.ac.jp)
の宿題3を解いてくださいと書けば早いだろうが

281:デフォルトの名無しさん
09/01/19 02:07:56
>>280
お前が他人の素性を探りたがっていることはよくわかった
>>1
> 気に入らない質問やその他や発言はスルーの方向で。
答えたくなければ、こんなスレに来ないか、スルーすれば良いだろ

282:201
09/01/19 02:25:07
>>275
GJ!!ww

>>278
メモリ上でs1、s2と並んでいるのをs2、s1の順番にするってこと。
s2の方がサイズが大きいから、s1をコピーしてもs1への影響がなくなる。

283:デフォルトの名無しさん
09/01/19 02:27:12
なんの冗談だよw

284:デフォルトの名無しさん
09/01/19 02:28:46
実際の環境でどういう挙動になるかも大事だが、
そもそも文字列リテラルの書き換え自体が未定義だろ。やっちゃいけない。

285:デフォルトの名無しさん
09/01/19 02:42:41
[1] 授業単元:C言語
[2] 問題文(含コード&リンク): URLリンク(sasa.cis.ibaraki.ac.jp)
[3] 環境
 [3.1] OS:Windous Vista
 [3.2] コンパイラ名とバージョン:任意
 [3.3] 言語: C
[4] 期限: 1月21日
[5] その他の制限:
 30件 URLリンク(sasa.cis.ibaraki.ac.jp)
 100件 URLリンク(sasa.cis.ibaraki.ac.jp)
 10万件 URLリンク(sasa.cis.ibaraki.ac.jp)
必須課題1,2のみでいいのでよろしくお願いします。

286:デフォルトの名無しさん
09/01/19 03:05:51
>>282
意味がわかってねーだろ、お前?wwwwwwwww
もう一度コードをよく見ろ。

287:201
09/01/19 03:13:02
>>286
いや、>>282であってるけど。
違うと言うんならお前説明してみろw

288:デフォルトの名無しさん
09/01/19 03:16:31
>>275 >>275 >>275 >>275 >>275 >>275 >>275 
s1とs2が何か?それでいて、my_strcpy(s1, s2); の順番が同じだが
その中身のコードを書き換えたわけでもなく・・・201は同じ人物?
だとしたら、かなり頭が悪いか、池沼レベルだな・・・口出ししない方が身の為だぞ。
墓穴を掘って、逆にバカにされるぞ、お前・・・もう学校ではアホ扱いされているだろうけどw

289:デフォルトの名無しさん
09/01/19 03:18:50
>>287
何を説明しろって言うんだよ・・・違うとかって話じゃないだろ。
お前が分かっているのか?って聞かれているんだが?
>>282は勝手に解釈したのか、>>275のコードが理解できないのか、
視覚に問題のある障害者なのか・・・

290:デフォルトの名無しさん
09/01/19 03:20:16
>>275
char *s1 = "abc";
char *s2 = "wxyz";

char *s2 = "wxyz";
char *s1 = "abc";
↑記述する順番を逆にしても、s1とs2の中身はどうよ?w

my_strcpy(s1, s2);
my_strcpy(s1, s2);
↑これも逆にしたわけでもないし・・・

291:201
09/01/19 03:31:07
>>280
>>290
一応アホと言っておく
ちなみに俺は>>275とは無関係

C(C++)では書いた順番によってメモリ配置が変わるんだよ。
これくらい知っとけ。
お前(達)は中坊以下か?

292:デフォルトの名無しさん
09/01/19 03:33:41
こんな時間に書き込み出来るのは無職・ニートだけ!
中学生以下は寝てますよ。

293:デフォルトの名無しさん
09/01/19 03:33:58
自分が大学生の時にもいたけど、こっちが間違っていないのに
何か指摘すると、必死に言い返すバカって、本当に始末が悪くて
迷惑した。態度も悪いし。まさに201みたいな、自分が知能が低いくせに
食い下がる基地外みたいにな。少し黙ってろ、ド素人は。
あのコードを見て、何が違うかも説明できないお前が、勝手に
思い込んだだけだろ。

294:デフォルトの名無しさん
09/01/19 03:37:50
201が必死必死必死必死w

>>258とか、>>275らしき、もう一匹バカがいるようだが、日本語が読めないアホだろ?w


295:201
09/01/19 03:39:53
>>292
すまん。一応俺も無職ww

>>293
お前の環境で実行してみたか?
分かってると思うけど、最適化施したら正常に機能しない可能性がある
俺の環境(Windows(bcc))だったらちゃんと機能した

296:201
09/01/19 03:42:17
>>294
自演必死だねwww
口調で分かる

297:デフォルトの名無しさん
09/01/19 03:42:48
URLリンク(www.bohyoh.com)
答えは出てんだよw いつまで分かりきったことで、必死に
意味も無い、間違った持論を展開するんだね、君は?w
まぁ、こんな場所に来ている人なんてごく一部だし。
そんな一部の人間にさえ、理解されない視野の狭い井の中の蛙w
とりあえず、こんな時間に起きていて、不規則な生活が習慣になっているなら
それを正した方が良いよ。早死にの原因だから。俺?不規則というのは
規則性がないことであって、この時間から明け方までが俺が起きている時間さ。
だって、俺は今、ジャポンのオーバーシーにいるから、時差でこっちは昼間なんだよw

298:デフォルトの名無しさん
09/01/19 03:46:33
日本語でおk

299:201
09/01/19 03:47:58
>>297
人の話聞いてる?

>>All
スレ汚してスマンorz

300:201
09/01/19 03:53:41
>>296
ごめん。訂正。
こりゃ厳密には自演って言わないね。
頭が鈍ってきたw
寝るわ。

301:デフォルトの名無しさん
09/01/19 03:55:01
201は本当にバカだ。あれほどレスするなと言われても、必死になっていることを
わざわざ露呈するなんて。今年一の、このスレの恥さらしだ!通報しますた!

302:201
09/01/19 03:56:36
>>301
つい熱くなってしまって・・・orz

303:デフォルトの名無しさん
09/01/19 03:57:27
そもそも話題のmy_strcpyがstrcpyの要件を満たしていない件

304:デフォルトの名無しさん
09/01/19 04:01:29
んでさ、その大学生時代の、食い下がり野郎がさ、まともに使えもしない英語を使うんだわ。
I go to a bus とか言っちゃってさ。何?って聞いたら、風呂に入ってくるってさ、ぎゃははは(バンバン
マジ受けるんですけどぉ〜?理系に進んだとは言え、英語の成績は良かった俺が
take a bath って言ってやったんだけどさ、妙に食い下がる正確のせいか、辞書で調べたらしく
have a bath とも言うんだよぉ〜とか言ってやんの。別にそう言わないとは、こっちは言ってないのに。
だったら最初から辞書を引けよってかーんじ。まぁ、それでも take a bath が一般的なんだけどね。
英語圏で生活してみろっちゅーのっw
俺?だからさ、さっきっから言っているだろ?ジャポンのオーバーシーだから、昼間だって。
まだ風呂に入る時間じゃないが、シャワーを浴びるしw

305:デフォルトの名無しさん
09/01/19 04:17:06
>>237
> キーボードから入力された0から9までの数字各々の個数をカウントし表示するプログラムを作れ
”各々の個数をカウント”
日本語が読めないのか、出題者が19003だったら1,3,9が1つ、0が2つといった書き方をすれば良かったのか
にしても、201が書いたコードは、whileループを抜けないまま強制終了でもさせなきゃ駄目だし。
コンパイラに通って、実行できたからといっても、題意の通りに機能したわけでもないというのに・・・

306:デフォルトの名無しさん
09/01/19 04:23:12
>>305
寝ろ

307:デフォルトの名無しさん
09/01/19 05:37:03
誰かお願いします。
int型の変数numに初期値99を、char型の変数chに初期値'Z'を設定し、それを
表示するプログラムex6_2を作成せよ。
プログラムの作成にあたり、以下に従うこと。
・int型の変数numとchar型の変数chはmain()関数内で宣言すること
・numとchへの初期値設定はinit_var()関数にて行うこと。
------------------------------------------------------
void init_var(int *pnum, char *pch);
返り値:なし
引数 :pnum:数値格納変数へのポインタ
pch :文字格納変数へのポインタ
処理 :数値格納変数に数値99を、文字格納変数に文字'Z'
を格納する
------------------------------------------------------
※main()関数内の変数に対して別関数init_var()にて値を書き込むため、
引数としてポインタを用いる

《実行例》
>ex6_2
num = 99, ch = Z ←変数の値を表示するだけ


308:デフォルトの名無しさん
09/01/19 05:38:10
これも

int型の変数3個(※配列で宣言する)に数値を入力し、その合計を求めて表示する
プログラムex6_3を作成せよ。
プログラムの作成にあたり、以下に従うこと。
・入力数値を格納するint型の配列はmain()関数内で宣言すること
・指定された個数の数値の合計を求める関数getsum()を自作して使うこと。
getsum()関数の仕様は以下の通り。
----- getsum() ----------------------------------------------------
int getsum(int *pnum, int numcnt);
引数 :pnum :数値を格納している配列の先頭アドレス
numcnt :和を求める変数の個数
返却値:算出した和
処理 :指定された個数の変数の和を求める
-------------------------------------------------------------------
※getsum()は、「int getsum(int *, const int);」としてもよい

《実行例》
>ex6_3
Enter number(1) : 10
Enter number(2) : 23
Enter number(3) : 41
Sum = 74

309:デフォルトの名無しさん
09/01/19 07:18:52
なんだかなぁ・・・

310:デフォルトの名無しさん
09/01/19 12:12:22
最近テンプレを読む能力もないお馬鹿さんが増えてるよね

>>307
#include <stdio.h>
void init_var(int *pnum, char *pch) { *pnum = 99; *pch = 'Z'; }
int main(void) { int num; char ch; init_var(&num, &ch); printf("num = %d, ch = %c\n", num, ch); return 0; }

311:デフォルトの名無しさん
09/01/19 12:16:05
>>308
#include <stdio.h>
int getsum(int *pnum, int numcnt)
{
int sum, i;
for (i = sum = 0; i < numcnt; ++i) sum += pnum[i];
return sum;
}
int main(void)
{
int pnum[3], i;
for (i = 0; i < 3; ++i) { printf("Enter number(%d) : ", i + 1); scanf("%d", &pnum[i]); }
printf("Sum = %d\n", getsum(pnum, 3));
return 0;
}

312:デフォルトの名無しさん
09/01/19 14:53:05
ねむい

313:デフォルトの名無しさん
09/01/19 15:46:48
[1] Cプログラミング基礎
[2] URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン:VC++2003
 [3.3] 言語:C++
[4] 期限: 1月21日(水曜日)
[5] その他の制限: クラスの定義辺りまで習いました

参考プログラムを軽く修正すればいいだけだとは思うのですが
うまくいきません。よろしくお願いします。

314:デフォルトの名無しさん
09/01/19 15:52:15
>>313
課題は原文を貼ってくれないと
素人の考えた文言は意味不明で読み解けない。

315:313
09/01/19 18:03:57
>>314
一応これが原文なのです・・・。
丁寧すぎるというか、確かに読み解きにくいですね・・・。
うーん困った・・・。

316:デフォルトの名無しさん
09/01/19 18:25:54
>>315
>3つのchar型のメンバー変数(ポインタ)
とか、専門家が考えた文言とは思えない。

317:デフォルトの名無しさん
09/01/19 18:58:42
厨房に負けてるお前らワロスwwww


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

5388日前に更新/102 KB
担当:undef