C/C++の宿題をやらせろや!!!
レス数が1000を超えています。これ以上書き込みはできません。
0001C++厨 ◆vKuy6bx7T2
NGNG今まで1年*ヶ月、ほとんど毎日休まず一生懸命C++を勉強してきた。
ついでに今はJavaと基本情報もやっている。
わからない宿題若しくは処理があったら私にやらせてくださいm(_ _)m
前スレ(2代目): http://pc3.2ch.net/test/read.cgi/tech/1039772622/l50
宿題手伝いますYO!!: http://pc3.2ch.net/test/read.cgi/tech/1038024989/l50
0002デフォルトの名無しさん
NGNG0004デフォルトの名無しさん
NGNG0005C言語
NGNG0006デフォルトの名無しさん
NGNG更に言えば、前スレは2代目じゃねえ。
0007デフォルトの名無しさん
NGNGc++厨のくせにポインタを知らなかったんだよ>>1は。
こんなリスト構造作ったら赤点どころかハングアップもしかねん。
0008デフォルトの名無しさん
NGNG0009デフォルトの名無しさん
NGNG0010デフォルトの名無しさん
NGNGそれはあなたの思い込み
0011デフォルトの名無しさん
NGNGそんな事ないと思うぞ。運子は確かに臭いです。食えません。
0012デフォルトの名無しさん
NGNG食えると思えば食える
食う人もいるのですから
0013デフォルトの名無しさん
NGNGウンコって食うと苦い味がするそうですが、本当ですか!?
0014デフォルトの名無しさん
NGNGぜひお試しください
0015デフォルトの名無しさん
NGNG食糞健康法って奴ですね。
失敗すると即死するという諸刃の剣らしいですから、注意して
試してみます。
でも、できれば自分の糞でなくて彼女の糞、それも下痢弁を
食べてみたいです。
0016デフォルトの名無しさん
NGNG0017デフォルトの名無しさん
NGNG学校の宿題で全然わからず困っております。問題は以下の通りです。
[問題]CPUのシミュレータ
CPUの動作を模擬するプログラムを書いてみよう。
CPUは、命令をメモリから取り出し、その命令に基づいた動作をする。
動作は例えばメモリからデータを読み出してCPU内のレジスタにコピーしたり、加減乗除演算をしたりする。
この一連の動きを真似るプログラムを書く。
CPUは、8ビット演算、メモリ容量は32ワード、入出力は2進数で表示。
動作の検証には、簡単なプログラムをメモリ上に用意し、
それを1ステップごとに実行した結果を表示する。
命令部分はswitch文を使うのはわかるのですが、
2進数による入出力というのができず、全体的にどのようにすれば良いかもわかりません。
どうかお願いします。
0018デフォルトの名無しさん
NGNGマルチ氏ね
CASL/COMETでも出しとけ
0020デフォルトの名無しさん
NGNG0021デフォルトの名無しさん
NGNG0022C++厨 ◆vKuy6bx7T2
NGNGわかりにくかった、すまん。
0023デフォルトの名無しさん
NGNG0024IP記録実験
NGNGhttp://qb.2ch.net/test/read.cgi/accuse/1042013605/
1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 投稿日:03/01/08 17:13 ID:???
そんなわけで、qbサーバでIPの記録実験をはじめましたー。
27 名前:心得をよく読みましょう 投稿日:03/01/08 17:20 ID:yL/kYdMc
SETTING.TXT管轄でないということは全鯖導入を視野に、か?
38 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:22 ID:rLfxQ17l
>>27
鋭いです。
73 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:27 ID:rLfxQ17l
>ところで、IPが抜かれて何か今までと変わることってあるのでしょうか?
・今までより、サーバが重くなる。
・裁判所や警察からの照会があった場合にはIPを提出することがある。
0025デフォルトの名無しさん
NGNGint型i×jの配列(2次元)においてある条件に達した成分だけを
消す(表示しない)方法を教えてください。
0026デフォルトの名無しさん
NGNG用件がよくわからんが、printf() とかに if でもつけたらどうだ?
0027デフォルトの名無しさん
NGNGバイソン
0028デフォルトの名無しさん
NGNG中傷・犯罪予告するなら今のウチという事ですか・・・・・・・・。
0029デフォルトの名無しさん
NGNG0030デフォルトの名無しさん
NGNGsin関数を使うとき、引数となる角度の単位はラジアンでお願いします。
0031デフォルトの名無しさん
NGNG#include <math.h>
#define PI 3.1415926535
#define rad (dig/360)*2*PI
int main()
{
int dig;
double res;
for(dig = 0; dig <= 360; dig+=10)
{
res = sin(rad);
}
}
はい。計算するプログラム。
表示とかしてないけど。
0033デフォルトの名無しさん
NGNG0034デフォルトの名無しさん
NGNG2ちゃんねるのお勧めな話題と
ネットでの面白い出来事を配送したいと思ってます。。。
===============================読者数: 138720人 発行日:2003/1/9
年末年始ボケがそろそろ収まり始めた今日このごろのひろゆきです。
そんなわけで、年末に予告したIP記録ですが実験を開始しています。
「2ちゃんねる20030107」
こんな感じで各掲示板の最下部に日付が入ってるんですが、
20030107以降になってるところはログ記録実験中ですー。
んじゃ!
────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────
0035初心者です
NGNG・
・
char型のポインタを宣言したあとに、標準入力からポインタに文字列を格納したいのですが・・・。
scanf("%s",str);
だと格納できないと聞きました。(入門書に書いてあった。)
なにか、この状況でポインタに文字列を格納する方法はないのでしょうか?
誰かご教授おねがいします。(゜゜)(。。)ペコリ
0036名無し募集中。。。
NGNGポインターに文字列を入れようとしてる時点で君は終わっている・・・
0037デフォルトの名無しさん
NGNGchar ch[80];
char *str = ch;
scanf("%s", str);
0038C++厨
NGNG初めましてこんにちわ。C++厨です。
Cは忘れましたが適当に
char *str = (char*)malloc(sizeof(char)*256);
scanf("%s", str);
どうでしょうか。
0039C++厨
NGNGも忘れないでね、書いてないけど。
0040デフォルトの名無しさん
NGNG0041デフォルトの名無しさん
NGNGS<=(P-R)*t/(1-pow(1+t,-n))
という演算をやろうとすると
0で割っています、と言われます。
何故でしょうか?
尚、S,R,P,nはintで、tはdoubleです。
0042デフォルトの名無しさん
NGNGでもぜんぜん書き込めないね
004341
NGNGいえ、n=1で始めています。
0044デフォルトの名無しさん
NGNG0045デフォルトの名無しさん
NGNGdouble z;
z=1-pow(1+t,-n);
if(!z) return;
S<=(P-R)*t/z;
でにげ
004641
NGNGこの場合、桁あふれを起こさないようにするには
Sをdoubleにしておけばいいのでしょうか?
004741
NGNGすみません、私の勉強不足で
if(!z) return;
の意味が分かりません。
理解できたら使ってみます・・・
0048デフォルトの名無しさん
NGNGを分かりにくくして「俺C言語得意だぜ」と自己満足する書き方。
0049たろう
NGNGa0YaAya56m1a23yaiay5Aka4ya0Ay1AiaY2ata00yata4Yay
このような文字列を引数として渡すとその戻り値は何になるか。
$pass = &ayaya('a0YaAya56m1a23yaiay5Aka4ya0Ay1AiaY2ata00yata4Yay');
sub ayaya{
$string = @_[0];
$string =~ s/\d+//g;
$string =~ s/aya//ig;
return $string;
}
005041
NGNG自己満足はともかく、勉強になります・・・
おかげさまで解決しました。
下らない質問に付き合っていただき、有難うございました。
0051デフォルトの名無しさん
NGNGS<=(P-R)*t/(1.0-pow(1.0+t,-n));
ではだめすか?
0052デフォルトの名無しさん
NGNGこれでC言語ってコンパイルできるの?
0053デフォルトの名無しさん
NGNGスレが読み辛い…。
0054超初心者(1/2)
NGNGこれだとうまくいくんですが、私がやりたいのは
#define N 9で指定している部分を自分で入力したいというものなんですが
何度やってもうまく行きません…。
助言をお願いいたします。
0055超初心者(2/2)
NGNG#define N 9
void main(void)
{int hojin[N+1][N+1],i,j,k;
if (N%2==0)
{printf("エラー!奇数にしてよ\n");}
else{
j=(N+1)/2; i=0;
for(k=1; k<=N*N; k++)
{
if(k%N==1)
i++;
else{
i--; j++;
}
if(i==0)
i=N;
if(j>N)
j=1;
hojin[i][j]=k;
}
printf("魔方陣(一辺%d)\n",N);
for(i=1; i<=N; i++)
{
for(j=1;j<=N; j++)
printf("%4d",hojin[i][j]);
printf("\n");
}
}
}
0056デフォルトの名無しさん
NGNGここを動的確保しないとだめ
0057デフォルトの名無しさん
NGNGおまい必死だなw
0058デフォルトの名無しさん
NGNG#include <malloc.h>
void main(void){
int n,i,j,k;
int *hojin;
printf("入力しやがれ:");
scanf("%d", &n);
hojin=(int*)malloc(sizeof(int)*(n+1)*(n+1));
if(hojin==NULL) return;
if (n%2==0) printf("エラー!奇数にしてよ\n");
else{
j=(n+1)/2; i=0;
for(k=1; k<=n*n; k++){
if(k%n==1) i++;
else i--; j++;
if(i==0) i=n;
if(j>n) j=1;
*(hojin+i*n+j)=k;
}
printf("魔方陣(一辺%d)\n",n);
for(i=1; i<=n; i++){
for(j=1;j<=n; j++) printf("%4d",(int)*(hojin+i*n+j));
printf("\n");
}}
free(hojin);
} // こんなかんじ?
0059デフォルトの名無しさん
NGNGでも確保と開放がちょっとめんどう
int **hojin;
hojin=(int**)malloc(sizeof(int*)*(N+1));
for(i=0;i<N+1;i++)
hojin[i]=(int*)malloc(sizeof(int)*(N+1));
for(i=0;i<N+1;i++)
free(hojin[i]);
free(hojin);
0060デフォルトの名無しさん
NGNG原告の主張「内容証明が届いた時点で、名誉毀損を知りえたから、
削除する義務があるはず」というのは、
訴状が届いた時点で削除すれば問題なってことかな。
0061デフォルトの名無しさん
NGNG原告の主張「内容証明が届いた時点で、名誉毀損を知りえたから、
削除する義務があるはず」というのは、
訴状が届いた時点で削除すれば問題なってことかな。
0062デフォルトの名無しさん
NGNG違います(w
もう、だめぽ。
君は頭の作りを変えないと理解できないようだ。
訴状でも名誉毀損だと確定してるはずが無いだろう。
だから「認識しえた」といってるんだよ。
その説明は>>50あたりだな。
0063デフォルトの名無しさん
NGNG書いた奴を特定して差し出せばいいのにね。ネットカフェなら
ネットカフェにも問題がある。
このままでは他にも訴えられるだろ。
0064質問
NGNG5つの数値を入力した時に、その平均、最大値、最小値を求める
プログラムを作れ.(実数も計算できるようにする)
なお,配列,繰り返し文(3種類のうちどれか)
を使用して作成せよ.
0065デフォルトの名無しさん
NGNG0066& ◆FqjYALgRwE
NGNG猪木でもタツナミでもだれでもいいから、教えてクレイ。
0067デフォルトの名無しさん
NGNG0068デフォルトの名無しさん
NGNGえーっと…それくらいが自分でできるようにならなきゃ
Cやる意味ないよ。
0069デフォルトの名無しさん
NGNGていうか仕様さえ教えてくれれば作るからさぁ。。
0070取り合えず
NGNG0071デフォルトの名無しさん
NGNG0072デフォルトの名無しさん
NGNGタイプミス
スマソ
0073デフォルトの名無しさん
NGNG名前(アルファベット)五人分入力
↓
辞書式に並び替える
↓
"meido.doc"ファイルに書き込む
というプログラムを教えてください。
まじ困ってます、お願いします。
0074デフォルトの名無しさん
NGNG0075デフォルトの名無しさん
NGNGできればもうちょい詳しく全体を・・
全くの初心者なもんで。
0076デフォルトの名無しさん
NGNGint main()
{
std::multiset<std::string> names;
const std::multiset<std::string>::size_type max_num = 5;
std::string buf;
char c;
std::cout << "input names." << std::endl;
while(std::cin.get(c))
{
if (c == '\n')
{
if (!buf.empty())
{
names.insert(buf);
buf.erase();
if (names.size() >= max_num)
break;
}
}
else
buf += c;
}
std::cout << std::endl << "output." << std::endl;
std::copy(names.begin(), names.end(), std::ostream_iterator<std::string>(std::cout, "\n"));
return 0;
}
0077デフォルトの名無しさん
NGNG0078デフォルトの名無しさん
NGNGstd::copy(names.begin(), names.end(), std::ostream_iterator<std::string>(std::ofstream("meido.doc"), "\n"));
だな。
0079デフォルトの名無しさん
NGNG普通に求めにかかると絶対にオーバーフローしてしまいます。
どうすればいいですか?
よろしくお願いします。
0080デフォルトの名無しさん
NGNG0081デフォルトの名無しさん
NGNGその問題をだしたヤシを頃す。
0082デフォルトの名無しさん
NGNG0083デフォルトの名無しさん
NGNG「多倍長計算」 で Google すれば色々見つかるよ。
0084デフォルトの名無しさん
NGNGperlかと思ったらrubyなのね。
0085デフォルトの名無しさん
NGNGint colorAlloc = 256 * sizeof(RGBQUAD); // size of color tables
int bitsAlloc = infoHeader.biSize + colorAlloc;//+ infoHeader.biSizeImage;
pMapBits = (LPBITMAPINFO)new BYTE[bitsAlloc];
memset(pMapBits,80,bitsAlloc*sizeof(BYTE));
pMapBits->bmiHeader = infoHeader;
LPSTR pColor = ((LPSTR)pMapBits + (WORD)(pMapBits->bmiHeader.biSize));
for (i = 0; i < 256; i++)
((WORD*)pColor)[i] = i;
0086デフォルトの名無しさん
NGNGint型のcolorAllocに256にRGBQUADのサイズをかけてを代入
int型のbitsAllocにinfoHeader.biSizeにcolorAllocを足して代入
以下略
0087デフォルトの名無しさん
NGNG0088デフォルトの名無しさん
NGNGmemsetと、最後の、((WORD*)pColor)はパレットの格納に
しては妙だけど。
0089デフォルトの名無しさん
NGNGこの野郎!
と言おうと思ったけどIP晒されるのでやめた
0090デフォルトの名無しさん
NGNGうようよいるだろうし
0091デフォルトの名無しさん
NGNGよ。
俺はお前を赦さない。
ネットの匿名性を悪用したお前を絶対に赦さない。
たいていのことは金で解決できる。
そう、お前が何処の誰であるかも金さえ積めば分かるのがこの社会のいいところだ。
嘘だと思って笑っていればいい。
俺は人捜しのプロだ。
毎日毎日借金を踏み倒して消えた奴を捜し回ってるんだよ。
ネットの卑怯者を捜したことはないが同じだ。
見つけられないのは金をかけないからだ。
そりゃそうだ。100万しか借金がない奴を100万かけて捜す馬鹿はいない。
今回は、金は問題じゃない。俺はお前を必ず捜し出す。
ホームで1番前には立たないことだ。
階段を降りる時は、まず後ろを見てからにしろ。
これから一生車には乗らない方がいいだろう。
お前やお前の家族に不幸があったら俺を思い出せ。
偶然かもしれないが、俺がやったのかもしれない。
俺はお前が1番大切にしているものを奪ってやる。
子供ができたら気をつけろ。
殺されたくなければ24時間お前の手元に置いた方がいい。
幼稚園にも小学校にも行かせず24時間お前の側に置くべきだ。
川や海に遊びに行くなどもっての外だ。俺がお前の子供を深みに引きずり込んでやる。
娘なら強姦して嬲り殺してやる。
息子なら正視できないような死体にしてお前に届けてやる。
その時は俺を思い出せ。そして自分が犯した愚劣な行為を思い出せ。
その時のお前の顔を拝むのが今から楽しみだ。
0092超初心者2(1)
NGNG#define KEISAN "==============================================\n"
/* 関数のプロトタイプ宣言 */
void data_read(void); void data_disp(void); void the_end(void);
/* グローバル変数の宣言 */
int bango[100], kokugo[100], suugaku[100], jyohou[100]; float heikin[100];
int n, i;
main()
{ int k; do{
/* 初期メニュー画面 */
clrscr(); gotoxy(26,3); printf("********* 成績処理 *********\n");
gotoxy(25,5); printf("データファイルの読み込み・・・・・【1】");
gotoxy(25,7); printf("成績一覧表・・・・・・・・・・・・・・・・・・・【2】");
gotoxy(25,9); printf("終わり・・・・・・・・・・・・・・・・・・・・・・・【3】");
gotoxy(25,11); printf("処理番号を入力して下さい");
gotoxy(50,11); scanf("%d", &k);
0093超初心者2(2)
NGNGcase 2:data_disp(); break; case 3:data_end() ; break;
default: ; break; } }while(k<4); return(0); }
/* データファイルの読み込み */
void data_read(void) { char f_name[30]; FILE *fp;
int b, k, s, j;
gotoxy(20,7); printf("データファイル名を入力して下さい");
scanf("%s", f_name);
/* データファイルのオープン */
fp=fopen(f_name, "r"); if(fp==NULL){ printf("ファイルがオープンできません\n");
getch(); exit(0); }
/* データの読み込み */
n=1; while((fscanf(fp, "%d%d%d%d", &b, &k, &s, &j)) != EOF){
bango[n]=b; kokugo[n]=k; suugaku[n]=s; jyohou[n]=j; n=n+1; } n=n-1;
gotoxy(20,9); printf("データファイルを読みました。\n");
gotoxy(20,11); printf("どれかのキーを押して下さい。\n");
getch(); fclose(fp); }
0094超初心者2(3)
NGNGvoid data_disp(void) {
/* 3科目の平均の計算 */
for(i=1; i<=n; i++){ heikin[i]=(kokugo[i]+suugaku[i]+jyohou[i])/3.0; }
gotoxy(5,2); printf("*****成績一覧表*****\n");
printf(KEISAN); printf(" 番号 国語 数学 情報 平均\n");
for(i=1;i<=n;i++){
printf("%5d %5d %5d %5d %6.1f\n", bango[i], kokugo[i], suugaku[i], jyohou[i], heikin[i]);}
printf(KEISAN); getch(); }
/* プログラム終了 */
void the_end(void) { clrscr(); gotoxy(20,9); printf("成績処理の作業を終わります。\n");
gotoxy(20,11); printf("今後に期待します。"); getch(); exit(0); }
0095超初心者2(4)
NGNGgotoxy(25,7); printf("・・・覧 \
^
8-3.c(25) : Lexical error: undefined escape sequence
printf("*****・・・覧 \*****\n");
^
8-3.c(80) : Lexical error: undefined escape sequence
--- errorlevel 1
というエラーが発生して、実行できません。
どうしても原因がわかりません。よろしくお願いします。
0096デフォルトの名無しさん
NGNG0097デフォルトの名無しさん
NGNG昔、gccだかでSJISを通そうとしたら
似たような現象が起きた。
多分、日本語を正式にサポートしてないコンパイラを
使っているせいだと思う。
0098超初心者2
NGNGアドバイスありがとうございます。
この部分を修正したら、コンパイルはできましたが、
gotoxyとclrscrが未定義というエラーがでました。
#include<conio.h>を定義してもなぜか認識されません。
コンパイラの問題でしょうか?
0099デフォルトの名無しさん
NGNGさらに、そのプログラムはどこから拾ってきた?
0100超初心者2
NGNGOSはWINDOUS98
コンパイラはDIGITAL MARS
このプログラムは教科書の問題で学生番号と国語、数学、情報の3科目の
成績のデータファイル(ファイル名seiseki.dat)を作成しなさい。
という問題です。>>92の下から3から5行目のようなメニュー形式にすることが
条件です。
0101デフォルトの名無しさん
NGNGWINDOUS98 WINDOUS98
ゲラゲラ ゲラゲラ
ゲラゲラゲラゲラ
0102デフォルトの名無しさん
NGNGhttp://news2.2ch.net/test/read.cgi/newsplus/1042202364/
0103デフォルトの名無しさん
NGNG0104デフォルトの名無しさん
NGNG2ちゃんねるのお勧めな話題と
ネットでの面白い出来事を配送したいと思ってます。。。
===============================読者数: 139038人 発行日:2003/1/10
なにやら、連日メルマガだしてるひろゆきです。
そんなわけで、ログ記録実験ですが、いちいちサーバ指定するのが面倒なので、
全部のサーバに入れてみました。
重くなって落ちたりしてもご愛嬌ってことで。。。
んじゃ!
────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────
0105Cがさっぱり
NGNG碁盤目上のマス目を作ってそこに数値を入れるにはどうしたらいいんでしょうか?
よろしくお願いします。
0106デフォルトの名無しさん
NGNG0107Cがさっぱり
NGNG0108デフォルトの名無しさん
NGNG0109デフォルトの名無しさん
NGNGコンソールアプリなら罫線使って作れよ
─┌┐┘└├┬┤┴┼
0110Cがさっぱり
NGNGわかりました。
すぐに答えてもらってありがとうございました!
0111デフォルトの名無しさん
NGNG0112デフォルトの名無しさん
NGNG0113デフォルトの名無しさん
NGNG>荒らしとか犯罪のためなの?
そす。
246 名前:心得をよく読みましょう[] 投稿日:03/01/08 17:52 ID:BH998yxV
>ひろゆき
俺のお気に入りのスレとか荒されてるんだがそういうのにも有効?
257 名前:ひろゆき ◆3SHRUNYAXA [] 投稿日:03/01/08 17:53 ID:rLfxQ17l
いずれは。
0114デフォルトの名無しさん
NGNG0115デフォルトの名無しさん
NGNG0116デフォルトの名無しさん
NGNG0117デフォルトの名無しさん
NGNG0118デフォルトの名無しさん
NGNG0120デフォルトの名無しさん
NGNG0121デフォルトの名無しさん
NGNGごくろうさまです。
0122デフォルトの名無しさん
NGNGふるう暴力〈ドメスティックバイオレンス―DV〉は、
家庭内で起こる暴力のため、なかなか表面化することはありません。
しかし、社会的、経済的、肉体的に優位に立つ男性が、
弱い立場にある女性をさまざまな暴力で支配しようとする行為は、
「夫婦げんか」などの個人的事情、個別的問題の範囲を越え、
女性の人権を侵害する明らかな犯罪です。
http://www.awf.or.jp/boutai/a_01.html
0123デフォルトの名無しさん
NGNG0124デフォルトの名無しさん
NGNG違う場所を指すのは何故ですか?
#include <stdio.h>
int main( void ){
int a[2][3],i,j;
for( i = 0 ; i < 2 ; i++ ){
for( j = 0 ; j < 3 ; j++ ){
printf("%p %p\n",&a[i][j],a+i+j);
}
}
return 0;
}
--結果
0xbfbff8ac 0xbfbff8ac
0xbfbff8b0 0xbfbff8b8
0xbfbff8b4 0xbfbff8c4
0xbfbff8b8 0xbfbff8b8
0xbfbff8bc 0xbfbff8c4
0xbfbff8c0 0xbfbff8d0
0125デフォルトの名無しさん
NGNGa+i*3+jとなら同じにならない?
0126デフォルトの名無しさん
NGNGコンパイラが"a"という配列名をint3つ分と解釈しているためだと思う。
だから、"a+1"とかすると(intのサイズ)×3×1のアドレスを指す。
0127デフォルトの名無しさん
NGNGjが1増加すると&a[i][j]は4、a+i+jは12増加している。
ではiは?
0128デフォルトの名無しさん
NGNGcan't open: Stdio.h: No such file or directoryってエラーが出ました。
環境設定が間違ってるのかな?こんな初心者にどうか愛の手を(m_ _m)
0129C++厨
NGNGaの型がint [2][3](int (*)[3])の為。
0130C言語
NGNGもう解決済みだと思うが、大文字と小文字を区別しないとダメだと思う。
同じくド素人からの考え。
× #include <Stdio.h>
○ #include <stdio.h>
0131デフォルトの名無しさん
NGNGstdio.h は全部小文字。
0132デフォルトの名無しさん
NGNG"空"とだけ書いたファイルから
fwscanf(fp, L"%s", str);
で読み込ませると
printf("%x%x", str[0], str[1]) で 8bf3 となって
str[0]に2バイト文字として読み込んでくれないのですが
どうしてなんでしょうか("空"のSJISコードは8bf3)
wcscpy(str, L"空");とすると
printf("%x", str[0]);が 7a7a
wcscpy(str, "空");とすると
printf("%x", str[0]);が f38b
となります
やりたいことは
fwscanf(fp, L"%s", str);
if( wcscmp(str, L"空") == 0 ){・・・}
といった感じのことをやりたいのですが
どうしても上に書いた様になって
条件文が成立してくれません
0133132
NGNGバイナリモードで開いたら
fwscanf(fp, L"%s", str);
if( wcscmp(str, "空") == 0 ){・・・}
がいけるようになりました
あと wcscpy(str, L"空") としても wcscpy(str, "空")
としても
wprintf(L"%s", str);
で"空"と表示されないのはどうしてでしょうか
0134デフォルトの名無しさん
NGNG思わず笑ってしまった。C言語を考えすぎて疲れた時に、
ちょっと頭を冷やす意味で見てみて。
ttp://www.imasy.or.jp/~yotti/lang_c/c_quiz.html
0135デフォルトの名無しさん
NGNG0136デフォルトの名無しさん
NGNG(トリップ便乗!)
0137デフォルトの名無しさん
NGNGsports3 サーバ html 化はいります。
0138デフォルトの名無しさん
NGNGどうソートすればいいんですか
0139デフォルトの名無しさん
NGNG0140デフォルトの名無しさん
NGNG>a+i+j
a[1][0],a[0][1]
をどう区別するつもりだ?
0141138
NGNG014241続き
NGNG>wprintf(L"%s", str);
>で"空"と表示されないのはどうしてでしょうか
%s (小文字)が原因。ワイド文字は、%S (大文字)。
IP記録実験がはじまってから、変な顔文字が各板に貼られているのを見かけるのですが、
あれはなんの意味があるのでしょうか?
※)スレ違いなこと書いてスマソっす。
0143142
NGNGこのスレの41とは関係ないっす。
0144デフォルトの名無しさん
NGNG0145PGバイト人(学生)
NGNGa[?] = "beadc";
sort(a);
cout << a << endl;
結果:
abcde
て事かい?
0146デフォルトの名無しさん
NGNG(実行結果)
行を入力して下さい:My name is Yukari.
単語:My 単語:name 単語:is 単語:Yukari
行を入力して下さい:空行
総行数=1 総単語数=4
というふうなプログラムなんです。
とりあえず自分で思いつく限り参考書とかみて下のように
途中まで作ってみてものの何だかよくわからない形に…
単語がみつからなくなるまで呼び出しておいて表示させる方法と
その時見つからない場合と見つかった場合のif文での分岐の仕方です。
初心者なのでみづらいかも、ごめんなさい
0147146
NGNG#include<string.h>
#include<ctype.h>
int wc(char **,char []);
void main(){
char tango[250];
char line[50];
char *p,*sp
int tango;
int line;
int sumtango=0;
int sumline=0;
printf("英文を入力しなさい。");
while(*(sp=gets(line))){
if(){
word=wc(sp)
printf("単語:%s",tango);
sumword+=word;
sumline++;
}
printf("英文を入力しなさい。");
}
printf("総行数:%d\n総単語数:%d",sumline,sumword);
}
int wc(char **start,char *tango){
if() return(0);
else return(1);
0148PGバイト人(学生)
NGNGC言語すか? C++すか?
0149デフォルトの名無しさん
NGNG#include <stdio.h>
main()
{
int i, seki;
seki = i = 1;
while (i <= 15){
seki = seki * i;
printf("%d\n", seki); /* とりあえず */
i += 2;
}
return 0;
}
表題のとおりなんですが、参考書を手引きに問題を解いております。
自分で書いておいて、sekiという変数に1を初期値として代入するというところに
納得がいっておりません。
なにか、うまい書き方はないものでしょうか?
問題だと、1*3*5*・・・とならなければXだと思うのですが
今のままだと1*1*3*5*・・・になってしまいます
0150PGバイト人(学生)
NGNGとりあえず・・書き直した方がよい
0151デフォルトの名無しさん
NGNG0152146
NGNGごめんなさい遅くなって。Cです。
書き直しって何をどうすべきでしょうか?
0153PGバイト人(学生)
NGNG宿題に当たってのヒント
流れは(多分)こんな感じになる
■関数main
・変数などの宣言
・構文の入力
◇while(構文は空行でない)
//ここからの処理は様々だけど僕はこうした
・取得した構文の全ての空白位置をint型配列に格納 //単語の判定に便利
・空白行でない文字の塊を1単語とする // 一文字でもOK
・単語を2次元配列に格納していく // コピーの際終端文字を忘れずに
・色々表示
・構文取得
◇
main関数終了
0154デフォルトの名無しさん
NGNGi = 1;
seki = i;
i += 2;
while (i <= 15) {
seki += i;
i += 2;
}
とでも書いたら。
まぁ別にそのままでもいいと思うが。
0155PGバイト人(学生)
NGNGポインタで文字を扱う良問だと思う。
頑張って”もの”にしてくれ。
0156PGバイト人(学生)
NGNGあと
・構文取得はscanf関数を使いなされ(C++だったらcin)
・変数の2重定義は反則
・セミコロンは忘れずに
基本です。
0157デフォルトの名無しさん
NGNG#include <stdio.h>
#include <string.h>
int main(void)
{
char buf[128], *p;
int wc = 0, lc = 0;
while (1) {
printf("行を入力して下さい:");
gets(buf);
if (buf[0] == '\0') break;
lc++;
p = strtok(buf, " .,");
if (p == NULL) continue;
printf("単語:%s ", p);
wc++;
while (p = strtok(NULL, " .,")) {
printf("単語:%s ", p);
wc++;
}
putchar('\n');
}
printf("総行数=%d 総単語数=%d\n", lc, wc);
return 0;
}
0158デフォルトの名無しさん
NGNGサンクスです!
これをもとにさせていただきます
0159デフォルトの名無しさん
NGNG#define DATA_AXIS_NUM 2048
int main(){int x,y,z,t; BYTE **pData;
pData=(BYTE**)new BYTE *[DATA_AXIS_NUM];
for(y=0;y<DATA_AXIS_NUM;y++) pData[y]=(BYTE*)new BYTE[DATA_AXIS_NUM];
for(z=y=0;y<DATA_AXIS_NUM;y++)
{
for(x=0;x<DATA_AXIS_NUM;x++)
{
if(z==0&&z!=x%256)
t=0;
if(223<z&&z<230)
t=0;
pData[y][x]=(BYTE)z++;
}
z=0;
}
for(y=0;y<DATA_AXIS_NUM;y++) delete[] pData[y];
delete[] pData;
return 0;
}
(BYTE)z++でz=223辺りからz=255位まで0を返してきますが、メモリ破壊してる?
tは条件ブレークポイントの為にあります
環境:VC++.NET&WinXP
0160デフォルトの名無しさん
NGNGカウントしたいんですが教えてください
0161653
NGNGこれではできませんかね?
0162デフォルトの名無しさん
NGNG0163161
NGNG昇順にソートする関数を作れ。表示処理はmain()でというんですが教えてください。
自作関数でソートするのがわからんのです。
0164デフォルトの名無しさん
NGNG#include <stdio.h>
#include <string.h>
void sort(char ptr[])
{
int i, j, len = strlen(ptr);
char tmp;
for (i = 0; i < len - 1; i++)
for (j = i + 1; j < len; j++)
if (ptr[i] > ptr[j]) {
tmp = ptr[i]; ptr[i] = ptr[j]; ptr[j] = tmp;
}
}
int main(void)
{
char buf[512];
gets(buf);
sort(buf);
puts(buf);
return 0;
}
0165デフォルトの名無しさん
NGNGマルチ氏ね。
0166山崎渉
NGNG0167デフォルトの名無しさん
NGNGカウントし出力したいんですが教えてください
0168デフォルトの名無しさん
NGNG入力例と出力例を書け。
0169デフォルトの名無しさん
NGNG年収600万円に満たない屑でも愉快に暮らせる楽しい世の中じゃないか。
いちいち爆破するな。
0170146
NGNGまだ途中なんですけどだんだんわかってきて
このぶんだと期日にはなんとか間に合いそうです。
>>PGバイト(学生)さん
ありがとうございます。ヒント頂いたおかげで
少しずつプログラムっぽくなってきました。
まだ一部わからないのでもうちょっと頑張ってみます。
>>157さん
模範解答ありがとうございます!
「strtok」使ってやりたかったんですけど
習ってなかったしよくわからなかったんです。
でもこうやればうまく動かせるのですね〜。ほんとに勉強になります。
でもそのまま宿題で出しちゃうわけにもいかないし
参考にさせて頂きます。ほんとにありがとうございました
0171デフォルトの名無しさん
NGNGif(buf[i]==' '||buf[i]==','||buf[i]=='.')
[切り分け作業]
などとしたら?
これでも出来るんじゃない?
strtokのかわりにね。
0172デフォルトの名無しさん
NGNG名前(アルファベット)五人分入力
↓
辞書式に並び替える
↓
"meido.doc"ファイルに書き込む
というプログラムなんですが、先日レスしていただいた物より
もっと初心者向けのものはないでしょうか?
お願いします。
0173デフォルトの名無しさん
NGNG0174デフォルトの名無しさん
NGNGありがとうございます。
できれば全体をおねがいします。
0175b
NGNG0176中森
NGNGここに貼っていいですか?レベルは入門者レベルです
0177中森
NGNGでもながいので二つにわけます
0178中森
NGNGmain()
{
int goukei, hikazei, kazei, syouhizei, k, sv,tv,uriage, s1, s2,m, n, num, nenrei, bunrui1, bunrui2,seibetu,kubetu1,kubetu2,kubetu3, a, b, c ;
goukei = 0;
hikazei = 0;
kazei = 0;
syouhizei = 0;
k = 0;
uriage = 0;
a = 0;
b = 0;
c = 0;
kubetu1 = 0;
kubetu2 = 0;
kubetu3 = 0;
bunrui1 = 0;
bunrui2 = 0;
s1 = 0;
s2 = 0;
0179中森
NGNGcout << " 買物客情報: "<< endl;
while( cin >> tv >> sv)
{
while( cin >> m >> n)
{
num = goukei;
if ( 50 > m )
hikazei = hikazei + n;
else if ( 99 == m)
goukei = num;
else
{
kazei = kazei + n;
syouhizei = syouhizei + n * 0.05;
}
}
0180中森
NGNGcout << " 課税合計額 " << kazei << endl;
cout << " 消費税 " << syouhizei << endl;
cout << " 非課税合計額 " << hikazei << endl;
cout << " 請求額 " << goukei << endl;
uriage = uriage + goukei - syouhizei;
if ( 1 == nenrei )
{
kubetu1 = kubetu1 + goukei;
a = a + 1;
}
else if (2 == nenrei )
{
kubetu2 = kubetu2 + goukei;
b = b + 1;
}
else
{
kubetu3 = kubetu3 + goukei;
c = c + 1;
}
0181x
NGNG{
bunrui1 = bunrui1 + goukei;
s1 = s1 +1;
}
else
{
bunrui2 = bunrui2 + goukei;
s2 = s2 + 1;
}
k = k + 1;
cout << " 買物客情報: "<< endl;
}
0182中森
NGNGcout << " 本日の実績: " << endl;
cout << " 来客数: " << k << " 名 " << endl;
cout << " 総売上額 " << uriage << " 円 "<< endl;
cout << " -------------------------------------------- " << endl;
cout << " 年齢層別 " << endl;
cout << " 青少年" << a << " 名 " << kubetu1 << " 円 " << kubetu1 / static_cast<float>(uriage) *100<< " % " << endl;
cout << " 壮年" << b << " 名 " << kubetu2 << " 円 " << kubetu2 / static_cast<float>(uriage) *100<< " % " << endl;
cout << " 高齢者" << c << " 名 " << kubetu3 << " 円 " << kubetu3 /static_cast<float>(uriage)*100 << " % " << endl;
cout << " -------------------------------------------- " << endl;
cout << " 男女別 " << endl;
cout << " 1.男 " << s1 << " 名 " << bunrui1 << " 円 " << bunrui1 / (float)goukei *100<< " % " << endl; //
cout << " 2.女" << s2 << " 名 " << bunrui2 << " 円 " << bunrui2 / static_cast<float>(uriage)*100 << " % " << endl;
cout << " -------------------------------------------- " << endl;
cout << "レジプログラム終了"<<endl;
return 0;
}
0183中森
NGNG0184デフォルトの名無しさん
NGNGどういうエラーが出るとかエラーが出ないならどうなって終了してしまうとか
そういったことを書かないとなかなか答えてもらえないよ。
0185デフォルトの名無しさん
NGNGhttp://www.hyuki.com/writing/techask.html
http://www.geocities.co.jp/SiliconValley/5656/
0186デフォルトの名無しさん
NGNG0187デフォルトの名無しさん
NGNG名前(アルファベット)五人分入力
↓
辞書式に並び替える
↓
"meido.doc"ファイルに書き込む
というプログラムなんですが、先日レスしていただいた物より
もっと初心者向けのものはないでしょうか?
お願いします。
0188デフォルトの名無しさん
NGNGあしからず。
0189デフォルトの名無しさん
NGNG標準関数qsort
0190デフォルトの名無しさん
NGNG0191中森
NGNG誰も見てくれてないのかと思いちょっと席をはずしておりました、すいませんでした
0192!住人
NGNG0193soho
NGNGmain() {
double ip,a1,a2,a3,b1,b2,b3;/*結果と各成分*/
printf("vect1=: ");
scanf("%f,%f,%f",&a1,&a2,&a3);/*各成分は実数、カンマ区切りとして*/
printf("vect2=: ");
scanf("%f,%f,%f",&b1,&b2,&b3);
ip=a1*b1+a2*b2+a3*b3;/*内積の定義どおり*/
printf("Inner Product= &f9.2\r\n",&ip);
}
0194C++厨
NGNGおながいします
0195!住人
NGNG#include <iostream>
#include <fstream>
#include <vector>
#include <string>
#include <algorithm>
int main()
{
std::vector< std::string > str_list;
for( int i=0; i<5; i++ )
{
std::string tmp;
std::cin >> tmp;
str_list.push_back( tmp );
}
std::sort( str_list.begin(), str_list.end() );
std::ofstream fout("sage.doc");
for( int i=0; i<5; i++ )
{
fout << str_list[i] << '\n';
}
return 0;
}
0196デフォルトの名無しさん
NGNG「辞書順」で並べ替えて欲しいとかいてあるから、std::lexicographical_compare
を比較叙述関数に与えた方がいいのでは?
0197デフォルトの名無しさん
NGNG0198デフォルトの名無しさん
NGNGscanf(), fscanf(),sscanf()は使用不可。gets(),fgets(),atoi()は使ってよし。
これで1行の間に任意で入力された数字(最大60桁、各数字間はスペースで区切る)
を配列に格納して、数字以外のものがあれば入力しなおさせる。
というものなんですが、そもそもcharの扱いがよく分かりません。
本当に初心者で申し訳ないのですが、ヒントがいただければ嬉しいです。
よろしくお願いします。
0199デフォルトの名無しさん
NGNG仕様が不明確。
その宿題は、本当にそう書いてあるのか?
0200198
NGNGこれは宿題のほんの一部分なんですが、厳密にはこのように書いてあります。
「整数はスペースで区切られ、どんな数字でも良い。
ただし、入力行は最大60文字までとする。
もし入力された行に整数以外のものがあれば全ての値を捨て、新たな入力をさせる」
「string.hのファンクション、及びscanf(),fscanf(),sscanf()は使用禁止」
「gets(),fgets()は使っても良い。必要ならatoi()を使え」
不明瞭ならすみません。でもこれ以上は書いてないんです。
0201デフォルトの名無しさん
NGNG何処にも入力された数字を保存しろと書かれてないと言ってみる
0202C++厨
NGNG0203デフォルトの名無しさん
NGNG一応char配列の取り扱いの演習だと思って書いた。
入力の区切りはspace以外にtabでもよいようにisspace()で判定する。
(入力の束はtabで縦に揃えてあることが多いから)
#include <stdlib.h>
#include <ctype.h>
#include <stdio.h>
main() {
int numbers[32];/*1文字おきにspaceのとき30個のint*/
char line[62];/*入力行を得るワーク*/
int n,ix;
while(1) {
if(fgets(line,sizeof line,stdin)==NULL) break;
/*lineには例えば123 -4567 12345...のような文字、最後は0が入る*/
/*strlen(line)でlineの文字数が判るがstr系は使ってはいけないので*/
errfg = 0;
n=0;
while(line[n]) {/*先に不正文字があるかcheck*/
if( !isspace(line[n]) ||
!isdigit(line[n]) ||
line[n]!='-' )
errfg = 1;
n++;
}
0204デフォルトの名無しさん
NGNGprintf("数値エラー行:%s",line);
}
else {/*整数値と' 'だけのときatoiで変換*/
n=0; ix=0;
while(line[n] ) {
numbers[ix++]=atoi(line+n);
while( !isspace(line[n]) ) {
n++;
}
while( isspace(line[n]) ) {
n++;
}
/* このwhile↑が無いと行末にspaceがある時1個余分に数値0が変換される*/
}
for(n=0;n<ix;n++) { /*抽出した数値を表示*/
printf("%6d\r\n",numbers[ix]);
}
}
}/* endwhile*/
/* 空行入力、またはリダイレクト入力ファイルの終わりで終了*/
exit(0);
}/* endfunc main*/
0205デフォルトの名無しさん
NGNG質問の「ほんの一部分」では答えようが無いのでは
例えば「入力ファイルを整形しなさい」と言われただけでは
どう整形していいかわからないと思います
質問の前に、要点を把握して何をすべきか考える必要があるかと
0206デフォルトの名無しさん
NGNG入力された行に数字かスペース以外が含まれていたら、
もう一度入力させるだけじゃないの?
0207203,204
NGNGのやることです。atoiを使えとのことからint範囲でよかろう、
scan系使うなとの表現からchar配列操作の演習であろう、と判断。
それでよかった?>198さん。
0208デフォルトの名無しさん
NGNG恥ずかしいから
0209198・200
NGNG皆さん、どうもありがとうございます。
>>203,204
ありがとうございます!詳しく書いていただいてめちゃめちゃ感謝です!!
これからじっくり勉強させていただきます。
>>205
これは後で入力された数字を使った演習が続きます。(比較したり、素数を出したり)
それ以外の部分は本当に関係なくて。。
そこは何とかなるので、書きませんでした。足りなかったですね。すみません。
>>206,207
その通りです。
本当に初心者なのでこれから頑張って勉強します。
ありがとうございました。
0210.
NGNGこんなのどうだ?
#include <stdio.h>
int buf_chk(char *buf)
{
int spc=1;
while(*buf){
switch(*buf){// 数字か空白なら受理
case '0':case '1':case '2':case '3':case '4':
case '5':case '6':case '7':case '8':case '9':spc=0;break;
case ' ':case '\t':case '\n':spc=1;break;
default:
// 手前に空白がある場合符号も受理
if(spc)if(*buf=='+' || *buf=='-')break;
return 1;
}
buf++;
}
return 0;
}
int main()
{
char buf[60+1+1];
do{
fgets(buf,sizeof(buf),stdin);// 入力
}while(buf_chk(buf));// チェック
return 0;
}
0211.
NGNGあと
if(spc&&(*buf=='+' || *buf=='-'))break;
だな…
0212デフォルトの名無しさん
NGNGisdigit
isspace
0213デフォルトの名無しさん
NGNGC言語で1から10までの数値を2進数で表示したいのですが
どうすればいいのでしょうか。
教えてくださいお願いします。
0214デフォルトの名無しさん
NGNGWindowsならitoa()でも使え。
0215213
NGNG詳しく教えてください。
0216デフォルトの名無しさん
NGNGうーん困った...
ループどうやって回そう
0217デフォルトの名無しさん
NGNGprintf("1=1b,2=10b,3=11b,4=100b,5=101b,6=110b,7=111b,8=1000b,9=1001b,10=1010b\n");
0218デフォルトの名無しさん
NGNGそれくらい自分で調べろボケ
0219デフォルトの名無しさん
NGNGWindowsでしか動かんぞ。
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int i;
char str[50];
for (i = 1; i <= 10; i++) {
itoa(i, str, 2);
puts(str);
}
return 0;
}
0220山崎渉
NGNG0221デフォルトの名無しさん
NGNGunsigned c,r,t,f;main(){while(c<10){r=f=0;for(t=++c;t;t>>=1)r=r<<1|t&1,f++;while(--f) putchar(060|r&1),r>>=1;putchar(' ');}}
1箇所だけわざとバグってるから,直して使え
0222221
NGNG直し方わかってもここで言うなよ
0223デフォルトの名無しさん
NGNG>C言語で1から10までの数値を2進数で表示したいのですが
なつかしーっす。自分もC言語を始めて1、2週間辺りで組んだ経験があるので。
んで、早速、昔作ったライブラリから引っ張ってきてみたっす。
#include <stdio.h>
char *bitpot( char *, int, int );
int main( void )
{
char box[60];
int i;
for( i=1; i < 11; i++ )
fprintf( stderr, "%2d :: [%s]\n", i, bitpot( box, i, 16 ) );
return (0);
}
char *bitpot( char *pot, int c, int bit )
{
int i=0;
if( bit != 16 && bit != 32 )
return (NULL);
for( --bit; bit >= 0; bit-- )
sprintf( &pot[i++], "%1d", ( c >> bit ) & 0x01 );
return (pot);
}
>どうすればいいのでしょうか。
ビットをずらし、マスクをかける程度でいいと思います。
あと、>>221のようにビット論理和(?でいいんだったけ)を用いる手もあります。
0224デフォルトの名無しさん
NGNGvoid main(void)
{
int num=1;
printf("***This line has %d bug.***, num);
}
これってどこが間違ってますか?
0225デフォルトの名無しさん
NGNGここが間違っている。
0226デフォルトの名無しさん
NGNG0227デフォルトの名無しさん
NGNGprintf("***This line has %d bug.***, num); をprintf("***This line has %d bug.***", num); に
こんなもんエラーメッセージから判断できそうなものだけど
0228デフォルトの名無しさん
NGNGフォームを最小化したり、他のウインドウが重なったりした時
消えてしまうのが嫌なんで
CMy00000Viewクラスへ「WM_PAINT」のWindowsメッセージハンドラの追加はしました
確かにできたんですが、まだ
大きなプログラムだと処理が遅く、ウィンドウを大きくしたら消える、少し動かさないと絵がでてこない
という問題がありました・・
それはどうすればよろしいでしょうか?
0229228
NGNGSDIです
0230デフォルトの名無しさん
NGNGInvalRgn(RgnHandle)でup_dateしてください。
0231228
NGNG0232デフォルトの名無しさん
NGNG0233迷宮人
NGNG外側は全て壁で囲まれていて、迷路の縦方向をi、横方向をjとして、自分の位置を(i,j)で表します。
それから、右、下、左、上の順に進める方向を探す、というものです。
0234デフォルトの名無しさん
NGNG再帰
0235デフォルトの名無しさん
NGNG0236とけますか?
NGNGクラス Human を修正せよ。
クラス Giko および main() 内部を変更してはいけない。
#include <iostream>
class Human {
public:
int getMoney() { return 10000; }
};
class Giko : public Human {
public:
int getMoney() { return 10; }
};
int main() {
Human* usual = new Human();
Human* giko = new Giko();
cout << " usual : " << usual->getMoney() << endl;
cout << " giko : " << giko->getMoney() << endl;
delete usual;
delete giko;
return 0;
}
0237デフォルトの名無しさん
NGNG0238デフォルトの名無しさん
NGNG,-ー─‐‐-、
,! || |
!‐-------‐
.|:::i ./ ̄ ̄ヽi
,|:::i |' (,,゚Д゚)|| < ソース出せ。ゴルァ!!
|::::(ノ 中濃 ||)
|::::i | ソース ||
\i `-----'/
 ̄U"U ̄
0239デフォルトの名無しさん
NGNGとは、あなたも大胆な主張をなさる、、、
0242デフォルトの名無しさん
NGNGもしくは
#include <iostream>
using namespace std;
とする。
0243デフォルトの名無しさん
NGNG0244デフォルトの名無しさん
NGNGvirtual int getMoney()
0246C++厨
NGNG俺は低レベルでしたm(_ _)mごめんなさい
0247デフォルトの名無しさん
NGNG作りたいのですがどうすればいいでしょうか。
こんな感じです。
00000 :23 69 6E 63 6C 75 64 65 20 3C 73 74 64 69 6F 2E #include <stdio.
00010 :68 3E 0D 0A 23 69 6E 63 6C 75 64 65 20 3C 63 74 h>..#include <ct
0248デフォルトの名無しさん
NGNG0249デフォルトの名無しさん
NGNGどこを数えればいいんでしょうか?
フレーム数だけ取得できればいいので
GIFのイメージのヘッダの数数えればよさそうなんですが
調べてもわかりません
0250デフォルトの名無しさん
NGNGvoid dmp(char *x) {/* 入力 : x = メモリアドレス */
printf("%05ld %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %02X %16s\r\n",
(long)(x&0x0FFFFF),(int)*(x+0),(int)*(x+1),(int)*(x+2),(int)*(x+3),(int)*(x+4),(int)*(x+5),(int)*(x+6),(int)*(x+7)
,(int)*(x+8),(int)*(x+9),(int)*(x+10),(int)*(x+11),(int)*(x+12),(int)*(x+13),(int)*(x+14),(int)*(x+14),x);
}
0251デフォルトの名無しさん
NGNGmain(char *fname) {/*file名:起動時パラメータ*/
FILE *fp;
char wk[258];
int n;
fp=fopen(fname,"r");
while(!feof(fp)) {
fread(wk,1,256,fp);
for(n=0;n<256;n+=16) {
dmp(wk+n);
}
}
fclose(fp);
exit(0);
}
0252デフォルトの名無しさん
NGNGここ見ればわかるかも。
http://tohoho.wakusei.ne.jp/wwwgif.htm
0253デフォルトの名無しさん
NGNG今そこのぺーじみてたんですが
ImageBlockの始まりのバイナリでも書いてあれば
それを検索できるのですがわからないです・・・
どこかに書いて無いでしょうか?
0254素人でスマソ
NGNG#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>
int x,y,dx,dy;
void put_mark(int x, int y)
{ move(x-2,y-2); cont(x+2,y+2);
move(x+2,y-2); cont(x-2,y+2);
move(x,y);
}
void forward(){
x=x+dx;
y=y+dy;
cont(x,y);
put_mark(x,y);
}
void left_turn(){
int tmp;
tmp=dx; dx=-dy; dy=tmp;
}
void right_turn(){
int tmp;
tmp=dx; dx=dy; dy=-tmp;
}
0255254の続き
NGNG{
switch(ch){
case 'F': forward(); break;
case 'R': right_turn(); break;
case 'L': left_turn(); break;
}
}
void turtle()
{
int ch;
while((ch=getchar())!=EOF){
if(isalpha(ch)) analysis(ch);
}
}
int main()
{
openpl();
space(-300,-300,300,300);
x=0;
y=0;
dx=0;
dy=10;
put_mark(x,y);
turtle();
closepl();
return 0;
}
これをいじって数字を入力したらそれたを数値として読み取り、次のコマンドを繰り返し実行するようにしたいのですが、
どこをどうすればいいですか?
例えば、5Fと入力するとFFFFFとおなじ動きをする。
0256デフォルトの名無しさん
NGNGこんな感じにすればいいと思う。
void analysis(int ch)
{
static int repeat_count = -1; /* < 0 は無効値 */
int i;
if (ch == 'F' || ch == 'R' || ch == 'L') {
if (repeat_count < 0) repeat_count = 1;
for (i = 0; i < repeat_count; i++) {
switch(ch){
case 'F': forward(); break;
case 'R': right_turn(); break;
case 'L': left_turn(); break;
}
}
repeat_count = -1;
} else if (isdigit(ch)) {
if (repeat_count < 0) repeat_count = ch - '0';
else repeat_count = repeat_count * 10 + ch - '0';
}
}
0257C++厨
NGNGstd::printf("%02X", 255);で2文字幅16進文字が出力されます
cout<<setw(2)<<setfill('0')<<hex<<255; //C++の場合
0258254の続き
NGNGありがとうございます!
0259デフォルトの名無しさん
NGNGのa ってどんな値になるんですか?
0260252
NGNGImageBlockの開始は0x2cと決まってるみたいだけど,
0x2cはImageBlockの開始以外でも当然出現する可能性があるから,
0x2cの数を数えても意味が無い。
素直にHeader読んで, パレット部やデータ部は読み飛ばして,
を繰り返すしかないと思う。
0261デフォルトの名無しさん
NGNGy
0262デフォルトの名無しさん
NGNGまぢっすか!
0263261
NGNGえ?もしかしてオレ間違えた・・・?
0264デフォルトの名無しさん
NGNG初心者すいません...
0265デフォルトの名無しさん
NGNG0266デフォルトの名無しさん
NGNGmadi thanx...
kanari hazukasii...
0267261
NGNG(C++も演算子オーバーロードしなけりゃ同じはずだけど。)
カンマ演算子(名前違ったかも)
式1, 式2, 式3, ... ,式n
とあれば、式1から順に評価して式nまで評価する。
この式全体の値としては, 式nの評価値をとる。
だから (x, y) の値は y になる。
0268261
NGNGわからんと思う。あんまりいい例が思いつかなかったけど,
int a;
printf("続けるなら1を止めるなら0を入れて:");
scanf("%d", &a);
while (a) {
printf("うんこ\n");
printf("続けるなら1を止めるなら0を入れて:");
scanf("%d", &a);
}
こういうループを考えたとき, 同じ処理を二箇所で書くのは
保守性などの点から不利。そこでカンマ演算子を使って,
int a;
while (printf("続けるなら1を止めるなら0を入れて:"),
scanf("%d", &a),
a) {
printf("うんこ\n");
}
と一箇所に纏めることもできる。
もっといい例あるかもしれんけど俺には思いつかない。ごめん。
0269デフォルトの名無しさん
NGNGカンマ演算子を使う典型的な例はfor文。
for文の括弧の中のセパレータがセミコロンのため、複数文を書きたい場合
カンマ演算子で区切って書くことが多い。
例 :
int i, j;
for (i=0, j=10; i<=10; ++i, --j)
cout << "10 = " << i << "+" << j << "\n";
0270261
NGNGただその場合「同じ処理を二箇所に書かない」てメリットがないから
無理矢理whileでの例を作っちゃったけど。
でも確かにその方が典型的だね。whileの例が行儀のいい書き方にも見えないし。
一般的に>>268のwhileの例のような場合ってどう書くんだろ?
0271デフォルトの名無しさん
NGNGそういうように使うんすね.
for の中に並べるのは使ってましたが,
いざそう書かれると...
たった10 文字で凹んじゃいました.
0272デフォルトの名無しさん
NGNGdo while
0275デフォルトの名無しさん
NGNGと言う問題です どこが間違っているのでしょうか?
それとこれをfor文に書き換えるとどうなりますか?
#include <studio.h>
void main (void)
{
int i=0;
char number[21]='12345678901234567890";
while(20 > ++i) {
printf("Number is %c \n" , number[i])
}
}
0276デフォルトの名無しさん
NGNGvoid main (void)
{
int i=0;
char number[21]="12345678901234567890";
while(20 > i) {
printf("Number is %c \n" , number[i++])
}
}
for ( i = 0; i < 20; i++ )
0277デフォルトの名無しさん
NGNG/*プロトタイプ宣言*/
int wordput(char **post,char word[]);
.
int main()
.
/*関数の定義*/
int wordput(char **start,char *c){
になっている場合、**postと**startと
word[]と*cはどう対応してるんでしょうか?
プロトタイプでwordput11にはchar **,char[]の型が
必要とコンパイラに知らせたとして
後の関数で**start・*cが何を意味するのかわからないんです
0278デフォルトの名無しさん
NGNGプロトタイプ宣言での変数名に意味はないので、別に
int wordput( char **, char *);
と書けばよいです。関数の定義で
int wordput(char **start,char *c){
と書き始めたなら、関数の中でstartとcを
煮るなり焼くなり好きにしてよいです。
こういう意味じゃなくて?
0279デフォルトの名無しさん
NGNG(これは厳密には C++ からの仕様だったと思います。
確か C では本来はコンパイルエラーになるはず。
コンパイラによってはエラー吐かないこともあるかもしれんけど)
あと、プロトタイプの変数名は特に意味を持ちません。
単にその方が分かりやすいから書いてあるだけに過ぎません。
これだけ分かってればあとは分かると思いまつ。
0280デフォルトの名無しさん
NGNG0281デフォルトの名無しさん
NGNGありがとうございました!
word[]と*cは同じ意味だったんですね。
形が全然違うように思えて混乱しておりました。
0282デフォルトの名無しさん
NGNG同じ意味だけど、形を変えるのはホントは良くない。
0283277
NGNG同じプログラムの関数の実体コードに
for(; *c; c++;){
というところがあるんですけど
char[]に置き換えると
*c=word[];
c++;=char[i+1];
なんでしょうか?
でもだとしたら終了条件のchar []
はどういう意味なんでしょうか?
0284デフォルトの名無しさん
NGNG(キミ流の書き方でいくと)
*c=word[0]
0285デフォルトの名無しさん
NGNG>引数では <type> <name>[] と <type> *<name> は同じ意味になります。
っていうのは、両方 <name> はポインタになるということです。
だから、別に何も変える必要はありません。
また、[ ] 演算子と * 演算子は使い方と優先順位が違うだけで
同じ演算子と思って構いません。
以下のコードは全て同じ意味になります。
*c c[0] (c + 2)[-2] *(&(c + 2)[-1]) - 1)
0286285
NGNG但し、引数の場合の例外を除きます。
0287デフォルトの名無しさん
NGNGそのforループではchar ss[](と勝手におかせて)という文字列を
ss[0]から順に一文字づつ見ていくものだと思うです。
んでssの終端にはヌル文字が入ってるはずなので、そこで*cが偽になる
という話だと思います。
あと、=は代入演算子に読めるので書き方がマズー。
もう一つ、for()の2番目は終了条件じゃなくて継続条件です。
0289285
NGNG○ *(&(c + 2)[-1] - 1)
カッコの数間違えた。
0290277
NGNGあっ、範囲の指定はforの1番目だったんですよね。失礼しました。
0291デフォルトの名無しさん
NGNGんんー。
for 文は
for(<最初に一度だけ処理する式>; <継続条件式>; <ループの終わりに毎回処理する式>) <ループ処理する文>
ですよ。
0292277
NGNGなるほど!間違えてばかりですね。
ごめんなさい
ところで
*(&(c+2)[-1]-1)
cには'+'だけど[]の中では
'-'になるのってどうしてですか?
0293デフォルトの名無しさん
NGNG+2 して -1 して -1 すれば 0 になるので
c[0] と同じになる、というだけです。
> 間違えてばかりですね。
ドンマイ。
失敗は成功の元。
0294277
NGNGそっか!じゃぁ
c+1==[1]ってことでいいんですよね?
ありがとうございます!
がんばって勉強します。
0295デフォルトの名無しさん
NGNG*(c+1) と c[1] が一緒、ね。
さて、寝るか。
0296277
NGNG遅いのにホントありがとうございました。
すごく助かりました
おやすみなさい(^^)/
0297デフォルトの名無しさん
NGNG0298bufさんのカバン
NGNG0299デフォルトの名無しさん
NGNG0300デフォルトの名無しさん
NGNGなんかその数字は構造体にはいっていて、キャストできないとかいわれるんですが、なんか僕まちがってますかね?
0301デフォルトの名無しさん
NGNG★YAHOOOプロフィール★
0302デフォルトの名無しさん
NGNGsprintf
0303デフォルトの名無しさん
NGNGマジか?
つーか、そのコンパイラは、どうやって、実数を代入してるんだ?
まぁ、何にしろ、特殊な環境っぽいので
リファレンスでも適当に読んで代入方法を探してみ
0304デフォルトの名無しさん
NGNG0305デフォルトの名無しさん
NGNG同じ。
C++ なら int(*chStr) も。
0306デフォルトの名無しさん
NGNGsprintf(buf, "%f", myfloat);
だろ。
0307デフォルトの名無しさん
NGNGそれがどの方向のキーかによって、
それに応じた処理をやらせることはできないんですか?
例えばswitch文あたりで
switch(…){
case キーボードの↑:
処理1;
break;
case キーボードの↓:
処理2;
break;
……………
}
のようなことをしたいのですが。
0308デフォルトの名無しさん
NGNGまさにそんなふうにできます。
0309デフォルトの名無しさん
NGNG_getch()
WM_CHAR
0311デフォルトの名無しさん
NGNG0312デフォルトの名無しさん
NGNGsnprintf(dest,〜)
char buf[100000];
sprintf(buf,〜);
strncpy(dest,buf,n
0313307
NGNGどうやればできますか?
>>309
_getch()という関数はどのヘッダーファイルに定義されてるんでしょうか?
curses.hの中にgetch()があるのは発見したのですが、
それは使えますか?またWM_CHARもどこに定義してあるのか
分かりません。
0314デフォルトの名無しさん
NGNG俺はよく unistd.h をインクルードしてますね。
Windows 系では conio.h で、#if で分けてます。
WM_CHAR は Windows プログラムのやつです。
0315デフォルトの名無しさん
NGNG環境依存の問題なのでココでは終了した旨を書き込んでから
自分の使ってる環境のスレで聞い下さい
0316307
NGNGWM_CHARはWindowsですか。当方UNIXなので使えないのかな。
>>315
システム依存の話になるんですね。
わかりました。自分のシステムに該当しそうな所のスレで尋ねます。
0317デフォルトの名無しさん
NGNGそれが素数かどうかを判定するプログラムを教えてください
※ループ回数を最小限にする
今はwhile文までしか習ってないのでwhile文を使うと思うのですが・・・
0318デフォルトの名無しさん
NGNGncurses
0319デフォルトの名無しさん
NGNG「エラトステネスのふるい」で検索してみれ。
0320デフォルトの名無しさん
NGNG0321デフォルトの名無しさん
NGNGこの場合nまでの素数ではなくてnが素数かどうかって話だからエラストテネス関係ないだろ。
フラグ立てるのにもループしちゃうし。
多分、「nが素数かを確認するには2から√nまでで割り切れないことを確認すればいい」
つー奴のほうだと思うが。
0322デフォルトの名無しさん
NGNGfor(i=3; i<sqrt(n); i+=2)
if(n%i==0){printf("not prime.");exit(0);}
printf("PRIME No.");
じゃ駄目か?
0323デフォルトの名無しさん
NGNGこれって真面目にやろうとしたら世界最先端レベルの研究になるような。
>>321のやりかたで多分, 出題者の意向には沿ってるんだろうけど。
0324デフォルトの名無しさん
NGNGアスタリスクを一個だけプリントするprintfと空白を一個だけプリントするprintf()
を使用すること。ただし、for反復を可能な限り入れ子にし、printfを最小限に抑えること
----*
---***
--*****
-*******
*********
-*******
--*****
---***
----*
(-はずれ防止のためですスペースに置き換えてください)
うーむ、いくら考えても思いつかんす・・・、どなたか救済を!
0325デフォルトの名無しさん
NGNG> うーむ、いくら考えても思いつかんす・・・
ワラタよY⌒Y⌒Y⌒Y⌒Y⌒Y⌒(。A。)!!!
0326デフォルトの名無しさん
NGNG>Javaと基本情報もやっている.
なんかリアルだな.1の台詞はキャラジャナカッタノカ?
0327デフォルトの名無しさん
NGNG#include <stdio.h>
#define ROWS 9
int main() {
int i;
for ( i = 0; i < ROWS; i++ ) {
int nspaces = (ROWS-1)/2 - i;
int nasts, j;
if ( nspaces >= 0 ) {
nasts = 2*i + 1;
} else {
nspaces = -nspaces;
nasts = 2*(ROWS-1-i) + 1;
}
for ( j = 0; j < nspaces; j++ )
printf( " " );
for ( j = 0; j < nasts; j++ )
printf( "*" );
putchar( '\n' );
}
return 0;
}
0328デフォルトの名無しさん
NGNG余り深く考えるな。
#include <stdio.h>
void a(void){printf("*");}
void s(void){printf(" ");}
void r(void){printf("\n");}
int main(void)
{
s();s();s();s();a();r();
s();s();s();a();a();a();r();
s();s();a();a();a();a();a();r();
s();a();a();a();a();a();a();a();r();
a();a();a();a();a();a();a();a();a();r();
s();a();a();a();a();a();a();a();r();
s();s();a();a();a();a();a();r();
s();s();s();a();a();a();r();
s();s();s();s();a();r();
return 0;
}
0329デフォルトの名無しさん
NGNGうぃ、アフォで須磨祖
>>327
ありがとうございます。これで今夜は眠れそうです。
>>328
うーん、ネタどうもっす。
0330デフォルトの名無しさん
NGNGちっ、遅かったか
int main() {
int i,j ;
for(i=0;i<9;i++){
for(j=0;j<(i-4)*(i-4)*(-5*i*i*i*i*i*i+120*i*i*i*i*i-1046*i*i*i*i+3936*i*i*i-5921*i*i+3336*i+1260)/5040;j++)printf("-");
for(j=0;j<(5*i*i*i*i*i*i*i*i-160*i*i*i*i*i*i*i+2086*i*i*i*i*i*i-14224*i*i*i*i*i+54145*i*i*i*i-113680*i*i*i+120164*i*i-43296*i+2520)/2520;j++)printf("*");
printf("\n");
}
for(;0;)for(;0;)for(;0;)for(;0;)for(;0;)for(;0;)for(;0;)for(;0;)for(;0;)for(;0;)for(;0;)for(;0;);
return 0 ;
}
0331デフォルトの名無しさん
NGNGsqrt(n) の結果は一時変数に入れといた方がいいし、
+ 0.5 しとかないと数値誤差で死ぬことが。
0332328
NGNG良かったら、これがなぜネタだと思ったか教えてくれないか?
0333デフォルトの名無しさん
NGNG#include <stdio.h>
#include <stdlib.h>
中略
int i, j;
for (i=0; i<9; i++) {
for (j=0; abs(i-4)>j; j++)
printf(" ");
for (j=0; 9-abs((i*2)-8)>j; j++)
printf("*");
puts("");
}
30分かかった。アホだ俺。。。
0334デフォルトの名無しさん
NGNG別に怒らせるつもりで言ったのではないのです、ごめんなさい。
ただ、forがネストされていず、むやみに関数を定義されていたので
そう思ったのです。
0335デフォルトの名無しさん
NGNG#include<math.h>
#define RANGE 4
int main()
{
int x,y;
for(y=-RANGE;y<=RANGE;y++){
for(x=-RANGE;x<=RANGE;x++){
if(abs(y)<=abs(-x+4) && abs(y)<=abs(x+4)) printf("*");
else printf("_");
}
printf("\n");
}
return 0;
}
0336デフォルトの名無しさん
NGNG>>328 は怒っていないと思われ。
むしろ喜ばしいことだと思ってるだろう。
0337デフォルトの名無しさん
NGNG> if(abs(y)<=abs(-x+4) && abs(y)<=abs(x+4)) printf("*");
if(abs(y)<=abs(-x+RANGE) && abs(y)<=abs(x+RANGE)) printf("*");
だな。
0338デフォルトの名無しさん
NGNG怒っていない。勿論ネタだ(w
しかし、それをなぜネタと考えた(見破った?)のかが
純粋に知りたかった(&考えてもらいたかった)だけだ。
たとえば、行数で比べるなら>>328のコードは>>327よりも少ないし、
関数の定義も3つだけだし(一般にはむやみというレベルではないと思う)
for文も使っていないし、というか
ただ使うだけなら
int main(void)
{
int i,j;
for(i=0;i<1;i++)for(j=0;j<1;j++){
s();s();s();s();a();r();
みたいな手はいくらでも考えられる。
0339さとしがヤバイ
NGNG#include<stdilib.h>
この部分を補う
FILE fout;
if((fout=fopen("c:\\rscore.dat","w"))==NULL){
printf("出力ファイルがオープンできない\n");
exit(1);
}
この部分を補う
のこの部分補うっていうのも二つとも教えて下さい
お願いします
0340デフォルトの名無しさん
NGNG#include<stdio.h>
#include<stdlib.h>
int main(void){
FILE *fout;
if((fout=fopen("c:\\rscore.dat","w"))==NULL){
printf("出力ファイルがオープンできない\n");
exit(1);
}
fclose(fout);
printf("友達の宿題を写しました\n先生ごめんなさい\n");
return 0;
}
0341デフォルトの名無しさん
NGNG0342デフォルトの名無しさん
NGNGうす、実は今独習でCを一から勉強して(遊んで?)いるところです。
参考書に”C言語プログラミング(原書C How to Program) プレンティスホール刊”
ってやつを使っていまして、その練習問題だったわけです。
結構ためになる本と個人的には思っているのですが、いかんせん練習問題の
数があるにもかかわらず、その模範解答がなく、原作者のHPにもそれらしきもの
がなかったのでお聞きしてしまいました。
どうもこう、数学的というか、論理的に解を導くというか、
そういうことが苦手みたいで、こういう一方的な作業がトンと苦手だったりします。
数学なんか高校で0点とったこともあるし(単にアホなだけか
んな人間がプログラムするってんですから、じつは338さんの答えが
一番自分に合っていたりするのが、面白いところです。
何か作れるぐらいの技量をもてるようになる暁には、こういう
発想で組めたらいいなー。
あと、”むやみ”というのは私の言葉が明らかに間違っていました。失礼!
みなさん、お答えサンクスです
0343デフォルトの名無しさん
NGNG一応言っておくが、
>>333 が模範解答だからな。
0344デフォルトの名無しさん
NGNGこんな手もありまつ
int main(){
int i,j,p[]={2046,5630,21886,87390,349526,87390,21886,5630,2046};
for(i=0;i<90;i++)
if((j=((p[i/10]>>(9-i%10<<1))&3))==0)printf(" ");
else if(j==1)printf("*");else if(j==2)printf("\n");
return 0;}
0345デフォルトの名無しさん
NGNGってネタが沢山出てまつね。
http://pc3.2ch.net/test/read.cgi/tech/1042802490/l50
0346デフォルトの名無しさん
NGNGabs() をループ毎に計算させておきながら模範とはよく言った。
0347デフォルトの名無しさん
NGNG0348デフォルトの名無しさん
NGNG無知ってのは楽でいいな
0349デフォルトの名無しさん
NGNG#include <stdio.h>
main(){
int i,j;
for(i=1; i<=9; i++)
{
int zettaichi=abs(i-5);
for(j=0; j<zettaichi; j++)
printf(" ");
for(j=0; j<9-2*zettaichi; j++)
printf("*");
puts("");
}
return 0;
}
0350デフォルトの名無しさん
NGNG後略が無いから正常終了しないな。
0351デフォルトの名無しさん
NGNGint i,j;
int zettaichi=abs(i-5);
気持ち悪い。
0352デフォルトの名無しさん
NGNG0353デフォルトの名無しさん
NGNG本当の模範解答とはこういう奴だ。
#include <stdio.h>
#define N 4
void p(int n){printf("%*c",n+1,'*');while(n++<N)printf("**");printf("\n");}
void f(int n){p(n);if(n){f(n-1);p(n);}}
int main(void){f(N);return 0;}
0354デフォルトの名無しさん
NGNG0355デフォルトの名無しさん
NGNG真の模範解答とは・・・
真の模範解答とは、問題文の制約を墨守する事ではない。
むしろ問題文自体に含まれる矛盾・不合理を剔抉し、
それを止揚するものでなくてはならない。
また蛇足だが、問題文には for を使わなければならないという制約はない。
もう一度読み返してもらいたい。
>for反復を可能な限り入れ子にし、
即ち
∀x(for文が使用されている(x)⇒出来る限りネストする)
であり、使用しない場合は '真' となることは明白だ。
私としては、むしろ
>アスタリスクを一個だけプリントするprintfと空白を一個だけプリントするprintf()
>を使用すること。
について指摘をしてもらいたかったが。
0356デフォルトの名無しさん
NGNGひし形以外に、即、変更可能だ。
#define NL 9
char *a[NL] {
"----*",
"---***",
"--*****"
"-*******",
"*********",
"-*******",
"--*****",
"---***",
"----*",
};
int i, j;
for (i = 0; i < NL; ++i) {
for(j = 0; a[i][j]; ++j)
(a[i][j] == '*') ? printf("*") : printf("_");
puts("");
}
0357デフォルトの名無しさん
NGNGんじゃ、13角形をたのむわ。
0358デフォルトの名無しさん
NGNG0359デフォルトの名無しさん
NGNGabs は最適化によって for の前に処理される罠。
0360333
NGNG俺が言うのもなんだけど, それ本当?
absがグローバル変数を触らないってことが,
どうしてコンパイラにわかる?
煽りじゃなく無知ゆえの疑問です。
0361333
NGNGとりあえず環境は VC++6 で。
俺が考えたやつ。
(a ^ (a >> 32)) - (a >> 32)
0362デフォルトの名無しさん
NGNG処理系依存と未定義の塊だな
0364デフォルトの名無しさん
NGNG0365デフォルトの名無しさん
NGNGThe behavior is undefined if the right operand is negative,
or greater than or equal to the length in bits of the promoted left operand.
0366デフォルトの名無しさん
NGNG>>359 の言うような最適化をするかどうかは知らんけど...
> absがグローバル変数を触らないってことが,どうしてコンパイラにわかる?
わかる (と言うか教えている) 処理系あるよ。
例えば、VC++ 6.0 だと...
/Oi オプションを指定すると、次の関数が組み込み (インライン) 形式に置き換えられます。
_disable(), _outp(), abs(), memset(), _enable(), _outpw(), fabs(), strcat(), _inp(), _rotl(), labs(), strcmp(), _inpw(), _rotr(), memcp(), strcpy(), _lrotl(), _strset(), memcpy(), strlen(), _lrotr()
となってる。当然コンパイラは、関数の挙動は知ってるわけ。
また、GCC なんかでは拡張機能で、
int abs(int) __attribute__ ((const));
と宣言しておけば、abs() の引数が同じなら、返り値が変わらないことをコンパイラに教えることができる。
> 煽りじゃなく無知ゆえの疑問です。
そう言う疑問を持つことはいいことだ。
>>361
普通に、return a >= 0 ? a : -a; の方が早いと思うぞ。
また、>>361 は環境に依存してるしね。
0367333
NGNGそう言う意味か。ごめん。a>>31ってすればいいのか。
ていうかそもそも分岐使った方が速いのか。
>>366
詳しくありがとう。
確かにそういう機能がないと最適化がすぐ手詰まりになりそう。
勉強になりました。
0368デフォルトの名無しさん
NGNG0369デフォルトの名無しさん
NGNG0371デフォルトの名無しさん
NGNGどうしても、それでやりたいのなら
a>>(sizeof(a)*CHAR_BIT-1)
0372デフォルトの名無しさん
NGNG0373333
NGNGもともと負数の右シフトが処理系依存だし, それで可搬性が上がったと
いえるかどうか疑問です。
ところで, ちょっとテストしてみました。VC++6とWinXPとPen4-1.6。
実行速度で最適化。めんどいから概要だけ書くと, 実行時間の比率で
正の数のみ入力 -> 分岐:ビット = 2.05:1
負の数のみ入力 -> 分岐:ビット = 2.68:1
くらいの感じ。最適化なしだと1.2:1くらいに差は縮まりますた。
#いや・・・ビットシフト凄いだろってことじゃなく,
#単に個人的な好奇心です。可搬性の問題も認識してます。
#スレ汚しすまそ。
0374デフォルトの名無しさん
NGNG平均と、分散を可変にするようにしたいです。
考えてみたのですが、全くわからず、
検索しても、ソース見つからなかったんで、質問させていただきました。
よろしくお願いいたします。
0375デフォルトの名無しさん
NGNGの2.2.1は?
0377デフォルトの名無しさん
NGNGhttp://www.matsusaka-u.ac.jp/~okumura/algo/
からゲットできるalgo.lzhの中のrandom.cも見てみてちょ。
0378317
NGNG#include <stdio.h>
void main(void)
{
int i, n;
i = 2;
printf("自然数を入力してください: ");
scanf("%d", &n);
printf("%dは", n);
if (n == 1){
printf("素数ではありません.\n");
}
while (i < n){
if (n % i == 0){
printf("素数ではありません.\n");
}
i++;
}
printf("素数です.\n");
}
0379317
NGNG「3は素数ではありません
素数です」
と出力されてしまします
まだreturn文やfor文は習っていないのでそれらは使わずに(それより難しい方法も)
解決する方法はありませんか?
0380デフォルトの名無しさん
NGNG最後のwhile内のif内で、'i=0;break;'となど付加して、
printf("素数です.\n");
の前で、
if(i!=0)
を付けておけば?
0381デフォルトの名無しさん
NGNG#include <stdio.h>
int main(void)
{
int i, n, flag;
i = 2;
printf("自然数を入力してください: ");
scanf("%d", &n);
printf("%dは", n);
flag = 0;
while (i < n){
if (n % i == 0)
flag = 1;
i++;
}
if(flag==1)
printf("素数ではありません.\n");
else
printf("素数です.\n");
return 0;
}
0382デフォルトの名無しさん
NGNGan=1/nという数列の和が100になるまでの経過を見るという
プログラムを作るのですが、
和が10,20,…100となるときのかかった時間を計測する
と言う問題で
時間の測り方がわかりません。
誰か教えて下さい。
0383デフォルトの名無しさん
NGNG・・・もっと高度な方法もあるが,始めはここからでしょう
0384383
NGNG間違いだ,悪いが自力でなんとかしろ
0385デフォルトの名無しさん
NGNGtimeGetTime()
Windowsならばの話
0387デフォルトの名無しさん
NGNGプロセスの経過時間でいいならclock()/CLK_TCK
0388デフォルトの名無しさん
NGNG標準関数ならclockというのがある。
clock_t clk;
clk = clock();
処理A
printf("%f sec\n", (clock()-clk)/(float)CLOCKS_PER_SEC);
これで処理Aにかかった時間が秒単位で表示される。
0389デフォルトの名無しさん
NGNGUnixならcshのtimeか、外部プログラムのtime,
Solarisならrusageもつかえる。
ストップウォッチなどによる計測はだめだよ〜。
0390382
NGNGtimeやclockを使うとき,和が100になるまでのじかんは
start = clock();
for(i = 1;sum<=100;i++)
{x=1/i;
sum=sum+x;}
end = clock();
で計測するとして、和が10や20を超えるまでの時間は
どうすればいいのでしょうか?
↑の計算途中でtime取得のタイミングがわからないのですが。
0391デフォルトの名無しさん
NGNGstart = clock();
for(i = 1;sum<=100;i++)
{if(sum<=j){clk[j/10-1]=clock;j=j+10}
x=1/i;
sum=sum+x;}
end = clock();
こんな感じかな。
0392382
NGNGただ、
if(sum<=j)という条件だと変数clk[]が
膨大な配列になってしまうと思うんですが。
どうでしょう。
0393デフォルトの名無しさん
NGNGそうだね。。。ごめんよ。。。
0394デフォルトの名無しさん
NGNGただ、
clk[j/10-1]=clock;だと
変数clk[]がclock()へのポインタになってしまうと思うんですが。
どうでしょう。
0395デフォルトの名無しさん
NGNGそうだね。。。ごめんよ。。。
てかそこまでわかってんなら自分で書こうよ。。。
0396デフォルトの名無しさん
NGNG0397デフォルトの名無しさん
NGNG確認しておきたいのですが>all
この擦れは、依頼人のスキルの上達なんてことは一切考えず、
他人の宿題をやってしまうスレですよね。
たまに、「本人のためにならないから、後は自分で考えろ!」という
パピコがありますが、それは別スレだった筈ですが。
0398デフォルトの名無しさん
NGNG「面倒臭くなったから、後は自分で考えろ!」ってのはありにして欲しいなぁ。
0399デフォルトの名無しさん
NGNG御意
0400デフォルトの名無しさん
NGNG・ネタで答えられる → 写していったらアホ
・非常に高度に答えられる → 誰かにやってもらったのバレバレ
・他の質問スレと同じ状況になる → スレ違いだが本人のためにはなる
のどれかになってる気が。
0401デフォルトの名無しさん
NGNG{
_beginthread(&BThread,0,this);
CDialog::OnRButtonDblClk(nFlags, point);
}
void CServerSampleDlg::BThread(LPVOID xParam)//一段目のスレッド
{
CServerSampleDlg *pDlg;
pDlg = (CServerSampleDlg *)xParam;
pDlg -> InitServer();
}
void CServerSampleDlg::OnReceive()
{
char cBuffer[256];
recv(m_YourSocket,cBuffer,256,0);
m_EditReceive=cBuffer;
}
void CServerSampleDlg::Thread(LPVOID pParam)
{
CServerSampleDlg *pDlg;
pDlg = (CServerSampleDlg *)pParam;
EnterCriticalSection(&g_section);
pDlg -> OnReceive();
LeaveCriticalSection(&g_section);
//pDlg -> CloseServer();
}
0402デフォルトの名無しさん
NGNG{
//接続
WSADATA wWsaData;
unsigned short sPort=2000;//ポート番号
CString ClientIPAddr=m_EditSend;//クライアントのIPアドレス
if(WSAStartup(MAKEWORD(2,0),&wWsaData)!=0)
return FALSE;
m_MySocket=socket(PF_INET,SOCK_STREAM,0);
if(m_MySocket==INVALID_SOCKET)
return FALSE;
m_SockAddr.sin_family=PF_INET;
m_SockAddr.sin_port=htons(sPort);
m_SockAddr.sin_addr.s_addr=inet_addr(ClientIPAddr);
memset(m_SockAddr.sin_zero,(int)0,sizeof(m_SockAddr.sin_zero));
int SockAddrSize=sizeof(m_SockAddr);
if(bind(m_MySocket,(struct sockaddr *)&m_SockAddr,sizeof(m_SockAddr))!=0)
return FALSE;
if(listen(m_MySocket,1)!=0)
return FALSE;
for(;;){
m_YourSocket=
accept(m_MySocket,(struct sockaddr *)&m_SockAddr,&SockAddrSize);
_beginthread(&Thread,0,this);//二段目のスレッド
}
return TRUE;
}
0403デフォルトの名無しさん
NGNG>>401-402のソースだと接続時にassation(たしか)と出てしまいます。
汚いソースで申し訳ないのですが流れ的に変な過程(行)を指摘していただけないでしょうか
よろしくお願いします
0404毒狂大生
NGNGここのC++の問題を全てやってくださると助かる(汗
0405デフォルトの名無しさん
NGNG( ゚д゚) ポカーン
0406デフォルトの名無しさん
NGNG> フローチャートとプログラムおよび処理結果をMS-Wordで編集
ムリだ。
0407デフォルトの名無しさん
NGNG> #include<iostream.h> // iostream.h:標準入出力ヘッダファイル
> void main(void) // main:メインプログラム
この問題の出題者は頃しておけ。
0408毒狂大生
NGNG0409デフォルトの名無しさん
NGNG出題コードは痛いが
Wordはフローチャート得意だぞ
0410デフォルトの名無しさん
NGNG0411デフォルトの名無しさん
NGNG0412デフォルトの名無しさん
NGNG組版環境まで指定しないで欲しい。。。
0413デフォルトの名無しさん
NGNG読みが浅い。
0414デフォルトの名無しさん
NGNG得意不得意の話じゃないぞ。
回答を Word で作ってうpしろというのか?
0415デフォルトの名無しさん
NGNG見ることは見たが、漏れには MFC なんぞわからん。
0417毒狂大生
NGNG0418デフォルトの名無しさん
NGNGできたんかよ課題(3)。いまやってたのに。。。
0419デフォルトの名無しさん
NGNG今も考えてるんですが どういう流れにすればよいのか分かりません
0420デフォルトの名無しさん
NGNGそうだろ
コンパイル通るかどうかとか
実行が正常かどうかは
受講者の領分
講師の仕事は受講者が自分の領分をまっとうする手伝いだ
WordどころかPDFで十分
0421毒狂大生
NGNG自分のと比べてみたいので是非とも作ってくださるとうれしいです(^^;
0422デフォルトの名無しさん
NGNGごめん面倒くさい。
特に変なことしなきゃ誰でも似たような回答に辿り着くと思うので,
俺が書くより421さんのを貼ってみんなに添削してもらったほうが
早くて高クオリティかと。
0423毒狂大生
NGNG問題17まではなんとかなったけど、18以降はサッパリっす(汗
0424デフォルトの名無しさん
NGNGをCで組んでもらえませんか?
0425デフォルトの名無しさん
NGNGy=1;
for(i=0; i<=100; i++)
{
yy=y;
y=-1*exp(-1*i/100.0);
line(x,y,i/100,yy);
}
0426424
NGNG何番へのレスですか?
0427デフォルトの名無しさん
NGNG0428デフォルトの名無しさん
NGNG0429毒狂大生
NGNG{ // 仮引数(与えられるデータの型と仮の名)の指定をする
if(a>=b) return(a); // 関数値(結果として返されるデータ)の設定
else return(b);
}
これのサブプログラムを改造して、3個の整数の最大値を求めるサブプログラム「
short int max3(short int a,short int b,short int c)」
を作れっていうんですけどどうやればいいのでしょうか?
0430デフォルトの名無しさん
NGNG0431デフォルトの名無しさん
NGNG0432デフォルトの名無しさん
NGNG0433デフォルトの名無しさん
NGNG{
return max(max(a,b),c);
}
0434デフォルトの名無しさん
NGNGshort int large(short int a,short int b)
{
return a > b ? a : b;
}
0435デフォルトの名無しさん
NGNG0436毒狂大生
NGNG{
int maxval;
maxval=a;
if(b>maxval)
maxval=b;
if(c>maxval)
maxval=c;
return(maxval);
}
こんな感じでもOKですか?
0437毒狂大生
NGNG#include<iostream.h>
#include "sub.cpp"
void main(void)
{
short int x,y,z,max;
cout<<"最初の整数データを入力してください ";
cin>>x;
cout<<"最初の整数データを入力してください ";
cin>>y;
cout<<"最初の整数データを入力してください ";
cin>>z;
max=max3(x,y,z);
cout<<max<<endl;
}
0438毒狂大生
NGNG0439デフォルトの名無しさん
NGNG0440デフォルトの名無しさん
NGNG最終課題をCで書いてみますた。貼っていい?
0441毒狂大生
NGNG{
int i,ave,total=0;
for(i=0; i<n; i++) total+=array[i];
ave=total/n;
return(ave);
}
次は一次元配列の平均を求めるサブプログラム作ってるんですが、これだとエラーがでちゃうんですが、どこが狂ってます?
0442デフォルトの名無しさん
NGNGaveをfloatで定義してみ。
0443毒狂大生
NGNG0445しつこくてスマソ
NGNG{
static int repeat_count = -1; /* < 0 は無効値 */
int i;
if (ch == 'F' || ch == 'R' || ch == 'L') {
if (repeat_count < 0) repeat_count = 1;
for (i = 0; i < repeat_count; i++) {
switch(ch){
case 'F': forward(); break;
case 'R': right_turn(); break;
case 'L': left_turn(); break;
}
}
repeat_count = -1;
} else if (isdigit(ch)) {
if (repeat_count < 0) repeat_count = ch - '0';
else repeat_count = repeat_count * 10 + ch - '0';
}
}
解説お願いします。
if (repeat_count < 0) repeat_count = 1;
for (i = 0; i < repeat_count; i++)
ってこのプログラムではどういう働きをしているの?
0446毒狂大生
NGNGお願いいたします、張ってください〜
0447C++なんかワカンネ440
NGNG#include<stdio.h>
#include<string.h>
#define BUFSIZE (256)
#define MAXSTUDENT (100)
#define MAXNAME (32)
struct student{
char name[MAXNAME], yomi[MAXNAME];
int a, b, sum;
};
int yomisort( int, struct student **);
int sumsort( int, struct student **);
int myfprint( FILE *, int, struct student **, char *);
0448C++なんかワカンネ440
NGNG/* usage: 入力ファイル名 出力ファイル名 を引数で与える。*/
int main(int argc, char *argv[])
{
FILE *fi, *fo;
int i;
struct student *sp[MAXSTUDENT];
if(argc != 3) exit(1);
fi = fopen(argv[1], "r");
if(!fi) exit(1);
fo = fopen(argv[2], "w");
if(!fo) exit(1);
for( i=0; i<MAXSTUDENT; i++){
fgets( buf, BUFSIZE, fi);
if( feof(fi) ) break;
sp[i] = (struct student *)malloc(sizeof(struct sudent));
if(!sp[i]) exit(1);
sscanf( buf, "%s %s %d %d",
sp[i]->name, sp[i]->yomi, &(sp[i]->a), &(sp[i]->b));
sp[i]->sum = sp[i]->a + sp[i]->b;
}
fclose(fi);
/* iは読み込めた人数になってる */
myfprint( fo, i, sp, "入力順のデータ");
yomisort( i, sp);
myfprint( fo, i, sp, "名前の読みの五十音順");
sumsort( i, sp);
myfprint( fo, i, sp, "2科目の平均点の降順");
fclose(fo);
}
0449デフォルトの名無しさん
NGNGstruct student *dmy;
int i, j;
for(i=0, i<n, i++){
for(j=n-1; j>=i; j--){
if( strcmp( sp[j]->yomi, sp[j+1]->yomi) > 0){
dmy = sp[j], sp[j] = sp[j+1], sp[j+1] = dmy;
}
}
}
return 0;
}
int sumsort( int n, struct student *sp[]){
struct student *dmy;
int i, j;
for(i=0, i<n, i++){
for(j=n-1; j>=i; j--){
if( sp[j]->sum < sp[j+1]->sum){
dmy = sp[j], sp[j] = sp[j+1], sp[j+1] = dmy;
}
}
}
return 0;
}
0450C++なんかワカンネ440
NGNG{
int i;
fprintf(fp, "%s\n", title);
for(i=0; i<ninzuu; i++){
fprintf(fp, "%s\t%s\t%d\t%d\n", sp[i]->name, sp[i]->yomi, sp[i]->a, sp[i]->b);
}
return 0;
}
ここまで。
0451C++なんかワカンネ440
NGNG・C++じゃない。
・全角文字のソートが激しく不安。
・エラー処理がいい加減。入力ファイルによっては暴走するかも。
あとは皆さんの力で。
# 鯖重いなあ、、、
0452毒狂大生
NGNG0453デフォルトの名無しさん
NGNGそのプログラムが基本的に「数値を読み込み, 次に実行する機能を指定する文字を
読み込み, 指定された機能を数値の回数だけ実行する」という動作をしていること
はわかる?"150R"を読み込んだらright_turnを150回実行するという様に。
読み込んだ数値はrepeat_countにセットされるから,
for (i = 0; i < repeat_count; i++)
は解説不要だと思う。ここで,
if (repeat_count < 0) repeat_count = 1;
は, "R"のように数値を指定せず機能だけを指定された場合, repeat_countは
初期値の-1になっているから, そのような場合に, 指定の機能を1回だけ実行
させるために設けられている。つまり"R"と"1R"は等価となる。
0454毒狂大生
NGNGint sum(int array[],int n)
{
int i,total=0;
for(i=0; i<n; i++) total+=array[i];
return(total);
}
メイン
#include<iostream.h>
#include “rei12sub.cpp”
void main(void)
{
int data[10],i;
cout<<”整数を10個入力しなさい “;
for(i=0; i<10; i++) cin>>data[i];
cout<<”10個の整数の合計は “<<sum(data,10)<<” です。” <<endl;
}
これを参考に
実数のn個の一次元配列を実数の大きさの順に並べ替えるサブプログラム
(void sort(float array[],int n))
を作り、試してみよ。
って問題なんですけどどうやればいいのでしょうか?
検討つかないっす(汗
0455しつこくてスマソ
NGNG丁寧な解説ありがとうございます!!
0456デフォルトの名無しさん
NGNG0457デフォルトの名無しさん
NGNG#include “rei12sub.cpp”
これって教師が書いたの?
こんなやり方するくらいなら別ファイルにしない方がマシなような。
/* 大きい順に並べる。最も単純なバブルソートを用いる。 */
void sort(float array[], int n)
{
int i, j;
float temp;
for (i=0; i<n-1; i++)
for (j=0; j<n-i-1; j++)
if (array[j] < array[j+1]) {
temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
0458毒狂大生
NGNG教師が書いたやつです。詳しいテキストは上〜のほうに張ってあります。
0459デフォルトの名無しさん
NGNG関数の問題で副作用で値を返すってあったんですが…
副作用って関数の中でmainから与えられた引数の
内容を変えられるってことでいいんでしょうか??
0460デフォルトの名無しさん
NGNGそういう意味で言ってるんだと思うよ。
0461デフォルトの名無しさん
NGNGまずmain()からで無くても意味は同じ
次にCかC++によって意味が変わる
Cであれば、引数はポインタで、そのポインタが指す先が変更される
C++であれば、Cと同じか、引数そのものが変更される
0462デフォルトの名無しさん
NGNGわかりました。
ありがとうございます
0463デフォルトの名無しさん
NGNG詳しい解説ありがとうございます
何となくだったのがちゃんとわかってスッキリしました(^^)
0464デフォルトの名無しさん
NGNGchar buf[100]; と宣言した配列に
gets(buf)
でキーボードから文字列を入力して受取り、
その後別の配列で
char word[100];
にstrcpyのように文字列全てではなくて
一文字ずつ文字を写すにはどのようにすればいいでしょうか?
0465デフォルトの名無しさん
NGNGwhile使って一文字ずつ代入
0466デフォルトの名無しさん
NGNG厳密には、それだけではない。
関数内で、グローバル変数を変更するとか、関数内の静的変数を変更する等も、副作用の一種です。
また、printf() で画面等に表示するとか、fgets() でキーボードから入力するのも副作用です。
要は、関数において値を返す以外のことは全て「副作用」です。
0467デフォルトの名無しさん
NGNGその場合
while(buf!='\0'){
にするとして、代入はどういうふうにすればできますか?
ポインタ使ってやるんでしょうか…?
char *sp;
sp=buf; を宣言して
word[]=sp;
ってかんじですか?
0468デフォルトの名無しさん
NGNGi=-1;
do{
i++;
word[i]=buf[i];
}while( buf[i] =! '\0' );
0469デフォルトの名無しさん
NGNG○ !=
0470デフォルトの名無しさん
NGNG>>468のやり方もしくは,
for (i=0; buf[i]!='\0'; i++)
word[i]=buf[i];
word[i]=buf[i];
だな。0オリジンじゃないと気持ち悪い性格なので俺ならこれで書く。
0471デフォルトの名無しさん
NGNGfor(i=0;word[i]=buf[i];i++);/* for(i=0;(word[i]=buf[i])!=0;i++); */
0473デフォルトの名無しさん
NGNGおおそれだ。
0474デフォルトの名無しさん
NGNGwhile(*dp++=*sp++);
0475レゴ
NGNGC++の実行結果をテキストに出力するやり方なんですけど。
0476レゴ
NGNG0477デフォルトの名無しさん
NGNG0478デフォルトの名無しさん
NGNG0479デフォルトの名無しさん
NGNG0480とけますか?
NGNG既存の行を変更してはいけない。
class Niwatori {
public:
void f(Tamago* gocchi) {}
};
class Tamago {
public:
void f(Niwatori* toricchi) {}
};
int main() {
return 0;
}
0481デフォルトの名無しさん
NGNG0482デフォルトの名無しさん
NGNGclass Niwatori {
public:
void f(Tamago* gocchi) {}
};
class Tamago {
public:
void f(Niwatori* toricchi) {}
};
*/
int main() {
return 0;
}
0483デフォルトの名無しさん
NGNG0484デフォルトの名無しさん
NGNGclass Tamago;
という前方宣言を付ければ通る。
0485デフォルトの名無しさん
NGNGclass Niwatori {
public:
void f(Tamago* gocchi) {}
};
template< class Niwatori >
class Tamago {
public:
void f(Niwatori* toricchi) {}
};
int main() {
return 0;
}
0486デフォルトの名無しさん
NGNG感心シマスタ。
0487デフォルトの名無しさん
NGNGつーか、実際そうしないか?
0488獨協C++
NGNG同じ大学のヤシに先越されたYO!
漏れはぜんぜんわからない〜
440さんはもう一度来ないかな・・・
0489デフォルトの名無しさん
NGNGという事は、全く同一のプログラムを提出したくはないと?
0490獨協C++
NGNGそうなんです。
おばちゃん教授とはいえ、その変のチェック厳しいんですよ〜
0491デフォルトの名無しさん
NGNGちょっと前レス見てみたけど、課題が簡単だから、どちらにしろよく
似たような解答になると思うよ。
0492獨協C++
NGNGそうですか。
前回の課題は自力で何とかなったので、
もう少しがんばってみます。
0493デフォルトの名無しさん
NGNG俺もC++勉強用に書いてみる。出来たら貼るから。
0494デフォルトの名無しさん
NGNGこの2002年度最終問題って奴か?提出明日じゃん。
0495毒狂大生
NGNGあの少ない人数の中に漏れ以外に2chに張るやつがいたとは(藁
課題は知り合いのプログラマーに解いてもらって突破した
あんなの自力じゃ無理だ(汗
ちなみに去年の過去問題手に入れたけど、そっちは恐ろしく簡単だぞ
0496デフォルトの名無しさん
NGNG0497獨協C++
NGNGおぉ、毒協大生タソ降臨!
そうなんだよね。
うちは文系学部(大学)だし、漏れの周りはほぼ全滅。
あのおばさんも説明の仕方わるいしね。
0498毒狂大生
NGNGちなみに去年の問題は整数をいくつか入れて合計と平均を表示するプログラムがあって、それの説明
もう一個は最小値を求めるサブプログラムの説明と穴埋め
課題とは裏腹にテスト問題はかなり簡単みたい
あとはfloatとかshort int,long int、文字列の扱いについての説明が出てるね
0499デフォルトの名無しさん
NGNGちくってやる(W
0500獨協C++
NGNGおーすげぇ〜
テスト問題の方が簡単だー
果たして課題は明日までにできるか不安。
しかもこれから塾講のバイトなんですよね。11時過ぎまで。
多分徹夜でつ。
あっ、そろそろ支度しないと・・・
0501毒狂大生
NGNGとりあえずテストは問題28あたりまで自力でやれれば余裕でしょう
0502獨協C++
NGNGがんばります。
もしかしたら、あした提出してるのは毒狂タンだけかも(w
0503毒狂大生
NGNGちなみに、まるっきり全部やってもらったわけじゃなく、隣で教えてもらってやったから問題ないかな
説明しろって言われるとツライが
0504デフォルトの名無しさん
NGNG0505デフォルトの名無しさん
NGNG0506デフォルトの名無しさん
NGNG0507デフォルトの名無しさん
NGNG0508デフォルトの名無しさん
NGNG0509デフォルトの名無しさん
NGNG空行を入力するまで文字列の入力を繰り返すのに
while(*(sp=gets(buf)))
を使うのですがどう働いてるのかわからない。
gets(buf)でchar buf[100];
に文字列を渡してるのだと思うんですけど
char *spはどう働いてるんでしょうか?
lineの先頭アドレスをもらうってことかと思ったんですけど
だとしたら「*」は何を表すんでしょう…
0510毒狂大生
NGNG漏れは教えてもらいながらやったやつがあるから、404氏がやったやつを使っても問題ないかと
0511デフォルトの名無しさん
NGNG「〜の内容」
つまりbuf[0]の中身
0512デフォルトの名無しさん
NGNGそっか。buf[0]の中身があればループするってことですね。
ありがとうございました。
あともう一つだけ聞いてもいいですか…?
while(*(sp=gets(line)))で文字列をchar buf[100]にいれて
ループを出たらprintfで出力しなきゃいけないんですが
printf("%s",buf);だと文字列が何も表示されないんです。
%cだと文字が変わっちゃうし…。
どうすればいいでしょう?
0513デフォルトの名無しさん
NGNG>while(*(sp=gets(line)))で文字列をchar buf[100]にいれて
gets(line)でbufに入力文字列が入るワケがない。
>ループを出たら〜〜文字列が何も表示されないんです
エンターだけ入力した時にループ終了だから表示されるワケがない。
もしかして、釣られた・・・のか?
0514デフォルトの名無しさん
NGNGあっ!ごめんなさい。間違えました…
while(*(sp=gets(buf)))です。
そっか。whileの中で表示させればよかったんですよね。
ループ終わったら表示させることしか考えてなかった(・・;)
0515山崎渉
NGNG0516デフォルトの名無しさん
NGNGつか本当に
while(*(sp=gets(buf)))
なんてやっていいのか?
空行が出てくる前にファイルが終了に到達したらどうなるんだ?
あと、bufに確保している以上の文字数がある行が出てきたらどうなんだ?
という問題もあるがなあ。getsは過去のコードとの互換性を保つためだけに
ある関数で、使っちゃいかんぞ。
0517デフォルトの名無しさん
NGNGcell computingとは、ブロードバンドに接続された家庭内
や企業内のPCの余剰CPUパワーを統合し、
仮想的なスーパーコンピュータとしての利用を実現する
技術を用いたSI、ネットワークサービスです。
バイオ、物理計算、設計、金融工学、CGレンダリング
などの分野のお客様へ、安価に仮想スーパー
コンピュータパワーを提供することを目的としております。
なお、将来的には収益にあわせてCPUパワーを提供し
てくださる参加者へポイントシステムやデジタルコンテンツ
による利益還元を考えております。
http://www2.cellcomputing.jp/
2ちゃんねるのチームあります。【おまえらのPCで挑戦しる】
http://members.cellcomputing.jp/services/teams/team.htm?id=ABBE425B-CE11-4DA4-8591-C68DF67DA41A
0518デフォルトの名無しさん
NGNGIP抜かれるとか無いんだろうか?
0519デフォルトの名無しさん
NGNG0520デフォルトの名無しさん
NGNGそれにやってることは白血病の解析の二番煎じだしね。
0521デフォルトの名無しさん
NGNG0522デフォルトの名無しさん
NGNG0523デフォルトの名無しさん
NGNGいみふめーだな。
0524デフォルトの名無しさん
NGNG0525デフォルトの名無しさん
NGNG0526デフォルトの名無しさん
NGNG非同期: 同期ではない人のこと。
0527デフォルトの名無しさん
NGNG非同期: オナーニ
0528デフォルトの名無しさん
NGNG0529デフォルトの名無しさん
NGNG同期を取るためにプロセス間通信を利用します。
「いっていい?」
「まだ」
「いくいくいっしょに〜」
0530デフォルトの名無しさん
NGNG0531デフォルトの名無しさん
NGNG0532デフォルトの名無しさん
NGNG右手はどっち?
0533デフォルトの名無しさん
NGNG大文字の数、小文字の数、数字の数、空白の数、その他の文字数
をそれぞれ求めるプログラムをつくりたいのですが
どうしたらいいでしょうかお願いします。
0534デフォルトの名無しさん
NGNGまずはgetsを使わないようにするところから始めよう!
0535533
NGNG0536デフォルトの名無しさん
NGNGだめ。getsは互換性のためだけにある関数で、
使っちゃいけない。
0537デフォルトの名無しさん
NGNGすべての組み合わせのパターンを表示するプログラムを
作りたいのですが、どうすればいいですか?
例えば、下記のような値が与えられたときは
A0, A1
B0, B1
C0, C1
D0, D1, D2
下記のような組み合わせをすべて出力できるようにしたいのですが
どうすればいいのでしょうか?表示の順序にはこだわりません。
すべてのパターンを表示していただければどんな順序でもかまいません。
[A0, B0, C0, D0]
[A0, B1, C0, D0]
[A0, B0, C1, D0]
[A0, B0, C0, D1]
・
・
・
[A1, B1, C1, D2]
0538デフォルトの名無しさん
NGNG#include <stdio.h>
static const char *A[] = {"A0", "A1"};
static const char *B[] = {"B0", "B1"};
static const char *C[] = {"C0", "C1"};
static const char *D[] = {"D0", "D1", "D2"};
int main()
{
for(int iA = 0; iA < sizeof(A)/sizeof(A[0]); iA++){
for(int iB = 0; iB < sizeof(B)/sizeof(B[0]); iB++){
for(int iC = 0; iC < sizeof(C)/sizeof(C[0]); iC++){
for(int iD = 0; iD < sizeof(D)/sizeof(D[0]); iD++){
printf("[%s,%s,%s,%s]\n", A[iA], B[iB], C[iC], D[iD]);
}
}
}
}
return 0;
}
0539デフォルトの名無しさん
NGNG宿題スレってことは学校でgets教えてるってことか。
デタラメ教えやがって。
0540デフォルトの名無しさん
NGNGとは、どういう意味ですか?
0541デフォルトの名無しさん
NGNGちょっと遅くなりましたができたのでアップしておきます。
どなたかこのプログラムをもっとすっきりした形にして下さい。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct Atom {
char atom[10][10];
int n;
};
void printall(struct Atom *, int, int, int *);
int main(void)
{
FILE *fi;
char buf[128], *p;
struct Atom a[10];
int i, j = 0, m, cue[10];
if ((fi = fopen("combi.txt", "r")) == NULL) exit(1);
while (fgets(buf, 128, fi)) {
int i = 0;
p = strtok(buf, ", \n");
strcpy(a[j].atom[i++], p);
while (p = strtok(NULL, ", \n"))
strcpy(a[j].atom[i++], p);
a[j++].n = i;
}
0542デフォルトの名無しさん
NGNGreturn 0;
}
void printall(struct Atom *a, int m, int n, int *cue)
{
int i, j;
for (i = 0; i < a[n].n; i++) {
if (m - 1 == n) {
printf("[");
for (j = 0; j < m; j++) {
if (j == m - 1)
printf("%s", a[j].atom[i]);
else
printf("%s", a[j].atom[cue[j]]);
if (j != m - 1) printf(", ");
}
printf("]\n");
} else {
cue[n] = i;
printall(a, m, n + 1, cue);
}
}
}
0543デフォルトの名無しさん
NGNGvoid printall(struct Atom *a, int m, int n, int *cue)
{
int i, j;
for (i = 0; i < a[n].n; i++) {
if (m - 1 == n) {
printf("[");
for (j = 0; j < m; j++)
if (j == m - 1)
printf("%s]\n", a[j].atom[i]);
else
printf("%s, ", a[j].atom[cue[j]]);
} else {
cue[n] = i;
printall(a, m, n + 1, cue);
}
}
}
0544デフォルトの名無しさん
NGNG(','と' 'と'\n')
0545537
NGNGもう出来ているとは・・・
どうも有難う御座いました。
0546デフォルトの名無しさん
NGNG一度にいくつも指定できないと、わざわざstrtok()を使う意味がない。
0547デフォルトの名無しさん
NGNGgets 使うことは全然問題ないよ、気にしない方がいいよ。
ただ、バッファのサイズには気をつけてね。
#include <stdio.h>
#define BUFSIZ 256 // 最大文字入力数+1
char buf[BUFSIZ];
int i, upper, lower, degit, space, other;
gets(buf);
upper = lower = degit = space = other = 0;
for (i = 0; buf[i]; ++i) {
if (buf[i] >= 'A' && buf[i] <= 'Z')
++upper;
else if (buf[i] >= 'a' && buf[i] <= 'z')
++lower;
else if (buf[i] >= '0' && buf[i] <= '9')
++degit;
else if (buf[i] == '_')
++space;
else
++other;
}
printf("upper=%d, lower=%d, degit=%d, space=%d, other=%d\n",
upper, lower, degit, sapce, other);
0548デフォルトの名無しさん
NGNG{
int i, j;
for(i=0; i<a[n].n; i++) {
if(m-1==n) {
printf("[");
for(j=0; j<m-1; j++)
printf("%s, ", a[j].atom[cue[j]]);
printf("%s]\n", a[j].atom[i]);
}else{
cue[n] = i;
printall(a, m, n + 1, cue);
}
}
}
0549デフォルトの名無しさん
NGNGisdigit,islower,isupperなどは使え無いの?
0550デフォルトの名無しさん
NGNG0551デフォルトの名無しさん
NGNG今ではgetsは使ってはいけない。
しかし、昔の規格にgetsが入っているため、仕方なく残してある。
getsは意味のあるタブーなのだよ。
0552デフォルトの名無しさん
NGNG1文字を正方形の区画と考えて、与えられた図形を
2分割(裏返しも考慮)するプログラムを作成しなさい。
(注:'-'は実際は空白文字です)
例題:
*******
*******
**----*
**----*
****--*
****--*
------*
------*
回答:
#######
#++++++
#+----+
#+----+
#++#--+
####--+
------+
------+
0553デフォルトの名無しさん
NGNGgetsには問題おおありだろ。
バッファのサイズに気をつけてって問題点までちゃんと認識してるじゃねえか。
外から読むときは、すべからく予想外のものがくることを想定すべきだ。
getsのバッファオーバーフローなんかその典型でちょっと気をつければ
防げることじゃないか。
あとなんでctype.hのマクロ群を使わないんだ?
事実上ASCIIだけだからそのコードでもさほど問題ないだろうけど、
移植性に問題あるぞ。それに、普通ctype.hのマクロのほうが速いし、
意図が明確になるし。
0554デフォルトの名無しさん
NGNG0555デフォルトの名無しさん
NGNGあと、CかC++か指定しる!
0556デフォルトの名無しさん
NGNG>getsのバッファオーバーフローなんかその典型でちょっと気をつければ
>防げることじゃないか。
だから問題ないんでしょ。
宿題ごときに、何ムキになってんの?
0557デフォルトの名無しさん
NGNG宿題→宿題レベル
0558552
NGNG図形を2分割
↓
図形を同じ形に2分割
に訂正です。すみません。レプタイルという問題だそうです。
あと、C言語でおながいします。
0559デフォルトの名無しさん
NGNG0560デフォルトの名無しさん
NGNG宿題だからこそムキになってる。
こういうのは早いうちから癖つけとかんと。
0561デフォルトの名無しさん
NGNGBlockArray.cpp
Microsoft Visual Studio\LeadBall\BlockArray.cpp(49) : error C2065: 'BLOCK_STOCKRECT' : 定義されていない識別子です。
Microsoft Visual Studio\LeadBall\BlockArray.cpp(49) : error C2109: 配列または、ポインタでない変数に添字が使われました。
Microsoft Visual Studio\LeadBall\BlockArray.cpp(49) : error C2664: 'SetRect' : 1 番目の引数を 'int' から 'const class CRect &' に変換できません。 (新しい機能 ; ヘルプを参照)
理由: 'int' から 'const class CRect' へは変換できません。
コンストラクタはソース型を持てません、またはコンストラクタのオーバーロード レゾリューションがあいまいです。
cl.exe の実行エラー
LeadBall.exe - エラー 3、警告 0
くだらない質問で申し訳ないんですが、
誰か上の意味を教えてください。
0562デフォルトの名無しさん
NGNGBlockArray.cpp
Microsoft Visual Studio\LeadBall\BlockArray.cpp(49) : error C2065: 'BLOCK_STOCKRECT' : 定義されていない識別子です。
Microsoft Visual Studio\LeadBall\BlockArray.cpp(49) : error C2109: 配列または、ポインタでない変数に添字が使われました。
Microsoft Visual Studio\LeadBall\BlockArray.cpp(49) : ぬるぽ C2664: 'SetRect' : 1 番目の引数を 'int' から 'const class CRect &' に変換できません。 (新しい機能 ; ヘルプを参照)
理由: 'int' から 'const class CRect' へは変換できません。
コンストラクタはソース型を持てません、またはコンストラクタのオーバーロード レゾリューションがあいまいです。
cl.exe の実行エラー
LeadBall.exe - エラー 2、警告 0、ぬるぽ1
0563デフォルトの名無しさん
NGNGこいつ、移植性に問題あるって指摘しておきなが、
getsのこと否定してやがる。支離滅裂。
あと、ctype.h がない、C言語のこと知らないんだ。
そういう意味で ctype.h は移植性に問題あるんだけどな。
そのころの習慣で、ctype.h を使わないプログラマーがいるんだろうな。
0564デフォルトの名無しさん
NGNGそれでダメダメしか言わないんじゃな。素直に疑問に答えてやればいいのに
0565デフォルトの名無しさん
NGNGgets使わず何使うの?
まず、それに答えなさいよ。
scanf?ぷっ
0566デフォルトの名無しさん
NGNG何で移植性に問題ある? gets使わなくても移植性のあるコードかけるだろ。
昔のコードにgets使ってるコードがあるから仕方なく規格に入ってるだけ。
んで、ctype.hがないC処理系なんて前提にしてるの?
そういうレベルなら、getsだって使えない処理系あるぞ。
それどころか、エントリーポイントがmainじゃない処理系だってあるんだがな。
スタックがない処理系だの、大文字しか使えない処理系だの。
そういうレベルの話なのか?
0567552
NGNG****
****
↓
##++
##++
とか。複数考えられるときはそのうちの1種類だけできればいいそうです。
また、分割できない時はその旨のメッセージを表示すればいいです。
>>559
すみません、意味が分かりません。
0568547
NGNG仕事でコード書くときにには、is系使いますよ。
それと、gets の代わりに、fgets の stdin ですかね。
でもそういう問題じゃないと思ったんで。
単に質問に答えただけですから、すみません。
0569デフォルトの名無しさん
NGNG普通fgetsだろう。
じゃあ書いてやるから少し待て。
0570555
NGNGなんとなく分かって来たべ。やってみる。
直感的なんだけど、うまく分割できる図形ってのは、かなり限られてるんじゃねーか?
0571デフォルトの名無しさん
NGNG> あと、ctype.h がない、C言語のこと知らないんだ。
せめて ANSI ぐらいは、想定しようよ。
>>566 も書いてるけど、極論し出すとキリないぞ。
0572デフォルトの名無しさん
NGNG以下の要項で小学校を襲撃します?
場所:大田区立梅田小学校
とき:平成15年1月27日(月曜日)
http://www.megabbs.com/cgi-bin/readres.cgi?bo=lobby&vi=1043406471&rm=50
↑
こいつは通報します
0573デフォルトの名無しさん
NGNG禿藁 age
0574デフォルトの名無しさん
NGNG今はじめて気が付いたんだけど、
左と右ってエロだね。
0575デフォルトの名無しさん
NGNGそしたら gets も問題ないわけで、
gets だけ問題するのはおかしいという意味ですよ。
0576デフォルトの名無しさん
NGNGgetsは移植性が問題なんじゃなくて、バッファ溢れを防げないことが問題なんでしょ。
0577デフォルトの名無しさん
NGNGそのことは、最初から >>547さんは書いてるし、
あと >>568 の発言もある。
どうもいちゃもん付けてるだけとしか思えないんだけどね。
0578569
NGNGたしかにANSIだけを考えてると問題ないかもしらん。
が、getsは使うべきじゃないだろう。
んで、こんな感じ。散々言っといて移植性やらバッファオーバーフローやらに
問題あったらどうしよう(w
#include <stdio.h>
#include <ctype.h>
#define BUFSIZE 256 // 最大文字入力数+1
int main(void) {
char buf[BUFSIZE];
int i, c, upper, lower, degit, space, other;
upper = lower = degit = space = other = 0;
while (fgets(buf, sizeof(buf), stdin)) {
for (i = 0; (c = buf[i]) != '\0' && c != '\n'; ++i) {
if (isupper(c))
++upper;
else if (islower(c))
++lower;
else if (isdigit(c))
++degit;
else if (c == ' ')
++space;
else
++other;
}
}
printf("upper=%d, lower=%d, degit=%d, space=%d, other=%d\n",
upper, lower, degit, space, other);
return 0;
}
0579デフォルトの名無しさん
NGNGと、変なところを突っ込んでみる。
0580デフォルトの名無しさん
NGNG0581デフォルトの名無しさん
NGNG>>533の言う空白が' 'だけでなく改行や復帰なども含まれるのならc==' 'じゃなくてisspace(c)じゃないか?
0582デフォルトの名無しさん
NGNG一連の流れ見る限り、好感度悪いっす。
0583デフォルトの名無しさん
NGNG> そのことは、最初から >>547さんは書いてるし、
でも、バッファサイズ問題は最終的にはどうしようもないからねぇ。
(>>547 の BUFSIZ をいくつにしてもあふれる時は、あふれるからね。)
> あと >>568 の発言もある。
自分が (仕事とは言え) isxxx() とか fgets() 使いながら...
> gets 使うことは全然問題ないよ、気にしない方がいいよ。
> ただ、バッファのサイズには気をつけてね。
と言うのは、ちょっとなんだかなぁと言う感じがしなくもない。
>>579
isdigit() って書いてるのにねぇ...。
0584デフォルトの名無しさん
NGNGで、256文字以上入力された場合はそれでいいの。
それなら、そんなに大騒ぎせんでもって感じ。(www
0585デフォルトの名無しさん
NGNG> gets 使うことは全然問題ないよ、気にしない方がいいよ。
> ただ、バッファのサイズには気をつけてね。
バッファーフローの問題以外は、問題ないよって意味にとれましたが。
そもそも質問にはgets使ってあるんだから、問題があるなら出題する方だと思います。
0586デフォルトの名無しさん
NGNGけど、K&R本も問題ありということになるよ。
0587デフォルトの名無しさん
NGNGまともに入出力できないから、だめぽ。
0588デフォルトの名無しさん
NGNG0590デフォルトの名無しさん
NGNG宿題のレベル超えてねぇか。
0591デフォルトの名無しさん
NGNG実装するの大変そうな案ばかり。
0592デフォルトの名無しさん
NGNG0593592
NGNG+はなにを表しているんだろ
0594592
NGNG0595555
NGNG1. 問題の図形を c[][]にセット。
2. if(cの面積が奇数) nomatch→exit。
3. cに含まれて、かつ面積が半分な図形aをつくってみる
4. aが連続な多角形になってるか(2つの島に分かれたりしてないか)チェック。
5. b=c-aがaと合同かどうか、回したり裏返したりしてチェック。
こんなんでどうよ?総当たり的な要素が満載ですがw
>>594 ちがうぞ!
解答の#と+が合同になるようにしる!って事だべ。
0596デフォルトの名無しさん
NGNG*******
*******
**----*
**----*
****--*
****--*
------*
------*
回答:
#######
#$$$$$$
#$----$
#$----$
#$$#--$
####--$
------$
------$
'#','$'で、出来た図形が'同じ'なんだろ。
しっかりしと。
0597デフォルトの名無しさん
NGNG合同になるようにってのは分かったけど、分割した片方は消すのかと思った(先入観)。
難しいねぇ〜
0598デフォルトの名無しさん
NGNG島になってないかどうかとかいうチェックが入りそうな。
そうじゃなくて境界線で表現して、分割線を入れてみるという線はどうだろう。
0599デフォルトの名無しさん
NGNG分割した片方を消しても、元の画像と
分割後の画像の差分で簡単に取り出せる
難しいのは、効率良く合同な図形に分ける事
0600デフォルトの名無しさん
NGNG↓が問題文です
CPUのシミュレータ
CPUの動作を模擬するプログラムを書いてみよう。
CPUは、命令をメモリから取り出し、その命令に基づいた動作をする。
動作は例えばメモリからデータを読み出してCPU内のレジスタにコピーしたり、加減乗除演算をしたりする。
この一連の動きを真似るプログラムを書く。
CPUは、原則としては何でも構わないが、広く使われるIntelのPentium系のCPUは動作が非常に複雑なので、比較的簡単な、実験Iで用いるプロセッサがよいだろう。
動作の検証には、簡単なプログラムをメモリ上に用意し、それを1ステップごとに実行した結果を表示する。
0601デフォルトの名無しさん
NGNG*の数が分割数(2)で割り切れなければ 処理は終了。
あと、どんな特徴があるんだろう。
# 文字の 縦の長さと 横の長さが違うから
# 問題の意味がよく分からんかった。
0602デフォルトの名無しさん
NGNGそれは、物質(CPUそのもの)はいるの?
0603デフォルトの名無しさん
NGNG0604デフォルトの名無しさん
NGNG実験Iで用いるプロセッサってなに?
レジスタと命令セットがわからない。
0605デフォルトの名無しさん
NGNGいや・・ちょっとわからないです・・m(_ _)m
ほかにも問題があるんで、どれか1つを提出すればいいんですが・・・
↓がほかの問題の1つです
図形処理(イメージの輪郭抽出)
イメージを与えられたとき、その輪郭を抽出することを考えてみよう。
まずは白黒2値で描かれたイメージの輪郭を抽出してみよう。
画像処理の教科書を見ると「輪郭抽出フィルタ」といった描き方がされているかもしれない。
更に、グレースケール(白黒の多階調)やカラーのイメージの場合についても調べて、プログラムしてみると面白いかもしれない。
更に進めて、イメージの一般的な変換(色調の変換、輪郭強調、拡大縮小回転など)を考えてもいい。
0606555
NGNGそれもいいかも。というか、島チェック時にそういう手法が絶対必要なのか?
>>601
それはすぐに思い付いたので、>>599で入れてるけど、
前処理でNoMatchをできるだけ洗い出したいという線で激しく同意。
>>603 激しく外出。
0607603
NGNG0608デフォルトの名無しさん
NGNGいつのか忘れたが。
>>600
スタック型とかCISC,RISCの話?
エミュレータを自作しれということ?
質問が漠然としすぎ。
0609デフォルトの名無しさん
NGNG2. それらのマスが全て隣接しているかチェック
3. 合同かチェック
1.2.3. を総当りでやる。でけんことはないけど。
0610609
NGNG全てのマスを0とする。
ひとつ取り出し 1 とする。
隣接したマスを 1 すると同時に、再起呼び出し。
0 が残っていたら不連続
0611デフォルトの名無しさん
NGNG2.任意の一つを取り出し、選択済み配列にいれる。
3.選択済み配列内の座標とxもしくはyが同一で、他方の差の絶対値が1である座標を探し、選択済み配列に加える。
4.2.から繰り返す。
選択済み配列に全ての座標が入れば図形は連続している。
イマイチだな。
0612デフォルトの名無しさん
NGNG0613デフォルトの名無しさん
NGNG0615デフォルトの名無しさん
NGNGごめん。何となく思いつき。
こういう問題は必ず、「分割できる元の図形」 や 「分割した後の図形」 がもつ特徴があるはずだから、
それがわかれば枝狩りできると思った。
0616デフォルトの名無しさん
NGNG座標の端っこ(4隅?)を求めて素直に真ん中
そこから、対称的に成るものは無いか探す。
0617609
NGNG分割前の領域をA+Bとする
マスの並びをM[x][y]で示すことにする。
1. 領域の分割-------------------------------
A+Bの領域のマスの個数の桁の2進数を考えるこの桁数をnとする
M[][] に何桁目かを代入しておく、マスがないところは-1
for (i = 0; i < 2^n; ++i) {
2進数表記で0と1のビットが同じかチェック
同じ場合 2. を行う
}
2. 領域が連続しているかチェック-------------
1.で用意した2進数のビットがたっている領域をAとする
領域A分のフラグのテーブルF[n]を用意して、クリアする。
領域Aのマスの一つを取り出す。
21. そのマスに該当するF[?]に1をセットする。
21a. そのマスの上側のマスを調べて領域Aであれば21を呼び出す
21b. そのマスの右側のマスを調べて領域Aであれば21を呼び出す
21c. そのマスの下側のマスを調べて領域Aであれば21を呼び出す
21d. そのマスの左側のマスを調べて領域Aであれば21を呼び出す
22. f[]のフラグが全て1なら連続だから 3. を行う
3. 領域AとBが合同かチェック----------------
ヘルプ!
注.
21a〜dではM[][]を参照してその方向にマスがあるのか、
あれば何桁目かを調べさらに領域Aであるかをチェックする
効率悪いし、領域の面積が64超えると、、、
0618609
NGNG分割後の領域の片側をA、もう一方をBする
分割前の領域をA+Bとする
マスの並びをM[x][y]で示すことにする。
1. 領域の分割-------------------------------
A+Bの領域のマスの個数の桁の2進数を考えるこの桁数をnとする
M[ ][ ] に何桁目かを代入しておく、領域がないところは-1
for (i = 0; i < 2^n; ++i) {
2進数表記で0と1のビットが同じかチェック
同じ場合 2. を行う
}
2. 領域が連続しているかチェック-------------
1.で用意した2進数のビットがたっている領域をAとする
領域A分のフラグのテーブルF[n]を用意して、クリアする。
領域Aのマスの一つを取り出す。
21. そのマスに該当するF[?]に1をセットする。
21a. そのマスの上側のマスを調べて領域Aであれば21を呼び出す
21b. そのマスの右側のマスを調べて領域Aであれば21を呼び出す
21c. そのマスの下側のマスを調べて領域Aであれば21を呼び出す
21d. そのマスの左側のマスを調べて領域Aであれば21を呼び出す
22. f[]のフラグが全て1なら連続だから 3. を行う
3. 領域AとBが合同かチェック----------------
ヘルプ。
注.
21a〜dではM[ ][ ]を参照してその方向にマスがあるのか、
あれば何桁目かを調べさらに領域Aであるかをチェックする
効率悪いし、領域の面積が64超えるとね、、、
0619デフォルトの名無しさん
NGNGコラムにでも載ってそうな感じだね。>図形の
数学板にでも聞きに行くか。
0620555
NGNG0621オバカさん
NGNGここで質問したいんですが、回文判定のプログラムです。
いろいろ調べてるうちに以下まではなんとかわかったんですが、
文字列入れるとエラーになってしまうんですがどうやったら
普通に動くんでしょうか? 長くてすみませんが救ってくださいませぇ。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int hantei(char s[]);
int main(void)
{
/* ここから下の数行がおかしいと思うんですけど */
char X;
printf("文字列を入れてください。:");
scanf("%s",X);
if(hantei("X"))
printf("Xは回文です。\n");
else
printf("Xは回文ではありません。\n");
return (0);
}
int hantei(char s[])
{
int i,j;
i=0; j=strlen(s) -1;
while(i<j && s[i]==s[j]) {
i++; j--;
}
return i>=j;
}
0622デフォルトの名無しさん
NGNG0623デフォルトの名無しさん
NGNGchar X[256]; ←こんな風にする
理由はわかるよね?
0624デフォルトの名無しさん
NGNG0625623
NGNG鬱・・・
0626デフォルトの名無しさん
NGNG突っ込みどころが多すぎるが取り敢えずこんな物だろう
char X[260];
printf("文字列を入れてください。:");
scanf("%s",X);
if(hantei(X))
printf("%sは回文です。\n",X);
else
printf("%sは回文ではありません。\n",X);
0627デフォルトの名無しさん
NGNG#include<stdio.h>
#include<string.h>
char filename[256];
char filetype[256];
int filenumber=0;
strcpy(filename,"test");
strcpy(filetype,".bmp");
strcat(filename,(char)filenumber);
strcat(filename,filetype);
printf("%s\n",filename);
>> test0.bmp
と出力させたい…
0628デフォルトの名無しさん
NGNGsprintf("%s%d.%s", filename, filenumber, filetype);
0629デフォルトの名無しさん
NGNGchar buf[256];
...
sprintf(buf, "%s%d.%s", filename, filenumber, filetype);
printf("%s\n", buf);
0630デフォルトの名無しさん
NGNGヲイヲイ
0631デフォルトの名無しさん
NGNGでしょ。
0632デフォルトの名無しさん
NGNG0633デフォルトの名無しさん
NGNGatoi は文字列の数字をint型に変換する場合だからちょっと違うかと。
0634デフォルトの名無しさん
NGNG0635632
NGNG0636デフォルトの名無しさん
NGNG0637デフォルトの名無しさん
NGNG>>631でいいことはわかってて、ちょっと遊んでるだけです。
0639デフォルトの名無しさん
NGNG0640555
NGNGC=A+BのAを生成する関数を書いてくれると助かる。
0641デフォルトの名無しさん
NGNG0642オバカさん
NGNG特に625さんののようにやったらうまくいきました。
これで単位獲得まで15分の100から20分の100まで前進しました。
感謝しております。
0643デフォルトの名無しさん
NGNG元の図形の半分大きさの図形を順に生成 -(1)
元の図形と重なるか順に試す -(2)
残った領域と生成した図形が同じか順に試す -(3)
おめでとう
{0,1} で、そのマスの上にブロックが {ない, ある} を表す。
置くときは xor すると一つのマスにブロックが重なった状態が 0 になりチェックしやすそう。
(0) 元の図形の外に面している辺の位置と長さを記録
(1) 連続した図形を作るのがめんどくさそう。これも外に面している辺の位置と長さを記録。
(2) 元の図形の外辺のどれかと生成した図形の外辺のどれかが一致する(はず)。
辺の長さがぴったりなら(3)へ。反転と回転で最大 2x4=8 パターン繰り返す。
(3) (2) と同じ。残った図形の外辺のどれかと生成した図形の外辺のどれかが一致する。
最大 2x4=8 パターン繰り返す
0644デフォルトの名無しさん
NGNG>C=A+BのAを生成する関数を書いてくれると助かる。
具体的なコードを提示できなくて悪いんだけど、
分割する前の図形の辺は、必ず分割した後の図形の辺(の1部)に
なる事を利用すれば、かなり絞り込めるんじゃないの?
0645644
NGNG0646644
NGNG1.始点となるマスを任意に決定(下図 A)。
A の場合、上と左の辺が切断した際にも辺となる点に注意(枝狩りに使えそう)。
まだ、下と右の辺がどうなるかは未決定。
2.全てのマスに対して、A と対応づけてみる(下図 a)。
a の場合、右の辺が切断した際にも辺となることが分かっている。
3.A に対して、つながるマスを設定する(下図 B)。
ここで、A の右側は辺にはならない事が決定する。
4.B に対して、対応するマスを決定する(下図 b)。
AB*****
*****ba
**----*
**----*
****--*
****--*
------*
------*
0647デフォルトの名無しさん
NGNGもしできないのならどうすればいいのでしょうか。
コンパイラはg++です。
void Pile::shuffle()
{
for(int i = 0; i < rest; i++)
{
int j = random(rest); //動かない原因
int w = indexes[i];
indexes[i] = indexes[j];
indexes[j] = w;
}
}
0648Cだけど
NGNG#include <stdio.h>
#include <time.h>
/* 0 から 99 までの乱数を表示する */
int main(void) {
randomize();
printf("Random number in the 0-99 range: %d\n", random (100));
return 0;
}
0649デフォルトの名無しさん
NGNG自己解決してしました。
どうもありがとうございました。
0650デフォルトの名無しさん
NGNGAdd(pBlock);
if(m_bShift){
for(int i = 0; i < GetSize(); i++){
static_cast<CDirBlock*>(GetAt(i))->SetRect(BLOCK_STOCKRECT[i]);
}
}
return pRetObj;
BlockArray.cpp(49) : error C2664: 'SetRect' : 1 番目の引数を 'int' から 'const class CRect &' に変換できません。 (新しい機能 ; ヘルプを参照)
理由: 'int' から 'const class CRect' へは変換できません。
コンストラクタはソース型を持てません、またはコンストラクタのオーバーロード レゾリューションがあいまいです。
このエラーの解決方法教えて〜〜〜〜〜〜〜〜〜〜〜〜
0651デフォルトの名無しさん
NGNG本を読んでもサッパリで、丸投げ状態です。
誰か作って頂けないでしょうか?
課題は以下の通りです。
最短経路のプログラムを作る
入力:グラフと経路の始点、終点
入力フォーマット:'(' '(' 頂点ID 頂点ID ..... ')'
'(' '(' 頂点ID 頂点ID 距離 ')' ..... ')' ')'
'(' 頂点ID 頂点ID ')'
出力フォーマット:'(' 距離 頂点ID 頂点ID ..... ')'
0652デフォルトの名無しさん
NGNG「最短経路探索」でググってみれば、
幾らでも有名どころのアルゴリズムが
見つかるような気がするが・・・
一体何が分からないんだ?
0653デフォルトの名無しさん
NGNG他のお勧めアルゴリズム漏れもきぼーん。
0655デフォルトの名無しさん
NGNGマルチだったのかよ!!
0656デフォルトの名無しさん
NGNG減ってませんか。
0657デフォルトの名無しさん
NGNGすいません。急いでたものですから
0658デフォルトの名無しさん
NGNGマルチが何故いけないか全然理解して無いだろ。
0659デフォルトの名無しさん
NGNG0662デフォルトの名無しさん
NGNG今時、そこまで詰め込まなくても良いと思うけど。
途中経過が膨大になってメモリーを圧迫するようになってから考えれば良いんじゃない。
最初は、わかりやすいように1マス1バイトで良いでしょう。
0663デフォルトの名無しさん
NGNGどうしても出来ないんで御教授お願いします。
n及びn+2がともに素数になる数の内15000以上の最小の数値の組み合わせ
nとn+2を求めるプログラムを作成せよ。って問題なんですが
お願いします。
0664デフォルトの名無しさん
NGNGわからんぞ>>663
0665デフォルトの名無しさん
NGNGスマソ。sage進行かと思って。
0666デフォルトの名無しさん
NGNG15000以上の奇数を追って、素数がでたなら、その数プラス2の値も、
素数判定して、素数なら出力終了、で良いんじゃないの?
0668デフォルトの名無しさん
NGNG0669デフォルトの名無しさん
NGNG0670デフォルトの名無しさん
NGNGWindows3.1やWindows95やWindows98やWindowsMEでは問題なかったのですけど、
Windows2000やWindowsXPでエスケープシーケンスの処理が入っているEXEファイルを
実行してもエスケープシーケンスの部分が正しく動作しません。
MS-DOSプロンプトの問題なのでしょうか???
例えば・・・画面に表示されている文字の削除で、
printf("ESC[2J"); または printf("\033[2J");
とやるとWindows2000やWindowsXPでは画面上に [2J とだけ表示されて、
画面上の文字が表示されません。
Windows2000やWindowsXP環境でエスケープシーケンスを入れる時の方法があれば、
教えて欲しいのですが・・・。よろしくお願いします。
0671デフォルトの名無しさん
NGNGシステムを勉強したほうがいいね。
0672デフォルトの名無しさん
NGNG15137
15139
0673デフォルトの名無しさん
NGNGレスありがとうございます。
では、Win2000やXPはDOSベースで動かすにはどうしたらいいのかご存じですか?
(私はDOSプロンプトで動作するものだと思いこんでいましたので。)
度々申し訳ありませんが、ご回答して頂けると幸いです。
0675デフォルトの名無しさん
NGNG0676デフォルトの名無しさん
NGNG無茶っていうことですね。了解しました。
度々のご回答、ありがとうございました。
0677デフォルトの名無しさん
NGNG好きなようにすれば良い。
出来上がった物を改良して行っても良い。
0678デフォルトの名無しさん
NGNG0679デフォルトの名無しさん
NGNGWin2000 or WinXP上からWin95系のエミュレータを動かして実行するっていう荒技もあるけど
それじゃだめなんでしょ?
0680デフォルトの名無しさん
NGNGエスケープシーケンスの代わりになるような方法が他にあるのでしょうか??
>>679
個人的に使う分ですので、それでも構いませんが、どんなツールが必要なのですか?
0681デフォルトの名無しさん
NGNGやったことないが、CONFIG.NTかなにかに
ANSI.SYS入れても動かないのだろうか<未確認
0682デフォルトの名無しさん
NGNGレスありがとうございます。
ネットでいろいろと調べてみます。
情報提供に感謝します。
0683681
NGNGhttp://f1.aaacafe.ne.jp/~pointc/log137.html
できそうだ。
0684デフォルトの名無しさん
NGNG貴重な情報ありがとうございます。
早速試してみます。
0685デフォルトの名無しさん
NGNG出来ました。みなさん本当にありがとうございました。
Windows2000環境で、C:\WINNT\system32のconfig.ntファイルに
「device=%SystemRoot%\system32\ANSI.SYS」
の1行を追加してマシンを再起動したら、画面クリアや文字に色がついたりと、
エスケープシーケンスに対応されるようになりました。
0686デフォルトの名無しさん
NGNGそれでも32ビットアプリの場合はエスケープシーケンスは無理という事ですな
0687デフォルトの名無しさん
NGNG常に同時にnとn+2を判定して行って、
両方とも素数の時に出力しても良いし、
常に最後の一つは格納しておき、
次に求まった物とそれとの差が2なら出力する
というような物でも良い。
それとももう出来たのか?
0688デフォルトの名無しさん
NGNG0689デフォルトの名無しさん
NGNGx=0.0;
x+=0.1をfor文で10回まわすと、どうなるの?
0690デフォルトの名無しさん
NGNG処理系依存
0691デフォルトの名無しさん
NGNGある条件が起こったときに、コンソールの背景の色を変更
したいんですが、どうやればいいんでしょう?
Webで調べては見たのですが、分かりませんでした。
助けてください。
0692デフォルトの名無しさん
NGNGSetConsoleTextAttribute()
0693デフォルトの名無しさん
NGNG>>692 ありがとうございました解決しました!!
0694663
NGNGうう。出来ませぬ。ちょっと触りだけでも
プログラムお願いします。
0695デフォルトの名無しさん
NGNG↑
これってあり?
0696デフォルトの名無しさん
NGNG板違い
0697デフォルトの名無しさん
NGNGfor(int i=15001;i+=2)
{
if( is_prime(i) && is_prime(i+2) )
{ printf("%d %d\n", i, i+2); break;}
}
or
int i=3, prev=3;
while(i+=2)
{
if( !is_prime2(i) )
continue;
if( i - prev == 2 )
{ printf("%d %d\n", prev,i ); break;}
prev = i;
}
みたいな。
0698他スレ518
NGNG文字をそのままにして計算させることは可能でしょうか?たとえば、
double a=1.2, b=2.3, c, d;
d=a+b+c;
で、“d=3.5+c”と計算させたいのです。
0699デフォルトの名無しさん
NGNG0700デフォルトの名無しさん
NGNGお好きなように
0701698
NGNGできねえっす。。698で書いたふうにするとむちゃくちゃ大きな数になるし。
0702デフォルトの名無しさん
NGNG分かりっこねーし、C/C++の委員会もそんな事を規定してない。
MyDouble d, a=1.2, b=2.3, c, d;
d = a + b + c;
上の式が自分に都合の良くなるようなMyDoubleを作れって事だ。
#上まあ、テンプレートにしろ、とまでは云わんが。
0703698
NGNGテンプレートの意味とかもわかんない厨ですが、
それ使ってがんばってみます。
0704デフォルトの名無しさん
NGNG・・・702 の下から 2 行目が読めない?
0705デフォルトの名無しさん
NGNGお前には当分無理だ。あきらめたほうがいいぞ
クラスって知ってるか?
0706デフォルトの名無しさん
NGNG0707デフォルトの名無しさん
NGNGint fd1, fd2;
int ret;
int i;
char buf[1024];
char alphabet[26] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
int recvmes() {
int select = -1;
while( select == -1 ) {
ret = read(fd2, buf, 1024);
printf("%s ", buf[0]);
for( i = 0; i < 26; i++ ) {
if( strcmp( &buf[0], &alphabet[i] ) == 0 ) {
select = i;
break;
}
printf("%s ", alphabet[i]);
}
}
return select;
}
アルファベット一字の入力をクライアントに促して
サーバ側にはそのアルファベットの番号を返すようにしてるはずなのですが
ここに踏み込んだ途端?止まってしまいます。
どうすれば良いでしょうか。
0708デフォルトの名無しさん
NGNG↓
char alphabet[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
0709デフォルトの名無しさん
NGNG今UNIX環境ではないんでチェックができないんです…。
(ガッコならありますが2ch禁止だyoウワァァァァァン)
どうなるんでしょうか?
0710デフォルトの名無しさん
NGNGどうしたらいいでしょうか教えてください。
例えば12345と入力したら!”#$%と表示するようなプログラムです。
0711デフォルトの名無しさん
NGNGalphabet[]の要素数が26ではなく27になる
0712デフォルトの名無しさん
NGNG痴漢用のテーブルもつとか計算式で変換条件書いて求めるとか
変換条件をまずは明確にしよう
あとはそれをどう書くかだ
0713707
NGNG上のプログラムはサーバ側で、
「パイプ破壊」とか出るのはクライアント側なんです。
ガッコからは遠いので試すのは明日になります…。
今はとりあえず試験勉強をば…ワカラネェヨウワァァァン 三ヽ(`д´)ノ
0714デフォルトの名無しさん
NGNG0715デフォルトの名無しさん
NGNG"0123456789:;<=>?@ABCDEF・・(ASCII順に全alpha文字)・・xyz{|}~";
fgets(buff,fp);またはscanf("%s",buff);/*文字列を読む*/
for(i=0;i<strlen(buff);i++)/*各文字を変換*/
buf2[i]=cvttbl[buff[i&127]];
fputs(buf2,fp);またはprintf("%s\n",buf2);
cvttbl[]の中身をいじれば好きな変換にできる。上のは元の文字に変換する
ようになってる。普通は1対1、重複なしになるようにするね。
0717デフォルトの名無しさん
NGNG0718デフォルトの名無しさん
NGNGそのCソースがC++のコンパイラでコンパイルできるのなら可能。
0719デフォルトの名無しさん
NGNG3を含まない双子素数は必ず、6の倍数の±1になるのでそれを利用するのが吉かと。
或いは、6の倍数+1と+5ね。
#っていうか、私が出題側ならそのくらいは頭を使って欲しい。
0720デフォルトの名無しさん
NGNGCygwin入れれば、WindowsでもPOSIX環境が使えるよ。
# 学校のunixは、SSH接続を許可していないの?
0721デフォルトの名無しさん
NGNGがんがれ。期待している。
0722555
NGNGhttp://jp-project.sytes.net/area0010/htdocs/uploader/data/area00100993.c
0723デフォルトの名無しさん
NGNG0724デフォルトの名無しさん
NGNG0725デフォルトの名無しさん
NGNG私が出題側なら、
そういう組み込んだところで大して効率も変わらず、
中途半端で自分では証明もできないような
聞きかじりの知識を使うのや止めて欲しい。
それにしても、6 だけって。
0726555
NGNGhttp://cgi.members.interq.or.jp/hokkaido/asato/upload/jam3ddr/OB0001246.txt
0727552
NGNGををををーー!
感動しますた。ありがとございました。
ところで(もしかしたらうすうす分かっていたかも知れませんが)
実は>>552の問題は「宿題」ではなく「ネタ」でした(スンマセン)。
この問題を(コンピュータで解こうと)思いついたとき、
見た目は簡単・内容は明白でありながら、実は意外に厄介そうだったので
このスレに書いたら盛り上がるかなと思い、書いた次第です。
とりあえず、これからじっくりコードを読ませてもらいます。
0728デフォルトの名無しさん
NGNG大丈夫。うちの大学で学部のときに出題された課題とほとんど同じでしたから。
0729デフォルトの名無しさん
NGNG出たんだ… 凄いね
0730デフォルトの名無しさん
NGNGん?見れますけど。
0731デフォルトの名無しさん
NGNG証明できないの?
私は数学屋じゃないので厳密じゃないけどこんな感じでしょ?
6以上の整数において、
・6の倍数、6の倍数+2、6の倍数+4は2の倍数なので素数ではない。(自明)
・6の倍数+3は3の倍数ので素数ではない。(自明)
・よって、素数は6の倍数+1、6の倍数+5以外には有り得ない。
・双子素数は6の倍数+5とそれに2を足した数でしか有り得ない。
・これは6の倍数±1とも言える。
0732デフォルトの名無しさん
NGNGそだね。Good job !
厳密にする場合は、ちゃんと式で書かないとだめだけど、
そのままでも「証明の説明」にはなっていると思うよ。
0733デフォルトの名無しさん
NGNG>>724がJISコードで>>726がEUCだったけど
両方ともちゃんと読めたよ
つーわけで、おつかれさま
0734デフォルトの名無しさん
NGNG私も数学屋じゃないですが、
結局偶数だけじゃなく、3の倍数も弾けるってことでしょ。
数学的には意味のあることかも知れないけど、
それをプログラムに取り込んだところで、
全然 Good job でないと思いますが。
0735デフォルトの名無しさん
NGNGループの回数が1/3になるよね。
それに、双子素数の片方の候補を絞り込むにも有利だよね。
0736デフォルトの名無しさん
NGNG月曜日までにSMTP使ったメール送信プリグラムをVCで作らなければいけません。
しかもC++で、標準関数やSTLを使わずにWinAPIで作らなければいけません。
僕の留年がかかっています。誰かソース書いてください。
よろしくお願いします。
0737デフォルトの名無しさん
NGNGそんな考えで進級したって、仕方が無いでしょう?
宿題が出たということは、その宿題ができる程度の授業はあったはず。
授業内容と、かけ離れたソースを持っていっても、先生はすぐわかる。
0738デフォルトの名無しさん
NGNGhttp://www.kumei.ne.jp/c_lang/sdk3/sdk_228.htm
0739デフォルトの名無しさん
NGNGWindows でのプログラミングのノウハウを教える授業なんて聞いた事も無いぞ。
俺には単にメーラーのサンプルが欲しくてここで聞いてるだけにしか見えないが?
0740デフォルトの名無しさん
NGNG>Windows でのプログラミングのノウハウを教える授業なんて聞いた事も無いぞ。
アヴィバ辺りでは?
0741デフォルトの名無しさん
NGNG>標準関数やSTLを使わずに
exit()も使ってはいけません。
0742デフォルトの名無しさん
NGNG0743デフォルトの名無しさん
NGNG0744デフォルトの名無しさん
NGNGExitProcess() で良いと思うが。
問題は、スタートアップルーチンで標準関数が呼ばれているのをどうするかだ。
0745デフォルトの名無しさん
NGNGWinMainCRTStartup() に処理を記述しる。
0746デフォルトの名無しさん
NGNG先週の宿題で3科目の点数を3回入力して、その際、
入力できる桁数を3桁までで可変入力とし、
'owari'以外で数値以外のものはエラーとして
どの科目でも点数に'owari'と入力した時点で終了し
最後に入力した数字を出力させたいのですが、
可変入力の部分をどのようにすればいいのかわからなくなり
行き詰まってしまいました。この部分はどのように記述すれば
いいのでしょうか?よろしくお願いします。
0747C++厨
NGNGvariable input?
0748デフォルトの名無しさん
NGNGfor(j=0;(answer[j]=fgetc(fp))!='\n';j++);
printf("%d",strcmp("delta","delta"));
if((strcmp(kotae,answer))==0){
printf("\n正解です。\n\n",res++);
}
else
{
printf("\n間違いです。\n\n");
printf("答えは%sでした。\n",answer);
}
標準入力から入力をもらいそのあとファイルから文字を読み込み
それらが一致していたら「正解です。」間違っていたら「間違いです。」
と表示したいのですがこれではなぜかうまくいきません。読み込む文字を
入力したのに正解にはなりません・・・なぜでしょう?誰かご教授お願いします。
0749デフォルトの名無しさん
NGNGowariは5桁だな
てことは何桁でも入れて、あとで桁数チェックでいいんじゃないの?
1行読む
owariだったら終了
3桁以上だったらもう一回入力
数字以外だったらもう一回入力
0750デフォルトの名無しさん
NGNG終端にNULLがいるんじゃないの?
#include <stdio.h>
void main( void )
{
char buffer[81];
int i, ch;
printf( "文字列を入力してください: " );
/* 標準入力 "stdin" から 1 行読み込む */
for( i = 0; (i < 80) && ((ch = getchar()) != EOF) && (ch != '\n'); i++ )
buffer[i] = ch;
/* 文字列の終端に NULL 文字を格納 */
buffer[i] = '\0';
printf( "%s\n", buffer );
}
0751748
NGNGすいません・・それでもうまくいきません。
もじれつを比較してみるとなぜか、ファイルから読み込むほうの
文字列のほうがながくなっているんです・・・
ちなみにこのプログラムは英単語の練習プログラムの一部です。
0752746
NGNG下のように記述してみたのですがこの場合、
1桁あるいは2桁の数値を入力してもエラーと判定されてしまい
また、■を空白文字とした場合、123■■をエラーとしたいのですがなりませんでした。
i<3としている為、このようになると思うのですが
入力した文字、数字の分だけ判定できるようにするにはどうすればいいでしょうか?
0753746
NGNG#include<ctype.h>
int main(void)
{
char x[10][10],y[10][10],z[10][10];
int j,i,t=0;
printf("3桁までの数字を3個入力。\n");
for(j=0;j<3;) {
scanf("%s %s %s",x[j],y[j],z[j]);
for(i=0;i<3&&t==0;) {
if(isdigit(x[j][i])==0)
t++;
else
if(isdigit(y[j][i])==0)
t++;
else
if(isdigit(z[j][i])==0)
t++;
else
i++;
}
if(t!=0) {
printf("エラー\n");t=0; }
else
{j++;} }
for(i=0;i<3;i++)
printf("%s %s %s\n",x[i],y[i],z[i]);
return 0;
}
0754デフォルトの名無しさん
NGNGC/C++ソースのコメントだけを削除するプログラムを作れという宿題が出ました。
最初は/* or //でチェックONにして*/ or \nまで削除すればいいのかと
思ったのですが、さくっと破綻しました。
もしわかる方がいらっしゃいましたらお願いします。
0755デフォルトの名無しさん
NGNG破錠の理由は?
0756>>754(1/2)
NGNGvoid in_c_comment( FILE *in, FILE *out )
{
int cur, next;
next = fgetc( in );
while ( (cur = next) != EOF ) {
next = fgetc( in );
if ( cur == '*' && next == '/' )
return;
}
}
void in_cpp_comment( FILE *in, FILE *out )
{
int cur;
while ( (cur = fgetc(in)) != EOF && cur != '\n' )
;
if ( cur == '\n' )
putchar( '\n' );
}
0757>>754(2/2)
NGNGint cur, next = fgetc( in );
while ( (cur = next) != EOF ) { next = fgetc( in );
if ( cur == '/' ) {
if ( next == '*' ) {
in_c_comment( in, out );
next = fgetc( in );
continue; } else if ( next == '/' ) {
in_cpp_comment( in, out );
next = fgetc( in );
continue; }
} else if ( cur == '\"' ) {
/* 文字列リテラル */
fputc( cur, out );
while ( (cur = next) != EOF ) {
fputc( cur, out );
next = fgetc( in );
if ( cur == '\"' ) { break; } else if ( cur == '\\' ) {
fputc( next, out );
next = fgetc( in ); }
} continue; }
fputc( cur, out );
}
} int main(void) { commentout( stdin, stdout ); return 0; }
0758デフォルトの名無しさん
NGNGんな読みにくいソース提示しなくていいから、どう破綻したか書いてよ。
コンパイルエラーならその内容、動かしているなら入力と出力を提示するとかさ。
0759デフォルトの名無しさん
NGNGとりあえず俺が気づいた所は・・・
まずは ungetc() の使い方覚えれ。
あと /* */ の組はただ削除するのではなく、' ' に置き換えるようにすると吉。
0760デフォルトの名無しさん
NGNG0761デフォルトの名無しさん
NGNG>最初は/* or //でチェックONにして*/ or \nまで削除すればいいのかと
の意味での削除だが。
0762デフォルトの名無しさん
NGNG気持ち悪いからナル文字をNULLって書かないでくれ。
>>751
>750は標準入力だけ示唆したけど、ファイル入力についてはどう思う?
0763デフォルトの名無しさん
NGNGチェックできるよ。それから各数値が0〜999か判定すれば3桁の数値か判定できる
>>754 ひょっとしてn行にわたるコメントでダメとか?
0765デフォルトの名無しさん
NGNG実験程度なら構わないけど、scanf()は危険なんで使わない方がいいかと。
0766デフォルトの名無しさん
NGNG実数値の小数点以下2桁目が6、7のときだけ+1する8Bの実数型の関数を作れ。
プロトタイプ宣言は不要。引数は1個とし、引数によって関数の結果を返してはいけない。
-------------------------------------------------------------------------
これ解ける人いますか?;;
0767デフォルトの名無しさん
NGNGいます。
0768デフォルトの名無しさん
NGNG鉛筆のむちゃくちゃ請いつですか?
まさか double の事じゃないよね?
つーか、結果を返せとはどこにも書いてないし、
void f(double d)
{
switch((int)(d * 100.0) % 10)
{
case 6:
case 7:
d += 1;
break;
}
}
}
0769デフォルトの名無しさん
NGNG・実数値を引き数として受け取るかどうか言及されていない。
・プロトタイプ宣言が不要と言う意味が明確にされていない。
・引き数によって関数の結果を返す云々というのも意味不明。
・解ける人がいるかという質問は、他人を馬鹿にしている。
・マルチポスト
あ、問題の意味が理解できるかどうかって質問なのかな?
0770デフォルトの名無しさん
NGNG0771デフォルトの名無しさん
NGNGつーか、
> d += 1;
これ間違いだな。正しくは
+1;
0772デフォルトの名無しさん
NGNGワラタ
0773デフォルトの名無しさん
NGNG0774デフォルトの名無しさん
NGNG警告は出るけど通るよ。
確認位してから書こうよ。
0775デフォルトの名無しさん
NGNG0776デフォルトの名無しさん
NGNG0777デフォルトの名無しさん
NGNG0778デフォルトの名無しさん
NGNG0779デフォルトの名無しさん
NGNG0780デフォルトの名無しさん
NGNG0781デフォルトの名無しさん
NGNG0782デフォルトの名無しさん
NGNG( ´∀`)<ぬるぽ
0783デフォルトの名無しさん
NGNG0784デフォルトの名無しさん
NGNG#define fprintf(a, b)としても、
引数が可変なので、fprintf(stderr, "%d", 1)みたいなのが残ります。
自分のコンパイラでは、
#define fprintf(a, b, ...)
はエラーになるみたいです。
0785デフォルトの名無しさん
NGNG既存のソースからfprintf()を消すにはエディタで消すくらいしかないんじゃないかな。
条件で有効無効を切り替えたいなら
#define DPRINTF(x) (void) (DEBUG && fprintf x)
とでもしておいて、
DPRINTF((stderr, "%d\n", argc));
って感じに使えるけど。
0786デフォルトの名無しさん
NGNG#define fprintf
これで事足りる。
0787デフォルトの名無しさん
NGNGまたは、
#define fprintf ORIGNAL_FPRINTF
#include<stdio.h>
#undef fprintf
__inline int DUMMY_FPRINTF(FILE *f, const char *fmt, ...){return 1;}
#define fprintf 1 ? (void)0 : DUMMY_FPRINTF
両方ともVC限定の__inline使ってるけど、可変長引数はインライン展開できないので
下の方が最適化されるかな。
0788デフォルトの名無しさん
NGNGたとえばデータベースみたいなものから、
指定された文字列を検索して表示させるプログラムは
どのように書けばいいわかるかたいらっしゃいますか…?
たとえば『国会議事堂』という単語が含まれているポインタに
『会議』という検索を書けたら出てくる、なたいな…
0789デフォルトの名無しさん
NGNG0790デフォルトの名無しさん
NGNGなたいなー!
自分で検索アルゴリズムを実装したいの?
だったら、Knuth-Morris-Pratt, Boyer-Moore, Rabin-Karp
あたりを調べてみろ
0791デフォルトの名無しさん
NGNG誤:なたいな
正:なみたいな
でした
すみません…
0792デフォルトの名無しさん
NGNG気にするなたいな。
0793デフォルトの名無しさん
NGNG0794デフォルトの名無しさん
NGNGstr使った限りなく短いプログラムでも書いて
力見せ付けてやれ
0795デフォルトの名無しさん
NGNGというか、>>789で答えは出てるかと。
0796デフォルトの名無しさん
NGNG0797デフォルトの名無しさん
NGNGgrep… 調べてみます
0798デフォルトの名無しさん
NGNGforやらifやら覚えたての初心者なんでわからんす
0799YAHOO!無料です
NGNGぜひ、メールください。すごい改善策(最新のキャンペーン期
間延長方法)
をマジでお教えします。多少の謝礼はいただきますが、確実な
情報でございます。
実質私も現在bbに申し込んでからずっと料金は一銭もかかっ
ておりません。
興味ある方はぜひ連絡お待ちしております。
たくさんのお問い合わせお待ちしております。
その他bbに関する全ての疑問に関してお答えいたしますので
、気軽にお問い合わせ
ください。連絡心よりお待ちしております。
※12M+無線LANパックの場合
・ADSL基本料金 2480 円
・モデムレンタル量 890 円
・無線LANパック 990 円
・NTTの回線使用料 173 円
これがなんとっ!!タダにーー!!!
詳しくは直接メールください。
[email protected]
0800デフォルトの名無しさん
NGNGこのスレよく嫁
0801デフォルトの名無しさん
NGNG「素数を表示」と一言でいっても、どんなプログラムなのか見当がつかない。
例えば、
・入力された数値が素数かどうか検査するプログラム。
・入力(指定)された数値以上の最低の素数を表示するプログラム。
・入力(指定)された範囲の全ての素数を表示するプログラム。
>forやらifやら覚えたての初心者なんでわからんす
大丈夫、それだけ知っていればプログラム(の雛型)はできる。
最初は、
for (1から100まで) {
その数か素数かどうか検査する
if (素数) {
表示
}
}
ここから始めればいい。
#勿論、ほんとに1から100までループさせるのは馬鹿馬鹿しいけど。
0802デフォルトの名無しさん
NGNGあんまり出来が悪いので課題を課せられてしまいました
ご教授よろしくおながいします
素数をどう表現すればいいかで引っかかってます
素数は1かその値でしか割り切れないっていう条件をうまく使うんでせうか…
0803デフォルトの名無しさん
NGNGusing namespace std;
int main()
{
for(int i=3; i<100; i+=2)
{
int j;
for(j=2; j<i; j++)
if((i % j)==0)
break;
if(j==i)
cout<<i<<endl;
}
return 0;
}
とりあえず
0804デフォルトの名無しさん
NGNG1は素数じゃない。2は素数。
2,3,5、…
が正しい
0805デフォルトの名無しさん
NGNG0806デフォルトの名無しさん
NGNGの行が何を意味しているかわからなかったりします
forとifとswitchぐらいしか習ってないもんで…^^;
0807デフォルトの名無しさん
NGNGと同じような感じです。
0808デフォルトの名無しさん
NGNG他にもputsみたいなのもあるみたいで奥が深いですなぁCは
0809デフォルトの名無しさん
NGNGprintf()はフォーマットで加工する標準出力用関数、
puts()は加工しない(改行をつける)標準出力用関数。
0810デフォルトの名無しさん
NGNG>>809が説明してるように
C++でいいなら(いろいろつっこみあるけど)>>803でもいいけど
C言語ならあれじゃ動かないかんね。
0811デフォルトの名無しさん
NGNGついでに言えば、調べたい数の平方根までで充分だし。
0812デフォルトの名無しさん
NGNGprintf("%d ",2);
を、追加。
0813デフォルトの名無しさん
NGNG0814デフォルトの名無しさん
NGNG数学屋さんはよく使うみたいよ。
0815デフォルトの名無しさん
NGNG文字コードセットのケアはしてない。ファイルは標準入力からえる。
#include <stdio.h>
#include <string.h>
#define TARGET "会議"
int main(int argc, char * argv[])
{
char buf[512];
while (fgets(buf, sizeof(buf), stdin))
if (strstr(buf, TARGET))
fputs(buf, stdout);
return 0;
}
0816いしの
NGNGってどう書けばいいですか?
0817デフォルトの名無しさん
NGNG0818デフォルトの名無しさん
NGNGBlock-Kato なんかはその典型です。
0819デフォルトの名無しさん
NGNG**
***
****
*****
******
*******
********
このような文字模様を描きなさい
0820デフォルトの名無しさん
NGNG**
***
****
*****
******
*******
********
0821デフォルトの名無しさん
NGNGint main()
{
int i,j;
for(i = 0; i < 9; i++)
{
for(j = 0; j <= i; j++)
{
printf("*");
}
printf("\n");
}
}
これで満足かい?
0822デフォルトの名無しさん
NGNGおもろかった
>>821
ありがとう
0823デフォルトの名無しさん
NGNGはっきり「クソつまらない」と言ってやるのも愛情かと。
0824デフォルトの名無しさん
NGNGprintf("*\n**\n***\n****\n*****\n******\n*******\n********\n");
回答例2
static char const stars[] = "********";
int ic;
for (ic = 1; ic < sizeof(stars); ic++) {
printf("%.*s\n", ic, stars);
}
0825デフォルトの名無しさん
NGNG#include<stdio.h>
int main(void){static char c[9],i;while(i<8){c[i++]='*';puts(c);}return 0;}
0826デフォルトの名無しさん
NGNGどなたか教えてください。
「日付をあらわすクラスDateごとに予定を登録するクラスScheduleBook。
ただしDateクラスは正しい日付であることをチェックすること。」
↓以下のものが与えられています。
ScheduleBook::ScheduleBook(void);//コンストラクタ
int ScheduleBook::register(Date d, char* s);//日付dに予定sを登録
char* ScheduleBook::shoe(Date d, int i);//日付dの予定のi番目を表示
int ScheduleBook::num(Date d);//日付dに登録されている予定の数
よろしくお願いします
0827デフォルトの名無しさん
NGNGクラスScheduleBookを、どうすればいいんだ?
作るのか?
与えられているって事は、それを使ってなんかするのか?
0828デフォルトの名無しさん
NGNG円盤の状態を2次元配列(グローバル変数でよい)表現し、最初の要素を棒の番号とし、2番目の要素にそれぞれの棒に
積まれた円盤の番号を格納するとよい。必要であれば、円盤の移動に応じて2次元配列の内容を変更する関数を定義するとよい。
#include <stdio.h>
hanoi(char src, char dst, char tmp, int n){
if (n > 1) {
hanoi(src, tmp, dst, n-1);
hanoi(src,dst,tmp,1);
hanoi(tmp,dst,src,n-1);
}
else{
printf("move from %c to %c\n",src,dst);
}
}
main(){
int n;
printf("input number of discs ");
scanf("%d", &n);
hanoi('A', 'B', 'C',n);
}
0829デフォルトの名無しさん
NGNGinput number of discs 2
A:21
B:
C:
move from A to C
A:2
B:
C:1
move from A to B
A:
B:2
C:1
move from C to B
A:
B:21
C:
0830デフォルトの名無しさん
NGNGint s;// diskの枚数
int towerinfo[3][1024]; // TOWERにどの円盤が入ってるか
show_tower(){
int i,j;
for(i=0;i<3;i++){
printf("%3d : " , i);
for(j=0;j<s;j++){
if(towerinfo[i][j] == 1 )
printf("%3d" , j);
}
printf("\n");
}
}
0831デフォルトの名無しさん
NGNGhanoi(int src, int dst, int tmp, int n , int m){
if (n > 1) { // 山の塊で考えて
hanoi(src,tmp,dst,n-1 , m+1 ); // 自分よりも小さい山を移動
hanoi(src,dst,tmp,1 , m ); // 自分を移動
hanoi(tmp,dst,src,n-1 , m+1 ); // 自分よりも小さい山を移動
}else{ // DISKが1枚ならちゃんと処理をする
// 具体的には、SRC番目のTOWERからDST番目のTOWERにmという円盤が移動
towerinfo[src][m] = 0;
towerinfo[dst][m] = 1;
printf("disk %d is moved from %d to %d \n",m,src,dst);
show_tower();
}
}
0832デフォルトの名無しさん
NGNGint i,j,k;
int n;
printf("input number of discs ");
scanf("%d", &n);
s=n;
for(i=0;i<3;i++)// まず最初に、タワーの初期化
for(j=0;j<n;j++)
towerinfo[i][j]=0;
for(j=0;j<n;j++)
towerinfo[0][j]=1; // 次に最初のタワーに全部の円盤を乗せる
show_tower();
hanoi(0, 1, 2 , n ,0);
}
0833デフォルトの名無しさん
NGNGついでに、0をA、1をBと表示するには、'A' + i という裏技が使える。
これは文字コードを直接変えてる。
printgの書式はそのときは%cにしてください。
0834デフォルトの名無しさん
NGNG0835833
NGNGあ、動作確認した環境はcygwin gcc 2.3ぐらいだす
0836デフォルトの名無しさん
NGNG0837デフォルトの名無しさん
NGNGに書いたつもりだったんだが……
ヒントは、
printf("%3d : " , i);
↓
printf("%c : " , 'A'+i);
printf("disk %d is moved from %d to %d \n",m,src,dst);
↓
printf("move from ( ) to ( ) \n",( ) + src,( ) + dst);
がんがれ。
0838デフォルトの名無しさん
NGNGQ.配列に文字列"yamada taro"を代入し、以下の実行結果が得られるプログラムを作成。
<実行結果>
文字列は yamada taro
1文字目=y 領域アドレス=0x65cefd(ココは状況次第で変化)
2文字目=a 領域アドレス=0x65cefe( )
5文字目=d 領域アドレス=0x65cf01( )
11文字目=o 領域アドレス=0x65cf07( )
#include <stdio.h>
void main(void)
{
char C[]="yamada taro";
printf("文字列は %s\n",C);
printf(" 1文字目=%c 領域アドレス=____\n",C[0],____);
printf(" 2文字目=%c 領域アドレス=____\n",C[1],____);
・・・
printf("11文字目=%c 領域アドレス=____\n",C[10],____);
アンダーバーにした部分の記述がわからないのです。
>>824
回答例1は爆笑w
記述ルールがない以上、確かに正しいプログラムではあると言えますね・・・(゚∀。)アレ?
0839デフォルトの名無しさん
NGNGprintf(" 2文字目=%c 領域アドレス=%p\n",C[1], &C[1]);
以下同
0840C++厨
NGNGfor (uint i = 0; i < 11; ++i)
printf(" %2d文字目=%c 領域アドレス=%p\n", i+1, s[i], &(&*(s+i))[0]);
0841デフォルトの名無しさん
NGNGマジックナンバーきもい。
> printf(" %2d文字目=%c 領域アドレス=%p\n", i+1, s[i], &(&*(s+i))[0]);
なんで、
&s[i]
じゃないんだろ。
0842デフォルトの名無しさん
NGNG838 の 「実行結果」 とマッチしませんが?
>>841
人の宿題だからね
0843デフォルトの名無しさん
NGNGそのアンダーバーが一文字に対応してるのなら、こんな所だろう
printf(" 1文字目=%c 領域アドレス=0x%x\n",C[0],C+ 0);
printf(" 2文字目=%c 領域アドレス=0x%x\n",C[1],C+ 1);
・・・
printf("11文字目=%c 領域アドレス=0x%x\n",C[10],C+10);
まぁ、このままだと駄目な場合もあるが…
0844デフォルトの名無しさん
NGNG0845デフォルトの名無しさん
NGNG人の宿題だからね
0846デフォルトの名無しさん
NGNG構造体のポインタについて調べています。
下記のプログラムでは、「a->x」というのがどういうことなのかを
調べようとしています。なのにVC++でコンパイルするとエラーと警告は
出ないのですが何故かきょうせい終了させられます。
ご教授よろしくお願いします。
#include "stdafx.h"
#include <iostream>
using namespace std;
struct test{
int x;
};
test *a;
int main()
{
cout << "a->x=" << a->x << endl;
return 0;
}
0847デフォルトの名無しさん
NGNGaが初期化されてないのでaの指す先が未確定。
そのためにIllegalなアクセスが発生して強制終了すると思われ。
取り敢えず、
test st;
test *a = st;
とでもしてみたら?
#って、出力される値は不定値だけど。
0848846
NGNG改めてさせてください。
私はVC++で構造体について勉強中で、構造体のポインタ(特に
下記のプログラム内の"a->x"というのがどういうことか)を調べています。
ところが下記のプログラムをデバックするとエラーも警告も出ないのに
実行すると強制終了させられます。
何かご教授していただけると幸です。よろしくお願いします。
#include "stdafx.h"
#include <iostream>
using namespace std;
struct test{
int x;
};
test *a;
int main()
{
cout << "a->x=" << a->x << endl;
return 0;
}
0849デフォルトの名無しさん
NGNG'&'が抜けてる。
で、真面目に考えれば、
test st = {999};
test *a = &st;
とでもしておけばいいんでないかい?
0850デフォルトの名無しさん
NGNGstruct test {
int x;
};
だったのか。
typedefしているのかと思っちまったじゃないか。
それだったら
struct test *a;
だろうがよ。
0852C++厨
NGNG0853デフォルトの名無しさん
NGNGで,空白文字も""内に含まれるのだが,スキャンセットを使って次のように書いてみた.
#include <stdio.h>
int main(void){
int i;
char name[2][10],buf[10];
for(i=0;i<2;i++){
printf("No.%d:name >", i+1);
fgets( buf , sizeof buf , stdin );
if( sscanf( buf , "\"%[^\"]\"\n" , &name[i][0] )!=1 ){
printf("error\n");
i--;
}
}
for(i=0;i<2;i++){
printf("%20s\n",name[i]);
}
return(0);
}
すんと,一つの入力が10文字越えると変になっちまう.
No.1:name >"hogehoge hogehoge"
No.2:name >error
No.2:name > hogehoge
nameの第二添え字の数字を越えてもうまく動くようにできない?
0854デフォルトの名無しさん
NGNG複素数は2つの実数を使って表現せよ。”i”は虚数単位である。
という問題なのですがお願いします。
0855デフォルトの名無しさん
NGNG★もうすぐ春ですよ★
0856デフォルトの名無しさん
NGNGC++だとはっきり書かれてるだろうに。
>>848
警告がでないのは、グローバルだからだろうに。
0857853
NGNGごめん.多分自己解決.fgetsのバッファリングが問題だったので
rewind(stdin);
を入れてやったら良かった.逝ってくる.
0858デフォルトの名無しさん
NGNGhttp://homepage3.nifty.com/digikei/
全部無料だよ
0859デフォルトの名無しさん
NGNGstd::complex<double> c1(a,b), c2(c,d), c3;
c3 = c1/c2;
double e = c3.real(), f = c3.imag();
0860デフォルトの名無しさん
NGNGマジレスすると
e = (c*a+d*b)/(c*c+d*d)
f = (c*b-a*d)/(c*c+d*d)
0861デフォルトの名無しさん
NGNG#include <complex>
int main()
{
std::complex<double> a, b, c;
std::cin >> a;
std::cin >> b;
c = a / b;
std::cout << c;
return 0;
}
/*
$ ./a
(1.2,2.3)
(4.5,5.6)
(0.354195,0.0703352)
*/
0862デフォルトの名無しさん
NGNGint main(){
int a=1,b=2,c=3,d=4,e,f;
e = (c*a+d*b)/(c*c+d*d);
f = (c*b-a*d)/(c*c+d*d);
printf("%d+%di",e,f);
}
こんな感じで
0863教えて厨
NGNGなのですが、どうすればいいんですか?初心者で全くわかりません。演習で提出しなければいけません。
どうかお願いします。
0864デフォルトの名無しさん
NGNGいま2月だぞ?
授業は今年になってから始まったノカナ?
0865デフォルトの名無しさん
NGNG> 初心者で全くわかりません。
と言うことなら...
「あ・き・ら・め・ろ」
2ch に書かれた正解でその演習をクリアしても、その先が辛くなるだけだ。
おとなしく、再履修しとけ。
0866デフォルトの名無しさん
NGNGそれにここのスレタイは
C/C++の宿題をやらせろや!!! じゃん
教えてやれば?
0867デフォルトの名無しさん
NGNG少なくとも標準では。
0868デフォルトの名無しさん
NGNG> それにここのスレタイは
> C/C++の宿題をやらせろや!!! じゃん
おお、なるほど。そう言われりゃそうだな。そんじゃ...
int j;
int k;
int n;
k = j >> n;
ただ、j < 0 の時の結果は処理系定義だったかと...。
0869デフォルトの名無しさん
NGNGいきなりC++を覚えるよりも先にCを習得すべきなのでしょうか?
0870デフォルトの名無しさん
NGNGその前に、2ch の仕組みを習得すべきだ。
スレタイぐらい読めるだろ ?
0871デフォルトの名無しさん
NGNGその方が、嫌いにならないで済むと思う、C++は、かなり凶悪なので。
0872デフォルトの名無しさん
NGNG0873デフォルトの名無しさん
NGNG0874デフォルトの名無しさん
NGNGそのルートだと理解できないと思う
0875デフォルトの名無しさん
NGNGアルゴリズムって程のもんじゃないだろ。
double x = rand0();
double y = (x - a) / (b - a) * (d - c) + c
0876デフォルトの名無しさん
NGNGそれでは一様乱数にならないという罠。
区間[a,b] の幅が極端に小さく、区間[c,d] の幅が極端に大きいと
あからさまに歯抜けになる。
計算機屋らしい解答を求む。
0877デフォルトの名無しさん
NGNG歯抜けになっても有効数字は変わらないんじゃない?
0878デフォルトの名無しさん
NGNG0879デフォルトの名無しさん
NGNG0880デフォルトの名無しさん
NGNG両者が片方の倍数なら簡単だが、互いに素な時はrand0()を有限回数呼んでも
不可能では?
0881デフォルトの名無しさん
NGNG0882デフォルトの名無しさん
NGNGdoubleの解像度ははっきりしているから有限個ですね。
寧ろ、rand0()の性能の方が問題になりそう。
0883デフォルトの名無しさん
NGNGを出力できるvoid型の関数がある。M,N値はすでに定義されているものとして、
実行行列であるX,YのX,YがM=Nでハミルトニアンである場合をプログラミングせよ。
という問題なんですけど凶悪すぎて手も付けられません……
だ、だれか〜(T□T
0884デフォルトの名無しさん
NGNG私は今月曜提出の数学のレポートをしているんですが、
何度やっても「〜.hがオープンできない」としか出なくてコンパイルできません。
オリジナルの〜.hを使うには何か別の設定をしなければならないのですか?
使っているのはCPad for LSI C-86です。
0885デフォルトの名無しさん
NGNGリードプロテクトはずせ。
0886デフォルトの名無しさん
NGNGすいません。やり方が分からないです・・・。
0887デフォルトの名無しさん
NGNGそれは一応やりました。
0888デフォルトの名無しさん
NGNGかなり姑息な方法だが、精度落ちとか防ぎたかったら
bool divide(){
return (2.0*rnd()>b+a);
}
double rnd2(){
double x=(c+d)/2.0,result=0.0;
while(x>EPSYRON){
if(divide())
result+=x;
x/=2.0;
}
return result;
}
余り信用しないように
0889デフォルトの名無しさん
NGNGCの授業は先週から始まったの?
0890デフォルトの名無しさん
NGNGかなり姑息な方法だが、速度を無視して精度落ちとか防ぎたかったら
C++の記法で書けば
bool divide(){
return (2.0*rnd()>(b+a));
}
double rnd2(){
double x=(c+d)/2.0,result=0.0;
while(x>EPSYRON){
if(divide())
result+=x;
x/=2.0;
}
return result;
}
ここでEPSYRONは大抵math.hに定義されてる計算機エプサイロン(定数)
定義されてなかったら、(x>EPSYRON)を(x+x>x)とでも置き換えてみる
普通int値のrand(int)が定義されてるから、divide()を整数乱数で置き換えて
やると速度が格段に上がる筈。この場合return(rand(2)==1)にでも置き換える。
ま、専門家じゃないので、余り信用しないように
0891デフォルトの名無しさん
NGNGいえ、プログラムは全く教えてもらってません。
先生が計算するプログラムをホームページに載せてるので、それを実行して結果をメールで出せ。
っていうもの凄く簡単なレポートのはずなのですが、
そのC言語を使える環境が無いので色々付け焼き刃でダウンロードとかしてみたけど全然ダメでした。
0892デフォルトの名無しさん
NGNGPathの設定がされてないか、環境変数includeかなんかが定義されてない
可能性大
CPadの設定ダイアログを見てみる。コンパイラ設定とかリンカ設定
が空欄だったらコンパイルできないはず。
0893デフォルトの名無しさん
NGNG〜.cというプログラムでXX.c(計算プログラムを呼び出してそれを使う、なんてのはひょっとしてLSI C-86では不可能なんですかね?
ちなみにこれがレポートです。
ttp://daisy.math.sci.ehime-u.ac.jp/users/tsuchiya/math/linear/iteration/index.html
0894デフォルトの名無しさん
NGNGHPのソース見たけど、#include[行末まで空白]
なんてあって、ちょっとビクーリ
その問題は自分で解決してね。
核心部分は2番目以下
ちゃんとincludeパスにそれらのヘッダがあるものとして
(コンパイルするファイルがあるフォルダでもOK)
NR_utility.cというファイルは実はLSI−Cでは
読めない。というのも8文字以上の長さのファイル
だから。DOSプロンプトでそのフォルダーにCDして
ren NR_Utility.c nruty.c
で、名前を8文字以下にしましょう。
NR_Utility.hについても同じです。
0895デフォルトの名無しさん
NGNGメチャメチャありがとうございます。
動きました。
ソースに関しては数学専門の教師なので大目に見てやってください。
これで無事進級できそうです。
0896デフォルトの名無しさん
NGNGコンパイルして実行してメール出せばOKのレポートってイイですね。
マニ学校ですか?
0897デフォルトの名無しさん
NGNGプログラムとはあんまり縁のない大学の数学科です。
100万回くらい計算を繰り返して答えの精度を上げるものらしいのでこれからはパソコンも使えないといけないみたいですが。
0898デフォルトの名無しさん
NGNG0899デフォルトの名無しさん
NGNG教官がろくにプログラミングとかできない学科って悲惨よね。
0900C++厨
NGNG覚えとけよ!まんこ好きが!
0901デフォルトの名無しさん
NGNGvoid CS06Wnd::OnPaint()
{
CPaintDC dc(this);
int i;
int x;
for (i = 0; i < 10; i++) {
x = i + 30;
dc.Arc(x, 0, x + 50, 50, 0,0,0,0);
}
}
これでエラーがでます。なんででしょうか?
0902デフォルトの名無しさん
NGNG0903デフォルトの名無しさん
NGNG0904デフォルトの名無しさん
NGNGエラーが出るようなことをしたからだろ
0905デフォルトの名無しさん
NGNGこの前から始めたばかりなので設定はほとんど弄ってないのですが
エラーにはerrorC2018 文字0*81は認識できません
とかかれます。
0906デフォルトの名無しさん
NGNGi=0のところに全角スペースが入ってる
0907デフォルトの名無しさん
NGNGどうもありがとう!
0908デフォルトの名無しさん
NGNGねえ、毎回書かれることだけど、なんで最初から...
> エラーにはerrorC2018 文字0*81は認識できません
を書かないの ? そうすれば、>>902-904 みたいな余分なレスなしに、>>906 がすぐ返ってきて、ウマーなのにさ。
0909デフォルトの名無しさん
NGNGLinuxでも入れとけ
0910デフォルトの名無しさん
NGNG最初から書くと
文字0*81は認識できないんだろ?
日本語読めないのか?
とすぐ返ってきて、マズッな余寒
0911デフォルトの名無しさん
NGNG0912デフォルトの名無しさん
NGNG日本語0は認識できない。
0913デフォルトの名無しさん
NGNGそれと、IMEの設定で全角空白はShift+Spaceで出るようにしておくとか。
0914デフォルトの名無しさん
NGNG0915デフォルトの名無しさん
NGNG0916デフォルトの名無しさん
NGNG0917デフォルトの名無しさん
NGNG0918デフォルトの名無しさん
NGNG0919デフォルトの名無しさん
NGNG0920デフォルトの名無しさん
NGNG0921デフォルトの名無しさん
NGNG0922デフォルトの名無しさん
NGNG0923デフォルトの名無しさん
NGNG>>915
全角スペースが混じってたらその行のそれ以降がまともに色分けされなくなる
からすぐ気付くし、最悪コンパイル時にわかるし、別にどうもしてないけど。
0924デフォルトの名無しさん
NGNG0925デフォルトの名無しさん
NGNGとにかく長いらしいです・・・
ヒントだけでも下さい。VC+6.0です。
問題:80名の成績データがseiseki.datにあり、
第1列目に受講者ID、2〜6列目までに得点がある。
各受講者の合計得点、平均点を計算するプログラム
を作成せよ。平均点は四捨五入せよ。また、計算した
プログラムをもとに、60名を合格、20名を不合格と
判定するためのボーダーラインを決める機能も装備
すること。ちょうど60名にならないときは、60名以上で
60名に一番近くなるようにすること。
ぶっちゃけ関数forぐらいしか習ってない。
0926デフォルトの名無しさん
NGNG列の区切りと行の区切りはなんだ?
0927デフォルトの名無しさん
NGNGプログラムを組むまでではない。
0928ビルゲイシ
NGNGそれをやりたいかどうかなんて関係ないですが何か?
おまいみたいな香具師はじゃばくらいしか操れんのだろう
0929デフォルトの名無しさん
NGNG0930デフォルトの名無しさん
NGNG0931925
NGNGメモ帳で開いたのをコピペします。
IDEx.1Ex.2Ex.3Ex.4Ex.5
1526631272
25271755131
39675224198
45314333264
(中略)
762182222877
775672296126
787870338016
794417161866
801080495540
0932925
NGNG行の間はなし。
ID Ex.1 Ex.2 Ex.3 Ex.4 Ex.5
1 52 66 31 2 72
2 52 71 75 51 31
3 96 75 22 41 98
0933デフォルトの名無しさん
NGNGキモイ
0934デフォルトの名無しさん
NGNG0935925
NGNGホントは縦にきれいに並んでるんだけど。
0936デフォルトの名無しさん
NGNGいいよ、大差ないから。
で、何がわからないんだ?
さっぱりわからないんじゃなにもできないぞ。
0938デフォルトの名無しさん
NGNGボーダーは合計点数順にソート
60位の点より少なければ不合格
0939デフォルトの名無しさん
NGNG学生さん{
点数[0〜4]
平均点
} 60 匹。
で、ファイルに読み込む
for文(全部の学生さん)
学籍番号読む
ついでに、学生さん[学籍番号].平均点=0;
for文(全部で5教科){
点数読み込む
学生さん[学籍番号],[何教科目]=点数
足しとけ 学生さん[学籍番号].合計点+=点数
}
学生さん[学籍番号].平均点=(合計点+0.5)/ 5教科。 // 過去ログ参照
for文(5教科){
表示 学生さん[学籍番号][何教科目]
}
表示 合計点と平均点
}
っと・・・・・・
0940デフォルトの名無しさん
NGNG構造体に合計点もないし、初期化もしてないし。そのまま動かすと
誤動作間違いなし。
ソートを考えると、構造体でやってポインタを交換したほうがいい……んだっけ?
0941デフォルトの名無しさん
NGNG0942925
NGNGこりゃ後何日か徹夜かな。
0943デフォルトの名無しさん
NGNG>ぶっちゃけ関数forぐらいしか習ってない。
に何で誰も突っ込まないんだろう…
0944デフォルトの名無しさん
NGNGVC+6.0 も気になるところです。
0945デフォルトの名無しさん
NGNG他に突っ込む所がいっぱいあるからだろ。
いわゆるマスキング効果だよ。
0946デフォルトの名無しさん
NGNG0947デフォルトの名無しさん
NGNGこういうこというヤツは
C++やったところで
なにもできないことがおおい。
0948デフォルトの名無しさん
NGNG「世の中、頭のいい人がいるもんだ」と感心するけどな。
0949デフォルトの名無しさん
NGNGqsortでガンガレ。教科書orWebにサンプルがあるので。
関数を自分で組むより、言語にあるならそっちを使うのが定石。
で、それで遅かったら自分で組むのがベスト、だと多分思う。
0950>949
NGNG別に、計算とかだけならCで十分と思われ。
グラフィックとかやりたかったら、コンパイラ(というかライブラリ)
に激しく依存するので、自分で勉強するのがいいと思います。
特に、学校のマシンがUnix Linux関連だと、もう……(XX)
0951デフォルトの名無しさん
NGNG誰が誰に宛てたレスなのかサパーリわかんねー
0953デフォルトの名無しさん
NGNG情報系以外ならCだけでも十分かなぁ。
情報系なら絶対に不十分だと思うけど、
Cしかやらない学科も結構ある。
っていうか、Cやってくるならまだいい方で、
中にはfortranやらlispやらpascalやら・・・。
0954デフォルトの名無しさん
NGNG0955954
NGNG0956577
NGNGおやすみなさい
0957デフォルトの名無しさん
NGNGLispはいいんじゃねえの。学校でLisp習えるなんで羨ましいよ。
0958デフォルトの名無しさん
NGNGそんなもん失念すんなよ・・・
0959デフォルトの名無しさん
NGNGCとは別の意味で。
0960デフォルトの名無しさん
NGNGLispは抽象度が高いというかなんというか、難しそうだけど。
でもCみたいにポインタがどうしたとかそういう瑣末な
所を抜きにいきなり計算理論に入れるのは教育にいいと思うんだけどな。
いや、無論ポインタの概念も大事だと思うけど、
でもそれは割とCPUにべったりの低水準な技術としての部分であって、
まずアルゴリズムやらの理論をきっちりしっといたほうがよいような。
やれアルゴリズムだ、とかやろうとしてもその前にポインタだ配列だ
mallocだfreeだとかやってもしゃーないような気がしてならないんだが。
そういうところでつまずいてるとしたらもったいない気がする。
その先にもっと面白い世界があるわけで。
ちなみにLispにはポインタの概念もきっちりと存在する。
というかLispのListはもろにリスト構造でconsセルはポインタ
が二つあるだけの存在だし(実際にはもうちょっと複雑だけど)。
10年位前にある本(SICP)を読んで、Lispで普通にオブジェクト指向
できちゃうのを見て仰天した覚えがある(w
とはいえ、実用言語かというと、そうでもないところが痛い。
実用にならないってわけじゃなくて、仕事としては需要がないから、
実用的じゃないという意味なんだが。就職の面接で「Lispやってました」
つってもほとんどのところは (゚Д゚)ハァ? だろうしな。
そういうおれは今日もCでお仕事さ(w
0961デフォルトの名無しさん
NGNG私ゃEmacs上で動かすくらいだな。
複雑なマクロとしてだったりすることが多いけど
計算式を工夫するときにも使ってる。
awk/perl/javascriptでもいいんだろうけど
再帰式なんか書くのにはlispの方が楽だね。
#って、それはそれでlisp使いから怒られそうだな。w
0962デフォルトの名無しさん
NGNGさもそれがC言語並にいろんな分野で活躍してる言語であるかのように
教えられたりするとちょっと引くんだよな。
最初から「いまどきEmacsのマクロ以外で使われてないけどな」とか
そういうことも教えとかないとあらぬ誤解を生むのではないかと。
0963デフォルトの名無しさん
NGNG例えば ○○○basket○○○ball○○○player○○ (○は空白) と入力すると
basket○ball○player と出力される
単語と単語の間に空白を1つ残すプログラムを作りたいのですが
どうすればいいのでしょうかどなたかお願いします。
0964デフォルトの名無しさん
NGNGっていうか、Cでやる仕事じゃないねぇ。
0965デフォルトの名無しさん
NGNGs/ +$//
をお忘れで。
0966デフォルトの名無しさん
NGNG0967デフォルトの名無しさん
NGNGお前がな。
0968デフォルトの名無しさん
NGNG0969デフォルトの名無しさん
NGNG#include <stdio.h>
int main()
{
int ch;
while((ch = getchar()) != EOF)
{
putchar(ch);
if(ch == ' ')
{
do { ch = getchar(); } while(ch == ' ');
ungetc(ch);
}
}
return 0;
}
0970デフォルトの名無しさん
NGNG#include <stdio.h>
#include <stdlib.h>
#include <search.h>
#define IN_FILE "seiseki.dat"
#define OUT_FILE "seiseki_out.dat"
#define NUM_STUDENTS 80
#define NUM_PASS_STUDENTS 60
struct student
{
int id;
int average;
} student[NUM_STUDENTS], *sort_student[NUM_STUDENTS];
int compare(const void *elem1, const void *elem2)
{
return (*(struct student **)elem2)->average - (*(struct student **)elem1)->average;
}
int main()
{
char buf[256];
int i, score1, score2, score3, score4, score5;
FILE *FP = fopen(IN_FILE, "r");
if(!FP)
{
perror(IN_FILE);
return -1;
}
0971デフォルトの名無しさん
NGNGfor(i = 0; i < NUM_STUDENTS; i++)
{
if(!fgets(buf, sizeof(buf), FP))
{
perror(IN_FILE);
return -1;
}
if(sscanf(buf, "%d %d %d %d %d %d", &student[i].id, &score1, &score2, &score3, &score4, &score5) != 6)
{
fprintf(stderr, "format error at line %d\n", i + 1);
return -1;
}
student[i].average = (int)((score1 + score2 + score3 + score4 + score5) / 5.0 + 0.5);
sort_student[i] = &student[i];
}
fclose(FP);
qsort(sort_student, NUM_STUDENTS, sizeof(struct student *), compare);
FP = fopen(OUT_FILE, "w");
if(!FP)
{
perror(OUT_FILE);
return -1;
}
for(i = 0; i < NUM_STUDENTS; i++)
fprintf(FP, "ID:%2d、平均:%3d、%s\n", student[i].id, student[i].average, student[i].average >= sort_student[NUM_PASS_STUDENTS - 1]->average? "(・∀・)イイ!!": "あぼーん");
fclose(FP);
return 0;
}
0972デフォルトの名無しさん
NGNG行頭の空白が取れないぞ。
#include <stdio.h>
int main()
{
int ch;
ch = getchar();
while(ch == ' '){
ch = getchar();
}
while(ch != EOF){
if(ch == ' '){
do {
ch = getchar();
} while(ch == ' ');
if(ch == EOF){
break;
}
putchar(' ');
}
putchar(ch);
ch = getchar();
}
return 0;
}
0973デフォルトの名無しさん
NGNG制御が見にくい。
#include <stdio.h>
int main()
{
int ch;
while((ch = getchar()) != EOF)
{
while(ch == ' ');
ch = getchar();
while(ch != EOF)
{
putchar(ch);
if(ch == ' ')
do ch = getchar(); while(ch == ' ');
else if(ch == '\n')
break;
else
ch = getchar();
}
}
return 0;
}
0974デフォルトの名無しさん
NGNG#include <string.h>
main()
{
char s[]=" basket ball player ";
char* p;
if(NULL != (p=strtok(s," "))){
printf("%s", p);
while(NULL != (p=strtok(NULL," ")))
printf(" %s", p);
}
}
むしろstrtokを使っとけと。
0975デフォルトの名無しさん
NGNG#include <stdio.h>
#include <string.h>
main()
{
char s[]=" basket ball player ";
char* p;
if(NULL != (p=strtok(s," "))){
printf("%s", p);
while(NULL != (p=strtok(NULL," ")))
printf(" %s", p);
}
}
0976デフォルトの名無しさん
NGNG『\d』って言う文字を表示させるにはどうしたらいいのですか…?
当然
printr("\d");
ってのはエラーが出るのですが…
0977976
NGNGの間違いです
すみません
0978デフォルトの名無しさん
NGNG"\\d"
0979976
NGNGありがとうございます!!!
ってことは『%d』って表示させるときも
『%%d』 って打てばいいんですね
0980デフォルトの名無しさん
NGNGそうです
0981デフォルトの名無しさん
NGNG%%はprintf系のみの仕様。
一応。
0982d
NGNGですが、よくわかりません。教えてください
0983デフォルトの名無しさん
NGNG「最大差分三角形」というのがよくわかりません。教えてください。
0984デフォルトの名無しさん
NGNGこれ?
http://www17.cds.ne.jp/~busyboy/puzzle/pzlguid1.html
そりゃまあ、総当りだろ。
0985デフォルトの名無しさん
NGNG確かに総当りっぽいが、ちょっとしたコツで劇的に
処理時間を短縮できそうな気もするし。
気が向いたら考えてみるか。
0986デフォルトの名無しさん
NGNG0987デフォルトの名無しさん
NGNG#include <stdio.h>
#include <stdlib.h>
#define MAXN 15
int inuse[MAXN];
int tri[5][5];
int main(void)
{
int i, j, k, l, m;
int n, o, p, q;
int r, s, t;
int u, v;
int w;
for (i = 1; i <= MAXN; i++) {
inuse[i - 1] = 1;
for (j = 1; j <= MAXN; j++) {
if (inuse[j - 1]) continue;
inuse[j - 1] = 1;
for (k = 1; k <= MAXN; k++) {
if (inuse[k - 1]) continue;
inuse[k - 1] = 1;
for (l = 1; l <= MAXN; l++) {
0988デフォルトの名無しさん
NGNGきったねーの作ってみてる(w
0989デフォルトの名無しさん
NGNGinuse[l - 1] = 1;
for (m = 1; m <= MAXN; m++) {
if (inuse[m - 1]) continue;
inuse[m - 1] = 1;
n = abs(i - j);
if (inuse[n - 1]) goto lbl10;
inuse[n - 1] = 1;
o = abs(j - k);
if (inuse[o - 1]) goto lbl9;
inuse[o - 1] = 1;
p = abs(k - l);
if (inuse[p - 1]) goto lbl8;
inuse[p - 1] = 1;
q = abs(l - m);
if (inuse[q - 1]) goto lbl7;
inuse[q - 1] = 1;
r = abs(n - o);
if (inuse[r - 1]) goto lbl6;
inuse[r - 1] = 1;
s = abs(o - p);
if (inuse[s - 1]) goto lbl5;
inuse[s - 1] = 1;
0990デフォルトの名無しさん
NGNGif (inuse[t - 1]) goto lbl4;
inuse[t - 1] = 1;
u = abs(r - s);
if (inuse[u - 1]) goto lbl3;
inuse[u - 1] = 1;
v = abs(s - t);
if (inuse[v - 1]) goto lbl2;
inuse[v - 1] = 1;
w = abs(u - v);
if (inuse[w - 1]) goto lbl1;
inuse[w - 1] = 1;
printf("%d %d %d %d %d\n", i, j, k, l, m);
printf(" %d %d %d %d\n", n, o, p, q);
printf(" %d %d %d\n", r, s, t);
printf(" %d %d\n", u, v);
printf(" %d\n", w);
lbl1:
inuse[w - 1] = 0;
lbl2:
inuse[v - 1] = 0;
0991デフォルトの名無しさん
NGNGinuse[u - 1] = 0;
lbl4:
inuse[t - 1] = 0;
lbl5:
inuse[s - 1] = 0;
lbl6:
inuse[r - 1] = 0;
lbl7:
inuse[q - 1] = 0;
lbl8:
inuse[p - 1] = 0;
lbl9:
inuse[o - 1] = 0;
lbl10:
inuse[n - 1] = 0;
inuse[m - 1] = 0;
}
inuse[l - 1] = 0;
}
inuse[k - 1] = 0;
}
inuse[j - 1] = 0;
}
inuse[i - 1] = 0;
}
return 0;
}
0992デフォルトの名無しさん
NGNG0993デフォルトの名無しさん
NGNGもう一度考えるからちょっと待ってて
0995988
NGNG#define N 15
static int tri[N];
/*
* 配列triには
* 01 02 03 04 05
* 06 07 08 09
* 10 11 12
* 13 14
* 15
* のように入ってる。
*/
0996988
NGNGstatic const int pair[][2] = {
{1, 6}, {2, 7}, {3, 8}, {4, 9},
{6, 10}, {7, 11}, {8, 12},
{10, 13}, {11, 14},
{13, 15},
{-1, -1},
};
int i;
/* check */
for (i = 0; pair[i][0] != -1; i++) {
if (tri[pair[i][0]] - tri[pair[i][0] + 1] != tri[pair[i][1]]) {
// printf("\r");
return;
}
}
/* ok print */
for (i = 0; i < 15; i++) {
printf("%d ", tri[i]);
}
printf("\n");
}
0997988
NGNG{
int j;
tri[pos] = k;
if (k == N)
check();
else
for (j = 0; j < N; j++)
if (tri[j] == 0)
put(j, k + 1);
tri[pos] = 0;
}
void genperm(void)
{
int pos;
int count = 0;
count = 0;
for (pos = 0; pos < N; pos++)
tri[pos] = 0;
for (pos = 0; pos < N; pos++)
put(pos, 1);
}
int main(int argc, char * argv[])
{
genperm();
return 0;
}
0998デフォルトの名無しさん
NGNGinuse[w - 1] = 0;
lbl1:
inuse[v - 1] = 0;
lbl2:
inuse[u - 1] = 0;
lbl3:
inuse[t - 1] = 0;
lbl4:
inuse[s - 1] = 0;
lbl5:
inuse[r - 1] = 0;
lbl6:
inuse[q - 1] = 0;
lbl7:
inuse[p - 1] = 0;
lbl8:
inuse[o - 1] = 0;
lbl9:
inuse[n - 1] = 0;
lbl10:
inuse[m - 1] = 0;
}
0999988
NGNGhttp://www.sra.co.jp/people/miyata/algorithm/genperm.txt
の引き写し(w
なるべく早く動くようにと思って、グローバル変数多用してる。
あと5段決め打ちダサイ(w
1000デフォルトの名無しさん
NGNGhttp://pc2.2ch.net/test/read.cgi/tech/1045074808/l50
あぶなかった…
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。