あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他の発言はスルーの方向で。
【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
>>2以降にあります。
・問題文は、出題されたまま全文を書いてください。
・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。
NG推奨:◆QZaw55cn4c
自分勝手な仕様変更をしたり正常に動作しないコードを書くなどするうえに
無駄な煽りを行う要注意人物
幹より太くなる枝はない。「本木に勝る末木なし」で検索
テンプレは
>>1-2だけです。できる限り、問題の提出と解答だけが
並ぶように運用しましょう。これレスも含めて余計なちょっかいには
スルーを。
[1] 授業単元:C言語
[2] 問題文 初期状態をファイルより読み込みライフゲームを実行しなさい
[3] 環境
[3.1] OS: Windows7
[3.2] コンパイラ名とバージョン: VisualStudio2010
[3.3] 言語: C言語
[4] 期限: 2/5
[5] その他の制限: ライフゲームの作成です。セルの生死を判定するための条件付けをうまく記述することができません。
他にもツッコミどころ満載ですがどなたか指摘していただけると助かります。お願いします
http://ideone.com/LFPu6 次スレがあるにもかかわらず前スレに書き込んでしまいました。こちらに再度書き込みさせていただきます
>>7 >次スレがあるにもかかわらず前スレに書き込んでしまいました
前スレがまだ埋まってないにもかかわらず次スレに書き込んでしまいました
だろ なんでこっちに書くんだよ
>>7です。申し訳ありませんいただいたコード参考にさせていただきます有難うございました
11 :
デフォルトの名無しさん:2012/02/05(日) 16:48:15.28
[1] 授業単元:C言語
[2] 問題文:狼と山羊とキャベツと男 (深さ優先探索)
[3] 環境
[3.1] OS: ubuntu linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C言語
[4] 期限: 2/5
よろしくお願いします。
12 :
デフォルトの名無しさん:2012/02/05(日) 16:49:35.29
>>11 >[2] 問題文:狼と山羊とキャベツと男 (深さ優先探索)
これじゃあ無理。
問題文は、出題された内容をそのまま書け。
14 :
デフォルトの名無しさん:2012/02/05(日) 17:25:16.49
>>14 >>1 >・問題文は、出題されたまま全文を書いてください。
重要なのは仕様。
他言語で書いてるのと、今回の宿題とが同じ仕様かどうか判断ついてないだろ?
狼と山羊とキャベツと男
18 :
デフォルトの名無しさん:2012/02/05(日) 19:56:20.34
どうやって出題されたんだよw
無言でソース渡されたのかw
20 :
デフォルトの名無しさん:2012/02/05(日) 22:23:48.58
>>19 こういうことですかね・・・
、「狼・山羊・キャベツ・男」の問題を幅優先探索を使って解くプログラムを作成してもらいます。
プログラムはC言語で作成してもらえればどのようなものでも構わない。
0: [ 男狼山羊キャベツ] [ ]
1: [ 狼キャベツ] [ 男山羊]
…
?: [ ] [ 男狼山羊キャベツ]
のように移動する過程が分かるように左岸と右岸にいるものをステップごとに表示するようにしてください。
>>20 お前がそのように想像するなら、その想像にしたがって作ってやればいいじゃないか。
要するに、
そこのperlスクリプトを移植してくれ!!!!!
って話だろ
話の中身はカンタンだよ
25 :
デフォルトの名無しさん:2012/02/05(日) 23:12:21.45
前スレ975です
「標準ライブラリ」は使わないっていう条件は間違えです。すみません。
改めてお願いします。
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):2つの文字列(s[1][3]={"abo"},t[3][1]={"b","c","a"})の中で同じ文字があったらその文字を表示し、
なかったら同じ文字はないことを表示するプログラムを作れ。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc 3.4
[3.3] 言語: C
[4] 期限: 2月6日まで
26 :
デフォルトの名無しさん:2012/02/05(日) 23:47:46.75
>>24 ありがとうございます。
感謝しきりです。
拙い説明で誤解や説明足らずで申し訳ありませんでした。
>>25の問題考えたやつプログラミングしたことないだろ
3決めうちとか'\0'どこ行くんだよとか
またクズ養成校か
>>28 まじか、不足してる点が分かるなら何を調べればいいか教えてほしい
疑問はtの定義で右辺の'\0'の行き場が左辺にないことなんだけど
32 :
31:2012/02/06(月) 00:38:50.45
おお、JISを読んでたら確かに正しそうということが分かった
ヌル文字は空きがあるときだけくっつくのね
以下引用(JISX3010 6.7.8 初期化)
>文字型の配列は,単純文字列リテラルで初期化してもよい。それを波括弧で囲んでもよい。単純文字列
>リテラルの文字(空きがある場合又は配列の大きさが分からない場合,終端ナル文字も含めて。)がその配
>列の要素を前から順に初期化する。
#include<stdio.h>
#define N 10
#define M 3
char s[1][N]={"abo"};
char t[M][1]={"b","c","a"};
int main(){
int i,j,count=0;
for(i=0;i<N;i++) for(j=0;j<M;j++)
if(s[0][i]==t[j][0]){
printf("%c ",s[0][i]);
t[j][0]='\0';
count++;
}
if(count==0) printf("*not match*");
printf("\n"); return 0; }
34 :
デフォルトの名無しさん:2012/02/06(月) 00:57:26.52
[1] 授業単元:C言語
[2] 問題文:狼と山羊とキャベツと男 (幅優先探索)
http://ideone.com/9r5cn [3] 環境
[3.1] OS: ubuntu linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C言語
[4] 期限: 2/6
何卒よろしくお願いします。
よろしくお願いします。
37 :
デフォルトの名無しさん:2012/02/06(月) 05:13:08.91
[1] 授業単元:C言語 演習
[2] 問題文:
目的:do文とwhile文の使い分けができる.
e^xをマクローリン展開すると
e^x= Σ[n=0,∞] x^n/n^2
となる.これより,x=1とすると,自然対数の底eの値を求めることができる.
そこで,マクローリン展開を用いて,eの値を小数第7位まで求めなさい.
また,math.hに含まれている関数exp()より求められる値と比較しなさい(差も求めること).
※n番目までの合計とn+1番目までの合計の差の絶対値 (fabs())がε=1.0*10^-8
(C言語では1.0e-8)以下になるまで繰り返し計算すれば良い.
実行結果には各nのときのeの値も表示しなさい.
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C言語
[4] 期限: 2/13
お手数ですがよろしくお願いします。
>>37 >e^xをマクローリン展開すると
>e^x= Σ[n=0,∞] x^n/n^2
n=0だと∞になるけどこの式あってる?
分母はn!じゃなかったか?
40 :
デフォルトの名無しさん:2012/02/06(月) 13:18:42.35
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
http://codepad.org/6CjGO1SI [3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2月6日まで
クイックソートの問題です。
centerの値がうまく出力されません、どうぞよろしくお願いします。
>>25 本当にWindowsでgcc3.4なのかがあやしいんだけど。
意地悪な人だとその環境でしか動かせないコードを上げる場合があるよ
>>40 >・問題文は、出題されたまま全文を書いてください。
問題文は?何の説明もなく埋めろと言われたの?
centerとpivotてどう違うの?
>>40 大幅に書き換えれば動くだろう。
宿題じゃなく、自作プログラムのデバッグならそう書いてくれ。
44 :
デフォルトの名無しさん:2012/02/06(月) 15:41:45.61
>>42 問題文がこれだけです
「クイックソートを完成させなさい.
ただし,以下の仕様を満たすものとする.
・最も左側の要素を軸とする.
・軸と等しい値は右側に移動する.
・関数void quick(int a[], int left, int right)の中で,leftがright以上になったときに,再帰処理を終了する.
」
あとはヒントとしてpartitionの例が示されていました
例が
1 iを数列の左端、jを数列の右端と設定
2数列を右に操作していき軸以上の数字がある位置iをみつける
3数列を左に操作していき軸以上の数字がある位置jをみつける
4i>=jならループを抜ける
5ij項を交換し2にもどる
6左端の軸とj項を交換する
return i;
}
とだけ書いてありました。
本当にこれ以外情報がありませんが、何卒よろしくお願いします。
45 :
デフォルトの名無しさん:2012/02/06(月) 17:21:45.18
[1] 授業単元: 情報処理
[2] 問題文(含コード&リンク):
(1)再帰を使って、異なるn個の整数からr個の整数を取り出す組み合わせの数 nCr を求める関数 int combination( int n, int r)を作成せよ
またこの関数を用いて 5Cr (r=0 〜 5)を出力するプログラムを作成せよ。なお次の関係式を用いること。
nCr=n-1Cr-1+n-1Cr,nC0=nCn=1,nC1=n
(2) 3つのint型整数 n1, n2, n3を昇順( n1 < n2< n3 )に並べ替える関数 void sort3(int *n1, int *n2, int *n3)を作成せよ。
この関数を用いて、main内で宣言された3つのint型整数 a1, a2, a3 の値を並べ替え 、その結果を表示するプログラムを作成せよ。 a1, a2, a3の初期値は、 a1=3, a2=1, a3=0とする。
(3)要素数n個のint型配列 a の各成分の値を2倍したものを別の配列bに代入する関数 void atob(int *a, int *b, int n) を作成せよ。ここでa,bにはポインタを用いること。
この関数を用いてint型配列 va=(1, 2, 1) の各成分の値を2倍したものを別の配列 vbに代入し、vbの各成分を出力するプログラムを作成せよ。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:
[3.3] 言語: C++
[4] 期限:できれば今日中にお願いします。
[5] その他の制限:
よろしくお願いします。
46 :
デフォルトの名無しさん:2012/02/06(月) 17:34:23.39
[2] 問題文(含コード&リンク):
http://ideone.com/vq9tk 上の物と、JISコード表(C言語風表記)のものを参考にして、小文字アルファベット(a〜z)から成る文字列を読み取り、a〜z各文字の出現回数を数えてその結果を出力するプログラムを作成せよ。
aから数えて n 番目の小文字アルファベットを出力するには putchar(‘a’+n) とすればよい。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:
[3.3] 言語: C++
[4] 期限: すみませんが今日中でお願いします。
[5] その他の制限
この問題を貼るの忘れてました。よろしくお願いします。
47 :
デフォルトの名無しさん:2012/02/06(月) 17:44:43.43
[1] 授業単元:
[2] 問題文(含コード&リンク):
http://ideone.com/uDssA 上を参考にして、2次元配列として宣言された文字列 st[][6]に含まれる英字を全て大文字に変換する関数 strary_toupper( char st[][6], int n)を作成せよ、
ここで n は2次元配列stの行数を指定するものとする。
そして、strary_toupperを用いて、次のように宣言された文字列 char cs[][6] = {“turbo”, “na”, “dohc”}; の英字を全て大文字に変換し、変換後の文字列を表示するプログラムを作成せよ。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
[3.3] 言語: C++
[4] 期限:
[5] その他の制限
お願いします。
50 :
デフォルトの名無しさん:2012/02/06(月) 18:31:45.90
>>48 ありがとうございます。
ただ申し訳ないのですが、コンパイルできません。
(1)を試してみたのですが、コンパイルできず下のようなメッセージが出ました。
なぜこうなるのかわかるようでしたら、教えてください。すみません。
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
en11-01.cpp:
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
Error: 外部シンボル '_main' が未解決(Z:\DOCUMENTS\C\BCC55\LIB\C0X32.OBJ が参照)
51 :
デフォルトの名無しさん:2012/02/06(月) 18:40:55.50
<<49
ありがとうございます。
申し訳ないのですが、コンパイルはできたのですが、その後の動作させたところ
文字列の読み取りができません。お手数ですが、どうしてこうなるのか教えてください。
54 :
デフォルトの名無しさん:2012/02/06(月) 19:06:10.32
>>48 >>49 お騒がせしました。解決しました。
本当にありがとうございました。
>>50 ideone.comでは動作してるから、環境の問題じゃないか?
2倍と2乗の区別はつけようぜ
57 :
デフォルトの名無しさん:2012/02/06(月) 19:30:16.70
>>54ですが、
>>45に関してはうまくいったのですが、やはり
>>46に関してうまく読み取りができません。
>>53の方がおっしゃるCtrl+Dも試しましたが、^Dとなるだけで読み取れませんでした。
やはり
>>55の方がおっしゃるように環境の問題でしょうか?
わかる方がいましたら教えてください。
何度もすみません。
>>57 ファイル名にハイフンが入っているからとかじゃない?
Windowsだったら Ctrl-Z リターン
60 :
デフォルトの名無しさん:2012/02/06(月) 20:18:31.30
>>40ですが
http://ideone.com/OsVQt このようにプログラムをくんだのですが
partitionで右からの探索のときpivotと同じ値のときはよみすすめよるような
構造に変えたいのですが
60: while(j>=left && a[j]>=p) j--;
とかきかえると無限ループしてしまいます。
これを解消するためにはどこを直せばいいでしょうか?
61 :
デフォルトの名無しさん:2012/02/06(月) 20:22:27.90
ああん、書き忘れ!
これと
if(0)
while(j>=left && a[j]>p) j--;
else
while(j>left && a[j]>=p) j--;
これを用意して
check(a, left, right, p, center);
printf(" quick(a=%p, left=%d, center-1=%d);\n", a, left, center-1);
quick(a, left, center-1);
printf(" quick(a=%p, center=%d, right=%d);\n", a, center, right);
quick(a, center, right);
出力の変化で違いを見ていったらすぐ分かったよ
もう、もうね、色々書き忘れ。
main() に return 0;がなかったのと、
int a[N] = {3, 8, 6, 0, 1, 7, 2, 9, 4, 5};
こうやってa[]を初期化した方が楽でしょうというのと、
scanf()で入力を読み取る場合でも、
こういうのを用意しておいて、
tech40.txt
3
8
6
0
1
7
2
9
4
5
gcc -Wall tech40.c -o tech40 -g && ./tech40 < tech40.txt
こうやって毎回入力する手間を省きましょう。
65 :
デフォルトの名無しさん:2012/02/06(月) 21:37:04.84
>>64 ありがとうございます、無事解決しました!!
個人的には
>>62よりも
>>63-64のdebugの仕方の方が重要なので、
debugの仕方を身につけて下さい。
話それるけど、ideaoneで無限ループ入ったらどうなるんだろうと
思ってやってみたら、ちゃんと実行時間で切ってるのね。。
log inなしユーザーだと5sなのか。disabledなチェックボックスは
そう言う意味だったのね。。
http://ideone.com/GJ9d2 クソレスでした
いや、出力の大きさっぽいよ
Usage
SIGXFSZ is sent to a process when it causes a file to grow larger than
the maximum allowed size, as determined by the ulimit system call and shell builtin.
>>64 書き忘れじゃなくて、後から見つけただけじゃないの?
71 :
デフォルトの名無しさん:2012/02/06(月) 22:32:00.87
>>39さん
ありがとうございます。
感謝してます。
ただ、出力が
0: [ 男 狼 山羊 キャベツ ] [ ]
1: [ 狼 キャベツ ] [ 男 山羊 ]
2: [ 男 狼 キャベツ ] [ 山羊 ]
3: [ キャベツ ] [ 男 狼 山羊 ]
5: [ 男 山羊 キャベツ ] [ 狼 ]
7: [ 山羊 ] [ 男 狼 キャベツ ]
8: [ 男 山羊 ] [ 狼 キャベツ ]
9: [ ] [ 男 狼 山羊 キャベツ ]
6の数字が飛ばされて表示されるのですが、直してもらえないでしょうか。
自分では分かりませんでした。
http://ideone.com/D6KUc
>>70 どっちもかな?
出力の大きさがある一定の大きさ以上になった場合と
経過時間が一定時間よりも長くなった場合
どっちも
[2]問題文
次の1から3の全てを利用した自作ツールをひとつ作成してください。テーマは自由とします。
1 ポインタの利用
2 構造体の利用
3 Makefileを利用した分割コンパイル
簡単なところでは、UNIXコマンドの自作です。例えば、headやtailなど。
あるいは簡単な統計処理ツールの自作です。
ファイル処理やコマンドライン処理を使えば、ほぼ条件はクリアされます。
[3.1] OS: unix
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限:2月7日(出来れば早めにお願いします)
この条件であれば何でも良いので良い例のプログラムを一つお願いします。
76 :
67:2012/02/06(月) 22:55:33.41
>>75 その条件を満たしていれば「死ね」と表示するツールでもいいのだな。
81 :
デフォルトの名無しさん:2012/02/07(火) 01:42:24.57
>>80さん
ありがとうございます。
こんなに懇切に対応してくださって感謝しきりです。
ありがとうございましたm(_ _)m
82 :
デフォルトの名無しさん:2012/02/07(火) 18:09:37.71
83 :
デフォルトの名無しさん:2012/02/07(火) 21:06:50.73
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):
自然数は4個の整数の立方数で表すことができると予想されている。 例えば70=(-21)^3+20^3+11^3、72=4^3+2^3。
このことを1000までの整数に対して確かめるプログラムを作成せよ。
効率よく探索しないとプログラムが停止しないので注意せよ。
[3] 環境
[3.1] OS:Windows7
[3.2] gcc 4.5.3
[3.3] C
[4] 2月末まで
n = 1..1000
if (n is cubic) n = a^3; end;
else
_a=-n..n
_if(n-a^3 is cubic) n-a^3 = b^3; end;
_else
__b=-n..a
__if(n-a^3-b^3 is cubic) n-a^3-b^3 = c^3; end;
__else
__c=-n..b
___if(n-a^3-b^3-c^3 is cubic) n-a^3-b^3-c^3 = d^3; end;
のような感じにやってみたり総当たり戦くらししか思いつかないのですが
どちらもかなり時間が掛かってしまう上、n=31の場合など取りこぼしもしてしまいます
何か効率の良い方法はありませんでしょうか?長文で失礼致します
>>83 // 実行時間 13秒 これ以上早くする方法は分からない
#include <stdio.h>
#define NITEM(arr) (sizeof(arr)/sizeof(arr[0]))
typedef struct{
int element_num;
int element[4];
}answer_t;
int cubic[200];
answer_t answer[5000000]; // 571 を計算できるサイズ
void update(int from, int to, int new_elm){
if(to<0 || NITEM(answer)<=to) return;
if(answer[to].element_num>=0) return;
answer[to]=answer[from];
answer[to].element[answer[to].element_num++]=new_elm;
}
int main(void){
int i, j, k;
for(i=0;i<NITEM(cubic);i++) cubic[i]=i*i*i;
for(i=1;i<NITEM(answer);i++) answer[i].element_num=-1;
for(i=0;i<4;i++){
for(j=0;j<NITEM(answer);j++){
if(answer[j].element_num!=i) continue;
for(k=0;k<NITEM(cubic);k++){
update(j, j+cubic[k], k);
update(j, j-cubic[k], -k);
}
}
}
for(i=1;i<=1000;i++) printf("%4d : %.0d %.0d %.0d %.0d\n", i, answer[i].element[0], answer[i].element[1], answer[i].element[2], answer[i].element[3]);
return 0;
}
ラグランジュの四平方定理
ヤコビの四平方定理
あたり
91 :
デフォルトの名無しさん:2012/02/08(水) 00:09:34.53
>>84 こんなに早くありがとうございます
非常に助かりました
92 :
デフォルトの名無しさん:2012/02/08(水) 00:15:01.44
>>88 ありがとうございます。できれば@の方もお願いします。
(キーボードから入力する必要はありません。)
[1] ビット操作
[2] 問題文
入力された数値の先頭ビットを判定し、プラス/マイナスを表示する
*入力する変数はchar型で%d入力*
実行結果
数値入力==>10↓
プラスの値です
---------------
実行結果
数値入力==>-2↓
マイナスの値です
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:CPad for Borland ver2.31
[3.3] 言語:C
[4] 期限: 2012年2月8日16:00
よろしくお願いします
/*
>>95 */
#include <stdio.h>
int main(void)
{
char c;
printf("数値入力==>");
scanf("%hhd", &c);
printf("%sの値です\n", (c & 128) ? "マイナス" : "プラス");
return 0;
}
99 :
デフォルトの名無しさん:2012/02/08(水) 08:46:52.37
100 :
25:2012/02/08(水) 18:40:20.08
ありがとうございました。
101 :
デフォルトの名無しさん:2012/02/08(水) 19:02:51.47
[1] 授業単元:C言語演習
[2] 問題文(含コード&リンク):文字列{"Osaka","Kyoto","Tokyo"}
関数@を2回呼び出して文字列(二次元配列)から2つの別々の文字列(一次元配列)を抜き出し、その文字列と文字数を表示せよ。
また、その2つの文字列を関数Aに渡し、2つの文字列内に同じ文字があればその文字を表示せよ。
関数@x行目のy番目の文字からz個の文字を抜き出し、その抜き出した文字数を返す関数。
(抜き出した文字数はNULL文字を含んだ文字数)
関数A2つの文字列内に同じ文字があればその文字を返し、なければNULL文字を返す関数。
x、y、zの値は自分で決めてよい。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2月9日まで
[5] その他の制限:文字列処理の標準関数は使用しないこと。
よろしくおねがいします。
何か質問があったら言ってください。
[2]問題文
次のソースプログラムをMakefileを利用した分割コンパイルで実行出来るよう組み替えなさい
http://codepad.org/mnddLSDK [3.1] OS: unix
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限:2月8日 23時まで
分割コンパイルのコマンドもよくわからないため一緒に解説できたらおねがいします
>>102 それC言語プログラムの問題じゃないだろ。プログラムはすでに出来てるんだろ。
makeコマンドの使い方調べろ。
>>103 言葉足りませんでした このプログラムを2つのファイルに分割してa.outを生成するよう指示されています
分割したプログラムの作成がよく解らないのです
105 :
102:2012/02/08(水) 19:46:27.38
>>104 >2つのファイルに分割して
どういう基準で分割するんだ
それによって話が変わる
107 :
102:2012/02/08(水) 21:01:20.04
>>106 すみません特になにも指示されておりません
ただmakefileを利用した分割コンパイルするために一つのプログラムを二つに分割してコンパイル出来るようにしろといわれてます
108 :
デフォルトの名無しさん:2012/02/08(水) 21:17:56.88
>>107 「a.out」を作ればいいってことだから、必要なソースファイル(.cのファイル)は1つだ
これを「a.c」としよう ←main関数をコピって入れとけ
それから構造体kyuuyo、syain_dtの宣言文をヘッダファイル「a.h」に移動させろ
んで、a.c側で#include "a.h"
ソースはそれで完成
makefileには
a.exe:
gcc a.c
とでも書いとけ
あとはmakeしたら「a.out」と「a.exe」ができるだろ、たぶん
何でa.exeなんだよ
コンパイルオプション指定すんのが面倒だったからだよ
話にならん
elf
>>101 疑問1:
>>関数@x行目のy番目の文字からz個の文字を抜き出し、その抜き出した文字数を返す関数。
「文字列を返す」だと思うが?
文字数を返すとなると、
>>また、その2つの文字列を関数Aに渡し、2つの文字列内に同じ文字があればその文字を表示せよ。
の部分の、Aに渡す文字列をどうやって取得するか不明。
疑問2:
関数Aに、"yoto","kyo"を渡した場合、返す文字は"oo"?
114 :
102:2012/02/08(水) 21:51:29.41
>>108 ありがとうございました ぶじ完成しました
>>113 X >関数Aに、"yoto","kyo"を渡した場合、返す文字は"oo"?
O >関数Aに、"yoto","kyo"を渡した場合、返す文字は"yoo"?
118 :
名無し:2012/02/09(木) 16:31:20.52
>>118 バカがたくさんいるからバカ山大学なのか
覚えたぞ
120 :
名無し:2012/02/09(木) 16:58:06.58
ばかだから教えてください
>>118 後輩よ、焦る気持ちはわかるがまずはテンプレを読もうぜ
よそでも聞いてるからほっといていいよ
123 :
名無し:2012/02/09(木) 17:36:58.99
GLUTの宿題は無理ですか?
お前の態度が気に入らないだけだよ。
125 :
名無し:2012/02/09(木) 17:41:05.87
すみません
126 :
名無し:2012/02/09(木) 18:14:57.01
宿題お願いします
良さげな先生なので、床井研究室にメールだせばいいのかね?
128 :
名無し:2012/02/09(木) 18:53:05.63
おことわりします
130 :
名無し:2012/02/09(木) 19:40:29.09
そうですか
ubuntuに最初からopenGLとか入ってるモンなのか?
もしかすると環境構築からはじめなきゃあ行けないとかいうアホな相談を持ちかけてんのかこのアホクズは?
大学のURLを貼るとか馬鹿かよ
知恵袋でカンニングして逮捕されたアホと同じだわ
>>131 研究室サイトには、インストール方法載ってるから、がんばれ
どこのページだよwww
そんくらい載せろよkswwwww
そんなんだからAFOなんだよw
めんどくせーなー
とか言われて投げられるのがオチだろ
弱い者たちが夕暮れさらに弱い者を叩く
これ暗黙のうちにサラリとvisualstudio2008インストールしろとか言ってるよな?
その説明サイトはどこよアホ
ぬかりなくやれよ 時間と資源の無駄だ葛
>>131 $ sudo apt-get install freeglut3-dev
するだけじゃね?1分も掛からないよ
>>138 そうならそうとそれを初めっから書けばいいじゃんwwww
>>139 deb系OSでGLUT使うなら常識じゃん
それすら知らない人に聞いたってしょうがないじゃん
>>140 アホじゃねおめー
それなら
>>138の文言はいらねーだろwww
分かる人ならすでに入っているしやり方も知ってる、
そんな人間に
>>138なこと書いても意味が無いと自分?で言ってる、
おめーの脳みそアホの塊で出来てんのか?
で、やるのかね、やらないのかね
>>141 140は質問する立場からしたらってこと
138は単に131を馬鹿にしてるだけ
説明読んで、とりあえず、仮想ジョイスティックまでは組んだが、
眠いので寝るw
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
http://codepad.org/gcasKWhG ハッシュ表を用いて単語とその出現回数を登録し、
さらに単語の出現回数順にソートするソート関数を作成せよ。
[3.1] OS:Mac
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2月11日まで
基本的な骨格は出来ましたが、ソートの関数が作れませんでした。
よろしくお願いします。
Macのターミナルを利用してテキストファイルを読み込み、単語(基本的に英単語)を登録します。
コードでエラーが出てますが、最初に定義したSIZEという数をMAXWORDに変えるのを忘れたために起こってます。
サンプルテキストくらい付けろks
>>146 間違っていたら悪いけれど、
ハッシュ表を用いてないように思える。
連想リストになってる?
perlerならハッシュはハッシュとしか言いよう無い
この文脈ではハッシュはハッシュ関数
151 :
◆g/ZMVdytmo :2012/02/09(木) 23:12:05.16
[1] 授業単元:プログラミング演習
[2]複数の人の名前と体重、身長を質問してBMI値を計算して、「名前、体重、身長、BMI値、判定結果(やせている、普通、肥満、等)」をファイルに保存しなさい。
人数は最初に質問して入力させること。
実行の結果作成されたファイルは、メモ帳などで開いて内容を確認すること。
BMI値が20未満なら「やせています」、20〜24未満なら「普通です」、24〜26.5未満なら「やや肥満です」、26.5以上なら「肥満です」と判定すること。
身長と体重は小数点以下まで扱えるものとする。
BMI値=体重(kg)/(身長(m))^2
[3] 環境
[3.1] OS:Windows Vista Home Premium
[3.2] コンパイラ名とバージョン:bcc
[3.3] 言語: C言語
[4] 期限: 2/10 AM08:00(今日)
[5]if文,for文、while文は習いました。
よろしくお願いします。
予言しよう
次の宿題は「身体測定のファイルを開いてBMIを計算しろ」になるはずだ
マクロスとかガンダムのBMIだろJK
154 :
149:2012/02/09(木) 23:41:21.64
ハッシュ値が被ったときのために連想リストを使うこともあるのか。
ハッシュ表なんて実装したことがなかったから全然知らなかった。
そんなの情報処理技術者試験の問1レベルの話だしCの初歩の授業でもやるだろ・・・
チェイン方法ていう。
オープンアドレス方だとむずいのよ・・・いろいろ。
158 :
146:2012/02/10(金) 00:59:43.71
ついでに聞くけど単語のカウントはできてんだよな?
その結果はどーーーーーなのよ
>>161 こんなに早くありがとうございます。
すごく助かりました 。
[1] 授業単元:プログラミング演習
[2]n個の要素からなる配列[V1,V2, V3,...,Vn]がある。
i番目の要素をViと表す。Viはそれぞれ1〜100の値を持つ。
最少値を持つViを1つ取り出せ。
同値の要素があった場合、要素番号の小さい方を取り出すこと。
(nや要素の値は適当に入れてよい)
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C言語(アルゴリズム)
[4] 期限: 2/10中
[5]if、for、while程度まではわかります。
よろしくお願いします。
165 :
164:2012/02/10(金) 03:20:36.93
ミスった。すまんなしで。
[1] 情報科学入門
[2] (1)1から1000までの間に、3と7の倍数の値がいくつ含まれているのか求めるプログラムを書け。
(2)キーボードから西暦年を入力し、その年がサッカーワールドカップ開催年かどうかを判定するプログラムを作成せよ。
[3] 環境
[3.1] WindowsXP
[3.2] すいません分かりません
[3.3] C++
[4] 2月14日まで
[5] if、forなど初歩的なコマンドを用いて作成せよ
一応自分で作ってみたんだけど、
(1)
#include<stdio.h>
int main(void){
int i,n=0;
for(i=1;i<=1000;i++){
if(i%(3*7)==0)n++;
}
printf("%d\n",n);
return 0;
}
(2)
#include<stdio.h>
int main(void){
int y;
printf("西暦年:");scanf("%d",&y);
if(y<1930){printf("1930年以前には開催されていません。\n");return -1;}
if((y-1930)%4==0){printf("開催年です。\n");}
else printf("開催年ではありません。\n");
return 0;
}
これでうまく表示されない・・・どこが間違ってますかねえ・・・
[1] プログラミング
[2][A1,A2,A3,B1,B2,B3]の6つの要素から、2つを合わせたペアを全通り出力せよ
ただし、同じ記号と数字を含む要素はペアにはできない
(例:A1A2やA1B1は×、A1B2やA1B3は○)
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C
もう寝ろよ
>>168 #include <stdio.h>
int main(void)
{
int i, j;
for(i = 1; i <= 3; i++) for(j = 1; j <= 3; j++) if(i != j) printf("A%dB%d ", i, j);
return 0;
}
>>167 >これでうまく表示されない・・・どこが間違ってますかねえ・・・
期待する結果を書けよ。
>[2] (1)1から1000までの間に、3と7の倍数の値がいくつ含まれているのか求めるプログラムを書け。
「3または7の倍数の値」なら
X if(i%(3*7)==0)n++;
O if((i%3==0)||(i%7==0))n++;
> [3.3] C++
ソースはCみたいだが?
172 :
デフォルトの名無しさん:2012/02/10(金) 15:56:11.47
どこに質問すべきか悩むのですが、人が多そうなのでここでさせて頂きます。
焼きなまし法で巡回セールスマン問題を解いているのですが、近傍の選択方法について悩んでいます。
1. ランダムにある1つの都市を選び、そこからの訪問先の都市と順序を入れ替えた場合
2. ランダムにある2つの都市を選び、訪問順序を入れ替えた場合
と2つの近傍を考えました。
ランダムに訪問順序を決めた時に総距離が30000程度である時、
1の近傍だと総距離が13000程度、2の近傍だと8500程度まで短くなりました。
なお最適解が既に知られており、最小総距離が7542だそうです。
一般にヒューリスティックな方法を採用した場合に、13000や8500というのはおよそ良い近似解と見なせるのでしょうか?
すみません
上のレスでは判断しようがありませんね
無視でお願いします
>>174 ありがとうございます
そちらで質問してみます
176 :
デフォルトの名無しさん:2012/02/10(金) 19:09:54.43
>>176 > printf(" 文字列¥n%s¥n 文字列の個数¥n%d¥n",a1,cnt+1);
これをz回実行する意図は?
179 :
デフォルトの名無しさん:2012/02/11(土) 19:49:41.79
[1] 授業単元: メタヒューリスティック
[2] 問題文(含コード&リンク):
TSPの問題ライブラリサイトTSPLIB (
http://www.iwr.uni-heidelberg.de/groups/comopt/software/TSPLIB95/)内
のkroA100.tsp,kroA150.tsp,kroA200.tsp,tsp225.tspの4種類の問題について,ランダム探索,シミュレーティド・ア
ニーリング法の3つを実装し,それらの性能の違いを議論せよ.
[3] 環境
[3.1] OS: Windows Vista
[3.2] Vidual studio C++(指定されていないので何でもOKかな)
[3.3] C
[4] 期限: (2012年2月13日13:00まで)
[5] その他の制限: 情報系の学生なら誰でも習得しているべきC言語の基本的なものはわかっているつもりです。
よろしくお願いします
> ランダム探索,シミュレーティド・アニーリング法の3つ
>>172です
後日談になりますが、最終的に最適解の1.001倍の近似解が得られるようになりました
182 :
176:2012/02/11(土) 22:04:52.23
>>178 > printf(" 文字列\n%s\n 文字列の個数\n%d\n",a1,cnt+1);
これをz回実行するのはおかしいですね
ありがとうございます。
インライン関数は関数呼び出しのオーバーヘッドを無くすとなっているけれど、
この関数呼び出しのオーバーヘッドは何クロックサイクルなのでしょうか。
組み込みか?
PCです。
>>182 今一、やりたいことが判らんないんだが、実行例を書いてみたら?
あと、x,yに範囲外(マイナスとか大きすぎる値)を指定した時はどうする?
>>183 関数の呼び出し規約によって変わるのでは
詳しくないけど。
>>167 (1)
#include <stdio.h>
int main(){
int i,n=0;
for(i=1;i<=1000;i++){
if(i%3==0||i%7==0)
n++;
}
printf("3の倍数[%d]+7の倍数[%d]-3の倍数かつ7の倍数[%d]=3の倍数または7の倍数[%d]\n",
1000/3,1000/7,1000/(3*7),n);
return 0;
}
>>188 1000/3+1000/7-1000/21
でよくね?
190 :
◆jPpg5.obl6 :2012/02/12(日) 05:16:05.84
[1] 授業単元:C言語
[2] リスト構造を使ったアドレス帳の作成。
リスト構造で管理し次の機能が実現できること。
•追加(データの新規登録)
•削除(任意のデータの削除)
•探索(任意のデータの詳細表示)
•一覧表示
•データのソー扱うデータは氏名、住所、電話番号、eメールアドレス
http://ideone.com/lMgd3 [3] 環境
[3.1] OS:Windows7
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C言語(アルゴリズム)
[4] 期限: 2/12中(今日)
[5]これ以上どうやって良いかわからないのでよろしくお願いします
前スレ
>>675 >CのIDEで良いものはありません
確かに良いものは少ない。特に最近のWindowsのIDEは
学習者向けじゃない。うNIXでは、IDE使うな主義だし。
Windowsじゃコンソールでカタカタすることは非常にやりにくい
からやっぱりIDEじゃないと苦しいかも
OpenWatcomは学習者用にお勧め.
特に16bit環境でプログラミングすると、コンピュータ特有の
メモリ量制約の問題がわかりやすく「やってはいけないこと」
とかの理解がしやすい。
LSI-Cとかでもできなくもないが同じコードで16bitと32bitの
比較が出来たりするのがWatcom
>>191 lsi-c のスモールモデル限定(ただし far ポインタはあり)というのも捨てがたいですね。
lsi-c 、オープンソースにならないかな‥‥‥。
193 :
デフォルトの名無しさん:2012/02/12(日) 09:45:39.74
>>179です。
>>180さんのご指摘がありましたので、訂正します。
[1] 授業単元: メタヒューリスティック
[2] 問題文(含コード&リンク):
TSP(巡回セールスマン問題)の問題ライブラリサイトTSPLIB (
http://www.iwr.uni-heidelberg.de/groups/comopt/software/TSPLIB95/)内
のkroA100.tsp,kroA150.tsp,kroA200.tsp,tsp225.tspの4種類の問題について,ランダム探索,山登り法,
シミュレーティド・アニーリング法の3つを実装し,それらの性能の違いを議論せよ.
[3] 環境
[3.1] OS: Windows Vista
[3.2] Vidual studio C++(指定されていないので何でもOKかな)
[3.3] C
[4] 期限: (2012年2月13日13:00まで)
[5] その他の制限: 情報系の学生なら誰でも習得しているべきC言語の基本的なものはわかっているつもりです。
よろしくお願いします
それぐぐればわかるんじゃ・・・
>>190 >>1 >・問題文は、出題されたまま全文を書いてください。
削除、探索、ソートのパラメータ指定は?(名前で削除、など)
196 :
◆jPpg5.obl6 :2012/02/12(日) 12:27:49.78
>>195 個人データを管理するアドレス帳を作ってください。
•扱う個人データ
–氏名,住所,電話番号,eメールアドレス
•プログラムの内部では,リスト構造を使用して実現してください。
リスト構造で管理し次の機能が実現できること。
•追加(データの新規登録)
•削除(任意のデータの削除)
•探索(任意のデータの詳細表示)
•一覧表示
•データのソート
基本的に名前で削除、探索です。
これで大丈夫でしょうか?
198 :
◆jPpg5.obl6 :2012/02/12(日) 12:50:49.20
時間がないことで焦っており、これを元にどうにかできないかと思い、質問してしまいました。
大変、申し訳ありませんでした
時間が無いもクソも
Name: astrea Date: 2011年12月12日(月) 13:33
2ヶ月経ってるじゃねーかよ
なんなんだこのゴミは?
マルチは干すっていう伝統がこのスレにはあってだね。
>>198 あの掲示板じゃ答えをくれないから逃げてきたってこと?
答えをくれないから見限った だろうwwwww
なぜ逃げになるんだろうねw
原則丸投げ禁止の掲示板で答えをもらおうとして、もらえなかったから「見限った」ってこと?
ゴメンネとかwww
あっちの掲示板にも詫びいれてこいよwww
下種がwwwww
別に詫びなんていらないでしょ。
日常茶飯事
諦めた
締めた
matrix(1, 10000*10000)をWindowsで高速に特異値分解したいのですが。どんなライブラリも使用可です。
212 :
デフォルトの名無しさん:2012/02/12(日) 15:35:21.22
[1] 授業単元:プログラム
[2] 問題文(含コード&リンク):
HashAlloc: 入力した数だけハッシュテーブルを動的に生成する.メモリ確保に成功すれば EXIT_SUCCESS,
失敗すればEXIT_FAILURE を返す.
HashFree: HashAlloc関数で確保したメモリを解放する
HashAdd: キーにレコードを追加する(return SUCCESS),キーが使用中ならば上書きしない(return FAIL).
HashDelete: 入力したキーを削除する.(return SUCCESS:データ削除成功, return FAIL:データなし)
HashGet: 入力したキーに対応するデータを返す.(return SUCCESS:データ取得成功, return FAIL:データなし)
http://ideone.com/bj4FM [3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc 3.4
[3.3] 言語: C
[4] 期限:2/13迄
よろしくお願いします。
213 :
デフォルトの名無しさん:2012/02/12(日) 15:36:11.41
[1] 授業単元:プログラム
[2] 問題文(含コード&リンク):
HashAlloc: 入力した数だけハッシュテーブルを動的に生成する.メモリ確保に成功すれば EXIT_SUCCESS,
失敗すればEXIT_FAILURE を返す.
HashFree: HashAlloc関数で確保したメモリを解放する
HashAdd: キーにレコードを追加する(return SUCCESS),キーが使用中ならば上書きしない(return FAIL).
HashDelete: 入力したキーを削除する.(return SUCCESS:データ削除成功, return FAIL:データなし)
HashGet: 入力したキーに対応するデータを返す.(return SUCCESS:データ取得成功, return FAIL:データなし)
http://ideone.com/bj4FM [3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc 3.4
[3.3] 言語: C
[4] 期限:2/13迄
よろしくお願いします。
大事なことなので3回目も予定してます
お前ら、プログラミング以外だと生き生きしてるなw
予定を立てるだけで守れないプログラマーが多いと聞きましたので、
僕は予定するだけでなく実行しました。
[1] 授業単元:プログラム
[2] 問題文(含コード&リンク):
HashAlloc: 入力した数だけハッシュテーブルを動的に生成する.メモリ確保に成功すれば EXIT_SUCCESS,
失敗すればEXIT_FAILURE を返す.
HashFree: HashAlloc関数で確保したメモリを解放する
HashAdd: キーにレコードを追加する(return SUCCESS),キーが使用中ならば上書きしない(return FAIL).
HashDelete: 入力したキーを削除する.(return SUCCESS:データ削除成功, return FAIL:データなし)
HashGet: 入力したキーに対応するデータを返す.(return SUCCESS:データ取得成功, return FAIL:データなし)
http://ideone.com/bj4FM [3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc 3.4
[3.3] 言語: C
[4] 期限:2/13迄
よろしくお願いします。
日本には 四度目の正直 という格言がある
正しくは、三度目の正直ですが
いいや ホトケの顔も三度まで だ
仏様は三度
日本には 三度あることは四度ある という格言がある
一匹いたら百匹いる
予定を立てるだけなのがアマグラマー
予定を守れてプログラマー
と聞きました。このスレッドにプログラマーの方はいらっしゃいますか?
予定も立てないからアマグラマですらない
達成不可能なよっていを立てるのが上じゃねの?
職業プログラマーなら引退してますが。
日本語はおk?
明日の10時半から12時までc言語のテストがあります
そのテストは持ち込み可で会話以外なにしても大丈夫なのですが(2chでスレ立ててもなにしてもよいとのこと)
テストうpしたら解いてもらえますか?
ちゃんと自分でも解きます
別にセンセにチくらててもよければ…
glutのセンセんとこに報告するよーな場所ですが・・・OK?
>2chでスレ立ててもなにしてもよい
わらた
なんのためのテストだよw
>>230 それは全く構わないが初めっからそう言う話であるとバラすと
全くの間違いを教える人間がワンサカ湧く
むしろあなたを落第させようと画策するようなコードが山のように出てくるはずだ
それで範囲はどのあたりだ
そこらへんが分かれば色々仕込んだコードを今から入念に用意できる
まあつまるところこういうこった
嘘を嘘と見抜けないと(掲示板を使うのは)難しい by ひろゆき
俺はやめとけって書いたからな。あとは知らん。自己責任で
ばらすもなにも教授が2chにスレ立てても知恵袋で聞いてもなにしてもいいと言ってました
スマホもPCも使用おkです
>>237 どれが正解か、先生に見てもらってから答えに採用すると間違いがないかも
どこの大学か教えてくれたら考えるけど?
>>237 授業時間がそういう区切りなのは高専か?
高卒?
別にスレ立てなくともここでいいと思うが、、、スレが乱立したらそれはそれでおもろいけど。
QZさんJR━―━―━(゚∀゚)━―━―━―!!
神降臨
496 名前: ◆QZaw55cn4c [sage] 投稿日:2012/02/10(金) 21:46:07.42
>>494 お前さんのほうがゴキブリに近いのでは?
なぜ意味もなく叩く?
うまく質問がすすまないのは単なるスキルの問題に過ぎないのだから、スキルの一片でもみせてやったらええんとちゃうか?
それができないのなら、それはお前さんのほうがゴキブリ。
死ね
492 名前: ◆QZaw55cn4c [sage] 投稿日:2012/02/10(金) 21:35:46.93
>>490 教員側も、実は質問されるのはうれしいと思いますよ。レスポンスがあるということは少なくとも自分の話が聞き手に届いていることを確認できますからね。
「先生の今おっしゃったことは、これこれこういうことでしょうか?」
と自分の解釈を交えながら再確認を繰り返すことがコツだと思います。
わからないことをわからないというのは、全然失礼じゃないですよ。
494 名前:デフォルトの名無しさん[sage] 投稿日:2012/02/10(金) 21:41:20.46
だから
>>490みたいなゴキブリ並の知能しかない香具師はスルーしろって。
>>248 全部自分で解きましたw
自分の答案あるんですけど
答え合わせしてもらえますか?
答えあわせのできないプログラマは要らない
252 :
デフォルトの名無しさん:2012/02/13(月) 14:15:25.45
お前が、いらない。
>>243 X int select;
O int select=1;
256 :
デフォルトの名無しさん:2012/02/13(月) 17:00:18.89
[1] 授業単元: 情報処理
[2] 問題文(含コード&リンク):
(1)ポインタ char *ptr を用いて文字列を表現した場合、putchar( *(ptr+2) )とすると文字列の先頭から2つ後ろの文字を表示できる。
このことを利用し、 文字列 char *ptr=“ABCDEF” のうち、”BCD”だけをputcharを使って表記するプログラムを作成せよ
(2)
http://ideone.com/pfKkY 上記の関数 strcatを参考にして、s1が指す文字列の末尾に ‘-’ (ハイフン)を一つ付け、
その後ろにs2が指す文字列を連結する関数 void getname(char *s1, const char *s2) を作成せよ。これを用いて、
二つのchar型配列 char str1[100] = “Yamada”, str2[100] = “Taro” を連結して “Yamada-Taro”という文字列を表記するプログラムを作成せよ。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: 不明
[3.3] 言語: C
[4] 期限: 今日中
[5] その他の制限:特になし
よろしくお願いします。
> void getname
void?
voidで何がまずい?
>>256 (1)
#include <stdio.h>
int main(void) {
int i;
char *ptr = "ABCDEF";
for(i = 1; i <= 3; i++) putchar(*(ptr + i));
return 0; }
(2)
#include <stdio.h>
void getname(char *s1, const char *s2){
while(*s1) s1++;
*s1++ = '-';
while(*s1++ = *s2++);}
int main(void) {
char str1[100] = "Yamada", str2[100] = "Taro";
getname(str1, str2);
puts(str1);
return 0; }
voidかよ
memset と同様に引数で渡されたポインタで示す先の内容の書き換えを行う関数だな
どういう名前がいいんだろう。concat_fullnameとか?
なんでvoidなんだよwww
ジュゲムさんの本名適当に区切って繋げてみろよwww
264 :
デフォルトの名無しさん:2012/02/13(月) 17:24:37.04
>>256 題意からはポインターを使うのが順当だろうけど、以下でも可能。
void getname(char *s1, const char *s2)
{
sprintf(s1,"%s-%s",s1,s2);
}
>>265 sprintf って第一引数のポインタと 第三引数以降で詰まれるポインタが同じ場合でも
正しく動作できるん?
memcpy のコピー先がコピー元と被ってる時のイメージでどうなのかな?とは思うけど
未定義動作だったような気がする
つmemmove
>>268 それは分かってる。 sprintf で同じようなことが発生しないの?という疑問
sprintfでも、コピー先とコピー元が重なれば未定義になる
つまり
>>265はどうしようもないアホ
sprintf(s2,"%s-%s",s1,s2); ならアウト。
>>254 不要でしょう。どのみち 202行目〜203行目で値が必ず入ります。
そもそも auto 変数を初期化するその書き方が「Cらしくない。」
>>271 sprintf(s1,"%s-%s",s1,s2); なら?
>>273 「たまたま上手くいく」って事じゃない?
>>273 sprintf(s1,"ABC-%s-%s",s1,s2);
これだと駄目
>>272 199行目の while(select != 0){
で、selectが初期化されてないんじゃ?
strncatの話?
いや、strcatの話
じゃなくてnだったごめん
Cでのファイルの入出力で苦戦しています。
あるディレクトリに"data.txt", "input.c"を用意し、"data.txt"の内容をそのまま"new.txt"に出力しようと考えています。
ここで、"data.txt"の内容は
tom 21 176.2 67.8
eri 23 155.4 48.2
takeshi 20 187.3 67.3
であり、
また、"input.c"の内容は
#include <stdio.h>
struct ps{
char name[100];
int year;
double ht;
double wt;
};
int main(void) {
FILE *in;
FILE *out;
struct ps inv[3];
int i = 0;
in = fopen("data.txt", "r");
fread(inv, sizeof(struct ps), 3, in); fclose(in);
for(i=0; i<3; i++) {
printf("%s\t%5d%7.1f%7.1f\n",
inv[i].name, inv[i].year, inv[i].ht, inv[i].wt);
}
out = fopen("new.txt", "w");
fwrite(inv, sizeof(struct ps), 3, out);
fclose(out);
return 0;
}
です。
しかし、これを実行した結果作成される"new.txt"の内容が
tom 21 176.2 67.8
eri 23 155.4 48.2
takeshi 20 187.3 67.3
3^@<93><89><84>^@?<82>^D^H^@^@^@^@M'4^@^B^@^@^@?^_5^@?<9b><83>^@^A^@^@^@^X;<
87>???3^@<%5^@?*5^@^@^@^@^@^@^@^@^@^X;<87>?^@^@^@^@^@^@^@^@^@^@^@^@^C^@^@^@.N=??^C^@^@^@^@^@^@?'<84>^@^@^@^@^@<8c>
?4^@?<9d><83>^@,^@^@^@^@^@^@^@^@^@^@^@^A^@^@^@<9e>^H^@^@H;<87>?X8<87>??<82>^D^H?/<84>^@,<82>^D^H^A^@^@^@?^_5^@?*5^@^P<91>???<90>??y?3^@?<90>??,<82>^D^H?
<90>??t*5^@^@^@^@^@H;<87>?^A^@^@^@^@^@^@^@^A^@^@^@^X)5^@<8a><90>??<8b><90>??^A^@^@^@YS<8b>^@<8b><90>??<8a><90>??
?^@^@^@^A^@^@^@?WV^@^@^@^@^@}0´,?<9f>^D^H^A^@^@^@y<83>^D^H^X)5^@?<82>^D^H?<9f>^D^Ha<86>^D^H^@<84>^D^H^@^@^@^@?<8b><86>^@$?<9a>^@??<9a>^@
と、出力データの下部に不要な情報が付加されてしまいます。
どのようにすればinvからこの不要な部位を取り除くことができるのでしょうか。
すいません忘れてました
[1] 授業単元: 趣味
[3] 環境
[3.1] OS: ubuntu 11.10
[3.2] コンパイラ名とバージョン: ubuntu11.10に最初から入ってるコンパイラ
[3.3] 言語: C
[4] 期限: 無期限
[5] その他の制限: 標準ライブラリって何だろう
>>285 おおお
ありがとうございます。
入力時にはfscanfとかfreadとか使わない方がいいのですね!
独学で使ってる『わかりやすいC 入門編』にはsscanfなんて出てこなかったorz
>>286 使い方間違えておいて酷い言いようだwww
openCVを使用して
cvThresholdでエラーが出ます。どうしたらいいですか?
1>------ ビルド開始: プロジェクト: k009, 構成: Debug Win32 ------
1>コンパイルしています...
1>001.cpp
1>c:\opencv2.0\include\opencv\cvcompat.h(803) : warning C4819: ファイルは、現在のコード ページ (932) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存してください。
1>c:\documents and settings\oy\my documents\visual studio 2008\projects\k009\k009\001.cpp(24) : error C2664: 'cvThreshold' : 1 番目の引数を 'cv::Mat' から 'const CvArr *' に変換できません。(新しい機能 ; ヘルプを参照)
1> この変換を実行可能なユーザー定義変換演算子がないか、または演算子を呼び出せません。
1>ビルドログは "file://c:\Documents and Settings\oy\My Documents\Visual Studio 2008\Projects\k009\k009\Debug\BuildLog.htm" に保存されました。
1>k009 - エラー 1、警告 1
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========
>>286 >入力時にはfscanfとかfreadとか使わない方がいいのですね!
fscanfでも可能。
/* fgets(buf,sizeof(buf),in); */
fscanf(in,"%s %d %lf %lf",
inv[i].name, &inv[i].year, &inv[i].ht, &inv[i].wt);
freadは指定したサイズだけごっそり読み込む。
可変長データの場合はfgetsの方が扱いやすい。
[1] 授業単元:知識と推論
[2] 問題文 探索によってパズルを解くプログラムを作成せよ(小町算)
[3] 環境
[3.1] OS: Windows7
[3.2] コンパイラ名とバージョン: VisualStudio2010
[3.3] 言語: C言語
[4] 期限: 2/16
よろしくおねがいします><
[1] 授業単元:ゲームアルゴリズム
[2] 問題文 ローゼンケーニッヒ
[3] 環境
[3.1] OS: Windows7
[3.2] コンパイラ名とバージョン: VisualStudio2008
[3.3] 言語: C++
[4] 期限: 2/18
ローゼンケーニッヒってカードゲームなんですが、出力は標準出力だそうです・・・
お願いします
>>291 perlとかでゴリ押しすりゃあ簡単に書けるのに
なんでわざわざC使うんだろ
スレの趣旨とはやや趣を異にする質問、ご容赦ください。
OpenIndiana(OpenSolaris後継)にネットワークブリッジソフトが無い為
Linuxでの用例の多いbridge-utilsをソースからコンパイルしようとしています。
ダウンロード先(SourceForge.JP)
ttp://sourceforge.jp/projects/sfnet_bridge/releases/ やはりそのまますんなりとコンパイルは通らず、makeコマンドでエラーが出てしまいました。
生憎Cが堪能でないので、エラーだけでは構文の不整合なのか、ライブラリが足りてないのか
それともSolaris系の環境による問題なのか切り分けの判断ができません。
コンパイル時の出力結果
ttp://www.dotup.org/uploda/www.dotup.org2648680.txt # uname -a
SunOS openindiana 5.11 oi_151a2 i86pc i386 i86pc Solaris
# gcc -v
Reading specs from /usr/sfw/lib/gcc/i386-pc-solaris2.11/3.4.3/specs
Configured with: (略)
Thread model: posix
gcc version 3.4.3 (csl-sol210-3_4-20050802)
どうか解決のヒントだけでもお教えください、よろしくお願いします。
libbridge.h:23:22: linux/if.h: No such file or directory
libbridge.h:24:29: linux/if_bridge.h: No such file or directory
>>298 libbridge.h:23:22: linux/if.h: No such file or directory
libbridge.h:24:29: linux/if_bridge.h: No such file or directory
まずこれを直す。
これらのヘッダファイルがあるconfigure時にincludeパスを設定できるかどうか調べる
linux/if.hというパスに配置することができないのなら、ソースを変更するか、linux/if.hで参照できるパスにシンボリックリンクでもはる
ないならちょっとわからん。
linux 以下がカーネルソースでないとダメなら
相当量書き直さないとダメじゃね
言い換えると無理
302 :
298:2012/02/17(金) 12:47:32.37
>>299-301 アドバイスありがとうございます。
私もヘッダ部分だけ追ってみたのですが、これ無理じゃね?という気がしてきました。
SourceForgeには「システム要件:POSIX (Linux,BSD,Solaris など), Linux」って書いてあるのに・・・
ブリッジを使用しようとしてるアプリケーションのコマンド体系を変更すれば
dladmで代用できそうな予感がしてきたので、こちらの方向でチャレンジしてみたいと思います。
(しかしドキュメントや用例の多いLinuxと違って、Solaris系は必要な情報を調べるのが難しぃ)
>>302 確認する気も環境も無いけど
もしかしたら configure がダメダメなだけかもしれない
イーサネットのブリッジって、カーネルのサポートが要るわけだが、
これは単にそれを操作するためのユーティリティーかと。
でOS毎にカーネルインターフェースが違ったりするわけだが、このソフトは
なんとなくlinux専用なんじゃ。
IEEE 802.1d ethernet bridging (plus Spanning Tree protocol) for the linux kernel. Kernel code is in Linux 2.4 and 2.6 kernels.
[1] 授業単元:C
[2] n個の数の総和
[3] 環境
[3.1] OS: ubuntu linux
[3.2] コンパイラ名とバージョン:cc
[3.3] 言語: C
[4] 期限:無
[5]
アドバイスよろしくお願いします
http://codepad.org/PPgZa5ll
double xval_xsum_num(double xval double xsum)
↓
double xval_xsum_num(double xval, double xsum)
308 :
ナナシ:2012/02/22(水) 22:17:19.38
問題をそのまま書くんで出来れば今日中に教えてください・・・
2進数10110001-2進数00101110の計算を2の補数を利用して計算する
という問題です。全く出来なくて困っています、助けてください
309 :
ナナシ:2012/02/22(水) 22:17:52.14
1から5の間の自然数を10個入力する。このとき入力された数の個数を棒グラフで次のように表示させる。
例: 1の入力が4回、2では2回、3では3回、4では0回、5では1回の場合
*
* *
* * *
* * * *
1 2 3 4 5
という感じです。全くできないので助けてください
>308,309
>>1を読んでテンプレ通りに書きなよ
309はいいとしても308は具体的に何を作るのか見えない
入力は何?出力は何?
>>309 これは考えればわかる問題がんばってくださいw
313 :
ナナシ:2012/02/22(水) 22:36:12.14
すいません。聞き方が悪かったです。308は2進数をキーボードから入力します。2の補数の使いかたが全くできません。
include<stdio.h>だけでやってもらえると嬉しいです
314 :
ナナシ:2012/02/22(水) 22:38:00.98
309はグラフを縦に作るので理解できません。未熟なので力を貸してください・・・
ペロッ
これは釣り
>>309 #include <stdio.h>
int main(void)
{
int i, j, a[5] = {0}, max, n;
for(i = 0; i < 10; i++) {
scanf("%d", &n);
if(1 <= n && n <= 5) a[n - 1]++;
}
for(max = a[0], i = 1; i < 5; i++) if(max < a[i]) max = a[i];
for(i = max; i > 0; i--) {
for(j = 0; j < 5; j++) printf("%c ", a[j] >= i ? '*' : ' ');
putchar('\n');
}
for(i = 1; i <= 5; i++) printf("%d ", i);
return 0;
}
317 :
ナナシ:2012/02/22(水) 22:46:16.70
釣りじゃないです!本当に出来なくて困っています・・・
>>317 質問の仕方どうこうじゃなくてテンプレ使えって言ってんの
質問する側なんだからルールぐらい守れ
319 :
ナナシ:2012/02/22(水) 22:51:29.26
>>316さん
ありがとうございます!
でも、
printf("%c ", a[j] >= i ? '*' : ' ');
の!?ってどういう意味なんですか?
というか、使い方がさっぱり分からないです。
すいません。
玄人()は三項演算すっきゃねぇwww
if(a[j] >= i) printf("* ");
else printf(" ");
322 :
ナナシ:2012/02/22(水) 23:09:27.63
>>321さんありがとうございます!懇切丁寧に説明してくれて。
>>320さん僕は素人なんですいません。
工業高校でC言語を学び始めたもので・・・
>>319 iの後ろに1-2個の空白、そのあと任意個の'あとは書いてあるとおりだよ
回答している奴と質問している奴の自演に見える
325 :
ナナシ:2012/02/22(水) 23:18:57.00
そんなことないです。
僕は本当にC言語が出来ないんでここで質問してるんです・・・
補数の方もできないでしょうか?
この時期にこれって終わってるな
327 :
ナナシ:2012/02/22(水) 23:25:53.40
余り進まない高校なので、すいません・・・
だから、力を貸していただけないでしょうか?
みんな呆れてるのかレスが付いてないから初めて回答してみる
>>306 コンパイラが答え教えてくれてるじゃん。
41行目の引数二つの間にコンマがないよ。
中身については見てないからわかんね。
インデントしてないから読む気が起きないお…
>>328 お前は直下のレスも読めない文盲か?
識字障害か?
あーほんとだ。鬼の首でも獲ったかのように煽られちゃった。
日本語でおk
算数できない高校生っているんだなw
誰か卒論片付けてくんねーかなw
335 :
ナナシ:2012/02/22(水) 23:44:20.86
printf("%c ", a[j] >= i ? '*' : ' ');の%cってどんな意味があるんですか?
if(a[j] >= i) printf("* ");
else printf(" ");
だとうまく表示されないのでやはり%cが必要だと思いましたがうまくつかえません。
三項演算を使わないでprintf("%c ", a[j] >= i ? '*' : ' ');の文と同じにしてもらえないでしょうか?
調べろよ
337 :
ナナシ:2012/02/22(水) 23:45:38.74
ぐぐりましたが出て来ません・・・
そんなはず、あるかーーーーーーーい!
if(a[j] >= i) printf("%c ",'*');
else printf("%c ",' ');
上手く表示されないのは{}で囲んでないからじゃないの
341 :
ナナシ:2012/02/22(水) 23:49:33.41
とはいっても、ここで%cを入れてるなんてどうやってググレば出てくるんですか
343 :
ナナシ:2012/02/22(水) 23:53:02.04
>>339さんありがとうございます!おかげ様でグラフ出来ました!
あとは2の補数の問題なんですけど・・・
2進数を10進数にや10進数を2進数にってのは出来るんで、2進数を2の補数を利用してやるところだけ力を貸していただけないでしょうか?
ナナシ君の質問見てると
今まで全く授業に出席してなくて、若しくはセンセイがゴミで
勉強してないのにいきなり課題をやろうとしてるように感じるのは俺だけか
>>342 5と10がふんだんにちりばめられた、とてもすばらしいコードですね。
まるで素敵な奇跡みたいです。
その調子でこんごも精進してくだしあ。
2の補数でぐぐれ
テンプレすら守らず、それを指摘されてもスルーするような輩を甘やかすな。
349 :
ナナシ:2012/02/22(水) 23:59:38.28
2の補数 C言語でググったけど出ませんでした・・・
だから力を貸してください・・・
なんという釣り
351 :
ナナシ :2012/02/23(木) 00:01:06.20
ここの人たちって思ってたより無能ですよね・・・
なんかがっかりです・・・
352 :
ナナシ:2012/02/23(木) 00:02:46.48
自己解決しました
おっしゃる通り無能なので回答できないです
お引き取りください
354 :
ナナシ:2012/02/23(木) 00:03:02.94
>>351 は偽物です!
こんなクソみたいな騙りする奴はウンコでも食ってろ
やっぱ釣りか。楽しかったよ
356 :
ナナシ:2012/02/23(木) 00:03:13.23
テンプレ守ってるじゃないですか。何が足りないんですか?
問題文を全部書いてるし、数字もちゃんと書いて、目的も書いています。
コレ以上何を書くんですか?
357 :
ナナシ:2012/02/23(木) 00:05:34.42
人がせっかくこうやって頼んでるんですから
答えてくれたっていいじゃないですか
それくらいのことが出来ないなんてダメですね。
わろたwナナシはトリップつけろ
>>357 とりあえず、立場なw
テンプレそんなに大変か?w
お願いします
[1]授業単元 C言語
[2] 問題文 0→πのexp(-x) * sinx の定積分を台形公式、及びシンプソンの公式を用いて解け
[3] 環境
[3.1] OS: Windows7 64bit
[3.2] コンパイラ名とバージョン: (Visual Studio 2010)
[3.3] 言語: どちらでも可
[4] 期限: 23日まで
[5] その他の制限: ポインタ以降未履修
f3xと定義している関数が、現在躓いている関数です。f1xとf2xはすんなり結果を返してくれたのですが、
expの絡むf3x及びf4xでは何故か結果が1.#inf0000になってしまい、上手くいきません。
糞コードで長いので、シンプソン部分の39行目〜81行目は無視して下さっても構いません。
調べた所、34〜37行目のfor文の内、最後のループの時に(m=n-1)エラーが起きているようです。
その直前m<n-1までは、printfで1つ1つs1の値を表示させていったのですが、問題なく表示されていました。
http://codepad.org/nVENnzfB
362 :
ナナシ:2012/02/23(木) 00:14:49.89
なるほど。
じゃあ、
単元はサブ関数
問題文は2進数10110001-2進数00101110の計算を2の補数を利用して計算する
環境は何を書いていいのやら
OSはwin7
コンパイラはBCC
言語はC
期限は2012年02月23日00:25
でお願いします
363 :
ナナシ:2012/02/23(木) 00:16:14.08
もうええて
期限わろた
だからナナシはトリをつけなさい
テンプレをテンプレで書かないとは・・・
相当周りの見えないやつだな
期限まで・・・あと・・・5分!
わざとしてるんだろ
371 :
ナナシ:2012/02/23(木) 00:22:12.40
[1]授業単元 C言語
[2] 問題文 2進数10110001-2進数00101110の計算を2の補数を利用して計算する
[3] 環境
[3.1] OS: Windows7 64bit
[3.2] コンパイラ名とバージョン: BCC
[3.3] 言語: C言語
[4] 期限: 23日の00:50分までで
[5] その他の制限: 特になし
372 :
ナナシ:2012/02/23(木) 00:22:54.90
これでお願いします。
今までのミスを許してください。
ごめんなさい
喜べ!期限が25分延長されたぞ!w
>>372 ___,,,,,..... -一ァ
/ ̄ ,-──--、,!
. / / お .,!
. / .i 断 だ ,!
/ i り が ,!
. / i し ,!
. / .ヽ ま ,!
. / / | ./ .〉 す__,,!
/ ノ |//ノ // ,!
/ / \ .,!
. / / ○ ○ .ヽ ,!
/__∩ | (__人__) | .,!
. //ヨ ) ヽ . / .,!
ヽ|.ヨノ | ,i
``ヽ.、_| ,!
``ヽ.、.. ,,!
``ヾ、 ,,!
``ヽ,!
どーせできあがったもんdisるんやろ?
>>361 数値積分やったなぁ
でも4/(1+x^2)の0〜1定積分の方が結果が出た時嬉しい
納期延長とは涙が出るのう
378 :
ナナシ:2012/02/23(木) 00:27:09.30
ホントに分らなくてここに来たんです。
だから、2の補数だけども教えてください!
>>349 普通は負の数はみんな2の補数で表現されてるから、普通に計算すりゃいいんじゃね?
380 :
ナナシ:2012/02/23(木) 00:27:57.11
>>375そんなことはありません!
僕の力ではもう、どうしようもないのですから・・・
382 :
ナナシ:2012/02/23(木) 00:28:56.91
>>375 できもしないのに偉そうに邪魔しないで下さい
383 :
ナナシ:2012/02/23(木) 00:29:32.83
>>379 2の補数を利用して0と1を交換して+1をするということが出来ないんです・・・
384 :
ナナシ:2012/02/23(木) 00:30:35.45
>>381 お気持ちはありがたいですけど2の補数についてじゃなくて2の補数をC言語で利用するのが出来ないんです
385 :
375:2012/02/23(木) 00:31:38.51
ワロタw
386 :
ナナシ:2012/02/23(木) 00:32:29.64
テンプレを書いたのにもうダメなんでしょうか・・・
387 :
361:2012/02/23(木) 00:33:03.74
誠に自分勝手で申し訳ないのですが、自己解決いたしました。
単に配列xの値をx[n-1]までしか定義してなかったのに、x[n]の値を呼び出そうとしてエラーが起きていただけでした。
>>383 printf("%x\n", ~2+1); --> fffffffe
printf("%x\n", -2); --> fffffffe
こういうこと?
389 :
ナナシ:2012/02/23(木) 00:34:13.68
いいですか?
あなたがたがテンプレを書けといったからこっちは書いたんです
それなのに何ですかこの対応は。人としておかしいと思いませんか?
off-by-one errorありがちですね
391 :
ナナシ:2012/02/23(木) 00:35:24.01
もうマジでよぉ、トリつけろや
394 :
ナナシ:2012/02/23(木) 00:36:46.15
>>388 00101110というのを
11010011という風に変えたいんです。
でも、2の補数がプログラムで組めないので出来ないです・・・
395 :
ナナシ:2012/02/23(木) 00:37:12.10
折角簡単な問題を出してやってるんだから感謝してください
こちらが謝礼を貰っても良いくらいですが
今回は特別にタダで解かせてあげます
396 :
ナナシ:2012/02/23(木) 00:38:11.45
そんなこんなしているうちにもう納期まで10分を切ろうとしているわけだが
398 :
ナナシ:2012/02/23(木) 00:41:11.12
早く寝たいので、
すみませんが早くしてください。
399 :
ナナシ:2012/02/23(木) 00:42:01.90
>>398 どうしてそんなことするんですか?
僕はそんなこと思ってないです
そろそろ首釣る社員も出てくるレベル
素直さがないやつはいつか破綻する
残念だったな
402 :
ナナシ:2012/02/23(木) 00:43:12.62
どうしても教えてくれないんですか・・・
すげーいいこと教えてやるわ
リファレンス読め
急がば回れ
ナナシまじでアホだなぁ
素直にテンプレ書いてればとっくの昔に答えが出てたのに
>>318に指摘されてるのをスルーしたのを見て、俺はイラッとしたなぁ。
たまにこういうやつ紛れ込んでくるけど、いつもイラッとする。
釣りだと思うけど、違うのか?
あー納期過ぎちゃった会社オワタ
まあ釣りだろ
408 :
ナナシ:2012/02/23(木) 00:54:22.15
はい、すいませんでした・・・
テンプレを書かずに質問していて。
以後気をつけるので今回は許して頂けないでしょうか
409 :
ナナシ:2012/02/23(木) 00:56:42.41
>>406 釣りじゃなくてマジで分からないんです・・・
おそらくもうしばらくすると颯爽とQZが現れて
驚きのコードを貼っていってくれるでしょう
411 :
ナナシ:2012/02/23(木) 00:59:11.08
ほんとですか!?
じゃあ待ってます
412 :
ナナシ:2012/02/23(木) 00:59:46.91
QZさんはビット幅とか無視するのでいりません
も の ほ ん ナ ナ シ も、 え せ ナ ナ シ も
い い か げ ん に し ろ
414 :
ナナシ:2012/02/23(木) 01:01:42.52
いいかげんにと言われても・・・
分からないので諦めるわけには
ってか、みんな書けてるよね。
もう皆がナナシでいいんじゃね?w
俺がナナシだ
俺が……俺たちがナナシだ
マジレスしとくと10進かなんかで書かんと数値わからんぞ
しぃた&ぱずぅ「バルス!」
ビットを反転するのはにょろ演算子。
>421
俺にょろ使わんかったわー。
折角だから俺はこのひく演算子を使うぜ
>>423 マニアックすぎる、このスレでは俺にしか通じないと思うがw
ネットじゃ有名すぎるネタなのに何言ってんだw
どうせプレイしたこともない知ったかだろw
糞ゲーなんかわざわざプレイするかよwww
ネタとして知ってりゃいいレベル
QZのコードなんでこんなに長いの?
元PASCALプログラマだったとか
無駄を省いてシンプルに書くことができないのは頭が悪すぎるから
少なくとも頭が良すぎてシンプルに書きすぎて結果多くを書く羽目に陥った経験がある人とは違うだろな
お前ら、プログラミング以外だと生き生きしてるなw
生き生きとプログラミングをするのは初心者か廃人
生き生きしてられるのは、みんなでホワイトボード囲んでラフな設計してる時くらいだな。
試作(失敗・やり直しは可)と設計(失敗・やり直しは不可で責任問題になる)
は根本的に違うだろうな
生き生きするのは帰る前30分だけ
生き生きするのはデスクトップマスコットのマミちゃん(仮称)に話しかけている時だけ
日本語が読めなかったときのコードを貼ってなにがしたいんだ?
自分じゃ割り切れることも理解できてない計算するとかw
頭が良すぎてシンプルに書きすぎて突っ込まれて何度も書く羽目になったみたい
>>447 ずいぶん昔にぼくが依頼したプログラムですねw
もう授業も終わって春休みだけどありがとうございます
質問させていただきます。PGを書く問題ではないのですが、
「ソートプログラムとデータ構造について
具体的なソートプログラムの名前をあげ、
とのようなデータ構造(配列、単方向リスト、双方向リスト、循環リストなど)が
なぜ適しているか述べろ。
が分かりません!教えてください
>>450 スレチ
wikipedia でも丸写ししとけ
煽り方が単調
5点
>>450 スリープソート
ソート対象を数値で表した時に値域が狭い場合に適する
>>450 シャッフルソート
リストをシャッフル→ソートされているかをチェック の2段階からなる
ものの論文によれば、リストが小さい時、
シャッフルソートはバブルソートよりも早く終わる確率が高い
>>449 単語カウントだけの用途だと、ハッシュ値が衝突するとハッシュを使う意味が無いが、
このプログラムはハッシュ値が衝突するんじゃないか?
QZな人だから許される。
>>456 チェインハッシュ法を採用しました。チェイン方法としては双方向線形リストを使い、この線形リストは頻度順になるようにデータ挿入ごとに並び替えを行っています。
460 :
デフォルトの名無しさん:2012/02/27(月) 17:06:47.43
[1] 授業単元: 情報処理
[2] 問題文(含コード&リンク):
(1)2つのdouble型 変数 a,bをメンバとして持つ構造体 struct cmplxを作成せよ。
cmplexを複素数、a, bをそれぞれその実部と虚部と考え、
二つの複素数za, zbの積 を返す関数 struct cmplx cprod(struct cmplx za, struct cmplx zb)を作成せよ。
この関数を用いて二つの複素数 1 + 2i, 2+4iの積の結果を表示するプログラムを作成せよ。
(2)
http://ideone.com/MkPVH 上のプログラムを参考にして。現在の時刻を “○時△分□秒”の形式で表示する関数 void put_time(void)を作成し、
それを用いて現在の時刻を表示するプログラムを作成せよ。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:不明
[3.3] 言語: C
[4] 期限:今日中
[5] その他の制限:特になし。
よろしくお願いします。
>>460 (2)の方 これをコピペ
printf("%02d時%02d分%02d秒",
local->tm_hour,
local->tm_min,
local->tm_sec);
462 :
デフォルトの名無しさん:2012/02/27(月) 19:23:00.98
>>461 ありがとうございます。
ただ申し訳ないのですが、もう少し詳しく説明していただけると助かります。
>>462 直感による
local->tm_year
local->tm_mon
local->tm_mday
local->tm_wday
これらのあとには、大抵、hour,min,secとかが続くから、
何も考えずに local->tm_ の後を書き換えればいい
464 :
デフォルトの名無しさん:2012/02/27(月) 20:07:41.28
>>463 ありがとうございます。
書き換えて見たのですが、コンパイルに失敗し、
エラー E2141 en15-02.cpp 22: 宣言の構文エラー(関数 put_date() )
エラー E2139 en15-02.cpp 28: 宣言に ; がない(関数 put_date() )
エラー E2134 en15-02.cpp 28: 複合文に } がない(関数 put_date() )
警告 W8004 en15-02.cpp 28: 'wday_name' に代入した値は使われていない(関数 put_date() )
*** 3 errors in Compile ***
と表示されます。どういう意味なのかわからないので、どなたかわかる方はお教えください。
466 :
デフォルトの名無しさん:2012/02/27(月) 20:32:38.47
>>465 ありがとうございます。何が違ったのかちゃんと見てみます。
どなたかわかる方がいましたら
>>460の(1)もお手数ですがよろしくお願いします。
468 :
デフォルトの名無しさん:2012/02/27(月) 21:29:13.08
[2] 問題文(含コード&リンク):
http://ideone.com/d0Q1L 上ののプログラムを参考にして、unsigned型整数をビット表記した時の下から4ビット(20 から23の桁)を表示する関数 void print_4bits ( unsigned x) を作成せよ。
またこの関数を用いて、0から15までの整数を4ビットで表示するプログラムを作成せよ。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:
[3.3] 言語: C
[4] 期限: 今日中
よろしくお願いします。
>>468 void print_4bits(unsigned x)
{
int i;
for ( i = 3; i>=0; i--)
putchar( ( (x >> i) & 1U) ? '1' : '0');
}
470 :
デフォルトの名無しさん:2012/02/27(月) 22:00:17.24
>>456 追記:確かに
>>449 のハッシュ関数の実装は適当で性能は最悪でしょう。MD5/RFC1321 も一度は採用してはいたのですが、MD5 ルーチンの記述量が全体の5割以上になってしまうので、とりやめました。
宿題用途でお手軽に記述できてかつそこそこの性能を発揮するハッシュ関数としてはどんな実装になるのでしょうか?
なんかすごい難しいことやってるな
世間で流通してるハッシュ関数ならハッシュコードを使うのが普通とは思うけど、
宿題&単語カウントってキーワードから考えると、ハッシュは単なる辞書機能のことを指してて最初の提示例で十分じゃないかと思うのは自分だけ?
それは野暮ってもんだ
宿題やってほしい勢と、俺のプログラムを見ろ勢の利害が一致して成り立ってるスレだし
ハッシュ法で暗号学的ハッシュ関数……?
ま裁判官だったら一発で弾劾裁判されるタイプだろな
478 :
デフォルトの名無しさん:2012/03/01(木) 01:19:54.82
[1] 授業単元: プログラミング実習
[2] 問題文: 構造体の型の成績をqsortを用いて
点数を高いものから順に並び替えよ
動作例:
student[1]:76
student[2]:65
student[3]:82
・
・
------------------------
成績順にソートしました。
------------------------
student[3]:82
student[1]:76
student[2]:65
・
・
・
[3] 環境
[3.1] OS:windows7
[3.2] コンパイラ名とバージョン:visual studio
[3.3] 言語:C言語
[4] 期限:3月1日(今日)の18時30分まで
[5] その他の制限:
stdlibをインクルードし、qsortを使って解くこと。
「student」は必ず構造体を用いること。
できるだけ簡潔で分かりやすいプログラムを心がけること。
ソースコードは多くても70行以内に収めるのが望ましい。
お願いします。
479 :
デフォルトの名無しさん:2012/03/01(木) 01:24:10.13
ちょっと訂正します。
動作例の上のほうのstudenは入力です。
あと、studentと、scoreの二つをを
stdataという構造体で扱って解いてほしいです。
追記になり少々見苦しいかもしれませんが
よろしくお願いします。
>>478を見ると、入力は点数の数値だけを連続し入力し、入力が終わったら、
そのままソートして結果出力してるように見える
stdataという構造体作ったとしても、scoreが点数として、studentには何を格納するの?
番号
484 :
デフォルトの名無しさん:2012/03/01(木) 02:21:48.86
>>483 夜分遅くにありがとうございます。
せっかく解いていただいたところ、申し訳ないのですが、
どうやら、成績はEOF(ctrl+Z)が入力されるまで自分の手で
入力していくプログラムのようです。
よろしければ修正していただくことは可能でしょうか。
もし可能であればお願いしたいです。
486 :
デフォルトの名無しさん:2012/03/01(木) 16:57:33.87
>>485 -ーー ,,_
r'" `ヽ,__
\ ∩/ ̄ ̄ ヽつ
ノ ̄\ /"ヽ/ " ノ ヽi
| \_)\ .\ > < |\
\ ~ ) \ .\_ ( _●_)\_つ ありがとう。
 ̄ \_つ
無事提出することができて、たすかりました。
>>485,486
>
http://ideone.com/9bzK2 >>478 >点数を高いものから順に並び替えよ
なので、x、y逆じゃね?
X return ((stdata*)x)->score - ((stdata*)y)->score;
O return ((stdata*)y)->score - ((stdata*)x)->score;
[1] 授業単元:C言語演習
[2] 問題文:
キーボードで入力された名前をchar型の一次元の配列nameに入れていきます。
各名前の先頭アドレスをp_nameに入れます。
p_nameのアドレスをptrptrに入れます。
最後に一番長い名前と一番短い名前、変数ptrptr、p_name、nameのアドレスを表示します。
実行例:
名前を10個まで入力できます。桁数は最大30です。
name1: tanaka
name2: nakabayashi
name3: hama
・
・
一番長いのは"nakabayashi"で、11桁。
一番短いのは"hama"で、4桁。
Adress of name: 231191 Adress of p_name: 231511 Adress of ptrptr: 231551
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: CPad for Borland
[3.3] 言語: C
[4] 期限: 2012年3月4日中まで
お願いします。
キーボードで入力された名前をchar型の一次元の配列nameに入れていきます。
名前を10個まで入力できます。桁数は最大30です。
char name[300];
各名前の先頭アドレスをp_nameに入れます。
char (*p_name)[10];
p_nameのアドレスをptrptrに入れます。
char *(*ptrptr)[10]);
こういうこと?
C言語より日本語のが難しいわ
最後間違えた。こうかな
char (**ptrptr)[10];
492 :
489:2012/03/03(土) 00:59:31.66
>>490 そういうことなんですかね。
とりあえず実行例にあるように、適当にキーボードから名前を入力していったあとに、
一番長い名前とその桁数、一番短い名前とその桁数、nameのアドレス、p_nameのアドレス、
ptrptrのアドレスを表示するようなプログラムを作成したいです。
全然できない状況です。よろしくおねがいします。
>>489 元の問題文がその通り書いてあるなら出題に不備がある感が…
ダブルポインタの練習のための問題だと思うけど
char name[300]; って宣言と
char * name[10]; って宣言の2パターンある希ガス。
まあchar * name[10];のほうだと、p_nameにアドレス入れるのが冗長になるから
問題を好意的に捉えれば前者なんだろうけど。
コードも出さずに偉そうなこといって申し訳ない
>>493 ぐあ。すげえ。
書きもしないで問題に文句言ってた自分が恥ずかしや
496 :
489:2012/03/03(土) 03:53:48.10
>>493 わぁすごい。
本当にありがとうございます!
>>493 一番長い名前、一番短い名前が複数あったらどうするの?
こういうクソ意地悪い系列が入力された時の最大最小の動作なんて
質問者・回答者はおろか出題者すら考えてねーんだろーな
tanaka
yamada
kagaya
kaneko
koyano
sasaki
sakuma
こういう問題なら一つ表示すれば十分
この問題はまだましだけど、たまに本当に意味わからん宿題があるよな
ああいうの出される所で勉強してるとプログラミング嫌いになるんだろうなぁ
スレチだけど、アセンブリの授業教えてる先生が意地悪っつーか凝ってるっつーか
わざとバグを仕込んであるアセンブリコードのデバッグの宿題とか死にかけたな。懐かしい
>>501 >わざとバグを仕込んであるアセンブリコードのデバッグの宿題
期待される動作をきちんと説明してあれば、いい教材になりうるけどな。
教える側のイメージが曖昧で、何通りにも解釈可能ってのはたまによくある。
>>502 > たまによくある。
お前の人生自体も失敗がたまによくありそうだな。
わぁ、おもしろーい
address
[1] 授業単元:C++
[2] 問題文(含コード&リンク):以下のようなコードはバグである。理由を考察すること。
@{
char hoge[11];
char *poge = "aa.bb.cc";
char *tok = NULL;
char *ptr1 = NULL;
char *ptr2 = NULL;
memset(hoge, '\0', 11);
strcpy_s(hoge, 11, poge);
ptr1 = strtok_s(hoge, ".", &tok);
ptr2 = strtok_s(NULL, ".", &tok);
ptr1 = strtok_s(poge, ".", &tok);
ptr2 = strtok_s(NULL, ".", &tok);
}
Afor(int i=0; i<plName->Getlength(); i++)
※XMLの読み込みで、取得したタグ名の全ての要素についてループさせる処理です。
[3] 環境
[3.1] OS:windows7
[3.2] コンパイラ名とバージョン: Visual studio 2008
[3.3] 言語: C++
[4] 期限:3/4 23:00
[5] その他の制限: なし
問題Aについて、要素の数が膨大になる場合、パフォーマンスが劣化する。
という解答では×とのことでした。
以上です。よろしくお願いします。
>>508 strtokは第一引数の文字列を直接変更する。
pogeは変更してはいけない
Aはそれだけじゃバグは見当たらない。
はしょった?
>>508 >Afor(int i=0; i<plName->Getlength(); i++)
Getlength()の返り値が途中で変わったらまずいだろうけど、他にあるかな?
ループの中で plName が変わり意図とは違う回数で終わるとか?
>for(int i=0; i<plName->Getlength(); i++)
int len = plName->Getlength();
for(int i=0; i<len; ++i)
とかじゃないよね?
514 :
508:2012/03/04(日) 22:42:09.41
>>509-513 皆さんありがとう。
Aについてだけど、少しはしょってた。申し訳ない。
以下全文です。
MSXML2::IXMLDOMDocument2Ptr pDoc;
MSXML2::IXMLDOMNodeListPtr INodeListPtr;
pDoc->load("sample.xml");
INodeListPtr plName = pDoc->getElementsByTagName("aaa");
for(int i=0; i<plName->Getlength(); i++)
{
//ここまで
問題があるのはforループの箇所
18分でどーしろというんだ
アホかこいつ
まぁ普段使ってなきゃ無理だね
しかもXMLの処理は.NETが異常に捗るからMSXML使ってる人なんてもういないだろ
>>514 問題の意図がわからんな
パフォーマンスを求める前にエラーチェックをするべきでしょ
>>514 forループの箇所に問題はないけど、それ以外に問題ありのように思うわ。
23時には間に合わなかったけど、18分もかかるほどの内容ではなかった。
519 :
デフォルトの名無しさん:2012/03/05(月) 03:46:42.95
>>514 typedefがないってことではないよなぁw
>>514 >for(int i=0; i<plName->Getlength(); i++)
X int i
O long i
>>519 無かったらコンパイル通らないし
いや、まさか・・・
522 :
デフォルトの名無しさん:2012/03/09(金) 20:25:50.41
[1] 授業単元: 情報処理
[2] 問題文
(1)
http://ideone.com/F0NZo 上記のプログラムはオープンするファイルが abc に限られている。
キーボードからファイル名を読み込んで、そのファイルをオープンするように変更せよ。
(2) 台形公式を用いて、分割数 N を増やしながら f(x) = x 3 を 0から1の範囲で積分し、
その計算結果と解析解(1/4)の差が0.001未満になったら計算を終了するプログラムを作成せよ。
Nの初期値を1として、Nについての for文を用いること。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:不明
[3.3] 言語: C
[4] 期限:今日中
[5] その他の制限:
(1)で使用したサイトであげていただけると助かります。
よろしくお願いします。
524 :
デフォルトの名無しさん:2012/03/09(金) 23:09:14.96
526 :
523:2012/03/10(土) 00:14:37.57
[1] 授業単元: アルゴリズム
[2] 問題文(含コード&リンク):
KMP法のアルゴリズムの関数を作成せよ。
[3] 環境
[3.1] vista
[3.2] VC 2008
[3.3] 言語: C
[4] 期限: 3月16日まで
分かる方いらしたらよろしくお願いします
528 :
527:2012/03/15(木) 21:52:00.17
>>527 申し訳ありません、追記です。文字列照合においてのKMP法です。
>>527 宿題は、出された問題をそのまま書かないと、誰もやってくれないよ
>>527 分かる方って、自分では調べてやってみた?
532 :
デフォルトの名無しさん:2012/03/16(金) 10:39:01.00
533 :
デフォルトの名無しさん:2012/03/16(金) 10:43:17.37
>>534 #include <stdio.h>
#include <math.h>
int main(){
int in1, in2, in3;
char buf[80];
while(!eof(stdin)){
gets(buf);
sscanf(buf, "%d%d", &in1, &in2);
in3 = in1 + in2;
printf(int(log10(in3)+1));
}
}
微妙にノーコンパイルにしておいた。
>>534 何がダメで不正解じゃなかったのか書かないと
意味ねーじゃん
>>535 code.c: In function ‘main’:
code.c:11: error: expected expression before ‘int’
だそうです
>>565 不正解の時は「Wrong Answer」としか言ってくれない
英語圏の教授か?
#include <stdio.h>
#include <math.h>
int main(){
int in1, in2, in3;
char buf[80], *p;
while(1){
if(feof(stdin)) break; // ddd ddd[EOF]
if(!gets(buf)) break; // ddd ddd[NEWLINE][EOF]
sscanf(buf, "%d%d", &in1, &in2);
in3 = in1 + in2;
printf("%d\n", (int)log10((float)in3)+1);
}return 0;}
ほんとにただ解きたいから解いてるだけなやつだなw
コミュニケーションとれてないw
>>ww
#include <stdio.h>
#include <math.h>
int func(int sum){
int i;
for (i = 0; sum; i++)
sum /= 10;
return i;}
int main(){
int in1, in2, in3;
char buf[80], *p;
while(1){
if(feof(stdin)) break; // ddd ddd[EOF]
if(!gets(buf)) break; // ddd ddd[NEWLINE][EOF]
sscanf(buf, "%d%d", &in1, &in2);
in3 = in1 + in2;
printf("%d\n", func(in3));
}return 0;}
3時間以上かけてそんなプログラム書いてるの?
そこの素数求める問題をエラトステネスの篩で書いたら時間切れくらって以来やってないな
>>538 /tmp/cceCITzA.o: In function `main':
code.c:(.text+0x24): warning: the `gets' function is dangerous and should not be used.
>>540 /tmp/cc4nIZbg.o: In function `main':
code.cpp:(.text+0x75): warning: the `gets' function is dangerous and should not be used.
\(^o^)/
[3] 環境
[3.1] OS: Unix
[3.2] コンパイラ名とバージョン: cc
[3.3] 言語: C
if(!fgets(buf,80,stdin)) break; // ddd ddd[NEWLINE][EOF]
>>542 自分が解いた限りではそんな問題なかったぞ
>>534 致命的な間違いがあるけど、指摘されてんのはそこじゃねーんだよな
549 :
デフォルトの名無しさん:2012/03/18(日) 11:46:25.99
>>534 jについてのループおかしくね?
数字以外の入力もそのまま処理されるのもまずい気がする
それと
>>535のはprintfのsyntax errorとeof()がまずいらしい(理由は知らん)
こう書き直したら動いた
#include <stdio.h>
#include <math.h>
int main(){
int in1, in2;
char buf[80];
while(gets(buf) != NULL) {
sscanf(buf, "%d %d", &in1, &in2);
printf("%d\n", (int)log10(in1 + in2)+1);
}
}
>>549 /tmp/ccmsA2nL.o: In function `main':
code.c:(.text+0x7d): warning: the `gets' function is dangerous and should not be used.
getsは使ったらダメなようです
これで通るだろ
#include<stdio.h>
int main(void)
{
int a, b;
char buf[16];
while(scanf("%d%d", &a, &b)==2)
{
printf("%d\n", sprintf(buf, "%d", a+b));
}
return 0;
}
>>552 解けた人数が難易度の目安になる
200人のは簡単
100人くらいのを解こうとしたら動的計画法を使えるようにならないとだめ
50人くらいのを解こうとしたら思いつきがいる
>>553 今回の問題1647人いるんですが・・・
なんで正答率じゃなくて人数を目安にするんだ?
557 :
デフォルトの名無しさん:2012/03/18(日) 13:31:35.50
初めて書き込みます。よろしくお願い致します。固定長バイトの文字列の中の一部を抜き出すところがわかりませんでした。
1] 授業単元:C言語
[2] 問題文(含コード&リンク):
文字列A(固定長150バイト)一万行以上と文字列B(CSV)一万行以上のそれぞれのテキストデータ・ファイルがある。文字列A
の5文字目から6文字分と文字列Bの2カラム目の4文字目から6文字分を比較し、同じなら、文字列Aの
77文字目から50バイト分を文字列Bの4カラム目を置き換える。文字列Bの4カラム目が50バイト以下なら
" "空白で埋める。50バイトより大きい場合50バイトまでの大きさを対象とする。
置き換え対象領域は日本語全角漢字含む文字列となる。
文字列Aの対象領域は2バイトx20文字+1バイト10文字で整形されている。
文字列AはSolaris10上のファイル。文字列BはエクセルファイルをCSV保存してFFFTPでSolaris10へコピーしたもの。
文字コード:文字列A(EUC-JP)、文字列B(sjis2eucで変換)
[3] 環境
[3.1] OS: 実行環境はSolaris10(x86)、開発環境はCentOS5.8、文字列AはSolaris上のファイル。文字列BはエクセルをCSVで保存しSolarisへコピー。
[3.2] コンパイラ名とバージョン: 実行環境(Solaris-gcc3)、開発環境(CentOS-gcc4.1.2)
[3.3] 言語: C言語
[4] 期限: 3月21
[5] その他の制限:特になし
【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
これ宿題なの?
○文字目っていうのは全角も考えたうえでの数?
全部全角だとすると77文字目って142バイト目くらいから始まることになるけど
csvの仕様をちゃんと実装するのはめんどくさい
エスケープとかクォートとか
562 :
デフォルトの名無しさん:2012/03/18(日) 14:15:45.97
>558
間違いました。1ー66バイトが1バイト、67ー126が変換対象(日本語混じり)124ー150が1バイト
となります。
学校ではなく、職場の(自己啓発)プログラミング講座の課題です。
563 :
デフォルトの名無しさん:2012/03/18(日) 14:18:27.65
訂正
1ー77バイトが1バイト、77ー126が変換対象。126ー150が1バイト
です。
何度もスミマセン。
>>562 自力で解かなきゃ意味ないじゃんwwwww
>>564 それを言ってしまったらこのスレ全部アウト
>>566 そういうもんかね。AOJとかの質問するほうがどうかしてると思うけど。
>>557 > 固定長バイトの文字列の中の一部を抜き出すところがわかりません
それが必要な場面がないけれど、
必要なら
strncpy(dst, src+startoffset, wantlength);
dst[wantlength] = '\0'
とかやればいいよ
>>567 AOJのは高専向けの問題の中でも超入門の過去問だろ
569 :
デフォルトの名無しさん:2012/03/18(日) 14:56:15.68
>>567 ありがとうございます。この問題では
文字列Aのキーになる文字列を抜き出し、ループの中で文字列Bのキーになる文字列
を抜き出し比較しif文でマッチしたら、
文字列Aの対象文字列前,後の文字列を抜き出し間にBの文字列を差し込みファイル出力
という処理を考えていました。文字列を抜き出さずに比較する方法とは
どのようなものでしょうか?
>>571 >char str[256], x[256], y[256];
決め打ちか‥‥。
>>569 文字列A側の1万行以上のそれぞれの行にたいして、
一致する行を文字列Bの一万行以上から捜して、
文字列置換して、文字列A側がEOFになるまで繰り返す
という問題ではないのか?
比較対象が一行か複数行か
577 :
デフォルトの名無しさん:2012/03/19(月) 22:25:18.22
>>557 他に条件ないの?csvパースするの面倒なんだけどw
昔書いたモジュールぶち込むのも面倒だし。。。
エクセルで作ったCSVだから割とまじめなCSVだろうしなぁ。
ある程度でいいんじゃないかなぁ。面倒でやる気でないけど…
パースはどうでもいいけど
head -n 100でもしてデータぐらいは上げて欲しいな
580 :
デフォルトの名無しさん:2012/03/20(火) 02:07:42.81
> 文字列Aの対象領域は2バイトx20文字+1バイト10文字で整形されている。
TTTとかMMMとかは半角だけど、
>>580が伏せるときに間違えただけ?
>>580 なぜ、AとBを別々に上げないの?
なぜEUC-JPではなくUTF8なの?
なぜ1行目(コメントヘッダ除く)でいきなり150バイト超えてるの?
Bの4カラム目ってどこなの?2列しかないのに。
言語どうこう以前に習得しておくべきことが多いwww
>>580 なんで実行させる設定にしてるんだよw
オフにしとけよ
いや、ここくるような人は言語どうでも良くて結果が欲しいだけの人たちだろw
> 文字列A(固定長150バイト)一万行以上と文字列B(CSV)一万行以上のそれぞれのテキストデータ・ファイルがある。
>
> 文字列Aの5文字目から6文字分と文字列Bの2カラム目の4文字目から6文字分を比較し、
> 同じなら、文字列Aの77文字目から50バイト分を文字列Bの4カラム目を置き換える。
>
> 文字列Bの4カラム目が50バイト以下なら" "空白で埋める。
> 50バイトより大きい場合50バイトまでの大きさを対象とする。
>
> 置き換え対象領域は日本語全角漢字含む文字列となる。
> 文字列Aの対象領域は2バイトx20文字+1バイト10文字で整形されている。
> 文字列AはSolaris10上のファイル。文字列BはエクセルファイルをCSV保存してFFFTPでSolaris10へコピーしたもの。
> 文字コード:文字列A(EUC-JP)、文字列B(sjis2eucで変換)
こりゃあさすがに宿題じゃなくて業務か何かだろうけど、
こういうクソな作業をやるために、(わざわざ処理系用の)awkとかperlとかいう高級()なモンがあるんだと思う
クソ文字列とカラムが絡むなんて、一番Cでやっちゃあいけないデータ移行作業か何かかと
_. -─‐-
/ ⌒ \ カラムが絡む…からむがからむ…
/ ⌒ (● ) \ ┏┓
/ ( ● ) 、_) ヽ ┏┛
| (__ノ / | ・
ヽ  ̄ _ノ
>  ̄ \
固定長うんぬんの文字列な表形式(っぽいの)は
Cでそのままやるにゃあキツイってことだ
言わせんなよ恥ずかしい
区切り文字で切り分けするだけでクソ作業になる
固定長ならfseek使うとか出来るんでねーの?
車輪の再開発はやめろ^^ 人月の神話を読み直せ^^
"のフラグを立ててやらないかんぜよ
固定長のふりをして、文字コードを考えると実は可変長。
> 文字コード:文字列A(EUC-JP)、文字列B(sjis2eucで変換)
JIS X 0201片仮名文字ってEUC-jpじゃSS使うんだっけ? 大変だな。頑張ってくれ。
SSってなに
あくまのりょういき
0x8e(SS2) 0xa1?0xfe: G2文字(いわゆる半角カナ)
0x8f(SS3) 0xa1?0xfe 0xa1?0xfe: G3文字(JIS X 0212) (JIS補助漢字)
SS single shift
必要に応じ、SS2やSS3が先行し3バイトとなることがある
> JIS X 0201片仮名文字ってEUC-jpじゃSS使うんだっけ? 大変だな。頑張ってくれ。
半角カナが2バイトで表現されると大変なのかな。
G3文字が使用されたら大変そうだなぁというのは理解できたけども…
>>599 多分固定長じゃないから、嫌なんだと思う
> 日本語文字はJIS X 0208をGR領域に表現したものを基本としており、2バイトで表現
> EUC-日本語 では、半角カナは前に 0x8E (シングルシフト2, SS2) をおいた2バイト表現
> 補助漢字は制御文字SS3(シングルシフト3、0x8F)に続けて現れるので、都合3バイトを要する
補助漢字の領域=悪魔の領域 G3。
使うことなんて滅多に無いだろうけど、
課題が課題、地名だからしょうがない。
地名なんてG3がいかにも来そうな語群だからしょうがない。
人名地名は恐ろしい
そもそも統一されてない文字コード
ロンゴロンゴにも対応すれば最強
その前に人類がロンゴロンゴに対応する必要がある
でもリプレース先は50バイトであると明言されているし、リプレース元は別に何バイトだってかまわないだろう?
期限切れなので終了
>>606 自己紹介か?
「文字コードの話題について行けません! もっとカンタンなお話おながいします!!」
ってな
1文字が50バイトをまたぐケースがあるから
ロケールセットしてmblenで50バイト以下の最大文字長を切り出し
50バイトに満たなければ' 'fill
これだけじゃね?
50バイトで自己紹介ただしUTF8エンコーディングでまで読んだ
610 :
デフォルトの名無しさん:2012/03/23(金) 15:22:09.92
[1] 授業単元:Cプログラミング演習
[2] 問題文(含コード&リンク): 最長しりとり問題を整数計画法を用い、しりとりの数が最長となるパターンを導出するプログラムを作成せよ.ただし構造体とポインタを使用すること.
[3] 環境
[3.1] OS: Windows Vista
[3.2] コンパイラ名とバージョン:VC 2008
[3.3] 言語: C言語
[4] 期限: 3月26日まで
[5] その他の制限:あたえられた単語は半角カタカナ表記で、単語を登録するのではなく, 頭文字,末尾文字を登録することも可
です。よろしくお願いします。
なんとなく想像はつくが
本当にその問題文だけでできると思ってるのか?
最長しりとり問題ってなんだ
入力はどう受け取るんだ
導出した結果はどうやって出力するんだ
質問に答えるだけじゃなくて与えられた情報をすべて記載しろ
Cで半角カタカナ使えとか
拷問じゃねーかwww
バカとかカバとかどーやってしりとりssssっさせるんだろ
アポとポアとかさ
(半)濁点無視してつなげるのが一般的なしりとりだよな
半角カナなら最後の(半)濁点とりゃいいじゃん
むしろ全角のほうがめんどくさかろ。
[先頭文字 末尾文字] 間をつなぐグラフで非循環の最長経路を求める ってことか?
> [先頭文字 末尾文字] 間をつなぐ
ちがうでしょうね
これはつくったあとで、情報を小出しにされて、
違いますそうではなくてこうです、こうしてください、
と再提出を促し続けられるパターンとみた。
618 :
デフォルトの名無しさん:2012/03/23(金) 22:59:22.29
まともな課題なら
最後の長音は母音とするルールと、無視するルール、長音を含みながら答えるルールと、負けになるルールがある[2]。
最後の文字が拗音・促音(ぁ、ぃ、ぅ、ぇ、ぉ、ゃ、ゅ、ょ、っ)の場合、もとの文字(清音)に戻すルールと、そのままのルール、負けになるルールがある[3]。
最後の文字が濁音・半濁音の場合、「゛(濁点)」「゜(半濁点)」を取っていいルールと、取ってはいけないルールがある[4]。
このあたりのローカルルールはどちらか明記するし
単語データも添えるよね
>>619 大学の課題なんて適当だろ。ある程度実装されてたらいいもんだ。
付加価値として、それらのローカルルールの可否をオプション設定できるようにするとかすればいいだけで。
> 単語を登録するのではなく, 頭文字,末尾文字を登録することも可
ここが何度考えても分からん
622 :
デフォルトの名無しさん:2012/03/23(金) 23:12:30.50
ルールについては指定がなかったのですが、
総当たりの時は末尾時の小文字は大文字に変換していました。
単語データは国名で構造体に頭文字と末尾字を組み込んで
typedef struct {
char top;
char end;
} word;
ベルギーなら{'ヘ','キ'}としてデータをとりあつかっていました。
????
>>618のリンク先いいなぁ。
楽しみながらまじめに取り組んだんだろうな。詳細は読んでないけど、実にいい生徒だとおもう。
オイラー路なつかしいなぁw
俺の時代のポキモンは151匹しかいなかったぞ
一体どういうことだ
600オーバーとか
629 :
デフォルトの名無しさん:2012/03/24(土) 01:57:44.72
卒論タイトルを「ジョジョの奇妙な○○」にして"ン・ドゥール"おkのルールにしようぜ。
>>629 ジョジョ使わなくてもンで始まる単語はかなりあります
あと、ンドゥールは普通に実在する名前です
スレ違い
答えは9213?
#include <stdio.h>
#define N 100
int main(void)
{
int i, j, k, a[N + 1] = {0}, cnt = 0;
for(i = 2; i * i <= N; i++) {
for(j = i * i, k = 2; j <= N; j *= i, k++) if(a[j] == 0) a[j] = k;
}
for(i = 2; i <= N; i++) {
if(a[i] == 0) cnt += N - 1;
else {
for(j = N / a[i] + 1; j <= N; j++) {
for(k = 2; k < a[i]; k++) {
if(j * a[i] / k > N) continue;
if(j * a[i] % k == 0) break;
}
if(k == a[i]) cnt++;
} } }
printf("%d\n", cnt);
return 0;
}
>>631 matrix[32][2]とかが0のままだね。
#include<iostream>
using namespace std;
#define N 100
int main()
{
int cnt=1;
for(int n=2; n<=N; n++) {
cnt+=N-1;
for(int a=2,na=n*n; na<=N; a++,na*=n)
for(int b=2; a*b<=N; b++)
cnt--;
}
cout << cnt << endl;
}
638 :
デフォルトの名無しさん:2012/03/24(土) 06:41:09.54
>>631 多倍長演算するようにするか
素因数分解するか好きなほうを選ぶ
どちらの場合でも a のループを b のループより外側にする
多倍長演算の場合は前回の計算結果を元に計算する
素因数分解の場合は a を素因数分解した結果に b を掛ければいい
計算結果を qsort する
一つ前と同じであれば minus_count++ する
計算結果の個数-minus_count が答えになる
すごいゴミコードを平気で貼れる神経がわからんw
>>642 どこがゴミかちょっとでいいので教えていただけるとありがたいです。
Nを10000にしてみろよw
Prelude> :m Data.List
Prelude Data.List> length $ nub $ map (\(x,y)->x**y) [(x,y) | x<-[2..100], y<-[2..100]]
9183
length $ nub $ [x**y | x<-[2..100], y<-[2..100]]
でいけたが滅茶遅いな。
**じゃなくて^だな、もう氏のう
634をちょっと改造
#include <stdio.h>
#include <stdlib.h>
#define N 100
int main(void) {
int i, j, k, a[N + 1] = {0}, max, *cnt, sum = 0;
for(max = 0, i = N; i; i >>= 1) max++;
cnt = calloc(max, sizeof(int));
cnt[0] = N - 1;
for(i = 2; i < max; i++) {
for(j = (i & 1) ? N / i + 1 : N / 2 + 1; j <= N; j++) {
for(k = 2; k < i; k++) {
if(i * j > k * N) continue;
if(i * j % k == 0) break; }
if(k == i) cnt[i]++; } }
for(i = 2; i * i <= N; i++) for(j = i * i, k = 2; j <= N; j *= i, k++) if(a[j] == 0) a[j] = k;
for(i = 2; i <= N; i++) sum += cnt[a[i]];
printf("%d\n", sum);
free(cnt);
return 0;}
>>645 そりゃだめですね。
>>640 にしたがって素因数分解を選択し、2<a<100 という点から√100 = 10 までの素因数の個数+10以上の素数1つだけの種類・その個数と仮定して組んでいますからね。
N = 10000 にするのだったら、100 以下の素数について記録するようになおさないといけないですね。
それも理解せずに N=100000 にしたんですか?
651 :
デフォルトの名無しさん:2012/03/25(日) 11:38:17.86
>>650 ゴミコードとまではいわんが、オナニー見せられたような気分だw
>>640が提示したアルゴリズムがデチューンされてるw
>>651 >
>>640が提示したアルゴリズムがデチューンされてる
>>640 は qsort を使う方針のところを、
>>641 では 二分木に変えていますから。しかしそれがなぜオナニーコードになるのかなあ?
653 :
デフォルトの名無しさん:2012/03/25(日) 12:21:16.11
二分木に方向転換する理由が分からないんだぜ
見づらくしてまで性能を下げる理由
>>640の考え方自体アホすぎるのに、それを元にして書いたらクソコード以外にはならないだろ
素因数分解とか、無駄が多すぎてゲロ吐きそうw
>>653 二分木も quick sort もNlogN という点で能率は同じですから、あとは料理しやすい方をえらびました。
quick sort に与える比較関数に迷いましたので二分木にしましたね。結局、二分木に与えたものと同じものを qsort() で使ってもいいようですけれども。
>>654 え?見づらいですかねえ。普通に書いただけですけれども。
>>655 >>656 まあ
>>649 は爆速ですね。
要するに主張としては、適切なアルゴリズムを使っているかどうかはコードがゴミであるかどうかに関与しないってことでおk?
ゴミコードを書く奴は自分がゴミを書いてるって自覚がないからな
自覚があったら書くのをやめる
ただしこれに対して「私のコードのどこがゴミなのか具体的に説明してもらえますか?」
という質問は受け付けない
とくにQ
難癖付けて絶対にゴミコードだと認めないのは今まで腐臭が漂うほど見てきたからな
ちゃんとした回答にならモリタポ支払いたいけど
QZの回答はちゃんとしてないからなぁ・・・
>>661 ステマですか?
ちゃんとした回答じゃないよ、という指摘があればちゃんとした回答になるまであきらめずに訂正してきています。今までずっとそうしてきました。
他人の指摘がなければちゃんとした回答にならない時点で論外
QZがこれまで嘘を言ってきたことは確認済み
勘違いは多いし、故意の嘘も1回や2回じゃねー
>>659 >ただしこれに対して「私のコードのどこがゴミなのか具体的に説明してもらえますか?」という質問は受け付けない
それは一方的ですね。ある対象コードがゴミというからには、そのコードがどうごみなのか、記述するのがより客観的な表明というもの。
ゴミと言い放つだけでなにも説明しない、いや正確には説明「できない」のでは、それは、
お つ む が メ ル ヘ ン
というだけですよ。
>>649 が
>>641 よりも優れている点は
>>657 で認めています。
>>663 それはまあ、そうですね。まだまだ至らぬところ、精進あるのみです。
ご指摘感謝いたします。
>>664 へえ?そうなんですか?
一目でクソとわかる、このクソコード。www
50000モリタポでどこがクソか教えてやるよ。
>>667 まじめな話、5000モリタポでどうですか?
@
>>667 がクソな部分の URL および論理行 No. を、トリップをつけて投稿
AQZaw55cn4c が納得すれば、そのトリップに送金、いや送モリタポ
B
>>667 がクソな点を説明
の流れでいかがでしょう?
669 :
658:2012/03/25(日) 16:43:45.58
またスルーされてるわ。俺QZに嫌われてるんよきっと
自分で自分のコードがゴミだと理解できてない奴にわからせるのは凄い手間だからな
Qがぼろくそだといっていたやつが
かいたこーどがそれよりひどかったことは
おぼえている
>>649がどういう理屈なのかもクズには理解できないんだろうな
>>670 そこを 5000 モリタポで、なんとか(もみ手すりすり)
小学生に一からC/C++を教えるほうが、QZに自分のバカさを理解させるより簡単だろうな
QZは相手を見てレスをしている。
しょっちゅう外れてるけど、何もせずにクズクズ言ってる相手をあおろうとしているんじゃないかな。
そいや最近自己愛連呼の人いなくなったね
興味があるから観察を続けてるんだ(キリリって言ってたけど、興味なくなったんかな
トリップつけたりはずしたり忙しいなw
やはり、強制IDにしないとだめだね?
>>674 >>673 >>677 トリップを意図的にはずした投稿はひとつもありません。そうであるだけに ID はほしいですね。
自治スレが落ち着いたようだし、win32api スレの沈静化を目的に ID付きを提案してみましょうか。
人間としての一般的な能力、コミュ力なんかが低いのにプログラムだけできると性格歪むよね
まともな人間関係も築けない屑人間がプライドだけ高くなっちゃって、もうちょっと自重すべきだろ
>>669 いやいや、そういうわけじゃありません。
「適切なアルゴリズムを使っているかどうかはコードがゴミであるかどうかに関与しない」というつもりはないので。
屑人間とか、ぼろくそに相手を呼ぶなら、
発言に責任を持つ意味でトリップをつけろよ。
win32スレはもうしばらくみてねえわw
>>680 以下の単語の意味がまったくわからないか、私の理解とはかけ離れている可能性がありますので、あなたの定義または説明をお願いいたします。
>人間としての
>一般的な
>コミュ力
>歪む
>屑人間
>プライド
>>682 そんな無駄な書き込みはしないほうがいいですよ。どうせできっこないですから。
自演にしか見えねーw
いままでさんざんQZの間違ったとこを指摘してきたけど、
ちっとも成長しないし態度もかわらなかったからなあ
こういう風に言う奴が出てくるから、IDにしたほうがいいんだよ。
IDにしたって、携帯とPCとかいくらでも自演はできるし意味ないけどな
Qへ
宿題スレってことは学生向けの見本になるコードなんだから
if文の中に代入式を書くのはやめたほうがいいよ
バグの元だからコーディング規約で禁止されてる会社も多いし変な癖つかないように
>>687 >QZの間違ったとこを指摘してきた
そうですか。しっかり読んでいるつもりですが、あまり記憶にありません。
>成長しないし
すみません。長い目でみてやってください。
気に入らないコテはNGすればいいのになんでさわってんの?
>>690 >if文の中に代入式を書くのはやめたほうがいいよ
うーん、これは考え方の一つではありますが、私としてはとりたくない。昔からよくある書き方だしアイディアがコンパクトにつまっている、一種の慣用句ですしね。
それはそうと
>バグの元
について kwsk
>>692 ほんと、NG にいれればいいのにね。なぜそうしないんでしょうね。私も不思議です。
結局、ここでゴミコードなのを本人が納得するまで説明できたとしても、あとになったら
>>691みたいなこと言うだけだからなあ
if()の中で代入したのに、それを使わないで同じことを繰り返すバカ
>>695 そんなことないと思います。
仮に
>あまり記憶にありません。
といったとしても、なかば無意識的に◆QZaw55cn4c のコードに反映されているんじゃないですか?
◆QZaw55cn4c のコードに反映されている、ということはすなわちアドバイスを受け入れた、ということでOKではないでしょうか?
>>693 よくある'=', '=='の書きミスとかかな
-Wallとかつければ警告でるんだけどね
昔はディスプレイで見渡せる範囲が狭かったから1行に79文字めいっぱい詰めたりしましたけど
そういうのは昔からやってるからというのがずっと通用するわけじゃないですよ
例えばこれとか2行に分けるとそんなに見づらいですか?
> if ((p = malloc(sizeof(struct node))) == NULL) {
それとgdb使ったりするときbreakpoint貼れないとかあるみたいよ
if文に代入文を入れないようにすれば関数の戻り値をデバッガで書き換えてパスを通すような単体テストも可能ですから
アンチQZはまた方針を元に戻して、
名無しでいちゃもんつけ続けることにしたのかw
QZちゃんも大変だなw
>>699 いや、個人的に書く分はいいけど
宿題で貼るコードだけは教科書向きにしようよって話だけど
>>662 仮にも人の問題解いてモリタポ貰おうってやつが、何言ってんだ?
そんな中途半端なやつに払えるモリタポなんかねぇよ・・・
>>697 反映されてないから今でもNGくらってるんでしょ
初心者スレならともかくここに宿題を処理してもらいに来る人がプログラミング作法に拘るとは思えんが
動けばいいんじゃね
そういう他力本願な人間に変な知識つけて放流するとメンテする自分の身に降りかかるぞ
宿題他人任せのやつがPGになるかなぁ
卒業したら二度とさわりたくないと思うんだが
>>702 具体的に NG もらったのは、 ループで毎回 strlen() してたことくらいかなあ‥‥‥。それと
>>696 >>696 認識・了解しました。ご指摘感謝。
>>698 確かに入れ子の中の関数がなにを返してきているのかみたいときに、if 文の中にブレークポイントはつけられませんね。
将来、すこし大きなことをするときに役立つかもしれません。覚えておきます。
クズvsクズ
>>707 >将来、すこし大きなことをするときに役立つかもしれません。覚えておきます。
最高のギャグを見た。
あなたがクズをヲチするときクズもまた等しくあなたを見ている
712 :
デフォルトの名無しさん:2012/03/25(日) 18:54:16.69
くずと闘うものは、その家庭で自分自身も怪物になることがないよう、気をつけねばならない。
スレをのぞき込むとき、そのスレもこちらを見つめているのだ。
----フリードリッヒ・
>>710 『C/C++の宿題片付けます 156代目はかく語りき』
>>712 アメリカのファンタジーとか悪役が外道だからそれに対抗して主人公側も外道になっていくんだよなw
ヒロインが敵にちんこ自分で切り取らせて食わせたのは吹いたわ
>>712 フリードリヒ・ニーチェですか。でも「ゾロアスターかくかたりき」にはないようですね。今、流行っているのですか?
ツァラトゥストラ片栗粉
>>714 とりあえずaとbをいじってどうにかする方法を検討してみてはどう。
要するに
・質問者がやろうとしていたことを理解
・質問者が工夫した点を把握
・「それをいったん取り除き」
・質問者が工夫をする前のシンプルなコードを求め
・そのコードでは導出できない解を、導出できるようなコードに変更←これが本質的な疑問への回答(
>>635でその一例は挙げている)
・質問者が工夫していた内容が使えるのなら、それを使う形にする、無理ならそれを伝える
これが、コードを提示した質問者へのまじめな回答の仕方だと俺は思っているし、そういう風にしてきた。
実務では当たり前のように行われている、最小限の変更で正しく動くようにするための作業ね。
別のアプローチをした挙句に、遅いコードは質問者にとってメリットが極めて少ないよ。
718 :
デフォルトの名無しさん:2012/03/26(月) 00:07:13.82
自分の都合でコードを書いちゃいかんよ。
人に見せるのなら特に。
元質問者がさっぱりわかりませんと丸投げしたのなら、QZのようなコードを「ネタとして」投下するのはスレ的によくあることなんだけど、
大真面目な回答として出してるから頭おかしいといわれる。
んじゃあperl製のネタを一つwww
my $max = shift || 100 ;
my %r ; # result
my $p = 7333687 ;
for my $n (2..$max) {
for my $m (2..$max) {
my $mp = modpow($n,$m,$p) ; # c = n^m (mod p)
$r{$mp}++ ;
}
}
my $total = scalar keys %r ;
print "$total\n" ;
sub modpow { # c = b^e (mod m)
my ($b,$e,$m) = @_ ;
my $c = 1 ;
while ($e > 0) {
$c = ($c * $b) % $m if ($e & 1) == 1 ;
$e >>= 1 ;
$b = ($b * $b) % $m ;
}
return $c;
}
言語違いはスレ違いといわざるを得ない。何調子に乗ってんだか
と、理解できないアホがほざいておりますwww
> my $total = scalar keys %r ;
scalar書くヤツ
雑談スレになっててフイタ
C はよくわからないけれども、アセンブラですら、4バイト確保してseg:off だから、多分そうじゃないかな。
案の定Qが図星を突かれてファビョりまくっててワロスwww
728 :
デフォルトの名無しさん:2012/03/26(月) 20:21:34.11
[1] 授業単元:Cプログラミング演習
[2] 問題文(含コード&リンク): あたえられた単語で文字数が最長となるようなしりとりをプログラムしパターンと文字数を導出せよ.ただし構造体とポインタを使用すること.
[3] 環境
[3.1] OS: Windows Vista
[3.2] コンパイラ名とバージョン:VC 2008
[3.3] 言語: C言語
[4] 期限: 3月27日まで
[5] その他の制限:
>>610と同じものです。立て続けに質問して申し訳ありません。
http://ideone.com/YRIao 単語のデータは与えられていて、総当たりでしりとりを行っています。
構造体には頭文字,末尾文字,文字数の順にいれてあります。
最長文字数は導出できるのですが、どうにかしてパターンがわかるように取り出せないものでしょうか。
よろしくお願いします。
729 :
デフォルトの名無しさん:2012/03/26(月) 21:29:15.30
>>728 このプログラム正しいか?
52行目のfor文って下のfor文の中でやらないとまずくね?
730 :
デフォルトの名無しさん:2012/03/26(月) 21:40:03.52
間違ってますか?
いちおう文字数変えたときもちゃんと動いたと思うんですが
731 :
デフォルトの名無しさん:2012/03/26(月) 22:42:25.33
>>730 すまん、そこは問題ないです。
78行目見落としてた。
733 :
デフォルトの名無しさん:2012/03/27(火) 02:09:06.87
>>732 すみません。これだと構造体の文字数がカウントできないと思うのですが...
>>728 にあるように構造体の最後はどれも同じですが文字数です
[1]C言語(やさしいC 輪講)
[2]問題文:
次のコードは、コンソールから入力された異なる5個の1から20までの数を大きい順に並べ替えて出力するプログラムです。
([1])〜([11])内を埋めてコードを完成させなさい。
#include <stdio.h>
#include <stdlib.h>
static int readNumber(char *msg,int min,int max,int m1,int m2,int m3,int m4){
char console[256],([1]);([2]) result;
for(;;){
printf("%s",msg);
t=fgets( ([3]),stdin);
if(t==NULL)([5]);
result=atoi(([3]));
if(result<([6]))([5]);if(result>([7]))([5]);
if(m1==result){
printf("その数は使われています\n");
([5]);
}
([8])
return result;
}
}
int main(void){
int m;
m=readNumber("1個目:1以上20以下の整数を入力してください:",([9]),([10]),0,0,0,0);
([11])
return 0;
}
[3] Windows Vistaですがコンパイラとかよくわかりません。
[4] 4月の最初のゼミまで(3年次・4年次と連続履修です)
[5]ローカル変数はステートメントが始まる前にすべて宣言しなければならないと注意を受けました。よろしくお願いします。
ちゃんと写せてる?
736 :
デフォルトの名無しさん:2012/03/27(火) 04:36:50.23
Qには解いてほしいもの
>>734 ([3]) が無理だな
([11]) の中で変数を定義すれば書けない事はないけど無茶苦茶汚いコードになるし
明らかに転記ミスだろう
>>734 [1] *t
[2] int
[3] console
[4] ←なぜかない
[5] continue
[6]min
[7]max
[8] 未解決
[9]1
[10]20
[11]未解決
[3] console,sizeof(cosnole)/sizeof(char)
なのかも
>>734 resultで、5個の数字を合成したものを返す(入力が3,1,4,5,9なら3010509とか)んだと思うが、
fgetsは3引数、atoiは1引数だから、[3]は転記ミスじゃないかな?
>>742 X 3010509
O 301040509
でした。
744 :
デフォルトの名無しさん:2012/03/27(火) 12:11:03.67
>>743 >static int readNumber(char *msg,int min,int max,int m1,int m2,int m3,int m4)
を見るにreadNumberはmain側で5回コールされることになってるはず。
[8]と[11]がどんな回答を想定してるのか楽しみではあるw
atoi([3])ではなくatoi([4])で
[4] console
だったら少し話が通る漢字
746 :
デフォルトの名無しさん:2012/03/27(火) 12:32:53.37
>>738 大丈夫そうです。ありがとうございました。
748 :
デフォルトの名無しさん:2012/03/27(火) 12:49:01.93
>>745 [5]との順番的には
t=fgets( ([3]),([4]),stdin);ではなかろうか。
>>747 メッセージの部分がおかしいが、動作はするね。
ただし16ビット処理系では無理っぽい
751 :
デフォルトの名無しさん:2012/03/27(火) 14:12:04.26
>>750 くずの方がまだましな気がしないでもない。。。
>>749 >ただし16ビット処理系では無理っぽい
組み合わせ数は20C5→15504だから、可能ではあるけど面倒だな。
>>750 題意に沿うように、などという思考は QZ には皆無。
題意に沿うように手持ちのライブラリコードを応用して書くというのが
QZの常套手段じゃなかったっけw
その方法自体はプログラムを作る分には悪くはない.悪くないどころか
むしろ正統じゃないかと...
もしかするとそういうライブラリが一つの言語コミュニティを作るぐらいまで
に成長するかもしれないし、実際そういう例もあるし...
毎回毎回カスタムオプティマイズするような作り方のほうがむしろ異常。
ただ初心者が依頼者の半数以上であるような宿題を解いてやるスレでは
そうとは限らないかも。
Cにゃあperlやrubyのようなコードの掃き溜めって無いの?
CPANとかそうゆうのじゃね?
758 :
デフォルトの名無しさん:2012/03/28(水) 21:15:04.11
Qって発想力はないよな
Qの人気に嫉妬
アルファベット1文字で特定できるというのはすごすぎ
きゅう
だから Q はやめろ。
NGに登録できないから QZ にしてくれ。
にくきゅうさいこー
↑おいおい‥‥‥
QZと書いてクズと読む
ちょっとした頓智が要るかな?
(11)の部分が1M近くなったけど
まぁ解けたと思う
けど、こういう意地悪な問題解けて提出しても
多分怒られると思うので貼らない。
>>768 マクロって線を考えたんだが書く場所が無いんだよな
(2) に書くことって可能だっけ?
まぁ可能だとしても俺にそんなコードは書けないけどw
1番目:1から20までの整数を入力してください:7
2番目:2から20までの整数を入力してください:11
3番目:2から20までの整数を入力してください:12
4番目:13から20までの整数を入力してください:20
もういちど最初からやり直してください。
1番目:1から20までの整数を入力してください:7
2番目:8から20までの整数を入力してください:11
3番目:12から20までの整数を入力してください:1
3番目:12から20までの整数を入力してください:12
4番目:13から20までの整数を入力してください:17
5番目:18から20までの整数を入力してください:19
7 11 12 17 19
>>770 二行目、三行目の範囲下限が何故2なのかわからない。8,12ではないのか?
カレンダー出力のプログラムのコードを書いてみよ!
祝日も表記されるようにな。
過去のデータを参照すりゃええがな。
最近は出題者が威張るようになったのか?
そこ見ても計算上では出せるけど官報で発表されるまでは確定じゃないことくらいしかわからないな
>>783 正式には前年に出された官報によるということでしょう。
宇宙が急に揺らぐかも知れないから、いつからいつまでの
範囲ではこの計算式とは確定できないが、ここしばらくは
概ねこの計算式で出されるに相違ないという式はある。
785 :
デフォルトの名無しさん:2012/04/03(火) 14:48:15.97
数年ぶりに来たらモリタポで宿題かたずけるとか、
変なスレがあったからどうしちまったんだと思ったけど、
昔からのは存続してたんだな。
知識を無駄に放出してこそ宿題スレだよな
>>785 モリタポスレは、ぼるじょあスレの代わりということで
またクズか
やめてくださいよ3
[1] 授業単元:
[2] 問題文(含コード&リンク):
http://pastebin.com/B7EcsTNp [3] 環境
[3.1] OS: ubuntu
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 本日中
[5] その他の制限: 構造体を用いてLIFOのスタックを実現するという問題です。
34,44,45行目の(1)〜(3)に適するコードを教えて下さい。
よろしくおねがいします。
*(stack->pointer) = value;
if (stack->pointer > stack->data){
return *(--stack->pointer);
792 :
790:2012/04/06(金) 22:17:45.51
>>791 回答ありがとうございます
質問なんですがstack->dataの使い道は25行目の先頭アドレスをpointerに格納するだけなんでしょうか?
pointerとdataの関係というかpushした値は実際にはどの部分に格納されてるのでしょうか?
>>792 pointerを経由してdataに格納されるよ
>>793 ありがとうございます、stackのメモリの使い方が
勉強不足だと実感しました
それともう一つ問題をお願いします。
[1] 授業単元:
[2] 問題文(含コード&リンク):
http://ideone.com/mBMNy http://ideone.com/VF56k [3] 環境
[3.1] OS: ubuntu
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 本日中
[5] その他の制限:どちらも二分探索木の問題で上は再帰、下はループを用いて
実現するという問題です。
実行すると左→下の優先順位で2分探索木が表示されます。
上は44行目の(7)、下は35,73,96,111行目の(10)〜(13)に適当なコードをお願いします。
(7)は一応入れてはいますが出力結果がうまく行かずもしかしたら違う番号のとこがミスっているかもしれません。
再帰の方の(7)
obj->right = appendRightEnd(obj->right, right);
ループの方(多分)
iobj->right = newNode(n);
iobj->right = obj->right;
pobj->right = deleteThisNode(pobj->right);
pobj = pobj->left;
誤爆です。ごめんなさい。
何度も言わせないで頂戴。儲かるプログラムを教えなさい!
昔FF11で自動で魚を釣り続けるプログラムを作ってRMTで100万以上稼いだわ
>>801 銀行の基幹とか航空管制とか原子炉制御とか書けば隠者ね?
航空管制はやったことあるけど、Javaだったな…
裏でガーベジコレクタが動くような言語使っていいのか・・・
メモリリークする言語よりはいいじゃろ。
コールスタックのルートと繋がってりゃ
プログラム終了まで解放されず結局
メモリーリークと変わらんけどな
信頼性の要る現場じゃどのみち解放処理に気を払う必要がある
プログラム終了しなければ、無問題
むしろ航空管制だとオペレータが介在するから
ストップザワールドが問題になりにくいんじゃね?
Erlangを電話交換網に適用した事例があるように、
ソフトリアルタイムシステムは十分に実現できるはず
本当にまずいのは、車のブレーキシステムとかじゃないのかなあ
810 :
デフォルトの名無しさん:2012/04/17(火) 21:35:25.66
>>809 走行安全制御やってるけど、設計とかテストとかガチガチだよ
EC++使うよ
>>812 embedded C++ って何ができて何ができないの?
クズは黙ってろ
embedded C++ って何ができて何ができないの?
・ハメ込みができます
・
817 :
デフォルトの名無しさん:2012/04/18(水) 00:56:38.92
818 :
デフォルトの名無しさん:2012/04/18(水) 02:30:08.94
( i * X ) % p == 1
という式が与えられていてiは1〜10のfor文、pはscanfで入力する値なのですが。
Xの値をコンパイルしたいのですが方法が分からず困っています。
C言語でコンパイラはgccです。
教えていただけませんか?
>Xの値をコンパイルしたい
何がやりたいのかさっぱり伝わらない
コンパイル時に定数として与えたいというなら、#defineを使う
例
#define X 100
Xの値を出力しろってことか?
Xは共通と考えてみたら撃沈したがな。
コンパイルじゃわからんぞ。
821 :
デフォルトの名無しさん:2012/04/18(水) 12:33:30.40
すいませんが早くしてくれませんか。
iは1〜10のfor文、pはscanfで入力する値なのですが。
それからXの値をコンパイルしたいのです。
#include <stdio.h>
int main(void) { int i, p, X;
printf("p: "); scanf("%d", &p);
for(i = 0; i <= 10; i++) {
for(X = -100; X <= 100; X++) {
if ((i * X) % p == 1) { printf("X = %d\n", X); i = 11; break; }
}
}
return 0;
}
pが1以下のときは成り立たないので
>>818はバグです
>>822 おお、素晴らしい。
力づくでも良かったのか。
>>220 「コンパイル」と言う言葉を使わずに説明しろ。
後処理結果も提示しろ。
お前は料理屋に行ってメニュー出されたにも関わらずうまいものを出せと喚き、お勧めを店員が提示してもうまいものを出せと喚き続ける客だ。
こうだな
#define compile(X)
または
void X_wo_compile(void){}
>>824 「うまいもの(当店オリジナル玉子焼き) 時価」 というメニューを用意すればいい
824だけど。
>>825-826 クソワロタwww
和んだわ。
一瞬でもcompile関数の意味を聞こうとしてしまった。
バカだ。恥ずかしい。
int main(){
int i,X,p;
for(p=1;p<=10;p++){
printf("X=1 2 3 4 5 6 7 8 91011121314151617181920-->p=%d\n",p);
for(i=1;i<=10;i++){
for(X=0;X<=20;X++)
printf("%d ", (i*X)%p==1);
printf("\n");
}
}
printf("p?");
scanf("%d",&p);
printf("X=1 2 3 4 5 6 7 8 91011121314151617181920-->p=%d\n",p);
for(i=1;i<=10;i++){
for(X=0;X<=20;X++)
printf("%d ", (i*X)%p==1);
printf("\n");
}
return 0;
}
printf("%d ", (i*X)%p==1);
は
%02d
にした方が良い
ついでに
for(i=1;i<=10;i++){
の下で 空白1つを出力しとけ
830 :
デフォルトの名無しさん:2012/04/19(木) 10:10:19.15
2byteのshort型データどうしの引き算で
オーバーフローとアンダーフローを検出するロジックを教えてください
例えばこのような演算はアンダーフローになります
short a,b,c;
a = -32768, b = 100;
c = a - b; //アンダーフロー
以下のような関数を使って事前に判定したいのです。
(Cの機能を使わずに関数で判断したい)
この関数の中身を教えてください。
//引き算のオーバーフローとアンダーフローを検出する関数
int chk_sub_overf_underf(short a, shortb);
戻り値が0なら正常、1ならオーバーフロー、-1ならアンダーフロー
サイズの大きい変数でも演算して結果を比較するとか
832 :
830:2012/04/19(木) 10:42:44.67
すみません
サイズの大きい変数は使わないという前提でお願いします。
>>830 a>0 && b<0 のとき a-b<=0 なら オーバーフロー
a<0 && b>0 のとき a-b>=0 なら アンダーフロー
それ以外は正常
834 :
830:2012/04/19(木) 10:57:31.57
>>833 ありがとう
そんなに簡潔にわかるんですね
int Y,X[11],i,p;
scanf("%d",&p);
for(i=1;i<11;i++)
{
Y=0;
X[i]=0;
if(Y/i == 0 && i <> 1)
continue;
if(Y%2 == 0 && i%2 == 0)
continue;
while(Y == -1)
Y += p;
X[i] += Y/i;
Y = Y%i;
Y -= i;
X[i]++;
}
}
824だけど。
暇だったから作った。
携帯からだしテストもしてないから間違っててもしらん!
836 :
デフォルトの名無しさん:2012/04/19(木) 18:02:38.53
>>833 「それ以外は正常」って
aが無茶苦茶大きいとき、あるいは負方向に無茶苦茶小さい
とき(絶対値が無茶苦茶に大きいとき)、大丈夫かねえ。
a>=0 && b<0 のとき a-b<=0 なら オーバーフロー
a<0 && b>0 のとき a-b>=0 なら アンダーフロー
それ以外は正常
これでおっけー
意外と大丈夫だな
> いやぁ、スレが盛り上がっていてなにより
この一文はなくした方がいいと思うぞよ
白々しさを感じてリンクをふむのを戸惑ってしまう
どんな文面だったとしてもうざいとしか思わないよ
電車に乗ってるときに、知らない人からいきなり完全な正論を吐かれたとしてもいやな気分にしかならない
内容伏せてプロパガンダ貼るとか、ネガキャン側の人間の工作としか思えない
右翼の街宣カーと一緒だな
>知らない人からいきなり完全な正論を吐かれたとしてもいやな気分にしかならない
こいつはテレビを見るたびにイラっとしてんだな・・・
政治レスに触る奴死ねよ
せめて安価つけろ
深夜にこんなところでキレてるキチガイってキモイな・・・
>>843 両方正の数あるいは式になって無いもしくは強引に解釈しても加算処理施している件について。
引き算でデータがぶっ飛ぶ恐れがあるのは…
足し算で考えると
正+正 負+負
この2パターン。だから、
正-負(+正と同義)
負-正(+負と同義)
が引き算においてデータがぶっ飛ぶ恐れがある。…合ってますか?
>a>=0 && b<0 のとき a-b<=0 なら オーバーフロー
a=正 b=負
正-負(+正と同義) 正の加算処理してなんで負の数になるの。
>a<0 && b>0 のとき a-b>=0 なら アンダーフロー
a=負 b=正
負-正(+負と同義) 負の加算処理してなんで正の数になるの。
>>848 符号ビットが反転するから
でも、これを期待したコードって書いてよかったのかどうかが怪しい。
前にも同じ話が出たと思うけど、結論忘れた。
>>847 >>849 >>837の記述にはミスがあるけど、そこは別にいいか。
852 :
850:2012/04/20(金) 18:57:37.89
と思ったけど俺の勘違いでした。(2段目)
853 :
850:2012/04/20(金) 18:58:14.02
わ、即レスついてた、惑わせてごめんなさい。
>>850 補足ありがとう。
でも教えているだけだよ…
4ビット2の補数で考えると
(1)-(-8)=(9)
0|1000 + 0|0001
0|1001(-7)
(7)-(-1)=(8)
0|0111 + 0|0001
0|1000(-8)
(7)-(-8)=(15)
0|0111 + 0|1000
0|1111(-1)
(-8)-(1)=(-9)
0|1000 + 0|1111
1|0111(5)
(-1)-(7)=(-8)
0|1111 + 0|1001
1|1000(-8)
(-2)-(7)=(-9)
0|1110 + 0|1001
1|0111(7)
(-8)-(7)=(-15)
0|1000 + 0|1001
1|0001(1)
だねぇ。
とりあえず適当に数ぶち込んだ限りではちゃんとなってるけど。
>>832 >サイズの大きい変数は使わないという前提でお願いします。
limits.hは不可って事?
int chk_sub_overf_underf(short a, short b)
{
if(a==0||b==0)return 0;
if(a>0&&b>0)return 0;
if(a<0&&b<0)return 0;
if(a-(a+b)/2>SHRT_MAX/2)return 1;
if(a-(a+b)/2<SHRT_MIN/2)return -1;
return 0;
}
856 :
デフォルトの名無しさん:2012/04/21(土) 11:06:54.06
[1]
[2] 問題文
@C プログラムでx; y のそれぞれについて適当な関数を定義し(x; y) 座標の点を500 組生成する
[3] 環境
[3.1] OS:mac
[3.2] コンパイラ名とバージョン: ターミナル
[3.3] 言語: どちらでも可
[4] 期限: 4月25日13時まで
[5] その他の制限: 特にありません
カレーを作るのに必要な食材: まな板
> [3.2] コンパイラ名とバージョン: ターミナル
なにか勘違いしてる
プログラミングうんぬんの前に
もっと別の教育が必要らしい
[2] 問題文
> x; y のそれぞれについて適当な関数を定義し(x; y) 座標の点を500 組生成する
x^2+y^2=1 とすると、y^2=1-x^2 ; y=sqrt(1-x^2) ;
そりゃ何もわからないから丸投げにくるわけで・・・・
わかってるやつなら質問スレに行くわ・・・
x=rand(); y=rand();
込み入った漸化式をつかって
マンデルブロ集合でも描けばいい
y=xでいいじゃん。
864 :
デフォルトの名無しさん:2012/04/21(土) 21:51:15.45
あのなあ
そうか
まだ難易度が低いっていうのか
いや失敬
それならフレネル積分が登場する
クロソイド曲線とかはどうだ
プロットすればいいものが見られるぞ
>>856 @C プログラムでx; y のそれぞれについて適当な関数を定義し(x; y) 座標の点を500 組生成する
[3.3] 言語: どちらでも可
…矛盾してね?
@C プログラムでx; y のそれぞれについて適当な関数を定義し(x; y) 座標の点を500 組生成する
いまいち意味分かって無いのは俺だけか?
y=x+30
とかテキトーに作ってforあたりで回せと?
文字通り何でもいいと言うなら
>>861>>863 ですぐできるが。
867 :
デフォルトの名無しさん:2012/04/22(日) 23:40:43.80
>>856です
皆さんの言うとおりこちらの勉強不足でした。
様々なご意見ありがとうございました。
868 :
デフォルトの名無しさん:2012/04/23(月) 09:37:40.32
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int no;
int ans;
srand(time(NULL));
ans=rand()%10;
printf("0〜9の整数を当ててください");
do{
printf("いくつですか");
scanf("%d",&no);
if(no>ans)
printf("もっと小さい\n");
else if(no<ans)
printf("もっと大きい\n");
}while(no!=ans);
printf("当たりです\n");
return(0);
}
っていう0〜9の数字を当てるハイ&ローのプログラムなんだけど
これに残りの入力できる回数を追加したいんだけど残り回数=nokoriとして
入力できる回数をkai=10とした場合のプログラムを教えてください
質問スレ行け
ここは宿題をやるところ
doをwhileかforにして残り回数で回せ。
入力させるごとに残り回数を減らせ。
ループの下に外れまくった時の処理を書きなさい。
>>871 テンプレも読まないバカに答えんなよks
お前も消えろ
>>872 テンプレ通りに質問する必要も回答する必要も本来は無いハズなんだよ。
…あまりにもどうしようもないバカが多すぎるだけで。
処理結果…は無いけどはっきり何したいか言ってくるだけましだろ…
これで解りませんソース全文くださいって言ったりバックレたりしたらふざけんなテンプレぐらい読めよって言うけどな。
>>871 #include <time.h>
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
#define kai 10
int no=10,ans,nokori;
srand(time(NULL));ans=rand()%10;printf("0〜9の整数を当ててください");
for(nokori=kai;no!=ans&&nokori!=0;nokori--)
printf("いくつですか"),
scanf("%d",&no),
no>ans?printf("もっと小さい\n"):
no<ans?printf("もっと大きい\n"):NULL;
no==ans?printf("当たりです\n"):
printf("はずれまくり\n");
return(0);
}
>>875 kai と nokori って同じ意味じゃね?
>>868 http://ideone.com/vBcII PC使えたから出来るだけ原形とどめて書いてみたよ。
一回聞いてみて「ハズレ なら もう一回」聞くのを、
「ハズレ&残り回数がある なら もう一回」聞くようにしてみた。
ところがこれだとnokoriの初期値が0以下でも聞いてきてしまうことに注意。
>>874との違いはnokoriが0以下でも答えを教えてくれること。
>>877 kaiはdefine定数だね。
回答可能回数の略だろう。
>>856 http://ideone.com/xC2xe とりあえず…何もないと困るだろうから関数とループの勉強とみなして
x=i;(※iはすでに作った組の生成数)
y=500-x;
って事にしておいた。
後は適当に数式の部分だけ書き換えれば良いと思うけど。
27行目がx=…
36行目がy=…
に対応しているからそこだけ書き換えれば良いんじゃないかな。
何組目か表示しろ!って言われたら14行目を消して15行目のコメントを解除。
コメント何か入れんな!だったら15行目を削除。
これ以上は処理結果や数式提示してくれないとちょっときつい。
昨日宿題で出された問題です。よろしくお願いします。
解説無しでここから試験が出るようなので難しさに焦っています。
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
1〜9までの連続する数字の間に和・差・積の演算子(+, -, *)を適当に入れて、
式の値がちょうど 100 となる例を挙げよ(10とおりだけ書け)。
たとえば、
1 + 2 * 3 * 4 * 5 + 6 * 7 - 8 * 9 = 91
というような計算をする。ただし、この例では式の値が91となるので答えではない。
[3] 環境
[3.1] OS: MacOSXLion
[3.2]ターミナル
[3.3]C
[4] 無期限
>>881 ターミナルっていう名前のコンパイラなの?
この手の小町算て面倒くさいよな
Cでやるの
コンパイラを通す言語だから
しょーがないて言えばそれで終わりだけど
evalを自作すれば一番応用が利くかも
つーかそれ以前に
小町算 とかでggてみたのか?
#include <stdio.h>
int cnt;
char s[8];
void f(int idx, int tmp, int sum)
{
int i;
if(idx == 8) {
if(sum + tmp == 100 && cnt < 10) {
cnt++;
for(i = 0; i < 8; i++) printf("%d %c ", i + 1, s[i]);
printf("9 = 100\n");
}
return;
}
s[idx] = '+';
f(idx + 1, idx + 2, sum + tmp);
s[idx] = '-';
f(idx + 1, -(idx + 2), sum + tmp);
s[idx] = '*';
f(idx + 1, tmp * (idx + 2), sum);
}
int main(void)
{
f(0, 1, 0);
return 0;
}
小町算っていうのか勉強になる
888 :
デフォルトの名無しさん:2012/04/24(火) 17:38:49.42
>>880 解答ありがとうございます。
参考にしながら作ってみます。
>>885 ありがとうございます!C言語の試験は学内最難関で200人は
落ちてしまうんです。
でもその試験に合格すれば合格者は1人ずつ名前を覚えて
研究生の候補生として先生が認識してくれるんです。
ですから頑張りたいと思っています。
この程度のCの試験が学内最難関とか
いったいどういう学校だよ……
まさか大学の工学部とかじゃねーよなw
ははは
>889
自力じゃないんだから、結局後々苦労するんじゃないの?
問題が出題される度にここで訊いてたら、いつまで経ってもスキルは上がらない。
>>891 どうなんでしょうか。
柴田茫洋とかはやっていますし、私も決して勉強を怠っている訳ではないんですが
この先生の問題はどれも捻った問題だらけで私にはさっぱり解き方が分からないん
です。絶対にどの参考書からも外した問題を出してきます。
12+13 は習ったことがありますが 12+14 は習ってないので分かりません
自分で考える習慣がないと、研究なんてできないだろ
895 :
デフォルトの名無しさん:2012/04/24(火) 20:36:33.64
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):
[問1] 1からNまでの平均値を求めるプログラムkadai1.cを書きなさい。ただしNはキーぼどから入力するものとし、出力は以下で出力されるものとする。
printf("average = %f\n", answer);
[3] 環境
[3.1] OS:Linux
[3.2] gcc
[3.3] C
[4] 期限:2012年4月26日まで
[5] その他の制限: 特になし
896 :
デフォルトの名無しさん:2012/04/24(火) 20:38:01.28
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):
1からNまでの値の中で3の倍数の和を求めるプログラムkadai2.cを書きなさい。但しNはキーボードから入力するものとして,出力は以下で出力されるものとする。
printf("sum = %d\n", answer);
[3] 環境
[3.1] OS:Linux
[3.2] gcc
[3.3] C
[4] 期限:2012年4月26日まで
[5] その他の制限: 特になし
計二問ですよろしくお願いします。
つりじゃないの?
・・・余計な事を書かなきゃこういう風に
スレも荒れなかったし普通に質問も出来ましたね。
言い訳みたいなのも一応ありますが書きません、さらに荒れそうですから。
結局、私はアホですしどの参考書にも当てはまらない問題が出て来てしまえば
また質問に来てしまうでしょう。ごめんなさい。
これで荒れてるとかどんだけメンタルよわいの
>>896 そのまま答えるのは
>>896自身にとって良くないことなのでヒントだけ。
>>895 平均を求める計算式は?
その計算に必要な値はどうやったら用意できる?
>>896 倍数の定義を日本語にすると?
>>896 int main(void){
int i;
int answer;
int N;
scanf("%d", &N);
answer = 0;
for(i = 1; i <= N; i++)
if(i % 3 == 0)
answer += i;
printf("sum = %d\n", answer);
return 0;
}
>>881がわからなくて悔しい・・・小町算勉強するか
100を基準に9から下っていけば?
下って行って
割り算と小数点のクソコンボで判定できなくなる未来が見える
胸熱
>和・差・積の演算子(+, -, *)を適当に入れて
空白も含めて
123+4...
とかだったらホンモノすぎるだろww
めんどくせーよw
Cでやんのは
909 :
895:2012/04/24(火) 22:32:31.08
10個探せばいいんだから演算子の優先順位が問題にならない順番にしてランダムで適当に探せばよろしい
C言語のcallocを使ってて壁にぶち当たって悩んでる者です。一度だけcallocで確保したメモリをforループして値をいれていってるんだけど、PF使用量ってのがループ毎に増えてしまって悩んでます。初心者なんで訳わからんこと書いてたらすいません。
ソースもなしにレス立てとな
|:;:;:;:;:;:;:;:;:;:;:;:;:;:i;:;:;:;:;:;:;:;:;:;:;:;:;|
|;:;:_:;:_:;:_:;:_;:;_:;:l:;_;:_:;:_:;:_:;:_;:_;|
|______|_____|
| 三| _ _ |三 !
| 三| 三シ ヾ三 |三 |
| 三′ .._ _,,.. i三 |
ト、ニ| <でiンヽ ;'i"ィでiン |三.| ソースも貼らずにレス立てとな!?
', iヽ! 、 ‐' / !、 ーシ |シ,イ
i,ヽリ ,' : !. |f ノ
ヾ! i ,、 ,..、ヽ lノ
| _ _ イ l
l ,ィチ‐-‐ヽ i /、
゙i、 ゝ、二フ′ ノ/'"\
| \ ー一 / / _,ン'゙\
,ィ|、 \ /_,、-'" _,.-''´ `丶、__
_, イ | ヽ_ 二=''" _,. -''´ """""´´ ``ー
麻呂のクソース、キターーー!?
お前ら一条三位を馬鹿にするが、極官は関白の家柄。
賤民が神コードを書いても届かない名家なんだぞ。
名家つっても戦争負けて天皇がもうオワコンだしいまいち凄みが・・・・
>>909 answer=N*(N+1.0)/2.0;
>>918 言いたいことは分かるが、求めるべきは平均だ
920 :
895:2012/04/25(水) 00:16:33.13
誰か教えてください
エロい人
小町ちゃんの解凍だれかきぼんぬ
896がわかったら895もわかりそうなもんだけど、応用のできないかわいそうな子か?
>>923 小町算でググる
見つかった答え10個を printf で書き出すようにする
>>925 なんだよ、それw 1〜100までの素数をコピペするみたいなw
927 :
デフォルトの名無しさん:2012/04/25(水) 00:41:26.58
誰か教えてやれよww
>>895 プログラミング初心者ですが頑張って書いてみました。
間違っていたらごめんなさい。
#include <stdio.h>
#define N 'N'
int main(void)
{
char c;
int i, sum = 0;
double answer;
printf("Nを入力してください :");
scanf("%c", &c);
if (c != N) {
printf("これはNではありません!\n");
return -1;
}
for (i = 1; i <= N; i++) {
sum += i;
}
answer = (double)sum / N;
printf("average = %f\n", answer);
return 0;
}
よろしくお願いします
[1] 授業単元: C言語
[2] 問題文(含コード&リンク):
ひとつの英文をキーボードから入力し、その単語数と文字数を出力
するプログラムを作成せよ。
[3] 環境
[3.1] OS: MacOSXLion
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 無期限
885は小町だろ?
その小野小町を導くアルゴリズムが重要なんじゃなイカ?
881は完全な小町算を要求してるわけではない
数字の間に演算子が入らない場合を認めるのかどうかも不明だし
無駄な計算多いね
指摘するくらいなら自分がスマートなコードを提示すべきだろう
そうだと指摘する自分の意見を正当なものとするためにも。出来なければ単なる野次。
国会中継を見てご覧。野党は野次馬党と化している。かつて与党だった自民でさえ
野党時代の民主と変わらん。しかも審議拒否w
野次でええやん
>>937 谷垣でしょ?
ナベツネと同レベル、震災時、挙国一致内閣を立ち上げあけなければならない重要な時期に党利党略優先で菅叩きに猛進した馬鹿野郎でしょ?
菅は馬鹿だがあの時期に叩く理由が理解不能。期待するのが無駄。さっさと首にして神経がまともな党首にすげかえるべきでしょうね。
それにしても、かつての優秀な自由民主党はどこにいったのでしょうね。
せめて全国に放射能を拡散させる「燃やして応援」は勘弁ね。
>>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;
}
ねむい 寝る
>>937 =
>>935なら、そんなのスルーしておけばいいし、
そうじゃないなら如何に頭悪いレスかを理解すべきだし
885と比べると計算回数どんだけ多いか
配列に記号突っ込むだけなのに除算や余算使いまくりなのも酷い
>>881 先頭から順にではなく、演算子の優先順位も守ってのことか。面倒だからやーでおじゃる〜
それより、小町ちゃ〜〜ん
加算減産乗算しかないのなら、
ループ開始
まず*を排除。
数値配列バッファに数字を順次ぶちこむが*の時だけ乗算処理をする。
「1+2+3*4」ならあらかじめ全部1にした数値配列に、
1*1として+だから次にずらし
1*2として+だから次にずらし
1*3として「*なのでずらさない」
3*4として
終わり。
次に加算原産処理をバッファから読みこみつつ回答にぶちこむ。
先頭が+確定なのでまずこれを回答にぶちこみ
+なら加算
-なら減算
*ならスルー
でいいのでは?
この時点で回答が100なら「答えだよカウント」+1
答えだよカウントが10なら10個でたから終了。
加算減産除算を3進数とみなし1加算行う。
ループ終了
…で良いと思うんだが今から作ると俺の時間が無いので誰か頼む…
# 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;}
>>945だけど。
>>881 …携帯からだからテストもしてないんだ…ごめんよ。
自宅帰っても回答無いなら挑んでみるわ。
なんか小汚いゴミみたいなソースが来たな
全然美しくない
アホが自己満足で作って自分も他人も苦しませるために存在してるようなコードだ
馬鹿に合わせてコード書いてたらレベルが下がるわな
それならそうと
「あなたはバカなのでそれに合わせてコードの質を下げました、
この豚のエサで満足してください」
と書いた方がいい
バカに馬鹿って言う奴がバカなんだお^ω^?
ターミナルでコンパイルするお^ω^?
ま
ターミナル上でもコンパイルできるのは
変わりないわなwww
プw
人はそれを、ターミネーターという。
アイルビーバック!!
アイルビーコンパイル 彼はそういって再びコンパイルしたのであった
956 :
tako: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] その他の制限:特になし
int main(void)
{
int i = 0;
char a[65], *b;
b = "INFOMATION";
while(a[i++] = *b++);
printf("%s\n", a);
return 0;
}
int main(void){
char a[64],*b;
b="INFORMATION";
while(memcpy(a,b,64));
printf("%s\n",a);
return 0;
}
[1] 授業単元:プログラミングC
[2] 問題文 配列vxの各要素に整数をscanf関数で入力し、5の倍数のみを新たな配列に格納し、これを出力するプログラムを作成せよ。
[3] 環境
[3.1] OS: Windows vista
[3.2] コンパイラ名とバージョン: VisualStudio2010
[3.3] 言語: C言語 (C++)
[4] 期限: 4/26
[5] その他の制限:初歩的なものしか使えません。
よろしくお願いします。
#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;
}
>>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先生が使えないんだよ。
ついでにバグ取りしてくれりゃよかったものを…
だからわっかんねーのかなwww
>>910あたりはイイ線ついてんだよwww
+−だけならクソキャリーとか考えなくていいだろww
ついでに計算順も考えなくていいw
ま、10個見つかるかどうかは知らんけど
ラクしよう手抜こう早く仕上げよう てな
一番大切な精神をもってる
コーディングじゃあないんだ、
そのウラの考え方が美しくないって言ってんだろww
1から9まで足して45なのに、+-だけでいいわけねーだろ
どんだけバカなら気が済むんだw
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;
}
>>881 しつこいようだがソース全文提出orそれに近いものが条件でない場合アルゴリズムの学習をすること。
「自分で作ってきたよね?じゃあそれに除算機能も追加できるよね^^?」
こんなこと言いだす先生が相手の場合ソース丸暗記だけじゃ歯が立たないよ。
出題形式が先生自作プログラムの穴埋めの場合もまた然り。
試験落ち過ぎだろ…もちろん881の方の事じゃ無い!
脳内思考そのままコードにしている奴が言うセリフじゃないんでしょうけど。
965を参考に勉強するから良いんです。
半分以下だと流石に悔しい…。
>967
とりあえず落ち着け。日本語が分からん。
単純に演算子を配列に入れるだけなら、再帰より
>>964のほうが速いだろうけど
全部入れ終わってから計算を始めると、同じ計算を何度もすることになるから遅くなる
>>967 言いたいことは分かる。
分かるけど、脳内思考そのままコードにするのはそれでよくて、重要なのは脳内思考を変化させること。
>>968 我 是 日本人、不是 中国人 ワカッタアルカ?
そうだね、途中まで同じ計算なら、それを使って残りの数字で100になるパターンを探した方が良い罠
得意げなバカは結局何も考えてない
他人を見下す奴ほど、問題点は指摘するが改善点を示さない
何を言ってるか理解できないからってそうやって煽ってみても、
お前が理解できるように説明なんかしてくれないよ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
宜しくお願いします。
[1] 授業単元:C言語
[2] 問題文:2値化処理を行って画像明るい(暗い)領域を抽出することを考える。
微分ヒストグラム法を用いて2値化閾値選択を行い、画像を2値化するプログラムを作成し、
その画像に適用した2値化画像とヒストグラムを出力するようにせよ。
[3] 環境
[3.1] OS: linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C言語
[4] 期限: 5/1
宜しくお願いします。
画像フォーマットが問題だ