- 1 名前:デフォルトの名無しさん [2008/02/04(月) 23:32:19 ]
- あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他や発言はスルーの方向で。
【質問者へ】 回答者の便宜のため、質問の際は以下を行うことを推奨します。 ・質問は【質問テンプレ】を利用してください。 ・問題文は、出題されたまま全文を書いてください。 ・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう. ・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。 ・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。 ・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。 ・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。 【質問テンプレ】 [1] 授業単元: [2] 問題文(含コード&リンク):() [3] 環境 [3.1] OS: (Windows/Linux/等々) [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) [3.3] 言語: (C/C++/どちらでも可 のいずれか) [4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) [5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々) 【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm 【C 関数検索 man on WWW】 www.linux.or.jp/JM/index.html 【過去ログ検索】 chomework.sakura.ne.jp/ 【wiki】 www23.atwiki.jp/homework/ 【前スレ】 C/C++の宿題を片付けます 103代目 pc11.2ch.net/test/read.cgi/tech/1200318925/
- 111 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 14:46:49 ]
- >>110
sprintf(buffer, "%04d", data);
- 112 名前:110 mailto:sage [2008/02/09(土) 14:55:51 ]
- >>111
ありがとうございます。こんな早く対応して頂けるなんて感謝です。 おかげさまで4桁の数字が表示されました。 ただ、プログラム全体としては、桁が増えた分動かなくなってしまいました。 もう少し、頑張ってみます。 今後とも、どうぞよろしくお願いします。
- 113 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 14:55:58 ]
- >>110
{ int i; for (i = 12; i >= 0; i -= 4) *buffer++ = "0123456789ABCDEF"[(data >> i) & 15]; }
- 114 名前:デフォルトの名無しさん [2008/02/09(土) 14:56:41 ]
- 問7
プログラムの説明 このプログラムの目的は、コマンドラインより入力されたビット列を15ビットごとに パリティビットを付加し、16進数で表示することである。 コマンドラインから渡される引数には、ビット列のほかに偶数パリティ、奇数パリティ を選択するパラメータがある。 ビット列は255ビット以内の任意の長さであり、15ビットの倍数に満たない場合は、 足りないビットには0を挿入する。 なお、コマンドラインの入力に間違いはないものとする。 コマンドラインの書式 プログラム△ビット列(任意の長さ)△パリティの指定
- 115 名前:デフォルトの名無しさん [2008/02/09(土) 14:59:55 ]
- パリティの指定
0 偶数パリティ 1 奇数パリティ ※「△」は1文字以上の空白文字を示す。 コマンドラインの例 (プログラム名が「toi7」の場合) toi7 0101001100101010001010010010101011010 0 処理手順 @ コマンドラインより渡されたビット列を配列にコピーする。 A 配列に格納された文字列を、先頭から1文字ずつ取り出し以下の処理を行う。 ・取り出した文字(ビット)の1の個数をカウントする。 ・15ビットの数値に変換するために、変換後の数値を左に1ビットシフトし、数値 に変換した文字(ビット)とのビット演算を行う。 B15文字ごとに以下の処理を行う。 ・変換後の数値を左に1ビットシフトする。なお、ビット列が15文字に満たない場合は、足りない分左にシフトする。 ・カウントした1の個数から、パリティビットを付加する。偶数パリティであれば 1の個数が偶数になるように、奇数パリティであれば奇数になるようにパリティ ビットを付加する。 ・パリティビットを付加した変換後の数値を16進数で表示する。
- 116 名前:110 mailto:sage [2008/02/09(土) 15:08:17 ]
- >>113
ありがとうございます。 4桁の数字が、ちゃんと表示されました。 ただ、10進数の表示をしたいのですが英字まで表示されてしまいます。 引き続き、アドバイス頂けた助かります。 ほんと、すみません。
- 117 名前:デフォルトの名無しさん [2008/02/09(土) 15:18:50 ]
- 実行結果 (プログラム名が「toi7」の場合)
C:\>toi7 0101001100101010001010010010101010010 0 532B 1495 A401 ※「C:\>」はコマンドプロンプトを示す。
- 118 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 16:22:36 ]
- >>117
#include <stdio.h> int str2bit(char *str, char *pal, int , int); int main(int argc, char **argv) { int i = 0; int cnt = 0; int hyoji = 0; int res = 0; char array[256]; memset(array, 0, sizeof(array)); memcpy(array, argv[1], strlen(argv[1])); for ( i = 0 ; i < strlen(array); i++ ) { if ( i && !(i % 15) ) { /* 区切り */ /* bit化 */ res = str2bit(array, argv[2] , hyoji * 15, strlen(array)); fprintf(stdout, "0x%4x\n", res); hyoji++; } } res = str2bit(array, argv[2], hyoji * 15, strlen(array)); fprintf(stdout, "0x%4x\n", res); return 0; }
- 119 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 16:24:15 ]
- >>118の続き
int str2bit(char *str, char *pal, int cur, int max) { int res = 0; int i = 0; int cnt =0; char t_byte[16+1]; memset(t_byte, 0, sizeof(t_byte)); for ( i = 0; i < 15; i++ ) { t_byte[i] = ( cur + i >= max ) ? '0' : str[cur + i]; if ( t_byte[i] == '1' ) { cnt++; res += 1; } res <<= 1; } if ( *pal == '0' ) { /* 偶数パリティ */ if ( cnt % 2 ) res++; } else { /* 奇数パリティ */ if ( !(cnt % 2 ) ) res++; } return res; } できたから載せただけ。
- 120 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 16:29:45 ]
- >>119
特定しましたよ。
- 121 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 16:34:26 ]
- >>120
何を特定できた??
- 122 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 16:36:01 ]
- >>115 入力チェックは一切していない
#include<stdio.h> void encode(char *bits, int parity) { unsigned short value=0; int i, bitnum=0; for(i=0;bits[i];i++) { value=(value<<1)+bits[i]-'0'; bitnum+=value&1; if((i+1)%15==0) { printf("%04X\n", (value<<1)+((bitnum+parity)&1)); value=0; bitnum=0; } } if((i%15)) { value<<=(15-(i%15)); printf("%04X\n", (value<<1)+((bitnum+parity)&1)); } } int main(int argc, char *argv[]) { if(argc==3) encode(argv[1], atoi(argv[2])); return 0; }
- 123 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 17:43:15 ]
- [1] 授業単元:プログラミング入門演習
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6023.txt [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: (2月12日まで) [5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々) プログラムの一部 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6024.txt コンパイルできてもセグメントエラーorz どなたかお願いします。
- 124 名前:110 mailto:sage [2008/02/09(土) 17:59:53 ]
- {
int i; for (i = 12; i >= 0; i -= 4) *buffer++ = "0123456789"[(data >> i) & 9]; } アドバイスいただいた、プログラムを10進数表示させようと上のように書き換えたのですが このように書くと0189しか表示されません。 こんな簡単な奴ふざけるなと思わせてしまって申し訳ないのですが どうか、教えていただけないのでしょうか。 初心者のスレかくのが本来ですが、マルチぽくなるのでこのまますみません。
- 125 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 18:14:58 ]
- >>124
data>>iで済むのは16進数だからであって、 10進数で同じ方法は考えないほうがいい。
- 126 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 18:20:09 ]
- >>124
{ unsigned tmp; for(tmp=1000;tmp>0;tmp/=10) { *buffer++=((data/tmp)%10)+'0'; } }
- 127 名前:110 mailto:sage [2008/02/09(土) 18:37:44 ]
- >>125>>126
アドバイスありがとうございます。無事に動作するようになりました。 ASMを勉強していてASMでの書式など有る程度把握出来てきたのですが c言語は、書式がまるっきり分からず困っていました。 c言語は生活に十分必要な物だと思いますのでこれを機に勉強をしようとおもいます。 とても困っていたので、ほんと感謝の気持ちでいっぱいです。 ありがとうございました。
- 128 名前:デフォルトの名無しさん [2008/02/09(土) 19:32:03 ]
- >>117の続き
プログラム /*パリティビットの生成*/ #include <stdio.h> #include <string.h> main(int argc,char *argv[]) { char dum[256]; int num,cnt; int i = 0,j; (41) ; while(dum[i] != `\0`){ num = cnt = 0; for(j=0;j<15 && dum[i] != `\0`;j++){ (42) ; num <<= 1; (43); } for (;j < 16; j++) num <<= 1; if ( (44) == (1 ー ( (45) ー '0'))) num |= 1; printf("%x\n",num); } }
- 129 名前:デフォルトの名無しさん [2008/02/09(土) 19:44:13 ]
- >>128
すいませんm(_ _)m しばらく書き込み出来なかったもんで.. 上記の(41)〜(45)を答えるんですが.. (41)の解答群 ア dum = argv イ dum = argv[1] ウ strcpy(dum,argv) エ strcpy(dum,argv[1]) (42)の解答群 ア cnt += 1 イ cnt += dum[i] + 1 ウ cnt += dum[i] - `0' エ cnt += dum[i] + `1' (43)の解答群 ア num |= dum[i] - `0' イ num |= dum[i++] - `0' ウ num &= dum[i] - `0' エ num &= dum[i++] - `0' (44)の解答群 ア cnt イ cnt / 2 ウ cnt % 2 エ cnt * 2 (45)の解答群 ア argv[1] イ *argv[1] ウ argv[2] エ *argv[2] です
- 130 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 21:05:59 ]
- [1] 授業単元:プログラミング
[2] 問題文:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6025.txt input.txt: kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6026.txt [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:VC [3.3] 言語:C [4] 期限:2月13日正午 [5] その他の制限: 計算式の記述が分かり辛いですが、どうぞよろしくお願いいたします。
- 131 名前:デフォルトの名無しさん mailto:sage [2008/02/09(土) 22:31:45 ]
- >>130
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6027.txt
- 132 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 01:19:11 ]
- >>131
ありがとうございます!
- 133 名前:デフォルトの名無しさん [2008/02/10(日) 02:10:32 ]
- >>114 >>115 >>117
プログラム >>128 解答群 >>129 すいませんm(_ _)m どなたか解答をお願いします。
- 134 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 03:15:38 ]
- (42):ウ
(43):イ (44):ウ (45):ウ 但し(41)の答えが何なのか、これが分らない
- 135 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 03:19:59 ]
- ごめん、(45)はエだ。
但し(41)の答えがn(ry 自分でやってくれ
- 136 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 03:21:16 ]
- >>134
エ じゃないかな
- 137 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 04:10:18 ]
- >>136
一つくらい自分でやらせようとしてたんだが…
- 138 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 04:12:39 ]
- 入門書に確実に載ってる問題を質問するようなヤツが考えるわけもない
ググってもすぐ分かるというのに
- 139 名前:デフォルトの名無しさん [2008/02/10(日) 10:34:58 ]
- すいませんm(_ _)m ありがとうございます。
(41)エ (42)ウ (43)イ (44)ウ (45)エ これでOKでしょうか?
- 140 名前:デフォルトの名無しさん [2008/02/10(日) 11:03:41 ]
- #include <stdio.h>
main() { char x[3][7] = {"first","second","third"}; char *z[3] = {"first","second","third"}; char **p; p = z; p++; @ printf("%c\n",**p); A printf("%s\n",*p+1); B printf("%s\n",*(p+1)+1); これだと xの要素数は21個で ポインタ配列zの要素数は19個 @ABのprintfの表示は @がs Aがecond Bがhird でいいですかね?
- 141 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 11:35:41 ]
- >>123
これで合ってるのかな。srandがよくわからない。。 ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6028.c >>140 合ってる
- 142 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 13:18:18 ]
- >ポインタ配列zの要素数は19個
3個だろ
- 143 名前:54 [2008/02/10(日) 15:24:52 ]
- 答えてくれたみなさんありがとうございます!!
めっちゃかんしゃです。
- 144 名前:デフォルトの名無しさん [2008/02/10(日) 15:38:46 ]
- 度々大変すいませんm(_ _)m どなたか解答をお願いします。
プログラム /*語尾変換プログラム*/ #include <stdio.h> #include <stdlib.h> #include <string.h> int f_read(void); int w_cnv(int ln); #define CHRSIZE sizeof(char) char str[20][(254 + 2)* CHRSIZE * 2 + sizeof(char)]; main() { int ln; int i; int cnt; ln = f_read(); cnt = w_cnv(ln); for(i=0;i<ln;i++) printf("%s",str[i]); printf("\n文章中を%d件変換し、\n",cnt); printf("文末を%d件付加しました。\n",ln); } /*ファイル入力*/ int f_read(void) { FILE *fp;
- 145 名前:デフォルトの名無しさん [2008/02/10(日) 15:39:16 ]
- 続き
char buf[256]; int cnt = 0; if((fp = fopen("word.dat","r")) == NULL){ printf("入力ファイルがオープンできません\n"); exit(1); } while( (46) != NULL) (47) ; fclose(fp); return(cnt); } /*変換*/ int w_cnv(int ln) { int i; int cnt = 0; char w_str[256]; for(i=0;i<ln;i++){ while( (48) != NULL){ strcpy(w_str,strstr(str[i],"な") + CHRSIZE * 2); strcpy(strstr(str[i],"な"),"にゃ"); (49) ; cnt++; } strcpy( (50) ,"にゃ\n"); } return(cnt); }
- 146 名前:デフォルトの名無しさん [2008/02/10(日) 15:40:31 ]
- (46)の解答群
ア fgets(buf,255,fp) イ fgets(fp,buf,255) ウ fscanf("%s",buf,fp) エ fscanf(fp,"%s",buf) (47)の解答群 ア strcpy(buf,str[cnt++]) イ strcpy(buf,str[cnt+1],buf) ウ strcpy(str[cnt++],buf) エ strcpy(str[cnt+1],buf) (48)の解答群 ア strcat(str[i],"な") イ strchr(str[i],"な") ウ strcpy(str[i],"な") エ strstr(str[i],"な") (49)の解答群 ア strcat(w_str,str[i]) イ strcat(str[i],w_str) ウ strcpy(w_str,str[i]) エ strcpy(str[i],w_str) (50)の解答群 ア strchr(str[i],`\0') イ strchr(str[i],`\n') ウ strchr(w_str[i],`\0') エ strchr(w_str[i],`\n') 文中の「な」を「にゃ」に変換し、さらに文末の語尾に「にゃ」を付加して表示するプログラムです (46)〜(50)の答はどうなりますかね?
- 147 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 16:16:12 ]
- >>146
うざいからうpロダ使ってくれないかな。
- 148 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 17:03:18 ]
- [1] 授業単元:プログラミング
[2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6029.txt [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:VC [3.3] 言語:C [4] 期限:2月13日 [5] その他の制限: 前回は本当にありがとうございました。 今回もよろしくお願いいたします。
- 149 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 17:42:59 ]
- >>148
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6030.txt
- 150 名前:デフォルトの名無しさん [2008/02/10(日) 18:09:40 ]
- [1] 授業単元:パターン認識
[2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6031.lzh [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:2月13日 [5] その他の制限: 動的計画法についての課題です。問題が図表付きなので圧縮しています。
- 151 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 20:25:53 ]
- >>149
ありがとうございました。
- 152 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 21:05:23 ]
- [1] 授業単元:プログラミング
[2] 問題文:入力された文字列を逆に並べて表示せよ(例:TOKYO→OYKOT) [3] 環境 [3.1] OS:windowsXP [3.2] コンパイラ名とバージョン:Microsoft Visual C++ 2005 Express Edition [3.3] 言語:C [4] 期限:2008年2月13日8:00まで [5] その他の制限:#include <stdio.h>で使える命令のみ 一次元配列のみ
- 153 名前:デフォルトの名無しさん [2008/02/10(日) 21:10:05 ]
- [1]プログラミング
[2]時計の針2本がなす角(中学入試の算数問題でよく出題される問題) 問:キーボード上から時と分を入力し、その時間とそれを指す長針・短針 のなす角を求める。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6032.c [3] 環境 [3.1] OS:Windows [3.2] bcc32 [3.3] 言語: C [4] 期限: [2008年2月12日まで] [5]その他の制限: 入力・計算・出力部分は必ず関数化し、mainの中でそれらを呼び出すようにする なす角θを計算する部分は成功しましたが(そこまでの完成版はリンクしたプログ ラムを参照)、キーボード上から入力した時間をうまく表示することができません。出力は、 ??:?? なす角:??° とします。どうか宜しくお願いします。
- 154 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 21:11:22 ]
- >>152
#include <stdio.h> int main(void) { char *p, str[256]; scanf("%s", str); p = str; while(*p) p++; while(p--!=str) putchar(*p); return 0; }
- 155 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 21:24:02 ]
- >>154
自分の技量不足で申し訳ありませんが質問してもよろしいでしょうか? 関数の*pの*は何か意味があるのでしょうか?
- 156 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 21:24:35 ]
- >>153
>>149
- 157 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 21:24:35 ]
- >>153
void output(int s, int t, double r1) { printf("%d:%d なす角:(%.1f)°\n", s, t, (double)r1); } にしてh1とm1渡すだけじゃね?
- 158 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 21:24:52 ]
- [1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6033.txt [3] 環境 [3.1] OS: Win XP [3.2] コンパイラ名とバージョン: visual studio 2005 [3.3] 言語: C [4] 期限: 2008年2月12日午前7時00分 [5] その他の制限:色々な処理方法があるそうですが、 なるべくレベルが低い方法でよろしくおねがいします。
- 159 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 21:27:27 ]
- >>155
間接参照。
- 160 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 21:30:03 ]
- >>159
ありがとうございます!
- 161 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 21:56:55 ]
- >>158
#include <stdio.h> static int su[9], cnt; void perm(int *a, int j){ int i; if(j == 9){ int x = 0, y = 0; for(i = 0; i < 6; i++) x = 10*x + a[i]; for(i = 6; i < 9; i++) y = 10*y + a[i]; if(x%y == 0){ printf("%d / %d = %d\n", x, y, x/y); cnt++; } return; } for(i = 0; i < 9; i++) if(su[i] == 0){ su[i] = 1; a[j] = i + 1; perm(a, j + 1); su[i] = 0; } } int main(void){ int a[9]; perm(a, 0); printf("合計パターン数 = %d\n", cnt); return 0; }
- 162 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 22:35:42 ]
- >>158
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6034.txt
- 163 名前:デフォルトの名無しさん [2008/02/10(日) 23:00:27 ]
- >>144
>>145 >>146 ですが 解答はいかがでしょうか... 携帯からで見づらくて大変すいません...m(_ _)m
- 164 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 23:02:13 ]
- >>163
>>1
- 165 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 23:15:13 ]
- さすがに携帯にうpろだはきつくね?
- 166 名前:デフォルトの名無しさん [2008/02/10(日) 23:15:22 ]
- 153です。
157番さんのおっしゃる通りにしたら、「output関数における呼び出し時のパ ラメータが足りない」というエラーが出ました。157番さんの通りにプログラム を設計するなら、mainの中でoutputなどの各種呼び出しをどのようにすれば良い のか教えて下さい。プログラミングの基本である自学自習を心掛けていますが この呼び出し関数の設計などはあまり得意な方でないのでどうかお願いします。
- 167 名前:123 mailto:sage [2008/02/10(日) 23:15:37 ]
- >>141
ありがとうございます。実行してみたのですが生成される乱数が全て0になってしまいます。 srand関数を使って乱数の種を定めた時のプログラミング例を載せてみます。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6036.c どうかお願いします。
- 168 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 23:35:33 ]
- >>166
お前どうやって>>153まで自分で出来たんだ? 得意じゃないってレベルじゃねーぞ output(h1, m1, show1);
- 169 名前:デフォルトの名無しさん mailto:sage [2008/02/10(日) 23:37:49 ]
- 誰かの回答だろ
- 170 名前:153 [2008/02/10(日) 23:57:48 ]
- 正直に言うと今までに扱った内容を参考にしながらでした。
それでも不足部分は沢山あるのでそれを補えるよう努力しなければと思い ます。 ちなみにコンパイルできました。ありがとうございました。
- 171 名前:デフォルトの名無しさん [2008/02/11(月) 00:13:35 ]
- 質問!
エラーがでたわけではないのですが、VC++2003.NETで ビットマップ画像をインポートして追加しようとしたのですが、 実行するとその画像が表示されません! 実行の際には画像が切り替わっている様子がうかがえるのですが、表示されないのです。 新規作成で追加するとちゃんと表示されるのですが・・。 どなたか原因分かる方いますか?
- 172 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 00:13:39 ]
- double→int→doubleとか意味不明なことしてるし、
設計を見直すべき。
- 173 名前:デフォルトの名無しさん [2008/02/11(月) 00:17:52 ]
- >>146です
すいません 荒らしてしまって... 携帯からなんで うp無理みたいです... なんかいろいろほんとすいませんでしたm(_ _)m
- 174 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 00:21:45 ]
- >>167
「10 動的に確保したメモリの解放」 これが抜けてる以外は問題なさそうだけど。 試しに実行してみたら、ちゃんと乱数生成されてるし。
- 175 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 00:30:32 ]
- >>174
pc環境とか関係するんですかね?とりあえず学内pcにファイルを移して実行してみます。 本当にありがとうございました。
- 176 名前:50 mailto:sage [2008/02/11(月) 00:30:47 ]
- >>65〜73、87の書込みをしてくださった方々
一番難しい課題Bを解いていただき、ありがとうございましたm(__)m
- 177 名前:デフォルトの名無しさん [2008/02/11(月) 00:51:27 ]
- [1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6037.txt [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン:Visual C++ 2005 [3.3] 言語: C [4] 期限: 2月13日 [5] その他の制限:特にありません
- 178 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 01:48:02 ]
- >>173
うpろだが使えないとしても、>>1読んでテンプレくらいは使って欲しいところ まぁ推奨になってるからどうしてもテンプレは使いたくないってのなら止めないけど
- 179 名前:デフォルトの名無しさん [2008/02/11(月) 11:21:06 ]
- >>144
>>145 >>146 携帯からの投稿自体 無理がありました すいませんでした...m(_ _)m できれば解答をいただけると幸いです..
- 180 名前:デフォルトの名無しさん [2008/02/11(月) 14:34:02 ]
- [1] 授業単元:
[2] 問題文: 文字列を入力させ、それを表示するプログラムを作成せよ。 ただし、文頭にaが入力された場合はそれを表示せず、 数値が入力された場合はエラーとしてもう1度入力させること。 【実行例】 入力=jgmttgad18j ※エラー※数値が入力されました。 もう1度入力してください 入力=aaaiaueokaki 出力=iaueokaki [3] 環境 [3.1] OS:Windows Vista [3.2] コンパイラ名とバージョン: [3.3] 言語: C++ [4] 期限:2008年2月11日22:00まで [5] その他の制限: 先生が、ヒントで「フラグを使うとできるかも」といってました! よろしくお願いします!
- 181 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 14:54:09 ]
- >>180
#include <iostream> #include <string> using namespace std; int main() { while(1) { cout << "入力="; string s; cin >> s; if( s.find_first_of( "0123456789" ) == string::npos ) { cout << "出力=" << s.substr( s.find_first_not_of( "a" ) ) << "\n"; break; } else { cout << "数値が含まれるので、再度入力してください。\n"; } } return 0; }
- 182 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 18:40:08 ]
- >>180
#include <stdio.h> #include <string.h> int main(void) { char str[256]; int top; printf("入力:"); start: top=0; fgets(str,256,stdin); again0: if(str[top]>=48&&str[top]<=57){ printf("再入力:"); goto start; } if(top++<strlen(str))goto again0; top=0; again1: if(str[top]=='a'){ top++; goto again1; } printf("出力:"); again2: printf("%c",str[top++]); if(str[top]!=NULL)goto again2; return 0; }
- 183 名前:デフォルトの名無しさん [2008/02/11(月) 18:57:58 ]
- >>181
>>182 ありがとうございます! できれば入力に cin.getlineとか使うくらいの初歩のでもやってほしいんですが..(><) 入力だけでいくと #include<iostream.h> main() { char a[50] ; cout<<"a=" ; cin.getline(a,50) ; } こんな感じで・・ サーセン(・_・、)
- 184 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 19:38:23 ]
- >>180
#include <iostream> #include <string> #include <boost/regex.hpp> int main() { while (true) { std::cout << "入力: "; std::string line; if (!std::getline(std::cin, line)) break; boost::regex re_num("\\d+"); if (boost::regex_search(line, re_num)) { std::cout << "※エラー※数値が入力されました" << std::endl; std::cout << "もう一度入力してください" << std::endl; continue; } boost::regex re_str("^a+"); std::cout << "出力: " << boost::regex_replace(line, re_str, "") << std::endl; break; } }
- 185 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 19:41:23 ]
- >>183
それなら>>180の cin >> s; を char sz[50]; cin.getline(sz,50); s=sz; にすればいいが、 初歩というのは、もしかしてstringを使うなと言ってる?
- 186 名前:デフォルトの名無しさん [2008/02/11(月) 19:46:40 ]
- >>184
>>185 ありがとうございます!! stringをならってません(・_・、) ごめんなさい↓
- 187 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 20:00:14 ]
- >>186
#include <iostream> using namespace std; bool hasDigit( const char* pstr ) { while(*pstr) { if( isdigit(*pstr) ) return true; pstr ++; } return false; } int main() { while(1) { cout << "入力="; char sz[50]; cin.getline( sz, sizeof(sz) ); if( !hasDigit( sz ) ) { char* p; for( p=sz; *p=='a'; p++ ); cout << "出力=" << p << "\n"; break; } else { cout << "数値が含まれるので、再度入力してください。\n"; } } return 0; }
- 188 名前:デフォルトの名無しさん [2008/02/11(月) 22:32:23 ]
- [1] 授業単元: プログラム テスト
[2] 問題文 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6038.txt [3] 環境 [3.1] OS: WindowsXP [3.3] 言語:C言語 [4] 期限: できれば、早いとありがたいです。 よろしくお願いいたします。
- 189 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 22:44:53 ]
- [1] 授業単元:プログラミング
[2] 問題文 四問あります ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6039.zip [3] 環境 [3.1] OS: WindowsXP [3.2] コンパイラ名とバージョン: visual stdio [3.3] 言語: C [4] 期限: 2月13日の昼まで
- 190 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 22:46:32 ]
- >>188
アウエイ (50)は解なし。強いてあげればイか。
- 191 名前:189 mailto:sage [2008/02/11(月) 22:48:29 ]
- すいません
>>189には不備がありました 課題1には二つ問題があるのですが 一つtxtファイルが入ってません それを書き直したものにしますので少々待っててください
- 192 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 22:58:36 ]
- [1] 授業単元:プログラミング
[2] 問題文 5問あります ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6040.zip [3] 環境 [3.1] OS: WindowsXP [3.2] コンパイラ名とバージョン: visual stdio [3.3] 言語: C [4] 期限: 2月13日の昼まで [5]ご迷惑をおかけして申し訳ありません 期限を13日としていますが出来ればなるべく早くお願いします
- 193 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 23:07:15 ]
- >>192
どれも最近見た気がするが、これって何処の課題なんだろ。 最後の二つは、ちょっと前に俺がうpしたから間違いない。
- 194 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 23:15:21 ]
- >>193
本当ですか よろしければその解答を頂けないでしょうか
- 195 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 23:18:41 ]
- >>194
ちょっと前にうpしたって言ってるじゃん。 ホントに欲しけりゃ、スレから探して持っていけばいいさ。
- 196 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 23:30:16 ]
- >>195
ありがとうございます 4と5は解決しました
- 197 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 23:36:55 ]
- アイムジャグラーちっとも勝てません。なぜでしょうか?
ttp://www.borujoa.org/upload/source/upload16700.lzh ↓参考ページ。 ttp://www.htv-net.ne.jp/~dark/suro%20aimu%20jagura-.html
- 198 名前:デフォルトの名無しさん [2008/02/11(月) 23:37:55 ]
- >>190さん
ありがとうございます。 まぁ結果的に2級は落ちましたが.. 少しは勉強になったのでよかったです 皆さん いろいろ迷惑をかけましたがありがとうございましたm(_ _)m
- 199 名前:デフォルトの名無しさん mailto:sage [2008/02/11(月) 23:40:13 ]
- 試験の問題だったのか。
この程度だと、あんまり取る意味なさそうな気も。
- 200 名前:デフォルトの名無しさん [2008/02/12(火) 00:09:02 ]
- >>199さん
確かにそうですよね.. C2級も取れないレベルなんて 俺ってなんなんだろう... やっぱりバカなんだなぁ つくづく思います。
- 201 名前:デフォルトの名無しさん [2008/02/12(火) 00:40:36 ]
- 【質問テンプレ】 通りに書き込まなきゃいけないと思うんですが
眠くてやばいんで誰か解き方のだけ速攻教えてください。 C言語で123の数値を合計して6とするにはどうすればいいんでしょうか?
- 202 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 00:43:29 ]
- >>201
int sum=1+2+3;でおk
- 203 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 00:46:27 ]
- >>177
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6041.cpp
- 204 名前:デフォルトの名無しさん [2008/02/12(火) 00:48:33 ]
- >>202
ありがとうございます。 その数値が入力されたものの場合はどうすればいいんでしょうか><
- 205 名前:199 mailto:sage [2008/02/12(火) 00:48:33 ]
- >>200
いやいや、この程度とは言ったけど、 これを全く勉強せずに解ける人なんて居ないよ。 資格としての意味は薄いにしても、 1つの通過点にするのはいいんじゃないかな。 目標があると励みやすいし。 でさ、本当に2級を取得するだけの力をつけたいんだったら、 このスレで解答を求めたりするんじゃなくて、 自分で試行錯誤して辿り着く方が為になると思うんだけどな。 スレ違いなんでこの辺で。
- 206 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 00:51:42 ]
- >>204
int sum = val / 100 + (val / 10) % 10 + val % 10;
- 207 名前:デフォルトの名無しさん [2008/02/12(火) 00:52:05 ]
- 入力された文字列をatoiで変換→数値を合計みたいな問題でやり方がわからないんでヒントもらいたいです。
説明不足でほんとすみません。
- 208 名前:207 [2008/02/12(火) 00:54:18 ]
- >>206
ありがとうございます。
- 209 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 00:54:19 ]
- 情報を小出しにするな。
- 210 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 00:54:39 ]
- >>207
説明不足だと思うならちょっとくらい眠くてもテンプレに従えよ
- 211 名前:デフォルトの名無しさん mailto:sage [2008/02/12(火) 00:54:57 ]
- >>207
int sum = (str[0] - '0') + (str[1] - '0') + (str[2] - '0');
|

|