C/C++の宿題を片付け ..
115:デフォルトの名無しさん
08/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
08/02/09 15:08:17
>>113
ありがとうございます。 4桁の数字が、ちゃんと表示されました。
ただ、10進数の表示をしたいのですが英字まで表示されてしまいます。
引き続き、アドバイス頂けた助かります。
ほんと、すみません。
117:デフォルトの名無しさん
08/02/09 15:18:50
実行結果 (プログラム名が「toi7」の場合)
C:\>toi7 0101001100101010001010010010101010010 0
532B
1495
A401
※「C:\>」はコマンドプロンプトを示す。
118:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/02/09 16:29:45
>>119
特定しましたよ。
121:デフォルトの名無しさん
08/02/09 16:34:26
>>120
何を特定できた??
122:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/02/09 17:43:15
[1] 授業単元:プログラミング入門演習
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: (2月12日まで)
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
プログラムの一部 URLリンク(kansai2channeler.hp.infoseek.co.jp)
コンパイルできてもセグメントエラーorz どなたかお願いします。
124:110
08/02/09 17:59:53
{
int i;
for (i = 12; i >= 0; i -= 4)
*buffer++ = "0123456789"[(data >> i) & 9];
}
アドバイスいただいた、プログラムを10進数表示させようと上のように書き換えたのですが
このように書くと0189しか表示されません。
こんな簡単な奴ふざけるなと思わせてしまって申し訳ないのですが
どうか、教えていただけないのでしょうか。
初心者のスレかくのが本来ですが、マルチぽくなるのでこのまますみません。
125:デフォルトの名無しさん
08/02/09 18:14:58
>>124
data>>iで済むのは16進数だからであって、
10進数で同じ方法は考えないほうがいい。
126:デフォルトの名無しさん
08/02/09 18:20:09
>>124
{
unsigned tmp;
for(tmp=1000;tmp>0;tmp/=10)
{
*buffer++=((data/tmp)%10)+'0';
}
}
127:110
08/02/09 18:37:44
>>125>>126
アドバイスありがとうございます。無事に動作するようになりました。
ASMを勉強していてASMでの書式など有る程度把握出来てきたのですが
c言語は、書式がまるっきり分からず困っていました。
c言語は生活に十分必要な物だと思いますのでこれを機に勉強をしようとおもいます。
とても困っていたので、ほんと感謝の気持ちでいっぱいです。
ありがとうございました。
128:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/02/09 21:05:59
[1] 授業単元:プログラミング
[2] 問題文:URLリンク(kansai2channeler.hp.infoseek.co.jp)
input.txt: URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:VC
[3.3] 言語:C
[4] 期限:2月13日正午
[5] その他の制限:
計算式の記述が分かり辛いですが、どうぞよろしくお願いいたします。
131:デフォルトの名無しさん
08/02/09 22:31:45
>>130
URLリンク(kansai2channeler.hp.infoseek.co.jp)
132:デフォルトの名無しさん
08/02/10 01:19:11
>>131
ありがとうございます!
133:デフォルトの名無しさん
08/02/10 02:10:32
>>114 >>115 >>117
プログラム >>128
解答群 >>129
すいませんm(_ _)m どなたか解答をお願いします。
134:デフォルトの名無しさん
08/02/10 03:15:38
(42):ウ
(43):イ
(44):ウ
(45):ウ
但し(41)の答えが何なのか、これが分らない
135:デフォルトの名無しさん
08/02/10 03:19:59
ごめん、(45)はエだ。
但し(41)の答えがn(ry
自分でやってくれ
136:デフォルトの名無しさん
08/02/10 03:21:16
>>134
エ じゃないかな
137:デフォルトの名無しさん
08/02/10 04:10:18
>>136
一つくらい自分でやらせようとしてたんだが…
138:デフォルトの名無しさん
08/02/10 04:12:39
入門書に確実に載ってる問題を質問するようなヤツが考えるわけもない
ググってもすぐ分かるというのに
139:デフォルトの名無しさん
08/02/10 10:34:58
すいませんm(_ _)m ありがとうございます。
(41)エ
(42)ウ
(43)イ
(44)ウ
(45)エ
これでOKでしょうか?
140:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/02/10 11:35:41
>>123
これで合ってるのかな。srandがよくわからない。。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
>>140
合ってる
142:デフォルトの名無しさん
08/02/10 13:18:18
>ポインタ配列zの要素数は19個
3個だろ
143:54
08/02/10 15:24:52
答えてくれたみなさんありがとうございます!!
めっちゃかんしゃです。
144:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/02/10 16:16:12
>>146
うざいからうpロダ使ってくれないかな。
148:デフォルトの名無しさん
08/02/10 17:03:18
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク): URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3]
環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:VC
[3.3] 言語:C
[4] 期限:2月13日
[5] その他の制限:
前回は本当にありがとうございました。
今回もよろしくお願いいたします。
149:デフォルトの名無しさん
08/02/10 17:42:59
>>148
URLリンク(kansai2channeler.hp.infoseek.co.jp)
150:デフォルトの名無しさん
08/02/10 18:09:40
[1] 授業単元:パターン認識
[2] 問題文(含コード&リンク): URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3]
環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2月13日
[5] その他の制限:
動的計画法についての課題です。問題が図表付きなので圧縮しています。
151:デフォルトの名無しさん
08/02/10 20:25:53
>>149
ありがとうございました。
152:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/02/10 21:10:05
[1]プログラミング
[2]時計の針2本がなす角(中学入試の算数問題でよく出題される問題)
問:キーボード上から時と分を入力し、その時間とそれを指す長針・短針
のなす角を求める。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS:Windows
[3.2] bcc32
[3.3] 言語: C
[4] 期限: [2008年2月12日まで]
[5]その他の制限:
入力・計算・出力部分は必ず関数化し、mainの中でそれらを呼び出すようにする
なす角θを計算する部分は成功しましたが(そこまでの完成版はリンクしたプログ
ラムを参照)、キーボード上から入力した時間をうまく表示することができません。出力は、
??:?? なす角:??°
とします。どうか宜しくお願いします。
154:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/02/10 21:24:02
>>154
自分の技量不足で申し訳ありませんが質問してもよろしいでしょうか?
関数の*pの*は何か意味があるのでしょうか?
156:デフォルトの名無しさん
08/02/10 21:24:35
>>153
>>149
157:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/02/10 21:24:52
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: Win XP
[3.2] コンパイラ名とバージョン: visual studio 2005
[3.3] 言語: C
[4] 期限: 2008年2月12日午前7時00分
[5] その他の制限:色々な処理方法があるそうですが、
なるべくレベルが低い方法でよろしくおねがいします。
159:デフォルトの名無しさん
08/02/10 21:27:27
>>155
間接参照。
160:デフォルトの名無しさん
08/02/10 21:30:03
>>159
ありがとうございます!
161:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/02/10 22:35:42
>>158
URLリンク(kansai2channeler.hp.infoseek.co.jp)
163:デフォルトの名無しさん
08/02/10 23:00:27
>>144
>>145
>>146
ですが
解答はいかがでしょうか...
携帯からで見づらくて大変すいません...m(_ _)m
164:デフォルトの名無しさん
08/02/10 23:02:13
>>163
>>1
165:デフォルトの名無しさん
08/02/10 23:15:13
さすがに携帯にうpろだはきつくね?
166:デフォルトの名無しさん
08/02/10 23:15:22
153です。
157番さんのおっしゃる通りにしたら、「output関数における呼び出し時のパ
ラメータが足りない」というエラーが出ました。157番さんの通りにプログラム
を設計するなら、mainの中でoutputなどの各種呼び出しをどのようにすれば良い
のか教えて下さい。プログラミングの基本である自学自習を心掛けていますが
この呼び出し関数の設計などはあまり得意な方でないのでどうかお願いします。
167:123
08/02/10 23:15:37
>>141
ありがとうございます。実行してみたのですが生成される乱数が全て0になってしまいます。
srand関数を使って乱数の種を定めた時のプログラミング例を載せてみます。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
どうかお願いします。
168:デフォルトの名無しさん
08/02/10 23:35:33
>>166
お前どうやって>>153まで自分で出来たんだ?
得意じゃないってレベルじゃねーぞ
output(h1, m1, show1);
169:デフォルトの名無しさん
08/02/10 23:37:49
誰かの回答だろ
170:153
08/02/10 23:57:48
正直に言うと今までに扱った内容を参考にしながらでした。
それでも不足部分は沢山あるのでそれを補えるよう努力しなければと思い
ます。
ちなみにコンパイルできました。ありがとうございました。
171:デフォルトの名無しさん
08/02/11 00:13:35
質問!
エラーがでたわけではないのですが、VC++2003.NETで
ビットマップ画像をインポートして追加しようとしたのですが、
実行するとその画像が表示されません!
実行の際には画像が切り替わっている様子がうかがえるのですが、表示されないのです。
新規作成で追加するとちゃんと表示されるのですが・・。
どなたか原因分かる方いますか?
172:デフォルトの名無しさん
08/02/11 00:13:39
double→int→doubleとか意味不明なことしてるし、
設計を見直すべき。
173:デフォルトの名無しさん
08/02/11 00:17:52
>>146です
すいません 荒らしてしまって...
携帯からなんで うp無理みたいです...
なんかいろいろほんとすいませんでしたm(_ _)m
174:デフォルトの名無しさん
08/02/11 00:21:45
>>167
「10 動的に確保したメモリの解放」
これが抜けてる以外は問題なさそうだけど。
試しに実行してみたら、ちゃんと乱数生成されてるし。
175:デフォルトの名無しさん
08/02/11 00:30:32
>>174
pc環境とか関係するんですかね?とりあえず学内pcにファイルを移して実行してみます。
本当にありがとうございました。
176:50
08/02/11 00:30:47
>>65〜73、87の書込みをしてくださった方々
一番難しい課題Bを解いていただき、ありがとうございましたm(__)m
177:デフォルトの名無しさん
08/02/11 00:51:27
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:Visual C++ 2005
[3.3] 言語: C
[4] 期限: 2月13日
[5] その他の制限:特にありません
178:デフォルトの名無しさん
08/02/11 01:48:02
>>173
うpろだが使えないとしても、>>1読んでテンプレくらいは使って欲しいところ
まぁ推奨になってるからどうしてもテンプレは使いたくないってのなら止めないけど
179:デフォルトの名無しさん
08/02/11 11:21:06
>>144
>>145
>>146
携帯からの投稿自体 無理がありました すいませんでした...m(_ _)m
できれば解答をいただけると幸いです..
180:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/02/11 18:57:58
>>181
>>182
ありがとうございます!
できれば入力に
cin.getlineとか使うくらいの初歩のでもやってほしいんですが..(><)
入力だけでいくと
#include<iostream.h>
main()
{
char a[50] ;
cout<<"a=" ;
cin.getline(a,50) ;
}
こんな感じで・・
サーセン(・_・、)
184:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/02/11 19:41:23
>>183
それなら>>180の
cin >> s;
を
char sz[50]; cin.getline(sz,50); s=sz;
にすればいいが、
初歩というのは、もしかしてstringを使うなと言ってる?
186:デフォルトの名無しさん
08/02/11 19:46:40
>>184
>>185
ありがとうございます!!
stringをならってません(・_・、)
ごめんなさい↓
187:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/02/11 22:32:23
[1] 授業単元: プログラム テスト
[2] 問題文 URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: WindowsXP
[3.3] 言語:C言語
[4] 期限: できれば、早いとありがたいです。
よろしくお願いいたします。
189:デフォルトの名無しさん
08/02/11 22:44:53
[1] 授業単元:プログラミング
[2] 問題文
四問あります
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン: visual stdio
[3.3] 言語: C
[4] 期限: 2月13日の昼まで
190:デフォルトの名無しさん
08/02/11 22:46:32
>>188
アウエイ
(50)は解なし。強いてあげればイか。
191:189
08/02/11 22:48:29
すいません
>>189には不備がありました
課題1には二つ問題があるのですが
一つtxtファイルが入ってません
それを書き直したものにしますので少々待っててください
192:デフォルトの名無しさん
08/02/11 22:58:36
[1] 授業単元:プログラミング
[2] 問題文
5問あります
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン: visual stdio
[3.3] 言語: C
[4] 期限: 2月13日の昼まで
[5]ご迷惑をおかけして申し訳ありません
期限を13日としていますが出来ればなるべく早くお願いします
193:デフォルトの名無しさん
08/02/11 23:07:15
>>192
どれも最近見た気がするが、これって何処の課題なんだろ。
最後の二つは、ちょっと前に俺がうpしたから間違いない。
194:デフォルトの名無しさん
08/02/11 23:15:21
>>193
本当ですか
よろしければその解答を頂けないでしょうか
195:デフォルトの名無しさん
08/02/11 23:18:41
>>194
ちょっと前にうpしたって言ってるじゃん。
ホントに欲しけりゃ、スレから探して持っていけばいいさ。
196:デフォルトの名無しさん
08/02/11 23:30:16
>>195
ありがとうございます
4と5は解決しました
197:デフォルトの名無しさん
08/02/11 23:36:55
アイムジャグラーちっとも勝てません。なぜでしょうか?
URLリンク(www.borujoa.org)
↓参考ページ。
URLリンク(www.htv-net.ne.jp)
198:デフォルトの名無しさん
08/02/11 23:37:55
>>190さん
ありがとうございます。
まぁ結果的に2級は落ちましたが..
少しは勉強になったのでよかったです
皆さん いろいろ迷惑をかけましたがありがとうございましたm(_ _)m
199:デフォルトの名無しさん
08/02/11 23:40:13
試験の問題だったのか。
この程度だと、あんまり取る意味なさそうな気も。
200:デフォルトの名無しさん
08/02/12 00:09:02
>>199さん
確かにそうですよね..
C2級も取れないレベルなんて 俺ってなんなんだろう...
やっぱりバカなんだなぁ つくづく思います。
201:デフォルトの名無しさん
08/02/12 00:40:36
【質問テンプレ】 通りに書き込まなきゃいけないと思うんですが
眠くてやばいんで誰か解き方のだけ速攻教えてください。
C言語で123の数値を合計して6とするにはどうすればいいんでしょうか?
202:デフォルトの名無しさん
08/02/12 00:43:29
>>201
int sum=1+2+3;でおk
203:デフォルトの名無しさん
08/02/12 00:46:27
>>177
URLリンク(kansai2channeler.hp.infoseek.co.jp)
204:デフォルトの名無しさん
08/02/12 00:48:33
>>202
ありがとうございます。
その数値が入力されたものの場合はどうすればいいんでしょうか><
205:199
08/02/12 00:48:33
>>200
いやいや、この程度とは言ったけど、
これを全く勉強せずに解ける人なんて居ないよ。
資格としての意味は薄いにしても、
1つの通過点にするのはいいんじゃないかな。
目標があると励みやすいし。
でさ、本当に2級を取得するだけの力をつけたいんだったら、
このスレで解答を求めたりするんじゃなくて、
自分で試行錯誤して辿り着く方が為になると思うんだけどな。
スレ違いなんでこの辺で。
206:デフォルトの名無しさん
08/02/12 00:51:42
>>204
int sum = val / 100 + (val / 10) % 10 + val % 10;
207:デフォルトの名無しさん
08/02/12 00:52:05
入力された文字列をatoiで変換→数値を合計みたいな問題でやり方がわからないんでヒントもらいたいです。
説明不足でほんとすみません。
208:207
08/02/12 00:54:18
>>206
ありがとうございます。
209:デフォルトの名無しさん
08/02/12 00:54:19
情報を小出しにするな。
210:デフォルトの名無しさん
08/02/12 00:54:39
>>207
説明不足だと思うならちょっとくらい眠くてもテンプレに従えよ
211:デフォルトの名無しさん
08/02/12 00:54:57
>>207
int sum = (str[0] - '0') + (str[1] - '0') + (str[2] - '0');
212:207
08/02/12 00:55:23
>>206
ありがとうございます。
213:デフォルトの名無しさん
08/02/12 01:00:18
!!!!>211さん 眠気がとびました!
そっか atoiを絶対使うと思い込んでいたからできなかったのか><
'0'から引けば結果は数値と同じっすもんね・・・
本当にありがとうございました。
214:デフォルトの名無しさん
08/02/12 01:02:05
>>201 >>207
#include<stdio.h>
#include<stdlib.h>
int main(void){
char buf[16];
int n, sum = 0;
fgets( buf, 16, stdin );
n = atoi( buf );
while( n > 0 )
{
sum += n % 10;
n /= 10;
}
printf("%d\n",sum);
return 0;
}
多分こういうことがやりたいんだろうと思って答えてみる
間違っててもそれは質問の仕方が悪いと思う
215:デフォルトの名無しさん
08/02/12 01:09:38
150ですがどなたかお願いします・・・
216:デフォルトの名無しさん
08/02/12 01:16:23
>>161-162
ありがとうございます。助かりました。
217:デフォルトの名無しさん
08/02/12 03:07:47
>>150
どう表示したらいいか不明なので適当にやった
最小のものが見つかった時点で逐次表示
#include<stdio.h>
int main(void){
int cost[][4][3]={{{3,2,1},{2,3,3},{3,3,2},{0,2,0}},
{{1,1,2},{2,1,3},{3,1,2},{0,2,0}},
{{1,1,2},{1,2,3},{1,1,4},{0,3,0}},
{{3,0,0},{2,0,0},{2,0,0},{0,0,0}}},
c,cmin=9999,p,pmin=9999,x,y,i,k;
for(i=0;i<729;i++){//3^6=729
printf("(0,0)0");
for(k=i,c=p=x=y=0;x<3&&y<3;k/=3)
c+=cost[x][y][k%3],
p++,
x+=(k%3!=0),
y+=(k%3!=1),
printf("→(%d,%d)%d",x,y,c);
if(x==3&&y==3&&cmin>c)cmin=c,printf(" 最小コスト\n");
else if(x==3&&y==3&&pmin>p)pmin=p,printf(" 最短経路\n");
else printf("\r%79s\r","");
}
return 0;
}
218:デフォルトの名無しさん
08/02/12 15:32:39
>>192
課題1
#include <stdio.h>
int main(void)
{
bool exist[10000]={false,};
int temp,i=0,max,min,count=0;
FILE *fp=fopen("input8500.txt","r");
if(!fp) return 1;
while(!feof(fp)){
fscanf(fp,"%d ",&temp);
exist[temp]=true;
}
fclose(fp);
while(!exist[i++]);
min = i;
i = 9999;
while(!exist[i--]);
max = i;
for(i = 0; i < 10000;i++) if(exist[i])count++;
printf("count = %d\nmax - min = %d",count,max-min);
return 0;
}
219:デフォルトの名無しさん
08/02/12 15:38:30
>>192
課題2
#include <stdio.h>
int main(void)
{
int rank[11]={0,};
int temp,i,j;
FILE *fp=fopen("input_histo.txt","r");
if(!fp) return 1;
while(!feof(fp)){
fscanf(fp,"%d ",&temp);
rank[temp/10]++;
}
fclose(fp);
for(i=0;i<11;i++){
printf("\n%3d点台:",i*10);
for(j=0;j<rank[i];j++)printf("*");
}
return 0;
}
220:193
08/02/12 16:59:52
>>192
URLリンク(kansai2channeler.hp.infoseek.co.jp)
(1)〜(3)
221:デフォルトの名無しさん
08/02/12 20:27:04
>>218
>>219
>>220
皆さんありがとうございます
これでなんとかなりそうです><
222:デフォルトの名無しさん
08/02/12 21:21:05
先ほど質問スレで質問したのですが場違いだったようなので
こちらで質問したいと思います。
お時間がある方、ご協力いただけると幸いです。
先週からC言語について学び始めた高1です。
明日からプログラミングが学校の授業ではじまり
予習していたのですが、何度やっても思い通りの結果を表示できません
本当に基礎的な問題かも知れませんが、アドバイス、正答などいただけると幸いです。
1.5個の整数データを配列に代入し合計と平均を求めるプログラムをつくれ。
2.問1のデータの最大値を求めるプログラムをつくれ。
3.問1のデータを大きい順に並べ替えるプログラムをつくれ。
本当に程度の低い質問かもしれませんが
悩んでます><よろしくおねがいします。
223:デフォルトの名無しさん
08/02/12 21:24:37
>>1
224:デフォルトの名無しさん
08/02/12 22:06:18
>>222
#include <stdio.h>
int main(int argc, char **argv) {
static int array[5];
int i;
double sum=0.0;
if (argc==6)
{
for(i=0;i<5;i++) {
array[i]=atoi(argv[i]);
sum += array[i];
}
printf("average[%lf] sum[%d]\n", sum/5, (int)sum);
}
return 0;
}
悩んでいるというのであれば何がわからないのかくらい書くべきです。
予想すると何もわからなくて悩んでいるんですよね。
2と3は自分で考えましょう。
225:デフォルトの名無しさん
08/02/12 22:27:32
[1] 画像処理
[2] 画像ファイルを読み込み、マウスでクリックした位置の
水平垂直方向の輝度を表示せよ。
[3.1] Windows XP
[3.2] Visual C++2005 ExpressEdition
[3.3] C++
[4] 期限: 無期限
[5] その他の制限:とくになし。
ファイルダイアログでpicturebox1に画像ファイルを取り込んで、
getpixelでRGB値を取得しています。
pictureboxは640*480なのですが、画像サイズが640*480以外だと、
エラーが出たり、マウスの位置と、取得したRGB値が一致しません。
どうしたものだろうか?
private: System::Void pictureBox1_MouseMove(System::Object^ sender, System::Windows::Forms::MouseEventArgs^ e) {
Graphics^gr=this->CreateGraphics();
Bitmap^bm = (Bitmap^)(pictureBox1->Image);
int w = pictureBox1->Image->Width; int h = pictureBox1->Image->Height;
int z = 480/h;
int x=e->X/z; int y=e->Y/z;
gr->FillRectangle(Brushes::Black,Rectangle(700,27,128,480));
gr->DrawLine(Pens::LightGray,700+64,27,700+64,27+480);
if(x<w && y<h ){
for (int y=0;y<h-1;y++) {
Color c=bm->GetPixel(x,y);
//平均輝度
int r=c.R; int g=c.G; int b=c.B;
int rgbdiv = (int)((r+g+b)/3);
Color c2=bm->GetPixel(x,y+1);
int r2=c2.R; int g2=c2.G; int b2=c2.B;
int rgbdiv2 = (int)((r2+g2+b2)/3);
gr->DrawLine(Pens::Red,700+rgbdiv/2,27+y*z,700+rgbdiv2/2,27+(y+1)*z);
} } }
226:デフォルトの名無しさん
08/02/12 22:44:17
C++/CLI ?
227:デフォルトの名無しさん
08/02/12 23:12:51
C#?
228:デフォルトの名無しさん
08/02/12 23:21:25
.net
229:デフォルトの名無しさん
08/02/13 01:36:59
>>217
ありがとうございました。
230:デフォルトの名無しさん
08/02/13 10:19:22
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
問題文: URLリンク(kansai2channeler.hp.infoseek.co.jp)
input.txt: URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:visual stdio
[3.3] 言語:C
[4] 期限:2月13日中
[5] その他の制限:
期限間近ではありますが、よろしくお願いいたします
231:デフォルトの名無しさん
08/02/13 10:44:46
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
URLリンク(www.uploda.net)
待ち行列の問題です。
pdfの11ページに載っています。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 本日23:59まで
その他の制限: 特になし
丸投げです。よろしくお願いします。
232:デフォルトの名無しさん
08/02/13 13:50:42
>>230
URLリンク(kansai2channeler.hp.infoseek.co.jp)
233:デフォルトの名無しさん
08/02/13 14:43:34
ひどいな
234:デフォルトの名無しさん
08/02/13 14:47:34
ひどすぎるな
235:デフォルトの名無しさん
08/02/13 14:54:57
>while(!feof(fp)){
> fscanf(fp, "%d", &temp);
> data[temp]++;
> }
>while(count <= 100)
236:デフォルトの名無しさん
08/02/13 15:02:22
晒しage
237:デフォルトの名無しさん
08/02/13 15:30:21
>>231
URLリンク(kansai2channeler.hp.infoseek.co.jp)
238:デフォルトの名無しさん
08/02/13 16:19:12
>>230
URLリンク(kansai2channeler.hp.infoseek.co.jp)
239:デフォルトの名無しさん
08/02/13 20:12:05
チョンのあやかり創価学会
偽善者が政治活動、公明党
ニセ仏教、騙されバカ信者、池田犬作チョン大教祖様、さっさと死ねや
カルトキチガイ・創価騙されバカ信者
カルト・キチガイ・偽善政治活動・公明党
カルト・キチガイ・偽善政治活動・公明党
カルト・キチガイ・偽善政治活動・公明党
240:デフォルトの名無しさん
08/02/13 20:44:17
>>232
>>238
期限間近のものを本当にありがとうございました。
241:デフォルトの名無しさん
08/02/13 20:48:28
>>232は荒らしだから礼は言わなくてよし。
242:デフォルトの名無しさん
08/02/13 21:01:17
>>241
今、実行できる環境がないのですが>>232はなぜ荒らしなのでしょうか。
243:デフォルトの名無しさん
08/02/13 21:08:23
表面上問題文で要求された結果は返すけど、
拡張性が無く再利用できないアルゴリズム。
fclose()してない。
こんなの宿題で提出されたら俺なら赤点つける。
244:デフォルトの名無しさん
08/02/13 21:14:18
>>243
荒らしのプログラムにも気付けない自分が情けないです…
詳しい説明ありがとうございました。
245:デフォルトの名無しさん
08/02/13 22:04:07
宿題丸投げしてる時点で情けないけどな
246:デフォルトの名無しさん
08/02/13 22:20:41
>>243
>>232読んでみたがこれで十分だろ
題意は満たしてるし、時間・空間計算量も小さくなるように組まれてるしな
拡張性について指定がない以上、こういうのも一つの解としてありだろ
247:デフォルトの名無しさん
08/02/13 22:28:18
学生の宿題なんだからむしろ質素な方がいいと思うのですが
>>243さんは一体何のつもりなんでしょうか(苦笑
248:デフォルトの名無しさん
08/02/13 22:36:48
ここはIDが出ないから自演が楽でいいなw
249:デフォルトの名無しさん
08/02/13 22:42:48
>>246
題意満たしてるか?
250:デフォルトの名無しさん
08/02/13 22:42:52
自演以外でいちいち擁護する奴なんていないしなw
251:デフォルトの名無しさん
08/02/13 22:43:53
>>249
何か条件抜けてるか?
252:デフォルトの名無しさん
08/02/13 22:48:30
|┃三 / ̄\
|┃ | |
|┃ \_/
ガラッ. |┃ |
|┃ ノ// ./ ̄ ̄ ̄ \
|┃三 / ::\:::/:::: \
|┃ / <●>::::::<●> \
|┃ | (__人__) | 俺なら赤点つける
|┃三 \ ` ⌒´ /
|┃三 / ̄ ̄ ̄ ̄ ̄ ̄ ̄ \
253:デフォルトの名無しさん
08/02/13 22:48:33
>>235
254:デフォルトの名無しさん
08/02/13 22:54:02
>>251
合格者がちょうど100人の時にカウントがずれる。
<にすべき比較を<=にしてるという初心者のようなミス。
fclose()していない。
仮にあれが荒らしじゃないとすれば、無能であるという自覚の無い初心者。
ある意味荒らしよりたちに負えない。
255:デフォルトの名無しさん
08/02/13 22:55:30
|┃三 / ̄\
|┃ | |
|┃ \_/
ガラッ. |┃ |
|┃ ノ// ./ ̄ ̄ ̄ \
|┃三 / ::\:::/:::: \
|┃ / <●>::::::<●> \ 表面上問題文で要求された結果は返すけど、
|┃ | (__人__) | 拡張性が無く再利用できないアルゴリズム。
|┃三 \ ` ⌒´ /
|┃三 / ̄ ̄ ̄ ̄ ̄ ̄ ̄ \
256:デフォルトの名無しさん
08/02/13 22:57:38
|┃三 / ̄\
|┃ | |
|┃ \_/
ガラッ. |┃ |
|┃ ノ// ./ ̄ ̄ ̄ \
|┃三 / ::\:::/:::: \
|┃ / <●>::::::<●> \ 題意は満たしてるし、時間・空間計算量も小さくなるように組まれてるしな
拡張性について指定がない以上、こういうのも一つの解としてありだろ
|┃三 \ ` ⌒´ /
|┃三 / ̄ ̄ ̄ ̄ ̄ ̄ ̄ \
257:デフォルトの名無しさん
08/02/13 22:59:46
|┃三 / ̄\
|┃ | | ←これなに?
|┃ \_/
ガラッ. |┃ |
|┃ ノ// ./ ̄ ̄ ̄ \
|┃三 / ::\:::/:::: \
|┃ / <●>::::::<●> \
|┃ | (__人__) |
|┃三 \ ` ⌒´ /
|┃三 / ̄ ̄ ̄ ̄ ̄ ̄ ̄ \
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4968日前に更新/299 KB
担当:undef