C/C++の宿題片付けます 137代目
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2010/06/18(金) 06:27:59【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
・問題文は、出題されたまま全文を書いてください。
・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。
【質問テンプレ】
[1] 授業単元:
[2] 問題文(含コード&リンク):
[3] 環境
[3.1] OS: (Windows/Linux/等々)
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
[3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
【C 関数検索 man on WWW】 http://www.linux.or.jp/JM/index.html
【過去ログ検索】 http://chomework.sakura.ne.jp/
【wiki】 http://www23.atwiki.jp/homework/
前スレ
C/C++の宿題片付けます 136代目
http://pc12.2ch.net/test/read.cgi/tech/1274827528/
0002デフォルトの名無しさん
2010/06/18(金) 06:28:440003デフォルトの名無しさん
2010/06/18(金) 06:45:53#include <linux/syscalls.h>
#include <linux/fs.h>
#include <linux/mm.h>
#include <linux/percpu.h>
#include <linux/slab.h>
#include <linux/capability.h>
#include <linux/blkdev.h>
#include <linux/file.h>
#include <linux/quotaops.h>
#include <linux/highmem.h>
#include <linux/module.h>
0004デフォルトの名無しさん
2010/06/18(金) 06:52:42まれに複数の復号結果が生まれるかもしれないけど、一意になる可能性は結構高いのかもしれない。
復号化は昼休みにでも挑戦。
0005デフォルトの名無しさん
2010/06/18(金) 07:08:03問題 コインの種類として、1,5,8,10,15の5種類を与える。与えられた金額m
に対して、最小枚数のコインでmを支払うときの枚数を求めよ。
0006デフォルトの名無しさん
2010/06/18(金) 07:36:59#include <stdio.h>
int coins[5] = {15,10,8,5,1};
int mod(int m, int coin)
{
int a, b;
if(coins[coin]==1)
{
return m;
}
a = m / coins[coin];
b = m % coins[coin];
return (mod(b, ++coin) + a);
}
int main(int argc, char ** argv)
{
int m;
printf("m=?\n");
scanf("%d", &m);
printf("%d mai.\n", mod(m, 0));
return 0;
}
0007デフォルトの名無しさん
2010/06/18(金) 07:44:43プログラムは、「再帰を使って」、
出力は、「最小枚数」でお願いします。
(例えば、m=33のときは、5枚ではなく3枚を出力)
0008デフォルトの名無しさん
2010/06/18(金) 07:58:0900096
2010/06/18(金) 08:09:01再帰はしてるよ
0010デフォルトの名無しさん
2010/06/18(金) 08:16:13こっちのほうが最小ですよね?
0011デフォルトの名無しさん
2010/06/18(金) 08:20:17int mincoin(int num, int n, int idx, int *coins, int maxidx);
int main(){
int coins[] = {1,5,8,10,15};
int num=33;
int n = mincoin(num, 0, 0, coins, sizeof(coins)/sizeof(coins[0]));
printf("%d", n);
return 0;
}
int mincoin(int num, int n, int idx, int *coins, int maxidx){
int i, min, res, rest;
if(num == 0){
return n;
}
min = 10000000;
for(i = idx;i < maxidx;i++){
rest = num-coins[i];
if(rest < 0) break;
res = mincoin(rest, n+1, i, coins, maxidx);
if(res < min){
min = res;
}
}
return min;
}
0012デフォルトの名無しさん
2010/06/18(金) 08:27:19エラーがでます
0013デフォルトの名無しさん
2010/06/18(金) 08:30:1500146
2010/06/18(金) 08:42:01なるほど。。賢いやり方だ。
0015デフォルトの名無しさん
2010/06/18(金) 10:52:18Dynamic Programming だね。
0016デフォルトの名無しさん
2010/06/18(金) 11:06:270017デフォルトの名無しさん
2010/06/18(金) 11:25:37#include <stdio.h>
int min;
void count(int n, int idx, int cnt, int *coin)
{
int i, temp = coin[idx];
if(n % temp == 0) {
cnt += n / temp;
if(cnt < min) min = cnt;
return;
}
for(i = 0; i * temp < n; i++) count(n - i * temp, idx-1, cnt + i, coin);
}
int main(void)
{
int coin[] = {1, 5, 8, 10, 15}, n;
scanf("%d", &n);
min = n;
count(n, sizeof coin / sizeof *coin - 1, 0, coin);
printf("%d\n", min);
return 0;
}
0018デフォルトの名無しさん
2010/06/18(金) 11:27:18もっといい方法が在るなら、コードか参考urlをどうぞ。
001917
2010/06/18(金) 11:50:26#include <stdio.h>
int min;
void count(int n, int idx, int cnt, int *coin)
{
int i, temp = coin[idx];
if(min <= cnt) return;
if(n % temp == 0) {
cnt += n / temp;
if(cnt < min) min = cnt;
return;
}
for(i = n / temp; i >= 0; i--) count(n - i * temp, idx - 1, cnt + i, coin);
}
int main(void)
{
int n, coin[] = {1, 5, 8, 10, 15};
scanf("%d", &n);
min = n;
count(n, sizeof coin / sizeof *coin - 1, 0, coin);
printf("%d\n", min);
return 0;
}
0020>>3-4
2010/06/18(金) 12:03:12[1]授業単元:暗号理論(大学専門コース)
[2]問題文(含コード&リンク)
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10714.lzh
[3]環境
[3-1] OS:C/C++処理系があれば何でも可
[3-2] コンパイラ:gccに近い処理系が理想
[3-3] 言語:C/C++どちらでも可
[4] 9/15迄(夏休み終了まで)
[5] 難しいそうです。無理しないほうがいいそうです。ただ出来たら
テストの点に無関係に単位をくれるそうです
0021デフォルトの名無しさん
2010/06/18(金) 14:03:32問題ぢゃね?
0022デフォルトの名無しさん
2010/06/18(金) 14:14:250023デフォルトの名無しさん
2010/06/18(金) 14:43:47デクリプトには答えが有るとは言ってない、に読める。
エンクリプトは何とか完成できたが、iii と iik, ijk, ijj の区別をつけるデクリプトは無理。
1番目の文字が、仮に、デクリプトするれば i と分かっても、
2通目の文字に j があれば ii と ij の2通り以上、46通り以下に可能性が分かれる。
なら、次文字から推測できる全候補をプログラムで表示するようにすればいいんではないだろうか。
0024デフォルトの名無しさん
2010/06/18(金) 15:22:000025デフォルトの名無しさん
2010/06/18(金) 15:43:05まあ一週間くらい待ってて
0026デフォルトの名無しさん
2010/06/18(金) 15:49:55作ってるなら途中のコードキボンヌ
0027デフォルトの名無しさん
2010/06/18(金) 16:43:46動くのはエンコードだけだからいらんだろ
0028デフォルトの名無しさん
2010/06/18(金) 18:06:31#include <linux/kernel.h>
#include <linux/syscalls.h>
#include <linux/fs.h>
#include <linux/mm.h>
#include <linux/percpu.h>
#include <linux/slab.h>
#include <linux/capability.h>
#include <linux/blkdev.h>
#include <linux/file.h>
#include <linux/quotaops.h>
#include <linux/highmem.h>
#include <linux/module.h>
#include <linux/writeback.h>
#include <linux/hash.h>
#include <linux/suspend.h>
#include <linux/buffer_head.h>
#include <linux/task_io_accounting_ops.h>
#include <linux/bio.h>
#include <linux/notifier.h>
#include <linux/cpu.h>
#include <linux/bitops.h>
#include <linux/mpage.h>
#include <linux/bit_spinlock.h>
static int fsync_buffers_list(spinlock_t *lock, struct list_head *list);
#define BH_ENTRY(list) list_entry((list), struct buffer_head
0029デフォルトの名無しさん
2010/06/18(金) 18:14:16解読できた単語を配列に保存していって、iiとijとかのように区別しにくいい単語に出あったら、保存した中にある単語を優先する、とかはどうだろう。
0030デフォルトの名無しさん
2010/06/18(金) 18:28:33kou malp(vpmf){
nqv qnborc_krrsd_lvgesftgp_mswt_iqghui;
rvx sdjtwuekv_jywx_zjyzfAg;
wxB xyCu_vowDEh_ztyyxnk;
fyu(zplAvm_oAzAn_pzhowpBqB_qBFC_lChrCs=0;
DqtDxu_rEDEv_sAiwyxFyE_tFGG_mFizGA<=11234;
HrBGzC_uIHID_vBjEAFJGH_wJHK_nIjHKI++)
gLB(JfoKLLgpM_kACD_BJIJiKj=5;
NhqOMPirQ_lCEF_DKLMkNl<=223456; RjsSNTktU_mEGH_FLOPmQn++)
hMC( VWRN_OsPSTo_XDIOQxM=6;
YZUR_StTVWp_aEJPUyN<345677;
bcXV_WuXYZq_dFKQYzO++)
pGeRai("%d %d %d %d",
fgbZ_avbcdr_hHLScAP,
ijed_ewffgs_kIMTgBQ,
llumUnmvo_nGNO_HRhitju,hxSpJT_CiVWU_DPkVKWXXq_Ejkk_wrkYYZ);
LvlQMZ 7;
}
0031デフォルトの名無しさん
2010/06/18(金) 18:31:32全検索すると候補の数が一万を超えることも多いので
辞書使わないと厳しいです
0032デフォルトの名無しさん
2010/06/18(金) 18:49:55http://livedoor.blogimg.jp/tekepo/imgs/3/4/3414dfca.jpg
ばらまこうぜ!
0033デフォルトの名無しさん
2010/06/18(金) 18:56:54#include <stdio.h>
int main(void){
int omaira_konna_kudaranai_koto_higana;
int ichinichi_jyuu_yattete;
int iito_omotte_irunoka;
for(omaira_konna_kudaranai_koto_higana=0;
omaira_konna_kudaranai_koto_higana<=10000;
omaira_konna_kudaranai_koto_higana++)
for(ichinichi_jyuu_yattete=0;
ichinichi_jyuu_yattete<=123456; ichinichi_jyuu_yattete++)
for( iito_omotte_irunoka=0;
iito_omotte_irunoka<234567;
iito_omotte_irunoka++)
printf("%d %d %d %d",
iito_omotte_irunoka,
iito_omotte_irunoka,
ichinichi_jyuu_yattete,omaira_konna_kudaranai_koto_higana);
return 0;
}
0034デフォルトの名無しさん
2010/06/18(金) 19:02:03すげぇ。じゃデコーダーほぼ出来てるんだ
ん?
0035デフォルトの名無しさん
2010/06/18(金) 19:13:22void
for
return
を手がかりに逆算したい
0036デフォルトの名無しさん
2010/06/18(金) 19:18:47do と goto と continue も追加で
0037デフォルトの名無しさん
2010/06/18(金) 19:21:520039デフォルトの名無しさん
2010/06/18(金) 20:28:21とりあえず1行目だけのデコード結果をうpしたからエンコーダのデバッグにでも使ってくれ
2行目までもデコードしてみたがファイルが1G越えたから途中でやめた
効率的にデコードするには構文解析するといいかもしれない
たとえば#w7 -> #include, w3( -> if(, w5( -> while( (w:文字、その後の数字は文字の個数)
などのヒントをあらかじめ与えておき正しく変換できないときは枝狩する
また、シンボルテーブルを作り、シンボルテーブルにない変数を使用しようとしたら枝狩するなど
構文解析によりかなりの枝狩ができると思われる(#define HOGE forとかされると死ぬが)
0040デフォルトの名無しさん
2010/06/18(金) 20:31:24手元にある VineLinux3.2 kernel2.4 を見てみたけど違うみたいでした
0041デフォルトの名無しさん
2010/06/18(金) 20:57:47ttp://www.google.com/codesearch/p#8lz4Axekcxw/fs/buffer.c
あと、prob.txtの引数の間のtabはなんなんだろう。
ソースコードを整形したのかな。
0042デフォルトの名無しさん
2010/06/18(金) 21:03:50別にそれは関係ないと思うよ。
復号したコードをコンパイルするとかいう話でもないしね。
0043デフォルトの名無しさん
2010/06/18(金) 21:04:24static void buffer_io_error(struct buffer_head *bh)
までは手動で頑張ったのにw
004440
2010/06/18(金) 21:07:55識別子を辞書登録するのが大変なので
include しているファイルの中身も読ませようと思っていたのです
が、>>41 のおかげで対応が分かるので必要なくなりました
0045デフォルトの名無しさん
2010/06/18(金) 21:08:59で再頒布するのはGPLに抵触しかねないから、
コメントとか外したりいろいろ細工してる可能性もあるだろ
0046デフォルトの名無しさん
2010/06/18(金) 21:15:28ああー、なるほど。そういう理由だったのか。スマソ。
0047デフォルトの名無しさん
2010/06/18(金) 21:57:17YCvXRg("クォートされた部分も暗号化対象外\n",wYkyL);
0048デフォルトの名無しさん
2010/06/18(金) 21:58:17この場合頒布してるのは質問者?回答者?
0049デフォルトの名無しさん
2010/06/18(金) 22:12:230050デフォルトの名無しさん
2010/06/18(金) 22:38:46[2] 問題文(含コード&リンク):図1のプログラムを参考に、文字配列とアドレスの関係、すなわち、
char str[ ] = “abc”とアドレスの関係を調べよ。特にアドレスが幾つずつ変化するかを理解すること。
尚、char型変数へのポインタ変数は、char *ptr;になることを注意すること。
[3] 環境
[3.1] OS:Windows XP
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2010年6月19日[5] その他の制限:int main(void){から始まる
図1
#include<stdio.h>
int main(void){
int a[4];
int *p;
p = &a[0];
for(i=0;i<4;i++){
a[i] = i;
}
for(i=0;i<4;i++){
printf(“a[%d]=%d\n”i,a[i]);
printf(“p = %p\n”,p);
printf(“*p = $d\n\n”, *p);
}
}
0051デフォルトの名無しさん
2010/06/18(金) 22:40:07図1の実行例
a[0]=0
p = 0x22ccd0
*p = 0
a[1]=1
p = 0x22ccd4
*p = 2
a[2]=2
p = 0x22ccd8
*p = 2
a[3]=3
p = 0x22ccdc
*p = 3
つまり、int型では4byteずつ変化する。これをchar型は1byteずつ変化するということを示しなさいということです。
0052デフォルトの名無しさん
2010/06/18(金) 22:43:49charに変えるのが出来ないっていってますか?
0053デフォルトの名無しさん
2010/06/18(金) 22:50:29そうです。
それから、もうひとつ
図1をdouble型に変えるのもお願いします。
0054デフォルトの名無しさん
2010/06/19(土) 01:54:57#include <stdio.h>
int main(void) {
char str[] = "abc", *ptr;
int i;
ptr = &str[0];
for(i = 0; str[i]; i++, ptr++) {
printf("str[%d] = %c\n", i, str[i]);
printf("ptr = %p\n", ptr);
printf("*ptr = %c\n\n", *ptr);
}
return 0;
}
0055デフォルトの名無しさん
2010/06/19(土) 02:49:18[1] 授業単元:
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10719.zip
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:
[3.3] 言語: C
[4] 期限: ([2010年06月20日23:59まで]
[5] その他の制限:
0056デフォルトの名無しさん
2010/06/19(土) 03:00:29#include <stdlib.h>
#include <time.h>
void random_format(int num_data, int array[])
{
int i;
srand(time(NULL));
for(i = 0; i < num_data; i++)
array[i] = (int)( (double)rand() / RAND_MAX * 100.0 );
}
0057デフォルトの名無しさん
2010/06/19(土) 05:15:590〜99の数値が全て1回ずつ必要なら、以下でok。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define NMAX 100
int main(void)
{
int i, a[NMAX], tmp, w;
srand(time(NULL));
for (i = 0; i < NMAX; i++)
a[i] = i;
for (i = 0; i < NMAX; i++) {
w = rand() % (NMAX - i) + i;
tmp = a[w];
a[w] = a[i];
a[i] = tmp;
}
return 0;
}
0058デフォルトの名無しさん
2010/06/19(土) 05:33:12>min = 10000000;
10000000って数字はどっから出てきたの?
0059デフォルトの名無しさん
2010/06/19(土) 06:19:17有り得ないほどの大きい数字なら何でも良かったんじゃないかな?
min = num/coins[0];
でいいと思う。
0060デフォルトの名無しさん
2010/06/19(土) 12:42:30バージョンは分からんが、Linuxカーネルのfs/buffer.cをエンコードしてるのか?
0061デフォルトの名無しさん
2010/06/19(土) 12:43:06w = rand() % (i + 1);
a[i] = a[w];
a[w] = i;
}
0062デフォルトの名無しさん
2010/06/19(土) 12:48:14一応MFCでデコードしながら、分からなくなったらユーザに聞いてくるアプリにしてみた。
コメントとかリテラルとか、まだ一回も動いてないコードとか有るし、
デコードした文字列をエディットに出力して、ユーザが判断する材料にさせてるんだが、
うまくエディットコントロールスクロールさせられなくて面倒くさくなって放置してる。
(メインスレッドでループしながらエディットに出力して、且つスクロールさせようってのがダメなんだろうが。。)
需要があればうpします。
一旦入力した候補はhistファイルに取っておくので、これを使って地道にやってけばいずれデコード出来ると思う。
0063デフォルトの名無しさん
2010/06/19(土) 16:02:35typedef unsigned char uchar;
void encode_output(int moji)
{
static int is_first=1;
static uchar next_table[256], table[256];
if(is_first)
{
int i;
for(i=0;i<256;i++) next_table[i]=table[i]=i;
for(i='A';i<'Z';i++) next_table[i]=i+1;
next_table[i]='a';
for(i='a';i<'z';i++) next_table[i]=i+1;
next_table[i]='A';
for(i='0';i<'9';i++) next_table[i]=i+1;
next_table[i]='0';
is_first=0;
}
putchar(table[moji]);
table[moji]=next_table[table[moji]];
}
0064デフォルトの名無しさん
2010/06/19(土) 16:26:50ありがとうございました。
0065デフォルトの名無しさん
2010/06/19(土) 16:49:54[2] 問題文(含コード&リンク):以下のプログラムをdouble型にせよ。
尚、double型変数へのポインタ変数は、double *ptr;になることに注意すること。
[3] 環境
[3.1] OS:Windows XP
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2010年6月19日[5] その他の制限:int main(void){から始まる
#include<stdio.h>
int main(void){
int a[4];
int *p;
p = &a[0];
for(i=0;i<4;i++){
a[i] = i;
}
for(i=0;i<4;i++){
printf(“a[%d]=%d\n”i,a[i]);
printf(“p = %p\n”,p);
printf(“*p = $d\n\n”, *p);
}
}
実行例は>>51と同じです
0066023
2010/06/19(土) 17:08:52void encode_output(int moji);
int main(void){ int c, slash = 0;
while((c = getchar()) != EOF) {
if(c>='a' && c<='z' || c>='A' && c<='Z' || c>='0' && c<='9'){
if(slash){ /* /X は、同じ文字で2回出力 */
encode_output(c); slash = 0; }
encode_output(c);
} else if(c == '*') {
if(slash){ /* /*のコメントは読み飛ばす */
do { while(getchar() != '*'); } while(getchar() != '/');
slash = 0;
} else putchar(c);
} else if(c == '/') {
if(slash) { /* // comment は、そのまま出力 */
putchar(c);
do putchar(c); while((c = getchar()) != '\n');
putchar(c);
slash = 0;
} else slash = 1;
} else if(c == '"') { /* "string" は、そのまま出力 */
if(slash) {slash = 0; putchar(c);} /* /X は、同じ文字で2回出力 */
do {
if(c == '/') {slash = 1; continue;}
if(slash) {slash = 0; putchar(c);}
putchar(c);
} while((c = getchar()) != '"');
putchar(c);
} else {
if(slash) {slash = 0; putchar(c);} /* /X は、同じ文字で2回出力 */
putchar(c); }
}}
0067デフォルトの名無しさん
2010/06/19(土) 18:05:22亀ですがこういうのはどうなんでしょう?
#include <stdio.h>
int coin(int m,int i,int sum)
{ int a[]={1,5,8,10,15};
sum=sum+m/a[i];m=m%a[i];
if (m==0)return sum;
if (!i){sum+=m;return sum;}
if ((m%a[i]==3||m%a[i]==4)&&(sum)){sum--;m=m+a[i];}
return coin(m,i-1,sum);}
int main(void){
int x;
printf("金額を入力してください:");
scanf("%d",&x);
printf("最小枚数は%d枚です。\n",coin(x,4,0));
return 0;}
0068デフォルトの名無しさん
2010/06/19(土) 21:15:54見せて見せて
006962
2010/06/19(土) 21:54:03http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10721.zip
うpしました。
input.txtに暗号化された内容をおいておきます。
hist.txtは履歴の入力。実行するとhistout.txtができるので、それをhist.txtに書き換えればおk。
deb.txtにデバッグログ
dec.txtに復号化したもの
enc.txtは今のところ何も出ない。
です。
一応7行目くらいまでやって放置してます。
バグもいっぱいあると思うんで、実行しながら候補を入れていき、バグ取りしてけば・・というレベルです。
0070デフォルトの名無しさん
2010/06/19(土) 21:55:47興味深いな。
> if ((m%a[i]==3||m%a[i]==4)&&(sum)){sum--;m=m+a[i];}
3,4になるプロセスが判らない。
0071デフォルトの名無しさん
2010/06/19(土) 22:22:380072デフォルトの名無しさん
2010/06/19(土) 22:56:00誰かよろしくお願いします。
0073デフォルトの名無しさん
2010/06/19(土) 23:02:49最初の3,4以外の、8以上のm%5で3,4になる数字は最小枚数を求める時必ず8が入るので
15と10で割り過ぎないように先に8で割るようにしました。
007473
2010/06/19(土) 23:07:360075デフォルトの名無しさん
2010/06/19(土) 23:12:30#include<stdio.h>
int main(void){
int i;
double a[4];
double *p;
p = a;
for(i = 0; i < 4; i++){
a[i] = i;
}
for(i = 0; i < 4; i++, p++){
printf("a[%d]=%f\n", i, a[i]);
printf("p = %p\n", p);
printf("*p = %f\n\n", *p);
}
return 0;
}
0076デフォルトの名無しさん
2010/06/20(日) 01:10:03なるほど。
オーソドックスな解法は、>>17のようなDPだろうけど、>>67でも出来る、
という事は、条件付きで数学的に等価なのかもな。
0077デフォルトの名無しさん
2010/06/20(日) 02:55:07ありがとうございました
0078デフォルトの名無しさん
2010/06/20(日) 02:57:10[2] 問題文(含コード&リンク):以下のプログラムをdouble型について調べるプログラムを作成せよ。
尚、単純ポインタが指す値をprintf(“%p) =0x%x\n”, ptr_d, *ptr_d);
を用いて表示すると図1のような実行結果を得るが、図2のように表示をするようにしなさい。
[3] 環境
[3.1] OS:Windows XP
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2010年6月20日[5] その他の制限:int main(void){から始まる
0079デフォルトの名無しさん
2010/06/20(日) 02:58:58int main(void){
char src[32], dst[32];
char *ptr_c;
int *ptr_i, *ptr;
double *ptr_d;
int i;
// src[i]配列にデータを格納
for(i=0; i<32; i++){
src[i] = i;
}
// dst[i]配列へのコピー
for(i=0; i<32; i++){
dst[i] = src[i];
}
//配列の出力
for(i=0; i<32; i++){
printf("dst[%d]=0x%x\n", i, dst[i]);
}
// ptr_cにsrcの先頭アドレスをコピー
ptr_c = src;
// ptrを使用してsrc[i]のデータを内容を出力する。
for(i=0; i<32; i++){
printf("%p) = 0x%x\n", ptr_c, *ptr_c);
ptr_c++;
}
}
0080デフォルトの名無しさん
2010/06/20(日) 03:00:450x22ccc0) = 0.3020100
0x22ccc8) = 0.b0a0306
0x22ccd0) = 0.13121110
0x22ccd8) = 0.1b1a1918
図2
ptc_d:0x22ccc0) = 0.3020100
0x22ccc4) = 0.7060504
ptr_d:0x22ccc8) = 0.b0a0306
0x22cccc) = 0.f0e0d0e
ptr_d:0x22ccd0) = 0.13121110
0x22ccd4) = 0.17161514
ptr_d:0x22ccd8) = 0.1b1a1918
0x22ccdc) = 0.1f1e1d1c
0081023
2010/06/20(日) 13:34:27VS2005で動かしてみました。
ゲームとしては7行くらいでゲームオーバーでもかまいません。
ただ、/を入れた後の文字選択が2回必要なのはなぜでしょうか。
0082デフォルトの名無しさん
2010/06/20(日) 14:57:39どなたか、よろしくお願いします。
0083デフォルトの名無しさん
2010/06/20(日) 15:06:530084デフォルトの名無しさん
2010/06/20(日) 15:49:25ソースコードは、int型で書かれています。これを、double型に書き換えていただきたいんです。
そして、double型に書き換えたものを実行すると、図2のように表示せよという問題です。
よろしくお願いします。
0085デフォルトの名無しさん
2010/06/20(日) 16:16:30#include<stdio.h>
#define SIZE 4
int main(void){
int i;
double src[SIZE], dst[SIZE];
double *ptr_d;
// データ格納?
for (i = 0; i < SIZE; i++) {
src[i] = i;
dst[i] = src[i];
}
// 配列の内容を出力
for (i = 0; i < SIZE; i++) {
printf("%p) = %f\n", &dst[i], dst[i]);
}
// ポインタと配列を使って内容を出力
for (ptr_d = src, i = 0; i < SIZE; ptr_d++, i++) {
printf("ptr_d :%p) = %f\n", ptr_d, *ptr_d);
printf("src[%d]:%p) = %f\n", i, &src[i], src[i]);
}
return 0;
}
すいません。
問題のゴールが明確には分からなかったので適当に書いてます。
大枠はこれでいいと思うので書き換えて使ってください。
0087023
2010/06/20(日) 17:16:35bool slash = false;
/****/
try{
/****/
while(1){
ch = skip();
if(ch == EOF) break;
plane_put(ch);
kouhosu = 0;
bslash = 0;
ch2 = fgetc(fp1);
if(!kigou(ch2) && (ch2 == ch + 1)){
bslash=1;}
ungetc(ch2, fp1);
if(slash) { // add 2010.6.20
ch = ch3;
slash = false;
}else{
ch = fukugou(ch);}
dec_put(ch);
fputc(ch, fp3);
if(ch=='/'){
ch3 = fukugou(ch2 - 1);
angou(ch3);
slash = true; // add 2010.6.20
}else{
deb("angou=%c\n",ch);
angou(ch);
}
}}
008862
2010/06/20(日) 18:08:56ありがとうございます!!
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10722.zip
に更新しました。
スクロール出来なくて今何をデコードしてるのか分からなくなってた問題は
別スレッドのポップアップウインドにしたので解消しました。
なんか'/'の扱いが難しいすね。よく考えると、'/'と見なしたら、その次の文字を-1して復号化するんだけど、
その復号化において、さらに、'/'と見なすべき場合は再帰でやらないと出来ないんじゃないだろうか。。という気がしてきた。
008962
2010/06/20(日) 18:31:48これほとんど無理だよねw
0090デフォルトの名無しさん
2010/06/20(日) 20:24:13画面に 1*2*3*・・・・*10 = という風に表示されるようにすること。
期限は6/22までです。お願いします。
0091デフォルトの名無しさん
2010/06/20(日) 20:24:33つぎのロンバーグ表と積分値を求めるプログラムを作成せよ
(分割数:n=2^k≧16,推定回数:m≧3)
I=∫ 1/(a*x^3+b*x^2+c*x+d)dx (e≦x≦f)
ただし、キーボードから(a,b,c,d,e,f)を入力すれば
上記の定積分のロンバーグ表の値と積分値が画面表示
されるようなプログラムを作ること。
この問題を解ける方教えていただけませんか?
0092デフォルトの名無しさん
2010/06/20(日) 20:35:12#include <stdio.h>
int main(void)
{
int i=10,sum=1;
while(i--)printf(i?"%d*":"%d=%d\n",i+1,sum*=(i+1));
return 0;
}
0093デフォルトの名無しさん
2010/06/20(日) 20:41:29>>1
大事なことなので2回言いました。最近守らないやつが多すぎる。
0094デフォルトの名無しさん
2010/06/20(日) 20:44:42char src[32], dst[32];
int *ptr_i,*ptr;
double *ptr_d;
int i;
// src[i]配列にデータを格納
for(i=0; i<32; i++){
src[i] = i;
}
// dst[i]配列へのコピー
for(i=0; i<32; i++){
dst[i] = src[i];
}
// ptr_cにsrcの先頭アドレスをコピー
ptr_d = (double *)src;
// ptrを使用してsrc[i]のデータを内容を出力する。
for(i=0; i<4; i++){
printf("ptc_d:%#6x) = 0.%x\n", ptr_d, *ptr_d);
ptr_i = (int *)ptr_d;
printf(" :%#6x) = 0.%x\n", (ptr_i+1), *(ptr_i+1));
ptr_d++;
}
図2 ptr_d:0x22ccc8) = 0.b0a0306 は>>79のソース内容から外れるので考慮していない
009591
2010/06/20(日) 20:58:11[2] 問題文(含コード&リンク):
与えられた零以上の実数(a,b,c,d)と正の実数(e,f)に対して
つぎのロンバーグ表と積分値を求めるプログラムを作成せよ
(分割数:n=2^k≧16,推定回数:m≧3)
I=∫ 1/(a*x^3+b*x^2+c*x+d)dx (e≦x≦f)
ただし、キーボードから(a,b,c,d,e,f)を入力すれば
上記の定積分のロンバーグ表の値と積分値が画面表示
されるようなプログラムを作ること。
[3] 環境
[3.1] OS:vista
[4] 期限: 無期限
0096デフォルトの名無しさん
2010/06/21(月) 05:37:05適当に選ぶと正解じゃない場合は常に行き詰まる模様
0097デフォルトの名無しさん
2010/06/21(月) 07:33:490098023
2010/06/21(月) 09:02:140099デフォルトの名無しさん
2010/06/21(月) 13:31:35http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10726.txt
010087 の修正を修正
2010/06/21(月) 16:05:27bool slash = false;
/****/
try{
while(1){
ch = skip();
if(ch == EOF) break;
plane_put(ch);
scroll(IDC_EDIT3); // add 2010.6.21 他のscroll()呼び出しは削除
kouhosu = 0;
bslash = 0;
ch2 = fgetc(fp1);
if(!kigou(ch2) && (ch2 == ch + 1)){
bslash=1;}
ungetc(ch2, fp1);
if(slash) { // add 2010.6.20
ch = ch3;
slash = false;
}else{
ch = fukugou(ch);}
dec_put(ch);
fputc(ch, fp3);
if(ch=='/'){
kouhosu = 0; // add 2010.6.10 候補を消す
ch3 = fukugou(ch2 - 1);
angou(ch3);
slash = true; // add 2010.6.20
}else{
deb("angou=%c\n",ch);
angou(ch);
}
}}
0101デフォルトの名無しさん
2010/06/21(月) 16:08:250102デフォルトの名無しさん
2010/06/21(月) 16:17:56間違ってるぞw
0103デフォルトの名無しさん
2010/06/21(月) 16:33:42本からの丸写しなんだが。間違ってる点があるなら指摘よろしく
0104デフォルトの名無しさん
2010/06/21(月) 16:37:28どうせ問題にあわせていじったところでミスってるだけだろうけど。
0105デフォルトの名無しさん
2010/06/21(月) 16:38:51嫌味なら誰にでも言える
どこがどう間違っているのか具体的に指摘よろしく
それかお前が正しいプログラムを書いて示せ
0106デフォルトの名無しさん
2010/06/21(月) 16:40:470107デフォルトの名無しさん
2010/06/21(月) 16:41:28>>99は何度も検証したし結果も合ってる
ただケチを付けてみたいだけだろう>>102は
0108デフォルトの名無しさん
2010/06/21(月) 16:45:230109デフォルトの名無しさん
2010/06/21(月) 16:45:570110デフォルトの名無しさん
2010/06/21(月) 16:46:36これはなんですか?w
0111デフォルトの名無しさん
2010/06/21(月) 16:49:57それで合ってんだよ
0112デフォルトの名無しさん
2010/06/21(月) 16:52:320113デフォルトの名無しさん
2010/06/21(月) 16:53:29スレ立てるまでもない質問はここで 106匹目
http://pc12.2ch.net/test/read.cgi/tech/1276215571/
0114デフォルトの名無しさん
2010/06/21(月) 16:53:290115デフォルトの名無しさん
2010/06/21(月) 16:53:30ロンバーグ積分も知らない馬鹿は口出しすんな
0116デフォルトの名無しさん
2010/06/21(月) 16:58:01aとbは係数として関数に渡すもので、始点・終点じゃない
h = f - e;
が正しい。
0117デフォルトの名無しさん
2010/06/21(月) 17:05:21毎回台形公式で求めなおしてるから計算回数無駄に多いし。
0118デフォルトの名無しさん
2010/06/21(月) 17:06:54確かにその通りだスマン
>>117
だから文句タラタラ言うなら自分でプログラムを書いて示せっつーの
0119デフォルトの名無しさん
2010/06/21(月) 17:09:36教えてくださいって土下座しろよこのマヌケ
0120デフォルトの名無しさん
2010/06/21(月) 17:11:470121デフォルトの名無しさん
2010/06/21(月) 17:14:36まともに機能してるスレに関係ないもの誘導すんなよ。
過疎ってるスレがいくらでもあまってるんだから、そっちにしようぜ。
例えば
C言語を勉強しあおう
http://pc12.2ch.net/test/read.cgi/tech/1190599975/
とかさ
0122デフォルトの名無しさん
2010/06/21(月) 17:15:12それから、
> 何度も検証したし結果も合ってる
というところも詳しく。
0123デフォルトの名無しさん
2010/06/21(月) 17:30:15関数の計算回数を減らすのが普通。
減らすって言っても、前回の計算がなかったとして直接計算したときと同じなんだけど。
少なくとも、前回の計算分丸々計算しなおすよりはマシになる。
0124デフォルトの名無しさん
2010/06/21(月) 18:01:03だから言葉で言わずにプログラムで書けっつーの
ここはプログラム板だ
0125デフォルトの名無しさん
2010/06/21(月) 18:03:590126デフォルトの名無しさん
2010/06/21(月) 18:05:22先に>>122の質問に答えたら?
0127デフォルトの名無しさん
2010/06/21(月) 18:25:50#include <stdio.h>
int main(void)
{
int i = 1, sum = 1;
while (i < 10) {
sum *= i;
printf("%d*", i);
i++;
}
printf("%d = %d\n", i, sum *= i);
return 0;
}
0128113
2010/06/21(月) 20:05:45了解した
>>20 の問題に関しては是非こちらへ
C言語を勉強しあおう
http://pc12.2ch.net/test/read.cgi/tech/1190599975/168-
0129デフォルトの名無しさん
2010/06/22(火) 00:46:570130デフォルトの名無しさん
2010/06/22(火) 01:03:400131デフォルトの名無しさん
2010/06/22(火) 04:04:390132デフォルトの名無しさん
2010/06/22(火) 10:09:400133デフォルトの名無しさん
2010/06/22(火) 11:05:37[2] 問題文(含コード&リンク):
[1] 授業単元:
char buf[80];
int main(int ac, char ** av)
{
int i;
buf[0] = '\0';
for(i = 1; i < ac; i++){
printf("%3d \"%s\"\n", strlen(av[i]), av[i]);
strcat(buf, av[i]);
}
printf("%3d \"%s\"\n", strlen(buf), buf);
これを入力した文字列を逆順に表示できるように書き換えよ
[3] 環境
[3.1] Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 本日三時
[5] その他の制限:なし
おねがいします
0134デフォルトの名無しさん
2010/06/22(火) 11:39:400135デフォルトの名無しさん
2010/06/22(火) 11:49:15要素を入れ換えるプログラムをポインタを用いて作成せよ.
例えば,a[3]={1,2,3},b[3]={101,102,103}とすると
き,結果として,a[3]={101,102,103},b[3]={1,2,3}と
なるようにせよ.
よろしくお願いします!
0136デフォルトの名無しさん
2010/06/22(火) 11:50:29{
while(size--) {
int temp = *a;
*a++ = *b;
*b ++ = temp;
}
}
0137デフォルトの名無しさん
2010/06/22(火) 12:06:39早速の回答感謝します
ありがとうございました!
0138デフォルトの名無しさん
2010/06/22(火) 14:55:24[2] 問題文(含コード&リンク):
コマンドライン引数で指定された文字列のいずれかと一致する名前の環境変数についてのみ、
#include <stdio.h>
#include <stdlib.h>
extern char **environ;
main()
{
char **p;
for (p = environ; *p != NULL; p ++) {
printf("%s\n", *p);}
return 0;}
や
#include <stdio.h>
#include <stdlib.h>
main(int argc, char *argv[], char *envp[])
{
char **p;
for (p = envp; *p != NULL; p ++) {
printf("%s\n", *p);}
return 0;}
のように変数名と値を表示するプログラムを書け。
ただし、コマンドライン引数に重複があっても、対応する環境変数について複数回表示してはならない
[3.2] コンパイラ名とバージョン:gcc 3.4
[3.3] 言語:C
[4] 期限:2010年5月24日12:59まで
[5] その他の制限:特になし
よろしくお願いします
0139デフォルトの名無しさん
2010/06/22(火) 15:05:450140デフォルトの名無しさん
2010/06/22(火) 15:17:58すいません!期限6/24です
0141デフォルトの名無しさん
2010/06/22(火) 17:56:42. や * や ? で機能が違うのですが。
0142デフォルトの名無しさん
2010/06/22(火) 18:01:55? → .
* → .*
0143デフォルトの名無しさん
2010/06/22(火) 18:05:120144デフォルトの名無しさん
2010/06/22(火) 18:47:03[2] 問題文(含コード&リンク):
深さ優先探索をリスト表現で表すプログラムを作成せよ。
制限は特にないです。
[3] 環境
[3.1] Windows 7
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限:2010年6月25日迄
よろしくお願いします。
0145デフォルトの名無しさん
2010/06/22(火) 19:41:07めっちゃ抽象的だな…
0146デフォルトの名無しさん
2010/06/22(火) 19:44:08という実践的な問題なんだろ。
0147デフォルトの名無しさん
2010/06/22(火) 20:09:28#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int
main(int argc, char *argv[], char *envp[])
{
char **p, **v;
int lth;
for (p = envp; *p != NULL; p++) {
lth = strchr(*p, '=') - *p;
for (v = argv; *v != NULL; v++) {
if (!strncmp(*p, *v, lth)) {
printf("%s\n", *p);
*p = '\0';
break;
}
}
}
return 0;
}
0148デフォルトの名無しさん
2010/06/22(火) 20:30:24[2] 問題文(含コード&リンク):構造体の基礎
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10733.txt
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン:Microsoft Visualstadio 2008
[3.3] 言語:C
[4] 期限:24日まで
[5] その他の制限:プログラミングやってまだ半年しか経ってません。
構造体の授業の宿題です。
どうか宜しくお願いします。
0150デフォルトの名無しさん
2010/06/22(火) 22:25:31[2] 問題文(含コード&リンク):三目並べを作成せよ。ポインタとクラスを使用。
[3] 環境
[3.1] OS:WinodwsVista
[3.2] コンパイラ名とバージョン:Visual C++ 2008 Express Edition
[3.3] 言語:C++
[4] 期限:6/23(水)8時半まで
[5] その他の制限:C++触り始めた所です。どうかお願いします。
0151デフォルトの名無しさん
2010/06/22(火) 22:27:42GUIでいいのか
0152デフォルトの名無しさん
2010/06/22(火) 22:30:13言い忘れてた。CUIでお願いします。
こんな感じにしてほしいです。
1 2 3
1
2
3
○の横座標を入力してください:
○の縦座標を入力してください:
0153デフォルトの名無しさん
2010/06/22(火) 23:04:32http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10734.txt
0154デフォルトの名無しさん
2010/06/22(火) 23:16:46出来ればクラスとメソッドをしっかりと分けてほしいです。
クラスの中にメソッドが入ってる感じなのでこう分けてくれると助かります。
class game{
public:
void init();
bool Player(int x, int y);
};
void Game::init()
{
・・・
}
他のメソッドもこんな感じに処理毎に分けてくれると助かります。あと○に座標だけでなく
×の座標も入力できるようにしてほしいです。
0155デフォルトの名無しさん
2010/06/22(火) 23:18:020156デフォルトの名無しさん
2010/06/22(火) 23:18:30ミス。「○に座標」じゃなくて「○の座標」でした。
入力した座標をポインタで受け取る感じにしてほしいです。
申し訳ありません。
0157デフォルトの名無しさん
2010/06/22(火) 23:31:38ってかドローゲーム忘れてたw
0158デフォルトの名無しさん
2010/06/22(火) 23:39:19自分の中のイメージとしてg.player(&width, &height)って感じでメソッド呼び出して
座標データを取得したいのですが。。。。。
すいません。なかなか上手く説明できないです。初心者なので。。。。。。
0159デフォルトの名無しさん
2010/06/22(火) 23:42:240160デフォルトの名無しさん
2010/06/22(火) 23:45:28クラスとメソッド分けるのちょっとやってみます。
挫折したらすみません。あと途中で解説欲しくなるかもしれないです。
0161デフォルトの名無しさん
2010/06/22(火) 23:48:40こんなんでどう?
get_posってヤツで座標を取るんで、これなら意味分かるわ。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10735.txt
0162デフォルトの名無しさん
2010/06/22(火) 23:52:37おおおおおおおおおおお。けっこうスマートになってるwwww
助かります。ちょっとソースコード読んでみます。解説欲しくなったら言うので。
0163デフォルトの名無しさん
2010/06/22(火) 23:54:19ってかもうねる。
0164デフォルトの名無しさん
2010/06/23(水) 00:01:03乙。
釣りなのかと思っちゃうよね。
0165デフォルトの名無しさん
2010/06/23(水) 00:15:450166デフォルトの名無しさん
2010/06/23(水) 03:27:12[2] 問題文(含コード&リンク):
以下コピペ
表示例のように,名前,性別,身長,体重,腹囲(ウエスト)を3人分入力した後, 3名全員について入力データに加えてBMI値とメタボリック症候群の疑いの判定を 表示するプログラムを作成しなさい.
プログラムでは,名前,性別,身長,体重,腹囲をまとめて 個人データとして表すための構造体を定義して利用すること.
注意
" 体重はkg, 身長,腹囲はcmで入力する.
" 性別は 1 で男性,2で女性を表す.
" BMI値 = 体重(kg) / 身長(m)2
" 男性は腹囲85cm以上,女性は腹囲90cm以上でメタボリック症候群の疑い がある
表示例
データ1を入力してください
名前: Hanako
性別: 2
身長: 156.4
体重: 65.3
腹囲: 93.4
名前: Hanako, 性別: 女, 身長: 156.4, 体重: 65.3, 腹囲: 93.4, BMI: 26.7, メタボリック症候群の疑いがあります
コピペ終わり
本当はデータ3つです。改行制限で割愛
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: (cc 3.4)
[3.3] 言語: (どちらでも可)
[4] 期限: (6月23日15時まで)
[5] その他の制限: (構造体でデータを個々で格納してお願いします。)
よろしくお願いします。
0167デフォルトの名無しさん
2010/06/23(水) 10:51:24http://codepad.org/z3vbEcex
0168デフォルトの名無しさん
2010/06/23(水) 11:20:14http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10736.c
0169デフォルトの名無しさん
2010/06/23(水) 12:33:36>>168
ありがとうございました。参考にさせていただきます。
0170デフォルトの名無しさん
2010/06/23(水) 15:18:36[1] 授業単元: C言語プログラミング
[2] 問題文(含コード&リンク):
1.関数sqrtを使って1〜10までの二乗根の和を求めなさい。
2.16進数ABC.DEを10進数にしなさい。
[3] 環境
[3.1] OS: Windows XP
[ [3.3] 言語: C言語
[4] 期限: 6月24日15時まで
よろしくお願いします。
0171デフォルトの名無しさん
2010/06/23(水) 15:33:07[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10737.txt
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:6月28日まで
[5] その他の制限:なし
よろしくお願いします
0172デフォルトの名無しさん
2010/06/23(水) 15:55:30[1] 授業単元: プログラミングB
[2] 問題文(含コード&リンク):実行したい処理を選ぶことが可能なプログラムを作りなさい。このとき、実
行できる処理は以下の三つとする。
処理1:複数の2択問題への回答に応じた結果を表示する。(例:職種選択、旅行先選び
処理2:文字コード一覧表を出力する。(文字コード32~126を一行に8文字ずつ)
処理3:本のページ数を入力し、その本を読み切るために必要な日数を表示
する。このとき、初日は10ページ、2日目は20ページ,,,と読むページ
数は増加するものとする。
以下の仕様で作成すること
キーボードから入力された数に応じて、switch文で各処理に移動する。
処理1:if文を使って
処理2:for文を使って
処理3:while文またはdo・while文を使って。
[3] 環境
[3.1] OS: WindowsXP
[3.3] 言語: C言語
[4] 期限: 6月25日まで
よろしくお願いします。
0173デフォルトの名無しさん
2010/06/23(水) 16:03:04(1)j-1
(2)printf(" ");
0174デフォルトの名無しさん
2010/06/23(水) 16:07:111.
#include <stdio.h>
#include <math.h>
int main(void)
{
int i;
double sum = 0;
for(i = 1; i <= 10; i++) sum += sqrt(i);
printf("%f\n", sum);
return 0;
}
0175デフォルトの名無しさん
2010/06/23(水) 16:45:322.
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10738.c
0176デフォルトの名無しさん
2010/06/23(水) 17:34:30自己解決しました。
0177デフォルトの名無しさん
2010/06/23(水) 21:05:54ありがとうございました、参考にさせていただきました。
それにしてもわずか10分でするとは…
0178デフォルトの名無しさん
2010/06/23(水) 21:17:16当方、エントロピー値の計算するプログラムをperlで作成したのですが
わけあってC++に書き直すことになりました
しかし、C++にはハッシュ(連想配列)などは自分で作らなければならなく
どうしてもうまく行きませんでした・・・
perlで作ったプログラムをここに張るのは良くない思うのですが
どうかC++動くようにご教授お願いします
0179デフォルトの名無しさん
2010/06/23(水) 21:20:11#! c:/perl/bin/perl
open(FILE,"IPsource.txt"); #ファイル読み込み
use strict;
use warnings;
use utf8;
print "Content-type: text/html\n\n";
my $count;
my $t;
my $key;
my $ref_freq;
my %ref_freq;
my @x;
my $v;
$count = 0; #全体IPカウント
while ($t = <FILE>){ #IPファイル展開
#IP集計
if($t) {
$count += 1; #全体IPカウント
++$ref_freq{$t};
}
}
0180デフォルトの名無しさん
2010/06/23(水) 21:21:17@x = values %ref_freq;
print"@x \n";
close(IN);
#my @x= map $_ ,$key;
#エントロピー計算
my $y=$count;
my $num;
my @pi = map $_ / $y, @x;
my $i;
print"@pi \n"; #テスト用プリント
#print"@x \n";
for($i=0;$i<=$#pi;$i++){
$num += -($pi[$i]*log($pi[$i]) / log(2));
}
#print"@pi\n\n";
print "-Σpi*log2(pi) = $num \n";
0181デフォルトの名無しさん
2010/06/23(水) 21:27:160182178
2010/06/23(水) 21:32:30>>179でtxtに入れられたIPアドレスの種類と数をカウントします
ここでハッシュ(連想配列)を用いています
ここを出力するとこのようになります
IP 数
202.・・・ 20
そして>>180でエントロピー計算を行います
エントロピーの計算方法はlog(対数)とΣ(for文)で
my $y=$count;
my $num;
my @pi = map $_ / $y, @x;
この部分に先ほどカウントしたIPが入り
for($i=0;$i<=$#pi;$i++){ ←カウントしたIP分だけループさせ
$num += -($pi[$i]*log($pi[$i]) / log(2)); ←エントロピーの計算をします
}
0183デフォルトの名無しさん
2010/06/23(水) 21:36:16もちろん、>>181の言うようにhash_mapでもいい。(あれば)
0184デフォルトの名無しさん
2010/06/23(水) 21:39:160185デフォルトの名無しさん
2010/06/23(水) 21:55:08元のコードにできるだけ合わせたつもり
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10740.cpp
0186デフォルトの名無しさん
2010/06/23(水) 22:17:250187デフォルトの名無しさん
2010/06/23(水) 22:18:450188185
2010/06/23(水) 22:54:11途中で @x 相当の変数使うの忘れてたw
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10741.cpp
0189178
2010/06/23(水) 23:11:42ご指摘ありがとうございます
その範囲を調べてみます。
>>185
わざわざコードを作っていただき
本当にありがとうございます
このコードを参考に勉強させていただきます。
0190デフォルトの名無しさん
2010/06/24(木) 00:22:32ネット調べてみるとモンテカルロ法と言えばπの近似に関するばかりで・・・
どなたか教えてくださいませ
0191デフォルトの名無しさん
2010/06/24(木) 00:33:170192デフォルトの名無しさん
2010/06/24(木) 00:37:45[2] 問題文(含コード&リンク):
問題1:char name[20], int english, int mathematicsをメンバとする構造体 score を定義せよ
問題2:以下の5人の情報をもつ配列 seito[5] を、問題1で作成した構造体 score 型を使って宣言せよ。なお、5人の情報は初期値として宣言することにする。
name english mathematics
"yamada" 50 70
"tanaka" 70 60
"suzuki" 80 70
"yamamoto" 40 60
"sakata" 90 80
問題3:問題2で初期値を代入した構造体 score 型の構造体配列 seito[5] を宣言し、各メンバ変数をソートする関数を作成せよ。
[3] 環境
[3.1] OS:Win Vista
[3.2] コンパイラ名とバージョン:VB 2008
[3.3] 言語:C
[4] 期限:2010年6月25日まで
[5] その他の制限:無し
よろしくお願いします
0193デフォルトの名無しさん
2010/06/24(木) 01:36:430194デフォルトの名無しさん
2010/06/24(木) 01:42:16#include <stdio.h>
#include <stdlib.h>
#define NN 10000
int
main(void)
{
int i, w, cnt = 0, n;
printf("input sample no(cf.1000)=");
scanf("%d", &n);
for (i = 0; i < n; i++) {
w = rand() % NN;
w *= w;
if (w < NN * NN / 2)
cnt++;
}
printf("PI neary equal = %f", (double) cnt * 2 / n);
return 0;
}
0195デフォルトの名無しさん
2010/06/24(木) 11:48:13[2] 問題文:ガウスの消去法のプログラムをピボット対応と
ピボット非対応の2つ作成し、連立方程式の解を求めよ。
(ただし解くべき連立方程式は5元1次方程式で、ピボットの
発生するものと発生しないものの2種類とする)
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:VC 6.0
[3.3] 言語: C++
お願いします。
0196デフォルトの名無しさん
2010/06/24(木) 13:44:31複数の文字列を読み込み,それらの文字列を空白を入れて繋ぎ合わせるプログラムを作成せよ.
【実行例】
何個の文字列を入力しますか?:3
入力文字列[1]:A
入力文字列[2]:B
入力文字列[3]:C
結果:A B C
演習6-3
入力したDNA塩基配列中にある塩基 t, c, a, gそれぞれの個数をカウントするプログラムを作成せよ.
【実行例】
% ./a.out
tataatccg ← 入力し,リターンを押して ^D
Thymine (t) : 3
Cytosine (c) : 2
Adenine (a) : 3
Guanine (g) : 1
%
よろしくお願いします!
0197デフォルトの名無しさん
2010/06/24(木) 15:07:11演習6-1
#include <stdio.h>
int main(void)
{
char buff[32], str[1024], *p, *q;
int i, n;
printf("何個の文字列を入力しますか?:");
scanf("%d", &n);
for(i = 1, p = str; i <= n; i++) {
printf("入力文字列[%d]:", i);
scanf("%s", buff);
for(q = buff; *q; q++, *p++) *p = *q;
*p++ = ' ';
}
*(p - 1) = '\0';
printf("\n結果:%s\n", str);
return 0;
}
0198デフォルトの名無しさん
2010/06/24(木) 17:15:46するプログラムを作成せよ。関数としてstrtol()を使用すれば問題ないが、同じ機能の関数を作成すること。
基数の設定に関する引数は必要なくデフォルト(先頭が0 なら8 進、それ以外は10 進、16 進は使用しな
い)とする
お願いします!
0199デフォルトの名無しさん
2010/06/24(木) 19:22:26助かりました!本当にありがとうございます!
>>196の演習6-3は無事、自己解決致しました。
ありがとうございました〜
0200デフォルトの名無しさん
2010/06/24(木) 20:10:46http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10743.c
0201デフォルトの名無しさん
2010/06/24(木) 21:08:03n-1回の走査をしなければならない. すなわち, n(n-1)/2回の比較が行われなければならない. そこで, 各回の走査の終わりに,
交換が行われたか否かをチェックするようにし, 交換が行われていなければそれ以上走査の必要はないのでソートを完了するようなプログラムを作成しなさい.
sizeofは使わない。
↓のような出力結果になるようにする。
初期状態: 10, 3, 1, 15, 2, 7
[1回目の走査]
1回目の交換: 3, 10, 1, 15, 2, 72回目の交換: 3, 1, 10, 15, 2, 73回目の交換: 3, 1, 10, 2, 15, 74回目の交換: 3, 1, 10, 2, 7, 15
[2回目の走査]
1回目の交換: 1, 3, 10, 2, 7, 15 2回目の交換: 1, 3, 2, 10, 7, 15 3回目の交換: 1, 3, 2, 7, 10, 15
[3回目の走査]
1回目の交換: 1, 2, 3, 7, 10, 15
[4回目の走査]
最終状態: 1, 2, 3, 7, 10, 15
0202デフォルトの名無しさん
2010/06/24(木) 21:09:51int main(void) {
int str[100]={0};
int i,j, temp,x;
x=0;
printf("値の上限を設定してください:");
scanf("%d",&x);
for(i=0;i<x;i++){
printf("%d番目の値を入力してください:",i+1);
scanf("%d", &str[i]);
}
printf("初期状態:");
for(i=0;i<x;i++){
if(i==x-1){
printf("%d\n ",str[i]);
}else{
printf("%d, ",str[i]);
}
}
0203デフォルトの名無しさん
2010/06/24(木) 21:11:02for(j=x-1; j>=i; j--){
if (str[i-1] > str[i]){
temp = str[i-1];
str[i-1] = str[i];
str[i] = temp;
}
}
}
for (i = 0; i < x; i++){
if(i==x-1){
printf("%d\n", str[i]);
}else{
printf("%d, ", str[i]);
}
}
return 0;
}
ここまで作りましたが出力結果が上のようになりません。
誰か助けてください!お願いします。
0204デフォルトの名無しさん
2010/06/24(木) 21:50:07int main(void) {
int i, j, temp, x=0, f;
printf("初期状態: %d", str[0]);
for(i=1;i<x;i++)
printf(", %d", str[i]);
printf("\n");
for (i = 1; i<x; i++) {
f = 1;
for(j=x-1; j>=i; j--){
if (str[j-1] > str[j]){
temp = str[j-1];
str[j-1] = str[j];
str[j] = temp;
f = 0;
}
}
if(f != 0) break;
printf("%d回目の走査: %d", i, str[0]);
for(j=1;j<x;j++)
printf(", %d", str[j]);
printf("\n");
}
printf("最終状態: %d", str[0]);
for(i=1;i<x;i++)
printf(", %d", str[i]);
printf("\n");
return 0;
}
0206デフォルトの名無しさん
2010/06/24(木) 22:05:490207デフォルトの名無しさん
2010/06/24(木) 22:08:25s/\&/\&/g
s/ /\ /g
s/"/\"/g
s/</\</g
s/>/\>/g
0208270
2010/06/24(木) 22:09:47s/\&/\&/g
s/ /\ /g
s/"/\"/g
s/</\</g
s/>/\>/g
0209208
2010/06/24(木) 22:11:50s/\&/\&/g
s/ /\ /g
s/"/\"/g
s/</\</g
s/>/\>/g
こうか?
0210sage
2010/06/24(木) 22:51:25[2] 問題文(含コード&リンク):
再帰呼び出しを使い、入力した値の階乗を求めるプログラムを書きなさい。
なお、出来る限り大きな値の計算を出来るように工夫しなさい。
[3] 環境
[3.1] OS:Windows XP
[3.2] コンパイラ名とバージョン:Borland C++ 5.5.1
[3.3] 言語: C言語
[4] 期限: 6月中
[5] その他の制限:指定なし
なんの工夫もしていません。
http://codepad.org/31sqsbvL
0212デフォルトの名無しさん
2010/06/25(金) 00:18:02[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10745.txt
ニュートン・ラフソン法についての問題です。教科書に例題として載っていたプログラミングに今回問題となっている方程式の当てはめ方がわかりません(おそらく初歩的な事だと思われます)
[3] 環境
[3.1] OS: Windows Vista
[3.2] コンパイラ名とバージョン: gcc 3.4
[3.3] 言語:C
[4] 期限:2010年6月25日16:00まで
[5] その他の制限: 半年前に教養の授業として数時間C言語の授業があった程度の知識しかありません
周囲もそのような人ばかりなので深いC言語の知識が必要な問題ではないと思われます
どうかよろしくお願い致します
0213デフォルトの名無しさん
2010/06/25(金) 02:14:39[1] 授業単元:数値計算
[2] 問題文(含コード&リンク):
以下に示す2階の定係数線形同次微分方程式につ
いて,初期値y(0)=a, y’(0)=bをキーボードから入力し,
t=4における値を出力するプログラムを作成する.
y''(t)+2y'(t)+2y(t)=0
条件 y(0)=2 , y'(0)=-2
答え y(4)=-0.02394
[3] 環境
[3.1] OS: (Windows/Linux/等々) vista
[4] 期限:6月30日まで
0214デフォルトの名無しさん
2010/06/25(金) 10:25:17精度を考慮してルンゲ・クッタ法で解いた
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10746.txt
0215デフォルトの名無しさん
2010/06/25(金) 11:43:42[2] 問題文(含コード&リンク):
入力した2値白黒画像をハフ変換して直線および円を検出し、結果を表示するプログラムを作成せよ。
直線の式はρ= xcosθ + ysinθを、円の式はr2= (x-a)2 + (y-b)2をそれぞれ使用する。
なお、直線について処理後のρθ平面を濃淡画像として出力せよ。
円については処理後のabrパラメータ空間をGnuplotを用いて、
1点のエッジに対する軌跡(円錐)と2点以上のエッジに対する軌跡(円錐)を出力せよ。
また、円と直線両方について、3種類以上に閾値を変化させた実験結果を逆変換し、
その結果を原画像に投影した画像も出力せよ。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: [2010年06月25日23:50まで]
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
画像として出力というくだりについては、RGBそれぞれの値を
変数名[画像サイズ].r/.g/.bという要素を持つ構造体を使って格納してください。
0216デフォルトの名無しさん
2010/06/25(金) 14:26:22亀ですがありがとうございました!
0217デフォルトの名無しさん
2010/06/25(金) 14:32:43[2] 問題文(含コード&リンク):
午前四時から正午までは Good Morning! と、
正午から午後八時までは Good Afternoon! と、
午後八時から午前四時までは Good Evening! と、表示するプログラムを書け。ただし、境界の時刻は前の時間帯に含まれるものとする
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc 3.4
[3.3] 言語:C
[4] 期限:2010年6月30日23:55
[5] その他の制限: 特になし
お願いします
0218デフォルトの名無しさん
2010/06/25(金) 16:58:06[2] 問題文(含コード&リンク): 番号 国語 数学 英語のメンバを持っている構造体を作って各教科の平均値と、全平均値を求めてください。(人数は4人とか5人で行ってください。あと番号っていうのは、番号は、4人なら1〜4までで5人なら1〜5までです)
[3] 環境
[3.1] OS: linux
[3.3] 言語: C++
[4] 期限: ([2010年6月26日まで]
[5] その他の制限:
#include <iostream>
using namespace std;
struct score {
で始めて、
return文で終わってください
0219デフォルトの名無しさん
2010/06/25(金) 17:13:52ありがとうございました^^
0220デフォルトの名無しさん
2010/06/25(金) 17:59:13http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10748.cpp
0221218
2010/06/25(金) 21:51:05あと配列を使います。
0222デフォルトの名無しさん
2010/06/26(土) 01:08:39#include <stdio.h>
#include <time.h>
int main()
{
time_t now = time(NULL);
struct tm* local_now = localtime( &now );
const int hour = local_now->tm_hour;
if ( hour>4 && hour<=12 )
printf( "Good Morning!" );
else if ( hour>12 && hour<=20 )
printf( "Good Afternoon!" );
else // ( hour>20 && hour<=4 )
printf( "Good Evening!" );
return 0;
}
0223デフォルトの名無しさん
2010/06/26(土) 02:27:00[1] 授業単元:画像処理
[2] 問題文:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10749.txt
[3] 環境
[3.1] OS: (指定なし)
[3.2] コンパイラ名とバージョン: (gcc)
[3.3] 言語: (C)
[4] 期限: ([2010年06月28日14:50まで] )
[5] その他の制限:ヘッダファイル"bmp.h"はこちらです
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10669.txt
よろしくお願いします。
0224 ◆C/HmxiIl0o
2010/06/26(土) 02:42:14[2] 問題文(含コード&リンク):
x=1.0, 1.1,...,3.9, 4.0が与えられた時のlogxの値をラグランジュ補間で求め、
その近似値とlogxの真値をそれぞれ出力せよ。
また、求めた値と真値との誤差(絶対値)も求め、一次多項式の誤差と2次多項式の誤差を
それぞれ出力せよ。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 本日(26日)中にお願いします
宜しくお願いいたします。
0225デフォルトの名無しさん
2010/06/26(土) 02:59:03http://codepad.org/D3nsJwKm
簡単に試したけど多分こんなん。
0226デフォルトの名無しさん
2010/06/26(土) 03:40:45[2] 問題文(含コード&リンク):
構造体Triangleを下のように定義する。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10750.txt
この構造体により一つの三角形を表現する。
Triangle構造体の構成要素は、三つの頂点のx座標、y座標をメンバとして持つ構造体Pointである。
このTriangle構造体を用いて、以下の使用に従う関数を作成し、任意の三角形の面積、その三角形を適切な2×2行列で線形変換した結果の三角形の座標とその面積、および任意の二つの三角形が合同であるかどうかを表示するプログラムを実装しなさい。
・一つのTriangle構造体の変数を引数とし、その構造体が表す三角形の面積を返す関数。
・一つのTriangle構造体の変数と、double型の二次元配列(2×2行列Aとする)を引数とし、引数で与えた三角形を行列Aによって線形変換した後の三角形を返す関数。
・二つのTriangle構造体の変数を引数とし、その構造体が合同であれば1を、合同でなければ0を返す関数。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2010年6月28日まで
[5] その他の制限:特にありません。よろしくお願いします。
0227デフォルトの名無しさん
2010/06/26(土) 07:07:19return fabs((t.p2.x - t.p1.x) * (t.p3.y - t.p1.x) - (t.p2.y - t.p1.x) * (t.p3.x - t.p1.x));
}
Triangle linear(Triangle t, double a[2][2]) {
Triangle ret;
ret.p1.x = a[0][0] * t.p1.x + a[0][1] * t.p1.y;
ret.p1.y = a[1][0] * t.p1.x + a[1][1] * t.p1.y;
ret.p2.x = a[0][0] * t.p2.x + a[0][1] * t.p2.y;
ret.p2.y = a[1][0] * t.p2.x + a[1][1] * t.p2.y;
ret.p3.x = a[0][0] * t.p3.x + a[0][1] * t.p3.y;
ret.p3.y = a[1][0] * t.p3.x + a[1][1] * t.p3.y;
return ret;
}
int isCongruence(Triangle t1, Triangle t2) {
double l1[3], l2[3];
int i, j;
l1[0] = (t1.p1.x - t1.p2.x) * (t1.p1.x - t1.p2.x) - (t1.p1.y - t1.p2.y) * (t1.p1.y - t1.p2.y);
l1[1] = (t1.p2.x - t1.p3.x) * (t1.p2.x - t1.p3.x) - (t1.p2.y - t1.p3.y) * (t1.p2.y - t1.p3.y);
l1[2] = (t1.p3.x - t1.p1.x) * (t1.p3.x - t1.p1.x) - (t1.p3.y - t1.p1.y) * (t1.p3.y - t1.p1.y);
l2[0] = (t2.p1.x - t2.p2.x) * (t2.p1.x - t2.p2.x) - (t2.p1.y - t2.p2.y) * (t2.p1.y - t2.p2.y);
l2[1] = (t2.p2.x - t2.p3.x) * (t2.p2.x - t2.p3.x) - (t2.p2.y - t2.p3.y) * (t2.p2.y - t2.p3.y);
l2[2] = (t2.p3.x - t2.p1.x) * (t2.p3.x - t2.p1.x) - (t2.p3.y - t2.p1.y) * (t2.p3.y - t2.p1.y);
for(i = 0; i < 3; i++) {
for(j = 0; j < 3; j++) if(l1[i] == l2[j]) { l2[j] = 0; break;}
if(j == 3) return 0;}
return 1;
}
0228デフォルトの名無しさん
2010/06/26(土) 11:36:43問題にはそう書いてありました。
log2=0.6931,log3=1.0986 1次多項式で近似
log2=0.6931,log3=1.0986,log4=1.3863 2次多項式で近似
2点(2,0.6931)(3,1.0986)を用いてlog2.5を推定する
logxの1次多項式による補間では、x0=2,x1=3より、
L-zero(x)=(x-3)/(2-3)
L-one(x)=(x-2)/(3-2)
であるから、p1(x)=1.0986(x-2)-0.6931(x-3)
p1(2.5)=1.0986(2.5-2)-0.6931(2.5-3)=0.89585
3点(2,0.6931)(3,1.0986)(4,1.3863)を用いてlog2.5を推定する
logxの1次多項式による補間では、x0=2,x1=3より、
L-zero(x)=(x-3)(x-4) / (2-3)(2-4)
L-one(x)=(x-2)(x-4) / (3-2)(3-4)
L-two(x)=(x-2)(x-3) / (4-2)(4-3)
であるから、p2(x)=0.34655(x-3)(x-4)-1.0986(x-2)(x-4)-0.6931(x-2)(x-3)
p1(2.5)=0.919575
真値=0.91629
誤差を求める式は
e-k(x)=f(x) - p-k(x) = (f^(k+1)(クサイ) / (k+1)!)*(x-x0)・・・(x-xk)
だそうです。
宜しくお願いします。
0230デフォルトの名無しさん
2010/06/26(土) 12:17:47[2] 問題文(含コード&リンク):三目並べのプログラムにCPとの対戦をつけろ。
http://codepad.org/wfwkEbVP
[3] 環境
[3.1] OS:WinodwsVista
[3.2] コンパイラ名とバージョン:Visual C++ 2008 Express Edition
[3.3] 言語:C++
[4] 期限:6/27(水)8時半まで
[5] その他の制限:C++初心者です。インライン関数は使わない方向でお願いします。
実行結果としてはこんな感じにしてほしいです。
1Pと2Pとの交互に対戦しますか?
1Pとコンピュータとの対戦にしますか?
プレイヤ同士の対戦なら1を、コンピュータとの対戦なら2を入力してください:
こんな感じで選らばせて対戦できるようにしてほしいです。
※1Pのマスは○でコンピュータのマスは×でお願いします。
0231デフォルトの名無しさん
2010/06/26(土) 12:19:15ミス。
6/27(月)でした
0232デフォルトの名無しさん
2010/06/26(土) 12:20:03日曜でした。すいませんでした。
0233デフォルトの名無しさん
2010/06/26(土) 14:54:26> p1(2.5)=0.919575
であるから、p2(x)=0.34655(x-3)(x-4) - 1.0986(x-2)(x-4) + 0.6931(x-2)(x-3)
p1(2.5)=0.9105875
物理のかぎしっぽ:計算物理学:補間法:ラグランジュ補完
http://moondial0.net/archives/www12.plala.or.jp/ksp/computPhys/lag-hokan/index.html
0234デフォルトの名無しさん
2010/06/26(土) 15:11:16[2]課題:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10751.txt
[3] OS:Windows Vista コンパイラ:CygWin上のgcc 言語 C
[4] 7/1迄
[5] 授業は殆ど出ておらず単位を落としそうですんでよろしくお願いしまつ
0235デフォルトの名無しさん
2010/06/26(土) 21:49:42ラグランジュ補間は手持ちの本「科学技術計算ハンドブック」に
掲載されているので、一次補間も二次補間も意味はわかるけど、
logxの近似をしたかったら、x=1.0から4.0まで近似したいなら、
もっと数表x[], y[]の標本が必要だよ
というのは、ラグランジュ補間は極めて振動しやすいという欠点を
持っていて、その欠点を埋め合わせるには数表の取り方を工夫
しなければならない
少なくとも、[x,y]の組み合わせが多数欲しい
今1.0〜4.0の範囲で近似しようとしているのだから、xが0.0から5.0
の範囲で5点ほどは欲しい
0236デフォルトの名無しさん
2010/06/26(土) 21:58:22x=2.5 のだけで。
0237デフォルトの名無しさん
2010/06/26(土) 22:13:540238デフォルトの名無しさん
2010/06/26(土) 22:31:31http://ideone.com/6f9pM
0239デフォルトの名無しさん
2010/06/26(土) 22:39:35http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10752.txt
数表が与えられていないので勝手に作ったよ。
logxはx=1.0未満になるとぐっとマイナスの方へ振れてしまい
標本としてはあまり好ましくないので、x=1.0以下の部分は
標本間隔を詰めた。
0240デフォルトの名無しさん
2010/06/26(土) 22:40:49>>239の取り扱いは好きなようにしてください。
0241デフォルトの名無しさん
2010/06/26(土) 22:48:41>>218
http://codepad.org/3jK2ScYK
簡単というのがSTLを使いまくることだったらすまない。
ありがとうございます。>>236は偽者です。
問題文には数表は全く書かれていなかったのですが、授業で使うスライドを見ていったところ、
1枚だけ、端っこの方に小さくy=f(x)= 1/(1+25*x^2)と書かれていました。
宜しくお願いします。
0243デフォルトの名無しさん
2010/06/26(土) 23:55:230244デフォルトの名無しさん
2010/06/27(日) 00:37:41http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10753.txt
うーん標本の取り方がいまいちかな・・・
一次補間が振動しちゃってます
適当に数表をいじって誤差が少なくなるようにトライしてみてください
0245デフォルトの名無しさん
2010/06/27(日) 00:47:150246デフォルトの名無しさん
2010/06/27(日) 03:08:48[2] 問題文(含コード&リンク):数列と漸化式を表示できるように9行目からお願いします。http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10754.txt
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:
[3.3] 言語:C
[4] 期限: 2010年6月28日
[5] その他の制限:whileを使うと思います。
お願いします。
0247デフォルトの名無しさん
2010/06/27(日) 08:46:12#include <stdio.h>
main()
{
int n, m, an, sum;
m = 5;
printf("数列 an = n*n とその和を %d 項目まで表示します\n", m);
n = 1;
sum = 0;
while (n <= m)
{
an = n * n;
sum += an;
printf("a[%d] = %d, sum = %d\n", n, an, sum);
n++;
}
}
0248デフォルトの名無しさん
2010/06/27(日) 08:50:58#include <stdio.h>
main()
{
int n, m, an;
m = 5;
printf("漸化式 a(n) = 2*a(n-1), a1 = 2 で生成される数列を %d 項目まで表示します\n", m);
n = 1;
an = 2;
while (n <= m)
{
if (n == 1)
{
printf("a[%d] = %d\n", n, an);
n++;
continue;
}
an = 2 * an;
printf("a[%d] = %d\n", n, an);
n++;
}
}
0249デフォルトの名無しさん
2010/06/27(日) 10:35:20http://ideone.com/vVi7u
期限すぎてるけど、いいどらえもんがかけた。
http://codepad.org/2uVp97hy
100! まで確認しています。#define で指定している定数を増加させれば、もっと大きな数値にも対応できるかもしれません。
0251デフォルトの名無しさん
2010/06/27(日) 16:39:40[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク): 入力した2つの整数の間 (入力した数も範囲に含める) にある
「2の倍数でない」かつ「3の倍数でない」かつ「5の倍数でない」
の条件を満たす整数を順に表示し,最後にその個数を表示するプログラムを作成せよ
[3] 環境
[3.1] OS:VineLinux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2010年7月4日
[5] その他の制限:なお,整数の入力には get_int() を用いること。
# define BUFFER_SIZE (256)//get_int()です
int get_int(void)
{
char buf[BUFFER_SIZE];
fgets(buf, BUFFER_SIZE, stdin);
return atoi(buf);
}
よろしくおねがいします
0254デフォルトの名無しさん
2010/06/27(日) 20:04:24[2] 問題文(含コード&リンク):
do-while文を用いて、キーボードから入力された値が素数であるかどうかを
判別するプログラムを作成せよ。入力された値が素数の場合は"素数"と出力し、
素数でない場合は最小の因数を出力せよ。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:すいませんがわからないです。
[3.3] 言語:C
[4] 期限:2010年6月30日まで
0255デフォルトの名無しさん
2010/06/27(日) 20:17:03[2] 問題文(含コード&リンク):
1次元配列に34 57 45 21 89 63 39 48 78 68 76 84 92 53 62 のデータをセットして、
これらの平均値を求めよ。さらにint eval[3]という1次元配列を用意して
eval[0]には0〜60の数の個数
eval[1]には61〜80の数の個数
eval[2]には81〜100の数の個数
を格納するようにし、それらを出力するプログラムを作成せよ。(配列、for文、if文を使って)
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2010年6月30日まで
0256デフォルトの名無しさん
2010/06/27(日) 20:30:25#include <stdio.h>
int main(){
int i,n,f;
printf("> ");
scanf("%d",&n);
f=1; i=1;
do{
++i;
if(n%i==0){
f=0;
break;
}
}while(i*i<=n);
if(f)printf("素数\n");
if(!f)printf("%d\n",i);
}
0257デフォルトの名無しさん
2010/06/27(日) 20:33:36#include <stdio.h>
int main(void)
{
int array[] = {34, 57, 45, 21, 89, 63, 39, 48, 78, 68, 76, 84, 92, 53, 62}, eval[3] = {0}, i;
double ave;
for(i = 0, ave = 0.0; i <sizeof array / sizeof *array; i++) {
ave += array[i];
if(array[i] < 0) continue;
else if(array[i] <= 60) eval[0]++;
else if(array[i] <= 80) eval[1]++;
else if(array[i] <= 100) eval[2]++;
}
printf("平均値:%f\n", ave / (sizeof array/ sizeof *array));
printf("0〜60の数の個数:%d\n", eval[0]);
printf("61〜80の数の個数:%d\n", eval[1]);
printf("81〜100の数の個数:%d\n", eval[2]);
return 0;
}
0258デフォルトの名無しさん
2010/06/27(日) 21:44:01[2] 問題文(含コード&リンク):
次のように表示するプログラムを作りなさい。
私の学籍番号は0000000Aです。
氏名は aaaaa aaaaaaaaです。
↑半角スペース
[3] 環境
[3.1] OS:Windows XP
[3.2] コンパイラ名とバージョン:C++
[3.3] 言語: C言語
[4] 期限: 6月28日午前0時
[5] その他の制限:
char型の配列no name を使う。
noに学籍番号、nameに氏名を格納し表示に使う。
自分の学籍番号、氏名はchar型の配列、no nameを初期化して配列に格納する。
0259デフォルトの名無しさん
2010/06/27(日) 21:52:25int main(void)
{
char no[] = "0000000A", name[] = "aaaaa aaaaaaaa";
printf("私の学籍番号は%sです。\n", no);
printf("氏名は %sです。\n", name);
return 0;
}
0260デフォルトの名無しさん
2010/06/27(日) 22:23:44ありがとうございます。
0261デフォルトの名無しさん
2010/06/27(日) 22:35:45ありがとうございます。
0263デフォルトの名無しさん
2010/06/27(日) 23:22:420264デフォルトの名無しさん
2010/06/27(日) 23:25:25本当に助かります(涙)ありがとうございます!!!!
0265デフォルトの名無しさん
2010/06/27(日) 23:45:11いえいえ
0266デフォルトの名無しさん
2010/06/28(月) 00:33:270267デフォルトの名無しさん
2010/06/28(月) 00:41:58忘れてました
全部の平均ってどういう意味なんですかね?これがいまいちわからないです
0268デフォルトの名無しさん
2010/06/28(月) 00:47:00例えば、
英数国合計の平均=(Aさんの英数国合計点+Bさんの英数国合計点+Cさんの英数国合計点)/3
0269268
2010/06/28(月) 00:56:58(Eavg)
+(Mavg)
+(Javg)
=(Aさんの英語の点+Bさんの英語の点+Cさんの英語の点+Dさんの英語の点)
+(Aさんの数学の点+Bさんの数学の点+Cさんの数学の+Dさんの数学の点点)
+(Aさんの国語の点+Bさんの国語の点+Cさんの国語の点+Dさんの国語の点)
=(Aさんの英数国合計点+Bさんの英数国合計点+Cさんの英数国合計点+Dさんの英数国合計点)/4
=英数国合計の平均
0270みすった
2010/06/28(月) 00:58:13+(Mavg)
+(Javg)
=(Aさんの英語の点+Bさんの英語の点+Cさんの英語の点+Dさんの英語の点)
+(Aさんの数学の点+Bさんの数学の点+Cさんの数学の+Dさんの数学の点点)
+(Aさんの国語の点+Bさんの国語の点+Cさんの国語の点+Dさんの国語の点)
=(Aさんの英数国合計点+Bさんの英数国合計点+Cさんの英数国合計点+Dさんの英数国合計点)
これを人数分で割ると
(Aさんの英数国合計点+Bさんの英数国合計点+Cさんの英数国合計点+Dさんの英数国合計点)/4
=英数国合計の平均
0271デフォルトの名無しさん
2010/06/28(月) 01:15:43質問者がそれで理解できてるようだからいいけれど。
0272デフォルトの名無しさん
2010/06/28(月) 06:33:29うざいです(>_<)
0273デフォルトの名無しさん
2010/06/28(月) 07:26:32[2] 問題文(含コード&リンク):
社員の情報を管理するプログラムを作りたい。
そこで、以下の例のような構造体Employeeを考える。
以下の構造体Employeeの例は、社員の名前を保存するchar型の配列変数name、年齢を保存するint型の変数age、年譜を保存するint型の変数salaryを有している。
名前は、アルファベットで記述することとし、この構造体では名字だけを管理することとする。(ただし、この構造体のメンバは変更してもかまわない。)
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10756.txt
このような構造体を用いて、下の実行例のような社員データベースを処理するプログラムを実装しなさい。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10757.txt
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2010年6月29日まで
[5] その他の制限:特にありません。よろしくお願いいたします。
0274デフォルトの名無しさん
2010/06/28(月) 10:31:05[2] 問題文(含コード&リンク): 2つの自然数 n と m を入力し、その積 n×m を
たし算のみで計算するプログラムを作成せよ。
[3] 環境
[3.1] OS: Windows
[3.2] borland c++ compiler 5.5
[3.3] 言語: C
[4] 期限: 2010年06月28日14:30まで
[5] その他の制限: 特になし
よろしくお願いします
0275デフォルトの名無しさん
2010/06/28(月) 10:36:05int main(void)
{
int n, m, ans;
scanf("%d%d", &n, &m);
printf("%d * %d = ", n, m);
for(ans = 0; m; m--) ans += n;
printf("%d\n", ans);
return 0;
}
0278デフォルトの名無しさん
2010/06/28(月) 14:05:40[2] 問題文:関数の再帰的呼び出しによりAckermann(アッカーマン)関数を計算するプログラムを作れ。同じプログラムを繰り返し処理(ループ計算)により実現できるか考えよ。Ackermann関数は次式で定義される。
[3] 環境
[3.1] OS: Mac OS
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2010年6月30日
[5] その他の制限: 特にはないです。
よろしくお願いします。
0279278
2010/06/28(月) 14:07:58n+1 m=0 and n>_0
ack(m,n)= ack(m-1,1) m>0 and n=0
ack(m-1,ack(m,n-1)) m>0 and n>0
0280デフォルトの名無しさん
2010/06/28(月) 14:19:21#include <stdio.h>
int main(void)
{
int a,b,c;
scanf("%d %d",&a,&b);
if (a<b){c=a;a=b;b=c;}c=0;b=-(b);
while (b++)printf(b?"%d + ":"%d = %d\n",a,c+=a);
return 0;
}
0281デフォルトの名無しさん
2010/06/28(月) 14:20:10#include <stdio.h>
int main(void) {
int i, n, m, ans;
printf("input:"); scanf("%d", &n);
printf("input:"); scanf("%d", &m);
if(n<0 || m<0) { printf("error"); return 1; }
ans = 0;
if(n < m){
for(i=n; i > 0; --i)
ans += m;
}else{
for(i=m; i > 0; --i)
ans += n;
}
printf("\nans:%d * %d = %d", n, m, ans);
return 0;
}
0282224 ◆C/HmxiIl0o
2010/06/28(月) 16:02:40logxの真値と補間で求めた値の誤差を比較していないとのことで受理されませんでした。
>>249さんのような結果を出さないといけないようなのですが、c++だったので、
Cに作り直そうとしたのですが、うまくできませんでした。
大変申し訳ないのですが、Cで作り直していただけないでしょうか?
宜しくお願い致します。
>>280 文章よめ
0284デフォルトの名無しさん
2010/06/28(月) 16:16:58http://ideone.com/Kc5i7
0286デフォルトの名無しさん
2010/06/28(月) 17:36:30[2] 現在のインターネットを実現しているTCP/IP通信プロトコルでは主にIPv4
を用いており、コンピュータを一意に識別するために32ビットのIPアドレスを
用いている。これを踏まえ、IPアドレスの4つの数字を入力させ、これらを32ビットの
データ型であるunsigned int型の変数にIPアドレスを示す2進数の数値として保存せよ。
保存したIPアドレスがunsigned intの整数値として解釈するといくつとなるか表示する
プログラムを作成せよ。
[3] 環境
[3.1] OS Linux
[3.2] gcc
[3.3] 言語 C言語
[4] 期限:2010年6月30日19:00まで
[5] 特に制限はありませんが、while文は習っていません。
if文、for文、配列など基本的なものを習いました。
どうぞよろしくお願いします。
0287デフォルトの名無しさん
2010/06/28(月) 18:07:05int main(int argc, char* argv[])
{
int i;
unsigned int val;
unsigned int addr = 0;
for (i = 0; i < 4; i++)
{
printf("%d:", i + 1);
addr <<= 8;
scanf("%d", &val);
addr |= val;
}
printf("addr=%u\n", addr);
return 0;
}
0288デフォルトの名無しさん
2010/06/28(月) 18:24:56[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10758.txt
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン:Microsoft Visualstadio 2008
[3.3] 言語:C
[4] 期限:30日まで
[5] その他の制限:プログラミング経験はほとんどないです。
構造体の授業での宿題です。
構造体はまだわかるのですがそれに苦手なポインタが加わるとどうにもわかりません。
宜しくお願いします。
0290デフォルトの名無しさん
2010/06/28(月) 18:40:17ありがとうございました!
0292デフォルトの名無しさん
2010/06/28(月) 18:49:03http://codepad.org/XnGsYKmG
0293デフォルトの名無しさん
2010/06/28(月) 18:59:13> scanf("%s",p[i].name);
buffer overrun...
0294デフォルトの名無しさん
2010/06/28(月) 19:07:570295デフォルトの名無しさん
2010/06/28(月) 19:15:50氏ねといわれたら氏ぬんですね、よくわかります。
0296デフォルトの名無しさん
2010/06/28(月) 19:19:180297デフォルトの名無しさん
2010/06/28(月) 19:36:54原要求を無視したらテンプレの意味が(ry
0298デフォルトの名無しさん
2010/06/28(月) 19:50:140300デフォルトの名無しさん
2010/06/28(月) 20:46:00[2] 問題文(含コード&リンク):
例1は、3教科5人の生徒の合計得点を求めるプログラムである。
これを実行し、動作を説明せよ。さらに、教科毎の平均点、
生徒毎の平均点を計算して表示できるようにプログラムを修正し、
結果とともに示せ。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2010年6月30日
よろしくお願いします。
0301デフォルトの名無しさん
2010/06/28(月) 20:47:24例1
#include<stdio.h>
#define KAMOKU 3
#define SEITO 5
int main()
{
int ten[][KAMOKU]={{ 80, 65, 70},
{ 70, 55, 75},
{ 75, 80, 70},
{ 80, 60, 60},
{ 90, 80, 75}};
int j,k,s;
printf(“ kokugo sugaku eigo gokei\n”);
printf(“------------------------------------------------\n”);
for (j=0;j<SEITO;j++) {
s=0;
for (k=0;k<KAMOKU;k++) {
printf(“%8d”,ten[j][k]);
s=s+ten[j][k];
}
printf(“%8d\n”,s);
}
return 0;
}
0302デフォルトの名無しさん
2010/06/28(月) 21:18:08> これを実行し、動作を説明せよ。
http://codepad.org/EfWyhSTD
> 教科毎の平均点、生徒毎の平均点を計算して表示できるようにプログラムを修正し、
結果とともに示せ。
http://codepad.org/9EYyajom
0303デフォルトの名無しさん
2010/06/28(月) 21:29:23[2]問題文:長いので次のレスに書かせていただきます
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名:gcc
[3.3] 言語:C
[4] 期限:2010年6月29日17:00まで
[5] その他の制限:特に制限はありませんが、なるべく簡単な文法で書いていただけるとありがたいです
0304303
2010/06/28(月) 21:31:23[2] 問題文:[1],[2]のプログラムを作成せよ。
[1]多項式の次数nと係数a,(i=0,1・・・・,n)を入力し、
その多項式f(x)=a_nx^2+a_n-1x^n-1+・・・+a_2x^2+a_1x+a_0と
その微分の多項式f'(x)を出力するプログラムを作成せよ。
ただし、nはint型,a_iはdouble型の配列とせよ。n<100と仮定してよい。
以下に入力例を示す
n=5
a5=1
a4=0
a3=2
a2=0
a1=3
a0=0
f(x)=x^5+2x^3+3x
f'(x)=5x^4+6x^2+3
0305303
2010/06/28(月) 21:32:41[2]以下の要領で、平均点、分散、標準偏差、最小値、最大値を求めるプログラム
を作成せよ。
(1)100人分の点数(int型)を記憶するための配列変数aを定義する
(2)人数(int型)を記憶するための変数nを定義する。
(3)人数nの初期値を0とする
(4)点数をa[n]に入力する
(5)点数が負の数ならば終了する
(6)人数nを1つ増やす
(7)全員の点数を空白で区切って表示する。例:83 52 64
(8)平均点を出力する
(9)分散を出力する
(10)標準偏差を出力する
(11)最小値を出力する
(12)最大値を出力する
(13)(4)へ戻る
※標準ライブラリのsqrt関数を使わずニュートン法によって平方根を
求める自作の関数を使え。
※平均点、分散、標準偏差を求めるとき、キャスト演算子を用いてdouble型へ
型変換せよ。
多いですがどうぞよろしくお願いします
0306デフォルトの名無しさん
2010/06/28(月) 21:38:30やっと規制が解けた。
3000!の桁数=9131なので、#define文を変えればもう少しいけるはず。
http://codepad.org/6S9o89xk
0307デフォルトの名無しさん
2010/06/28(月) 21:56:520308デフォルトの名無しさん
2010/06/28(月) 22:29:23#include <stdio.h>
int main(void)
{
int n, i;
double a_i[100], a;
printf("n=");
scanf("%d", &n);
for (i = n; i >= 0; i--) {
printf("a%d=", i);
scanf("%lf", &a);
a_i[i] = a;
}
printf("f(x)=");
for (i = n; i >= 0; i--)
if (a_i[i])
printf(a_i[i] > 0 ? " +%lgx^%d" : " %lgx^%d", a_i[i], i);
printf("\n");
for (i = 0; i < n; i++)
a_i[i] = a_i[i + 1] * (i + 1);
a_i[n] = 0;
printf("f'(x)=");
for (i = n; i >= 0; i--)
if (a_i[i])
printf(a_i[i] > 0 ? " +%lgx^%d" : " %lgx^%d", a_i[i], i);
printf("\n");
return 0;
}
0309デフォルトの名無しさん
2010/06/28(月) 22:44:17[2] 問題文(含コード&リンク):○×ゲームのプログラムにコンピュータとの対戦をつける。
コンピュータと対戦するかしないかは選べれるようにする事。
http://codepad.org/wfwkEbVP
[3] 環境
[3.1] OS:WinodwsVista
[3.2] コンパイラ名とバージョン:Visual C++ 2008 Express Edition
[3.3] 言語:C++
[4] 期限:6/29(火)AM9時まで
[5] その他の制限:C++触り始めたばかりです。インライン関数は使わない方向でお願いします。
実行結果としてはこんな感じにしてほしいです。
1Pと2Pとの交互に対戦しますか?
1Pとコンピュータとの対戦にしますか?
プレイヤ同士の対戦なら1を、コンピュータとの対戦なら2を入力してください:
こんな感じで選らばせて対戦できるようにしてほしいです。
※1Pのマスは○でコンピュータのマスは×でお願いします。
大変だと思いますがどうかお願いします。
0310デフォルトの名無しさん
2010/06/28(月) 22:46:030311デフォルトの名無しさん
2010/06/28(月) 22:57:23あの時は本当にありがとうございました。
本当に申し訳ありません。
0314デフォルトの名無しさん
2010/06/29(火) 00:15:38http://codepad.org/IKYypUgq
とりあえずここまで。
昇級については仕様を推測できなかった。
他の機能については適当に推測した。
リファクタリングし甲斐があると思うから,がんがれ。
0315デフォルトの名無しさん
2010/06/29(火) 01:09:05char型ならまとめ方一緒だったの?
俺的には全然違ったw
0316デフォルトの名無しさん
2010/06/29(火) 02:14:34[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10760.txt
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2010年7月1日
よろしくお願い致します。
0317デフォルトの名無しさん
2010/06/29(火) 04:05:10[2] # リストに格納したデータを,データファイルとは
別のファイル(出力先ファイルとよぶ)に書き出す.
データファイルと出力先ファイルのファイル名は
コマンドライン引数として指定する
下記テンプレートを使用すること
http://codepad.org/d9CUmfae
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2010年7月2日
お願います
0318デフォルトの名無しさん
2010/06/29(火) 04:13:02>>310以外の方にお願いします
0319デフォルトの名無しさん
2010/06/29(火) 04:59:180320デフォルトの名無しさん
2010/06/29(火) 05:05:350321デフォルトの名無しさん
2010/06/29(火) 05:22:04出題者がちゃんと理解してるのかどうかを知りたいという意味合いも含んでた。
実はteratermでredhatにつないでました、とかありえない話じゃないと思うのよ。
0322デフォルトの名無しさん
2010/06/29(火) 09:22:02#include <stdio.h>
#define NN 3
#define loop(i,NN) for (i = 0; i < NN; i++)
int
main(void)
{
int i, j, seq[3], n;
char s[NN][100];
loop(i, NN) {
printf("入力文字列[%d]=", i);
scanf("%s", s[i]);
}
printf("繋ぎ合わせる順番を入力してください\n");
loop(i, NN) {
scanf("%d", &n);
seq[i] = n;
}
printf("結果 -> ");
loop(i, NN) {
loop(j, NN) {
if (seq[j] == i + 1)
printf("%s", s[j]);
}
}
return 0;
}
0323デフォルトの名無しさん
2010/06/29(火) 10:06:01#include <stdio.h>
#include <string.h>
#define NN 100
#define loop(i,NN) for (i = 0; i < NN; i++)
int
main(void)
{
int i = 0, linemax = 0, cnt = 0;
char s[NN][100], *p, str[] = "abc";
while (fgets(s[i++], 100, stdin) != NULL)
linemax++;
loop(i, linemax) {
for (p = s[i]; *p; p++) {
if (!strncmp(p, str, 3))
cnt++;
}
}
printf("#%s is %d\n", str, cnt);
return 0;
}
0324デフォルトの名無しさん
2010/06/29(火) 11:49:06助かりました。ありがとうございました。
0325デフォルトの名無しさん
2010/06/29(火) 12:48:44(x,y)=(160,120)
a=1/3のとき
a=1/2のとき
a=1のとき
a=2のとき
描画範囲
yの範囲は40
xの範囲は60
0326224 ◆C/HmxiIl0o
2010/06/29(火) 14:19:04すみません。折角作っていただいたのですが、データが>>242の通り、
x=1.0〜4.0,y=1/(1*25*x*x)でそれぞれ31個づつあります。
何度もお願いするのも申し訳ないと思い自分で拡張を試みたのですが、
Interpolationの部分が出来ませんでした。
startが最大で31まで増えるため、そのまま入れてもオーバーフローしてしまい、
かといって、iやjを消してdata[0][start]のような記述をするとnanになってしまいます。
何度も申し訳ないのですが、forの部分だけで構いませんので、作っていただけないでしょうか?
0327デフォルトの名無しさん
2010/06/29(火) 14:30:53こっちにも投げたか
0329デフォルトの名無しさん
2010/06/29(火) 15:11:29http://codepad.org/LiIrNdPK
0330デフォルトの名無しさん
2010/06/29(火) 15:17:38はい
0331デフォルトの名無しさん
2010/06/29(火) 17:26:05[2] 問題文(含コード&リンク):次のような動作をするプログラムを作成せよ。
配列内のデータの最小値を返す。int min() 配列内のデータの最大値を返す。int max()
配列内のデータの平均値を返す。double mean() 配列内のデータの標準偏差を返す。double stdev()
ただしmain関数は次のものを使うこと。
int main(void){
int a[15]={81,36,45,67,73,98,62,56,77,61,65,70,25,51,18};
printf("min=%d\n",min(15,a));
printf("max=%d\n",max(15,a));
printf("average=%lf\n",mean(15,a));
printf("standard deviation=%lf\n",stdev(15,a));
return 0; }
さらに、配列a[]の各要素の偏差値を表示するプログラムを作成せよ
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名:gcc
[3.3] 言語:C
[4] 期限:[2010年06月30日18:30まで]
[5] 文章中の示された関数・main関数を使ってください
よろしくお願いしますm(_ _)m
0333デフォルトの名無しさん
2010/06/29(火) 18:34:36http://codepad.org/hXydfZTX
0334デフォルトの名無しさん
2010/06/29(火) 18:53:33[2] 問題文(含コード&リンク):16×16サイズの白黒ビットマップ画像を読み込んで、
上下反転させた画像をビットマップで保存するプログラムを作成。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: [無期限]
[5] その他の制限: ビットマップのファイル構造は少し勉強しました。
画像のデータを取り込むところと処理を行う部分がよくわかりません。
RGB値、malloc、Loadbmp等わかりやすく載ってるHPや本があれば教えてください。
よろしくお願いします。
試しに書いてみた上下反転プログラム → http://codepad.org/4iL9agVw
反転させたい画像を作ったプログラム → http://codepad.org/8z8MCdZG
0335デフォルトの名無しさん
2010/06/29(火) 21:00:18[2] 問題文(含コード&リンク):ファイルに保存された会員情報を指定された項目をキーとしてソートするプログラムを作成する.
出力形式は,入力データと同じ,つまり1行に1人分のデータを格納し,各項目間はカンマで区切るものとする.
また,ソート済みのデータはファイルではなく標準出力に出力するものとする.
整数型のデータについては数値として,文字列型のデータについては大文字/小文字を区別せずにソートをすること.
ソートアルゴリズムはこれまでの演習で使用したもの,していないものに関わらず,何を用いてもよい.
また,会員数は最大で20,000人と仮定してもよい.
会員情報の入ったファイルのファイル名,キーとなる項目,正順か逆順かの指定はプログラム実行時の引数として与える.第一引数が会員情報の入ったファイル名,第二引数が項目番号(表1参照),第三引数がソート方法(0なら昇順,1なら降順)とする.
表1: データ型 項目名 項目番号 型
会員ID 1 整数(int)
姓 2 文字列(最大で50文字)
名 3 文字列(最大で50文字)
年齢 4 整数(int)
州 5 文字列(最大で50文字)
郡 6 文字列(最大で50文字)
[3] 環境
[3.1] OS: UNIX
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2010年6月30日20:00まで
[5] その他の制限: 特になし
よろしくお願いします。
0337デフォルトの名無しさん
2010/06/29(火) 21:44:13ありがとうございます!
0338デフォルトの名無しさん
2010/06/29(火) 21:46:47http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10762.txt
0339デフォルトの名無しさん
2010/06/29(火) 22:55:19http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10763.txt
0340デフォルトの名無しさん
2010/06/29(火) 23:39:54[2] 問題文 複数ありますのでこちらで
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10764.txt
[3] 環境
[3.1] OS:(Windows
[3.2] VC 6.0
[3.3] 言語:C
[4] 期限:なし
[5] 制限:なし
問題数が多くて恐縮なのですがなにとぞよろしくお願いします
0341デフォルトの名無しさん
2010/06/29(火) 23:56:51ありがとうございます!
0342デフォルトの名無しさん
2010/06/30(水) 00:18:49http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10766.txt
0343デフォルトの名無しさん
2010/06/30(水) 00:29:31テンプレ嫁
0344デフォルトの名無しさん
2010/06/30(水) 01:09:50ピキーーーン・・・麻呂のク(ry
0345デフォルトの名無しさん
2010/06/30(水) 02:44:250346331
2010/06/30(水) 08:20:03ありがとうございます。
ただ、コンパイルしてみたところ
/tmp/ccSDhYV6.o: In function `stdev':
test.c:(.text+0x18a): undefined reference to `sqrt'
collect2: ld returned 1 exit status
このようにエラーがでてしまうのですがどうすればコンパイルできるでしょうか?
0347デフォルトの名無しさん
2010/06/30(水) 09:03:080348デフォルトの名無しさん
2010/06/30(水) 10:48:45次回からは、undefined reference to `sqrt' でGoogle検索するとかして、自分で調べてくれ。
対策は、コンパイル時に -lm オプションを付ける。
例:gcc -lm test.c
0349デフォルトの名無しさん
2010/06/30(水) 11:11:24もう一度言うぞ。
対策は、コンパイル時に -lm オプションを付ける。
わかったな。
0350デフォルトの名無しさん
2010/06/30(水) 12:19:22とりあえず、笑えばいいのかな
0351デフォルトの名無しさん
2010/06/30(水) 14:36:15最近、IDなしのスレに粘着してるなりすましのかまってちゃんが居るから、本人とは限らない。
「俺が348だ、349は偽物だ」と言っても確認出来ないからね。
という訳で、不快に思ったらスルーが一番。
0352デフォルトの名無しさん
2010/06/30(水) 16:17:430353335
2010/06/30(水) 16:32:15せっかく解いていただいたのですが、「昇順か降順でしかソートできない」として、もう一度お願い致します。
0354デフォルトの名無しさん
2010/06/30(水) 18:16:33>>1
環境によってはとけるかもしれません。(最近apiを勉強しているところでして)
テンプレートを書くときには条件をもっと詳しく書いてください。
・描画範囲の意味がよくわかりません。±40, ±60 ということですか?
・y = ax^2 を平行移動したものを描画すればいいのでしょうか?
・(x, y) = (160, 120) というのは頂点なんですか?
以上よろしくお願いいたします。
0355デフォルトの名無しさん
2010/06/30(水) 18:33:45mixiに似たような質問あったけど(既に削除済み)
背景が真黒のbmpに白で線を書き込みたいようだよ。
0356346
2010/06/30(水) 18:48:06回答してくださった方、ありがとうございます
無事にコンパイルできました
0357デフォルトの名無しさん
2010/06/30(水) 19:55:42[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10767.txt
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:Visua lstadio
[3.3] 言語:C
[4] 期限:2010年7月1日
よろしくお願いします
0358デフォルトの名無しさん
2010/06/30(水) 20:27:38http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10769.txt
0359デフォルトの名無しさん
2010/06/30(水) 20:56:55すいません、こちらの環境(Microsoft Visual Studio 2008)ではエラーが2つ出て動きませんでした。
0360デフォルトの名無しさん
2010/06/30(水) 21:12:49もともと昇順か降順かしかないんじゃ?
コードもascとdescしかないように見えるし。
どこが気に入らないのか具体的に
0361デフォルトの名無しさん
2010/06/30(水) 21:13:19確保したら開放ぐらいきちんと書けとも思ったがまぁいいや
C言語としてコンパイルすればエラーはでない
VS2008のclは使ったことないので、どんなスイッチ指定すればいいか知らないが、原因はC++ではvoid *から他のポインタへの暗黙の型変換がされないから
C++のソースコードとしてコンパイルしたければ、malloc()の戻り値を適当にキャストすれば良い
0362デフォルトの名無しさん
2010/06/30(水) 21:13:32http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10770.txt
これでどうですか?
VisualStudio使ったことないもので、すいません。
0363デフォルトの名無しさん
2010/06/30(水) 21:13:53エラーの内容はなんとなく予想できるけど、コンパイルの仕方が悪い。
具体的には/Tcスイッチをつけるといいと思う
0364デフォルトの名無しさん
2010/06/30(水) 21:21:01>>361
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10771.txt
0365デフォルトの名無しさん
2010/06/30(水) 21:36:5849行目、と思わんでもないけど別にいいや、としたいところだけど
学生はしっかりやっておいた方がいいのかもな、とも。。。
0366デフォルトの名無しさん
2010/06/30(水) 22:05:33[2] 問題文(含コード&リンク):
登録番号 (int no) と名前 (char *name) と年齢 (int age) を含む構造体 person 型のポインタ変数を宣言し、登録人数分だけの動的メモリ確保をせよ。そして、データをファイルから入力せよ。
ファイルの形式は、先頭に登録する人物とし、そのあとに人数分のデータを登録番号、名前、年齢の順に書いていく(下の例を参照。登録番号は入力順に1,2,3,4,5,・・・とする。そして、入力した全員データを表示せよ。)
(ファイルの例)
3
1 田中 20
2 大田 40
3 井上 35
[3] 環境
[3.1] OS:Windows Vista
[3.2] コンパイラ名とバージョン:Visual Studio 2008
[3.3] 言語:C
[4] 期限:2010年7月2日まで
[5] その他の制限:無し
よろしくお願いします
0367デフォルトの名無しさん
2010/06/30(水) 22:42:19>>357といっしょ
fgetc() の戻り値は int 型であることを、そろそろ理解していただきたいのですが。
どうですか?成長しましたか?
0369デフォルトの名無しさん
2010/07/01(木) 01:48:52ありがとうございます
0370デフォルトの名無しさん
2010/07/01(木) 06:24:44麻呂じゃないが、勘違いしたのはお前だろ?しつこいぞw
麻呂の偽者との区別もつかず、いつまでも相手が勘違いしたと思い込んでろ。
自分が勘違いしてた癖にw 資料をきちっと読めよ、青二才。
あと、お前の言っている事は本当に意味不明。
0371デフォルトの名無しさん
2010/07/01(木) 06:25:39そ・れ・か・ら、getchar() と EOF について理解できましたか?
どうですか?成長しましたか?
0372デフォルトの名無しさん
2010/07/01(木) 06:28:28ttp://www.bohyoh.com/CandCPP/C/Library/getchar.html
> int getchar(void);
getchar() の戻り値は int 型であることを、そろそろ理解していただきたいのですが。
どうですか?成長しましたか?
0373デフォルトの名無しさん
2010/07/01(木) 06:32:27EOF がマクロで定義されているであることを、そろそろ理解していただきたいのですが。
どうですか?成長しましたか?
0374デフォルトの名無しさん
2010/07/01(木) 06:39:34あぁ、あなた、結局ここで質問された課題に答えられず麻呂に負けたヘタレですか?w
いつまでも根に持つ陰険。お前の人生はクソだなw
一生こんなスレでネット弁慶をやってろ。お前が見ず知らずの人間に偉そうな態度で
上から目線で優越感を感じられるのは、せいぜいこのスレだけなんだろ?実に寂しい人生だ。
【話題】2ちゃんねる・ネット弁慶には困ったものだ 自らが叩きやすそうな対象を見つけたとたん、ムキになっ
http://tsushima.2ch.net/test/read.cgi/newsplus/1277889771/
↑まさにお前のことだなw それも自分の勘違いだと気づかずに、揚げ足取りをしたつもりのバカ
0375デフォルトの名無しさん
2010/07/01(木) 06:41:27戻り値がどうしたって?リストの課題で麻呂のクソースは付き物。
しかし、今回は提示される事はなかった。それが何を意味しているか分かるか?
麻呂はもう居ないってことだ。俺は何となく麻呂のクソースが出るか扇動してみたが
出なかったしw
0376デフォルトの名無しさん
2010/07/01(木) 06:42:01お前のおつむは成長していないようだなw 精神レベルもw
0377デフォルトの名無しさん
2010/07/01(木) 06:45:23そろそろお前が痛いって気づけよ
0378デフォルトの名無しさん
2010/07/01(木) 06:46:19悔しかったらお前オリジナルのリストのソースを書いて公表しろよ
他人のパクリしか出来ないコピーキャット
0379デフォルトの名無しさん
2010/07/01(木) 06:48:06ん〜〜、みっともない。このスレに何しに来てんの?分かりきった答えの問題を
解き続けるだけがお前の人生?このスレから離れて自分の人生を見つめ直したら?
どうせいつかは死ぬ限り有る時間を生きている人生だぞ?
こんな場所で揉めるのに使った時間も、過去のものとなるがそれが未来に役に立つ
有意義な時間になるとは思えないね。
0380デフォルトの名無しさん
2010/07/01(木) 06:50:01戻り値が重要ではないとは言わないが、いきなりそんなことを書くお前は何者だ?
麻呂がいつそんなことを言ったか、ログを参照してくれ。それが麻呂だという証拠も付けてな。
こんなIDも出ない、本人がトリップを使ってない騙りが可能な場所で、見えない敵と
戦い続ける恥ずかしい戦士めw
0381デフォルトの名無しさん
2010/07/01(木) 06:56:00> そろそろ理解していただきたいのですが。
相手を茶化すにしても痛すぎ。そんな態度だから周りから干されて孤立したんだろ。
言動が陰険過ぎ。いつまでも理解していないみたいな勘違いとか、粘着していることも含めて
人間として終わってる。
0382デフォルトの名無しさん
2010/07/01(木) 06:59:490383デフォルトの名無しさん
2010/07/01(木) 07:02:14この間隔で書き込まれているのを見ていると、
一人で騒いでいるだけのようにしか見えない
0384デフォルトの名無しさん
2010/07/01(木) 07:25:340385デフォルトの名無しさん
2010/07/01(木) 07:37:16プログラマなら魔法で戦えよ
0386デフォルトの名無しさん
2010/07/01(木) 07:47:46一度に多数の人間が同時に書き込んだ、というのを演出したいらしい。
0387デフォルトの名無しさん
2010/07/01(木) 12:11:130388デフォルトの名無しさん
2010/07/01(木) 12:53:33コピーするコストがもったいないから
コピーだと中身に変更を加えても呼び出し元に影響を与えられないから
0389デフォルトの名無しさん
2010/07/01(木) 12:59:28つまり、コピーだとその後代入などの手間がかかるため
リファレンス引数で扱い、その手間を省くということですね
ありがとうございます。
0390デフォルトの名無しさん
2010/07/01(木) 14:36:20[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10772.txt
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:Vc
[3.3] 言語: C++
[4] 期限:2010年07月10日まで
[5] その他の制限:なし
0391デフォルトの名無しさん
2010/07/01(木) 14:50:54その感覚じゃ連続投稿に引っかかることくらい、ここの住人なら知っているだろう。
バイバイさるさんにも引っかかる可能性はある。
0392デフォルトの名無しさん
2010/07/01(木) 18:39:51抜け道はいくらでもある。
0393デフォルトの名無しさん
2010/07/01(木) 21:27:49void main (笑)
0394デフォルトの名無しさん
2010/07/01(木) 21:29:53コンストラクタ・デストラクタのコストを避けるのが主目的。
0395デフォルトの名無しさん
2010/07/01(木) 21:32:19なに、ほんの手遊びですよ。ちょろちょろっと書いてみるのもまた楽しいものです。
0396デフォルトの名無しさん
2010/07/01(木) 21:35:24つ>>250
オリジナルの多桁演算ライブラリです。いつのまにか乗算・除算もできてしまいました。
効率は悪いのですが、それでもわりに重宝しています。
0397デフォルトの名無しさん
2010/07/01(木) 21:44:080398デフォルトの名無しさん
2010/07/01(木) 21:53:17横レスで失礼。除算をどうやったのか興味があります。
0399デフォルトの名無しさん
2010/07/01(木) 21:59:572進法での除算そのものです。ちょっとググってみたところでは http://homepage2.nifty.com/ttoyoshima/Computer/Multiply.htm など。
多桁数を1bit ずつシフトさせながら引き算できるときは引き算をする、という感じです、言葉にすれば。
>>250 も、折をみて、剰余を出力させるように改良しなくては。
0400デフォルトの名無しさん
2010/07/01(木) 22:25:54なるほど。繰り返しで処理出来るからハードウェア化も可能、というのが理解出来ました。
有難う御座います。
0401デフォルトの名無しさん
2010/07/01(木) 22:39:01手近な環境でマシン語を習得し、割り算を実装することができれば、そのマシン語は卒業したといってもいいと思います。
x86 がいいでしょうが、casl でもできます。
0402デフォルトの名無しさん
2010/07/01(木) 22:54:25CASLには虎馬が...ww
0403デフォルトの名無しさん
2010/07/01(木) 23:05:13// ◎ソースコード
#include <stdio.h>
#define N 10
#define ID "/0000/"
#define NAME "/やまだ/"
static int fib(int n)
{
int r;
if (n <= 2)
r = 1;
else
r = fib(n - 1) + fib(n - 2);
return r;
}
//-----------------------------------------------------
int main(void)
{
int i;
printf("%s %s\n\n", ID, NAME);
for (i = 1; i <= N; i++) {
printf("F%2d = %7d\n", i, fib(i));
}
return 0;
}
0404デフォルトの名無しさん
2010/07/01(木) 23:09:06ついでに改造版。
#include <stdio.h>
#define N 40
#define ID "/0000/"
#define NAME "/やまだ/"
#define fib(n) fib2(n,1,1)
static int fib2(int n, int a, int b)
{
return (n <= 2) ? b : fib2(n - 1, b, a + b);
}
//-----------------------------------------------------
int main(void)
{
int i;
printf("%s %s\n\n", ID, NAME);
for (i = 1; i <= N; i++) {
printf("F%2d = %7d\n", i, fib(i));
}
return 0;
}
0405デフォルトの名無しさん
2010/07/01(木) 23:15:15main関数でキーボードから温度とその値が摂氏であるか華氏であるかを
入力し,摂氏ならば華氏に,華氏ならば摂氏に換算した値を小数点以下1桁までで出力するプログラムを作成しなさい。
なお出力は main関数で行うこと。
0406デフォルトの名無しさん
2010/07/01(木) 23:29:03float power(float x,float y)
{
float ans;
char i;
ans=0;
if((char)y='C'){
ans=9/5 * x + 32;
y='摂氏';
i='華氏';
}else{
ans=5/9 * (x - 32) ;
y='華氏';
i='摂氏';
}
return ans;
}
0407デフォルトの名無しさん
2010/07/01(木) 23:29:54{
float a;
char b,i;
a=0;
printf("温度を入力してください: ");
scanf("%f", &a);
printf("%d度が「摂氏」なら 'C' を「華氏」なら'F' を入力してください: ",(int)a);
scanf("%s", &b);
printf("\n");
printf("%c %8.3f = %c %8.3f\n",b, a, i, CelsiusFahrenheit(a, b));
return 0;
}
ここまでできたんですが、出力がうまくいきません。
誰か教えてください。
0408デフォルトの名無しさん
2010/07/02(金) 00:20:43#include <stdio.h>
float CelsiusFahrenheit(float a, char *b)
{ return (*b == 'C') ? (a - 32) * 5 / 9 : a * 9 / 5 + 32;}
int main(void){
float a = 0;
char b[2];
printf("温度を入力してください: ");
scanf("%f", &a);
printf("%g度が「摂氏」なら 'C' を「華氏」なら'F' を入力してください: ", a);
scanf("%s", b);
b[1] = (*b == 'C') ? 'F' : 'C';
printf("%5.1f °%c = %5.1f °%c\n",
a, b[0], CelsiusFahrenheit(a, b), b[1]);
return 0;
}
0409デフォルトの名無しさん
2010/07/02(金) 02:19:37[2] 問題文(含コード&リンク):
極座標(r,θ)の値を入力すると、直交座標(x,y)に変換するプログラムを作成せよ。
但し,θの値はdegree(度)で入力すること。また、πの値は逆三角関数(arctan(x))を使って計算をすること。
[3] 環境
[3.1] OS:WinodwsVista
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:7/5(月)迄
[5] その他の制限:特になし
よろしくお願いします
0410デフォルトの名無しさん
2010/07/02(金) 02:42:39[2] 問題文(含コード&リンク):分離連作法と外部ハッシュ法の性能比較
[3] 環境
[3.1] OS:windows XP
[3.2] gcc
[3.3] 言語:C++
[4] 期限:2010年7月10日00:00
[5] その他の制限: 特になし
0412デフォルトの名無しさん
2010/07/02(金) 07:22:59ありがとうございます
よろしければ演習2のほうもお願いします・・・
0413デフォルトの名無しさん
2010/07/02(金) 12:17:45ありがとうございます!
0414デフォルトの名無しさん
2010/07/02(金) 12:56:28[2] 問題文(含コード&リンク):switch 文を使用して
1. データファイルの新規作成
2. データファイルの追加作成
3. データファイルの読み込みと表示
4. 終了
をメニュー形式で処理するプログラムを作成せよ。
・ ファイル名はキーボードから入力する。
・ 1〜4の処理はユーザ関数として定義すること。
void data_write(void)
void data_append(void)
void data_read(void)
void the_end(void)
・1〜4以外の数値が入力されたら再入力させること。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:cc
[3.3] 言語:C言語
[4] 期限:7月5日
0415デフォルトの名無しさん
2010/07/02(金) 17:27:310416デフォルトの名無しさん
2010/07/02(金) 18:26:04コードを出したり引っ込めたりしなければね。
0417デフォルトの名無しさん
2010/07/02(金) 19:01:48[2] 問題文(含コード&リンク):
正の整数を引数とし、その階乗(n!)を計算して戻り値とする関数
factを作成して動作を確認せよ。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2010年7月5日
よろしくお願いします。
0418デフォルトの名無しさん
2010/07/02(金) 19:04:56>>211, >>250, >>306 あたりを参考にしてはいかが?
0419デフォルトの名無しさん
2010/07/02(金) 19:43:49http://codepad.org/vNVYL56R
0420デフォルトの名無しさん
2010/07/02(金) 20:35:07[2] 問題文(含コード&リンク):
実数値(xとする)と正の実数値(yとする)を引数としてx^yを戻り値とする
関数mypowを作成し、プログラムリストと実行結果を示せ。
ただし、xとyについてはmain関数でキーボードから入力するようにし、
出力結果としては、mypow関数の計算結果と数学関数pow関数の結果を
両方表示するようにせよ。また、mypow関数のプロトタイプ宣言も行うこと。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2010年7月5日
よろしくお願いします。
0421デフォルトの名無しさん
2010/07/02(金) 20:35:15[2] 問題文(含コード&リンク):
10 人の成績を入力し,その順位を成績と共に表示したい。以下の考え方に基づいた
プログラムを作成せよ。
1 ?
2次元配列s[10][2] を用意する。
2 ?
i=0〜9 のfor 文を用いてs[i][0] に成績を入力する。
3 ?
s[0][0] とs[j][0],j=0〜9 を比較し,s[0][0] より大きい数値の個数n を数え
る。その個数+1 が成績順位になるので,s[0][1] にn+1 を代入する。
4 ?
同様の操作をs[i][0],i=0〜9 に対して行なえば,その成績順位がs[i][1] とし
て求められるので,あとは成績と共に表示すればよい。
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン:VC 6.0
[3.3] 言語: C++
[4] 期限: 2010年7月6日まで
[5] その他の制限: main関数
よろしくお願いします
0422デフォルトの名無しさん
2010/07/02(金) 20:39:26ありがとうございます!
0423デフォルトの名無しさん
2010/07/02(金) 21:27:52遅れてすいません。ありがとうございます!
0424デフォルトの名無しさん
2010/07/02(金) 21:44:46しつけぇw
0425デフォルトの名無しさん
2010/07/02(金) 22:02:53>>408を
80度が「摂氏」なら "C" を「華氏」なら "F" を入力してください: F
日本基準 80.0 度 = 欧米基準 176.0 度
と出力できるようにはできませんか?
http://codepad.org/7QLze0b2
もっとまじめにmypow()を定義しなければならないのでしたら、その旨ご返事ください。考え直します。
http://codepad.org/BowfSESU
VC6 でコンパイルできなかったらごめんなさい。
0428デフォルトの名無しさん
2010/07/02(金) 23:47:19質問でも宿題でもないのにあげている、という点で同一人間っぽいですね。
いわゆる自意識過剰ってやつですか。もっと大人になりましょうね。
0430デフォルトの名無しさん
2010/07/03(土) 00:56:52計算違いがありましたので修正しました。
#include <stdio.h>
#define c1(c) (c=='C')?"日本基準":"欧米基準"
float CelsiusFahrenheit(float a, char *b)
{ return (*b == 'F') ? (a - 32) * 5 / 9 : a * 9 / 5 + 32;}
int main(void)
{
float a = 0;
char b[1];
printf("温度を入力してください: ");
scanf("%f", &a);
printf("%g度が「摂氏」なら 'C' を「華氏」なら'F' を入力してください: ", a);
scanf("%s", b);
printf("%s %5.1f 度 = %s %5.1f 度\n",
c1(*b), a, c1('C' + 'F' - *b), CelsiusFahrenheit(a, b));
return 0;
}
0431デフォルトの名無しさん
2010/07/03(土) 06:36:17し・つ・こ・い。このスレに何しに来てんの?基地外。自分のレスを読み返せ。
浮いてるぞ
0432デフォルトの名無しさん
2010/07/03(土) 06:43:38> いわゆる自意識過剰ってやつですか。もっと大人になりましょうね。
自己紹介しているし、このバカw
お前の揚げ足取り、反論はどれも論点がズレている。もう少し自分の方が
勘違いをしてコミュ力がないと気づけよ、お子ちゃま。
で、fgetc()の戻り値なんて今更持ち出す池沼乙w
0433デフォルトの名無しさん
2010/07/03(土) 06:45:57よろしければお願いします
0434バカ晒しage
2010/07/03(土) 06:48:26ピエロのお前を晒し続けてやるよw
お前がこのスレに無関係な話を延々と見えない敵に噛み付いて
し始めているからきめぇつってんだよ。スレタイ読めや、文盲かてめぇは?
0435いつまでもおつむは成長しないお子ちゃま
2010/07/03(土) 06:49:18>>344
fgetc() の戻り値は int 型であることを、そろそろ理解していただきたいのですが。
どうですか?成長しましたか?
0436見えない敵に噛み付く自分こそ自意識過剰のスレチバカ
2010/07/03(土) 06:50:06>>424
質問でも宿題でもないのにあげている、という点で同一人間っぽいですね。
いわゆる自意識過剰ってやつですか。もっと大人になりましょうね。
0437デフォルトの名無しさん
2010/07/03(土) 06:53:32EOF がマクロで定義されていることを、そろそろ理解していただきたいのですが。
どうですか?精神レベルとプログラミングの技能は成長しましたか?
ttp://www.bohyoh.com/CandCPP/C/Library/getchar.html
> int getchar(void);
getchar() の戻り値は int 型であることを、そろそろ理解していただきたいのですが。
どうですか?成長しましたか?
0438433=234
2010/07/03(土) 07:10:460439デフォルトの名無しさん
2010/07/03(土) 07:18:56スレタイも>>1も読めないアホ
0440デフォルトの名無しさん
2010/07/03(土) 12:50:16[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10774.txt
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:7/6まで
[5] その他の制限:特になし
2問ありますがよろしくお願いします
0441デフォルトの名無しさん
2010/07/03(土) 13:27:17[2] 問題文(含コード&リンク):
UNIXコマンドのgrep(指定したファイルを読み込み、指定した文字列とマッチする行を出力するコマンド)と同じ動作をするプログラムを実装しなさい。
ただし、オプションなどの副次的な機能はつけなくてもよい。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2010年7月5日まで
[5] その他の制限:とくにありません。よろしくお願いします。
0443334
2010/07/03(土) 17:20:02コンパイルが上手く行ったので実行したらゴミができた
タイミングよく救急車のサイレンがきこえてきた 死にたいw
(gdb) run
Starting program: /cygdrive/c/works/1/rev/rev
[New thread 2376.0x258]
[New thread 2376.0xbf0]
6 [main] rev 2376 exception::handle: Exception: STATUS_ACCESS_VIOLATION
3713 [main] rev 2376 open_stackdumpfile: Dumping stack trace to rev.exe.stack
dump
Program received signal SIGSEGV, Segmentation fault.
0x611203f8 in _fread_r () from /usr/bin/cygwin1.dll
0444デフォルトの名無しさん
2010/07/03(土) 17:26:03画像開く前から画像の幅と高さがわかるとかどんなエスパーだよバカ
0445デフォルトの名無しさん
2010/07/03(土) 17:29:080446デフォルトの名無しさん
2010/07/03(土) 19:06:49ありがとうございます。
0447デフォルトの名無しさん
2010/07/03(土) 19:44:18[2] 問題文(含コード&リンク):
例を修正し、double型の配列変数に格納されている値の
平均値を求める関数aveを作成せよ。また、aveもdouble型とする。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2010年7月5日
0448デフォルトの名無しさん
2010/07/03(土) 19:46:04#include<stdio.h>
#define N 10
int sum(int num[])
{
int n, s=0;
for (n=0;n<N;n++)
s+=num[n];
return 0;
}
int main()
{
int aa[N], bb;
/* 配列変数aaに値を代入 */
bb = sum(aa);
printf(“sum=%d\n”,bb);
return 0;
}
0449デフォルトの名無しさん
2010/07/03(土) 20:06:46#include<stdio.h>
#define N 10
double sum(double num[])
{
int n;
double s=0.0;
for (n=0;n<N;n++)
s+=num[n];
return s;
}
int main()
{
int i;
double aa[N], bb;
/* 配列変数aaに値を代入 値は適当*/
for (i=0;i<N;i++)
aa[i]=i*2.5;
bb = sum(aa);
printf("sum=%f\n", bb);
return 0;
}
#include <stdio.h>
#define N 10
double ave( const double arr[] )
{
int i;
double total = 0;
for ( i=0; i<N; ++i )
total += arr[i];
return total/N;
}
int main()
{
const double arr[N] = { 1.23, 9.87, 5.94, 0.157, 7.2, 1.23, 9.87, 5.94, 0.157, 7.2 };
printf( "average = %f", ave(arr) );
return 0;
}
0451デフォルトの名無しさん
2010/07/03(土) 20:47:22ありがとうございます!
0452デフォルトの名無しさん
2010/07/03(土) 20:52:37[1] c言語活用:
[2] 例を改造して、ガウス関数に関する折れ線グラフにしなさい。
http://codepad.org/bsUmakKX
[3] 環境
[3.1] OS : Linux
[3.2] コンバイラ名 : gcc
[3.3] 言語 : C
[4] 期限: 7月 5日まで
例をガウス関数で定義するところまでは自力でできましたが、
グラフが点集合でしか表せません。
現在のX座標の点と隣のX座標の点を直線で結ぶために2組の座標の組
(x1, y1, disp_x1, disp_y1),
(x2, y2, disp_x2, disp_y2) を用意するとうまくいくそうですが
どうしてもわかりませんでした。
御助力お願いします。
0453デフォルトの名無しさん
2010/07/03(土) 21:42:14handy.h とはなんでしょうか?
あと、X Window ?
0454デフォルトの名無しさん
2010/07/03(土) 22:01:38誰かコレの演習2お願いしますっ
>>454
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10777.txt
>>431
宿題しにきていますが、なにか?
>>432
べつに当たり前のことをいってるだけですけどね。でも、当時話題になったが fgetc() ではなくて getchar() マクロや EOF だっただなんて、よくご存知ですね。やっぱり当事者だったんですね。つれた、つれた。
>>434
そういいながらも sage で投稿できないところなんか、末期的としかいわざるを得ないでしょうね。一度 sage で投稿してごらんなさい?
まあ一匹の自意識障害者をあぶりだすことができたようで、満足しています。
0457デフォルトの名無しさん
2010/07/04(日) 00:31:44[2] 問題文(含コード&リンク):
以下のプログラムに、下に示す二つの関数を実装し、組み込みなさい。
ファイル中に保存するデータはアスキー形式でも、バイナリ形式でもどちらでも構わないものとする。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10778.txt
・構造体Employee型のデータが順に保存されているファイルからデータを読み込む関数。
・作成したデータをファイルに書き出す関数。
例えば、構造体Employeeを下に示すものと同じ定義にしたとする。
この構造体に従ったASCII形式のデータベースファイルを読み込み、社員の追加や、給与の変更をした後、同様なデータベースファイルとして保存できるようにしなさい(もちろん、バイナリ形式のファイルにしても構わない)。
[構造体Employeeの例]
typedef struct {
char name[16];
int age;
int salary;
} Employee;
[データベースファイルの例]
TANAKA 32 620
SUZUKI 25 500
CHIBA 35 650
NAKAMURA 50 1000
IIDA 45 800
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2010年7月5日まで
[5] その他の制限:特にありません。よろしくお願いします。
0459デフォルトの名無しさん
2010/07/04(日) 00:50:360460デフォルトの名無しさん
2010/07/04(日) 01:02:03ありがとうございます、助かりました
0461デフォルトの名無しさん
2010/07/04(日) 01:03:27[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10780.zip
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:
[3.3] 言語: C言語
[4] 期限: ([2010年07月05日22:00まで]
[5] その他の制限: よろしくお願いします!
0462デフォルトの名無しさん
2010/07/04(日) 01:03:42精神障害者だろ、お前?いつまでも昔の(自分の勘違いのせいで起こった論争)を引き摺るとか。
気持ち悪い。このスレ、お前のオナニースレじゃないんだが?周りを見ろよ。
日頃、現実世界でまともに相手にされていないのがバレバレだぞ。
0463デフォルトの名無しさん
2010/07/04(日) 01:05:26> 気に入らない質問やその他の発言はスルーの方向で。
最初の1行も読めないとか、日本人かも疑わしいわ。
ageられているのはお前みたいなキモイ奴を晒しageされていると気づけよ。
このスレにsageルールはないけど?
0464デフォルトの名無しさん
2010/07/04(日) 01:15:350465精神障害者アスペ君の恥ずかしいレス
2010/07/04(日) 01:15:35>>344
fgetc() の戻り値は int 型であることを、そろそろ理解していただきたいのですが。
どうですか?成長しましたか?
0466デフォルトの名無しさん
2010/07/04(日) 01:23:04<標準関数>文字列と削除文字列を入力し、文字列中から削除文字列を削除しなさい。
※配列の使用は2つだけ。
例) 文字列入力→ABCDEFAABCDABC
削除文字列→ABC
結果文字列→DEFAD
どなたか教えてください、お願いします。
0467デフォルトの名無しさん
2010/07/04(日) 01:35:50虱潰しに煽る事で炙り出そうって魂胆だろ。一生見えない敵と戦うぞ、こいつw
0468デフォルトの名無しさん
2010/07/04(日) 02:00:45今来産業の俺にもう少し分かりやすく
0469デフォルトの名無しさん
2010/07/04(日) 02:05:50#include <stdio.h>
#include <string.h>
int main(void)
{
char source[] = "ABCDEFAABCDABC";
char target[] = "ABC";
size_t l = strlen(target);
char *p;
puts(source);
puts(target);
while (p = strstr(source, target)) {
while (p[0] = p[l]) {
p++;
}
}
puts(source);
return 0;
}
0470デフォルトの名無しさん
2010/07/04(日) 02:06:110471デフォルトの名無しさん
2010/07/04(日) 02:21:25※配列の使用は2つだけ。
って言われてるけど
0472デフォルトの名無しさん
2010/07/04(日) 02:35:20はあ?確保してる配列は2つだけだろうが
脳みそヒヨコかよ
0473デフォルトの名無しさん
2010/07/04(日) 11:33:13「ave」という文字がないのですがこれでいいんですかね?
0474デフォルトの名無しさん
2010/07/04(日) 14:29:58handy.h はHandyGraphic という
グラフィックスライブラリを使うことを意味しています。
また学校のパソコンなのでわかりませんがおそらく
X Windowかと思われます。いいかげんですみません。
明日提出なのでよろしければ、どなたかよろしくお願いします。
0475デフォルトの名無しさん
2010/07/04(日) 14:41:34[2]問題文:
ファイルseiseki.txt から氏名と点数を読み込んで、成績順に並べ替え、結果を画
面に表示するプログラムを作成せよ。
・氏名は2次元配列、点数は1次元配列に格納する。
・ データの並べ替えには単純挿入法、単純選択法またはバブルソートを使用する。
・ 文字列 x[]と文字列y[]の入れ替えは、文字列操作関数strcpy を用いて行う。
strcpy(z,x); strcpy(x,y); strcpy(y,z);
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限: ([2010年07月06日0:00まで]
この問題が解ける方はいらっしゃいますでしょうか。
http://codepad.org/1E7wG9Fa
>>463
>>1 を読めないのはおまえさんも同じ。私?いちおう宿題といてますけどね。
なによりこれだけの過剰反応を示していること自体が、つれた、つれた、と判断されてもしかたのないことでは?
さらしあげ?専用ブラウザを使っている私にはなんのことだか。
>>467
それはおまえさんのことですがな。
0477デフォルトの名無しさん
2010/07/04(日) 15:21:19よみにくいから段下げをつけてくれ
0478デフォルトの名無しさん
2010/07/04(日) 15:24:06>>450
0479デフォルトの名無しさん
2010/07/04(日) 15:36:07ついてるよ
メモ帳にコピペしてみ
0480デフォルトの名無しさん
2010/07/04(日) 15:41:040481デフォルトの名無しさん
2010/07/04(日) 16:04:42[2] 問題文(含コード&リンク):方程式exp(-x^2/2)=0.5の解を求める
[3] 環境
[3.1] OS:Windows Vista
[3.2] コンパイラ名とバージョン:Cygwin
[3.3] 言語:C
[4] 期限:7/9
[5] その他の制限:
double f(double x);
int main(void){
double x,min_f,solution;
min_f=1e100;
for(x=0;x<=3;x+=dx){
printf("%e,%e\n",f,min_f);
if(fabs(f(x))<min_f){
solution=x;
min_f=fabs(f(x));
}}
printf("f(%e)=%e\n",solution,min_f);
return 0; }
double f(double x){
double y;
y=exp(-x*x/2)-0.5;
return y; }
と組んで実行できたんですが、なぜmin_fを最初に10^100とするのでしょうか?
なんか私の感覚的には10^-100な気がするのですが・・・
この部分の解説お願いします。
0482デフォルトの名無しさん
2010/07/04(日) 16:20:47確かにソースをみるとついてますな。
0483デフォルトの名無しさん
2010/07/04(日) 16:44:30範囲をdx刻みで分割して、|f(x)|が最小となるxを求める。
min_fは暫定の最小。もしあるxで|f(x)|<min_fなら、min_fを更新する。
dxに対してmin_fを小さくしすぎると、|f(x)|<min_fなxがない可能性がある。
0484デフォルトの名無しさん
2010/07/04(日) 20:06:11うわっ、お前マジキモイ・・・そのままトリップを付けたまま書き込めよ。
必死に自分の不満、苛立ちを露にする長文を書くしバカ丸出しw
0485デフォルトの名無しさん
2010/07/04(日) 20:06:54> それはおまえさんのことですがな。
いや、お前のことだよ。第一、お前はトリップを付けているが
お前にレスした奴が特定の一人とは限らないだろ?
0486デフォルトの名無しさん
2010/07/04(日) 20:07:19見えない敵と戦う必死な戦士、かっちょわりぃ〜w
0487デフォルトの名無しさん
2010/07/04(日) 20:08:06>>1
>あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他の発言はスルーの方向で。
読めませんか?相手をいちいち自分の勘違いで挑発するお前が一番幼稚
0488デフォルトの名無しさん
2010/07/04(日) 20:08:280489デフォルトの名無しさん
2010/07/04(日) 20:09:12自分はさっぱり分かりません、みたいなしらばっくれた書き込みをして
自分がした 勘違い を認めないとか、頭おかしいぞw
自覚が無いなら責任が問われる社会では通用しません。
0490デフォルトの名無しさん
2010/07/04(日) 20:09:55最後の1行がみっともないです ><;
早くこのスレから出て行くか、大人になって下さい ><;
ねぇ、まだ社会に出て働いた事の無いお子ちゃまw
0492デフォルトの名無しさん
2010/07/04(日) 20:11:40そろそろ、自分の苛立ちを見えない敵にぶつけないで良いよ。
今後無駄なレスをしても、スルーされるだけだからw
で、お前は俺を麻呂と思っているんだろ?麻呂があれから
騙りもあり、しばらく来ていなかったことも知らないとは・・・
そうやって見えない敵に噛み付いてなさいw
0493デフォルトの名無しさん
2010/07/04(日) 20:14:39他人にお前こそと言う前に、議論するスレは他にありますので、そちらでやって下さい。
トリップ付けてまでバカ晒すなよ、ガキw
0494デフォルトの名無しさん
2010/07/04(日) 20:16:42お前はコテハンかトリップつけろクズ
0495デフォルトの名無しさん
2010/07/04(日) 20:28:46解答ありがとうございます。もしよろしかったら、使用する標準関数は、strncmp(),strcpy(),strlen()で書いてもらえないでしょうか?
0496デフォルトの名無しさん
2010/07/04(日) 20:47:340497デフォルトの名無しさん
2010/07/04(日) 20:56:45ありがとうございます。助かりました。
0498デフォルトの名無しさん
2010/07/04(日) 21:23:46http://codepad.org/T48qu3kj
0499481
2010/07/04(日) 21:37:31どうもありがとうございます。納得できました。
ifの条件文に引っかからなくなる直前のxがsolutionとなる、という認識で大丈夫ですか?
0500デフォルトの名無しさん
2010/07/04(日) 23:15:12ありがとうございます。
0501デフォルトの名無しさん
2010/07/04(日) 23:29:02[2] 問題文(含コード&リンク):
次式の値を返す関数を作成せよ。
f(x)=e^{-x} cos(2πx)
その関数を用いて0≦x≦3の間で0.1刻みで計算し、結果をリダイレクトで
ファイルに記録せよ。その結果をgnuplotでグラフにして示せ。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2010年7月6日
よろしくお願いします。
0502デフォルトの名無しさん
2010/07/05(月) 00:35:560503デフォルトの名無しさん
2010/07/05(月) 04:14:21【1】 (1) return ; (2) shift_down(heap, s, 2*s, n);
【2】 (2) swap(&heap[1], &heap[i]); (2) shift_down(heap, 1, 2, i-1);
酷いコードだ。
教育だからこそ、スマートなコードにしてくれることを切に願う。
0504デフォルトの名無しさん
2010/07/05(月) 05:16:09[2]問題文;離散探索木(26進)と外部ハッシュ法の比較(探索関数)
キー: 文字列
使用ファイル: wordE100KR.dat
上記ファイルを読み込み、通常の配列に格納する。
この配列から要素を読み込み、分離連鎖法および離散探索木(26進)を生成する。
格納された要素と同一の要素集合すなわち、配列に格納された用語集合に対して、1万語毎に探索を行い、照合回数、および探索時間を測定する。
結果として、照合回数について20個のデータ(2×10)、同様に探索時間について20個のデータ(2×10)が得られる。
これらのデータをExcelに格納し、表、グラフを作成し、分析せよ。
[3]環境
[3.1]OS;windowsXP
[3.2]コンパイラ名とバージョン:gcc
[3.3] 言語:C/C++どちらでも可
[4]期限;7月8日
使用ファイルはhttp://rg550.hp.infoseek.co.jp/cgi-bin/joyful/main.htmにあります。
丸投げで申し訳ありません。よろしくお願いします。
0505デフォルトの名無しさん
2010/07/05(月) 06:49:510506デフォルトの名無しさん
2010/07/05(月) 12:32:23[2] 問題文メモリや実行時間の許容範囲内の、最大完全数、最大友愛数、および最大婚約数を算出プログラムを作成
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:Microsoft Visualstadio 2003
[3.3] C言語・C++
[4] 期限: ([2010年7月6日12:00まで
よろしくお願いします。
0507デフォルトの名無しさん
2010/07/05(月) 16:52:560508デフォルトの名無しさん
2010/07/05(月) 17:01:57zipはめんどくさいので放置。
できれば1レス、最低でもWEBだけで確認できる様に書きなおせ。
0509デフォルトの名無しさん
2010/07/05(月) 17:03:46> 許容範囲内
とは誰が許容する範囲内なんだ。
具体的に書きなおせ。
0510デフォルトの名無しさん
2010/07/05(月) 17:50:360512デフォルトの名無しさん
2010/07/05(月) 20:24:06問題文の
確率指定 p
って何?>
0513デフォルトの名無しさん
2010/07/05(月) 20:28:32int main() 笑 の奴がいるとかw
http://pc12.2ch.net/test/read.cgi/tech/1269438098/101 で述べられ済み。
ISO/IEC 9899TC2
6.7.5.3 Function declarators (including prototypes)
14
An identifier list declares only the identifiers of the parameters of the function. An empty
list in a function declarator that is part of a definition of that function specifies that the
function has no parameters.
とあり、関数の定義のときには、空のリストは no parameters である。
すなわち引数が void の場合と等価であり、int main() は int main(void) と同じ。
0516デフォルトの名無しさん
2010/07/05(月) 20:36:40void main()でも別に構わんぞ
コンパイル通ればいいんだよ
0517デフォルトの名無しさん
2010/07/05(月) 20:45:25これには異論があり。
個人的には、int main() でコンパイルできる環境で、main() が引数をかえさない、という main() 側の都合で void main() と宣言するのには疑問がある。
0518デフォルトの名無しさん
2010/07/05(月) 20:51:48ちょっと前にもどっかのスレで泥沼化してただろう?
だれか過去ログはっておやり。
0519デフォルトの名無しさん
2010/07/05(月) 20:53:34[2] 問題文(含コード&リンク): 四則演算と平方根を求める事が出来る電卓プログラムを作成せよ.
[3] 環境
[3.1] OS: Windows xp
[3.2] コンパイラ名とバージョン:visual C++ 2008
[3.3] 言語: C++
[4] 期限: 2010年7月7日22:00頃まで
[5] その他の制限: 数学関数等は利用不可,関数ライブラリは標準入出力ライブラリ stdio.h のみを利用可
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10781.txt
math.h等の利用が出来ないため平方根はニュートン法により求めるプログラムを使用したいと思っています.
URLに記載した二つのプログラムを組み合わせて上記の条件を満たすような電卓プログラムを作りたいのですが,
私なりに見よう見まねで組み合わせて見たのですが,知識が足りず平方根を求める動作が働きません.
根本的に間違っている可能性もありますが,どなたか修正点を教えて頂けると幸いです.
よろしくお願いいたします.
0520デフォルトの名無しさん
2010/07/05(月) 20:55:25守らなきゃいけないルールじゃない。
単にコンパイラやソースが標準に沿っていますということを表明できるだけの意味しかないんだよ。
この世にはmainが存在しないプログラムをCで書くケースだって腐るほどあるし、
エントリ関数がWinMain()になっている世界で最も普及したコンパイラだってあるんだぞ。
0521デフォルトの名無しさん
2010/07/05(月) 20:58:04このスレの先々代(135)、3月〜4月にかけて宿題が欠乏し宿題解き人が暇になったために泥沼化した。
結論としては、規格の上では void main() も int main() も合法だったかと。
0522デフォルトの名無しさん
2010/07/05(月) 21:01:57情報トンクス! ていうかこのスレだったかw
0523デフォルトの名無しさん
2010/07/05(月) 21:30:58[2] 問題文 3問ほどあるのでリンクを
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10782.txt
[3] 環境
[3.1] OS:Windowsvista
[3.2] Microsoft Visual Studio 2008
[3.3] 言語:c言語
[4] 期限:なし
[5] 制限:なし
問題が多いのですがひとつお助けください
0524デフォルトの名無しさん
2010/07/05(月) 22:14:53gccでの確認になりますが。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10784.txt
0525デフォルトの名無しさん
2010/07/05(月) 22:23:17N
Σ || x(n)-a || / N || ・|| はノルム。
を高速に計算する方法わかりますか。
0527デフォルトの名無しさん
2010/07/05(月) 22:32:14||X-A|| + ||Y-A|| = SQRT( (x-a)^2 + (y-b)^2 ) + SQRT( (z-a)^2 + (w-b)^2 )
を高速で計算したいという訳なんです。
2000次元だと、かけ算とSQRTが相当あって時間掛かりますが。
短縮する方法ありますか。
0528527
2010/07/05(月) 22:35:42||X-A|| = |x-a| + |y-b| と定義してしまうか。
すると、 |x-a| + |y-b| + |z-a| + |w-b| を求めるだけで簡単。
http://codepad.org/LQ8UIyYT
キー入力の具合はこれでいいですか?
0530デフォルトの名無しさん
2010/07/05(月) 23:24:23定期的に叩かれるみたいだけどがんばれ。
0531デフォルトの名無しさん
2010/07/05(月) 23:29:130532デフォルトの名無しさん
2010/07/05(月) 23:31:38叩いてもらえる、というのは、コードをみてくださっている、というありがたい反応ですから、ウェルカムです。
ちょっと前の、あいかわらず頭の変な奴にかかわってしまったのは失敗ですが、スルーすることにしました。
でも今日はおやすみなさいです。
0533デフォルトの名無しさん
2010/07/05(月) 23:51:43じゃあたまにのぞいて気になるとこあったらレスすることにするよ。
っても地力ぼちぼちありそうに見えるんで、重箱の隅ぐらいしか突っ込めないかも。
0534デフォルトの名無しさん
2010/07/05(月) 23:53:45[2] 問題 半乱順列の関数作成
[3] 環境 指定なし
[3.1] OS:Windowsvista
[3.3] 言語:c言語
[4] 期限:なし
[5] 制限:なし
半乱順列の関数を作ってください!お願いします!!
0535デフォルトの名無しさん
2010/07/05(月) 23:54:08[2] 問題文(含コード&リンク):data.txtに書かれている氏名と成績を読み込み、氏名を2次元配列、成績を1次元配列に格納せよ。
[3] 環境
[3.1] OS:Ubuntu 10.4
[3.2] コンパイラ名とバージョン: gcc 3.4
[3.3] 言語: C
[4] 期限:7/7まで
[5] その他の制限:
data.txtの中身は
aoyama 36
oomura 42
sugiyama 50
morita 14
となっております。
0536デフォルトの名無しさん
2010/07/06(火) 00:06:46>>476 は読み込んだあとソートしていますが、そのソート部分を削ればご所望のコードになるかと。
0538デフォルトの名無しさん
2010/07/06(火) 16:11:53お答え頂きありがとうございます。
動作は申し分無いのですがこのプログラムだとstdio.h以外にmath.h等の関数ライブラリが見られます。
すみませんがstdio .h のみで動作することを前提でお願いしたいと思います。
また、授業では本当に基礎的な内容のみしか扱っておらず、ネットや本を見て勉強している段階ですので、なるべく基本的な分かりやすい形でプログラムを組んでいただけたら幸いです。
0539デフォルトの名無しさん
2010/07/06(火) 16:15:25慇懃無礼、という言葉が頭をよぎったという。
0540デフォルトの名無しさん
2010/07/06(火) 16:17:37せっかく答えてくれた人に喧嘩売るのはやめようね
0541デフォルトの名無しさん
2010/07/06(火) 16:48:46ソースよく読めよ
0542デフォルトの名無しさん
2010/07/06(火) 16:53:320543デフォルトの名無しさん
2010/07/06(火) 17:44:440544デフォルトの名無しさん
2010/07/06(火) 18:04:56せっかく解答をして下さったにも関わらず、不快感を与える表現をしてしまいすみませんでした。
if 0とend ifの意味を理解していませんでした。
こちらの理解不足で本当に失礼しました。
0545デフォルトの名無しさん
2010/07/06(火) 18:17:150546デフォルトの名無しさん
2010/07/06(火) 18:26:10どの辺が古いの?
0547デフォルトの名無しさん
2010/07/06(火) 18:54:59無理しないで良いよ、爺ちゃん。
0548デフォルトの名無しさん
2010/07/06(火) 19:01:50[2] 問題文(含コード&リンク):
#include <stdio.h>typedef struct { char *fname, *mname, *lname; int byear, dyear;
} writer_t;
writer_t writers[] = { {"Edward", "Elmer", "Smith", 1890, 1965},
{"Robert", "Anson", "Heinlein", 1907, 1988},
{"Arthur", "Charles", "Clarke", 1917, 2008},
{"Isaac", " ", "Asimov", 1920, 1992},
{"Raymond", "Douglas", "Bradbury", 1920, 0}};
int main(void){ int i; char s[10];
for (i = 0 ; i < sizeof(writers)/sizeof(writer_t) ; i++){
printf("%c. ", writers[i].fname);
if (writers[i].mname[0] != "\0") {
printf("%c. %-10s", writers[i].mname[0], writers[i].lname); }
else { printf("%-13s", writers[i].lname); }
printf("%4s - ", writers[i].byear);
if (dyear > 0){ printf("%4s", writers[i].dyear); } printf("\n"); } return 0;}
上記のエラープログラムを正しく直す。
[3] 環境
[3.1] OS: UNIX
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: ([2010年7月28日20:00まで
[5] その他の制限: なるべく簡潔に(新しい変数を定義したり)お願いします。見づらいですが改行が多いと怒られるので・・
0549デフォルトの名無しさん
2010/07/06(火) 19:09:55#if 0
から
#endif
までの間を削除してください。
わかりやすさについては、これが限界です。
0551デフォルトの名無しさん
2010/07/06(火) 19:12:43http://pc12.2ch.net/test/read.cgi/tech/1269438098/101 で述べられ済み。
ISO/IEC 9899TC2
6.7.5.3 Function declarators (including prototypes)
14
An identifier list declares only the identifiers of the parameters of the function. An empty
list in a function declarator that is part of a definition of that function specifies that the
function has no parameters.
とあり、関数の定義のときには、空のリストは no parameters である。
すなわち引数が void の場合と等価であり、int main() は int main(void) と同じ。
0552デフォルトの名無しさん
2010/07/06(火) 19:15:17確かに古いといわれたらそうかもしれません。
func(a, b)
int a;
char *b;
{
...
return 0;
}
と書いていたころもありました。
setq とか car とか cdr とかを乱発していたこともあります。
0553デフォルトの名無しさん
2010/07/06(火) 19:17:21お前がコテハンかトリップつけろ塵
いえいえ、全然。
0555デフォルトの名無しさん
2010/07/06(火) 19:22:15コテハン付けたり、外したり大変だなw
0556デフォルトの名無しさん
2010/07/06(火) 19:24:57専用ブラウザを使っていますから、簡単ですよ。
0557デフォルトの名無しさん
2010/07/06(火) 19:31:06>setq とか car とか cdr とかを乱発していたこともあります。
横レスだけど、そのネタはww
[H|T] -> とか言い出さないようにw>>552
まあ、コード書けない煽りは無視で行きましょう。
0559デフォルトの名無しさん
2010/07/06(火) 19:35:47その頃は
return (0);
と書いてたりしないか?
0560デフォルトの名無しさん
2010/07/06(火) 19:37:06処理系をCで書く、という解説本を集めているんです。でも、いまんところ2冊しかみつかっていません。
やっぱり、そんな本は売れないんですかね。おもしろいんですけれどね。
0561デフォルトの名無しさん
2010/07/06(火) 19:38:44しまった!
0562デフォルトの名無しさん
2010/07/06(火) 19:39:30訳されてない本が沢山あるよ
0563デフォルトの名無しさん
2010/07/06(火) 19:51:18Cに限らず、技術資料とかサンプルは英語の方が多いよね。
Google codeもよく使ったなあ。
0564デフォルトの名無しさん
2010/07/06(火) 19:51:180565デフォルトの名無しさん
2010/07/06(火) 19:53:06洋書まではあさる実力がない‥‥‥。でもながめてみたいもの。
著者名でよければ教えてください。
0566デフォルトの名無しさん
2010/07/06(火) 20:06:48ありがとうございました〜
0568デフォルトの名無しさん
2010/07/06(火) 21:09:00OSやコンパイラを作るって事だろ。
0569デフォルトの名無しさん
2010/07/06(火) 22:11:38その金額を払うのに最も枚数が少なくて済むコインの出し方を出力してくれる
プログラム。
例えば、23円と入力すると、「10円1枚・8円1枚・5円1枚の計3枚」と出力できるプログラムです。
ただし、「10円2枚・1円3枚の計5枚」は「最小」ではないため、上の出力を優先します。
入力された金額が負の場合は、「Error」を出力するようにします。
そこで、下のようなプログラムを書いたのですが、うまく起動しません。
このプログラムを、上の出力例のように出力してくれるように書きなおしてくれませんか??
下のプログラムでは合計枚数を出力する部分しか書いてません。
ちなみに、再帰を使ってプログラミングお願いします。
0570デフォルトの名無しさん
2010/07/06(火) 22:14:36#include<stdio.h>
int coinfunc(int *C, int k, int M){
/* *C・・・コインの種類の配列(小さい順にソートされているとする)
M・・・支払う金額/
k・・・コインの種類の数 */
if(M == 0){ return(0); }
else if(M < 0){ return(Error); }
else{
int min = 100000;
int i;
for(i = 0; i <= k - 1; i++){
int tmp = coinfunc(C, k, M - C[i]);
if(tmp < min){ min = tmp; }
}
return(min + 1);
}
}
int main(){
int C[5] = {1,5,8,10,15};
int k = 5;
int M;
printf("支払う金額M=");
scanf("%d",&M);
printf("%d\n",coinfunc(C, k, M));
}
http://codepad.org/dYsw25Et
許容範囲云々は考えていません。
0572デフォルトの名無しさん
2010/07/06(火) 22:38:55すぐ貼ります
0573デフォルトの名無しさん
2010/07/06(火) 22:40:440574デフォルトの名無しさん
2010/07/06(火) 22:42:55ここまでは作った
#include<stdio.h>
int main(void)
{
return 0;
}
0575デフォルトの名無しさん
2010/07/06(火) 22:54:22[2] 問題文:このプログラムを拡張して、個人ごと平均点と科目ごとの平均点を小数点以下1桁まで
表示できるプログラムを作成せよ。
#include <stdio.h>
main()
{
int score[4][3]:
int total[4]:
int i , j ;
for (i = 0; i < 4; i++) {
total[i] = 0 ;
printf("No . %d\n" , i + 1);
for( j = 0 ; j < 3; j++) {
printf("score %d : " , j + 1) ;
scanf("%d", &score[i][j]);
total[i] += score[i][j];
}
}
printf("\n");
printf("No . | s1 s2 s3 | total\n");
printf("---+----------+------\n");
for ( i = 0; i < 4; i++) {
printf("%2d | " , i + 1) ;
for( j = 0; j < 3; j++) {
printf("%3d " , score[i][j]);
}
printf("| %4d\n" , total[i]) ;
}
}
0576デフォルトの名無しさん
2010/07/06(火) 22:56:36[3]環境
Windows、VC6.0、C
[4]期限
7月7日
[5]配列まで
よろしくお願いします。
0577デフォルトの名無しさん
2010/07/06(火) 23:36:32#include<stdio.h>
#include <limits.h>
int coinfunc(int *c, int k, int m)
{
int i, tmp, min = INT_MAX;
if (m == 0)
return 0;
else if (m < 0)
return -1;
for (i = 0; i < k; i++) {
tmp = coinfunc(c, k, m - c[i]);
if (tmp < 0)
continue;
else if (tmp < min)
min = tmp;
}
return min + 1;
}
int main(void)
{
int m, c[] = {1, 5, 8, 10, 15};
while (scanf("%d", &m) != 1)
scanf("%*[^\n]");
printf("%d\n", coinfunc(c, sizeof(c)/sizeof(*c), m));
return 0;
}
0578デフォルトの名無しさん
2010/07/06(火) 23:38:480579デフォルトの名無しさん
2010/07/06(火) 23:45:42じゃあ非再帰ならいいのかと思って試したら、100000000円くらいが限界だった(メモリ確保できず)
割り算で出来る貨幣制度にしろってこった
0580デフォルトの名無しさん
2010/07/06(火) 23:50:38>>577さんありがとうございます。
>>579さん、非再帰の場合のプログラムをのせてください。お願いします。
0581デフォルトの名無しさん
2010/07/06(火) 23:53:49http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10789.c
0582デフォルトの名無しさん
2010/07/06(火) 23:56:49基本は、一番高いコインで、埋めていき、最後(低額)だけ考慮する。
0583デフォルトの名無しさん
2010/07/06(火) 23:59:29最小公倍数を下回る所になったら、組み合わせを考慮する。
0584デフォルトの名無しさん
2010/07/07(水) 00:01:27ここで、第2問↓↓
今も上で議論されていますが、このプログラム(<<577)の効率の解析をしてください。
「ある重要な演算1つに注目し、その実行回数(最悪の入力時における)を、入力
サイズを表すパラメータの関数として表す。最終的にはT(n,...)=O(n^2×・・・)
のような評価式を求めてください。」できれば、その式を求める過程をお願いします。
0585デフォルトの名無しさん
2010/07/07(水) 00:06:30ええ、lisp 用として。
0586デフォルトの名無しさん
2010/07/07(水) 00:07:510587デフォルトの名無しさん
2010/07/07(水) 00:08:29確かにそれで大分削れそうだな
0588デフォルトの名無しさん
2010/07/07(水) 00:08:29分かる人これも頼みます
0589デフォルトの名無しさん
2010/07/07(水) 00:26:32#include<stdio.h>
#include<stdlib.h>
int gcd(int a, int b){ int c; while((c=a%b)) a=b, b=c; return b; }
int lcm(int a, int b){ return a/gcd(a, b)*b; }
void coin_func_r(int *result, int c[], int m, int n){
int i;
if(m<0 || c[0]<0 || (*result>0 && n>=*result)) return;
if(m==0){
if(*result<0 || *result>n) *result=n;
return;
}
for(i=0;c[i]>0;i++) coin_func_r(result, c+i, m-c[i], n+1);
}
int coin_func(int c[], int amount){
int i, lcm_all=1, result=-1, rest, c_max=1;
for(i=0;c[i]>0;i++){
lcm_all=lcm(lcm_all, c[i]);
if(c_max<c[i]) c_max=c[i];
}
rest=amount%lcm_all;
coin_func_r(&result, c, rest, 0);
return result+(amount-rest)/c_max;
}
int main(int argc, char *argv[]){
int c[]={15, 10, 8, 5, 1, -1}, x=100, result=-1;
if(argc==2) x=atoi(argv[1]);
result=coin_func(c, x);
printf("%d\n", result);
return 0;
}
0590デフォルトの名無しさん
2010/07/07(水) 00:36:26とてもいい感じだが、コインの最小公倍数の大きさに極めて依存
- int c[]={15, 10, 8, 5, 1, -1}, x=100, result=-1;
+ int c[]={777, 128, 100, 15, 10, 8, 5, 1, -1}, x=100, result=-1; // tekitou
として 100000をコマンドライン引数で与えると帰ってこねえ
最小公倍数よりも範囲を狭くする方法はありそうだけどなぁ
http://codepad.org/VmHF0iio
表示具合の微調整はお願いいたします。
0592デフォルトの名無しさん
2010/07/07(水) 00:40:32ありがとうございます!
本当に助かりました。
0593デフォルトの名無しさん
2010/07/07(水) 01:07:22ありがとうございました!
0594デフォルトの名無しさん
2010/07/07(水) 01:58:42そこでも述べられているがそれTC2
0595デフォルトの名無しさん
2010/07/07(水) 02:06:02[2]Q1. 問題文:4つの整数を入力し、それらを要素とする行列を求め、その値を以下のような
形式で表示するプログラムを作成せよ。
例 100 20 30 40と入力すれば
| 100 20 | =3400
| 30 40 | と表示される
Q.2ディスカウントストアでどの商品でも5個以上買えば1割引、10個以上で2割引、20個以上で
4割引となっていた。キーボードから買う商品の単価と個数を入力し、合計金額を計算するプログラミングを
作成せよ。
[3]環境
Windows、VC6.0、C
[4]期限
7月8日
[5]配列よりちょっと前
Q.1に関してはできそうだったのですが、バーが表示されないために却下となってまいました。
皆さんにとっては大変簡単だと思いますがよろしくお願いします。
初心者ですみません。
0596デフォルトの名無しさん
2010/07/07(水) 02:10:06ちがう。そういうことじゃない。ISO、ANSI準拠はプログラムの開始、主体となる関数を
mainとし、引数がある時と無い時でどう記述するか、標準スタイルを提唱している。
ただし、それはあくまでも 標準スタイル であり、各自の環境によって準拠しなくても構わない。
0597デフォルトの名無しさん
2010/07/07(水) 02:12:37自分はどうこうすると、根拠も無く意味も分からないスタイルを用いると
他者とコードをやり取りする場合は、弊害が起こるかもしれないが。
そもそも、ここでは個人的なやり取り、スタイルが通用するが
C言語は何も個人が私用で使うだけでなく、世界に通じて商業用としても
普通に用いられている。それは工業規格も同じ事。だから少しでも
幅広く通用するスタイル、規格というのが必要になる。
ちなみに、CDやDVDなどもISO準拠で世界で通用する方式、規格が使われている。
0598デフォルトの名無しさん
2010/07/07(水) 02:25:18あくまでも ANSI、ISO準拠の標準スタイルの話。個人的なスタイルには言及せず。
0599デフォルトの名無しさん
2010/07/07(水) 05:44:31最大のコインを選ぶか選ばないかのときだけやればいい。
777円が最大なら 777*2-1以上までは777円を選んでおいてokのはず。
一枚選べる最大価格は777*2-1円だからこの辺から調べる。
0600デフォルトの名無しさん
2010/07/07(水) 06:08:18297円 = 99*3円で100円を選ぶと失敗するから
599は間違えだな。
やっぱどのコインの倍数でもある最小公倍数がよさげか。
0601デフォルトの名無しさん
2010/07/07(水) 12:20:52>最終的には、低額の計算だけにできるだろ。
>基本は、一番高いコインで、埋めていき、最後(低額)だけ考慮する。
>>11を改造させてもらいました。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10790.c
0602デフォルトの名無しさん
2010/07/07(水) 13:24:29[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10791.txt
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
[3.3] 言語: C
[4] 期限: ([2010年07月10日22:00まで]
[5] その他の制限: よろしくおねがいします!
0603デフォルトの名無しさん
2010/07/07(水) 15:23:20[2] 問題文(含コード&リンク):
10人の成績を入力し、その順位を成績と共に表示したい。以下の考えに基づいたプログラムを作成せよ。
1. 2次元配列s[10][2]を用意する。
2. i=0〜9のfor文を用いて、s[i][0]に成績入力する。
3. s[0][0]とs[j][0], j=0〜9を比較し、s[0][0]より大きい数値の個数nを考える。
その個数+1が成績順位になるので、s[0][1]にn+1を代入する。
4. 同様の操作をs[i][0]にi=0〜9に対して行えば、その成績順位がs[i][1]として求められるので、
あとは成績と共に表示すればいい。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: (VC 6.0)
[3.3] 言語: C
[4] 期限: ([2010年07月9日15:00まで]
[5] その他の制限: 初心者で申し訳ないですが頼みます。
0605デフォルトの名無しさん
2010/07/07(水) 15:28:54おお同じ人がいたとはw
ありがとうございます!
0606デフォルトの名無しさん
2010/07/07(水) 17:49:16これC++用だからできなかったorz
0607デフォルトの名無しさん
2010/07/07(水) 18:00:51http://codepad.org/HReXj7Ky
0608デフォルトの名無しさん
2010/07/07(水) 18:15:29ありがとうございます。
感謝感謝です。
0609デフォルトの名無しさん
2010/07/07(水) 18:20:35暇ならでいいんでこれも頼みます
0610デフォルトの名無しさん
2010/07/07(水) 18:35:12Q2.
http://codepad.org/Nhl8WS7Q
0611デフォルトの名無しさん
2010/07/07(水) 18:42:57ありがとうございます。
0612デフォルトの名無しさん
2010/07/07(水) 19:14:20Q1
http://codepad.org/yXo3FhWm
0613デフォルトの名無しさん
2010/07/07(水) 19:26:52ありがとうございました。
プログラムをしっかり理解出来るようもっと知識を深めたいと思います!
0614デフォルトの名無しさん
2010/07/07(水) 19:29:25ありがとうございます!
助かりました。
0615デフォルトの名無しさん
2010/07/07(水) 20:57:40重くて開かないですね
0616デフォルトの名無しさん
2010/07/07(水) 21:24:390617デフォルトの名無しさん
2010/07/07(水) 21:58:050618デフォルトの名無しさん
2010/07/07(水) 22:39:34[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):
円形テンプレートマッチングのプログラムを作成せよ。
白い楕円が複数書いてあるBMP画像を読み込み(適当にペイントで作成)画像左下からラスタ走査し、円形テンプレートマッチングをするプログラムを作成せよ。
円形テンプレートはサイズA〜Bまで変化させ、一致率(円形テンプレートの円周上に一致する白画素と一致している数/円形テンプレート円周のプロット数、円形テンプレート内の黒画素に一致している黒画素数/円形テンプレート内の黒画素数)
上位5つを色を変えて描画せよ。
また、一致率上位5つの半径、一致率、座標(画像の左下をx=0、y=0とする)をdos窓上に標示せよ。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:VC
[3.3] 言語:C++
[4] 期限:2010年7月10日まで
[5] その他の制限:
よろしくお願いします
0619デフォルトの名無しさん
2010/07/07(水) 23:37:51[2] 問題文(含コード&リンク):
問題1. 10進数1234を2進数で表示するプログラムを作成せよ。
問題2. 変数の下位16ビット中の1のビット数を数える関数 int bit_count(int x) を作成せよ
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:Visual Stduio 2008
[3.3] 言語:C
[4] 期限:2010年7月9日まで
[5] その他の制限:無
よろしくお願いします
0620デフォルトの名無しさん
2010/07/07(水) 23:53:18int main()
{
int a, b, c, d;
scanf( "%d", &a );
scanf( "%d", &b );
scanf( "%d", &c );
scanf( "%d", &d );
int value= a*d - b*c;
printf( "| %d %d | =%d\n", a, b);
printf( "| %d %d |\n", c, d );
return 0;
}
エラー
z:\プログラミング演習\sample\sample\sample01c.c(12) : error C2143: 構文エラー : ';' が 'type' の前に必要です。
cl.exe の実行エラー
どこを直せば良いのですか?
0621デフォルトの名無しさん
2010/07/07(水) 23:54:42int main()
{
int unit_price; // 単価
int num; // 個数
printf( "買う商品の単価: " );
scanf( "%d", &unit_price );
printf( "個数: " );
scanf( "%d", &num );
int total_price = unit_price * num;
// 小数を使うと誤差がでるので使わない
if ( num >= 20 )
total_price = total_price*6/10;
else if ( num >= 10 )
total_price = total_price*8/10;
else if ( num >= 5 )
total_price = total_price*9/10;
printf( "合計金額: %d", total_price );
}
エラー
Z:\プログラミング演習\sample\ensyu8\ensyu8.c(14) : error C2143: 構文エラー : ';' が 'type' の前に必要です。
Z:\プログラミング演習\sample\ensyu8\ensyu8.c(18) : error C2065: 'total_price' : 定義されていない識別子です。
cl.exe の実行エラー
これもお願いします。
0622デフォルトの名無しさん
2010/07/07(水) 23:58:40変数の宣言場所をブロックの先頭に移動
0623デフォルトの名無しさん
2010/07/07(水) 23:59:05const int n = 10;
int main()
{
int i, j;
int s[n][2];
for (i = 0; i < n; i++) {
printf( "%d: ", i );
scanf( "%d", &s[i][0] );
}
for (i = 0; i < n; i++) {
s[i][1] = 0;
for (j = 0; j < n; j++) {
if (s[i][0] < s[j][0])
s[i][1]++;
}
s[i][1]++;
}
for (i = 0; i < n; i++)
printf( "s[%d]: %d\n", i, s[i][1] );
return 0;
}
/* end */
Z:\プログラミング演習\sample\sample33\ensyu33.c(7) : error C2057: 定数式が必要です。
Z:\プログラミング演習\sample\sample33\ensyu33.c(7) : error C2466: サイズが 0 の配列を割当てまたは宣言しようとしました。
Z:\プログラミング演習\sample\sample33\ensyu33.c(7) : error C2133: 's' : サイズが不明です。
cl.exe の実行エラー
すみませんこれも駄目でした。
お願いします。
0624デフォルトの名無しさん
2010/07/08(木) 00:01:53ありがとうございます。
しかし警告が出てしまいました。
Z:\プログラミング演習\sample\ensyu8\ensyu8.c(7) : warning C4700: 値が割り当てられていないローカルな変数 'unit_price' に対して参照が行われました。
Z:\プログラミング演習\sample\ensyu8\ensyu8.c(7) : warning C4700: 値が割り当てられていないローカルな変数 'num' に対して参照が行われました。
0625デフォルトの名無しさん
2010/07/08(木) 00:18:06int unit_price; // 単価
int num; // 個数
int total_price = unit_price * num;
0626デフォルトの名無しさん
2010/07/08(木) 00:19:39なってます。
初心者ですみません。
正しいやり方教えてください。
0627デフォルトの名無しさん
2010/07/08(木) 00:27:29int num; // 個数
int total_price;
printf( "買う商品の単価: " );
scanf( "%d", &unit_price );
printf( "個数: " );
scanf( "%d", &num );
total_price = unit_price * num;
0628デフォルトの名無しさん
2010/07/08(木) 00:30:08できました!
どうもありがとうございました。
0629デフォルトの名無しさん
2010/07/08(木) 00:34:44自己解決できました。
0630デフォルトの名無しさん
2010/07/08(木) 02:22:04[2] 問題文(含コード&リンク):
[3] 環境
[3.1] OS: (Windows)
[3.2] コンパイラ名とバージョン: (visual stadio 2008)
[3.3] 言語: (C)
[4] 期限: [2010年07月08日13:00まで]
[5] その他の制限:ほんの入門級なので、if,for,whileぐらいしか使えません
あと配列は禁止
概要:数値を1つ(2〜9の数字)入力し、その個数分の"*"を1辺とする
完成図(*=★、空白=☆):
3を入力した場合
★★★
☆☆★
★★★
9を入力した場合
★★★★★★★★★
☆☆☆☆☆☆☆☆★
★★★★★★★☆★
★☆☆☆☆☆★☆★
★☆★★★☆★☆★
★☆★☆☆☆★☆★
★☆★★★★★☆★
★☆☆☆☆☆☆☆★
★★★★★★★★★
ーーーーーーーーーーーーーーーー
自分の考え方で進んでみましたが、ifの条件式の部分が分からなくて
助力を求めます
0631デフォルトの名無しさん
2010/07/08(木) 07:27:39http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10793.c
奇数のみ出力できるモノで良ければ
0632デフォルトの名無しさん
2010/07/08(木) 10:01:13[2] 問題文(含コード&リンク):
下記のGPA計算のプログラムを読み込んだ数値を入れる配列を指すポインタを用いて書き換えよ.ただし,配列は1次元配列を用い,また関数を使う必要はない.
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10794.txt
[3] 環境
[3.1] Windows 7
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限:2010年7月10日迄
よろしくお願いします。
0633デフォルトの名無しさん
2010/07/08(木) 10:51:09void input(int sei[][N2], int n);
↓↓↓↓
void input(int (*sei)[N2], int n);
for(i=0; i<n; i++){
↓↓↓↓
int (*p)[N2];
for (p = sei; p < sei + n; p++) {
sei[i][2]= 0;
↓↓↓↓
(*p)[2]= 0;
0634デフォルトの名無しさん
2010/07/08(木) 11:18:09コインの種類(例えば、1円、5円、8円、10円、15円)に対して、金額を入力すると
その金額を払うのに最も枚数が少なくて済むコインの出し方を出力してくれる
プログラムを書こうと思っています。
例えば、23円と入力すると、「10円1枚・8円1枚・5円1枚の計3枚」と出力できるプログラムです。
ただし、「10円2枚・1円3枚の計5枚」は「最小」ではないため、上の出力を優先します。
そこで、下のようなプログラムを書いたのですが、合計枚数を出すまでしかできませんでした。
これを、それぞれのコインが何枚必要か出力するように書き換えてください!お願いします。
ソースコードは次の書き込みで。
0635デフォルトの名無しさん
2010/07/08(木) 11:19:16#include<limits.h>
int coinfunc(int *c, int k, int m)
{
int i, tmp, min = INT_MAX;
if (m == 0)
return 0;
else if (m < 0)
return -1;
for (i = 0; i < k; i++) {
tmp = coinfunc(c, k, m - c[i]);
if (tmp < 0)
continue;
else if (tmp < min)
min = tmp;
}
return min + 1;
}
int main(void)
{
int m, c[] = {1, 5, 8, 10, 15};
printf("m=?\n");
while (scanf("%d", &m) != 1)
scanf("%*[^\n]");
printf("%d\n", coinfunc(c, sizeof(c)/sizeof(*c), m));
return 0;
}
0636デフォルトの名無しさん
2010/07/08(木) 11:21:490637デフォルトの名無しさん
2010/07/08(木) 11:28:10すいません!!23円のときは15と8が最小ですね。。
0638デフォルトの名無しさん
2010/07/08(木) 11:57:17http://codepad.org/GanifMOO
0639デフォルトの名無しさん
2010/07/08(木) 12:01:390640デフォルトの名無しさん
2010/07/08(木) 12:17:4333円 -> 15円1枚、10円1枚、8円1枚 が最小。
0641デフォルトの名無しさん
2010/07/08(木) 12:26:462 #include<string.h>
3 typedef struct K{
4 char* name;
5 int tensuu;
6 }K;
7 int main(void)
8 {
9 FILE *fp;
10 char str[256];
11 char *p1,*p2;
12 int i,j,n;
13 double d,e,f;
14 int a[250];
15 char b[250][250];
16 int x;
17
18 if((fp=fopen("seiseki.txt","r"))==NULL){
19 printf("ファイルがありません\n");
20 return -1;
21 }else{
22 /*while(fgets(str,256,fp)!=NULL){
23 p1=strtok(str," ");
24 p2=strtok(NULL," ");
25 a.name=p1;
26 a.tensuu=atoi(p2);*/
27 i=0;
28 while(fscanf(fp,"%s %d",&b[i],&a[i])!=EOF){
29 i=i+1;
0642デフォルトの名無しさん
2010/07/08(木) 12:28:0831 n=i;
32 printf("----------入力データ------------\n");
33 for(i=0;i<n;i++){
34 printf("%s %d\n",b[i],a[i]);
35 }
36 for( j=0; j<n; j++){ /* 未処理データの先頭 */
37 for( i=1; i < n-j; i++){
38 if( a[i-1] < a[i] ){ /* 隣り合うデータの交換*/
39 x = a[i-1];
40 a[i-1] = a[i];
41 a[i] = x;
42
43 strcpy(str,b[i-1]);
44 strcpy(b[i-1],b[i]);
45 strcpy(b[i],str);
49 }
50 }
51 }
52
53 }
54 printf("----------出力データ------------\n");
55 for(i=0;i<n;i++){
56 printf("%s %d\n",b[i],a[i]);
57 }
58 fclose(fp);
59 return 1;
60 }
61
0643デフォルトの名無しさん
2010/07/08(木) 12:29:05switch 文を使用して
1. データファイルの新規作成
2. データファイルの追加作成
3. データファイルの読み込みと表示
4. 終了
をメニュー形式で処理するプログラムを作成せよ。
ファイル名はキーボードから入力する。
1〜4の処理はユーザ関数として定義すること。
void data_write(void)
void data_append(void)
void data_read(void)
void the_end(void)
1〜4以外の数値が入力されたら再入力させること。
switch 文については教科書 56 ページを参照すること。
0644デフォルトの名無しさん
2010/07/08(木) 12:31:22********** 成績処理 ********* ← メニューの表示
ファイルの新規作成・・・・・1
ファイルの追加作成・・・・・2
ファイルの読み込みと表示・・3
終了・・・・・・・・・・・・4
← データ入力の誤り
処理番号を入力して下さい(1〜4):9
********** 成績処理 *********
ファイルの新規作成・・・・・1
ファイルの追加作成・・・・・2
ファイルの読み込みと表示・・3
終了・・・・・・・・・・・・4
処理番号を入力して下さい(1〜4):1
← ファイル名の入力
Input file name= abc.txt
name=?oota
tensuu=?10
oota 10
name=?yamada
tensuu=?50
yamada 50
name=? ← 入力の終了 Ctrl + D
0645デフォルトの名無しさん
2010/07/08(木) 12:33:27********** 成績処理 *********
ファイルの新規作成・・・・・1
ファイルの追加作成・・・・・2
ファイルの読み込みと表示・・3
終了・・・・・・・・・・・・4
処理番号を入力して下さい(1〜4):2
name=?isida
tensuu=?90
isida 90
name=?torii
tensuu=?70
torii 70
name=? ← 入力の終了 Ctrl + D
3. 読み込みと表示の実行例
********** 成績処理 *********
ファイルの新規作成・・・・・1
ファイルの追加作成・・・・・2
ファイルの読み込みと表示・・3
終了・・・・・・・・・・・・4
処理番号を入力して下さい(1〜4):3
Input file name= abc.txt
oota 10
yamada 50
isida 90
torii 70
0646デフォルトの名無しさん
2010/07/08(木) 18:25:35ありがとうございます。助かりました。
0647デフォルトの名無しさん
2010/07/08(木) 18:25:53>>1
0648デフォルトの名無しさん
2010/07/08(木) 18:29:13[2] 問題文(含コード&リンク):
2〜9の数字を入力その数字に応じて図形を表示させる関数を作る
正方形 三角形 六角形 菱形 星 渦巻き
星と渦巻き以外できたからこの2つについて知りたい
例 7を入力したとき 左:渦 右:星
******* * * *
* * * *
***** * ***
* * * *******
* *** * ***
* * * * *
******* * * *
[3] 環境
[3.1] OS: Windows7
[3.2] コンパイラ名とバージョン: よくわからない 申し訳ないVS2008使ってる
[3.3] 言語: C
[4] 期限: 2010年7月13日
[5] その他の制限: 配列は禁止
0649デフォルトの名無しさん
2010/07/08(木) 18:44:06ほー。配列は禁止。
printf("******* * * * \n");
printf(" * * * * \n");
printf("***** * *** \n");
printf("* * * ******* \n");
printf("* *** * *** \n");
printf("* * * * * \n");
printf("******* * * * \n");
は禁止?
0650デフォルトの名無しさん
2010/07/08(木) 18:51:340651デフォルトの名無しさん
2010/07/08(木) 19:11:07渦巻きの偶数パターンが分かればコードが書けるんだが
0652デフォルトの名無しさん
2010/07/08(木) 22:56:04ってさ、たとえば 36 のときみたいに解が複数あるときはどうすんの?
15,15,5,1 の4枚と、10,10,8,8 の4枚。
0653デフォルトの名無しさん
2010/07/08(木) 23:06:15ありがとうございます
助かりました
0654デフォルトの名無しさん
2010/07/08(木) 23:20:25いえいえ
0655デフォルトの名無しさん
2010/07/08(木) 23:32:53[2] 問題文(含コード&リンク):
以下の仕様に従って,分数の四則演算を行うプログラムを作成せよ。
[仕様1] 以下のような構造体を定義し,分数のデータ構造に利用すること。
struct fraction{
int parent; /* 分母(denominator) */
int child; /* 分子(numerator) */
};
[仕様2] 以下の実行結果となるようなプログラムを作成せよ。
プログラムの実行結果↓
1つ目の分数を入力して下さい。
3/4 ←キーボードより入力
2つ目の分数を入力して下さい。
1/4 ←キーボードより入力
演算方法(1.加算,2.減算,3.乗算,4.除算)を入力して下さい。
2 ←キーボードより入力
3/4 - 1/4 = 1/2
計算結果は約分をして表示
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C言語
[4] 期限: 7月9日
[5] その他の制限:ポインタ変数、データ構造まで習いました
よろしくお願いします
0656デフォルトの名無しさん
2010/07/08(木) 23:41:48特に指示はないからこっちに任せただと思う
だから左上からスタートで
********
*
****** *
* * *
* * * *
* **** *
* *
********
>>649
ifかswitchでそれをつくろうかと思ったがさすがにふざけてると思われそうなのでやめた
0657デフォルトの名無しさん
2010/07/08(木) 23:51:27日本語でおk。偶数パターンを出力してからものを言え
0658デフォルトの名無しさん
2010/07/09(金) 00:02:35すまなかった 6 4 2の順で
******
*
**** *
* * *
* *
******
****
*
* *
****
2は正方形でも右の形でもどっちでもいい
** **
** *
0659デフォルトの名無しさん
2010/07/09(金) 00:34:07[2] 問題文(含コード&リンク):
http://yonex1.cis.ibaraki.ac.jp/~yonekura/Socket-base/Sock-prog9.html
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc 4.3.4
[3.3] 言語:C
[4] 期限:2010年7月11日
[5] その他の制限:
よろしくお願いします。
0660デフォルトの名無しさん
2010/07/09(金) 01:28:45分かり易ければOKです!
static int coin[] = {1, 5, 8, 10, 15};
int main(void){
int *nr, *hist, money, c, n, new;
printf("input money : ");
while (scanf("%d", &money) != 1) {
scanf("%*[^\n]");
printf("input money again : "); }
scanf("%*[^\n]");
nr = (int *)malloc((money + 1)*sizeof(*nr));
if (nr == 0) {
perror("calloc");
return 1; }
hist = (int *)calloc(money + 1, sizeof(*hist));
if (hist == NULL) {
perror("calloc");
goto err; }
for (n = 0; n <= money; n++)
nr[n] = n;
for (c = 0; c < sizeof(coin)/sizeof(*coin); c++)
for (n = coin[c]; n <= money; n++) {
new = nr[n - coin[c]] + 1;
if (new < nr[n]) { nr[n] = new; hist[n] = c;}
}
printf("total number : %d\n", nr[money]);
printf("coins : ");
for (n = money; n > 0; n -= coin[hist[n]])
printf("%d ", coin[hist[n]]); printf("\n");
free(nr); free(hist); return 0; err:
free(nr); return 1; }
0661デフォルトの名無しさん
2010/07/09(金) 02:34:47> 2〜9の数字を入力
2はどうなのよ、2の時は?
0662デフォルトの名無しさん
2010/07/09(金) 04:46:590663デフォルトの名無しさん
2010/07/09(金) 07:59:57http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10795.txt
0664デフォルトの名無しさん
2010/07/09(金) 16:09:48星は正方形で
渦巻きは>>658でおねがいします
0665デフォルトの名無しさん
2010/07/09(金) 20:03:150666デフォルトの名無しさん
2010/07/09(金) 20:21:22↑便利だ。
コンパイルまでしてくれる必要は無いんだけど、
もっと色々な言語(Pascalとかverilogとか)貼り付けて、
整形して表示してくれるアプローダ無いかな?
0667デフォルトの名無しさん
2010/07/09(金) 20:26:180668デフォルトの名無しさん
2010/07/09(金) 20:40:12ありがとう。これでいいです。
こんなんとかPascal似の言語とか貼り付けたかったのです。
http://ideone.com/zrjGj
http://ideone.com/ffzm5
正解は、
transform(radians.begin(), radians.end(), sines.begin(), (double (*)(double))sin);
0670デフォルトの名無しさん
2010/07/09(金) 22:41:131
2
3!?
(中略)
13!?
14
15!?
16
17
18!?
こんなプログラムはどうやって書くんですか?
0671デフォルトの名無しさん
2010/07/09(金) 22:48:400672デフォルトの名無しさん
2010/07/09(金) 22:49:53次は>>1を読もう。
0673デフォルトの名無しさん
2010/07/09(金) 22:57:56[2] 問題文(含コード&リンク):3の付く数字と3の倍数の時にアホになりなさい。
[3] 環境
[3.1] OS: (Windows/Linux/等々)windows
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)Borland C++ 5.5.1
[3.3] 言語: (C/C++/どちらでも可 のいずれか) C
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) 20日(火)
0674デフォルトの名無しさん
2010/07/09(金) 23:19:04http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10796.txt
0675デフォルトの名無しさん
2010/07/09(金) 23:27:09こうすれば文字列操作が不要になるんでは。
int isAho(int n)
{
if (n % 3 == 0) return 1;
while (n)
{
if (n % 10 == 3) return 1;
n /= 10;
}
}
0676デフォルトの名無しさん
2010/07/09(金) 23:28:12最後にreturn 0;するの忘れてた。
0677デフォルトの名無しさん
2010/07/09(金) 23:45:550678デフォルトの名無しさん
2010/07/10(土) 00:17:05[2] 問題文(含コード&リンク):
以下の機能を持つプログラムを作ること。
-1から100の数字の中から素数を抽出する (配列に直接数字を指定することは不
可)
-抽出した素数を大きい順(降順)にソートする
-ソートした素数を1行につき5個表示する(6個目以降は次の行に表示する)
但し、以下の4つの機能を使ったプログラムにすること。
-サブ関数
-配列
-if文
-for文
以下の点に関して工夫をした場合は加点の対象とする
-素数の計算時間の低減
-見つけた素数の数のカウント
-ソートのアルゴリズム高速化
-実行時間の表示
作成したプログラムの特徴を提出時のコメントに記入すること
(素数の見つけ方、ソートの仕方、表示方法での工夫など)
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2010/07/23
初心者ですがよろしくお願いします。
0679デフォルトの名無しさん
2010/07/10(土) 02:06:24http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10797.c
0680名無しさん@そうだ選挙に行こう
2010/07/10(土) 09:13:450681618
2010/07/10(土) 09:33:45よろしくおねがいします
0682名無しさん@そうだ選挙に行こう
2010/07/10(土) 10:10:43該当する関数をこれに置き換えると早くなる
int coin_func_r(int result[], int c[], int m, int n){
int i, num;
if(m<0 || result[m]==0) return -1;
if(result[m]>0) return result[m];
for(i=0;c[i]>0;i++){
num=coin_func_r(result, c, m-c[i], n+1);
if(num>0 && (result[m]<0 || result[m]>num+1)) result[m]=num+1;
}
if(result[m]<0) result[m]=0;
return result[m];
}
int coin_func(int c[], int amount){
int i, lcm_all=1, rest, c_max=1, *result, ret;
for(i=0;c[i]>0;i++){
lcm_all=lcm(lcm_all, c[i]);
if(c_max<c[i]) c_max=c[i];
}
result=calloc(lcm_all, sizeof(int));
for(i=0;i<lcm_all;i++) result[i]=-1;
for(i=0;c[i]>0;i++) result[c[i]]=1;
rest=amount%lcm_all;
coin_func_r(result, c, rest, 0);
ret=result[rest]+(amount-rest)/c_max;
free(result);
return ret;
}
0683名無しさん@そうだ選挙に行こう
2010/07/10(土) 10:24:32ありがとうございます!
0684名無しさん@そうだ選挙に行こう
2010/07/10(土) 10:28:20[2] 問題文(含コード&リンク):
二つのint型整数の小さい方の値を返す関数
int i_minof(int x, int y){ /* ... */}
を作成せよ。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2010年7月12日まで
よろしくお願いします。
0685名無しさん@そうだ選挙に行こう
2010/07/10(土) 10:40:05[2] 問題文(含コード&リンク):
下に示すように、整数値を読み込んで、その値を0までカウントダウン
しながら表示するプログラムを作成せよ。なお、負の値を読み込んだ時は
何も表示しない(改行も表示せず終了する)ようにせよ。
=====
整数を入力してください:9
9 8 7 6 5 4 3 2 1 0
=====
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2010年7月12日まで
よろしくお願いします。
0686名無しさん@そうだ選挙に行こう
2010/07/10(土) 10:41:38int i_minof(int x, int y){ return rand()&1?x:y; }
0687名無しさん@そうだ選挙に行こう
2010/07/10(土) 11:41:06[1] 授業単元:C言語入門
[2] 問題文(含コード&リンク):
二つのint型整数の小さい方の値を返す関数
int i_minof(int x, int y){ /* ... */}
を作成せよ。
=====
二つの整数を入力してください。
整数1:49
整数2:92
小さい方の値は17です。
=====
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2010年7月12日まで
よろしくお願いします。
0688名無しさん@そうだ選挙に行こう
2010/07/10(土) 11:42:32×小さい方の値は17です。
○小さいほうの値は49です。
何度も訂正すいません。
0689名無しさん@そうだ選挙に行こう
2010/07/10(土) 12:21:49int i_minof(int x, int y){
if(x<y){
return x;
}
else{
return y;
}
}
0690689
2010/07/10(土) 12:24:03条件演算子を使えばもっと簡単になる
参考
ttp://www5c.biglobe.ne.jp/~ecb/c/05_08.html
0691名無しさん@そうだ選挙に行こう
2010/07/10(土) 14:55:54http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10798.txt
0692名無しさん@そうだ選挙に行こう
2010/07/10(土) 17:55:41ありがとうございます。
0693名無しさん@そうだ選挙に行こう
2010/07/10(土) 18:01:33[1] 授業単元:プログラミングC
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10799.txt
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限:[無期限]
お願いします。
0694名無しさん@そうだ選挙に行こう
2010/07/10(土) 23:01:52[2] 問題文(含コード&リンク):
バイナリ形式で保存されたWindows Bitmap形式の画像ファイルを読み込み、3つの色成分(Blue, Green, Red)に分離し、
それぞれを異なるファイルに保存するプログラムを実装しなさい。
プログラム中でやることは以下のことである。
1.ヘッダ部分を適切に読み込む
2.読み込んだヘッダ部分(ファイルヘッダ、情報ヘッダ)を用いて、適切なバイト数(画素数×1画素あたりのバイト数)を読んでくる。
3.分離したい色成分以外を0に書き換え、ヘッダ部分と色情報をファイルに書き込む。
ただし、以下のような構造体を使用する。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10800.txt
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2010年7月12日
[5] その他の制限:特にありません。よろしくお願いします。
0695名無しさん@そうだ選挙に行こう
2010/07/11(日) 02:36:180696名無しさん@そうだ選挙に行こう
2010/07/11(日) 10:40:06[1] 授業単元:Visual C++ でのプログラミング演習
[2] 問題文(含コード&リンク):課題4.3.bをお願いします。http://www.dotup.org/uploda/www.dotup.org1020755.jpg
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:Visual C++ 200
[3.3] 言語:C++
[4] 期限:[無期限]
0697名無しさん@そうだ選挙に行こう
2010/07/11(日) 11:07:13http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10801.txt
動作例から推測するに、恐らく最小の整数ではなく最小の自然数を出力するのだろう。
(1+1/n)^n は n>0 で単調減少だから、二分探索で解を求める。
0698697
2010/07/11(日) 11:12:360699名無しさん@そうだ選挙に行こう
2010/07/11(日) 11:14:30> #include <stdio.h>
ん〜〜〜
0700名無しさん@そうだ選挙に行こう
2010/07/11(日) 11:26:33C言語でかいた
#include<stdio.h>
#include<math.h>
int main(void){
int n = 0;
double fn;
while((fn=pow(1+1.0/n, n))<=2.71 || 2.72<=fn) n++;
printf("n = %d\n", n);
return (0);
}
0701名無しさん@そうだ選挙に行こう
2010/07/11(日) 11:41:330702名無しさん@そうだ選挙に行こう
2010/07/11(日) 11:53:54>>700 さま
有難うございました。無事解決できました。
また質問で申し訳ないのですが
while((fn=pow(1+1.0/n, n))<=2.71 || 2.72<=fn) n++;
↓
while((fn=pow((double)(1+1/n), n))<=2.71 || 2.72<=fn) n++;
のようにdouble型にキャストをすると実行中にエラーが出るのですが何故でしょうか?
0704名無しさん@そうだ選挙に行こう
2010/07/11(日) 11:59:42n>=2 のとき
(double)(1+1/n)
は常に 1.0 になってしまうぞ
0705名無しさん@そうだ選挙に行こう
2010/07/11(日) 12:11:50n=0→1でエラーはでなくなりました!
>>704
Googleさんで調べても分からなかったのですが
キャストするとなぜだめ(1.0になる)なのでしょうか・・・?
0706名無しさん@そうだ選挙に行こう
2010/07/11(日) 12:13:470707名無しさん@そうだ選挙に行こう
2010/07/11(日) 12:33:26割り算は整数だけではだめなのですね・・・。
最初から最後までご教授いただきありがとうございました。
#include <stdio.h>
double a = (double)1/2;
double b = 1/(double)3;
double c = 1/4;
printf("%f\n%f\n%f\n",a,b,c);
実行結果
0.500000
0.333333
0.000000
0708名無しさん@そうだ選挙に行こう
2010/07/11(日) 16:02:06明日の1限までに仕上げなければならないので、大至急お願いします!
下のところまでは書けたのですが、???のところがわかりません。
定数を掛けるというところまでは想像出来るのですが、何を掛けたらいいのか全然想像付きません。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
double to_cm(double in)
{
return in * ???;
}
int main(int argc, char *argv[])
{
double in;
char str[32];
if (argc > 1)
{
strncpy(str, argv[1], 31);
}
else
{
printf("input inch: ");
fgets(str, 31, stdin);
}
in = atof(str);
printf("%f [in] = %f [cm].\n", in, to_cm(in));
return 0;
}
return in * 2.56
あと、
fgets(str, 31, stdin);
は
fgets(str, 32, stdin);
でいい。
0710名無しさん@そうだ選挙に行こう
2010/07/11(日) 16:07:24出来ましたああああ!!!!!!!!111
先週出た課題でずっと悩んでたんですがこれで提出できそうです!
あとプログラムの問題点まで指摘してくださってありがとうございました。
それから、次からはちゃんとテンプレを守ります。すみませんでした。
0712名無しさん@そうだ選挙に行こう
2010/07/11(日) 16:43:25これ豆知識な。マイルの計算もしっかり出来ないと、参るぜ?
0713名無しさん@そうだ選挙に行こう
2010/07/11(日) 16:45:13( ・∀・)彡 パーン!
((⊂彡☆∩ _, ,_
⊂(⌒⌒(;`Д´)
`ヽ_つ ⊂ノ ←>>712
0714名無しさん@そうだ選挙に行こう
2010/07/11(日) 16:50:16まぁそうフィートアップするなよ
0715名無しさん@そうだ選挙に行こう
2010/07/11(日) 17:11:59∧_∧ ∩
( ・∀・)彡☆
⊂彡☆))Д´) >>714
☆
0716名無しさん@そうだ選挙に行こう
2010/07/11(日) 18:26:12[2] 問題文(含コード&リンク): http://imepita.jp/20100711/659870
画像のプログラムを下のEOFを探して処理を行う方法に書き換えてプログラムを実行せよ
また、input.dataの中身を10行未満にしても正常に動く事を確かめてみよ。
int counter=0;
while (!input_file.eof()){
input_file>>data[counter];
counter++
}
for(i=0;i<counter;i++)
output_file << data[i]*2 << '\n';
[3] 環境
[3.1] OS: linux
[3.3] 言語: C++
[4] 期限: ([2010年7月11日22時まで]
[5] その他の制限:
なるべく簡単にしてください。お願いします。
0717名無しさん@そうだ選挙に行こう
2010/07/11(日) 18:29:40[2] 問題文(含コード&リンク): http://imepita.jp/20100711/660110
画像のプログラムの九九表を以下の様に書き換えよ
1 画面に表示してた部分(coutの部分)をファイルに書き出す様にする
2 一番目のcoutにある''を','に変更する
3 出力ファイル名を"output.csv"とする。
この九九表が入っているファイルをExcelで読み込んで、九九表を見ることができるか確かめてみよ
[3] 環境
[3.1] OS: linux
[3.3] 言語: C++
[4] 期限: ([2010年7月11日22時まで]
[5] その他の制限:
なるべく簡単にしてください。お願いします。
0718名無しさん@そうだ選挙に行こう
2010/07/11(日) 19:19:51http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10802.c
0719名無しさん@そうだ選挙に行こう
2010/07/11(日) 22:01:05http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10803.txt
0720名無しさん@そうだ選挙に行こう
2010/07/11(日) 22:46:43[2] 課題文:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10804.txt
[3] 環境:指定無し 言語C(なるべく)
[4] 9/1迄(夏期課題)
[5]意味がよくわからないので丸投げします
0721名無しさん@そうだ選挙に行こう
2010/07/11(日) 23:08:44ありがとうございます。でも、このプログラムをコンパイルしても、
続行するには何かキーを押してください
で終わってしまいます
0722名無しさん@そうだ選挙に行こう
2010/07/11(日) 23:13:01実行ファイルと同じところに、なにか新しいcsv ファイルが作成されていませんか?
0723名無しさん@そうだ選挙に行こう
2010/07/11(日) 23:15:400724名無しさん@そうだ選挙に行こう
2010/07/11(日) 23:20:590725名無しさん@そうだ選挙に行こう
2010/07/11(日) 23:25:41判じ物の問題は、「プログラム基礎」とか「暗号理論」という単元名とは全然違うのでは。
0726デフォルトの名無しさん
2010/07/11(日) 23:37:13プログラムのコンパイルした時にExcelを開いておけばいいって事ですか
0727名無しさん@もう選挙は終わってるんで
2010/07/11(日) 23:37:20それいうなら結局誰も答えなかったみたいだけど
>>234とかがある意味最もC言語の宿題っぽいw(けど学校の宿題としては
やはり不適なんだろなw)
0728デフォルトの名無しさん
2010/07/12(月) 00:04:27実行ファイルと同じところに、Excelで保存したものがはいっているんですが、もしかしてそれですか
0729デフォルトの名無しさん
2010/07/12(月) 00:14:160730デフォルトの名無しさん
2010/07/12(月) 01:27:34亀レスですみません
ありがとうございました
単に指示通りにプログラムを入力しただけです。
http://codepad.org/73sQ9rsX
0732デフォルトの名無しさん
2010/07/12(月) 02:58:38何が言いたいのかさっぱり分からんが、プログラムを動かしている電子機器の
基本的な仕組みも知らないでコードを書くとか・・・どれも基本は同じだし。
IFや数値を扱うにしても、もう既に実装されているコンピュータの仕組みが
大きく関与しているし。
0733デフォルトの名無しさん
2010/07/12(月) 03:01:15>>20 >>720 のような出題を批判しているだけです。
0734デフォルトの名無しさん
2010/07/12(月) 03:02:17っつか、学んだ内容が分かればヒントが得られるかもしれないが・・・
法則が分からん。511までで何か数字を弄れば気づくかもしれんが。
0735デフォルトの名無しさん
2010/07/12(月) 06:29:39ソートの条件はさっぱりだが。
0736デフォルトの名無しさん
2010/07/12(月) 07:07:430737デフォルトの名無しさん
2010/07/12(月) 08:16:550738デフォルトの名無しさん
2010/07/12(月) 10:12:44システムプログラミング(アプリケーション実装)
マネジメント(ネットワーク構築 etc)
開発(OS,言語、処理系、ライブラリの整備)
教育(カルチャーの紹介)
....まだあるかも
ことコンピュータの世界(実世界に非ず)の教育を
単一言語で行うことには相当無理があるよな
0739デフォルトの名無しさん
2010/07/12(月) 10:34:430740デフォルトの名無しさん
2010/07/12(月) 11:02:57言語は無いな
0741デフォルトの名無しさん
2010/07/12(月) 11:03:01簡単に使えるという意図なんだろう
0742デフォルトの名無しさん
2010/07/12(月) 11:05:00初めてのCもしてこい、なっ!
0743デフォルトの名無しさん
2010/07/12(月) 11:21:10当たり前だろwww
0744デフォルトの名無しさん
2010/07/12(月) 11:34:36Cが他の言語に対して圧倒的に強いのは
開発
だろな
教育できるような世界じゃないだろうけど
0745デフォルトの名無しさん
2010/07/12(月) 11:37:420746デフォルトの名無しさん
2010/07/12(月) 11:40:07言語設計が優れてるか否かというよりも(まぁ優れてはいるんだろうが)、
みんなが使って、長い間使ったから、デカイ顔できるし信頼も置ける。
0747デフォルトの名無しさん
2010/07/12(月) 12:54:061 になっている bit の数を x とすると
x に対して昇順にするのが大前提
x%3==0 のとき数値で昇順
x%3==1 のとき数値で降順
x%3==2 のときが分からない
数値を昇順にソートし大きい方から使う
x=2 の場合だと逆順に見て
8 ? 7 ? 6 ? 5 ? 4 ? 3 ? 2 ? 1
こんな感じ
x=5 の場合だと逆順に見て
5 ? 4 ? 3 ? 2 ? 1 ? ? ? 4 ? 3 ? 2 ? 1 ? ? ? 3 ? 2 ? 1 ? ? ? 2 ? 1 ? ? ? 1 ? ? ?
こんな感じ
0748デフォルトの名無しさん
2010/07/12(月) 13:18:12#include<stdio.h>
#include<stdlib.h>
int bit_count(int value){
int ret=0;
while(value>0){
ret+=value&1;
value>>=1;
}
return ret;
}
int num_cmp(const int *a, const int *b){
int a_bits, b_bits, ret=0;
a_bits=bit_count(*a);
b_bits=bit_count(*b);
if(a_bits<b_bits) return -1;
if(a_bits>b_bits) return 1;
if(*a<*b) ret=-1;
if(*a>*b) ret=1;
if(a_bits%3==1) ret=-ret;
return ret;
}
int main(void){
int num[4096], i;
for(i=0;i<4096;i++) num[i]=i;
qsort(num, 4096, sizeof(int), num_cmp);
for(i=0;i<4096;i++){
if(bit_count(num[i])%3!=2) printf("%d:%d\n", i, num[i]);
else printf("%d:???\n", i); // よく分からないので数値を出力しない
}
return 0;
}
0749デフォルトの名無しさん
2010/07/12(月) 13:40:45乱数を使って計算機とじゃんけんをするゲームを作成せよ。
人間の入力はグーは0、チョ基は1、パーは2とし、勝ち、負け、引き分けの判定をすること。
乱数の初期設定のために srand((unsigned int)time(NULL)); を使うこと。
2
1を改良して0,1,2以外の値が入力されるまで繰り返し勝負を続けるものを作成せよ。
よろしくお願いします。
0750デフォルトの名無しさん
2010/07/12(月) 17:20:04http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10806.txt
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10807.txt
0751デフォルトの名無しさん
2010/07/12(月) 18:47:31[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10808.txt
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名:gcc
[3.3] 言語:C
[4] 期限:7月14日まで
[5] その他の制限:
お手数をおかけしますが、よろしくお願いします。
0752デフォルトの名無しさん
2010/07/12(月) 18:53:30i = left - 1; //(1)________
j = right + 1; //(2)________
0753デフォルトの名無しさん
2010/07/12(月) 18:57:22return a->height - b->height; // (1)______ /*高さで比較*/
qsort(a, N, sizeof(person_t), (int (*)(const void *, const void *))compare); // (2)___________________________);
0754デフォルトの名無しさん
2010/07/12(月) 19:29:58内容:
[1] 授業単元: プログラミング開発基礎
[2] 問題文 複数あるのでこちらで
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10809.txt
[3.1] OS:(Windows
[3.2] VC 6.0
[3.3] 言語:C
[4] 期限:なし
[5] 制限:なし
毎週毎週申し訳ありませんがよろしくお願いします
0755デフォルトの名無しさん
2010/07/12(月) 19:50:19[2] 問題文(含コード&リンク): 任意のサンプル値(2のべき乗)を入力し、計算結果を出力する2次元FFTのプログラムを作成せよ。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: Visual Studio2008
[3.3] 言語: どちらでも可
[4] 期限: 7月17日まで
http://www.kurims.kyoto-u.ac.jp/~ooura/fftman/index.html
FFT、二次元FFTに関しては、上記のサイトの1.2、3.1を参考にしていたのですが、
入出力表示の仕方などが良く分からなかったので、よろしくお願いします。
0756デフォルトの名無しさん
2010/07/12(月) 19:53:35[2] 問題文(含コード&リンク):
問題文+自分で作った部分は以下のファイルに
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10810.txt
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: bcc
[3.3] 言語: C
[4] 期限: 2010年7月12日 24時
0757デフォルトの名無しさん
2010/07/12(月) 21:14:47http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10811.txt
0758デフォルトの名無しさん
2010/07/12(月) 21:35:17[2] 問題文(含コード&リンク):53!を正確に計算して出力するjavaプログラムを作成せよ。ここでは1桁
分の数を記憶するオブジェクトを多数作りそれらの協調で計算を進めること。
[3] 環境
[3.1] OS: unix
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: c
[4] 期限: 7月13日
よろしくおねがいします
0759デフォルトの名無しさん
2010/07/12(月) 21:37:27ちょっと何を言っているのかわからない
0760デフォルトの名無しさん
2010/07/12(月) 21:53:46[2] 問題文(含コード&リンク):3+6+9+12+・・・+n≧100の成立する最小のnの値と
nがその値をとる場合の左辺の値(3〜nまでの和)を
求めて表示するプログラムをdo-while文を使って作成せよ。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ:gcc
[3.3] 言語:C言語
[4] 期限:2010年07月13日17:00まで
[5] その他の制限:問題文中にある制限以外に制限はありません。
どうかよろしくお願いします
0761デフォルトの名無しさん
2010/07/12(月) 22:00:27http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10812.txt
0762デフォルトの名無しさん
2010/07/12(月) 22:02:40[2] 問題文(含コード&リンク):53!を正確に計算して出力するjavaプログラムを作成せよ。1桁
分の数を記憶するオブジェクトを多数作り計算するプログラムにすること。
[3] 環境
[3.1] OS: unix
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: c
[4] 期限: 7月13日
よろしくおねがいします
0763デフォルトの名無しさん
2010/07/12(月) 22:05:400764デフォルトの名無しさん
2010/07/12(月) 22:08:49ありがとうございます
助かりました
0765デフォルトの名無しさん
2010/07/12(月) 22:11:120766デフォルトの名無しさん
2010/07/12(月) 22:14:10http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10813.txt
0767デフォルトの名無しさん
2010/07/12(月) 22:14:16>>762
C なのか JAVA なのか?
0768デフォルトの名無しさん
2010/07/12(月) 22:19:49問題文だけ読むとjava
環境だけを見るとcっぽい
あくまで推測ですが・・・
0770デフォルトの名無しさん
2010/07/12(月) 23:18:180771デフォルトの名無しさん
2010/07/12(月) 23:52:39http://codepad.org/rW111uZW
http://codepad.org/xqiSFBEr
コマンドライン第一引数に対象となる bmp ファイルを指定すると、r.bmp, g.bmp, b.bmp を出力します。
24bit bmp ファイルにしか対応していません。そのほかのタイプの bmp ファイルに対応する必要があれば、ご連絡ください。
0773デフォルトの名無しさん
2010/07/13(火) 02:02:59素人麻呂相手に必死にに噛み付いていたあいつはどこへ行ったんだろうか?
0774デフォルトの名無しさん
2010/07/13(火) 02:19:51そのより汎用的なソースとやらを教えてくださいな。
0775デフォルトの名無しさん
2010/07/13(火) 02:24:58戻り値の話をしちゃったおバカさんw
0776 ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄
2010/07/13(火) 02:35:36レ'"~,-,、 ! ! ' '" ̄ .ノ\ヾ:、
K/ー'~^~_/ ヽミ:ー‐‐'" ヽ i
!〉ー―'"( o ⊂! ' ヽ ∪ Y」_
i ∪ ,.:::二二ニ:::.、. l 、...
! :r'エ┴┴'ーダ ∪ ! !l
.i、 . ヾ=、__./ ト=.
ヽ 、∪ ― .ノ .,!
0777デフォルトの名無しさん
2010/07/13(火) 02:36:43コテつけろよ>>775
0778デフォルトの名無しさん
2010/07/13(火) 02:45:16[1] 授業単元:画像処理プログラミング
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10814.zip
画像を8×8 画素のブロックに分割します。各ブロック毎に平均値を求めます。
※average という関数を作ってブロック内の平均値を求めても良いでしょう。
ブロック内の画素すべての輝度値を平均値で置き換えます。どのような画像が得られますか?
8×8画素のブロックサイズでモザイク処理を行うプログラムと、モザイク処理後の画像を提出しなさい。
[3] 環境
[3-1] OS:Windows
[3-2] VC 2008
[3-3] 言語:C言語
[4] 期限: 7/13 13時がリミット
[5] その他の制限: getPixelは使わない方法で現状のコードを変更した程度で完成できればベストです。
0779デフォルトの名無しさん
2010/07/13(火) 04:14:260780デフォルトの名無しさん
2010/07/13(火) 05:39:44ありがとうございます。
0781デフォルトの名無しさん
2010/07/13(火) 08:53:35[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10816.txt
いっぱいあります。
[3] 環境
[3-1] OS:Windows
[3-2] VC 2008
[3-3] 言語:C言語
[4] 期限: 7/20
お願いします。
0782デフォルトの名無しさん
2010/07/13(火) 09:08:530783デフォルトの名無しさん
2010/07/13(火) 09:51:05B=13*・・・*111
とおくと、
与式は
A*11*B
と書ける。
これは 11 で割り切れる。
つまり、題意の剰余は 0 。
0784デフォルトの名無しさん
2010/07/13(火) 11:32:47[2] 問題文(含コード&リンク):
以下の機能を含む整数版秀丸エディタ用のDLLを作成せよ。
・返り値がint型で、パラメータ(整数)を渡すと、「整数*5」の結果を返す。
・返り値がchar型で、パラメータ(文字列)を渡すと、文字列の先頭にHello!!を付けた「Hello!!+文字列」の結果を返す。
以下のサイトも参考にする事。
http://homepage3.nifty.com/kons/hidemaru/helpsite/hidemac/html/200_Dll.html
[3] 環境
[3.1] OS:Windows 32bit
[3.2] コンパイラ名とバージョン: Visual C++ 2010 Express
[3.3] 言語:C++
[4] 期限: 2010/07/14 10:40
[5] その他の制限: なし
0785デフォルトの名無しさん
2010/07/13(火) 12:28:53どうかよろしくお願いします。
0786デフォルトの名無しさん
2010/07/13(火) 13:57:12OS windows7 32bit
gcc2.9.5
言語 c
期限 なし
課題でいくつかc言語の課題が出て、本当に簡単なのは何とか解いたのですが2つほど分からないものがあったので
よろしければ教えていただきたいです。
�@キーボードから1つの実数値xを入力し、絶対値を表示するプログラムを作りなさい
�Aキーボードからテストの得点m(0以上100以下)を入力し
(1) m<60 の場合は「不合格」
(2) 60≦m<80 の場合は「普通」
(3) 80≦m の場合は「優秀」
と表示するプログラムを作りなさい。
0787デフォルトの名無しさん
2010/07/13(火) 14:09:4348 名前:デフォルトの名無しさん[sage] 投稿日:2010/07/13(火) 14:00:23
>>46
int main() {
double x;
scanf("%lf", &x);
printf("%f\n", fabs(x));
}
int main() {
int m;
scanf("%d", &m);
printf("%s\n", m < 60 ? "不合格" : m < 80 ? "普通" : "優秀");
}
転載
0788デフォルトの名無しさん
2010/07/13(火) 15:12:30[2] 問題文(含コード&リンク):
課題
(1000以下の完全数)正整数kが等式
k=(kの約数の内、k以外のものの総和)
を満たす時、kは完全数であるという。たとえば、6の約数は 1,2,3,6の4個であり、6=1+2+3であるため、6は完全数である。1000以下の完全数をすべて出力するJavaプログラムを作れ。
[3] 環境
[3.1] OS:unix
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語:C
[4] 期限: 2010/07/14
[5] その他の制限: 環境はcですがjavaの問題です。
お願いします。
0789デフォルトの名無しさん
2010/07/13(火) 15:44:30俺はメルセんヌ素数を使うけど
0790デフォルトの名無しさん
2010/07/13(火) 16:28:51当方scanf+Enterによる単純な入力しかしたことがありません。
空白を認識して代入先を変える方法?と考えて手が止まりました。
/*以下入力*/
3 /*変数int nへ代入する。今から3*3行列を入力するという意味*/
3 5 7
2 5 8
6 8 1
/*入力ここまで*/
for(i=0;i<n;i++){
for(j=0;j<n;j++){
printf("%d ", a[i][j]);
}printf("\n");
}printf("\n");
の結果は上記の
3 5 7
2 5 8
6 8 1
を表示するように二次元配列aに代入する。
0791790
2010/07/13(火) 16:31:19[1] 授業単元:プログラミング
[2] 問題は>>790
[3] 環境
[3.1] OS: Windows
[3.2] Visual C++ 2008
[3.3] 言語: C
[4] 期限: 明日
[5] その他の制限: 入力はscanfにこだわらなくても良いですが、なるべく単純にお願いします。
0792デフォルトの名無しさん
2010/07/13(火) 18:13:07#include <stdio.h>
#define loop(i,n) for (i = 0; i < n; i++)
int main(void)
{
int i, n, j, a[10][10];
printf("n=");
scanf("%d", &n);
for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
scanf("%d", &a[i][j]);
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++)
printf("%d ", a[i][j]);
printf("\n");
}
printf("\n");
return 0;
}
バグがありましたので修正いたします。
http://codepad.org/es0chPgG
>>694 と並行して作成しておりました。とりあえずできているものをあげておきます。
>>778 に示されているソースコードに沿って書き直す作業は、余裕があれば行います。
第一引数にターゲットとなる bmp ファイル名、第二引数に平均化した bmp ファイル名を指定します。
入力ファイルとしては、256色 bmp と 24ビット bmp に対応しています。出力ファイルは 24ビット bmp です。
http://codepad.org/M7WwUgUS
0795デフォルトの名無しさん
2010/07/13(火) 18:47:54汎用的なソースとやらは、実は無いんですね。
0796デフォルトの名無しさん
2010/07/13(火) 19:07:59どうもありがとうございました。
0797デフォルトの名無しさん
2010/07/13(火) 19:46:44>>785 も同一人物だとしたら頭の中身がどこかから漏れてないか?
0798デフォルトの名無しさん
2010/07/13(火) 20:14:14> >>762は環境はcですが、問題はjavaです。
完成ソースをコンパイルする時のコマンドは、gcc、javacのどっち?
0799デフォルトの名無しさん
2010/07/13(火) 21:48:50>>506, >>571
0800デフォルトの名無しさん
2010/07/13(火) 22:18:55http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10818.txt
0801デフォルトの名無しさん
2010/07/13(火) 22:52:55[1] 授業単元: 計算機プログラミング
[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10819.txt
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: Visual Studio2008
[3.3] 言語: C
[4] 期限:7/24
[5] その他の制限: なし
電気電子系の問題です。
よろしくお願いします
0802デフォルトの名無しさん
2010/07/13(火) 23:10:48[2] 問題文 http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10820.txt
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C言語
[4] 期限: 2010年7月15日17:00まで
[5] その他の制限:特にありません
よろしくお願いします
0803デフォルトの名無しさん
2010/07/13(火) 23:27:12ありがとうございます
0804デフォルトの名無しさん
2010/07/13(火) 23:28:45/ ̄\
│34nm |
\_/ インテル!
_|_|_
n: / \ n:
|| / ヽ ||
f「| |^ト | :::\::/::: | 「| |^|`| エーーックス
|: :: ! } | <(゚)>::::<(゚)> | | ! : ::} ニジュウゴ
ヽ ,イ ヽ (__人__) / ヽ ,イ エーーーッムッッ!
\ `⌒´ /
0805デフォルトの名無しさん
2010/07/13(火) 23:37:07よろしくお願いします。
0806デフォルトの名無しさん
2010/07/14(水) 00:13:03http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10822.c
0807デフォルトの名無しさん
2010/07/14(水) 00:30:21ファイルが消えてるみたいで
あつかましいのですが、もう一度あげていただくことは出来ないでしょうか
0808デフォルトの名無しさん
2010/07/14(水) 00:35:30単にマクロで求める数値を適当に変えられる仕様にしただけであって
大して改変はしていなかったしw
0809デフォルトの名無しさん
2010/07/14(水) 00:55:05http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10823.c
だった
0810デフォルトの名無しさん
2010/07/14(水) 00:58:36すいません、ありがとうございます
0811デフォルトの名無しさん
2010/07/14(水) 01:00:16[2] 問題文(含コード&リンク):http://www.dotup.org/uploda/www.dotup.org1025743.jpg
[3] 環境
[3.1] OS: (Windows vista
[3.3] 言語: C
[4] 期限: 2010年7月14日まで
[5] その他の制限: 特になしです。
よろしくお願いします。
0812デフォルトの名無しさん
2010/07/14(水) 01:02:15モー娘。の石川梨華はもっと好きです。
0813デフォルトの名無しさん
2010/07/14(水) 01:18:570814デフォルトの名無しさん
2010/07/14(水) 01:59:24http://codepad.org/9aQwdDgL
0815デフォルトの名無しさん
2010/07/14(水) 03:28:55[2] 問題文
name(名前: char型配列), height(身長: float型変数), bloodType(血液型: char型変数)をメンバに持つ構造体を宣言し, 128名分が記憶可能になるようその構造体の配列を定義せよ.また,その配列に対して値を入力し,
さらに表示できるようにせよ.構造体のメンバ値を表示するには、ひとつの構造体の各メンバの値を表示する関数を作成すること。
% ./bodyData
1人目のデータ: 立命太郎 175.5 A
2人目のデータ: 野路花子 169.0 B
3人目のデータ: 衣笠一郎 180.4 O
4人目のデータ: 0 0 0 ← 0 0 0 と入力すると終わる.
名前 身長 血液型
立命太郎 175.5 A
野路花子 169.0 B
衣笠一郎 180.4 O
%
ヒント: 各人の名前、身長、血液型のデータを1行で入力するためには、参考12.1に示されたfgets()関数で、これらを1度に取り込み、最初の空白までを名前とみなし、次の空白までを身長とみなし、
次に改行までを血液型をみなせばよい。これらを別々の文字列として、必要に応じて整数や浮動小数点数に変換し、構造体のメンバに設定すること。
ヒント: ひとつの構造体の各メンバの値を表示する関数に構造体を引渡すことを繰り返えせばよい。
[3] 環境
[3.1] OS: (Windows vista
[3.3] 言語: C
[4] 期限: 2010年7月14日まで
[5] その他の制限: 実行結果までできれば表示してほしいです
0816デフォルトの名無しさん
2010/07/14(水) 03:48:45ん、例の出したり引っ込めたりか‥‥‥。
0817デフォルトの名無しさん
2010/07/14(水) 03:49:020818816
2010/07/14(水) 03:50:480819デフォルトの名無しさん
2010/07/14(水) 03:58:00[1] C言語プログラミング演習
[2] 問題文(含コード&リンク
整数を各要素の値とする、2つの2次元ベクトルが与えられたときに、それらの内積を計算する関数innerProduct()を使って、この2つのベクトルが直行しているかどうかを判定するプログラムを作成せよ。
2つの2次元ベクトル U(ux,uy)とv(vx,vy) の内積は,
ux × uy + vx + vy
で計算でき、2つのベクトルが作る角度は、
内積が正なら90°より小さく 内積が0なら 90° 内積が負なら90°より大きい
この考え方は3次元のベクトルでも同じである。上記のプログラムを、3次元のベクトルにも対応したものにすぐに修正できるようにするには、マクロを使うことが有効である。
どのようにすればよいかを考えよ。
2次元の場合
% ./innerProduct
input u[0]: 2 input u[1]: 6 input v[0]: 9input v[1]: -1
u=[ 2 6 ], v=[ 9 -1 ]
inner product is 12
The angle of the vectors is less than 90 degree.
%
3次元の場合
% ./innerProduct
input u[0]:input u[1]: 1input u[2]: 2input v[0]: 6input v[1]: 3input v[2]: -2
u=[ 0 1 2 ], v=[ 6 3 -2 ]
inner product is -1
The angle of the vectors is greater than 90 degree.
%
[3] 環境
[3.1] OS linux
[3.3] 言語: C
[4] 期限: 2010年7月14日まで
[5] その他の制限 特になし
0820デフォルトの名無しさん
2010/07/14(水) 04:00:27[2] 問題文(含コード&リンク
標準入力から正の整数値を読み込み,0が入力されたらそれらの整数を小さい順に表示するプログラムを作成せよ.
以下のような処理の流れでプログラムを作成すること。
数字を読み込むごとに, それまでに入力された数値が格納された配列の最後の要素から, 先頭に向かって順に大小の比較を行う. これにより、読み込んだ数字の方が入るべき位置がわかる.
読み込んだ数字が入るべき箇所を空けるために、 既に記憶されている配列の要素のうち、 この数字よりも大きな数字をひとつ後ろにずらす。 空いた箇所に読み込んだ数字を代入する.
次に入力される数字の処理へ移る.
% ./ordering
正整数: 17
正整数: 3
正整数: 9
正整数: 4
正整数: 0
入力された整数は小さい順に 0, 3, 4, 9, 17 です.
%
[3] 環境
[3.1] OS linux
[3.3] 言語: C
[4] 期限: 2010年7月14日まで
[5] その他の制限 特になし
0821デフォルトの名無しさん
2010/07/14(水) 04:08:05[2] 問題文(含コード&リンク
文字列yを文字列xの最後に連結する関数stringcat(char [], char [])を作成せよ.この関数を用いて、入力された2つの文字列を連結するプログラムを作成せよ。
注意: stringcat()を呼び出すときは,連結後の文字列がxの配列長を超えないように注意すること.
% ./catenate
文字列x (20字まで)? linux
文字列y (20字まで)? kadai
連結後のx: linuxkadai ←全部で20字以内なので連結可能
20字を超える場合は連結不可能とする
[3] 環境
[3.1] OS linux
[3.3] 言語: C
[4] 期限: 2010年7月14日まで
[5] その他の制限 特になし
0822デフォルトの名無しさん
2010/07/14(水) 04:13:00[2] 問題文(含コード&リンク
文字列xに文字列yが含まれるかどうかを判定する関数str_comp(char [], char [])を作成せよ.この関数を用いて、入力されたひとつめの文字列にふたつめの文字列が含まれているかを判定するプログラムを作成せよ。
% ./compare
文字列x (64字まで)? kadaigakitui
文字列y (64字まで)? dai
"kadaigakitui"に"dai"は含まれます.
% ./compare
文字列x (64字まで)? kadaigakitui
文字列y (64字まで)? ycx
"kadaigakitui"に"ycx"は含まれません.
[3] 環境
[3.1] OS linux
[3.3] 言語: C
[4] 期限: 2010年7月14日まで
[5] その他の制限 特になし
0824デフォルトの名無しさん
2010/07/14(水) 05:16:060825デフォルトの名無しさん
2010/07/14(水) 07:15:41ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10824.c
0826デフォルトの名無しさん
2010/07/14(水) 08:02:12ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10825.c
>>822
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10826.c
0827デフォルトの名無しさん
2010/07/14(水) 08:33:18ありがとうございました
助かりましたっ!
0828デフォルトの名無しさん
2010/07/14(水) 09:01:59http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10827.c
0829デフォルトの名無しさん
2010/07/14(水) 09:45:18a[j] = n;
ってやるのが普通。
0830デフォルトの名無しさん
2010/07/14(水) 09:47:420831デフォルトの名無しさん
2010/07/14(水) 09:54:410832デフォルトの名無しさん
2010/07/14(水) 09:57:22似たようなものばっかでさ。たまには捻くれてクソースにしたくなるじゃん。
俺の勝手だがw
0833デフォルトの名無しさん
2010/07/14(水) 11:02:31[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
リストへの要素の追加を行うプログラムで、以下のプログラムを完成させよ。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10828.txt
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2010年7月18日まで
[5] その他の制限:特にありません。よろしくお願いいたします。
0834デフォルトの名無しさん
2010/07/14(水) 12:58:43http://codepad.org/QeE6s096
0835デフォルトの名無しさん
2010/07/14(水) 13:46:100836デフォルトの名無しさん
2010/07/14(水) 13:49:53[2] 問題文
二つの任意の正の整数の乗算(*)を、シフト演算の組合わせと除算(/)と加算(+)のみで解くプログラムを作成しなさい。
ヒント:例えば、123 x 13は以下のように計算できる。
123 x 13 = 123 x (2^3 + 2^2 + 1)
= 123 x 2^3 + 123 x 2^2 + 123
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:18日
[5] その他の制限:特になし
お願いします
0838デフォルトの名無しさん
2010/07/14(水) 16:14:10int main(void)
{
int a, b, c;
scanf("%d%d", &a, &b);
for(c = 0; b; b >>= 1, a <<= 1) if(b & 1) c += a;
printf("%d\n", c);
return 0;
}
0839デフォルトの名無しさん
2010/07/14(水) 16:45:320840デフォルトの名無しさん
2010/07/14(水) 17:02:03[2] 問題文(含コード&リンク):
課題
(1000以下の完全数)正整数kが等式
k=(kの約数の内、k以外のものの総和)
を満たす時、kは完全数であるという。たとえば、6の約数は 1,2,3,6の4個であり、6=1+2+3であるため、6は完全数である。1000以下の完全数をすべて出力するJavaプログラムを作れ。
[3] 環境
[3.1] OS:unix
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語:C
どうかよろしくお願いします。連投すみません。
どなたかわかる方お願いします
0841デフォルトの名無しさん
2010/07/14(水) 17:26:44書き換えれば良いじょのいこ?w
0842デフォルトの名無しさん
2010/07/14(水) 17:30:510843デフォルトの名無しさん
2010/07/14(水) 17:33:570844デフォルトの名無しさん
2010/07/14(水) 17:39:13> [3.2] コンパイラ名とバージョン: gcc
> [3.3] 言語:C
何度も何度も何度も何度もこのクソ野郎(#^ω^)ピキピキ
0845デフォルトの名無しさん
2010/07/14(水) 17:41:35もしかしてJNI使えってこと?
0846デフォルトの名無しさん
2010/07/14(水) 17:41:45[1] 授業単元:プログラム演習2
[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10831.txt
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:Visual Studio2008
[3.3] 言語:C
[4] 期限: ([2010年07月15日10:00まで]
[5] その他の制限: 特になし
1問目はできたのですが、2問目以降で手詰まり状態です。
どうかよろしくお願いします。
0847デフォルトの名無しさん
2010/07/14(水) 17:46:440848デフォルトの名無しさん
2010/07/14(水) 18:44:34本当に使えるのかみてみたいもの
0850デフォルトの名無しさん
2010/07/14(水) 19:20:05書けるのか?
0851デフォルトの名無しさん
2010/07/14(水) 19:20:57(1) a = 0.0、b = xとし、c = ( a + b ) / 2.0を計算する。
(2) c2 < x ならばa = c、そうでなければb = cとし、計算を繰り返す。
(3) b – aが収束値0.00001以下になったときのcを平方根とする。
プログラムヒント:実数の型はfloatもしくはdoubleを用いること。整数を入力するにはatoi関数を使ったが、実数を入力するにはatof関数を使う。
これお願いします。
0852デフォルトの名無しさん
2010/07/14(水) 20:40:08#include <stdio.h>
#include <stdlib.h>
int main(void){
double n, a = 0, b, c, eps = 0.00001;
char s[10];
printf("n=");
scanf("%s", s);
b = n = atof(s);
while (b - a > eps) {
c = (a + b) / 2;
if (c * c - n > 0)
b = c;
else
a = c;
}
printf("x=%d %lf の平方根は %lf\n", (int) n, n, c);
return 0;
}
0853デフォルトの名無しさん
2010/07/14(水) 21:49:28http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10832.txt
http://codepad.org/sgfglU2M
http://codepad.org/pFzcMv8p
http://codepad.org/YsgrjGUC
http://codepad.org/c6QHeq6J
個人的には、
typedef struct node *String
にしてほしかったと痛烈に感じました。
強引なキャストを使ってしまいました。
0856デフォルトの名無しさん
2010/07/15(木) 00:41:031.標準入力から単語を読み込み、単語を登録する。("EOR"という単語が入力されるまで繰り返す)
2.その後、標準入力から指定された単語に対して、その単語が登録されているか否かを出力する。
/*****要実装******/の部分を実装して上の動作をするプログラムに完成させてください。
http://codepad.org/npgTugA0
0857デフォルトの名無しさん
2010/07/15(木) 04:13:570858デフォルトの名無しさん
2010/07/15(木) 05:55:36画像ファイルは1画素あたり24bitのファイルなのですが、ターミナルに
display r.bmp
などと入力すると
display: Length and filesize do not match (r.bmp).
と出てしまいます。
0859デフォルトの名無しさん
2010/07/15(木) 07:17:14その数式だって、言語が違っても基本は共通しているだろ?
変数の扱いに差はあるけど。Javaで求めている人は、スレ違いだが
自分で基本部分くらい作れるだろ?
こちらの手元の環境(Vine Linux 4.2) では、再現しませんね。
>>1 のアップローダーに
1) もとの(3色の)ビットマップファイル
2) 生成された r.bmp
をアップロードして、URL をお伝えください。
0861デフォルトの名無しさん
2010/07/15(木) 09:49:39ありがとうございます。
0862デフォルトの名無しさん
2010/07/15(木) 10:12:250863デフォルトの名無しさん
2010/07/15(木) 10:32:06旧暦との対応を示した今月のカレンダーを表示せよ
みたいなのか?
0864デフォルトの名無しさん
2010/07/15(木) 11:02:27投稿しようとしても、
cgi-lib.pl: Request to receive too much data: 361023 bytes
と出てしまい、投稿できません…
>>1 では容量オーバーでしたね。失礼しました。
では、適当なアップローダーを使っていただけませんでしょうか。
私が試したものは、
http://www.dotup.org/
です。ダウンロードキーは指定しないようにしてください。
またダウンロード URL を忘れずに、お知らせください。
変換がうまくいかない bmp 元ファイルと、出力ファイル r.bmp をお願いいたします。
あと、誤りを訂正いたしました。
これで試してみてください。
http://codepad.org/aEItIH4p
0867デフォルトの名無しさん
2010/07/15(木) 12:46:16元ファイルは
http://www.dotup.org/uploda/www.dotup.org1028171.bmp.html
で、出力ファイルは
http://www.dotup.org/uploda/www.dotup.org1028182.bmp.html
です。
0868デフォルトの名無しさん
2010/07/15(木) 13:27:42有難うございました!
0869デフォルトの名無しさん
2010/07/15(木) 14:07:23[1] 授業単元:応用プログラミング
[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10833.txt
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:Visual Studio2008
[3.3] 言語:C
[4] 期限:2010/07/19 23:59まで
[5] その他の制限:OpenCV使用可。その他制限は無し。
よろしくお願いします。
0870GK
2010/07/15(木) 15:04:07演習5-1
テキストファイルの各行の最後には,復帰・改行を示すASCIIコードが付加されている.即ち,ファイルのもつ行数は復帰・改行の数をカウントすることによって計算できる.
上記性質を利用して,テキストファイルの行数を計算するプログラムを開発せよ.但し,復帰・改行に対応するASCIIコードは10である.
テキストファイルの読み込み方法は講義資料でも解説したように,./a.out < hoge.txtとすればよい.
0871デフォルトの名無しさん
2010/07/15(木) 15:09:400872デフォルトの名無しさん
2010/07/15(木) 15:23:19[1] 授業単元:情報処理
[2] 問題文(含コード&リンク):
http://files.uploadr.net/0cc81c1342/1.txt
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:
[3.3] 言語:どちらでも可
[4] 期限:なし。
[5] その他の制限:<stdio.h>と<stdlib.h>以外のヘッダファイルを使用しないこと。
これお願いします。
0873デフォルトの名無しさん
2010/07/15(木) 15:37:25#include <stdio.h>
int main(void) {
int i,j,k,n;
printf("Input n > ");
scanf("%d",&n);
for(i=1; i<=n; i++) {
for(j=n-i; j>0; j--) putchar(0x20);
for(k=2*i-1; k>0; k--) putchar('*');
putchar('\n');
}
return 0;
}
0874デフォルトの名無しさん
2010/07/15(木) 15:51:06ありがとうございます。
もうひとつお願いなのですが、
>>871と同じ実行結果が表示されるプログラムをwhile文のみを使ってお願いします。
0875デフォルトの名無しさん
2010/07/15(木) 15:51:52#include <stdio.h>
int main(void) {
char ch;
unsigned cnt=0;
do{
ch=getchar();
if(ch=='\n') cnt++;
}while(ch!=EOF);
printf("%u行\n",cnt);
return 0;
}
0876デフォルトの名無しさん
2010/07/15(木) 15:52:330877デフォルトの名無しさん
2010/07/15(木) 16:00:48すいません間違えましたwww
>>872は>>873の間違いで、>>871は>>872の間違いです。
すみません。
0878デフォルトの名無しさん
2010/07/15(木) 16:20:20【実行例】
nを入力せよ:2
1個目の文字列を入力せよ:nagata
反転した文字列は:atagan
2個目の文字列を入力せよ:ikuno
反転した文字列は:onuki
よろしくお願い致します。
0879デフォルトの名無しさん
2010/07/15(木) 16:23:02http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10834.c
0880デフォルトの名無しさん
2010/07/15(木) 17:13:44[2] 問題文(含コード&リンク):
関数u(x,y)は、0<x<1,0<y<1の範囲のあらゆる点で方程式
(∂^2)*u/(∂*x^2)+(∂^2)*u/(∂*y^2)=2(x^2+y^2)
を満たし、境界上でu(0,y)=u(x,0),u(1,y)=y^2,u(x,1)=x^2である。
この差分方程式を用いてu(x,y)を求め、キーボードから入力した
指定座標の値を表示するプログラムを作成せよ。
刻み幅は0.05とする(キーボードから入力する値はこの倍数とする)。
[3] 環境
[3.1] OS: (Windows/Linux/等々) vista
[4] 期限:7月20日
0881デフォルトの名無しさん
2010/07/15(木) 18:21:59[2] 問題文(含コード&リンク):
課題
(1000以下の完全数)正整数kが等式
k=(kの約数の内、k以外のものの総和)
を満たす時、kは完全数であるという。たとえば、6の約数は 1,2,3,6の4個であり、6=1+2+3であるため、6は完全数である。1000以下の完全数をすべて出力するJavaプログラムを作れ。
[3] 環境
[3.1] OS:unix
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語:C
どうかよろしくお願いします。連投すみません。
どなたかわかる方お願いします
>>867
私の環境(Vine Linux 4.2) では、送っていただいた元ファイルを用いても現象は再現されませんでしたが、
一点気になるところがあり、それを踏まえてプログラムを修正いたしました。
http://codepad.org/t5uaBaLd
いかがでしょうか?
0883デフォルトの名無しさん
2010/07/15(木) 18:36:16>>506, >>571
0884デフォルトの名無しさん
2010/07/15(木) 19:16:52ありがとうございます。
0885デフォルトの名無しさん
2010/07/15(木) 19:26:17while(i++<n) {
より上に i の初期値を書いてなかった。i=0; で
0886デフォルトの名無しさん
2010/07/15(木) 19:40:31http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10835.txt
0887デフォルトの名無しさん
2010/07/15(木) 19:45:45[2] 問題文(含コード&リンク):
fgets() を使って50文字以下の文字列を入力し,文字列中の各
文字の出現回数を数えるプログラムを作成せよ。
実行例
文字列は? abcdef,abb(ccc110)
a : 2
b : 3
c : 4
d : 1
e : 1
f : 1
, : 1
( : 1
1 : 2
0 : 1
) : 1
[3] 環境
[3.1] OS: Vine Linux
[3.2] gcc
[3.3] 言語: C
[4] 期限:7月20日
よろしくおねがいします
0888デフォルトの名無しさん
2010/07/15(木) 20:33:28#include <stdio.h>
#define N 50
#define M 256
int main(void){
char buf[N + 1];
int cnt[M] = {0}, i;
printf("input string:");
fgets(buf, N, stdin);
for (i = 0; buf[i] != '\n'; i++)
cnt[buf[i]]++;
for (i = 0; i < M; i++)
if (cnt[i] > 0)
printf("%c:%d\n", i, cnt[i]);
return 0;
}
0889デフォルトの名無しさん
2010/07/15(木) 20:41:43できました。ありがとうございました!
0890デフォルトの名無しさん
2010/07/15(木) 20:45:51[2]課題:C言語による「High and Low」のゲーム作成
http://www.dotup.org/uploda/www.dotup.org1028847.txt.html
テキストファイルに詳細を書き留めました
[3] 環境
[3.1] Windows
[3.2] gcc
[3.3] C
[4] 今月の21日まで
お手数をおかけしました。
bmp ファイルの中に、bmp ファイルサイズそのものをセットしておく項目(プログラムでは bfSize にあたります)があります。
ビュアによっては、bfSize の値が bmp ファイルの実際のファイルサイズと一致していない場合には、エラーを出すものがあるんですね。
不幸なことに、私の環境のビュアは、どれも、bfSize の値には頓着しないものばかりだったようです。
0892デフォルトの名無しさん
2010/07/15(木) 21:48:09cellってcoutでもいいですか?
あと、コンパイルしても、
入力ファイルをオープンできませんでした
と出て終わってしまうんですが…
仕様は問題文にしたがったつもりです。つまり、
"input.data" というファイルがプログラムと同じディレクトリになければ、
プログラムがエラーメッセージ "cannot open the input file." を画面に出力します。
cerr のかわりに cout としてもいいでしょう。厳密には意味が異なるのではありますが。
0894デフォルトの名無しさん
2010/07/15(木) 22:22:48[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10836.txt[3] 環境
[3.1] OS:Windows XP
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2010年7月16日まで
[5] その他の制限:int main(void){から始まる
0895デフォルトの名無しさん
2010/07/15(木) 22:23:36すいません。リンクミスです。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10836.txt
0896デフォルトの名無しさん
2010/07/15(木) 22:28:47http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10837.txt
0897デフォルトの名無しさん
2010/07/15(木) 22:39:22>>895
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10838.txt
0898デフォルトの名無しさん
2010/07/15(木) 22:47:17ごめんなさい。input.dataってどこから作ればいいんでしょうか…
0899デフォルトの名無しさん
2010/07/15(木) 22:53:00Windows のメモ帳にあたるものは、linux ではなんでしょうかね。
とにかく、エディタで
1
3
5
6
7
とか適当な内容で、ファイル名が "input.data" のファイルをつくってください。
0900デフォルトの名無しさん
2010/07/15(木) 23:04:08hello worldどうやって書いたんだって話になっちゃう
0901デフォルトの名無しさん
2010/07/15(木) 23:10:26という事はlinuxが無いとできないって事ですか…
0902デフォルトの名無しさん
2010/07/15(木) 23:13:480903デフォルトの名無しさん
2010/07/15(木) 23:14:43学校の演習PCがlinuxってことか
0904デフォルトの名無しさん
2010/07/15(木) 23:15:28家にlinux環境がなくて、
学校で出た課題なんですが…
だから、linuxがないんです。
0905デフォルトの名無しさん
2010/07/15(木) 23:16:18すみません。学校ではlinux使ってて、家では、Visual C++を使っているんです。
0906デフォルトの名無しさん
2010/07/15(木) 23:24:47[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):http://www1.axfc.net/uploader/File/so/47576
問題が複数あります
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: Visual Studio2008
[3.3] 言語: C
[4] 期限: 7/17(土)早いだけありがたいです
[5] その他の制限: なし
お手数をおかけしますがよろしくお願いします。
0907887
2010/07/15(木) 23:53:53ありがとうございます
0908デフォルトの名無しさん
2010/07/15(木) 23:55:43>>717の問題でプログラムで出力は、cout→streamになるんでしょうか?
普段は出力はcoutなんですが
0909デフォルトの名無しさん
2010/07/15(木) 23:58:05メモ帳で実行ファイルと同じフォルダに。
0910デフォルトの名無しさん
2010/07/16(金) 00:11:59メモ帳に書いて保存して、Visual C++でコンパイルしてもやっぱり何も起きないんですが…
0911デフォルトの名無しさん
2010/07/16(金) 00:13:02実行ファイルと同じ場所に input.data がありますか?
0912デフォルトの名無しさん
2010/07/16(金) 00:13:02じゃあ学校行ってから試すしかないね
0913デフォルトの名無しさん
2010/07/16(金) 00:15:52あると思うんですが…
0914デフォルトの名無しさん
2010/07/16(金) 00:20:23メモ帳から保存する時って、そのC++のファイルに保存しないとダメなんですか?
普通に保存しているだけなんですが
0915デフォルトの名無しさん
2010/07/16(金) 00:43:25実行ファイルがあるじフォルダに
input.dataを保存するだけ
0916デフォルトの名無しさん
2010/07/16(金) 01:35:51[2] 問題文(含コード&リンク):県から国、及び国から県に換算する関数を作成し、
main関数でキーボードから数値とその値が国であるか県であるかを入力し、県ならば国に、
国ならば県に換算した値を小数点以下1桁までで出力するプログラムを作成しなさい。
値を引数とする関数で計算させ(関数名は nation とする)、出力は main関数で行うこと。
関係は以下の通り
県(A):(B+2)*5 国(B):A/3+25
<例>
数値を入力してください: 75
75 が「県」なら "A" を「国」なら "B" を入力してください: B
県 75.0 = 国 50.0
なお、if文かfor文を用いること。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: Visual Studio2008
[3.3] 言語: C++
0917デフォルトの名無しさん
2010/07/16(金) 01:37:29#include <stdio.h>
int main(void) {
0918デフォルトの名無しさん
2010/07/16(金) 02:25:04[2] 問題文(含コード&リンク
char型配列xに格納された文字列を1文字ごとに空白を空けて逆順に出力する関数reverse_array(char [])を作成せよ.変換後の文字列の長さがもとの文字列よりも長くなっているので、長さの検査が必要であることに注意せよ。
この関数を用いて、入力された文字列を並び替え、その結果を印字するプログラムを作成せよ。
% ./reverse
処理前の文字列 (64字まで)? kimatutest
関数reverse_array()を呼び出しました
処理後の文字列 "t s e t u t a m i k"
[3] 環境
[3.1] OS linux
[3.3] 言語: C
[4] 期限: 2010年7月14日まで
[5] その他の制限 できるだけ簡単なソースでお願いします><
0919デフォルトの名無しさん
2010/07/16(金) 02:27:56[2] 問題文(含コード&リンク
char型配列xに格納された英単語からなる文字列が回文(逆から読んでも同じ)であるかをチェックする関数anagram(char [])を作成せよ.ただし,チェック対象の文字列はソースコードのmain()関数内で記述するものとする(キーボードから入力しない).
% ./checkAnagaram
文字列 "spainyuusyou" は回文ではありません.
% ./checkAnagaram
文字列 "Was it a cat I saw?" は回文です.
ヒント: 回文のルールは以下の通り.
(i)
前から読んでも後ろから読んでも同じアルファベットの並びとな る,
(ii)
記号「?」,「.」,「,」,「-」,「 」(空白)は無視する,
(iii)
大文字と小文字は区別をしない.
[3] 環境
[3.1] OS linux
[3.3] 言語: C
[4] 期限: 2010年7月14日まで
[5] その他の制限 できるだけ簡単なソースでお願いします><
0920デフォルトの名無しさん
2010/07/16(金) 02:32:25[2] 問題文(含コード&リンク
ATM(Automated Teller Machine; 現金自動預け払い機)システムを実現するプログラムを考える。
氏名,口座番号,暗証番号,預金残高を要素とする構造体を宣言し, 512人分の口座が作成可能なようにせよ.また,初期値として次のように構造体の内容を設定せよ.
立命太郎の口座番号は1234で,預金残高を1,234,560円に設定する.
野路花子の口座番号は5678で,預金残高を987,600円に設定する.
衣笠一郎の口座番号は9012で,預金残高を538,600円に設定する.
暗証番号は口座番号に1111を足して10000で割った余りに設定する.
ここで暗証番号は、口座番号を引数としてとり、それに1111を足して10000で割った余りを計算する関数を作成して設定すること.
上記の方法で初期値を設定し、設定された3人の預金残高を画面へ出力するプログラムを作成せよ.ただし、ひとり分の預金残高を表示する関数を作成して、これを繰り返し使って3人の預金残高を出力すること.
% ./initAccount
預金残高は次のとおりです.
立命太郎 (1234) 1234560 円
野路花子 (5678) 987600 円
衣笠一郎 (9012) 538600 円
%
[3] 環境
[3.1] OS linux
[3.3] 言語: C
[4] 期限: 2010年7月14日まで
[5] その他の制限 できるだけ簡単なソースでお願いします><
0921デフォルトの名無しさん
2010/07/16(金) 02:34:09[2] 問題文(含コード&リンク
ATM(Automated Teller Machine; 現金自動預け払い機)システムを実現するプログラムを考える。
氏名,口座番号,暗証番号,預金残高を要素とする構造体を宣言し, 512人分の口座が作成可能なようにせよ.また,初期値として次のように構造体の内容を設定せよ.
立命太郎の口座番号は1234で,預金残高を1,234,560円に設定する.
野路花子の口座番号は5678で,預金残高を987,600円に設定する.
衣笠一郎の口座番号は9012で,預金残高を538,600円に設定する.
暗証番号は口座番号に1111を足して10000で割った余りに設定する.
ここで暗証番号は、口座番号を引数としてとり、それに1111を足して10000で割った余りを計算する関数を作成して設定すること.
上記の方法で初期値を設定し、設定された3人の預金残高を画面へ出力するプログラムを作成せよ.ただし、ひとり分の預金残高を表示する関数を作成して、これを繰り返し使って3人の預金残高を出力すること.
% ./initAccount
預金残高は次のとおりです.
立命太郎 (1234) 1234560 円
野路花子 (5678) 987600 円
衣笠一郎 (9012) 538600 円
%
[3] 環境
[3.1] OS linux
[3.3] 言語: C
[4] 期限: 2010年7月14日まで
[5] その他の制限 できるだけ簡単なソースでお願いします><
0922デフォルトの名無しさん
2010/07/16(金) 02:36:55[2] 問題文(含コード&リンク
<<920の課題を基に「引出し」の機能を追加せよ.具体的には,口座番号の入力,暗証番号の入力と確認,支払額の入力,預金残高の更新をするプログラムを追加すればよい.機能の選択は,起動時できるようにすること.
% ./withdraw
[0]終了 [1]残高表示 [2]引出し: 2
口座番号を入力してください: 5000 ← 存在しない
暗証番号を入力してください: 0123
口座番号または暗証番号が間違っています.
口座番号を入力してください: 9012
暗証番号を入力してください: 5555 ← 間違っている
口座番号または暗証番号が間違っています.
口座番号を入力してください: 9012
暗証番号を入力してください: 0123
引出し額を入力してください: 1000000 ← 預金額より多い
預金額が不足しています.
口座番号を入力してください: 9012
暗証番号を入力してください: 0123
引出し額を入力してください: 20000
ありがとうございました.残高は 518600 円です.
[0]終了 [1]残高表示 [2]引出し: 2 ← 始めに戻る
[3] 環境
[3.1] OS linux
[3.3] 言語: C
[4] 期限: 2010年7月14日まで
[5] その他の制限 できるだけ簡単なソースでお願いします><
0923デフォルトの名無しさん
2010/07/16(金) 04:59:50ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10840.c
>>919
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10841.c
0924デフォルトの名無しさん
2010/07/16(金) 05:13:05http://codepad.org/OdsISH0l
0925924
2010/07/16(金) 05:19:35簡単なコードにはなってると思う。
0926デフォルトの名無しさん
2010/07/16(金) 08:29:05ありがとうございました、助かりました。
0927デフォルトの名無しさん
2010/07/16(金) 09:15:21"Was it a cat I saw?"が回文と判定されないぞ
0928デフォルトの名無しさん
2010/07/16(金) 09:28:560929デフォルトの名無しさん
2010/07/16(金) 09:38:29' 'や'?'も無視しなければ
0930デフォルトの名無しさん
2010/07/16(金) 09:57:35http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10842.txt
0931デフォルトの名無しさん
2010/07/16(金) 10:09:050932デフォルトの名無しさん
2010/07/16(金) 10:32:57http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10843.txt
0933デフォルトの名無しさん
2010/07/16(金) 11:28:37int anagram(char *cs) {
int len = strlen(cs), i = 0, j = len - 1;
for (;i < j; i++, j--) {
for (;i < j && !isalpha(cs[i]); i++) {} // アルファベットが出るまでズラす
for (;i < j && !isalpha(cs[j]); j--) {} // アルファベットが出るまでズラす
if (tolower(cs[i]) != tolower(cs[j])) return 0; // 一致しないのが出たら回文じゃない
}
return 1; // 一致しないのが無いので、回文
}
int main() {
char *css[] = {"spainyuusyou", "abcba", "abccba", "test", "", "a", "Was it a cat I saw?", "...", ".", ",a,"};
int i;
for (i = 0; i < sizeof css / sizeof *css; i++) {
printf("文字列 \"%s\" は回文で%s\n", css[i], anagram(css[i]) ? "す" : "はありません");
}
return 0;
}
0934デフォルトの名無しさん
2010/07/16(金) 12:08:14大文字のことを忘れていた サーセン
あと文でチェックしないとだめだったね
単語で調べることしか頭になかったから記号なんてどう使うのかと
すでに答えも上げられてるけど手直ししたんで一応
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10844.c
0935デフォルトの名無しさん
2010/07/16(金) 12:18:15フイタ
0936デフォルトの名無しさん
2010/07/16(金) 13:33:53申し訳ないですけどお願いします。
問題
複数の文字列を読み込み,さらに,それらの文字列を繋ぎ合わせる順番を入力し結果を出力するプログラムを作成せよ.
【実行例】
何個の文字列を入力しますか?:4
入力文字列[1]:Computer
入力文字列[2]:Science
入力文字列[3]:Tarou
入力文字列[4]:Tanaka
繋ぎ合わせる順番:
2
4
3
1
結果:ScienceTanakaTarouComputer
0937デフォルトの名無しさん
2010/07/16(金) 13:47:02入力したDNA塩基配列中にある塩基 t, c, a, gそれぞれの個数をカウントするプログラムを作成せよ.
【実行例】
% ./a.out
tataatccg ← 入力し,リターンを押して ^D
Thymine (t) : 3
Cytosine (c) : 2
Adenine (a) : 3
Guanine (g) : 1
%
0938デフォルトの名無しさん
2010/07/16(金) 13:47:18ありがとうございました。
すごく助かりました。
0939デフォルトの名無しさん
2010/07/16(金) 13:55:24>>316,322
0940デフォルトの名無しさん
2010/07/16(金) 13:57:12>>196,197
0941デフォルトの名無しさん
2010/07/16(金) 14:22:36#include <stdio.h>
#define LEN 128
int main(void)
{
char buf[LEN], *p;
int t, c, a, g;
t = c = a = g = 0;
gets(buf);
p = buf;
while (*p) {
switch (*p) {
case 't': t++; break;
case 'c': c++; break;
case 'a': a++; break;
case 'g': g++; break;
}
p++;
}
printf("Thymine (t) : %d\nCytosine (c) : %d\nAdenine (a) : %d\nGuanine (g) : %d\n", t, c, a, g);
return 0;
}
0942デフォルトの名無しさん
2010/07/16(金) 14:26:14^Dを押すまで入力した文字をすべて対象にするのか?
0943デフォルトの名無しさん
2010/07/16(金) 14:41:56【実行例】
% ./a.out
1gattatgtga
11tgccgatatc
21gatatgattc
(ここで ^D を押す)
#ATG is 3
%
よろしくお願いします。
0944デフォルトの名無しさん
2010/07/16(金) 14:48:06自分でできるようになろうよ・・・
0945デフォルトの名無しさん
2010/07/16(金) 14:51:180946デフォルトの名無しさん
2010/07/16(金) 14:56:06実行ファイル名が ./a.out の場合は unix系OSのことが多い
つーことはターミナルの Ctrl-D は EOF を意味するだろう
0947デフォルトの名無しさん
2010/07/16(金) 15:08:52その入力文字中の先頭に表示されている1とか11とか21がわからん
それから入力された文字を全部連結しないとATG == 3にならないよね
0948デフォルトの名無しさん
2010/07/16(金) 15:10:03gets()で受けるとNULLを返すよな
だから二次元配列に入力したんだが指定文字列ではATG == 2にしかならない
先頭の1と11と21を無視して文字列を連結するんか?
0949デフォルトの名無しさん
2010/07/16(金) 15:14:31ゲッツ!
0950デフォルトの名無しさん
2010/07/16(金) 15:58:57実行結果を教えてくれませんか
メモ帳から自分が作ったプログラムがあるところに保存すればいいんですよね?
それはしてるんですが、できないんです…
0951デフォルトの名無しさん
2010/07/16(金) 16:36:270952デフォルトの名無しさん
2010/07/16(金) 16:37:22今日はこの授業はないので…すみません…
0953デフォルトの名無しさん
2010/07/16(金) 17:50:54[2] 問題文(含コード&リンク):
オイラー法、2次のルンゲ・クッタ法をそれぞれ用いて
以下の1階常微分方程式の初期値問題を解くC言語プログラムを作成し、
その結果と解析解と同じグラフに描画せよ。(横軸:x, 縦軸:y)。
dy(x)/dx = y (但し、0 <= x <= 3)
(1) Delta x = 0.1
(2) Delta x = 0.3
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2010年07月19日0:00まで
[5] その他の制限:
0954デフォルトの名無しさん
2010/07/16(金) 18:19:08#include <stdio.h>
#include <string.h>
#define N 100
int main(void)
{
int cnt = 0;
char s[] = "atg", s2[] = "tcag", buf[N], *p1, *p2;
p1 = buf;
while (scanf("%99s", p1) != EOF)
while (*p1)
p1++;
p1 = p2 = buf;
while (*p1) {
while (strchr(s2, *p1) == 0)
p1++;
*p2++ = *p1++;
}
*p2 = *p1;
p1 = buf;
while (strstr(p1, s)) {
cnt++;
p1 = (strstr(p1, s));
p1++;
}
printf("#ATG is %d\n", cnt);
return 0;
}
0955デフォルトの名無しさん
2010/07/16(金) 18:30:31pdf が読めない。
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10845.txt
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: bcpad, Borland C++Compiler 5.5
[3.3] 言語: C言語
[4] 期限: 2010年07月23日まで
どなたか助けてください。お願いします。
0958デフォルトの名無しさん
2010/07/16(金) 19:02:54実行例に疑問があります。
B を入力していますが、B なら「国」ですから、75 は「国」。
したがって出力は、
県 14.4 = 国 75
になると思うのですが。
0959デフォルトの名無しさん
2010/07/16(金) 19:14:34[2] 問題文(含コード&リンク): 文字列*bufからIPアドレスを抽出し、int ip[4]にそれぞれ入れよ。(最初に抽出できたものだけで良い)
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: VC 6.0
[3.3] 言語: C++
[4] 期限: 2010/7/17
[5] その他の制限: STLのstringや、boostを使うことも可。
0960デフォルトの名無しさん
2010/07/16(金) 19:43:46問1
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10846.txt
0961デフォルトの名無しさん
2010/07/16(金) 19:54:52[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10847.txt
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2010年7月17日まで
[5] その他の制限:int main(void){でスタート
0962デフォルトの名無しさん
2010/07/16(金) 20:07:07問2 整数を何個入力するのか分からないので、2種類書いてみました。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10848.txt
0963デフォルトの名無しさん
2010/07/16(金) 20:13:05http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10849.txt
0964デフォルトの名無しさん
2010/07/16(金) 20:32:57実行例を見て、最大10個で-1が入力されたら終了って読み取れないのはダメだろ
0965デフォルトの名無しさん
2010/07/16(金) 20:34:310966デフォルトの名無しさん
2010/07/16(金) 20:45:00すいません。そこまで分かりませんでした。
0967デフォルトの名無しさん
2010/07/16(金) 20:51:20>>962
解答ありがとうございました。本当に詰んでいたのでありがたいです。
0968デフォルトの名無しさん
2010/07/16(金) 21:07:03>>963さん、ありがとうございました。
大変申し訳ないのですが、これに基にした問題が後2問あります。すみませんが、
よろしくお願いいたします。
http://ime.nu/kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10849.txt
[1]にヒットポイントを比較する関数を追加し、2体のモンスターのヒットポイントを比較し、
ヒットポイントの高いモンスターの名前を表示するプログラムを作成しなさい。
[2]ヒットポイント、アタックポイント、ガードポイントに0〜9の乱数を加えるプログラムを作成しなさい。
という問題です。
乱数の使用方法
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10856.txt
よろしくお願いします。
0969デフォルトの名無しさん
2010/07/16(金) 21:09:00>>967
問2 修正版です
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10853.txt
0970デフォルトの名無しさん
2010/07/16(金) 21:09:55[1]
http://ime.nu/kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10849.txt
にヒットポイントを比較する関数を追加し、2体のモンスターのヒットポイントを比較し、
ヒットポイントの高いモンスターの名前を表示するプログラムを作成しなさい。
0971デフォルトの名無しさん
2010/07/16(金) 21:38:58修正版ありがとうございます。今更問2の入力条件ですが、他のコメントの指摘通り10回入力または0以下入力で終了という問題でした。説明不足ですみませんでした。
0972デフォルトの名無しさん
2010/07/16(金) 21:55:500973デフォルトの名無しさん
2010/07/16(金) 22:01:30>>970
http://rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/1008.txt
http://rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/1007.txt
0974デフォルトの名無しさん
2010/07/16(金) 22:02:46本当に誰か助けてください
0975デフォルトの名無しさん
2010/07/16(金) 22:06:260976デフォルトの名無しさん
2010/07/16(金) 22:08:56うちはうまくいきましたよ。
0977デフォルトの名無しさん
2010/07/16(金) 22:10:06input.data.txt になってるかもw
vmwarePlayer と ubuntu の vmdk イメージで linux 環境作っちゃえ
最初から vmwaretools もどきが入ってるから楽だよ
0978デフォルトの名無しさん
2010/07/16(金) 22:14:31txtじゃダメなんですか?
ファイルの種類ってところを、すべてのファイルにすればいいんですか
0979デフォルトの名無しさん
2010/07/16(金) 22:22:20C/C++の宿題片付けます 138代目
http://pc12.2ch.net/test/read.cgi/tech/1279286575/
0981デフォルトの名無しさん
2010/07/16(金) 22:24:59乙
0982デフォルトの名無しさん
2010/07/16(金) 22:55:11エクスプローラでファイル名を後から"input.data" に変えればいいと思います。
0983デフォルトの名無しさん
2010/07/16(金) 23:09:39ごめんなさい。エクスプローラってインターネットエクスプローラの事ですか
0984デフォルトの名無しさん
2010/07/16(金) 23:17:33検索の開始ってところから、エクスプローラというのを見つけたんですが、そこから次はどこを押せばいいんでしょうか?
0985デフォルトの名無しさん
2010/07/16(金) 23:25:440986デフォルトの名無しさん
2010/07/16(金) 23:27:07まずPCの基本的な使い方から勉強したほうが
0987デフォルトの名無しさん
2010/07/17(土) 00:02:23[2] 問題文(含コード&リンク):県から国、及び国から県に換算する関数を作成し、
main関数でキーボードから数値とその値が国であるか県であるかを入力し、県ならば国に、
国ならば県に換算した値を小数点以下1桁までで出力するプログラムを作成しなさい。
値を引数とする関数で計算させ(関数名は nation とする)、出力は main関数で行うこと。
関係は以下の通り
県(A):(B+2)*5 国(B):A/3+25
<例>
数値を入力してください: 75
75 が「県」なら "A" を「国」なら "B" を入力してください: B
県 75.0 = 国 50.0
なお、if文かfor文を用いること。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: Visual Studio2008
#include <stdio.h> int main(void) {
[3.3] 言語: C++
0988デフォルトの名無しさん
2010/07/17(土) 00:10:12>>916,958
0989デフォルトの名無しさん
2010/07/17(土) 02:00:360990デフォルトの名無しさん
2010/07/17(土) 12:07:15最近これどうなってんの?
0991デフォルトの名無しさん
2010/07/17(土) 12:20:28似た課題、同じ学校の別人が同じ課題を書き込むなんて、よくあったぞ?
0992デフォルトの名無しさん
2010/07/17(土) 12:45:030993デフォルトの名無しさん
2010/07/17(土) 12:48:160994デフォルトの名無しさん
2010/07/17(土) 12:53:28マジで?
俺が来たのは
C/C++の宿題を片付けます 95代目
1 名前: デフォルトの名無しさん [sage] 投稿日: 2007/08/24(金) 17:28:30
このへんから。重複は2〜3スレに一つくらいのイメージだったが、
勘違いだったのかな。
0995デフォルトの名無しさん
2010/07/17(土) 12:54:470996デフォルトの名無しさん
2010/07/17(土) 13:14:350997デフォルトの名無しさん
2010/07/17(土) 18:09:220998デフォルトの名無しさん
2010/07/17(土) 18:26:410999デフォルトの名無しさん
2010/07/17(土) 19:57:21(´・ω・`) うさちゃんピース
1000デフォルトの名無しさん
2010/07/17(土) 19:58:22(´・ω・`) うさちゃんピース
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。