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

このエントリーをはてなブックマークに追加
931デフォルトの名無しさん:2012/04/25(水) 02:07:18.58
932デフォルトの名無しさん:2012/04/25(水) 02:14:57.10
>>931
ありがとうございます、助かりました
933デフォルトの名無しさん:2012/04/25(水) 03:08:17.30
その小野小町を導くアルゴリズムが重要なんじゃなイカ?
934デフォルトの名無しさん:2012/04/25(水) 03:19:11.74
881は完全な小町算を要求してるわけではない
数字の間に演算子が入らない場合を認めるのかどうかも不明だし
935デフォルトの名無しさん:2012/04/25(水) 03:24:59.62
936デフォルトの名無しさん:2012/04/25(水) 03:33:59.25
無駄な計算多いね
937デフォルトの名無しさん:2012/04/25(水) 03:55:20.09
指摘するくらいなら自分がスマートなコードを提示すべきだろう
そうだと指摘する自分の意見を正当なものとするためにも。出来なければ単なる野次。
国会中継を見てご覧。野党は野次馬党と化している。かつて与党だった自民でさえ
野党時代の民主と変わらん。しかも審議拒否w
938デフォルトの名無しさん:2012/04/25(水) 04:07:18.32
野次でええやん
939 ◆QZaw55cn4c :2012/04/25(水) 04:08:14.81
>>937
谷垣でしょ?
ナベツネと同レベル、震災時、挙国一致内閣を立ち上げあけなければならない重要な時期に党利党略優先で菅叩きに猛進した馬鹿野郎でしょ?
菅は馬鹿だがあの時期に叩く理由が理解不能。期待するのが無駄。さっさと首にして神経がまともな党首にすげかえるべきでしょうね。
それにしても、かつての優秀な自由民主党はどこにいったのでしょうね。

せめて全国に放射能を拡散させる「燃やして応援」は勘弁ね。
940デフォルトの名無しさん:2012/04/25(水) 04:11:58.85
>>929
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#define SIZE 128

int main(void)
{
char buf[SIZE], *str;
int i, c, w;

while (fgets(buf, SIZE, stdin) != NULL) {
str = (char *)malloc(sizeof(char) * SIZE);
strcpy(str, buf);
}
for (i = 0, c = 0, w = 0; str[i] != '\0'; i++) {
if (str[i] != ' ') c++;
else w++;
}

printf("文字数: %d, 単語数: %d\n", c - 1, w + 1);

return 0;
}

ねむい 寝る
941デフォルトの名無しさん:2012/04/25(水) 04:23:20.60
>>937 = >>935なら、そんなのスルーしておけばいいし、
そうじゃないなら如何に頭悪いレスかを理解すべきだし
942デフォルトの名無しさん:2012/04/25(水) 04:40:13.89
885と比べると計算回数どんだけ多いか
配列に記号突っ込むだけなのに除算や余算使いまくりなのも酷い
943デフォルトの名無しさん:2012/04/25(水) 07:49:16.97
>>881
先頭から順にではなく、演算子の優先順位も守ってのことか。面倒だからやーでおじゃる〜
それより、小町ちゃ〜〜ん
944デフォルトの名無しさん:2012/04/25(水) 08:43:08.81
加算減産乗算しかないのなら、

ループ開始

まず*を排除。
数値配列バッファに数字を順次ぶちこむが*の時だけ乗算処理をする。
「1+2+3*4」ならあらかじめ全部1にした数値配列に、
1*1として+だから次にずらし
1*2として+だから次にずらし
1*3として「*なのでずらさない」
3*4として
終わり。

次に加算原産処理をバッファから読みこみつつ回答にぶちこむ。
先頭が+確定なのでまずこれを回答にぶちこみ
+なら加算
-なら減算
*ならスルー
でいいのでは?

この時点で回答が100なら「答えだよカウント」+1
答えだよカウントが10なら10個でたから終了。

加算減産除算を3進数とみなし1加算行う。

ループ終了

…で良いと思うんだが今から作ると俺の時間が無いので誰か頼む…
945デフォルトの名無しさん:2012/04/25(水) 11:39:59.81
# include<stdio.h>
int main(void){
int a[9],b[9],bc,kc,ans,ans_cnt=0,next,i;
char k[9]={'+','+','+','+','+','+','+','+','+'};
while(k[9]=='+'){
bc=1;next=1;
for(i=0;i<9;i++){a[i]=i;b[i]=1;}
for(i=1;i<9;i++){
switch(k[i-1]){
case '+':
bc++;break;
case '-':
bc++;a[i]*=-1;break;}
b[bc-1]*=a[i];}
ans=b[0];
for(i=1;i<bc;i++) ans+=b[i];
if(ans== 100){
ans_cnt++;
for(i=0;i<8;i++) printf("%d%c",i+1,k[i]);
printf("%d\n",9);}
for(i=0;next;i++)
switch(k[i]){
case '+':
next--;k[i]='-';break;
case '-':
next--;k[i]='*';break;
case '*':
k[i]='+';break;}
}
return 0;}
946デフォルトの名無しさん:2012/04/25(水) 11:42:20.34
>>945だけど。
>>881
…携帯からだからテストもしてないんだ…ごめんよ。
自宅帰っても回答無いなら挑んでみるわ。
947デフォルトの名無しさん:2012/04/25(水) 12:09:18.07
なんか小汚いゴミみたいなソースが来たな
全然美しくない
アホが自己満足で作って自分も他人も苦しませるために存在してるようなコードだ
948デフォルトの名無しさん:2012/04/25(水) 12:11:05.75
馬鹿に合わせてコード書いてたらレベルが下がるわな
949デフォルトの名無しさん:2012/04/25(水) 12:17:10.28
それならそうと
「あなたはバカなのでそれに合わせてコードの質を下げました、
この豚のエサで満足してください」
と書いた方がいい
950デフォルトの名無しさん:2012/04/25(水) 12:17:14.20
バカに馬鹿って言う奴がバカなんだお^ω^?
951デフォルトの名無しさん:2012/04/25(水) 12:34:38.50
ターミナルでコンパイルするお^ω^?
952デフォルトの名無しさん:2012/04/25(水) 12:51:04.49

ターミナル上でもコンパイルできるのは
変わりないわなwww
プw
953デフォルトの名無しさん:2012/04/25(水) 13:09:19.24
人はそれを、ターミネーターという。
954デフォルトの名無しさん:2012/04/25(水) 13:18:20.91
アイルビーバック!!
955デフォルトの名無しさん:2012/04/25(水) 13:26:58.34
アイルビーコンパイル 彼はそういって再びコンパイルしたのであった
956tako:2012/04/25(水) 15:26:05.60
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):次のプログラムをstrcpy(a,b)を使わずに
whileを使って同じことを行うプログラムを作れ。
int main(void){
char a[64],*b;
b="INFORMATION";
strcpy(a,b);
printf("%s\n",a);
return 0;
}
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2012年4月26日午後1時
[5] その他の制限:特になし
957デフォルトの名無しさん:2012/04/25(水) 15:38:30.61
int main(void)
{
int i = 0;
char a[65], *b;
b = "INFOMATION";

while(a[i++] = *b++);

printf("%s\n", a);

return 0;
}
958デフォルトの名無しさん:2012/04/25(水) 15:55:50.14
int main(void){
char a[64],*b;
b="INFORMATION";
while(memcpy(a,b,64));
printf("%s\n",a);
return 0;
}
959デフォルトの名無しさん:2012/04/25(水) 16:00:01.22
[1] 授業単元:プログラミングC
[2] 問題文 配列vxの各要素に整数をscanf関数で入力し、5の倍数のみを新たな配列に格納し、これを出力するプログラムを作成せよ。
[3] 環境
 [3.1] OS: Windows vista
 [3.2] コンパイラ名とバージョン: VisualStudio2010
 [3.3] 言語: C言語 (C++)
[4] 期限: 4/26
[5] その他の制限:初歩的なものしか使えません。

よろしくお願いします。
960デフォルトの名無しさん:2012/04/25(水) 16:14:42.03
#include <stdio.h>

int main(void)
{
int i, j;
int vx[10], vy[10];

for(i = j = 0; i < 10; i++) {
scanf("%d", vx + i);
if(vx[i] % 5 == 0) vy[j++] = vx[i];
}

for(i = 0; i < j; i++) printf("%d\n", vy[i]);

return 0;
}
961デフォルトの名無しさん:2012/04/25(水) 17:52:17.43
>>881
http://ideone.com/G0nWb
宣言通りちゃんと作ったどー。
環境依存でムリーとか言われたらムリー。

先に減算と乗算を片付けて加算だけにしてみた。
演算子は完全に総当たり。

1*2+3-4*5*6+7*8-9 って出て来たら、
(1*2)+3+(-4*5*6)+(7*8)+(-9) とみなし、
(2)+3+(-120)+(56)+(-9) と直して、
まとめて加算。=(-68)
記号は3進数に+1加算しているのと一緒です。
桁上がり(*→+)がある限り記号ずらし(加算)を繰り返します。

…ここから試験出るって言うけどそれってソース提示すればOKなの?
穴埋め埋めとかなら質問はここじゃ無い方が良い気がするんだが。

コーディング下手糞のバカで悪かったなバカで。
携帯からだとideome先生が使えないんだよ。
ついでにバグ取りしてくれりゃよかったものを…
962デフォルトの名無しさん:2012/04/25(水) 18:21:17.45
だからわっかんねーのかなwww
>>910あたりはイイ線ついてんだよwww
+−だけならクソキャリーとか考えなくていいだろww
ついでに計算順も考えなくていいw

ま、10個見つかるかどうかは知らんけど
ラクしよう手抜こう早く仕上げよう てな
一番大切な精神をもってる

コーディングじゃあないんだ、
そのウラの考え方が美しくないって言ってんだろww
963デフォルトの名無しさん:2012/04/25(水) 18:43:24.51
1から9まで足して45なのに、+-だけでいいわけねーだろ
どんだけバカなら気が済むんだw
964デフォルトの名無しさん:2012/04/25(水) 19:41:59.29
>>881
http://ideone.com/rvxI1
宣言通りちゃんと作ったどー。
空白対応小町っちゃんパワーうpバージョン。
空白対処もやってることは>>961と一緒。
965デフォルトの名無しさん:2012/04/25(水) 20:07:15.23
885
#include <stdio.h>

char s[9];

void f(int idx, int tmp, int tmp2, int sum) {
if(idx == 9) {
if(tmp2) sum += tmp * tmp2;
else sum += tmp;
if(sum == 100) {
int i;
for(i = 1; i < 9; i++) {
printf("%d", i);
if(s[i] != ' ') printf(" %c ", s[i]); }
printf("9 = 100\n"); }
return ; }
if(tmp2) {
s[idx] = '+'; f(idx + 1, idx + 1, 0, sum + tmp * tmp2);
s[idx] = '-'; f(idx + 1, -idx - 1, 0, sum + tmp * tmp2);
s[idx] = '*'; f(idx + 1, tmp * tmp2, idx + 1, sum);
s[idx] = ' '; f(idx + 1, tmp, tmp2 * 10 + idx + 1, sum); }
else {
s[idx] = '+'; f(idx + 1, idx + 1, 0, sum + tmp);
s[idx] = '-'; f(idx + 1, -idx - 1, 0, sum + tmp);
s[idx] = '*'; f(idx + 1, tmp, idx + 1, sum);
s[idx] = ' '; f(idx + 1, tmp *10 + (tmp > 0 ? idx + 1 : -idx - 1), 0, sum); } }

int main(void)
{
f(1, 1, 0, 0);
return 0;
}
966デフォルトの名無しさん:2012/04/25(水) 20:08:30.69
>>960
ありがとうございます!!
967デフォルトの名無しさん:2012/04/25(水) 21:12:49.09
>>881
しつこいようだがソース全文提出orそれに近いものが条件でない場合アルゴリズムの学習をすること。
「自分で作ってきたよね?じゃあそれに除算機能も追加できるよね^^?」
こんなこと言いだす先生が相手の場合ソース丸暗記だけじゃ歯が立たないよ。
出題形式が先生自作プログラムの穴埋めの場合もまた然り。
試験落ち過ぎだろ…もちろん881の方の事じゃ無い!

脳内思考そのままコードにしている奴が言うセリフじゃないんでしょうけど。
965を参考に勉強するから良いんです。
半分以下だと流石に悔しい…。
968デフォルトの名無しさん:2012/04/25(水) 21:17:08.67
>967
とりあえず落ち着け。日本語が分からん。
969デフォルトの名無しさん:2012/04/25(水) 21:23:07.60
単純に演算子を配列に入れるだけなら、再帰より>>964のほうが速いだろうけど
全部入れ終わってから計算を始めると、同じ計算を何度もすることになるから遅くなる
970デフォルトの名無しさん:2012/04/26(木) 03:22:49.18
>>967
言いたいことは分かる。
分かるけど、脳内思考そのままコードにするのはそれでよくて、重要なのは脳内思考を変化させること。
971デフォルトの名無しさん:2012/04/26(木) 07:43:51.63
>>968 我 是 日本人、不是 中国人 ワカッタアルカ?
972デフォルトの名無しさん:2012/04/26(木) 10:06:16.43
そうだね、途中まで同じ計算なら、それを使って残りの数字で100になるパターンを探した方が良い罠
973デフォルトの名無しさん:2012/04/26(木) 17:47:00.10
得意げなバカは結局何も考えてない
974デフォルトの名無しさん:2012/04/26(木) 18:02:53.29
他人を見下す奴ほど、問題点は指摘するが改善点を示さない
975デフォルトの名無しさん:2012/04/26(木) 18:20:43.96
何を言ってるか理解できないからってそうやって煽ってみても、
お前が理解できるように説明なんかしてくれないよw
976 ◆jPpg5.obl6 :2012/04/26(木) 18:35:54.73
[1] 授業単元:C言語
[2] 問題文:2値化処理を行って画像明るい(暗い)領域を抽出することを考える。
微分ヒストグラム法を用いて2値化閾値選択を行い、画像を2値化するプログラムを作成し、
その画像に適用した2値化画像とヒストグラムを出力するようにせよ。
[3] 環境
 [3.1] OS: linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C言語
[4] 期限: 5/1
宜しくお願いします。
977 ◆jPpg5.obl6 :2012/04/26(木) 18:38:12.64
[1] 授業単元:C言語
[2] 問題文:2値化処理を行って画像明るい(暗い)領域を抽出することを考える。
微分ヒストグラム法を用いて2値化閾値選択を行い、画像を2値化するプログラムを作成し、
その画像に適用した2値化画像とヒストグラムを出力するようにせよ。
[3] 環境
 [3.1] OS: linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C言語
[4] 期限: 5/1
宜しくお願いします。
978デフォルトの名無しさん:2012/04/26(木) 18:39:12.17
[1] 授業単元:C言語
[2] 問題文:2値化処理を行って画像明るい(暗い)領域を抽出することを考える。
微分ヒストグラム法を用いて2値化閾値選択を行い、画像を2値化するプログラムを作成し、
その画像に適用した2値化画像とヒストグラムを出力するようにせよ。
[3] 環境
 [3.1] OS: linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C言語
[4] 期限: 5/1
宜しくお願いします。
979デフォルトの名無しさん:2012/04/26(木) 18:41:15.79
画像フォーマットが問題だ
980デフォルトの名無しさん
>>975
お前は何を言っているんだ?