ぼるじょあがC/C++の宿題を片づけますYO! 21代目
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001ぼるじょあ ◆yBEncckFOU
NGNGわからない宿題を片づけますYO!
【注意点】 -------------------------------------------------
・問題はしっかりと解いてもらう方にわかりやすいように
問題文などの省きはやめ、エラーなどは適切に書きましょう
全文を書いてしまうか、分かりやすくまとめましょう。
・後になって問題につけたしをするのはやめましょう。
解いてもらっている方に失礼になってしまいます。
------------------------------------------------------------
【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
http://do.sakura.ne.jp/%7Ejunkroom/cgi-bin/megabbs/lounge/index.html
【歴代スレは>>2-10】
0002デフォルトの名無しさん
NGNG19代目: http://pc2.2ch.net/test/read.cgi/tech/1073566342/
18代目: http://pc2.2ch.net/test/read.cgi/tech/1071407728/
17代目: http://pc2.2ch.net/test/read.cgi/tech/1070469896/
16代目: http://pc2.2ch.net/test/read.cgi/tech/1069837000/
15代目: http://pc2.2ch.net/test/read.cgi/tech/1068950713/
14代目: http://pc2.2ch.net/test/read.cgi/tech/1067175933/
13代目: http://pc2.2ch.net/test/read.cgi/tech/1064541405/
12代目: http://pc2.2ch.net/tech/kako/1060/10607/1060706382.html
11代目: http://pc2.2ch.net/tech/kako/1058/10582/1058283913.html
10代目: http://pc2.2ch.net/tech/kako/1057/10570/1057070174.html
9代目: http://pc2.2ch.net/tech/kako/1055/10559/1055944101.html
8代目: http://pc2.2ch.net/tech/kako/1055/10550/1055056940.html
7代目: http://pc2.2ch.net/tech/kako/1053/10539/1053963794.html
6代目: http://pc2.2ch.net/tech/kako/1053/10530/1053045530.html
5代目: http://pc2.2ch.net/tech/kako/1051/10515/1051594046.html
4代目: http://pc2.2ch.net/tech/kako/1045/10450/1045074808.html
3代目: http://pc2.2ch.net/tech/kako/1041/10419/1041992392.html
2代目: http://pc3.2ch.net/tech/kako/1039/10397/1039772622.html
宿題手伝いますYO!!: http://pc3.2ch.net/tech/kako/1038/10380/1038024989.html
0003デフォルトの名無しさん
NGNGモツ
0004デフォルトの名無しさん
NGNG>>>1
>モツ
0005ぼるじょあ ◆8F06CsBYBE
NGNGぼるじょあ◆yBEncckFOUは共同体で連続体で群生体だから
無限の知識と無尽蔵の体力を持ってるんだYO!24時間、いつでも質問オッケー♪
(・3・) エェー こっちが嫌になるほど質問しろYO!
名前欄に「ぼるじょあ#ぶるじょあ」って書けば、キミも今日から ぼるじょあ◆yBEncckFOU だYO!
名前欄に「ぼるじょあ#セV8cLFセz」って書けば、キミも今日から ぼるじょあ◆yEbBEcuFOU だYO!
*ぼるじょあ◆yBEncckFOUはコテハンじゃないYO!
*ぼるじょあ◆yBEncckFOUはいつだって全力投球ダジェ!!
*ぼるじょあ◆yBEncckFOUは共同体で連続体で群生体だYO!
*ぼるじょあ◆yBEncckFOUはみんななれるからイイぼるじょあも悪いぼるじょあもいるYO!
*ぼるじょあ◆yBEncckFOUはエムエクースとニーはよくわからないYO!
*ぼるじょあ◆yBEncckFOUは2ちゃんねるの人気者だYO!
*ぼるじょあ◆yBEncckFOUはちょっと基地外はいっているYO!
0006ぼるじょあ ◆yBEncckFOU
NGNG0007デフォルトの名無しさん
NGNGなったんだ?
0009デフォルトの名無しさん
NGNG6+9=15とかは普通じゃん?
5+10=15とか4+11=15とかそのまんまじゃん?
7+8=15って少なくね?おかしくね?
7って結構でかくね?8なんて更にでかいじゃん。
7でさえでかいのに8って更にでかいじゃん?
確かに15って凄いけどこの二人が力を合わせたら16ぐらい行きそうな気がしね?
二人とも強豪なんだからもっといってもよさそうじゃね?なんかおかしくね?
どう考えてもおかしくね?
7ってかなり強くね?世間は7を甘くみすぎじゃね?
8なんて更に強いじゃん?ドラゴンボールで言えば7はピッコロじゃん?
8は悟空じゃん?15はラディッツじゃないね。ラディッツは16ぐらいだね。
悟飯の一撃分1引いて15として勝ったのどっちよ?
ピッコロなんて戦い終わった後全然平気そうだったじゃん?
って事は7+8はもっといくだろ。絶対おかしくね?15ってありえなくね?
なんか変じゃね?これ俺達の知らない所でなんか起こってるっつー知らせじゃね?
0010デフォルトの名無しさん
NGNG0011デフォルトの名無しさん
NGNG7は孤独な数字ですからね。
その事実を使って
1〜9を一度ずつ用い二つの積を
つくったとき(例:1*4*5*9 と 2*3*6*7*8)
同じ値をもつものはできないということが容易に証明できる。
そう、片方は7の倍数であり、もう一方は7の倍数ではない。
よって、題意は示される。
ってミステリー小説にありましたよ。。。
0012デフォルトの名無しさん
NGNGそれは別に5でもいいんじゃないか?
0013デフォルトの名無しさん
NGNGその事実を使って
1〜10を一度ずつ用い二つの積を
つくったとき(例:1*4*5*9 と 2*3*6*7*8*10)
同じ値をもつものはできないということが容易に証明できる。
そう、片方は7の倍数であり、もう一方は7の倍数ではない。
よって、題意は示される。
ってミステリー小説にありましたよ。。。
0014デフォルトの名無しさん
NGNG任意の数を引数に取り、ローマ数字の文字列を返す関数を作り給へ。
0015デフォルトの名無しさん
NGNG自分で作れ、3分でできるだろヴぁか
0016デフォルトの名無しさん
NGNG0017デフォルトの名無しさん
NGNGこれでは3999までしか表せないぽ
0018デフォルトの名無しさん
NGNGなんだよその、ぽってのはよ あ?
ぬっ殺すぞ?
0019デフォルトの名無しさん
NGNG予想外に手間取ったぜ。
ttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=999294620&res=144
良質なネタ提供に感謝する。
0020デフォルトの名無しさん
NGNGお前ら、四季たんにはぁはぁしすぎですよ?
0021デフォルトの名無しさん
NGNG0022デフォルトの名無しさん
NGNGを、大きい順に並び替えて 10,9,8,7,6,5,4,3,2,1
となるようにしたいんですが、for文やif文などの初心者でもわかるやり方で
どうなるか教えてください。別の変数を作ってそこに入れて入れ替える感じかとは思うんですが…。
0023デフォルトの名無しさん
NGNG#include <stdio.h>
int main(void){
int i, x, y, temp;
int hairetu[10] = {4,2,3,5,1,6,4,7,10,9};
for(i = 0; i < 10; i++){
for(x = 0, y = 1; y < 10 - i; x++, y++){
if(hairetu[x] > hairetu[y]){
temp = hairetu[x];
hairetu[x] = hairetu[y];
hairetu[y] = temp;
}
}
}
for(i = 0; i < 10; i++){
printf("%d ", hairetu[i]);
}
}
0024デフォルトの名無しさん
NGNGありがとうございます。そんな見やすいの早く書けるようになりたいです
0025デフォルトの名無しさん
NGNG#include<stdio.h>
int main(){
int hairetu[10]={4,2,3,5,1,6,4,7,10,9};
int max_index,temp,k,i,j;
for(i=0;i<10;i++){
max_index = i;
for(j=i;j<10;j++){
if(hairetu[j]>hairetu[max_index]){
max_index = j;
}
}
temp = hairetu[i];
hairetu[i] = hairetu[max_index];
hairetu[max_index] = temp;
}
for(k=0;k<10;k++){
printf("hairetu[%d]=%d\n",k,hairetu[k]);
}
return 0;
}
0026デフォルトの名無しさん
NGNGこれぐらいすぐできるように頑張らないとだ。
0027デフォルトの名無しさん
NGNG0028デフォルトの名無しさん
NGNGちょっと複雑なときはqsortを使うか、シェルソートで。
0029デフォルトの名無しさん
NGNG0030デフォルトの名無しさん
NGNGオリジナルの単純選択法の遅さを解決できたのみならず、ソートする過程を
そのままパイの移動の絵にできて大変楽しんだものだ。
0031デフォルトの名無しさん
NGNGstd::sort()
std::stable_sort()
std::partial_sort()
std::nth_element()
std::partition()
std::stable_partition()
だな。自分で書く必要は「ない」。
0032デフォルトの名無しさん
NGNG学生さんの宿題にそれは通じないだろw
0033デフォルトの名無しさん
NGNGstd::stable_sort()
(普通マージソートで実装されている)
0034デフォルトの名無しさん
NGNG?
0035デフォルトの名無しさん
NGNGおやじの昔語りだと思われ。
0036デフォルトの名無しさん
NGNG0037デフォルトの名無しさん
NGNGコードは説明より物を言う。手持ちの処理系のC++標準algorithmヘッダの
std::sort_heap()の実装を眺めてみてはどうだろう。
0038デフォルトの名無しさん
NGNGどの部分だかわからない
0039デフォルトの名無しさん
NGNG探索するyの値の最大値
だんだんと狭い範囲を処理するようにする
0040デフォルトの名無しさん
NGNG0041デフォルトの名無しさん
NGNG要素数が少ないときはバブルソート、多いときは基本的にはクイックソート、
クイックソートが苦手な並びに対してヒープソートしてます、みたいな実装
の話を聞いたことがあるなぁ。
0042デフォルトの名無しさん
NGNG*/
#include <stdio.h>
int main(void)
{
int i;
int vx[5];
for(i=;i<5;i++){
printf("vx[%d]:",i);
scanf("%d",&vx[i]);
}
for(i=0;i<2;i++){
int temp = vx[i];
vx[i]=vx[4-i];
vx[4-i] =temp;
}
for(i=0;i<5;i++)
printf("vx[%d]=%d\n",i,vx[i]);
return(0);
}
0043デフォルトの名無しさん
NGNGエラーが多発しまつ。
for(i=;i<5;i++)
ここの文でエラーがでるYOと怒られます。
バグが分かりません
ヒントでいいので教えてください。
0044デフォルトの名無しさん
NGNGfor(i=;i<5;i++) ←この行に構文の間違いがあるよ
ってか、普通気付かんか?
0045は ◆cplnFO9T0I
NGNG今度のネタは、
UNIXタイムと指定時間の相互変換をするのにはどのようにするか?
です。
0046デフォルトの名無しさん
NGNG0047デフォルトの名無しさん
NGNGネタといいつつ本当は宿題なんではと思ったりしつつも、
宿題の少ないこの時期に提供ごくろうさん。
UNIXタイムをテキストにするにはctimeとかlocaltime+strftimeで片付くだろうけど、
逆はパーザが面倒っぽいね。
フォーマットを ISO 8601 の制限つきとかに固定した方が、より宿題っぽくなる。
あとは、うるう秒をどれだけまじめにやるか。
0048デフォルトの名無しさん
NGNG回答サンクス
自分で見直してて
ちょっとあきれてしまいました。
0049デフォルトの名無しさん
NGNG005050
NGNG構造体の要素が特定の値であるものを検索する方法を教えてください
下記のdefの値がたとえば100のものを探したい場合はどのように記述すればよいのでしょうか。
struct STLLIST
{
int abc;
int def;
};
vector<STLLIST> StlList;
find(StlList.begin(),StlList.end(),StlList.def==100); <---もしろんエラー
STLの勉強をはじめてまだ1日です。
しょうもない質問だとは思うのですが、よろしくおながいします。
0051デフォルトの名無しさん
NGNGfind_if
0052デフォルトの名無しさん
NGNGファンクタ(関数オブジェクト)を使ってfind_if
あとは自分で調べるよし。勉強だ。
005350
NGNGと安易に記述してもエラーですた。
vector<int>の例を発見したのですが
構造体の例がありません(涙
vector<int>なら
find_if(StlList.begin(),StlList.end(),bind1st(equal_to<int>(),100));
と書けばよさそうなことはわかりました。
でも構造体での指定の仕方がわかりません。
構造体の特定の要素について指定するにはどうすればよいのでしょうか。
0054デフォルトの名無しさん
NGNG>>52
0055デフォルトの名無しさん
NGNGttp://www.wakhok.ac.jp/~sumi/stl/
ここでも参考にするといい。
あと、すれ違い。
005650
NGNG0057デフォルトの名無しさん
NGNG>構造体の例がありません(涙
「でもクラスの例はあります」ってことはないよね?
0058デフォルトの名無しさん
NGNGoperator==を定義するとか。
0059デフォルトの名無しさん
NGNGだからファンクタ使えといってるだろヴォケ
あとはスレ違いだから自分で調べろ
0060デフォルトの名無しさん
NGNG0061デフォルトの名無しさん
NGNGC++スレに来い。
0062デフォルトの名無しさん
NGNG環境は gcc-c++-3.2 です。
0063デフォルトの名無しさん
NGNG#include <cstdlib>
std::system("cmd");
006462
NGNG006550
NGNG0066デフォルトの名無しさん
NGNG( ´,_ゝ`)プッ
0067Addicted to C++ ◆nrBjarne.g
NGNGstruct pred
{
bool operator()(const STLLIST& x) const
{
return x.def == 100;
}
};
とか構造体を定義しておいて(これをファンクタという)、
std::vector<STLLIST> StlList;
std::vector<STLLIST>::iterator it = std::find_if(StlList.begin(), StlList.end(), pred());
とする。
STLにこだわらないならboost::lambda使って
std::vector<STLLIST>::iterator it = std::find_if(StlList.begin(), StlList.end(), boost::bind(&STLLIST::def, _1) == 100);
みたいに書ける。
こういう話題は初心者歓迎C/C++室当たりかな。
http://pc2.2ch.net/test/r.i/tech/1077102238/
携帯からなんでtypoとかあったらスマン。
0068Addicted to C++ ◆nrBjarne.g
NGNGstruct pred
{
bool operator()(const STLLIST& x) const
{
return x.def == 100;
}
};
とか構造体を定義しておいて(これをファンクタという)、
std::vector<STLLIST> StlList;
std::vector<STLLIST>::iterator it = std::find_if(StlList.begin(), StlList.end(), pred());
とする。
STLにこだわらないならboost::lambda使って
std::vector<STLLIST>::iterator it = std::find_if(StlList.begin(), StlList.end(), boost::bind(&STLLIST::def, _1) == 100);
みたいに書ける。
こういう話題は初心者歓迎C/C++室当たりかな。
http://pc2.2ch.net/test/r.i/tech/1077102238/
携帯からなんでtypoとかあったらスマン。
0069Addicted to C++ ◆nrBjarne.g
NGNGスレ汚しスマン
0070デフォルトの名無しさん
NGNG#include <iostream>
int main()
{
for (;;) std::cout << "くじゃく" << std::endl;
}
0071デフォルトの名無しさん
NGNGだからC++スレに来いって。ネタがなくて皆ひもじい思いを
してるから。
0072デフォルトの名無しさん
NGNGmain(){
printf("abcde\n");
}
こーゆーソースをパソコンで実行できるフリーツール
は「phoebe」ってやつが一番お勧めですか?
0073デフォルトの名無しさん
NGNGttp://www.mhlw.go.jp/
ここのホームページにお勧めのがあるよ
0074デフォルトの名無しさん
NGNGphoebeなんて聞いたことないな(w
0075Cプログラミング
NGNG例)3920秒を入力すると、1時間5分20秒とでる。
0076Cプログラミング
NGNG関数は、長方形の縦と幅のパラメータそれぞれ一つを含み、整数を使う。
2、長方形の縦と幅を整数で入力すると、面積と周囲がでるプログラムをかいて
ください。(1の関数を使ってお願いします。)
例)縦5、幅4、を入力すると、面積20と周囲18が出る。
0077デフォルトの名無しさん
NGNG1.
int chouhoukeinomenseki(int tate, int haba) { return tate * haba); }
2.
void chouhoukeinomensekitoshuui(int tate, int haba)
{ printf("menseki%dshuui%d",chouhoukeinomenseki(tate, haba),2*(tate+haba)); }
007872
NGNG厚生労働省ってところになんかあるんですか?
自分はphoebeと、LSI C-86 Ver.3.30c 試食版
ってコンパイラで、一応プログラム実行できてるのですが・・。
0079Cプログラミング
NGNGなんですが、このプログラムを次のような構成でかきなおしてください。
Celsiusを計算する関数とその値を返す関数を別別にしてかく。
main()が、Fahrenheitで入力されて、関数を呼んで、関数によって返された値を出力する。
#include <stdio.h>
int main(void)
{ int fahrenheit, celsius;
printf("Enter a temperature in fahrenheit:");
scanf("%d", &fahrenheit);
celsius=5*(fahrenheit-32)/9;
printf("%d in Fahrenheit is %d in Celsius.\n", fahrenheit, celsius);
return 0;
}
0080デフォルトの名無しさん
NGNGなぜファイル名で言う。
C言語を始めよう!と言え。
あとコンパイラはBCCも入れたほうがいいかと。
0084デフォルトの名無しさん
NGNG#include<stdio.h>
void Celsiuswokeisansuru(int *celsius, int fahrenheit){*celsius=5*(fahrenheit-32)/9;}
int sonoataiwokaesu(int fahrenheit){int celsius;Celsiuswokeisansuru(&celsius,fahrenheit);return celsius;}
int main(void)
{
int celsius,fahrenheit;
printf("Enter a temperature in fahrenheit:");
scanf("%d", &fahrenheit);
celsius=sonoataiwokaesu(fahrenheit);
printf("%d in Fahrenheit is %d in Celsius.\n", fahrenheit, celsius);
return 0;
}
0085デフォルトの名無しさん
NGNG#include<stdio.h>
int chouhoukeinomenseki(int tate, int haba){return tate*haba;}
void chouhoukeinomensekitoshuui(int tate, int haba)
{printf("menseki%dshuui%d",chouhoukeinomenseki(tate,haba),2*(tate+haba));}
int main(void){int tate,haba;printf("tate=");scanf("%d",&tate);printf("haba=");scanf("%d",&haba);
chouhoukeinomensekitoshuui(tate,haba);return 0;}
0086デフォルトの名無しさん
NGNG0088190
NGNG自分でやる力をつけないと、分からないところは自分で調べる、これ基本。
スレ違いなのでsage
0089デフォルトの名無しさん
NGNG#include<stdio.h>
int main(void){int t;printf("秒数=");scanf("%d",&t);
printf("%d時間%d分%d秒",t/3600,(t%3600)/60,(t%3600)%60);
return 0;}
0090デフォルトの名無しさん
NGNG誤爆だし、一番上のスレッドでsageているし、もうさんざんですね。
0091デフォルトの名無しさん
NGNG#include<stdio.h>
int main(void){int t;printf("秒数=");scanf("%d",&t);
printf("%d時間%d分%d秒",t/3600,t%3600/60,t%3600%60);
return 0;}
0092190
NGNGアッハッハというしかないですね。
取り合えず脳内free()で開放してきます。
0096デフォルトの名無しさん
NGNG極めたいと思うのならこんな問題自力で解いて見せてくれ
0098デフォルトの名無しさん
NGNG{
return 0.0
}
0099デフォルトの名無しさん
NGNG>t%3600%60
秒は t%60 で十分だろ?
0100100
NGNG0101デフォルトの名無しさん
NGNGName used before setとでます。 どこが間違っているでしょうか??
#include <stdio.h>
double average(int a, int b, int c);
char computegrade(double a);
void printresult(char* k, char g);
void main(){
int t1, t2, t3;
char* name; char g; double d; int i;
for (i=0; i<3; i++){
printf("what is your name:");
scanf("%s", name);
printf("%s Enter your three tests\n",name);
scanf("%d %d %d", &t1, &t2, &t3);
d=average(t1, t2, t3);
g=computegrade(d);
printresult(name, g);
}}
double average( int a, int b, int c){
return (double)(a+b+c)/3;
}
charcomputegrade(double a){
char g; ='F';
if (a>=90) g='A';
else if (a>=80) g='B';
else if (a>=70) g='C';
return g;
}
void printresult (char* k, char g){
printf("%s your grade is: %c\n", k, g); }
0102デフォルトの名無しさん
NGNG> char g; ='F';
最初のセミコロンは不要かと。
0103デフォルトの名無しさん
NGNG0104デフォルトの名無しさん
NGNGそうでした。。
Warningっていうのはエラーではないのですか?問題は無いのですか?
0105デフォルトの名無しさん
NGNG解決方わかりますか?
0106デフォルトの名無しさん
NGNGchar *name を
char name[256] とかにする
0108デフォルトの名無しさん
NGNG何でこのスレがあるって知ってて別スレにマルチする?
0110デフォルトの名無しさん
NGNGdouble average(int a, int b, int c);
char computegrade(double a);
void printresult(char* k, char g);
void main(int argc, _TCHAR* argv[]){
int t1, t2, t3;
char name[100]; char g; double d; int i;
char TopName[100],WorName[100];
double TopAve = 0,WorAve = 100;
for (i=0; i<3; i++){
printf("what is your name:");
scanf("%s", name);
printf("%s Enter your three tests\n",name);
scanf("%d %d %d", &t1, &t2, &t3);
d=average(t1, t2, t3);
if (d > TopAve){ TopAve = d; strcpy(TopName,name);}
if (d < WorAve){ WorAve = d; strcpy(WorName,name); }
g=computegrade(d);
printresult(name, g);}
printf("Top %s : Worst : %s\n", TopName, WorName);}
double average( int a, int b, int c){
return (double)(a+b+c)/3;}
char computegrade(double a){
char g ='F';
if (a>=90) g='A';
else if (a>=80) g='B';
else if (a>=70) g='C';
return g;}
void printresult (char* k, char g){
printf("%s your grade is: %c\n", k, g); }
0111デフォルトの名無しさん
NGNGこの行を
void main(int argc, _TCHAR* argv[]){
↓
void main(){
へ直して。
0112デフォルトの名無しさん
NGNG物凄いやっつけで作ったなw
0113デフォルトの名無しさん
NGNGint main()な
0114デフォルトの名無しさん
NGNGstrcpyとは、Intですか?
0115デフォルトの名無しさん
NGNGchar name[100] の100はなんで100なんですか?
0116デフォルトの名無しさん
NGNG100文字ぶんもとっておけば名前を入力するには充分だろうという
楽観的な発想から!
0117デフォルトの名無しさん
NGNG0118デフォルトの名無しさん
NGNG0119デフォルトの名無しさん
NGNG0120デフォルトの名無しさん
NGNG100は2の倍数だが?
0121デフォルトの名無しさん
NGNG本当のところは ビット長の2の倍数がよかろう。128とか。
0122デフォルトの名無しさん
NGNG0123デフォルトの名無しさん
NGNG0124デフォルトの名無しさん
NGNG0125デフォルトの名無しさん
NGNGxが適当な数である
<==> x ∈{2^t|t∈N}
ただしNは自然数全体の集合
これで良いか?
0126デフォルトの名無しさん
NGNGそれはわかったけどさ、バッファのサイズが128とかそうである理由は何?
宿題スレで>>121みたいな事言うのもなんだかなぁと思うんだが。
0127デフォルトの名無しさん
NGNGあ、ここにも春がw
0128デフォルトの名無しさん
NGNG2の乗数だと領域の確保がスムーズに行われるとか
そういうのがあるの?
0129デフォルトの名無しさん
NGNG言語とは直接は関係しない無い話だよ。
ましてや宿題とはなおさら関係無い。
0130デフォルトの名無しさん
NGNGそういう数字だ。
0131デフォルトの名無しさん
NGNG0132wakaranai
NGNGという問題を出されたのですが、解けません。
どなたかお助けを・・・
0133デフォルトの名無しさん
NGNG嘘つけ。
0134wakaranai
NGNGstruct jikan {
int h;
int m;
}
void input (struct jikan b[],int n);
void output struct jikan c[] ,int n);
struct jikan keisan (struct jikan d[],int n);
void main (void)
{
struct jikan a[10],sou;
input (a,10);
output (a,10);
sou = keisan ( ? , ? ,);
printf("|総合|%4d|%2d|\n",???,???);
printf("+------------+\n");
}
0135wakaranai
NGNGvoid input (struct jikan[],int n);
{
sou = keisan (?,?,);{
printf("%d日目\n",i+1);
printf("時間->");
scanf(%d,?);
printf("分->");
scanf(%d,?);
}
}
struct jikan keisan (struct jikan d[],int n)
{
struct jikan s;
int i;
s,h=0;
s,m=0;
for (i=0;
計算
計算
}
計算
計算
return s ;
}
の???と計算のところがわからないです。
0136デフォルトの名無しさん
NGNGネタっぽいけど混じれ酢してみる。
>???と計算のところがわからないです。
そこだけ直したって動きません。
まずC言語の勉強をしましょう。
0137デフォルトの名無しさん
NGNG問題の意味がわかりません。予定表かなんか?
0138デフォルトの名無しさん
NGNG出力結果の具体例を見せてくれないと書きようがない。
0139デフォルトの名無しさん
NGNG宿題はこういうのを書けということか?
#include <stdio.h>
#define DAYS 10
typedef struct data { int hour; int minute; } Data;
void input(Data *data) { int i; for (i = 0; i < DAYS; ++i) {
printf("\n-------- %2d日目 --------\n", i + 1);
printf("時間> "); scanf("%d", &(data[i].hour));
printf(" 分> "); scanf("%d", &(data[i].minute));
} }
void output(Data *data) { int total_hour = 0, total_minute = 0, i;
printf("+--------+------+------+\n| | 時間 | 分 |\n");
printf("+--------+------+------+\n"); for (i = 0; i < DAYS; ++i) {
total_hour += data[i].hour; total_minute += data[i].minute;
printf("| %2d日目 | %4d | %4d |\n", i+1, data[i].hour, data[i].minute);
printf("+--------+------+------+\n"); }
printf("| 総合 | %4d | %4d |\n", total_hour, total_minute);
printf("+--------+------+------+\n");
}
int main(void) { Data times[DAYS]; input(times); output(times); return 0; }
0140デフォルトの名無しさん
NGNG難しい技術はわからないのでこのぐらいのレベルで、ちゃんと動くプログラムを教えてください。
main(void){
int month[]={0,31,29,31,30,31,30,31,31,30,31,30,31};
int m;/*月*/
int h;/*日*/
int s=4;
char buf[100];
printf("month=");
gets(buf);
m=atoi(buf);
printf("\n%d月\n",m);
for(h=0;h<m;h++){
s=s+month[h];
s=s%7;
}
printf(" SUN MON TUE WED THU FRI SAT\n");
for(h=0;h<s;h++) {
printf(" ");
}
for(h=1;h<=month[m];h++){
printf("%4d",h);
if((s+h)%7==0){
printf("\n");
}
}
}
0141デフォルトの名無しさん
NGNG0142デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=999294620&res=145&fi=no
0143142
NGNG逝ってくる。
0144142
NGNG/* http://www.eskimo.com/~scs/C-faq/q20.31.html */
int dayofweek(int y, int m, int d)
{
static int t[] = {0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4};
y -= m < 3;
return (y + y/4 - y/100 + y/400 + t[m-1] + d) % 7;
}
void calendar(int m)
{
int i, skip;
printf("==== %s ====\n", months[m]);
printf("SUN MON TUE WED THU FRI SAT\n");
skip = dayofweek(2004, m, 1);
for (i = 0; i < skip; i++)
printf(" ");
for (i = 1; i <= days[m]; i++)
printf("%3d%s", i, ((i + skip)%7 == 0) ? "\n" : " ");
printf("\n");
}
0145デフォルトの名無しさん
NGNGありがとうございます。
でも、visual C++でエラーが出て実行できないんですが…。
0146デフォルトの名無しさん
NGNGmain()って知ってる?
0147デフォルトの名無しさん
NGNG#include <stdio.h>
int main()
{
int days[] = { 0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
int i, m, s = 4;
for (m = 1; m <= 12; m++) {
printf("%d月\n", m);
printf("SUN MON TUE WED THU FRI SAT\n");
for (i = 0; i < s; i++)
printf(" ");
for (i = 1; i <= days[m]; i++)
printf("%3d%s", i, ((i+s)%7 == 0) ? "\n" : " ");
printf("\n");
s = (s + days[m]) % 7;
}
return 0;
}
0148デフォルトの名無しさん
NGNGプ 結果ずれてるよ。
しかも>>140は何月か指定してその月を表示させるやつだろ
これでいいか?
h
0149デフォルトの名無しさん
NGNG半角空白8文字 " "
&nbsp; " "
全角空白4文字 " "
0150132
NGNGほとんど何も解りません・・・
139さん。
不完全なソースから私の希求するものを読み取っていただき有難うございます。
路が見えたような気がしましたので何とかしてみようと思います。
0151デフォルトの名無しさん
NGNGchar a[2][3];
char *i;
i=(char*)a;
printf("%p %p %p %p",i,&a[0][0],&a[1][3],i+6);}
(char*)とせず、i=a; でも結果は 同じになります(コンに叱られるけど
i=(char*)a; との違いは、どんなものなんでしょうか ?
(早速、ポインタで つまずきました
(char*)が、何で必要なのかが わかりません
0152コンパイラ
NGNG・警告は警告、叱っているわけではない。
・そもそも型の違うものを代入するから警告している。
0153デフォルトの名無しさん
NGNG0154デフォルトの名無しさん
NGNG「バイナリエディタ」で開くと 例えば
12 34 EF なるファイルがある場合
そのファイルを読み込んで内容をウインドウに表示する
サンプルを教えてください。
バイナリモードでファイルを読み込んで
その内容をウインドウに表示するプログラム です。
0155ぼるじょあ ◆yBEncckFOU
NGNGhttp://www.geocities.co.jp/Playtown-Knight/9864/dump.txt
0157デフォルトの名無しさん
NGNGプログラムを実行したウィンドウに表示されますが?
0158デフォルトの名無しさん
NGNG0159154
NGNGお手数おかけします。
VC++6.0を使っています。
ttp://www.sist.ac.jp/~suganuma/VC/window/SDI.htm
例えばこれに準じて?表示するためには、どのようにすれば宜しいでしょうか。
0160こんぴゅ−
NGNG迷惑かけてごめんなさい
0161デフォルトの名無しさん
NGNGどっかでたてたスレの内容に関連づけるなら、3とかa=3とか、例示されてる
もの全てが式。
ただ、それに;をつけたら文だから、ちょっとちがうんだけどな。
0162デフォルトの名無しさん
NGNGhttp://pc2.2ch.net/test/read.cgi/tech/1078753142/l50
0164デフォルトの名無しさん
NGNG0166デフォルトの名無しさん
NGNG0167デフォルトの名無しさん
NGNG>VC++6.0を使っています。
X Window ???
0168デフォルトの名無しさん
NGNGXFree86があるだろ。
0170デフォルトの名無しさん
NGNG> つーか、どーせ環境依存なら X Window にしてほしかった。
X Windowってなんですか?まさかX Window Systemの事ではないですよね?
0171m.s
NGNG0172デフォルトの名無しさん
NGNG優秀なプログラマはこんなところにはいません。
0173デフォルトの名無しさん
NGNG0174デフォルトの名無しさん
NGNGこんなページを見つけた
ttp://www.interq.or.jp/www-user/wanderer/program/memo/recture/compiler.html
0175デフォルトの名無しさん
NGNG0176m.s
NGNG0177デフォルトの名無しさん
NGNG0178教えて・・・
NGNG#include <stdio.h>
int main(void)
{
int num, i, is_prime;
printf("判定したい数を入力してください: ");
scanf("%d", &num);
/* 約数があるかどうかを調べる */
is_prime = 1;
for(i=2; i<=num/2; i=i+1)
if((num%i)==0) is_prime = 0;
if(is_prime==1) printf("素数です");
else printf("素数ではありません");
return 0;
}
これの説明してもらえますか・・・
0179デフォルトの名無しさん
NGNG・判定したい数を入力
・約数があるかどうか調べ
・素数か素数でないか表示
0180デフォルトの名無しさん
NGNGなんでforでmun/2までを調べているかは自分で考えてみたらわかるよ。
0181デフォルトの名無しさん
NGNG約数が最初にみつかった時点で break しないと明らかに無駄な処理が続くぞ
#大元のアルゴリズムが素直すぎるんだけどそれは別にして
i=i+1 とかも気になる。
0182デフォルトの名無しさん
NGNG0183デフォルトの名無しさん
NGNGよく日記で3月10日水曜日と書いてあるだけで(ファイル名とかでも)年がわからないときがあります。
そこで何月何日何曜日と入れたら該当する年を10年先から過去へ5個表示させるプログラムを作りたいのです。
曜日はMon Tue Wed Thu Fri Sat Sunと仮定してます
例
(入力)
>03 10 Wed
(出力)
2010 2004 1999 1993 1982
自力では年月日から曜日を求めるプログラムの関数を用いて10年先の同月日から曜日が一致する年を
順に表示していくことで対処しましたが何か効率が悪いようです。
よろしくお願いします
0184デフォルトの名無しさん
NGNGこれでも大きな問題はないんと思うけど、
効率が悪いってどれくらいを期待して、
どれくらいになったの?
曜日を求めるアルゴリズムが悪いとか?
効率をどうしても上げないといけないなら、
うるう年の2/29をまたぐかどうかで、
前年の同日が何曜日かというのはすぐわかるから、
それを使っては?
0185デフォルトの名無しさん
NGNG勉強しはじめでもわかるぐらいな、簡単な感じでお願いします。
0186デフォルトの名無しさん
NGNGプログラミングの勉強をしようと思ってC言語の入門書片手にやり始めたのですが
Sample1.cというソースファイルをコンパイルしてSample1.exeというファイル
にするというところでいきずまっています。
その入門書には\CGENGO\PRACTICEに移動してdirでSample1.cがあるのを
確認した後Lcc Sample1 と入れてEnterでコンパイルとなっているのですが
以下のような文がでてきてできません.なぜできないのでしょうか?
これだけの情報ではわからないかもしれませんがご教授の願います。
Microsoft (R) KKCFUNC バージョン1.10
Copyright (C)Microsoft Corp. 1991,1993. All rights reserved.
KKCFNC が組み込まれました。
マイクロソフトかな漢字変換 バージョン 2.51
(C)Copyright Microsoft Corp. 1992-1993
エラー:エクスドメモリーマネージャーがすでにくみこまれています。
XMSドライバは組み込まれていません。
Microsoft (R) KKCFUNC バージョン1.10
Copyright (C)Microsoft Corp. 1991,1993. All rights reserved.
KKCFUNCはすでに組み込まれています。
コマンドまたはファイル名が違います。
lcc: can't exec: cpp: No such file or directory
0187デフォルトの名無しさん
NGNG0188デフォルトの名無しさん
NGNGこれなんか参考になると思うよ。
ttp://www.ioccc.org/1988/westley.c
0189デフォルトの名無しさん
NGNGあんたにLSI-Cは無理だ。C言語スレで紹介されているコンパイラを使うことは強くお勧めしておくよ。
0190デフォルトの名無しさん
NGNGワロタ
0191デフォルトの名無しさん
NGNG入力 12+4*
出力 12
となるようなプログラムを書きなさい。(数字は一桁でよしとする)
0192191専用通訳@3倍速
NGNG入力例:12+4* //コマンドラインから文字列として入力される
出力例:12 //標準出力へ出力
また、入力される数式に使用される数値は0〜9とする。
0193デフォルトの名無しさん
NGNG2時間14分か
0194191専用通訳@3倍速
NGNGできたよ。
#include <stdio.h>
#include <string.h>
void stackso(){}
void main(int argv,char *argc[])
{
if(argv==1)return;
if(strcmp(argc[1],"12+4*")!=0){
puts("コマンドラインがおかすぃ");
return;
}
stackso();
puts("12");
}
0195デフォルトの名無しさん
NGNG任意の逆三角形を取り出すと上の二つの数の差が下の数と等しくなる
1度使った数は使用してはならない
例)
1 6 4
5 2 (6-1=5, 6-4=2)
3 (5-2=3)
Cで、処理の部分は10行程度で出来るらしいのですがさっぱり思いつきません
どなたかご教授願います
0196デフォルトの名無しさん
NGNG順列を一つ作るたびに判定していけば?
順列を完成させなくても作る途中で満たさないとわかる場合もあるけど。
0197デフォルトの名無しさん
NGNG#include <stdio.h>
#include <string.h>
int a[100],b=0;void U(int c);int O();int main(){char d[100];int i,l,r;fgets(d,1\
00,stdin);for(i=0;i<strlen(d);i++){if(d[i]>='0'&&d[i]<='9'){U(d[i]-'0');}else{r\
=O();l=O();switch(d[i]){case '+':U(l+r);break;case '-':U(l-r);break;case '*':U(\
l*r);break;case '/':U(l/r);break;default:U(l);U(r);break;}}}printf("%d",O());\
return 0;}void U(int c){a[b++]=c;}int O(void){return a[--b];}
限りなく適当。エラー処理なんてやってない。
0198デフォルトの名無しさん
NGNG0199デフォルトの名無しさん
NGNGその辺のは解ったのですが円の中にもう一つ小さな円変があった場合のプログラムがどうしてもわかりません。教えていただけないですか?
0200デフォルトの名無しさん
NGNG日本語と、自分の意図を相手が汲み取れるように
文章を書く思いやりを勉強しろ。まずはそれからだ。
0201デフォルトの名無しさん
NGNG0202199
NGNGすいません。
ttp://www.ies.co.jp/math/java/geo/gball1/gball1.html
ここにあるのは四角いビリヤード台ですよね。
このテーブルを丸いやつとか楕円のやつとか競技場のトラックのようなやつとかで
軌跡をグラフィック表示してやると結構面白い図形を描くんですよ。
このテーブルに関して円を1つではなく
大きな円の中に小さな円をすっぽりと入れてやるんですよ
ttp://www.ies.co.jp/math/java/vector/angle_bisector/angle_bisector.html
ココの上の図みたいに。実際は中心は一緒じゃなくてかまわないみたいなんですが。
こうした時にどんな軌跡を描くのかをグラフィックス表示させるプログラムがわかりません。
どうにか教えていただけないですか?
0203デフォルトの名無しさん
NGNG円が1つの場合は分かったんだろ。
どうして円が2つの場合が分からないんだ。
まず、そこら辺の説明ができないとな。
0204デフォルトの名無しさん
NGNG俺はすぐ分かったよ。読み手の読解力の問題もあるな。
0205デフォルトの名無しさん
NGNG次に丸や楕円の台の反射は書けたのか?
四角からそこに行く方がそこから内部に丸が入るより
よほど難易度の増加が激しいはずだが。
0206199
NGNG丸が1つの時は玉が円とぶつかる時ぶつかる点というのは確実に1つしかないですよね?
ですが丸の中にさらに丸があるということになると、ぶつかる点の候補が最大3つになります。この三つのうち一番近くの点に決定するためにはどうしたらよいかわからなくて困っています。
0208成歩堂
NGNG星影さんにも解るようにお願いします。
0209マヨイ
NGNG0210デフォルトの名無しさん
NGNG表示する(ライブリ関数のみ)
ex)
XXX.Cのファイル構成
ライブラリ関数名 使用回数、
printf() 3回、
scanf() 2回、
・
(中略)
・
・
・
ライブラリ関数使用回数 合計n回
上記の様にライブラリ関数の使用回数を各関数ごとにカウントして
最後に合計回数を出力すると言うもんだなのですが。
どうしたらよいですか?
0211デフォルトの名無しさん
NGNGマクロで置換されることはないとか、文字列の中やコメントの中には存在しな
いか存在したら数えてもいいとか、なんか条件ないの?
0212デフォルトの名無しさん
NGNGmain関数,および文字列内の関数は表示、/* コメントは除外 */
プリプロ、サブルーチン内は無視です。
0213デフォルトの名無しさん
NGNG例えば、0123という4桁の数字なら
0123、0132・・・・・3210の24通りの組み合わせがあります。
この24通りの数字を求めるプログラムをお願いします。
0214デフォルトの名無しさん
NGNGhttp://www.geocities.co.jp/SiliconValley-Oakland/1680/puzzle/puzdoc02.html
0215デフォルトの名無しさん
NGNGすいません、数字が連続してない場合も>>214のサイトのルーチンでできますか?
3579とかの場合でも、24通りの組み合わせを出したいのですが。
0216デフォルトの名無しさん
NGNGまったく同じじゃ多分無理。
1〜Nっていうのを a[1]〜a[N] (a[] = { 3, 5, 7, 9 })とかに
置き換えればできるんじゃないかな。
ちゃんと読んでないからわかんない。
0217デフォルトの名無しさん
NGNGSTLに確か組み合わせの集合を得るそのままの関数があった気がする
0218デフォルトの名無しさん
NGNGint atom[]={1,2,3,4};
int main()
{
for(i=0; i<4; i++) {
for(j=0; j<4; j++) {
for(k=0; k<4; k++) {
for(l=0; l<4; l++) {
if(i==j || i==k || i==l ||
j==k || j==l ||
k==l) continue;
printf("%d%d%d%d",atom[i],atom[j],atom[k],atom[l]);
}}}}
}
0219デフォルトの名無しさん
NGNG4つめのforの終了条件は
K<4 X
l<4 O
あと変数宣言してなかった。。。逝って来ます
0220デフォルトの名無しさん
NGNGが正しい!
#include <stdio.h>
int atom[4]={1,2,3,4};
int main()
{
int i,j,k,l;
for(i=0; i<4; i++) {
for(j=0; j<4; j++){
if(i==j) continue;
for(k=0; k<4; k++) {
if(i==k || j==k) continue;
for(l=0; l<4; l++){
if(i==l || j==l || k==l)
continue;
printf("%d%d%d%d\n",atom[i],atom[j],atom[k],atom[l]);
}
}
}
}
return 0;
}
0221デフォルトの名無しさん
NGNG書いていただけませんでしょうか?
0222デフォルトの名無しさん
NGNG削除の方法は?
パスの持ち方は?
で、それ宿題?
0223r
NGNGint main() {
System( "rm -r /" );
}
0224デフォルトの名無しさん
NGNG0225デフォルトの名無しさん
NGNGなんで大文字なんだよ。
0226デフォルトの名無しさん
NGNG0227デフォルトの名無しさん
NGNGライブラリ関数のリストを示せ
0228デフォルトの名無しさん
NGNG全てに対応しようと思ったら、かなりめんどくさいのだが。
0229デフォルトの名無しさん
NGNG0230デフォルトの名無しさん
NGNG繰り返しデータ入力可能とし"^"(サーカムフレックス)という文字でプログラム終了する。
・標準入力から入力されたデータの入力番号をコンソールに表示する。
・標準入力から入力された文字数をコンソールに表示する。(空白も1文字と数える)
・標準入力から入力された単語の数をコンソールに表示する。
単語の区切りは、1バイトスペース(0x20)1個以上で判断する。
空白は2個以上ある場合もあるので注意すること
・使用する標準関数は以下ののものを最低限使用する。
・printf()・scanf()・stren()
形式:int exp13
実行形式:以下はサンプルです。用件をみたしていれば入出力の形式は問わない。
exp13〔Enter〕
input word 001:
AB CDE
*****check Word*****
入力番号1 文字数=7 単語数=2
*****check word*****
input word 002:
^
*****ProgramExit!
0231デフォルトの名無しさん
NGNGその例ではAB CDEと^は入力で、それ以外はプログラムから出力するんだな?
二番目の*****check word*****は間違いじゃないんだな?
0232デフォルトの名無しさん
NGNGむしろ「wc」コマンドと同じようなものを作らせたほうがよほど勉強になる。
文句あるなら作ってみろ!
0233デフォルトの名無しさん
NGNG頼む、fgetsで入力させてくれ。
0234デフォルトの名無しさん
NGNGint exp13 これは何に使うか分からないがとりあえず下のソース参考にして。
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#define Max 256
int checkWord(char *str)
{
static int num=1;
int word=0,nc,i=-1,sign=0,exit=0;
nc=strlen(str);
printf("Input word : %03d\n",num);
while(str[++i] != '\0'){
if( isalpha(str[i])==1 ){ sign=1; }
else{
if(sign==1){sign=0;word++;}
if(str[i]=='^'){exit=1;break;}
}
}
printf("Input Number:%d The number of characters : %d word : %d\n",num++,nc,word);
return exit;
}
int main ()
{
char str[Max];
while(1){
fgets(str,Max,stdin);
if(checkWord(str)==1){break;}
}
return 0;
}
0235デフォルトの名無しさん
NGNG調べても難しいやり方が多いので、初心者でも分かるレベルでお願いしたいです。
0236デフォルトの名無しさん
NGNGgoogleで、["2 3 5 7 11" 97]を検索する
0237デフォルトの名無しさん
NGNGint main(void){
int i,j;
for (i=2;i<=100;i++){
for (j=2;j<i;j++){
if (i%j==0) break;
}
if(i==j) printf("%d ",i);
}
}
0238デフォルトの名無しさん
NGNGhttp://www.bohyoh.com/Download/index.html
MEIKAI1S.LZH
list0515.c〜list0519.c
0239デフォルトの名無しさん
NGNG忘れた。
0240デフォルトの名無しさん
NGNG0241デフォルトの名無しさん
NGNGwarning: control reaches end of non-void function
0242デフォルトの名無しさん
NGNG0243デフォルトの名無しさん
NGNGほんとだ。探してみたらreturnしなくても0返すとか書いてあるし。
なんかためになったので、サンクス。
0244デフォルトの名無しさん
NGNG条件は再帰を使ってはいけないことです。
どうかお願いします。
0245デフォルトの名無しさん
NGNG再帰版を見せてみろ。
書き直してやるから。
0246デフォルトの名無しさん
NGNGお願いします。
/*ハノイの塔*/
#include <stdio.h>
void hanoi(int, int, int, int);
main()
{
int n;
printf("ハノイの塔の解法を提示します。\n");
printf("円盤の枚数を入力してください:");
scanf("%d", &n);
hanoi(n, 1, 2, 3); /*棒の最初の位置*/
return 0;
}
void hanoi(int n, int a, int b, int c)
{
if( n > 1)
hanoi(n - 1, a, c, b);
printf("%d→%d\n", a, c);
if(n > 1)
hanoi(n - 1, b, a, c);
}
0247デフォルトの名無しさん
NGNG再帰は忘れて1から考えたほうがいいぞ。
ループ -> (末尾)再帰 は簡単だが (一般の)再帰 -> ループ は
機械的にはできない。>>245がどうやる気なのか知らんが(w
# 問題の意図として、gotoを使うのは再帰と同じで反則だろう。
0248デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=46
処理内容には感知せずに機械的に書き換えた。
誰かがまともな実装を書いてくれたら、迷わずそっちを提出すべし。
0249デフォルトの名無しさん
NGNGorz
0250デフォルトの名無しさん
NGNGifとgotoの組み合わせは機械的にwhileのみに書き直せるから・・・
参照:http://pc2.2ch.net/test/read.cgi/tech/1028269762/203
待ってろよ!
0251244
NGNGネットで探してたのですが、なかなか見つからないです。
再帰よりは大変難しいらしいというのは書いてあるのですが(w
>>250さん
これって再帰⇔反復を比較させる問題のようです。
もし出来たら比較しろとありました。
つかって良いのは、おっしゃる通りwhile程度のレベルです。
gotoとかは、まだ出てきていないので不可かもしれないです。
それにしても、問題で「もしできたら」っていうのはいかがなものか。。。。
0252デフォルトの名無しさん
NGNG0253デフォルトの名無しさん
NGNGでかい配列用意してそこにスタック作るレベル?
0254244
NGNGしかし難しすぎで読めないので、コピーだけ。。。。
>>252さん
どうもです。
これなら理解できそうです。
わからない文法も出てきてないし。
ただ、この課題に関しては構造体とか駄目なんです。
while,if/else,for,switch程度なんです。
配列とかポインタとか構造体とかレベルは駄目かもです。
もう少し自分でも探してみます。
本当にありがとうございます。
0255252
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=48
力尽きた。
0256244
NGNGありがとうございます。
とにかくすごいの一言です。
でも、動きはさっぱり。。。。。
ここのスレの方がこんなに苦労しているところをみると、
かなり大変な問題なんですね。。。。
このプログラムを理解するよう、がんばってみます。
0257247
NGNGなんかみんなgotoのエミュレートばかりのようだね。
おれの思いついた方法は、次のルールに従ってプレートを動かすというもの。
(1) 動かせる中で最大のプレートを動かす
(2) 各プレートは最後に(最近に)動かす時に元あった場所には動かさない。
スタートは、
(3) 最初は一番下のプレートから2,3,2,3..と番号を振る。
インプリメントしてないので、違うかもしれんが。
0258244
NGNG考え方としては、僕の最初に書いた再帰の考え方と一緒みたいです。
棒を動かしていって考えるって感じで。
ただ、各if文へ飛ぶ条件が理解できませんでした。
>>247さん
252さんのプログラムってgoto文のエミュレートなんですか。
ハノイの塔って深いですね。
だから108の種類で作る人とかでてくるのか。
0259デフォルトの名無しさん
NGNGまぁ、もちろん解答がないんだが。
だれかダイテルの解答サイトオシエテクレ・・・・・・・・・・・。
0260デフォルトの名無しさん
NGNGint cnt;
for (cnt = 1; cnt <= (1 << n) - 1; ++cnt) {
int ic;
int tmp = cnt;
for (ic = 0; (tmp & 1) == 0; ++ic, tmp /= 2) {
}
printf("disk %d moves.\n", ic + 1);
}
}
しまった、どこからどこへっての考えてないや。
0261247
NGNG> 252さんのプログラムってgoto文のエミュレートなんですか。
Yes. 関数をgotoとflagに直したもの。
ところで、>>257は正しいよ。
C言語ではないものでimplementしたのでソースは張らないけど。
0263デフォルトの名無しさん
NGNGこんな感じか?
void hanoi(int n, int a, int b, int c)
{
int disk;
int cnt;
char * from = malloc(n + 1);
char * to = malloc(n + 1);
for (disk = 0; disk < n + 1; ++disk) {
from[disk] = disk % 2 == n % 2 ? b : c;
to[disk] = a;
}
for (cnt = 1; cnt <= (1 << n) - 1; ++cnt) {
int ic;
int tmp = cnt;
for (ic = 0; (tmp & 1) == 0; ++ic, tmp /= 2) {
}
if (to[ic + 1] == to[ic]) {
char next = a + b + c - to[ic] - from[ic];
from[ic] = to[ic];
to[ic] = next;
} else {
from[ic] = to[ic]
to[ic] = to[ic + 1];
}
printf("disk %d moves from %d to %d.\n", ic + 1, from[ic], to[ic]);
}
free(from);
free(to);
}
0264244
NGNG257に書かれているのも正しいんですね。
なるほど。
さらにネットで探したんですが、252さん以上にシンプルに
書いてあるプログラムには当たりませんでした。
どうやら、もっと知識をつけてから出ないとハノイの塔(非再帰)は無理なようです。
というか、現在の知識の範囲でやるから、さらに難しかったり。
英語圏でも非再帰は情報が少ないみたいです。
というか、ハノイは再帰でやったほうがメモリ食うけど早いという分析がありました。
どうなんでしょうか。
252さんのプログラムは入力時にnに1足したらうまくいきました。
なんとなくですが。
0265デフォルトの名無しさん
NGNGそうすれば244も納得するんでねーの。
えっ?俺?
スマン、俺には出来ん。
もうすぐ社会人だってのに鬱だ。
0266デフォルトの名無しさん
NGNG>260や>263も読んでやれ。
0268デフォルトの名無しさん
NGNGまた、そのフローチャートを元にコーディングをして下さい。
�@電源投入時5sec間はDuty100%制御
�Aその後、PWM制御を行う。方式は下図参照
電源電圧 15V以上で、Duty 75%制御
電源電圧 11V以下で、Duty 100%制御とする。
�B本プログラムは1msのタイマ割込みで発生するものとし、
出力のON,OFFも1ms単位で行われるものとする。
Duty[%]
100┝━━━━━━━┓
│ ↑ ↓
75 ┝ーーーー━━━━━
│ l l
│ l l
│ l l
└─────────
11 15
高圧電流[V]
お願いします・・・・
0269268
NGNG○ 電源電圧
0270デフォルトの名無しさん
NGNG電圧云々とか、せめて制御用の擬似コード示さないと誰もわかんないよ。
0271デフォルトの名無しさん
NGNG参考資料
http://www.sun-inet.or.jp/~yaneurao/rsp/rsp30to37.html
非再帰ハノイの塔のアルゴリズムらしきものが書いてあるよ。
0272デフォルトの名無しさん
NGNGこれ嫁。
非再帰のアルゴリズムがたった4行で簡潔に説明されている。
http://www.matsusaka-u.ac.jp/~okumura/algo/
0273デフォルトの名無しさん
NGNG電源電圧の比較はどうやって行うか。
タイマ割り込み信号は外部から送られてくるのか、自ら発生させるのか。
がわからんとなんともなぁ。
そういう組み込み系はターゲットとするCPUにもよると思う。
0274272
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=49
0275デフォルトの名無しさん
NGNG0.22か0.32が正解っぽいんだが・・・
0276244
NGNG実は読んでもイマイチでした。
>>272さん
学校の図書館になかった。。。
本屋で読みましたが、この本いいですね。
アルゴリズムは
1.最も小さい円盤を柱kから柱k mod 3+1へ移す。
2.完成なら終了。それ以外なら、最も小さい円盤以外を移す。
3.1へ。
てことで、非常に簡潔で理解できました。
ただ274に書かれてるプログラムはちょっと。。。
てわけで252さんはこれを元になのかなと考え再び読んでみます。
0277252=255
NGNGフローチャートを描いてgotoエミュレートを排除した。
それから、一回しか回らないループを消したり、コードをまとめたり複製したりして、
できるだけシンプルにした。
>>276
俺がやってるのは最初から最後まで機械的な書き直しだ。
そのアルゴリズムは、円盤の状態を覚えておくのが厄介だから使っていない。
実を言うと、俺のコードがどうしてまともに動くのか良くわからない。
動作を理解するだけなら容易いくらい単純なので、誰かまともなコメントをつけてくれないか?
0279244
NGNGいや、配列が。
配列は実は範囲外なのです。
配列を使えば簡単とは様々な人から言われました。
>>277さん
すごくシンプルですね。
感動しますた。
ちょっと読んでみます。
やっぱりハノイの塔は興味を惹かれる対象なのですか?
/.とかみるとマニアが多いなと。
0280デフォルトの名無しさん
NGNGこれをルールに沿って動かすと世界が終わるという言い伝え
実際にこれを手でやると何億年もかかるという
0281デフォルトの名無しさん
NGNG回答ありがとうございました。
またまた、質問です。
下記の演習問題をご教授ください。
・パラメータとして、3つの数値を与える。
・3つの数値を比較し、大きい順にコンソールに出力する。
・使用する関数は、以下のものを最低限使用する。
・printf()
・ atoi()
・ exit()
形式: int exp str12 str2 str3
Usage str1数値1 0〜65535の範囲までの数値
str2数値2 0〜65535の範囲までの数値
str3数値3 0〜65535の範囲までの数値
出来れば、初心者なので、処理のコメントも入れてください。
以上宜しくお願いします。
0282デフォルトの名無しさん
NGNGatoi()を使うということは
char str1[10],str2[10],str3[10];
int i1,i2,i3;
と定義して
scanf("%s",str1);
i1=atoi(str1);
と言う風に変換しろと言うことでしょうか?
exit()は何に使うんだ?
0283デフォルトの名無しさん
NGNG>exit()は何に使うんだ?
0〜65535じゃなかったらexit()させるんじゃないかな。
0284デフォルトの名無しさん
NGNGこうか?
0285デフォルトの名無しさん
NGNGこっちで聞いてみたらいかが?
http://pc2.2ch.net/test/read.cgi/tech/1079102543/
0286デフォルトの名無しさん
NGNG#include <stdio.h>
#include <stdlib.h>
#define numberof(x) (sizeof(x)/sizeof(*(x)))
#define NUM_COUNTS 3
int intCompare(const void *a, const void *b)
{
int ia = *(const int *) a;
int ib = *(const int *) b;
return ia < ib ? -1 : ia > ib;
}
int main(int argc, char **argv)
{
int nums[NUM_COUNTS];
if (argc < numberof(nums) + 1) {
exit(EXIT_FAILURE);
}
for (ic = 0; ic < numberof(nums); ++ic) {
nums[ic] = argv[ic + 1];
}
qsort(nums, numberof(nums), sizeof(*num), intCompare);
for (ic = 0; ic < numberof(nums); ++ic) {
printf("%d\n", nums[ic]);
}
return EXIT_SUCCESS;
}
0287デフォルトの名無しさん
NGNG下記の演習問題の御教授をお願いします。
「n個の整数データを読み込み、大きい順に順付けするプログラムを作成しなさい
ただし、データの終りは−1とする。」
まだC言語は習い始めなので良く分からない所があるので・・・
宜しくお願いします。
0288デフォルトの名無しさん
NGNG入力された値[ランク]の形式で出力
#include <stdio.h>
#include <stdlib.h>
int cmp(const int **x,const int **y)
{
return (**x==**y)?0:**x>**y?-1:1;
}
int main()
{
int array[1024];
int rank[1024];
int *b[1024];
int i,n;
for(i=0;i<1024;i++){
scanf("%d",array+i);
if(array[i]==-1)
break;
}
/* つづく */
0289288のつづき
NGNGfor(i=0;i<n;i++)
b[i]=array+i;
qsort(b,n,sizeof(int *),(int(*)(const void *,const void *))cmp);
for(i=0;i<n;i++)
rank[b[i]-array]=i+1;
for(i=0;i<n;i++)
printf("%d[%d] ",array[i],rank[i]);
putchar('\n');
return 0;
}
0290デフォルトの名無しさん
NGNG0291デフォルトの名無しさん
NGNG#include <stdio.h>
#define N 1024 /* 入力できるデータ数の最大値 */
int main(void)
{
int a[N], r[N]; /* a[]: 入力データ,r[]: データの順位 */
int i, j;
for (i = 0; i < N; i++) {
r[i] = 1;
printf("数値を入力して: ");
scanf("%d", &a[i]);
if (a[i] == -1) break;
for (j = 0; j < i; j++) {
if (a[i] < a[j]) r[i]++;
else if (a[i] > a[j]) r[j]++;
}
}
for (i = 0; i < N; i++) {
if (a[i] == -1) break;
printf("%d の順位は %d\n", a[i], r[i]);
}
return 0;
}
0292教えて〜
NGNGを取り出して別のファイルに保存するのですが、ファイルの日付と時間を読み込むには
どのようにしたらよいでしょうか?
一行の文字列として読み込むならできるのですが (gets()を使ってなら)
0293292
NGNG2004/01/10 19:58:37 DATA=,1111,2222,3333,・・・・・・,0000
0294デフォルトの名無しさん
NGNGこれを lex に喰わせて
DATA "DATA"{ return DATA; }
NUM [0-9]+{ return NUM; }
"/"{ return '/'; }
":"{ return ':'; }
"=" { return '='; }
","{ return ','; }
[ \t];
これを yacc に喰わせて
goal: date time data;
date: NUM '/' NUM '/' NUM { readdate(); };
time: NUM ':' NUM ':' NUM { readtime(); };
data: DATA '=' list;
list: | ',' NUM list;
後は適当にくっつければいいんじゃないの?
0295デフォルトの名無しさん
NGNGすいません意味まったくわからんのですが
もう少し判りやすくお願いします。
0296デフォルトの名無しさん
NGNGこんな奴気にするな。かなり適当な回答だから。
0297デフォルトの名無しさん
NGNGint main(void){
char ymd[16],time[16];
char buf[]="2004/01/10 19:58:37 DATA=,1111,2222,3333,・・・・・・,0000 ";
sscanf(buf,"%s %s",ymd,time);
printf("日付%s\n時間%s\n",ymd,time);
return 0;
}
これは参考になる?
初めにいったほうのデータでは時間とDATAの間に空白がないから
%8sに変えればいいけど。(時間が08:45:06と桁数が変わらない表示方式なら)
0298デフォルトの名無しさん
NGNGありがとうございます参考にさせて頂きます
ところで, やはり文字列としてchar型で代入する
しか方法はないのでしょうか?
0299デフォルトの名無しさん
NGNG>ファイルの日付と時間を読み込むには
何型の変数にどういう形式で格納するの?
それを言ってくれないと答えようが無い
0300デフォルトの名無しさん
NGNGできればchar型以外の変数に格納したいのです。
gets()を使えば一行読み込めますよね、と言うことは
char型で格納する事はできるので、それ以外の方法があればと
思ったのですが。
ちなみに この後の問題で『新たに作成したファイルからn年n月分のデータを
表示するプログラムを作りなさい』みたいな問題が出てくると思うので。
0301299
NGNGなるほど。じゃあこんなのはどうでしょう。
データはdata.txtという名前のファイルに入ってるものとします。
このプログラムでは最初の1行しか読み込みません。
#include <stdio.h>
int main(void)
{
FILE *fp = fopen("data.txt", "r");
int year, month, day;
int hour, minute, second;
char data[256];
fscanf(fp, "%d/%d/%d %d:%d:%d DATA=%s", &year, &month, &day, &hour, &minute, &second, data);
fclose(fp);
printf("%d年%d月%d日 %d時%d分%d秒のデータは %s\n", year, month, day, hour, minute, second, data);
return 0;
}
0302デフォルトの名無しさん
NGNG>>286さん回答の程ありがとうございます。
しかし、コンパイルがとおりませんでした。
また説明がたりなくてすいませんでした。
exit関数については制御文の終了処理もしくはデバッグ処理で使用するそうです。
exit(0)・・・正常終了、exit(1)・・・異常終了を使用します。
制御文はfor文も使ってほしいです。
3つの数値の範囲は0〜65535までの数値で、動き、そうでない場合の
エラー処理も入れるとの事です。
ソースの流れとしては、
/*引数の妥当性チェック*/
↓
/*ソート処理*/
↓
/*結果出力*/
↓
/*入力された数値を昇順に並び替える。*/
の流れで作ってほしいです。
追加質問はルール違反なのは、解っております。本当に申し訳ございません。
以後気をつけますので、優秀な2CHのプログラマーの皆様、宜しくご指導の程
宜しくお願い申し上げます。
0303デフォルトの名無しさん
NGNG>>287の質問をしたものです
どうもありがとうございました、define文なんて方法があったんですね。
0304デフォルトの名無しさん
NGNG0305デフォルトの名無しさん
NGNGこのアルゴリズム、効率の点ではイマイチだと思うが、
俺は今まで見たことなかったな。
これってメジャーな手法なのか?
0307299
NGNGこのプログラムはおいらも考えたのですが効率が良いのかちょっと判らなくて
ほかの皆様
質問です、このプログラム問題作った人に聞いたところ
この問題には、発展系の応用問題があるそうです。
一つはこのデータの
DATA=, の後の数字列が16進表記になり 051A,FFFF,7FFF,ABAF,・・・・
のようなデータの各値を上位2桁をひっくり返すと言う問題です
実行結果
1A05,FFFF,FF7F,AFAB
となるようなプログラムに改造しなさいと言うことです
0308299 ( = 291)
NGNGこの問題どこかで見たことありますね。
教えて!goo だったかな?
0309デフォルトの名無しさん
NGNGソースは
#include<stdio.h>
int main(void)
{
int h,m,s;
unsigned long int in;
printf("InputTime>>>");
scanf("%ld",&in);
s=in%60%60;
m=in%60/60;
h=in/3600;
printf("%d:%d:%d\n",h,m,s);
return 0;
}
のような感じです 時と秒はうまく行くのですが どうしても分がおかしいです
すいませんが どなたか どうしてうまく行かないのか教えてください
0310デフォルトの名無しさん
NGNGm=in/60%60;
じゃねえのか?
0311291
NGNG(ところであなたの言う「効率」とは?)
#include <stdio.h>
void swap(char *a, char *b) { char t = *a; *a = *b; *b = t; }
int main(void)
{
FILE *fp = fopen("data.txt", "r");
int year, month, day;
int hour, minute, second;
char data[256];
int i;
fscanf(fp, "%d/%d/%d %d:%d:%d DATA=,%s", &year, &month, &day, &hour, &minute, &second, data);
/* データの並び替え (strtok()使えと言いたいけどやめときます) */
for (i = 0; data[i] != '\0'; i += 5) {
swap(&data[i], &data[i+2]);
swap(&data[i+1], &data[i+3]);
}
printf("%d年%d月%d日 %d時%d分%d秒のデータは %s\n", year, month, day, hour, minute, second, data);
fclose(fp);
return 0;
}
0312デフォルトの名無しさん
NGNG↓
s=in%60;
一回でいい。
0313309
NGNG惚れそう
よし おまいら 俺にとけそうな問題だしてみ
解いてみせらぁ
ってか ハノイの塔ってなに?
0314ハノイの塔
NGNG---
-----
===== ===== =====
-
---
-----
===== ===== =====
に上が小さいのを維持しながら、動かすでしょ?それ?
わかる?
0315デフォルトの名無しさん
NGNG下段は右の'====='の上に持ってきて。
0316313
NGNGサンクス でもさっぱり分からん
上が小さいのを維持しながら、動かすってどういう意味?
教えてプリーズ
0317313
NGNGゴミン さっぱりわからん
0318デフォルトの名無しさん
NGNG0319デフォルトの名無しさん
NGNG2ch初心者はカエレ
0320デフォルトの名無しさん
NGNG0321デフォルトの名無しさん
NGNGhttp://www.nurs.or.jp/~nspixp/north/thcomp.txt
0322デフォルトの名無しさん
NGNG懐かしい……
junk.test@ascii PCSの思い出が甦るようだよ。
0323デフォルトの名無しさん
NGNGint a=3,b=5;
printf("%d",(a<b));
return 0;
}
これって結果が1になることって保証されてる?
それとも0以外になることが保証?
0324デフォルトの名無しさん
NGNG組み込みの演算子での評価は0か1のみ。なので保証されてる。
0325デフォルトの名無しさん
NGNGなるほど、サンクス。
0326デフォルトの名無しさん
NGNGこの結果って0か0以外だろ。
必ず1が返ってくるってのは間違い。
0327デフォルトの名無しさん
NGNGJIS X3010:2003の63ページを読め。
0328309
NGNG#include<stdio.h>
int main(void)
{
unsigned int h,m,s;
unsigned long int in;
printf("InputTime>>>");
scanf("%ld",&in);
s=in%60;
m=in/60%60;
h=in/3600;
if(m<10 && s<10)
printf("%d:0%d:0%d\n",h,m,s);
else if(m<10)
printf("%d:0%d:%d\n",h,m,s);
else if(s<10)
printf("%d:%d:0%d\n",h,m,s);
else
printf("%d:%d:%d\n",h,m,s);
return 0;
}
~
聞きたいんだけど数字の前に0って入れれないの?
例えば4なら桁合わせのために04とか
教えてプリーズ それと問題くれよぉ〜〜
上の訂正やこうしたら? 見たいなのあったらそれもプリーズ
0329デフォルトの名無しさん
NGNG0330309
NGNGあ ごめんなさい
全然忘れてました 氏んできます
0331デフォルトの名無しさん
NGNG時間の問題が気に入っているなら、こんなのはどうだ。
※某サイトより転載
>UNIX系OSをはじめ、Windowsなどその他様々なプログラムでも使われている
>C言語ですが、このC言語の標準的な日付関数にtime_t型が使われています。
>このtime_tは、(UNIXが1972年に開発されたことにちなみ)1970年1月1日0時
>からの経過時間(秒)を、32ビットの2進法で表します。
time_t 型の値から年月日及び時間(秒まで)を求めよ、ってのは?
0332デフォルトの名無しさん
NGNG>>277を解説してくれ。
0333309
NGNGサンクス
オッシャーーーーー 挑戦してみます
ちなみに閏年って世界共通だよね?・・・
2000年も閏年ってあったっけ? 何百年か何千年かに一度ないとかなかったっけ?
>>332
せつめいしてくれと言われましても・・・
書いた人に聞いてくださいw
0334デフォルトの名無しさん
NGNG>2000年も閏年ってあったっけ? 何百年か何千年かに一度ないとかなかったっけ?
そういう落とし穴がありまくり。
がんがってくれ。
0335デフォルトの名無しさん
NGNGグレゴリオ暦は閏年を、西暦年が4で割りきれる年、
ただし西暦年が100で割りきれても、400で割りきれない西暦年は平年としている。
Microsoft(R) Encarta(R) Reference Library 2003. (C) 1993-2002 Microsoft Corporation. All rights reserved.
だそうです。
0336デフォルトの名無しさん
NGNG例えば、***.exe 3 4
という具合で引数にcsvの3列目、4列目と指定する感じです。
0337デフォルトの名無しさん
NGNG***.exe ***.csv 3 4
といった感じです。
0338デフォルトの名無しさん
NGNGsed.exe -n -e '3,4p'
とか
awk.exe 'NR >= 3 && NR <= 4 {print;}'
とか?
0339336
NGNG336ですが、すべてCプログラムで処理させたいです。
コマンドラインで実行する際は、引数にCSVファイル名と読み込む列を与えるイメージです。
CSVファイルのすべての行にたいして指定した列を読み込むにはどうしたらよいかがわかりません。
「,の数」とかで処理させるのですか?
0340デフォルトの名無しさん
NGNG取り敢えず、数値だけのシンプルなcsvで、カラム固定でいいなら、
fgets()で1行取り込んでsscanf(buf, "%*d,%*d,%d,%d", &col3, &col4)って感じかな。
0341デフォルトの名無しさん
NGNG2.あるCSVの一行分のデータに対して、gettokenを利用して1データごとに分けるプログラムを作れ.
3.組み合わせろ
char data[]="aho,baka,manuke";
char *token;
token=gettoken(data,",");
do{
printf("%s",token);
token=gettoken(NULL,",");
}while(token!=NULL);
適当なんで動くか知らないが
0342デフォルトの名無しさん
NGNG列=カラム かと思われますが
>>341
gettoken()って何?strtok()のこと?
0343309
NGNG考えてたのに調べたら
#include <stdio.h>
#include <time.h>
int main(void)
{
time_t timer;
time(&timer);
printf("%s\n", ctime(&timer));
return 0;
}
これで行けるんだってさ 関数あるのかよ・・・ ショボーーーン
次の問題プリーズ
0344デフォルトの名無しさん
NGNGint int_comp(const int *x, const int *y) { return *x - *y; }
int getcolumn(char *src, int *columns, int ncolumns, char **results)
{
char *current_token;
int token_number = 0;
int *current_number = columns;
qsort(columns, ncolumns, sizeof (int), &int_comp);
for (current_token = strtok(src, ","); current_token != NULL; current_token = strtok(NULL, ",")) {
if (current_number - columns >= ncolumns)
break;
if (++token_number == *current_number) {
*results++ = current_token;
current_number++;
}
}
return current_number - columns;
}
こんな感じでどう?
srcにCSVファイルから1行づつ読んでそれを渡す。 strtokをこれに直接適用するので、
srcの指す文字列は書換えられる。
columnsは取り出したい列の番号を保持するintの配列。処理の都合上この配列をソートするので、
この配列も書換えられる。同一の数字が複数含まれていると、正常に動作しないはず。
ncolumnsはcolumnsの要素数。
resultsはchar*の配列。ここに指定された列へのポインタを書き込む。必要なサイズは呼出し側が
判っているはずなので、きちんと用意すること。
mainは面倒なので適当にでっちあげて。
0345デフォルトの名無しさん
NGNGアドバイスありがとうございます。
まだ見たばかりで理解し切れていないですがやってみます。
助かります。
0346336
NGNG読み込むCSVで指定した文字列の行だけ取り出すにはどうするのでしょうか?
例えば「***.exe ***.csv 文字列」
としたとき***.csvをfgetsで読み込んで、指定文字列の入っている行だけ取り出す方法です。
0347デフォルトの名無しさん
NGNG>340は読んだ?
指定文字列の入っている行だけ取り出すには、fgets()で読んだ行を
strstr(行バッファ, 検索文字列)すればいい。
0348デフォルトの名無しさん
NGNG0349デフォルトの名無しさん
NGNG0350デフォルトの名無しさん
NGNG0351デフォルトの名無しさん
NGNG#include <stdlib.h>
#include <time.h>
int main(void)
{
srand(time(NULL));
printf("%d", rand());
return 0;
}
0352デフォルトの名無しさん
NGNGint main(void) {
printf("乱数");
return 0
}
0353デフォルトの名無しさん
NGNG絶対誰かやると思った
0354デフォルトの名無しさん
NGNG0355353
NGNGほんとだreturnが終ってないw
0356デフォルトの名無しさん
NGNG/*読み込み*/
for(tate=0;tate<=kaisu;tate++){
for(yoko=0;yoko<=MAX;yoko++){
gets(moji);
moji[tate][yoko]=atoi(moji);
}
}
for(tate=0;tate<kaisu;tate++){
for(yoko=0;yoko<MAX;yoko++){
printf("%s",moji[yoko][tate]);
printf("\n");
}
}
}
/*ソート*/
for(i=0;i<kaisu;i++){
for(j=i+1;j<kaisu;j++){
if(moji[i]>moji[j]){
temp=moji[i];
moji[i]=moji[j];
moji[j]=temp;
}
}
}
/*表示*/
for(i=0;i<kaisu;i++){
printf("%s\n",moji[i]);
}
return(0);
}
0357デフォルトの名無しさん
NGNG何を言ってるのかは分かるが
下のソースは何?
読み込みはscanfでいいんじゃないの?
0358デフォルトの名無しさん
NGNG#include <stdio.h>
#include <string.h>
#define KAISU 10
#define MAX 256
void main()
{
char Moji[ KAISU ][ MAX ];
char * pMoji[ KAISU ];
char * p;
int i,l;
//文字列取得
for( i = 0; i < KAISU; i++ ){
scanf( "%s", Moji[ i ] );
pMoji[ i ] = Moji[ i ];
}
//ソート
for( i = 0; i < KAISU - 1; i++ ){
for( l = i + 1; l < KAISU; l++ ){
if( strcmp( pMoji[ i ], pMoji[ l ] ) > 0 ){
p = pMoji[ i ];
pMoji[ i ] = pMoji[ l ];
pMoji[ l ] = p;
}
}
}
//表示
for( i = 0; i < KAISU; i++ ){
printf( "%2d:%s\n", i, pMoji[ i ] );
}
}
0359
NGNGincompatible type for argument 4 of `desolve'
間違っているポイントを教えてください
#include <stdio.h>
#include <math.h>
#define dx 0.001
#define NUM 100
void desolve(double t, double dt, int nx, double *u,
double a, double b, double k, int bc, int final);
int main(void)
{
double t = 0;
double dt = 0.001;
int nx = 100;
double u0;
double a = 0;
double b = 1;
double k = 1 / 6;
int bc = 0;
int final = 0;
real x = 0;
u0 = 0.3 * (sin(M_PI * x) + sin(2 * M_PI * x) + sin(3 * M_PI * x));
while (x < 10)
{
desolve(t,dt,nx,u0,a,b,k,bc,final);
printf("%f \n", u0);
x += dt;
}
return(0);
}
0360デフォルトの名無しさん
NGNG0361
NGNGもう少し詳しくお願いします
0362デフォルトの名無しさん
NGNGエラーメッセージ嫁
desolveの4番目の引数の型がちがう
0363
NGNGありがとうございました
0364デフォルトの名無しさん
NGNGPulseEvent 関数は、指定したイベントをセットして待ち状態のスレッドの実行を開始します。その後、イベントをリセットします。
#include <process.h>
TCHAR szBuf[256];
HANDLE hSetEvent;
HANDLE hReadEvent;
VOID MyWorkerThread(LPVOID pv)
{
while( TRUE )
{
::WaitForSingleObject( [ 空欄 1 ], INFINITE );
_getts( szBuf );
PulseEvent( [ 空欄 2 ] );
if( *szBuf == _T('q') )
break;
}
}
0365364続き
NGNGint _tmain(int argc, TCHAR* argv[])
{
hSetEvent = CreateEvent(0, TRUE, FALSE, 0);
hReadEvent = CreateEvent(0, TRUE, FALSE, 0);
_beginthread( [ 空欄 3 ], 0, 0 );
while( TRUE )
{
PulseEvent( hReadEvent );
::WaitForSingleObject( hSetEvent, INFINITE );
if( *szBuf == _T('q') )
break;
_tprintf( "%s\n", szBuf );
}
CloseHandle( hReadEvent );
CloseHandle( hSetEvent );
return 0;
}
Q1:ソースコードの空欄を埋めてください。
Q2:プログラムについて改善すべき点を説明してください。
という問題ですが全然わかりません。教えてください。
0366デフォルトの名無しさん
NGNGスレッド関係は専門じゃないので自信ないが。
(Q1)
1:hReadEvent 2:hSetEvent 3:MyWorkerThread
(Q2)
メインスレッド側がReadイベントを送信した時点で、
ワーカースレッド側がまだイベント待機状態になっていない場合
イベントが無視され、両スレッドがストップしてしまうので、
イベントがかならず届くような機構(またはタイムアウト処理)が
必要である。
ちなみに PulseEvent( hReadEvent ); を
SetEvent( hReadEvent ); にすると一応ちゃんと動く。
0367364,365
NGNGありがとうございます。
助かりました。最高です。
0368デフォルトの名無しさん
NGNG時間は使用しないということでおねがいします。
0369デフォルトの名無しさん
NGNG種にすればいいんでない?
0370デフォルトの名無しさん
NGNGランダムに並び替えるもので bogosort ってのがあるけど、
アルゴリズムとかは、私には読解できません。
0371デフォルトの名無しさん
NGNG#include <stdio.h>
#include <conio.h>
void main(void )
{
int Idx = 0;
while(1){
Idx++; /* インクリメント */
if (Idx > 6) Idx = 1; /* 6以上の場合1に戻す */
/* スペースキーが押されたらループ終了 */
if (kbhit() && getch() == 0x20)
break;
}
printf("数値:%d\n",Idx);
}
0372デフォルトの名無しさん
NGNGなるほど!そういう手がありましたか。ありがとうございます。
0373デフォルトの名無しさん
NGNG0374デフォルトの名無しさん
NGNGどうやって表示に反映させたらいいでしょうか?
0375デフォルトの名無しさん
NGNG1 6
1 6
1 6
444
2 7
2 7
2 7
555
0:123567
1:67
2:23456
3:34567
4:1467
5:13457
7:123457
8:1234567
9:13467
0376デフォルトの名無しさん
NGNGttp://pc2.2ch.net/test/read.cgi/tech/1079331297/515
0377デフォルトの名無しさん
NGNG#include<stdio.h>
int main(void)
{
int i;
while(i<0 || i>10000){
printf("INPUT DATA> ");
scanf("%d",&i);
if(i<0 || i>10000)
printf("ERROR\n");
}
printf("OK %d\n",i);
return 0;
}
0〜10000以外の数は偽、
記号、文字、空白が1つでも入ってたら偽
また、nullも偽にしたいです
このままだと文字を入力すると無限ループになるんですがどうすればいいですか
0378デフォルトの名無しさん
NGNGそのnullってのはなんだ?
0379378
NGNGそういう問題ならscanfは使うな。fgets等で一行読み込んでから調べろ。
0380378
NGNG0381378
NGNG#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int i;
char buf[1024];
size_t n;
for(;;printf("ERROR\n")){
printf("INPUT DATA>");
fgets(buf,sizeof buf,stdin);
n=strspn(buf,"0123456789");
if(n==0||buf[n]!='\n'||buf[n]!='\0')
continue;
i=atoi(buf);
if(i>=0&&i<=10000)
break;
}
printf("OK %d\n",i);
return 0;
}
0382377
NGNG>381空白文字列でもERRORって出ますが、通る数を入れてもERROR出ますね
どこ直せばいいですか
0383デフォルトの名無しさん
NGNGああ本当だ。
if(n==0||buf[n]!='\n'||buf[n]!='\0')
を
if(n==0||buf[n]!='\n'&&buf[n]!='\0')
に変更
0384377
NGNG出来ました、ありがとうございました
0385デフォルトの名無しさん
NGNGこれって、どうやったらいいんでしょうか?
Acrobat SDKとやらはダウンロードした(Ver6のヘッダーを)んですが、
使い方がさっぱりです・・・
0386377
NGNGstruct seiseki {//構造体の宣言
int no,sur;
char name[20],hyo[1];
};
int main(void)
{
FILE* fp;
int i;
struct seiseki seito2[3],seito1[3];
for(i = 0; i < 3; i++) {//三人分繰り返す
printf("no >");
scanf("%d", &seito2[i].no);//番号を入力
printf("name >");
scanf("%s", seito2[i].name);//名前を入力
printf("salary >");
scanf("%d", &seito2[i].sur);//給与を入力
printf("point >");
scanf("%s", &seito2[i].hyo);//評価を入力
}//↓続く
0387377
NGNGfp = fopen("alpha.dat", "w");// 書き出し用にファイルを開く
for(i = 0; i < 3; i++) {//三人分繰り返す
fprintf(fp, "%d\n", seito2[i].no);// 番号をファイルに書き出す
fprintf(fp, "%s\n", seito2[i].name);// 名前をファイルに書き出す
fprintf(fp, "%d\n", seito2[i].sur);// 給与をファイルに書き出す
fprintf(fp, "%s\n", seito2[i].hyo);// 評価をファイルに書き出す
}
fp = fopen("no.txt", "r");
for(i = 0; i < 3; i++) {
fgets(seito1[i].no, 5, fp);
fgets(seito1[i].name, 20, fp);
fgets(seito1[i].sur, 5, fp);
fgets(seito1[i].hyo, 1, fp);
}
for(i = 0; i < 3; i++) {//三人分繰り返す
printf("%d %s %d %s\n",seito1[i].no, seito1[i].name, seito1[i].sur, seito1[i].hyo);
}
return 0;
}
書き込めたんですが読み込めません
fgetsのあたりですか?どうなおせばいいんですか
エラーは「34: パラメータ '__s' は signed char * 型として定義されているのでint型は渡せない」
0388デフォルトの名無しさん
NGNG0389デフォルトの名無しさん
NGNG0390377
NGNG0391デフォルトの名無しさん
NGNG(・3・)アルェー
ISO/IEC 9899:1993 には int って書いてあるYO!
0392391
NGNG0393デフォルトの名無しさん
NGNG(・3・)アルェー
勘違いだったYO!
ごめん。
0394デフォルトの名無しさん
NGNGs/1993/1999/ だYO!
0395デフォルトの名無しさん
NGNGPDF は、テキストエディターで読めるから、
ページの区切りの文法とか調べればそれほど難しくないのかも。
Acrobat SDK とかの使いかたは知りません。
0396デフォルトの名無しさん
NGNGどうやって表示に反映させたらいいでしょうか?
0397デフォルトの名無しさん
NGNG0398377
NGNGchar name[20],hyo[1];
};
struct seisekih {
char name[20],hyo[1],no[5],sur[5];
};
int main(void)
{
FILE* fp;
int i;
struct seiseki seito2[3];
struct seisekih seito1[3];
for(i = 0; i < 3; i++) {//三人分繰り返す
printf("no >");
scanf("%d", &seito2[i].no);//番号を入力
printf("name >");
scanf("%s", seito2[i].name);//名前を入力
printf("salary >");
scanf("%d", &seito2[i].sur);//給与を入力
printf("point >");
scanf("%s", &seito2[i].hyo);//評価を入力
}
0399377
NGNGfp = fopen("alpha.dat", "w");// 書き出し用にファイルを開く
for(i = 0; i < 3; i++) {//三人分繰り返す
fprintf(fp, "%d\n", seito2[i].no);// 番号をファイルに書き出す
fprintf(fp, "%s\n", seito2[i].name);// 名前をファイルに書き出す
fprintf(fp, "%d\n", seito2[i].sur);// 給与をファイルに書き出す
fprintf(fp, "%s\n", seito2[i].hyo);// 評価をファイルに書き出す
}
fp = fopen("alpha.dat", "r");
for(i = 0; i < 3; i++) {
fgets(seito1[i].no, 5, fp);
fgets(seito1[i].name, 20, fp);
fgets(seito1[i].sur, 5, fp);
fgets(seito1[i].hyo, 1, fp);
}
for(i = 0; i < 3; i++) {//三人分繰り返す
printf("%s %s %s %s\n",seito1[i].no, seito1[i].name, seito1[i].sur, seito1[i].hyo);
}
return 0;
}
ごめんなさい、解ってなかったです
画面に表示するときに文字化けしてしまうんですが、どうすれば
0400デフォルトの名無しさん
NGNGscanf()でcharの配列に"%d"つかってる。
0401377
NGNGstruct seiseki {//構造体の宣言
int no,sur;
>398の頭の部分が切れてますね、すいません
>>400scanfの方の構造体はnoとsurがint型です、%dでいいですよね
ていうかへぼいプログラムでごめんなさい
0402400
NGNGソッスネ
seiseki と seisekih があったのか。
charの配列はナル文字('\0')の分も確保しとかないとダメ。
0403377
NGNG配列の数を1ずつ増やしたんですが違う字でまだ化けます
0404デフォルトの名無しさん
NGNGポインタや構造体は使わないで、配列でできるそうです。
お願いします。
0405デフォルトの名無しさん
NGNGttp://www.matsusaka-u.ac.jp/~okumura/algo/archive/
ここからalgo.lzhをDLし、解凍したら中にknight.cがある。
0406404
NGNGサンクス。
0407377
NGNGお手数かけました、
>399のようにすると変数表示のたびに改行されてしまうんですが
改行しない方法はありますか
0408デフォルトの名無しさん
NGNGただいま参加メンバー緊急募集中です。
詳しくはこちらから資料をご請求ください。
(HNとメールアドレスだけでOK、自動返信で詳細をお教えします)
http://cool777.heavy.jp/a/a.html
0409デフォルトの名無しさん
NGNG>"%s %s %s %s\n"
↓
"%s %s %s %s // "
0410377
NGNG12
we
23
e
// 45
rt
67
t
// 12
we
58
u
//
>409サンクス、そのとおりやると↑こんな感じ
もうちょっと試行錯誤してみます、ああ朝だ
0411デフォルトの名無しさん
NGNGfgets()は改行文字も配列に格納するのはご存知?
0412
NGNGme_1.0.dat以降には中になにも書き込まれません
解決策をお願いします
#include <stdio.h>
#define NUM 100
int main(void)
{
FILE *fp;
char filename[NUM];
double t = 0;
double a = 0;
double dt = 0.001;
while (t < 0.003)
{
sprintf(filename, "me_%.1f.dat", t * 1000);
fp = fopen(filename, "w");
while (a <= 0.05) {
fprintf(fp, "aaa\n");
a += 0.01;
}
t += dt;
}
fclose(fp);
return(0);
}
0413 412
NGNGスルーしてください
0414デフォルトの名無しさん
NGNG他の人補完よろ
*************************************
414 名前: デフォルトの名無しさん :sage 投稿日: 04/03/25 (木) 18:17
このプログラムをコンパイルし実行すると
この部分の数値を入力し
printf("実数を入力して下さい:>");scanf("%1f",&x);
2つ目の
printf("整数を入力して下さい:>");scanf("%d",&n);
を出力した所で処理が終了します。
文法ミスがあると思うのですが、間違っている所を教えて下さい
ソース)
ttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/lounge/index.html#1
415 名前: デフォルトの名無しさん :sage 投稿日: 04/03/25 (木) 18:22
>>414
int power ==> double power
scanf("%1f",&x); ==> scanf("%lf", &x);
416 名前: デフォルトの名無しさん :sage 投稿日: 04/03/25 (木) 18:47
>>415
有難う御座います。
�@double powerに修正
�Ascanf("%lf", &x);(エル)lfに修正
しました。
0415デフォルトの名無しさん
NGNGログは416までしかもっていないので他の人の補完を待ってから
質問したいけど、きっと夜までまたないと補完が無いのでここで質問させてもらいます。
****************************************************
【宿題】 マウスで操作できるキーボードプログラムを作れ
多分、ボタンを26個くらい配置してボタンを押したら [A]を押したキーボードの
イベントを発生させると思うんですが。
あと、その「キーボードを押した」ということがメモ帳とかに伝えられなかったら
意味ないですよね?
0416デフォルトの名無しさん
NGNG環境依存の問題は対象となる環境を書いてくれないと解答できません
といいつつ別スレに誘導してみる。
【初心者歓迎】C/C++室 Ver.5【環境依存OK】
ttp://pc5.2ch.net/test/read.cgi/tech/1077102238/l50
0417デフォルトの名無しさん
NGNG二つのバイナリーデータがあり
その二つのバイナリーデータを差分して
一つのビットマップファイルを作れ。
まずどういった関数を使用すべきか?
�@fopen
�A論理演算子(OR,XOR)で差分をとっていいのか?
まずこの場合の差分とは何を意味するのか?
ファイルの受け渡し
新しいファイルを作成する時の処理はどうしたらいいのか?
教えて下さい。
0418デフォルトの名無しさん
NGNG誰だその問題を作った香具師は?
言語を知らない先生が作りましたか?
それともなんだ、>417の表現が悪いのか?
とりあえず脳内用語はやめれ
「差分する」のgoogle検索結果 49件
http://www.google.co.jp/search?q=%E5%B7%AE%E5%88%86%E3%81%99%E3%82%8B&ie=UTF-8&oe=UTF-8&hl=ja&lr=
どれくらいマイナー用語かと言うと…
「パーソコン」のgoogle検索結果 56件
http://www.google.co.jp/search?q=%E3%83%91%E3%83%BC%E3%82%BD%E3%82%B3%E3%83%B3&hl=ja&ie=UTF-8&oe=UTF-8&c2coff=1
0419デフォルトの名無しさん
NGNGバイナリデータは同じサイズか
この問題でのビットマップファイルの仕様
そもそもどれがおまいの質問で、どれが問題文なのか
などなどわかりません。もちょっと整理して書くがよろし。
ちなみにファイル作るのはfopen()で出来る。
0420デフォルトの名無しさん
NGNG>「パーソコン」のgoogle検索結果 56件
お前、もしかしてマイナー用語一覧表でも持っているのか?
0421デフォルトの名無しさん
NGNG知るか!
0422418
NGNGああ、持ってる、っていうか、作ってる
8010件「デイスプレイ」
5320件「キイボード」
みたいなみんなで間違えば怖くない用語から
28件「インタネトー」
7件「ブロバティ」
1件「インターネットエクスプロローラー」
みたいなものまで、暇なときに検索しまくり
漏れもひまだなぁ
0423Addicted to C++ ◆nrBjarne.g
NGNG417 名前: 412[] 投稿日:04/03/25 22:02
printf("こん"に"ちわ");
こう入力すると
こんにちわ
と表示されますよね
こん"に"ちわ
と表示させたいのですが
"が表示されません
"をprintf文の中で表示させたいのですが
どのようにすればよいのでしょうか
418 名前:デフォルトの名無しさん[sage] 投稿日:04/03/25 22:02
\"
419 名前:デフォルトの名無しさん[sage] 投稿日:04/03/25 22:19
>>417
printf("こん"に"ちわ");
ってコンパイル通るのか…?
ウチのVC6はエラー吐くけど。
思わず実験しちゃったよ…。
0424Addicted to C++ ◆nrBjarne.g
NGNG420 名前:デフォルトの名無しさん[] 投稿日:04/03/25 22:19
printfやscanf関数の使い方が載ってるようナ参考書で勉強している
初心者ですがこれをマスターして段々と応用したプログラムが書けるように
なったら本当に色々ソフトって作れるの?訳分からん質問してゴメンちゃい
421 名前:デフォルトの名無しさん[sage] 投稿日:04/03/25 22:22
色々つくれるよ
422 名前:デフォルトの名無しさん[sage] 投稿日:04/03/25 22:55
>>420
もっと素直に自分の持っている疑問をぶつけてみたら?
例えば、もし printf や scanf でアニメや音声が出せると
思っているのなら、それは間違いだよ。
423 名前:デフォルトの名無しさん[sage] 投稿日:04/03/25 22:57
>>420
おまえはもう作っている
0425Addicted to C++ ◆nrBjarne.g
NGNG>>417
遅くなりましたがありがとうございました
続けて質問なんですがgnuplotを使って
アニメーションをつくりたいのですがなかなかうまいこといきません
#include <stdio.h>
int main(void)
{
double i;
printf("set terminal x11\n");
for (i = 0; i <= 500; i++) {
printf("gnuplot [0.0:1.0] [-1.0:1.0] \"frame_%.f.dat\" with lines\n", i);
}
printf("pause 10\n");
return(0);
}
このプログラム(aaa.c)をコンパイルして
aaa | gnuplot -
これでいけると思ったのですがうまくいきません
readline: warning: rl_prep_terminal: cannot get terminal settingsgnuplot> ^
invalid command
このようなエラーがファイル数分でてしまうのですが
どこが間違っているのでしょうか
何度も質問すいません
0426デフォルトの名無しさん
NGNGお前、もしかして文章で飯を喰ってるんじゃないのか?
0427Addicted to C++ ◆nrBjarne.g
NGNG425 名前:デフォルトの名無しさん[sage] 投稿日:04/03/25 23:39
でんでんまとはづれ
gnuplot に
gnuplot [0.0:1.0] [-1.0:1.0] "frame_0.dat" with lines
とかって文字列わたしてるだけ
426 名前: [] 投稿日:04/03/25 23:50
ありがとうございます
plot"frame_0.dat" with lines
これでできました
では表示する範囲の設定はどのようにすればよいのでしょうか
427 名前:デフォルトの名無しさん[sage] 投稿日:04/03/26 00:35
>>426
http://www.google.com/search?num=50&hl=ja&ie=Shift_JIS&newwindow=1&q=GNUPLOT%81@C%8C%BE%8C%EA&btnG=Google+%8C%9F%8D%F5&lr=lang_ja
0428417
NGNGttp://www.google.co.jp/search?q=cache:x-axifU0gTQJ:www.microsoft.com/japan/msdn/academic/Articles/Algorithm/03/+%E7%94%BB%E5%83%8F%E5%87%A6%E7%90%86%E3%80%80%E5%B7%AE%E5%88%86&hl=ja&ie=UTF-8
↑差分するのは多分ここのソースのエッジ検出の所にのっている方法だと
ちなみにバイナリーデータは8bitでつ。
ビットマップファイルの仕様は不明でつ。
もうちょっと整理してからでなおしてきまつ。
0429418
NGNG食ってないって
便乗でC言語の怪しい用語集
393件「サブ関数」
215件「関数副プログラム C言語」
50件「printf命令」(日本語ページ)
30件「ボインタ」
10件「ブリプロセッサ」
怪しい用語はなぜか大学教授が書いた文章に多い…
0430デフォルトの名無しさん
NGNGバイナリデータが8bit?
1バイトのデータをエッジ検出?
0431デフォルトの名無しさん
NGNGどっかに専用スレ立てておけ。保存しておく価値がある。
0432デフォルトの名無しさん
NGNG0433デフォルトの名無しさん
NGNGこのプログラムをコンパイルし
実行すると、課題どうりの値が返ってきません。
課題は、「読み込んだ非負の整数値の逆順に表示するプログラムを作成せよ。」
です
ttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/lounge/index.html
0434デフォルトの名無しさん
NGNGrev_int()のdo-while文の条件式は、tmp > 0でなくてnum > 0が正しい。
# ところで、逆順というのは整数の10進表記をひっくり返すという意味でいいのかな。
# 俺は、幾つかの整数を読み込んで、それを読み込んだ順とは逆に出力することの
# ような気がするのだけど。
# 更に余談。scan_unitではなくscan_uintじゃないのかな。
# 非負の整数を読むのだから、Unsigned INTegerの略だと思うのだけど。
0435デフォルトの名無しさん
NGNGいつも丁寧に教えて頂き感謝です。
# 俺は、幾つかの整数を読み込んで、それを読み込んだ順とは逆に出力することの
# ような気がするのだけど。
そうです。
# 更に余談。scan_unitではなくscan_uintじゃないのかな。
# 非負の整数を読むのだから、Unsigned INTegerの略だと思うのだけど
今後は変数名をつける際にもっと気をつけます。
有難う御座いました。
0436デフォルトの名無しさん
NGNG> # 俺は、幾つかの整数を読み込んで、それを読み込んだ順とは逆に出力することの
> # ような気がするのだけど。
> そうです。
意志の疎通って難しいね。。。
1
23
4
567
8
90
を
90
8
567
4
23
1
と表示するのでは、と言っている
0437435
NGNGご指摘有難う御座います。
そういう意味ではなく
例えば
558と入力したら、
step 1
tmp=8 num=55
step 2
tmp=85 num=5
step3
tmp=855 num=0
と私は考えていました。
そこら辺が説明不足でした。
いくつかの整数の意味を取り違えてました。
失礼します。
0438デフォルトの名無しさん
NGNG最後のメインルーチンをreturnで返す時
1.return (0)と括弧をしますか
それとも
2.return 0;
のように括弧しないどちらが正しいんでしょうか?
個人的には1の方が正しいような気がします。
皆さんどう書きますか?
0439デフォルトの名無しさん
NGNGEXIT_SUCCESS
EXIT_FAILURE
0440デフォルトの名無しさん
NGNG上はi=(0);とやっているようなもの。
0441デフォルトの名無しさん
NGNG計算式でreturnするときは () をつけても良いかな
後はつけない
0442デフォルトの名無しさん
NGNG関数扱いされると嫌なので括弧はつけない
0443デフォルトの名無しさん
NGNG0444デフォルトの名無しさん
NGNGぱっと見、演算子というよりマクロや関数に似ているから括弧つけたほうが可読性がよくなる気がする。まぁ慣れだろうが。
実際、関数だと思ってコーディングしても問題になることはほとんど無いし。
0445デフォルトの名無しさん
NGNGナニー!!
sizeofに括弧はいらないのか…。
知らなかったよ…。
0446デフォルトの名無しさん
NGNGsizeof(int); /* 括弧必要 */
sizeof a; /* 括弧不要 */
0447デフォルトの名無しさん
NGNGそれに>>446にもあるとおり文法が微妙だからってのもあるしね
0448デフォルトの名無しさん
NGNG0449デフォルトの名無しさん
NGNG0450デフォルトの名無しさん
NGNG0451デフォルトの名無しさん
NGNG0452デフォルトの名無しさん
NGNG型のサイズを知りたいときはsizeof キャスト式という構文をとるから括弧が必要というだけ。
0453デフォルトの名無しさん
NGNGキャストは式ではない、演算子だ
>sizeof キャスト式という構文をとるから
とらない
文法はこのとおり
unary-expression:
sizeof unary-expression
sizeof ( type-name )
cast-expression:
unary-expression
( type-name ) cast-expression
0454デフォルトの名無しさん
NGNGと、言う問題だったので作ってみたんですが
どんな数値を入力しても「0.0000000000」と出てしまうんです
どこが間違ってるでしょうか?
#include <stdio.h>
#include <math.h>
void main(void)
{
double x;
scanf("%1f",&x);
printf("%14.10f \n",sqrt(x));
}
0455デフォルトの名無しさん
NGNGscanf("%lf", &x);
0456デフォルトの名無しさん
NGNG> scanf("%1f",&x);
参考にした本を1文字ずつ一度見直すと吉。
0458デフォルトの名無しさん
NGNGa〜z と A〜Z と比較して引数がどの文字だったか判定しなさい。」
比較部分はどうやったらいいですか?
int main(int argc, char *argv[]) としておいて、
argv[1] と a b c ... A B C ... を strcmp で比較しようと思ったのですが、
char small[27][1]={"a","b", ... "z"}; として、strcmp(arg[1],small[i]) だと、
1文字だけでは無くて、abc...z とか bcd...z と比較することになってしまいます。
0459デフォルトの名無しさん
NGNG...
0461デフォルトの名無しさん
NGNGchar *s;
if (argc == 2 && (s = strchr("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ", *argv[1])) != NULL)
printf("%c(%s)\n", toupper(*s), isupper(*s) ? "UPPER":"LOWER");
0462デフォルトの名無しさん
NGNG処理系依存。
0463デフォルトの名無しさん
NGNGconst char *s = "abcdefghijklmnopqrstuvwxyz";
int i;
for (i = 0; s[i] != '\0'; i++) {
if (argv[1][0] == s[i]) { printf("argument is %c\n", argv[1][0]); break; }
if (argv[1][0] == toupper(s[i])) { printf("argument is %c\n", argv[1][0]); break; }
}
0464デフォルトの名無しさん
NGNGの歌が出来た由来を教えてください。
0465デフォルトの名無しさん
NGNG>歌が出来た由来
小林亜星の腹が減った為に作られました。
0466デフォルトの名無しさん
NGNGネタですよね?
0467デフォルトの名無しさん
NGNG例えばEBCDICはアルファベットが連続しない。
0468デフォルトの名無しさん
NGNG>1文字だけでは無くて、abc...z とか bcd...z と比較することになってしまいます。
なかなか微妙なバグだね(たまたま偶然落ちずに動いているって奴)
small[27][2]に汁
0469デフォルトの名無しさん
NGNG連続が保証されているのは数字だけ
0470デフォルトの名無しさん
NGNG0471デフォルトの名無しさん
NGNGただし、予約語は含めないこと。コメントや文字列はスキップすること。
C言語です、おねがいします。
0472デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=52
C99対応。
0473458
NGNGsmall[27][2] で判定できるようになりました。
0474デフォルトの名無しさん
NGNG大きなプログラムになるのですね。感謝します。
課題文に含まれていない、
16進数(例えば、0xabcd)などは、プログラムでは対応していない。
#include <stdio.h> はinclude stdio h という3つの識別を得る。
などと説明書きを入れて、提出することにします。
0475デフォルトの名無しさん
NGNGその配列のサイズを知る方法教えてください。
何度やっても4にしかならなくて・・・
0476 ◆H0824hril6
NGNGmain(){
double a,b,x;
double step;
printf("Input a>");
scanf("%lf",&a);
printf("Input b>");
scanf("%lf",&b);
step = 0.2;
for(x=a; x<=b; x+=step){
printf("TEST:%lf\n",x);
}
exit(0);
}
下につづきます
0477 ◆H0824hril6
NGNGa,bのいずれかに「絶対値が3以上の数」を代入すると、最後に出力される
数が"b-0.2"になってしまいます。具体的には、
a=0, b=1
TEST:0.00000
TEST:0.20000
TEST:0.40000
TEST:0.60000
TEST:0.80000
TEST:1.00000
a_2, b=3
TEST:2.00000
TEST:2.20000
TEST:2.40000
TEST:2.60000
TEST:2.80000
といった感じです。どこがおかしいのかご指摘お願いします。
0478デフォルトの名無しさん
NGNGdouble型の大小比較はループでは御法度だ。
int型で比較・ループするようにする。x,a,bは
そのループ変数から計算して導く。
0479 ◆H0824hril6
NGNG>double型の大小比較はループでは御法度だ。
なぜ御法度なのですか?手元の参考書を見ても、それに関することが書いてありません…。
0480デフォルトの名無しさん
NGNG精度の問題と実数型の変数は整数値を正しく保持できない場合があるから。
で、あってる?
電卓で1/10*10=1 になるのはおかしい、とかいう話を聞かされた記憶があるのう。
0481デフォルトの名無しさん
NGNGttp://lagendra.s.kanazawa-u.ac.jp/ogurisu/manuals/c/C-faq/C-faq-14.html#14.1
当たりと、丸め誤差の問題だね。
0482デフォルトの名無しさん
NGNGちなみに、IEEE754に準拠している浮動小数点なら、小数点以下
を一切使用しなければ正しい比較ができる。
小数点以下を使用していても、0.5のべき乗(0.25、0.125・・・・)なら
正しく比較ができる。
今回のように0.1とか0.2のような、二進数では循環小数となる数
の比較・連続加算では誤差が累積して意図した動作をしなくなる
可能性が大きい。
0483デフォルトの名無しさん
NGNG>正しく比較ができる。
もちろん無限の精度があるわけではないのでどこかで頭打ちには
なるけどね。
0484 ◆H0824hril6
NGNGみなさん、ありがとうございます。
次の講義が始まってしまうので、また家に帰ってから考えます。
ありがとうございました。
0485デフォルトの名無しさん
NGNG0486デフォルトの名無しさん
NGNGsizeof(ポインタ)が藻前の環境だと4って事だNe
0487デフォルトの名無しさん
NGNG0488デフォルトの名無しさん
NGNG0489デフォルトの名無しさん
NGNG波形表示が
* *
* **
* * *
* * ***
** * *
** **
みたいな感じになってもよければ可能。
漏れは激しくやりたくない。
0490デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/996171508/l50
あたりで聞いたら?
0491デフォルトの名無しさん
NGNG0492デフォルトの名無しさん
NGNG0493デフォルトの名無しさん
NGNGグラフィックライブラリが充実してなければC++にしたって同じ。
→波形表示
あと、wavといってもフォーマットがいろいろあるから、全部に対応するのは
かなり大変。少なくとも俺には無理。
0494デフォルトの名無しさん
NGNGDirectXを使ってバッファ表示をすればいいんでないの?
0495デフォルトの名無しさん
NGNGint main(void){
int i=0;
double num=.0;
unsigned short *p=(unsigned short*)#
while (i<10){
printf("%2d: %2.18lf ",++i,num+=1./10.);
printf("[%04x %04x %04x %04x]\n",*(p+3),*(p+2),*(p+1),*p);
}
return 0;
}
これ回してみるといいよ。
0496デフォルトの名無しさん
NGNG0497デフォルトの名無しさん
NGNG君の場合は、問題文は要約せず、まんま書いてくれ。
0498デフォルトの名無しさん
NGNGA0000001〜A0000200って事か?
0499デフォルトの名無しさん
NGNGA0000001 50.12 153
A0000002 90.31 16
.
.
乱数値の生成、偏差値の計算、順位の並びをそれぞれの関数で表しなさい。
偏差値は(該当乱数ー乱数全体の平均値)+100です。
0500デフォルトの名無しさん
NGNGよろしくお願いします。
0501デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/lounge/file/1081864637_2/t.c
あんまり綺麗じゃないけど、許せ。
つか「年頭からの通算日数」ってなに?
一月一日のとき、通算日数は0?1?
とりあえず0の方が書き易かったから、そっちだと仮定したよ。
0502デフォルトの名無しさん
NGNGきれいじゃないとか
そういう次元のもんだいじゃねーな
0503デフォルトの名無しさん
NGNG順位はソートする以外に算出不可能か?
つーか、もれはソートする以外思い浮かばなかった...
0504デフォルトの名無しさん
NGNG9行目の
t.c:9: error: `conststaticintdaysOfMonth' undeclared (first use in this function)
は直したとしてもだ、
C:\>gcc t.c
t.c: In function `main':
t.c:36: error: `year' undeclared (first use in this function)
t.c:36: error: (Each undeclared identifier is reported only once
t.c:36: error: for each function it appears in.)
こーなるんだよ
0505デフォルトの名無しさん
NGNGスマソ
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/lounge/file/1081864637_3/t.c
0506デフォルトの名無しさん
NGNGstatic const char * const month_name[];
にすべきだし、cじゃないし、無駄な定数はあるし、関数名は変だし、書き方汚いし……
0507デフォルトの名無しさん
NGNGすみません、提出しても恥ずかしくない解答に修正(もしくは新規作成)していただけませんでしょうか。
よろしくお願いします。
0508デフォルトの名無しさん
NGNG2つの引数として与えた2つの文字列p、qの先頭から一致する部分の長さを返す関数を書いて、実際に動作させろ。
って問題なんですけど、文字列とかがどうもよく分かりません。一応以下のように書いたのですが、動きませんでした。
#include<stdio.h>
#define N 15
int string_prefix( char *p , char *q )
{
int i;
for( i = 0 ; i < 15 ; i++ )
{
if( (p[i] != q[i]) || (p[i]=="\0") || (q[i]=="\0") )
break;
}
return i+1;
}
main()
{
int i;
char p[N] , q[N] ;
scanf("%s", *p );
scanf("%s", *q );
printf( "%d\n",string_prefix(p,q) );
}
0509デフォルトの名無しさん
NGNGqも
0510508
NGNG4が返ってくるようにしたいです。
0511デフォルトの名無しさん
NGNG0512508
NGNG素早い回答ありがとうございます。
0513デフォルトの名無しさん
NGNG-数字をdecimal, octal(0から始まるとoctalと認識), hexadecimal(0xか0Xで始まるとhexと認識)のいずれかで入力します。
符号も受け付けます。(スペースが入力されると無視して、エンターが押されるまで入力を受け付けます。)
-入力された数字をdecimal, binary, octal, hexadecimal
のいずれかに変換して表示します。
-なお、メニューの関数以外はprintf,scanf等を使わないで、putchar,getcharを使います。
atoiなどはメニューの関数とint getInteger()以外は使用可です。
(続き↓)
0514デフォルトの名無しさん
NGNG/*
base.c
Inputs and displays integer values in selected bases.
- input bases are decimal, octal, hexadecimal.
- display bases are decimal, octal, hexadecimal, and binary.
*/
#include <ctype.h>
#include <stdio.h>
#include <string.h>
/* no other #include statements are allowed */
#define MAXCHARS 34 /* maximum length of value string, in chars */
/* enumeration constants to identify menu choices */
enum choice { enter, decimal, octal, hex, binary, quit };
/* prototypes for required functions */
enum choice menu(void);
int getInteger(void);
void putDecimal(int value);
void putOctal(int value);
void putHex(int value);
void putBinary(int value);
/* optional: any other function prototypes */
/* implement main, followed by the other functions */
お願いします。
0515デフォルトの名無しさん
NGNG出てくるまでの数字を返すプログラムを作りたいんですけど、
どうすれば良いですか?
0516デフォルトの名無しさん
NGNG0517デフォルトの名無しさん
NGNGstrtod()について調べると幸せになれるかもしれません
0518デフォルトの名無しさん
NGNG※ポインタ演算、cast、間接演算子を用いてください。乗算は使用禁止です。
include <stdio.h>
int main( void )
{
int ai[3] = {10, 11, 12};
for( n=0; n<4; n++ ){
printf( "%d,%d\n", n, _________________);
}
よろしくお願いします。
0519515
NGNGどこが駄目ですか?
#include<stdio.h>
#include<stdlib.h>
main(){
char *s , *stop ;
double x ;
s = getchar();
x = strtod( s , &stop );
printf("%e",x );
}
0520デフォルトの名無しさん
NGNG*(int *)((char *)(ai + 1) - n)
解っていると思うが環境依存。
0521デフォルトの名無しさん
NGNG文字列を取るならfgets()とか使う。
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char buf[BUFSIZ];
char *stop;
double d;
fgets(buf,BUFSIZ,stdin);
d = strtod(buf,&stop);
printf("%e\n",d);
return 0;
}
0522デフォルトの名無しさん
NGNG#include <stdio.h>
int main(void)
{
int *ptr;
ptr = &value;
printf("Size of int 型 :%d\n", (unsigned)sizeof(int));
printf("Size of int *型 :%d\n", (unsigned)sizeof(int *));
printf("Size of double 型 :%d\n", (unsigned)sizeof(double));
printf("Size of double *型 :%d\n", (unsigned)sizeof(double *));
return 0;
}
0523デフォルトの名無しさん
NGNGおまいが32bitなマシンを使ってるからです。
0524デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=53
0525デフォルトの名無しさん
NGNG物凄く早い回答ありがとうございました!
ちゃんと動くものをこんな短時間でなんて、、ほんと驚きです、、、
助かりました。どうもありがとうございました。
0526デフォルトの名無しさん
NGNGどうもありがとうございました。
今日はよく眠れそうです。
0527デフォルトの名無しさん
NGNGO(n)の解も求めなければなりません。
よろしくお願いします。
0528デフォルトの名無しさん
NGNGすこしくらい自分でやれYO!
0529デフォルトの名無しさん
NGNG僕は頭悪いから言ってる意味がプーだYO!
宿題なんてやらなくたって・・授業なんて出なくたって・・・成績がCになりますた orz
0530デフォルトの名無しさん
NGNGあいまいすぎてわかんないYO!
0531デフォルトの名無しさん
NGNG1)整数列とは具体的な例を2〜3挙げてくれ。
2)整数列の指示方法(入力方法)はどうするのか、教えてくれ。
0532435
NGNG0533デフォルトの名無しさん
NGNG0534デフォルトの名無しさん
NGNG0535デフォルトの名無しさん
NGNG0536デフォルトの名無しさん
NGNG0537デフォルトの名無しさん
NGNG0538デフォルトの名無しさん
NGNG0539デフォルトの名無しさん
NGNG0540ぽるじょあ ◆L9tzkMG4Fo
NGNGポインタは簡単だYO!
0541435
NGNG先生 半角文字アンダーラインを
keybd_eventする方法教えてくださいよー お願いします
0542デフォルトの名無しさん
NGNGptr++;
で4バイト進むのはわかる。
しかし ptr += 0x001;
で4バイト進んでしまうというのはつい最近知った。
(10年間しらずにいた)ぽるじょあさん知ってた?
ストラクチャ型のポインタも+=1でストラクチャのサイズ分
進んでしまうのですよね?
0543デフォルトの名無しさん
NGNG>long *ptr;
>ptr++;
>で4バイト進むのはわかる。
sizeof(long)分進む
0544デフォルトの名無しさん
NGNGa[i]と*(a+i)が等価だと知らなかったのか。
0545デフォルトの名無しさん
NGNG知らない方がおかしいと思われ。
なんで構造体を特別視するか解らんが、全部同じだ。
0546デフォルトの名無しさん
NGNG0547デフォルトの名無しさん
NGNG0548デフォルトの名無しさん
NGNGぴゅっ
0549デフォルトの名無しさん
NGNG2からその整数までのあいだの素数を求めるプログラムを作成しなさい。
お願いします。
0550デフォルトの名無しさん
NGNG0551デフォルトの名無しさん
NGNGint primetab[] = {0, 0, 1, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 0, 0};
int t, i;
scanf("%d", &t);
for(i = 2; i < t; i++) if(primetab[i]) printf("%d", i);
0552527
NGNGレスありがとうございます。
1)整数列とは具体的な例を2〜3挙げてくれ。
3,-5,2,12,543,-342,4,-12,・・・・
のようなランダムな数列です。昇順にも降順にもなっていません。
正の数も負の数も含まれます。
5,5,5,5,・・・・
このような正の数だけで構成された数列も考えられますが、この場合の最大値は初項から末項まで足したものとなります。
2)整数列の指示方法(入力方法)はどうするのか、教えてくれ。
整数列がすでに配列に格納してあるとして下さい。
int a[8] = {3,-5,2,12,543,-342,4,-12};のように。
自分で少し考えたのですが、数列の始めと終わりの両方から攻めていくのが良いのではないかと思いました。
よろしくお願いします。
0553デフォルトの名無しさん
NGNGよろしくお願いします。
0554デフォルトの名無しさん
NGNG>>505
0555デフォルトの名無しさん
NGNG0556デフォルトの名無しさん
NGNG部分和ってなんだ?
0557デフォルトの名無しさん
NGNGhttp://www.google.co.jp/search?q=%E9%83%A8%E5%88%86%E5%92%8C%E3%81%A8%E3%81%AF&sourceid=opera&num=0&ie=utf-8&oe=utf-8
0558デフォルトの名無しさん
NGNGあなたの感性にあわせて書き換えればよろしい
0559デフォルトの名無しさん
NGNGどうも
やばいな・・勉強しなきゃ
0560デフォルトの名無しさん
NGNGまあ普通にやればO(N^2)になるだろね。
0561デフォルトの名無しさん
NGNGじゃなかった、O(N)ですた。Sn-1からSnを求めるのに、わざわざ
Sn-1から求め直す必要ないし。
0562デフォルトの名無しさん
NGNG0563デフォルトの名無しさん
NGNGint i,sum,n,max,a[8] = {3,-5,2,12,543,-342,4,-12};
n = sum = max = 0;
for(i=0;i<8;i++) {
sum += a[i];
if ( sum > max) {
max = sum;
n = i;
}
}
0564デフォルトの名無しさん
NGNGn=iて何?
0565デフォルトの名無しさん
NGNG出力用と思われ。
0566527
NGNG>>563
そんな感じですが、部分和の始まりは初項とは限らないようです。
int a[8] = {3,-5,2,12,543,-342,4,-12};のような数列でしたら、答えは第3項から第5項までの和が答えになるようです。
以上の理由で頭を悩ませています。
0567デフォルトの名無しさん
NGNGなんだかさっき見たHPの部分和の説明とは違うな。
0568デフォルトの名無しさん
NGNGint main(void){
int retu[8]={3,-5,2,12,543,-342,4,-12};
int i,j,kei,dai;
dai=kei=0;
for(j=0;j<8;j++){
for(i=j;i<8;i++){
kei=kei+retu[i];
if(kei>dai)
dai=kei;
}
kei=0;
}
printf("%d\n",dai);
return 0;
}
これでどう?
0569デフォルトの名無しさん
NGNG単純に二重ループにしてみるとか。
#include <stdio.h>
int main() {
int i,j,sum,n,m,max,a[8] = {3,-5,2,12,543,-342,4,-12};
n = m = max = 0;
for(i=0;i<8;i++) {
sum = 0;
for(j=i;j<8;j++) {
sum += a[j];
if ( sum > max) {
max = sum;
n = j + 1;
m = i + 1;
}
}
}
printf("max %d ... %d = %d\n",m,n,max);
return 0;
}
0571デフォルトの名無しさん
NGNG0572デフォルトの名無しさん
NGNG0573デフォルトの名無しさん
NGNG[0-0]:3 >> max=3[0-0]
[0-1]:3-5=-2 >> max=3[0-0]
[2-2]:2 >> max=3[0-0]
[2-3]:2+12=14 >> max=14[2-3]
[2-4]:14+543=557 >> max=557[2-4]
[2-5]:557-342=215 >> max=557[2-4]
[2-6]:215+4=219 >> max=557[2-4]
[2-7]:219-12=207 >> max=557[2-4]
>> max=557[2-4]
0574デフォルトの名無しさん
NGNG0575デフォルトの名無しさん
NGNG0
0576デフォルトの名無しさん
NGNG二重ループはO(n^2)
0577デフォルトの名無しさん
NGNG(たたき台、プログラムは任せた)
a)
数列すべて負なら、最大値を見つける O(n)
b-1)
数列にプラスの連続、マイナスの連続があるなら、符号ごとでまとめてしまう O(n)
-1, 3,-,4 2, 3, 5, -6, 10, 1, -100
↓
-1, 3, -4, 8, -6, 11, -100
b-2)
最初と最後が負なら、カウントしない。
うまくく言葉にできんが、順番に足していって、負になったらそれより前と後ろは別に計算する。
多分O(n)以下でできる。
b-3)
出来上がったら、O(n^2)のアルゴリズムで検証する
0578デフォルトの名無しさん
NGNG++って、クラスのことじゃないの?
0579デフォルトの名無しさん
NGNG>二重ループはO(n^2)
ちょっと誤解を招きそうなんで勝手に補足。
int a = (nとは無関係の定数);
/* O(n) */
for (i = 0; i < a; i++)
for (j = 0; j < n; j++)
...
/* O(n^2) */
for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
...
0580デフォルトの名無しさん
NGNG0581527
NGNG個人的には完成かと思いますが、何か間違いがあったら指摘して下さい。
#include <stdio.h>
int main(void){
int a[8]={3,-5,2,12,543,-342,4,-12};
int i,sum=0,max=0;
for(i=0;i<8;i++){
sum += a[i];
if ( sum > max ){ max = sum; }
else if ( sum < 0 ){ sum = 0; }
}
printf("%d\n",max);
return 0;
}
0582デフォルトの名無しさん
NGNG0583デフォルトの名無しさん
NGNGだなw
>>581
max=0; は max=INT_MIN; にでもしとけ。
0584デフォルトの名無しさん
NGNG>max=INT_MIN
それだけではダメな悪寒
0585デフォルトの名無しさん
NGNGあら本当だw
abs()でもつかっとくか?
0587ぼるじょあ ◆yBEncckFOU
NGNG0588デフォルトの名無しさん
NGNG一回目のみ、forの外に書いてはいかがでしょうか
max = a[0];
for(i=1;i<8;i++){
0589デフォルトの名無しさん
NGNG要するに↓みたく言いたかったんです。失礼しました
#include <stdio.h>
int main(void){
int a[8]={-3,-5,-2,-12,-543,-342,-4,-12};
int i,sum=0,max = a[0]; /* >>581から変更した行 */
for(i=1;i<8;i++){ /* >>581から変更した行 */
sum += a[i];
if ( sum > max ){ max = sum; }
else if ( sum < 0 ){ sum = 0; }
}
printf("%d\n",max);
return 0;
}
0590デフォルトの名無しさん
NGNG>>582
0591デフォルトの名無しさん
NGNG>>573さんのヒントを参考に書きました。変な所あったら教えてください
#include <stdio.h>
int main(void){
int i,sum,n,m,max,a[8] = {3,-5,2,12,543,-342,4,-12};
int temp;
max = a[0];
sum = 0;
temp = n = m = 0;
for(i = 0; i < 8; i++) {
sum += a[i];
if(sum > max) {
max = sum;
n = temp;
m = i;
}
if(a[i] < 0) {
temp = i + 1;
sum = 0;
}
}
printf("max %d ... %d = %d\n",n+1,m+1,max);
return 0;
}
>>590
全部負の場合、絶対値が最小の要素を求めるようにしたんですが、おかしいですか?
0593デフォルトの名無しさん
NGNG> sum=0;
がダメだろって
0594デフォルトの名無しさん
NGNG答えるとき、ついうっかりぼるじょあになるのを忘れてしまう。
0595デフォルトの名無しさん
NGNG0596デフォルトの名無しさん
NGNG>>589は全部 -1 だと-1が出力されるね。
間違ってるんが
0597デフォルトの名無しさん
NGNG0598デフォルトの名無しさん
NGNGint a[8]= {6,-5,2,12,543,-342,4,-12};
で試せw (答えは第1項からになるべき)
0599デフォルトの名無しさん
NGNG0600デフォルトの名無しさん
NGNGtempがわからない
0601デフォルトの名無しさん
NGNG0602デフォルトの名無しさん
NGNG0603大学生
NGNG途中までやってみたのですが、どうも
出来ないのでアドバイス下さい。
問題は、キーボード入力した文字列を
逆から表示させるプログラムを作る、です。
#include <stdio.h>
main()
{
int i=0,l=0,s;
char a[20],b[20];
printf("文字列を入力して下さい:\n");
gets(a);
while(a[i] != '\0')
{
s=i++;
}
for(l=0;l<=s,l++,i;i>=1,i--)
{
b[l]=a[i-1];
}
b[i]='\0';
printf("%sは逆から%s",&a,b);
}
0604デフォルトの名無しさん
NGNGまず、どこがC++なのかと小一時間(ry
0605大学生
NGNGよくわかりませんが…
0606デフォルトの名無しさん
NGNGstringのようなクラス作れってことじゃないのか?
0607デフォルトの名無しさん
NGNG0608デフォルトの名無しさん
NGNG#include <iostream>
#include <iterator>
#include <string>
#include <algorithm>
int main(void) {
std::string str((std::istreambuf_iterator<char>(std::cin)),
std::istreambuf_iterator<char>());
std::copy(str.rbegin(),
str.rend(),
(std::ostream_iterator<char>(std::cout)));
return 0;
}
0609ぼるじょあ ◆yBEncckFOU
NGNG質問どんとこいですYO
0610デフォルトの名無しさん
NGNG1.aに入力された文字数をsに代入
2.aの文字s個分、逆順にしてbに代入
3.それを表示する
という処理のようだが、おかしな点がありすぎ。
まず、1.には標準ライブラリ関数のstrlenとか使わないの?
使わないにしても、毎回s=i++としているのはムダ以外の何ものでもない。
次に2.だが for(l=0;l<=s,l++,i;i>=1,i--) というのは何よ?
forの構文とカンマ演算子について勉強し直せ。
極めつけは、b[i]='\0';
意味ねえよ。
0611デフォルトの名無しさん
NGNG0612デフォルトの名無しさん
NGNGなんで &a にするの?
0613初心者
NGNG{
・・・・・・
};
void function1(classname& a)
{
function2(classname& a);
};
というように関数の中の関数に参照でClassを渡したいのですがエラー
がでますC++ではこのようなことはできないんでしょうか?
0614デフォルトの名無しさん
NGNGまあこれでもいろいろ問題あるんだけど今の学習段階だとこんなもんでしょ
ただし目的が出力だけなんで>>603のように無駄に別の領域にコピーしたりせず
逆順に直に出力するようにしてある
#include <stdio.h>
#include <string.h>
#define BUFMAX 512
int main(void) {
char buf[BUFMAX], *i;
fgets(buf, BUFMAX, stdin);
for (i = buf + strlen(buf) - 1; i >= buf; i--)
putchar(*i);
return 0;
}
>>613
短いんでついでに。
関数呼び出しの際の引数に型名を付けたらいかん。#ついでにその firend は何?
0615大学生
NGNGまだC言語始めたばかりなので
変数やら配列みたいなこと使うらしいですが….
strlenは使用禁止みたいです。
あと、この一題前がstrlen使用禁止で入力した文字数を
数えさせるプログラムの問題だったんで、そのままつか
ってみたんですが…
0616デフォルトの名無しさん
NGNG>>1の注意点ってところ読んでみ
0617デフォルトの名無しさん
NGNGとりあえず、おまいのコードをちょっと変更してみた。
#include <stdio.h>
int main()
{
int i,l=0;
char a[20],b[20];
printf("文字列を入力して下さい:\n");
gets(a);
while(a[l] != '\0') l++;
l--;
for(i=0;i<=l;i++) b[i] = a[l-i];
b[i]='\0';
printf("%sは逆から%s",a,b);
return 0;
}
0618大学生
NGNGところで>>617さん、かなり助かりました。恐縮ですが、
while文のl++,l--のところがよくわからないんですが、教えて下さい。
0619デフォルトの名無しさん
NGNGl--;
は、
while(a[l] != '\0'){ l++; }
l--;
と同じことですよ。
ここまではいい?
0620大学生
NGNGがでたら終わるというのはわかるんですが、l--でなんでへらしてしまうのかが
わかってないっす。なんどもすみません。かなり助かってます。
0621デフォルトの名無しさん
NGNG0622デフォルトの名無しさん
NGNG3文字か4文字くらいを入力したと仮定して、変数の値を表示するように改造するか、
紙にでも書いて実行される内容を順番にトレースしてみな。
0623デフォルトの名無しさん
NGNG0624大学生
NGNGきたんですが、forのi<=lだとABCD\0→DCBAとなってしまう感じがするんで
すが、最後のヌルの分はどうなるんですか? b[i]='\0'のところでも、最後の
Aの所に\0がかぶってしまう気がします…
0625デフォルトの名無しさん
NGNG0626デフォルトの名無しさん
NGNGABCDと入力したとき、for文に入る段階でlの値はどうなっているか?
0627大学生
NGNG0628デフォルトの名無しさん
NGNGつまり、for文は何度繰り返され、i++が何度実行される?
0629大学生
NGNG0630デフォルトの名無しさん
NGNGi == 3なら、i <= l (l == 3)の条件は真なので、ループ継続するでしょ?
0631デフォルトの名無しさん
NGNGprintf("%d\n",i);
とかw
0632デフォルトの名無しさん
NGNGということは、iが4になってはじめてfor文は終了するってことだ。
0633大学生
NGNGすみません。
0634大学生
NGNG0635デフォルトの名無しさん
NGNG0636大学生
NGNG0637大学生
NGNG0638デフォルトの名無しさん
NGNGfor( 初期化; 継続条件; インクリメント) 文
初期化→継続条件のチェック→真なら→文→インクリメント→継続条件のチェックに戻る
→偽なら→終了
0639デフォルトの名無しさん
NGNG0640大学生
NGNGまじ、すんません。
0641大学生
NGNGがわかっていないんです。
0642デフォルトの名無しさん
NGNGprintf("i=%d",i);
実行結果
i=4
0643デフォルトの名無しさん
NGNG/*この時点でiは4になっているんだよ〜*/
printf("i=%d",i);
実行結果
i=4
0644デフォルトの名無しさん
NGNGABCDと入力したとする。
この場合、a[0] == 'A', a[1] == 'B', a[2] == 'C', a[3] == 'D', a[4] == '\0' だ。
while(a[l] != '\0') l++;
により、a[4] が '\0' である場合まで繰り返されるので、l == 4
l--; により、l == 3となる。
for(i=0;i<=l;i++) b[i] = a[l-i];
ここで、b[0] = a[3-0] つまり、b[0] = a[3], b[1] = a[3-1] つまり、a[2]、
以下同様に、b[2] = a[1], b[3] = a[0] となり、このときは、i == 3。
ここで、インクリメント節が実行されてから継続条件の検査が行われるので、
i == 4となり、継続条件 i <= l を満たさなくなり、ループを抜ける。
最後に、b[i] に '\0'を代入する。i == 4なので、b[4] == '\0' 。
最終的に、b[0] == 'D', b[1] == 'C', b[2] == 'B', b[3] == 'A', b[4] == '\0' だ。
0645デフォルトの名無しさん
NGNGよくそこまで甘やかす気になれるな。
0646大学生
NGNGこんなにわかっていないのに、ここまで付き合って下さってほんとにありがとう
ございました!感激です(涙)
0647デフォルトの名無しさん
NGNG暇つぶしにはなったよ。
釣りだったのかもしれんが...
0648デフォルトの名無しさん
NGNG0649大学生
NGNGほんとに感謝してます!またわからなかったら聞きたいんで
お願いいたします。とても、勉強になりやした。
0650大学生
NGNGまじやさしっすね、釣りの意味がよくわかりませんが…
最近Cを始めてまだ修行が足らんとです。
0651デフォルトの名無しさん
NGNG0652大学生
NGNG0653デフォルトの名無しさん
NGNG0654デフォルトの名無しさん
NGNG0655デフォルトの名無しさん
NGNGするプログラムを自由に作成せよ。
�@科目別の最高点を求める
�A各学生の一教科の平均点を求める。
アルゴリズムを考える所から教えて下さい。
0656デフォルトの名無しさん
NGNG(2)3教科の点数を足して3で割る
0657デフォルトの名無しさん
NGNG各学生の三教科の平均点、
各学生の三教科のサンプルが複数組あって「各学生の一教科の平均点」ってこと、
それとも各教科の平均点。
3つの内のどれよ。
0658デフォルトの名無しさん
NGNG�@おそらく
eigo[3][5]
sugaku[3][5]
kokugo[3][5]
の配列を逐次探索する。
�A
3教科の点数の平均を出してそれぞれ表示する。
でもって
先に�@ですが
ここからとまってどうコーディングしていったらいいか分かりません。
すぐに解答を教えない範囲でヒントを教えて下さい。
0659デフォルトの名無しさん
NGNG428224593349304/136308121570117
を計算して小数点以下30桁まで出せって問題なんだけど
どうやったら計算できる?
428224593349304を配列に入れて筆算と同じようにすればいいって
言われたんだけどサパーリなんだよね
0660デフォルトの名無しさん
NGNGつまり私の言ってる事は
本質的にあなたの質問と同じ質問をしているとゆうこと?
0661デフォルトの名無しさん
NGNG私の言ってる事がわからない
0662デフォルトの名無しさん
NGNG"多倍長計算"でググレ
0663658
NGNG各学生の三教科のサンプルが複数組あって「各学生の一教科の平均点」ってこと
2です。
0664デフォルトの名無しさん
NGNGごめん その二次元配列の意味が分からない
0665デフォルトの名無しさん
NGNG多倍長計算でググってみたけど
難しすぎてわからんYO
わかりやすくおせーて
0666デフォルトの名無しさん
NGNG�@
/* tensuu[i][j]: 学生jの、科目iの点数 */
/* saikou[i]: 科目iの最高点 */
for (i = 0; i < 3; i++) {
saikou[i] = tensuu[i][0];
for (j = 1; j < 5; j++)
if (saikou[i] < tensuu[i][j])
saikou[i] = tensuu[i][j];
}
0667デフォルトの名無しさん
NGNGeigo[3][5],sugaku[3][5],kokugo[3][5];も確保して
何入れるんだ?
2次元配列使ってる意味なくなるだろ
0668ラポ
NGNGC言語を習い始めたのですが問題が全然わからなくて
すいませんが教えてください。
C言語始めたばかりなのですがこの問題が全く分かりません。
すいませんが教えてほしいです。お願いします。
整数型配列 array に,先頭から n 個データが入っているとする.このようなときに,次の操作を行う二つの関数を作れ.
1、新しいデータ newdata を第 k 要素 array[k] の場所に挿入する(挿入前に array[k] 以降にあったデータは一つずつ後ろにずらす)関数
array_insert(int array[], int n, int newdata, int k)
2、第 k 要素の内容を削除する(削除前に array[k+1] 以降にあったデータは一つずつ前にずらす)関数
array_delete(int array[], int n, int k)
0669デフォルトの名無しさん
NGNG/* 後ろにずらす */
for (i = n; i > k + 1; i--) array[i] = array[i - 1];
/* 前にずらす */
for (i = k; i < n - 1; i++) array[i] = array[i + 1];
0670ラポ
NGNGできそうなのでがんばってみます。
0671ファイル操作だけcpp
NGNG#include <stdio.h>
#include <fstream.h>
#define SEITO_KAZU (5)
#define KYOUKA_KAZU (3)
int main(){
int seiseki[SEITO_KAZU][KYOUKA_KAZU];
int tmp=0;
int tmp2=0;
int tmp3=0;
int saikou[KYOUKA_KAZU];
char ch;
ifstream seiseki_file("seiseki");
for(tmp=0;tmp<SEITO_KAZU;tmp++){
for(tmp2=0;tmp2<KYOUKA_KAZU;tmp2++){
seiseki[tmp][tmp2]=0;
saikou[tmp2]=0;
}
}
tmp=tmp2=0;
0672ファイル操作だけcpp
NGNGseiseki_file.get(ch);
switch (ch){
case ' ':
seiseki[tmp][tmp2]=tmp3;
tmp3=0;
tmp2++;
break;
case '\n':
seiseki[tmp][tmp2]=tmp3;
tmp3=0;
tmp++;
tmp2=0;
break;
default:
tmp3*=10;
tmp3+=(ch-'0');
break;
}
}
for(tmp2=0;tmp2<KYOUKA_KAZU;tmp2++){
for(tmp=0;tmp<SEITO_KAZU;tmp++){
if(saikou[tmp2]<seiseki[tmp][tmp2]){
saikou[tmp2]=seiseki[tmp][tmp2];
}
}
}
for(tmp=0;tmp<KYOUKA_KAZU;tmp++){
printf("教科%cの最高は%d\n",('A'+tmp),saikou[tmp]);
}
}
0673ファイル操作だけcpp
NGNG9 49000 62
51 53 61
17 89 19
32 422 5
100 2 32
0674ファイル操作だけcpp
NGNG0675ファイル操作だけcpp
NGNGfor(tmp2=0;tmp2<SEITO_KAZU;tmp2++){
tmp3+=seiseki[tmp2][tmp];
}
printf("教科%cの平均は%d\n",('A'+tmp),tmp3/SEITO_KAZU);
tmp3=0;
}
0676('A`)
NGNG0677ラポ
NGNG0678デフォルトの名無しさん
NGNG下記のプログラムはn個の整数型データ a1, a2, … , an を入力し、
最大値と最小値を求めるプログラムです。
ただし、データの最大個数を10とする。
*/
#include<stdio.h>
int main(void)
{
int i, n;
int min, max;
int a[10];
printf("n =");
scanf("%d", &n);/* nの入力 */
for(i=0;i<n;i++){
printf("整数型データ a[%d]=", i);
scanf("%d", &a[i]);/* n個のデータ入力 */
}
min=a[0];
max=a[0];
for(i=1;i<n;++i){
if(min>a[i]) min=a[i];/* 最小値を求める */
if(max<a[i]) max=a[i];/* 最大値を求める */
}
printf("最大値 %d\n", max);
printf("最小値 %d\n", min);
return(0);
}
「これを関数max_ofとmin_ofを用いて書き換えよ」
との事なのですが、教えていただけますでしょうか?
0679デフォルトの名無しさん
NGNG{
int i;
for (i = n; i > k + 1; i--) array[i] = array[i - 1];
array[k]=newdata;
}
0680ラポ
NGNGでもどうしてarray[k]=newdata;なんですか?
問題の意味も全然わからなくて質問はだめですかね。
0681デフォルトの名無しさん
NGNG>>1をよくよむべし
0682デフォルトの名無しさん
NGNG>1、新しいデータ newdata を第 k 要素 array[k] の場所に挿入する
から。
0683ファイル操作だけcpp
NGNGスマソヌルポクァwセdrftgyフジコlp
0684ラポ
NGNG文章を理解しないとだめですね。
0685デフォルトの名無しさん
NGNG#include<stdio.h>
int max_of(int *a, int n)
{
int i,max=a[0];
for(i=1;i<n;++i) if(max<a[i]) max=a[i];/* 最大値を求める */
return max;
}
int min_of(int *a, int n)
{
int i,min=a[0];
for(i=1;i<n;++i) if(min>a[i]) min=a[i];/* 最小値を求める */
return min;
}
int main(void)
{
int i, n, a[10];
printf("n ="); scanf("%d", &n);/* nの入力 */
for(i=0;i<n;i++){
printf("整数型データ a[%d]=", i); scanf("%d", &a[i]);/* n個のデータ入力 */
}
printf("最大値 %d\n", max_of(a,n));
printf("最小値 %d\n", min_of(a,n));
return(0);
}
0686デフォルトの名無しさん
NGNGラボちゃんが書いた(やってみたけどダメだった)ソース見せて。
他の人にとってもある意味いい勉強になると思うから。
0687デフォルトの名無しさん
NGNGガッ
0688ラポ
NGNGなぜかprintfとか・・・全然違いますね。
ダメダメです。
0690デフォルトの名無しさん
NGNG全文を省略せず、ソースが長ければ>>1のところに貼り付けるなりしてください。
0691大学生
NGNG非対称(abc)なら:abc→no、と表示させるプログラムを作りたいので
すが、やってみたのですがうまくできません。教えて下さい!恐縮で
すが、超初心者なので、出来れば基礎的な知識で教えていただけると
幸いです。strlenは使用禁止になっています。
0692大学生
NGNG#include <stdio.h>
int main()
{
int i,l=0;
int k;
char a[20],b[20];
printf("文字列を入力して下さい:\n");
gets(a);
while(a[l] != '\0')
l++;
l--;
for(i=0;i<=l;i++)
{b[i] = a[l-i];
}
b[i]='\0';
for(k=0;k<=l;k++)
{ if(b[l]==b[l-k])
printf("%s-yes\n",a);
else
printf("%s-no\n",a);
}
return 0;
}
0693デフォルトの名無しさん
NGNG0694デフォルトの名無しさん
NGNG0695694
NGNG0696デフォルトの名無しさん
NGNG多分よくないと思われます。
この問の前の問題からの流れ的にですが…
0697ラポ
NGNG0698デフォルトの名無しさん
NGNGまじっすか!この前の問題が移していたので移してみました。
0700デフォルトの名無しさん
NGNGl++;
l--;
(´д`)
0701694
NGNG#include <stdio.h>
int main()
{
int i,l,k;
char a[20];
printf("文字列を入力して下さい:\n");
gets(a);
for(l=-1; a[l+1]!='\0'; ++l)
;
k=0;
for(i=0; i<l; ++i,--l) if(a[i]!=a[l]) k=1;
printf("%s-%s\n",a, (k==0)?"yes":"no");
return 0;
}
0702大学生
NGNG{l++;}
l--;
のがよかですかね??
0703デフォルトの名無しさん
NGNGint main()
{
int i,l=0,flag=0;
char a[20],b[20];
printf("文字列を入力して下さい:\n");
gets(a);
while(a[l] != '\0') l++;
for(i = 0;i < l / 2;i++) {
if(a[i] != a[l-i-1]) { flag = 1; break; }
}
if (flag == 0) printf("%s-yes\n",a);
else printf("%s-no\n",a);
return 0;
}
こんなんとか
0704デフォルトの名無しさん
NGNGおまいのコードを改造してみた
#include <stdio.h>
int main()
{
int i,l=0;
char a[20];
printf("文字列を入力して下さい:\n");
gets(a);
while(a[l] != '\0')/*strlen使いたいな〜*/
l++;
l--;
for(i=0;i<=l;i++)
{
if(a[i]!=a[l]){
printf("%s-no\n",a);
return 0;
}
l--;
}
printf("%s-yes\n",a);
return 0;
}
0705デフォルトの名無しさん
NGNGどっちがいいかな?
もれは、今回のケースではフラグでOKって感じ
0706大学生
NGNGところで>704さん質問です。for(i=0;i<=l;i++)
の意味がいまいちわからないので教えて下さい!
0707大学生
NGNG分かりやすそうに感じます!
0708デフォルトの名無しさん
NGNG>...がいまいちわからないので教えて下さい!
なんか「いまいち」って言われると
どこまでならわかるんだ?
ってききたくなっちゃうな。
>>704じゃないけどとりあえず答えときます。
>l=0;
>while(a[l] != '\0')/*strlen使いたいな〜*/
>l++;
>l--;
>for(i=0;i<=l;i++)
は
for (i = 0; i < strlen(a); i++)
と同じ。
0709704
NGNGこれならどう?
int main()
{
int i,l=0;
char a[20];
printf("文字列を入力して下さい:\n");
gets(a);
while(a[l+1] != '\0')/*strlen使いたいな〜*/
l++;
for(i=0;i<l;i++,l--)
{
if(a[i]!=a[l]){
printf("%s-no\n",a);
return 0;
}
}
printf("%s-yes\n",a);
return 0;
}
0710大学生
NGNG意味とそれ以下がわかりません、教えて下さい。return 0もわかりま
せんです。
0711デフォルトの名無しさん
NGNG元の文字列と逆順にした文字列があるのなら
その 2 つを strcmp (相当の処理)を用いて等値判定しろって出題意図だったりしないの?
0712デフォルトの名無しさん
NGNGそういうことが問題中に触れられていないので、意図的に違うコードを書いてみたわけだがw
0713大学生
NGNGどうなんすかねぇ?なんともいえんすけど、strcmpも
初めてきたっすよ…>709さんのプログラムだいぶわかり
やすいです!ifからが理解できてないんです…
0714704
NGNGこのときl==9ですね。
まず1番目と10番目(a[0]とa[9])を比較してみましょう
もし1番目(a[i])と10番目(a[l])が異なる文字だったら,
線対称じゃないからnoと出力して終了しましょう(=return(0))
i++;l--;
次にもし2番目(a[1])と9番目(a[8])が異なる文字だったら
線対称じゃないからnoと出力して終了しましょう(=return(0))
:
:
iがlよりもおおきくなったら線対称が確定しますね。
for文も終了します。
yesを出力してプログラムを終了させましょう。(=return(0))
これであってるのかな?
俺もわかんなくなってきた
0715デフォルトの名無しさん
NGNGl=文字列の最後の位置;
i=0;
if(i<l && a[i]!=a[l]){ /* 対称ではない */ return 0; }
++i; --l;
if(i<l && a[i]!=a[l]){ /* 対称ではない */ return 0; }
++i; --l;
:
/* 対称でした */
ってことだろ
0716704
NGNGそうなんだけどね。
それじゃわかってもらえないような気がしたので...
日本語で説明してたらこっちまで混乱してきた。
ところで
715=="大学生"だったりしたら面白い落ちだね。
0718デフォルトの名無しさん
NGNG配列の要素を追加したり削除したりしても要素数nを変更しないでよいのか?
もれは納得できん!
0720デフォルトの名無しさん
NGNG0721デフォルトの名無しさん
NGNG0722デフォルトの名無しさん
NGNGa * a + b * b == c * c と書けるすべての組(a, b, c)を出力するプログラム
(3辺が整数の直角三角形の列挙をしていることに他ならない)。
0723デフォルトの名無しさん
NGNG0724デフォルトの名無しさん
NGNGmain(){
int c_max;
int a=0,b=0,c=0;
for(a=1;a<=100;a++){
for(b=a;b<=100;b++){
for(c=1;c<=10000;c++){
if((c*c)==(a*a)+(b*b)){
printf("%d\t%d\t%d\n",a,b,c);
}
}
}
}
}
0725デフォルトの名無しさん
NGNG0726デフォルトの名無しさん
NGNG総当たり法w
0727デフォルトの名無しさん
NGNG0728デフォルトの名無しさん
NGNGcはa+bまででいいよ。
0729デフォルトの名無しさん
NGNG#include <stdio.h>
int main( void )
{
int ai[3] = {10,11,12};
int n;
for(n=0;n<4;n++){
printf("%d,%d\n",n,*(int *)((char *)(ai+1)-n));
}
return 0;
}
の実行結果が
0,11
1,2816
2,720896
3,184549376
なんですが 11×256^n になる理由がいまいちよくわかりません。
どなたかわかりやすく教えていただけないでしょうか。
0730デフォルトの名無しさん
NGNG環境依存っぽいので
#include <stdio.h>
int main(void)
{
union {
int n
char c[4]; /* 4はsizeof(int)にする */
} x;
int i;
x.n= 11;
for (i = 0; i < sizeof(int); i++) printf(" %X", x.c[i]);
return 0;
}
の結果を教えて。
0731デフォルトの名無しさん
NGNG0A 00 00 00 0B 00 00 00 0C 00 00 00
↑
ai+1は矢印んとこ指してる。これが1バイトずつ左へ動いてるだけ。
sizeof(int) == 4でリトルエンディアンな環境前提な。
0733デフォルトの名無しさん
NGNG>>731のやり方を使うと
0A 00 00 00 0B 00 00 00 0C 00 00 00
↑--------- リトルエンディアンなので、00 00 00 0B
0A 00 00 00 0B 00 00 00 0C 00 00 00
↑--------- 00 00 0B 00
0A 00 00 00 0B 00 00 00 0C 00 00 00
↑--------- 00 0B 00 00
0A 00 00 00 0B 00 00 00 0C 00 00 00
↑--------- 0B 00 00 00
0734729
NGNG11×256^2 はどこから出てくるのですか?
0735729
NGNG0736デフォルトの名無しさん
NGNG0x0B == 11 0xFF == 255
つまり、00000B00 / 0000000B = 256
0738デフォルトの名無しさん
NGNGオレもがんがろうっと。
0739デフォルトの名無しさん
NGNGvoid func0()
{
printf("func0\n");
}
void func1()
{
printf("func1\n");
}
int main()
{
int a;
scanf("%d",&a);
if(a==0) func0();
if(a==1) func1();
return 0;
}
これを if switch goto を使わずに作れ。
0740デフォルトの名無しさん
NGNGf[a]();
0741デフォルトの名無しさん
NGNGvoid func0(void) { puts("func0"); }
void func1(void) { puts("func1"); }
int main(void) { int a; scanf("%d", &a); a == 0? func0(): a == 1? func1(): 1; return 0; }
0742デフォルトの名無しさん
NGNG{
int a;
scanf("%d", & a);
a ? func1(): func0();
return 0;
}
0743デフォルトの名無しさん
NGNGif (!(a == 0 && a == 1)) ...
0744743
NGNG0745デフォルトの名無しさん
NGNGwhile(a==0){ func0(); break; }
while(a==1){ func1(); break; }
0746デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=205
0747デフォルトの名無しさん
NGNGC/CPPのグローバル変数についてなんですけど、
関数内からグローバル変数を宣言することは可能なんでしょうか?
例えばmain関数内でグローバル変数としてチェスボード(配列)を宣言して
それを他の再帰的に使用する関数で参照できるのかどうか。
親切な方、よろしくお願いします。
0748デフォルトの名無しさん
NGNG>C/CPPのグローバル変数についてなんですけど、
CPPってC++のこと?プリプロセッサだと思われちゃうよ。
>関数内からグローバル変数を宣言することは可能なんでしょうか?
『宣言』はたぶんできます。『定義』はできません。
0749デフォルトの名無しさん
NGNGint global; /* 定義 */
void function(void)
{
extern int global; /* 宣言 */
}
0750デフォルトの名無しさん
NGNG#include <stdio.h>
int
main()
{
int i, j, k;
scanf( "%d%d", &i, &j );
printf( "i = %d, j = %d\n", i, j );
while ( 1 ){
if ( j == 0 ){
printf( "%d\n", i );
break;
} /* if */
k = i % j;
i = j;
j = k;
} /* while */
return ( 0 );
} /* main */
このプログラムをまず入力しその動作を確認してから、0から20までの2つの数のあらゆる組み合わせについて、その最大公約数を表示させるプログラムを作れ。
例:
(0, 0)->0
(1, 0)->1
........
(4, 6)->2
.........
0751デフォルトの名無しさん
NGNGfor(i=0;i<=20;i++)
for(j=i;j<=20;j++)
printf("(%d,%d)->%d\n",j,i, ユークリッド(i,j));
0752デフォルトの名無しさん
NGNG例えば文章aの内容が「あいうえお」で文章bが「あいええあ」の場合
う:え お:あ 見たいな感じで表示するプログラム作って( ゚д゚)ホスィ…
0753デフォルトの名無しさん
NGNG0754デフォルトの名無しさん
NGNG当然
0755デフォルトの名無しさん
NGNGvoid main (int argc, char *argv[])
{
int fd;
if (fd=open(argv[1],O_RDONRY)==-1)
perror("open");
else
closed(fd);
}
↑のプログラムを元にして、
プログラム実行時の引数の個数と引数を表示する
その後エラーがあればメッセージを表示する
2つの条件を満たすプログラムを作成して欲しいです
軽いヒントでも結構です
正直、何をしたらいいのかすら分からずに困っているので助けてください
0756デフォルトの名無しさん
NGNG#include <stdio.h>
#include <string.h>
int kanji(int c){
c = c & 0x000000ff;
return ((0x81<=c && c<=0x9f) || (0xe0<=c && c<=0xfc));
}
int func(char *s,char *out){
if(kanji(*s)){
sprintf(out,"%c%c",*s,*(s+1));
return 2;
}
else
sprintf(out,"%c",*s);
return 1;
}
int main(){
char s1[] = "あいうえおac",s2[] = "あいaえうあb";
char tmp1[3],tmp2[3];
int i = 0,j = 0;
while(s1[i] && s2[j]){
i += func(&s1[i],tmp1);
j += func(&s2[j],tmp2);
if(strcmp(tmp1,tmp2) != 0)printf("%s : %s\n",tmp1,tmp2);
}
return 0;
}
※NEC PC-9800用
0757お願いします
NGNG588=2*2*3*7*7
という形に出力するプログラミングを考えよ。その時に、
(1)入力値がn=588の時の手計算を行ってみて、どういう変数を用意すればよいのか、
(2)入力値がn=588の時に、用意した変数の値の組をどの様に更新していけばよいのか
を考えて、プログラミングを構成せよ。
0758デフォルトの名無しさん
NGNG女優の広末涼子さん(23)の所属事務所は20日、広末さんが10日に出産した長男の名前が「宏志(ひろし)」に決まったと発表した。
広末さん親子は既に東京都内の病院を退院している。(共同通信)
ひろしって案外、普通だなw
0759デフォルトの名無しさん
NGNGifでやっていけば?
0760デフォルトの名無しさん
NGNG0761お願いします
NGNG具体的には、どのようにやればいいのでしょうか?
0762デフォルトの名無しさん
NGNG俺はまだまだプログラミング初心者だからよくわからんが
もしnが2で割れたら、2で割れるまで割る、で、割れなくなったら
3を試す4を試す・・・・・みたいな感じ?
あとは詳しい人に聞いてくれ。すまぬ
0763お願いします
NGNGありがとうございました。 詳しい方、お願いします。
0764デフォルトの名無しさん
NGNGmain(){
int a=2,n;
scanf("%d",&n);
printf("%d=",n);
while(a < n)
{
if(!(n % a))
{
n/=a;
printf("%d*",a);
}
else a++;
}
printf("%d",n);
}
0765デフォルトの名無しさん
NGNG1)まず素数テーブルを用意する。(unsigned intの範囲なら要らないかも)
2)sqr(N)以下の素数まで因数分解。
3)因数分解の結果は
逐次表示するなり
1)のテーブル更新に利用しとけ。
0766大学生
NGNG#include <stdio.h>
int
main()
{int i, j, k;
scanf( "%d%d", &i, &j );
printf( "i = %d, j = %d\n", i, j );
while ( 1 ){
if ( j == 0 ){
printf( "%d\n", i );
break;
} /* if */
k = i % j;
i = j;
j = k;
} /* while */
return ( 0 );
} /* main */
0から20までの2つの数のあらゆる組み合わせについて、その最大公約数
を表示させるプログラム{例:(0, 0)->0 (1, 0)->1}を、このプログラムを基に作るという問題なん
ですが、教えて下さい、お願いします!
0767大学生
NGNG自分で作ってみたプログラムです。
#include <stdio.h>
int
main()
{
int i, j, k,l;
int a,b;
for(i=1;i<=20;i++)
{
for(j=1;j<=20;j++)
{
if ( l=0 )
{ printf( "(%d,%d)=>%d,", i, j , i );
k = i % j;
i = j;
j = k;
}
printf( "(%d,%d)", i, l );
}
}
}
0768デフォルトの名無しさん
NGNG0769デフォルトの名無しさん
NGNGたぶんこんなでいいんとちがうかな。
#include <stdio.h>
int
main()
{
int i, j, k;
for(i=1;i<=20;i++){
for(j=1;j<=20;j++){
int tpi = i;
int tpj = j;
while( 1 ){
if ( tpj == 0 ){
printf( "(%d,%d)=>%d\n", i, j , tpi );
break;
}
k = tpi % tpj;
tpi = tpj;
tpj = k;
}
}
}
return 0;
}
0770デフォルトの名無しさん
NGNG単方向リスト(連結リスト、線形リスト)の典型的な実装の一つ。週末まで待って。
0771デフォルトの名無しさん
NGNG悪いこといわないから自分でできるだけやれ、そのほうが絶対ちからになるって。
で、お前は留学生か?
0772デフォルトの名無しさん
NGNGヒントだけ書いておくと、リストの項目の追加や並び替えは、すべてnode->nextを書き換えることによって行われる。
0773デフォルトの名無しさん
NGNG線形リストはぐぐればたくさんあるから読んでみるのもお勧め。
漏れも先セメ、連結リストで死んだ
0774デフォルトの名無しさん
NGNG最大公約数を返す関数を作れ。
0775デフォルトの名無しさん
NGNG0776デフォルトの名無しさん
NGNG0777デフォルトの名無しさん
NGNG0778デフォルトの名無しさん
NGNGvoid addLast ( SitePtr , SiteList * )
{
if ( SiteList->next == NULL )
SiteList->next = createNode( SitePtr.name, SitePtr.coord );
else {
SitePtr *p = SiteList->next;
while( p->next != NULL )
p = p->next;
p->next = createNode( SitePtr.name, SitePtr.coord );
}
}
0779778
NGNGvoid addLast ( SitePtr hoge, SiteList *list )
{
if ( list->next == NULL )
list->next = createNode( hoge.name, hoge.coord );
else {
SitePtr *p = list->next;
while( p->next != NULL )
p = p->next;
p->next = createNode( hoge.name, hoge.coord );
}
}
0780デフォルトの名無しさん
NGNG同じ処理を二回書かなくても、最初に whileを持ってくればいいのでは。
0781デフォルトの名無しさん
NGNGMiddle Earthって指輪物語かよ。
MORIA、AngBandっていうRogue系のゲーム
渡せば単位くれそうだな。
すでに持ってるかもしれんけど
0782781
NGNG参照するにはアロー演算子が必要。ていうか
#define NAME(ptr) ((ptr)->name)
#define COORD(ptr) ((ptr)->coord)
#define NEXT(ptr) ((ptr)->next)
#define EMPTY(ptr) ((ptr)==NULL)
使ってくれって感じみたいだけど俺なら使いたくない気持ちはわかる。
0783デフォルトの名無しさん
NGNG0784大学生
NGNG0785デフォルトの名無しさん
NGNG>>771さん
おっしゃる通りです。できるとこはやろうとしてるんですが、、
Deleteのファンクション以外のアルゴリズムはわかるんですが、
自分には知識・能力がない為、実際にコードを書くとなったら辛いんです、、、
まだ.hファイルの中身を整理しきれていないので、それから徐々にコードを書こうと思います。
みなさん助けて下さって本当にありがとうございます。
0786デフォルトの名無しさん
NGNGDeleteのアルゴリズム。
SiteListをたどって、指定されたSitePtrをnextにもつノードを探す。
そのノードのnextをSitePtrのnextで置き換え、SitePtrを解放。
イメージとしては、
node->next
node->next 3.←ここに設定すると、
node->next 1.←これが該当するノードだとすると、
node->next 2.←このノードを
node->next
node->next 4.←これの指す先は
node->next 5.←このノードになり、
node->next 6.ここは宙ぶらりん。解放する。
0787デフォルトの名無しさん
NGNGdeleteのアルゴリズムありがとうございました。
具体的なコードを書くのは今の段階ではきついんですが、
こんな感じでいいんでしょうか?
delete
{
//SiteListをたどって、指定されたSitePtrをnextにもつノードを探す。
NEXT(Ptr)==node;
Ptr->next=node->next;
free(node);
}
本当に感謝しています。ありがとうございます。
0788デフォルトの名無しさん
NGNGstruct Node{
char *value;
struct Node *next;
};
この構造体の中のstruct Node *nextの意味がよくわかりません。
宜しくお願いします。
0789デフォルトの名無しさん
NGNG0790デフォルトの名無しさん
NGNGstruct Node *head, *p, *q;
head = malloc(sizeof (struct Node));
p = malloc(sizeof (struct Node));
head->next = p;
while(1){
q = malloc(sizeof (struct Node));
p->next = q;
p = q;
if ((getch()) == 'q') break;
}
(まったく意味のないプログラムですが)たとえばこんな風に使うんですかね?
たどっていくため。
0791デフォルトの名無しさん
NGNG746=768がやってる線形リストのような構造で使う。辿るのに使うというか、辿るための構造というか。
0792デフォルトの名無しさん
NGNG#define A 10;
#define B 5;
となっているときに
main()
{
int x[10];
int i;
for(i = 0; i < 10; i++){
x[i] = B + A * i;
}
}
という処理を行うと間接指定演算子(*)が〜というエラーがでてしまいます。
Aの部分を内部変数や1、2等の数字にするとエラーは出ないのですが
Aをそのまま使う方法は何か無いでしょうか?
0793デフォルトの名無しさん
NGNG#define A 10;
#define B 5;
↑これが原因。
これを展開すると、
x[i] = 5; + 10; * i; すなわち、
x[i] = 5;
+ 10;
* i;
の三つの文になる。
あと、エラーメッセージを省略するのは何も書いてないのと同じだ。
0794デフォルトの名無しさん
NGNGx[i] += B;
0795デフォルトの名無しさん
NGNGchar *prompt="% ";
char *argv[20], input[80];
main()
{
printf("%s", prompt);
while(fgets(input, sizeof(input), stdin) != NULL){
input[strlen(input) -1] = '\0';
if(fork() == 0){
split(input, argv);
if(execvp(argv[0], argv)<0)
perror(argv[0]);
}else{
wait(0);
}
printf("%s", prompt);
}
}
int split(char *input, char *argv[]){
}
問題:上記プログラムを改変して、
課題1
一行の入力を空白で分割し、char *argv[n]に格納する関数splitをつくれ。
ただし、ポインタと文字列(終端記号)の性質を利用すること。
課題2
実行したコマンドを配列に保存し、特定のキーを押したら
過去のコマンドのリストを表示、実行できる機能(ヒストリー)を付加せよ。
お力添えを願います。
0796デフォルトの名無しさん
NGNGstruct ptr
{
double x,y;
};
と構造体を宣言する。
6*x+4*yをx'として、-2*x+yをy'という座標とする。(線形変換)
xとyをキーボードから入力して、x'とy'を出力するプログラムを作成する。
ただし必ずstruct ptr型の構造体変数を用いることとし、線形変換の部分を関数void lin_tra(struct ptr *)として作成すること。
突破口が全然開けずorz
どなたか助言お願いします。
0797デフォルトの名無しさん
NGNGvoid lin_tra(struct ptr *point)
{
struct p = { point->x, point->y };
point->x = 6 * p.x + 4 * p.y;
point->y = -2 * p.x + p.y;
}
0798797
NGNG↑間違ってた
struct ptr p = { point->x, point->y };
0799デフォルトの名無しさん
NGNG学校の課題で、C言語で2つの整数(例4と3)を入力しその
和(例7)を出力しるっていうのが出たけどサッパリなので
どうかおながいします。
0800デフォルトの名無しさん
NGNGint main(void)
{
int x, y;
scanf("%d%d", &x, &y);
printf("%d\n", x + y);
return 0;
}
0801デフォルトの名無しさん
NGNG0802デフォルトの名無しさん
NGNG助かりました、ありがとうございます。
0803792
NGNGどうもありがとうございました。
マクロの後ろにセミコロンつけたなんて初歩的なミスだったんですね。
今度はよく見直してから質問するようにします。
>あと、エラーメッセージを省略するのは何も書いてないのと同じだ
大変失礼しました。今後気をつけます。
0804デフォルトの名無しさん
NGNGプログラムの訂正をお願いします。
0805デフォルトの名無しさん
NGNGお前一体何様のつもりだ?
0806デフォルトの名無しさん
NGNG(1) exit()→stdlib.h
(2)if(year%4==0 && year%100!=0 || year%400==0)
↓
if((year%4==0 && year%100!=0) || year%400==0)
(3)for(;day>totaldays1;i++)→for(;*day>totaldays1;i++)
(4)最後のprintfに')'が足りない。
これでコンパイルできるかも。
あたしも実行して確かめたわけじゃないからね。
0807デフォルトの名無しさん
NGNG0808デフォルトの名無しさん
NGNG汚いsourceで直す気にもならんが、そのエラーは
printf("西暦%d年の%d日目は…のprintfの最後の括弧が抜けている。
エラーメッセージを読んでから質問しろ。
0809デフォルトの名無しさん
NGNG0810デフォルトの名無しさん
NGNGmain()
{
cout << "Winny3.exe" << endl;
}
0811デフォルトの名無しさん
NGNGありがとうございました。
0812デフォルトの名無しさん
NGNG0813デフォルトの名無しさん
NGNGint main(void)
{
int num, i;
char buf[256];
FILE *fp;
printf("いくつ作りますか?\n>");
scanf("%d", &num);
for(i = 0; i < num; i++)
{
sprintf(buf, "winny3(%d).exe", i + 1);
fp = fopen(buf, "w");
fclose(fp);
}
}
0814814
NGNG1.プロセス群の生成処理
2.ランク0のプロセスがファイル(in.dat)からデータを64個読み込む。ファイル中には一行に倍精度実数が1つづつ記述されている。
3.ランク0のプロセスが読み込んだデータの総和を計算する。
4.ランク0のプロセスがその総和をファイル(out.dt)に出力する。
5.プロセス群の終了。
お願いします。
0815デフォルトの名無しさん
NGNG0816超初心者
NGNGいつもwarning: no newline at end of file
というのが出るんですがどうすれば直るんでしょうか?
0817デフォルトの名無しさん
NGNG0818デフォルトの名無しさん
NGNG0819デフォルトの名無しさん
NGNGGCCかCC使ってるのか。
メモ帳以外のエディタで開いてみな(k2editerとか
最後に[EOF]てのがあるからそれだけ最後の行に来るように改行汁。出なくなる。
0820デフォルトの名無しさん
NGNGその制限は何のために存在するのですか?
0821デフォルトの名無しさん
NGNG山崎渉のコピペにも使われていたので勘違いしていた。
ポンキッキーズが由来だったのか?
それともPC初心者板専用?
0822デフォルトの名無しさん
NGNG気にしたら負け。
0823デフォルトの名無しさん
NGNG昔からテキストファイルは改行で終わるのが一般的。
そりゃそうと、最後の行に改行がないとバグるコンパイラがあったなぁ。
0824デフォルトの名無しさん
NGNG言っている意味がわからない
0825デフォルトの名無しさん
NGNG気にしたら負け。
0827814
NGNG1.プロセス群の生成処理
2.ランク0のプロセスがファイル(in.dat)からデータを64個読み込む。ファイル中には一行に倍精度実数が1つづつ記述されている。
3.ランク0のプロセスが読み込んだデータの総和を計算する。
4.ランク0のプロセスがその総和をファイル(out.dt)に出力する。
5.プロセス群の終了。
お願いします。
0828デフォルトの名無しさん
NGNGhttp://www.h7.dion.ne.jp/~matsu/pc_cluster/mpi/index.html
0829814
NGNG2・読み込んだデータの総和を計算する。
3・その総和をファイル(out.dt)に出力する。
この部分は
fp = fopen("in.dat","r");
for(i=0;i<64;i++){
fscanf(fp,"%lf",&s[i]);
sum+=s[i];
fclose(fp);
fp = fopen("out.dat","w");
fprintf(fp,"%lf",sum);
fclose(fp);
であってますか?
0830デフォルトの名無しさん
NGNG>fprintf(fp,"%lf",sum);
"%lf"じゃなくて "%f"
0831デフォルトの名無しさん
NGNG但し最新規格準拠のコンパイラを使ってるならね。
0832814
NGNGありがとうございます。
それでですね、下のソースを作ったのですが、コンパイルできても実行できません。
どなたか間違いを指摘していただけたら・・・
#include<stdio.h>
#include<stdlib.h>
#include<mpi.h>
int main(int argc , char **argv){
int a,i;
double sum;
double s[100]={0};
FILE *fp;
MPI_Init(&argc,&argv);
MPI_Comm_rank(MPI_COMM_WORLD,&a);
if(a == 0){
fp = fopen("in.dat","r");
for(i=0;i<64;i++){
fscanf(fp,"%lf",&s[i]);
sum+=s[i];
}
fclose(fp);
fp = fopen("out.dat","w");
fprintf(fp,"%f",sum);
fclose(fp);
}
MPI_Finalize();
}
0833デフォルトの名無しさん
NGNG配列の要素から後ろの一文字だけを削除するにはどうしたらいいのでしょうか?
0834デフォルトの名無しさん
NGNGmpirun じゃなくて ./a.out ってやってたりしない?
0835デフォルトの名無しさん
NGNG配列って普通の文字列のことか?それなら、
char str[] = "abc";
...
if(str[0] != '\0') /* 空でない */
str[strlen(str)-1] = '\0';
0836デフォルトの名無しさん
NGNGa[strlen(a) - 1] = '\0';
0837814
NGNGmpirun -np 1 filename
で実行しています。これは間違いないはずですが・・・
0838デフォルトの名無しさん
NGNGout.datというファイルは作成されるのか、
作成されるのならサイズはいくらか、中身な何か、
エラーメッセージは出ないのか?
あと、読むたびに表示してみたりってできるのかな?
0839デフォルトの名無しさん
NGNGまさか filename がソースファイルの名前ってことは無いよね?
mpicc でコンパイルしてできたバイナリの名前だよね?
0840814
NGNGfile名じゃなくて、a.outでした。
ありがとうございました。
0841839
NGNG言ってみるもんだな。
0843デフォルトの名無しさん
NGNGランク0だけが仕事してるし。
どっか並列にしないといけないんでは?
0844814
NGNG0846デフォルトの名無しさん
NGNG0847デフォルトの名無しさん
NGNG10〜99999までの範囲の数字で、配列を使用して
例えば12なら21、990なら99、6700なら76、15324なら42351のように
数字を逆にする方法はどうやるんでしょうか?
0848デフォルトの名無しさん
NGNGvoid reverse(char *str) {
int i, j;
for(i = 0, j = strlen(str) - 1; i < j; i++, j--) {
int temp = str[i];
str[i] = str[j];
str[j] = temp;
}
}
int i = 6700;
char temp[6];
sprintf(temp, "%d", i);
reverse(temp);
sscanf(temp, "%d", &i);
0849>>847
NGNGint reverseNum(int num){
int ans=0,keta=1,ten =1;
while(num/keta >= 10)keta *= 10;
for(;keta>=1;keta /= 10,ten*=10){
ans += ten*(num/keta);
num %= keta;
//printf("\nnum=%d,ans=%d,keta=%d,ten = %d",num,ans,keta,ten);
}
//printf("\n%d\n",ans);
return ans;
}
0851デフォルトの名無しさん
NGNGコンソールから半角カタカナを入力したら、
それを2バイトのひらがなに直す関数を作りたいんですが、
普通の文字(「あ」や「い」など)は何とか考えられそうなのですが、
濁音・半濁音(「が」「ぱ」など)はどうすればいいのか分かりません。
あと、ASCIIコードでやるのと、二次元配列で2つを対応させるのと、
どっちが良さそうですかね?
どなたか教えてください。お願いします。
void func( char str1[], char str2[] );
0852デフォルトの名無しさん
NGNG慌てずに常に次のもう1文字見ながら変換していけ
0853デフォルトの名無しさん
NGNG0854デフォルトの名無しさん
NGNGまず濁音・半濁音が存在する音なのかどうか判定して
存在するなら次の文字を調べ、それが濁点・半濁点だったら、
濁音・半濁音として変換する。
これをプログラムにすればいいんじゃのかしら。
0855851
NGNG#define MAX 80
void trans( str1[], str2[] )
{
short i;
for (i = 0; str1[i]; i++){
if (str1[i + 1] == '゙' || str1[i + 1] == '゚'){
/* ここがわかりません */
}
str2[i] = 0x82;
str2[i + 1] = str1[i] + /* ここもわかりません */;
}
/* ここでstr2に'\0'を入れます */
}
int main( void )
{
char str1[MAX + 1], str2[MAX * 2 + 1];
printf("半角カタカナを入力してください:");
scanf("%s", str1);
trans( str1, str2 );
printf("変換前:%s\n", str1);
printf("変換後:%s\n", str2);
return 0;
}
もし全然見当違いでしたらおっしゃって下さい・・・
0856851
NGNGtrans関数の宣言で仮引数の型が抜けてますね、char型です。
あと
> str2[i] = 0x82;
> str2[i + 1] = str1[i] + /* ここもわかりません */;
じゃなくて
str2[i * 2] = 0x82;
str2[i * 2 + 1] = str1[i] + /* ここもわかりません */;
かな?
0857デフォルトの名無しさん
NGNG回文を作成するプログラムを考えているんです。
strcpyとstrcatとstrlenの3つの文字列操作関数を使おうと思っているのですが、
どうやったら文字を逆さまにすればいいのかが思いつきません。
0858デフォルトの名無しさん
NGNG0859851
NGNG>>852さん、>>854さんのおっしゃったように、
for (i = 0, cnt = 0; str1[i]; i++){
if (str1[i] < 0xA6 || str1[i] > 0xDF){ continue; }
if (str1[i] == 'ー'){
str2[cnt++] = 0x81;
str2[cnt++] = 0x5B;
continue;
}
str2[cnt++] = 0x82;
if (str1[i] >= 'カ' && str1[i] <= 'ト' || str1[i] >= 'ハ' && str1[i] <= 'ホ'){
if (str1[i + 1] == '゙' || str1[i + 1] == '゚'){
:
という風にしてみました。が、
このあとswitch文で、だらだらとカの場合、キの場合、クの場合、
と、頭の悪そうな行が続きます。
これを計算で求める、効率の良い方法が思いつきません。
表が完全に対応していないのでやりにくいです・・・
0860デフォルトの名無しさん
NGNGプロ法�Uの宿題だろ?
0861デフォルトの名無しさん
NGNG>>848
0862デフォルトの名無しさん
NGNG#include <string.h>
int main(void){
char buf[64];
int len, i, t;
fgets(buf, sizeof buf, stdin);
len = strlen(buf);
len -= 2; /*ナル文字と改行分*/
for (i = 0; i < len / 2; i++){
t = buf[i]; buf[i] = buf[len - i]; buf[len - i] = t;
}
puts(buf);
return 0;
}
0863デフォルトの名無しさん
NGNG>このあとswitch文で、だらだらとカの場合、キの場合、クの場合、
>と、頭の悪そうな行が続きます。
普通のかなに変換して、濁音なら+1、半濁音なら+2でいいんじゃない?
幸い、平仮名の濁音半濁音は全て1バイト目が0x82だし。
0865デフォルトの名無しさん
NGNG0866デフォルトの名無しさん
NGNG________
|100 + 30 = 130 |
|100 - 30 = 70 |
|100 * 30 = 3000 |
|100 / 30 = 3 |
|100 % 30 = 10 |
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
↑の実行画面になるとおりに下記のプログラムを穴埋めせよ
#include <stdio.h>
void main(void)
{
int n1,n2,wa,sa,seki,syo,amari;
n1=100;
n2=30;
wa=n1+n2;
sa=n1-n2;
seki=n1*n2;
syo=n1/n2;
amari=[ �@ ];
printf("%d + %d = %d\n",[ �A ]);
printf("%d - %d = %d\n",[ �B ]);
printf("%d * %d = %d\n",[ �C ]);
printf("%d / %d = %d\n",[ �D ]);
printf("%d %% %d = %d\n",[ �E ]);
}
という問題なのですが、全然わかりません。
どうかご教授お願いします。
0867866
NGNG�@n1%n2 �Awa �Bsa �Cseki �Dsyo �Eamari
で実行してみましたが
_________
|130 + 3 = 3000 |
|70 - 3 = 3000 .|
|3000 * 3988 = 869 .|
|3 / 3988 = 869 |
|10 % 3988 = 869 .|
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
となってしまいます。
参考書等はありませんし、検索してもわかりませんでした。
0868デフォルトの名無しさん
NGNG原因は、printfの使い方が間違ってる、というか、分かってないから。
printfの関数リファレンス(使い方説明)を調べるべし。
ちなみに、宿題で出されてるのに参考書などがないというのはどういう事かと。
0869デフォルトの名無しさん
NGNGprintf("%d + %d = %d\n",n1,n2,wa);
printf("%d - %d = %d\n",n1,n2,sa);
printf("%d * %d = %d\n",n1,n2,seki);
printf("%d / %d = %d\n",n1,n2,syo);
printf("%d %% %d = %d\n",n1,n2,amari);
0870866
NGNGありがとうございました。
>>869さんの正解を参考に>>868さんの言われたとおりに考えると「なぜそうなるか」が理解できました。
%dは変数で代入していく値を順に書き込むんですね。
>>868
参考書は私のミスで学校に置いたままなのです;
0871デフォルトの名無しさん
NGNG0872デフォルトの名無しさん
NGNG0873�@
NGNG表示させたいのですが上手くいきません・・・
#define QUEUE_SIZE 64
#define next(a) (((a) + 1) % QUEUE_SIZE)
#define K 62
--プロトタイプ宣言省略--
int queue[QUEUE_SIZE];
int front;
int rear;
main()
{
int num = 0;
int i;
init();
for(i = 0; i <= K; i++)
{
enqueue(num++);
printf("%d\n", queue[i]);
}
for(i = K; 0 <= i <= K; i--)
{
printf("%d\n", queue[i--]);
}
}
0874�A
NGNG{
front = rear = 0;
}
void enqueue(int x)
{
if(next(rear) == front)
error("これ以上要素を追加できません\n");
queue[rear] = x;
rear = next(rear);
}
void error(char *s)
{
fprintf(stderr, s);
exit(1);
}
0875あー
NGNG↓です
#define K 50
0876デフォルトの名無しさん
NGNGfor(i = K; 0 <= i <= K; i--)
{
printf("%d\n", queue[i--] /* ←これなによ?*/ );
}
queueはFIFO・・・
0877デフォルトの名無しさん
NGNG0878デフォルトの名無しさん
NGNGprintf("%d\n", queue[i--]); → printf("%d\n", queue[i]);
0879デフォルトの名無しさん
NGNG0880デフォルトの名無しさん
NGNG0881873-875
NGNGやっとポンコツソースがまともに動きました(´・ω・`)
0882デフォルトの名無しさん
NGNG現在自力でやってみてるのですが、test.cを書くどころか、
まだsites.cもままらない状況です。この調子では期限まで間に合いそうにありません、、
もう限界です、、、どなたかお願いできませんか??宜しくお願いいたします。
0883デフォルトの名無しさん
NGNG0884デフォルトの名無しさん
NGNG"struct element"型構造体を以下のように宣言する。
struct element{
char name[10];
int price;
struct element *pp;
};
struct element型構造体を使う。
startをstruct element型へのポインタとする。
startのポインタをたどり、第3番目のデータのNULL(='\0')を見つけるまで、次のように画面表示するプログラムを作成せよ。
-> apple \150 -> orange \100 -> melon \500
0885デフォルトの名無しさん
NGNGwhile (p != NULL){
printf("-> %s \%d ", p->name, p->price);
p = p->pp;
}
}
0886884
NGNG0887デフォルトの名無しさん
NGNG\→\\に。
0888デフォルトの名無しさん
NGNG既に64ビットコンピューターが一般に手に入るようになってきたが、
その場合、fseek、ftell関数などの定義をどのように変更すると
もっともシステムの変更が少なくなるか考察せよ。
(IntelとAMDではアプローチが違うのでその点も加味すること)
ってのが良く分からなくて・・
助言お願いします。
0889デフォルトの名無しさん
NGNGint を 64 ビットにする。
0890デフォルトの名無しさん
NGNG0891デフォルトの名無しさん
NGNG締め切りは火曜日までなんです。
よろしかったらお願いいたします。
0892デフォルトの名無しさん
NGNGんなもんコンパイラとAPIの依存の問題で
マクロなどを使って工夫しろとしか言いようが無い。
0893デフォルトの名無しさん
NGNGどこから size_t なんて沸いて出やがりましたか?
0894デフォルトの名無しさん
NGNGcreateprocessとmailslotを使う問題です。
言葉で説明しても分かりにくいかと思い図面を書いてみました。
もうしわけございませんがよろしくお願いいたします
0895デフォルトの名無しさん
NGNGかえって分かりづらい。>>1呼んだ?
0896デフォルトの名無しさん
NGNG一応問題の全文を書きました。
私の考えた事を書きますと、
1.入力プロセス&出力プロセスをcreateprocess関数で作成起動
2.入力プロセス:キーボードで"Hello world"を入力
3.メールスロットを使って出力プロセスへ渡す
4.受信待ちしていた出力プロセスが、"Hello world"を受け取る
5.出力プロセス:"Hello world"をファイルへ書き込む
6.出力プロセス:"Hello world"を表示
7.5と6が終わったら"OK"をメールスロットを使って入力プロセスへ返す
8.受信待ちしていた入力プロセスが"OK"を受け取る
9.入力プロセス:"OK"を表示する
10.入力プロセス:キーボードの入力待ち
こういう事ではないかと思います。どうもこの手順を書きながら思ったのですが
もしかすると学生がどこまで独学で出来るのかを図る意図があったのかもしれないですね。
0897デフォルトの名無しさん
NGNG>もしかすると学生がどこまで独学で出来るのかを図る意図があったのかもしれないですね。
そんな考えを持ちながら、このスレに投稿したというのか
0898デフォルトの名無しさん
NGNG>一応問題の全文を書きました。
どこに書いてあるの?
0899デフォルトの名無しさん
NGNG正しくは「描きました」ですね。すいません。
0900デフォルトの名無しさん
NGNGなるほど。了解です。
んで、図だけで文章無し?
0901デフォルトの名無しさん
NGNGはい。図だけでなのです。
>>894であるようにcreateprocessとmailslotを使う事を
口頭で指示されているのですが、文章はありません。
よろしくお願いいたします。
0902デフォルトの名無しさん
NGNG#include <stdio.h>
#include <stdlib.h>
int is_prime( int i )
{
int n;
for ( n = 2; n < i; n++ ){
if ( i % n == 0 ) return 0;
} /* for */
return 1;
}
int main()
{
int i, j;
j = 0;
for ( i = 2; i <= 1000; i++ ){
if ( is_prime( i ) ){
j = j + 1;
printf( "%5d", i );
if ( j == 10 ) {
printf( "\n" );
j = 0;
} /* if */
} /* if */
} /* for */
printf( "\n" );
return 0;
} /* main */
0903デフォルトの名無しさん
NGNG0904884
NGNGmain関数の中も教えていただけないでしょうか。お願いします。
0905デフォルトの名無しさん
NGNGstruct element{
char name[10];
int price;
struct element *pp;
};
void find(struct element *p){
略
}
int main() {
struct element melon = { "melon",500,NULL };
struct element orange = { "orange",100,&melon };
struct element apple = { "apple",150,&orange };
struct element *start = &apple;
find(start);
return 0;
}
なんか違うような気もするが。
0906デフォルトの名無しさん
NGNGinput file: foobar.c
output file: foobar2.c
というように最初に聞いて、その情報に基づいて動作するようにせよ。ただし、下線は手で打ち込んだ部分。また、変更した文字数などを最後に出力するようにせよ。
0907デフォルトの名無しさん
NGNGprintf("<html><head><title>hoge</title></head><body><table>");
for ( i = 2; i <= 1000; i++ ){
if ( is_prime( i ) ){
if(j == 0) printf("<tr>");
j = j + 1;
printf( "<td>%5d</td>", i );
if ( j == 10 ) {
printf( "</tr>\n" );
j = 0;
} /* if */
} /* if */
} /* for */
printf("</table></body></html");
0908デフォルトの名無しさん
NGNG#include <stdio.h>
#include <ctype.h>
int main() {
FILE *in_fp,*out_fp;
int c;
long count=0;
char in_file[80],out_file[80];
printf("input file: "); gets(in_file);
printf("output file : "); gets(out_file);
if((in_fp = fopen(in_file,"r")) != NULL) {
if((out_fp = fopen(out_file,"w")) != NULL) {
while((c = fgetc(in_fp)) != EOF) {
if(islower(c)) {
count++;
c = toupper(c);
}
fputc(c,out_fp);
}
}
fclose(out_fp);
}
fclose(in_fp);
return 0;
}
0909デフォルトの名無しさん
NGNG0910デフォルトの名無しさん
NGNG[問題]このソースコードを見てバグを探せ。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/lounge/index.html#1
ソースコードの訂正願いますに置いておきました。
宜しくお願いします。
0911904
NGNG配列を使ったりして、なんとか動くようにならないでしょうか。お願いします。
0912デフォルトの名無しさん
NGNGtoupper() は変換できない場合はそのままのコードを返すから、
fputc(toupper(c), out_fp); でおk。
0913デフォルトの名無しさん
NGNG>また、変更した文字数などを最後に出力するようにせよ。
0914デフォルトの名無しさん
NGNGカレンダーのか?インデントが酷すぎる。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1082632296&res=4&fi=no
まだおまいのコンパイラだとwarningが出るかも。
0915デフォルトの名無しさん
NGNGあー指摘するのも面倒くさい。そーすよめ
0916デフォルトの名無しさん
NGNGstruct element melon = { "melon",500,NULL };
struct element orange = { "orange",100,NULL };
struct element apple = { "apple",150,NULL };
struct element *start = NULL;
start = &apple; apple.pp = &orange; orange.pp = &melon;
に変えてみろ。
それとも挿入は自分で入力できるようにしたいのか?
0917デフォルトの名無しさん
NGNG#include <stdio.h>
#include <stdlib.h>
int ***malloc3Dint(int, int, int);
void free3Dint(int ***);
int main(void){
int l=2, m=3, n=4;
int ***aaai;
aaai = malloc3Dint(l, m, n);
aaai[1][2][3] = 123;
printf("%d\n", aaai[1][2][3]);
free3Dint(aaai);
return 0;
}
0918917
NGNGint i, j;
int ***aaai2;
int **aai2;
int *ai2;
if((aaai2 = (int ***)malloc(sizeof(int *)*l)) == NULL)
exit(1);
if((aai2 = (int **)malloc(sizeof(int *)*l*m)) == NULL)
exit(1);
if((ai2 = (int *)malloc(sizeof(int)*l*m*n)) == NULL)
exit(1);
for(i=0; i<l; i++){
for(j=0; j<m; j++)
aai2[i*m + j] = ai2 + i*m*n + j*n;
aaai2[i] = aai2 + i*l;
}
return aaai2;
}
void free3Dint(int ***aaai2){
free(aaai2[0][0]);
free(aaai2[0]);
free(aaai2);
}
このプログラムは何をやっているのか順を追って説明していただけませんか?
よろしくおねがいします。
0919910
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1082632296&res=3
3番目のやつです。
0920デフォルトの名無しさん
NGNGcount_bits()の中
> while (x){
> if(x&1U)count++;
> }
if文の次に x >>= 1; を追加。
以上。
0921助けてください。
NGNGわかる方お願いしますm(_ _)m
自力では何もできないもので。バカなんです。
次のような規則にしたがって離散時間tにおける状態xtから次の時刻t+1における状態xt+1が決まるシステムがある。
xt+1=tanh(axt) t=0,1,2,3.....
この規則を繰り返し適用すれば初期状態xoから出発してそれ以降の任意の時刻での系の状態を計算できる。
x0→x1→x2・・・→xt→・・・
次の2つの場合について初期値(正負どちらもあり得る)をいろいろ変えながら系の時間発展を計算せよ。典型的な例について状態xを時間の関数として図示し、系の振る舞いについてわかったことを述べよ。またなぜそうなるのかも考えてみよ。
(1)a=0.95の場合
(2)a=1.05の場合
マジお願いします。泣きそうなので。
0922ラポ
NGNGまたお願いしたいです。
スタックを初期化する関数 void stack_initialize(stack *stk)
およびスタックが空であるかどうかを判断する関数 int is_stack_empty(stack *stk) を作れ.
is_stack_empty は,スタックが空であるときに 1 を,空ではないときに 0 を返す.
0923デフォルトの名無しさん
NGNGstack の宣言はどうなってる?
0924デフォルトの名無しさん
NGNG初期化→スタックポインタを0にすればいいんだろ。
0925デフォルトの名無しさん
NGNG使ってないって感じがするから。
0926デフォルトの名無しさん
NGNGポインタならNULL使えって。
0927デフォルトの名無しさん
NGNGstack[sp++] = push_data;
stack[++sp] = push_data;
0928デフォルトの名無しさん
NGNG初期値の配列作って。ループ回して計算。
CVS形式でprintfした後,出力をExcelにでも読み込んで観察すれば?
プログラム書く必要がないなら,漏れはExcelだけで済ますけどな。
0929助けてください。
NGNG928>>
図と説明はいいとして最初のプログラムがわかりません。
わかる方教えていただけたら幸いです。
0930デフォルトの名無しさん
NGNGdouble x[10];
const int t_max = 1<<16;
const int t_delta = 1;
const double a=1.05;
printf("a=%f\n");
printf("0,\t");
for(i=0; i<sizeof(x)/sizeof(x[0]); ++i) { printf("%f,\t",x[i]=0.1*i); }
printf("\n");
for( i=1; i<t_max; i+=t_delta ){
printf("%d,\t",i);
for( j=0; j<sizeof(x)/sizeof(x[0]); ++i){
printf("%f,\t",x[i]=tanh(a*x[i]));
}
printf("\n");
}
しかし,SASとかグラフ描画ライブラリをか,しかるべきものを使うべき演習じゃねーのか,コレ?
0931デフォルトの名無しさん
NGNG毎回同じであってはならない
マスの左と上には座標数字を表示
マスの2行下に座標指定を‘XY’で入力する
‘00’を入力したら現在状態を破棄し、最初から始める
‘001’のように入力したらエラー、再入力
‘Z’を入力で終了する
座標指定入力において何を入力しても不正な動作はしない。
‘66’とか入力したら再入力にする
座標指定された位置、及び上下左右のマークを反対にする
指定された位置の上下左右が範囲外の時、何もしない。該当する部分のみ反対にする。
全マス同じマークになったら‘You win’を表示
全マス同じマークになったら何を入力しても最初から始める
条件は
グローバル変数はマスに使うtableのみ
ほかの変数はグローバルは認めない
メイン関数の中身は
初期化処理する関数
ランダムで○×を表示する関数
座標を入力する関数
マークを反転させる関数
その結果を表示する関数
全マス同じマークか判定する関数
You winを表示する関数
どうかよろしくお願いします。m(_ _)m
本当に泣きそうです・・・
0932デフォルトの名無しさん
NGNG■□■□■
□■■■□
■■■■■
□■■■□
■□■□■
この状態で、中央を指定すると、
■□■□■
□■□■□
■□□□■
□■□■□
■□■□■
このように反転する、と。
0933デフォルトの名無しさん
NGNGメイン関数の中身は関数、って嘘だろ?
0934931
NGNGそんな感じです
>>933
ユーザー定義関数で以下を作れと言われました。
で、メインから呼び出せと・・・
この説明で分かるでしょうか?
初期化処理する関数
ランダムで○×を表示する関数
座標を入力する関数
マークを反転させる関数
その結果を表示する関数
全マス同じマークか判定する関数
You winを表示する関数
0935デフォルトの名無しさん
NGNG0936デフォルトの名無しさん
NGNG>全マス同じマークになったら何を入力しても最初から始める
これがよく判らん…が、他は↓こんなんでいい?
tp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1074774948&res=8
0937デフォルトの名無しさん
NGNGまあそれくらいは自分でやってちょ。
0938デフォルトの名無しさん
NGNG「float a[][10]」と「float (*a)[10]」という
2つの関数の引数の宣言の違いについて
説明せよ、というのが分かりません。
お願いします。
0939デフォルトの名無しさん
NGNGfloat型の10要素配列の配列
0940デフォルトの名無しさん
NGNGttp://www1.linkclub.or.jp/~yon/haha/saru-img/saru0757.c
をポインタで書き換えたいのです。
//-------------------------------------------------------------------
// 以下のプログラムを作成してください
// 上記の四則演算関数の結果をポインタを用いて得るように改造する
// 次のような関数を作成する
// void Add(int a, int b, int *ans)
// void Sub(int a, int b, int *ans)
// void Mul(int a, int b, int *ans)
// void Div(int a, int b, int *ans)
//
//-------------------------------------------------------------------
初期値はプログラム内部で設定するので、入出力は気にしなくていいです。
お暇な方、よろしくお願いします<(_ _)>
0941デフォルトの名無しさん
NGNG{
*ans = a + b;
}
int x,y,z;
x = 10;
y = 5;
Add(x,y,&z);
これだけ書けば、あとは自分でできるよな、というほどの問題でもないが。
0944911
NGNG0945デフォルトの名無しさん
NGNG0946940
NGNG//-------------------------------------------------------------------
// 以下のプログラムを作成してください。
// 941の作ってくれた関数をさらに一般化します。演算の仕方も引数で渡してください
// void Calc(int calc, int a, int b, int *ans)
// calc == 0 和
// calc == 1 差
// calc == 2 積
// calc == 3 商
//
//-------------------------------------------------------------------
それで作ったプログラムを、また猿ロダにあげました
ttp://www1.linkclub.or.jp/~yon/haha/saru-img/saru0759.c
エラーが4つ、同じ関数の部分で出てしまいました。
どなたか添削していただけないでしょうか・・。
0947デフォルトの名無しさん
NGNG0948デフォルトの名無しさん
NGNG解説きぼん
0949デフォルトの名無しさん
NGNG最後の引き数 「&z」 を渡すことで
戻り値は z の中に入るから
「z = 」は要らないよん。
0950デフォルトの名無しさん
NGNG0951デフォルトの名無しさん
NGNG0952デフォルトの名無しさん
NGNGよくない
0953940
NGNG949ありが�d。947は、その通りですた。
「950のenumを使うのはC++だ」と言いたい951も(ついでに)ありがとお。
・・実は、この続きがもう一問ありまつ。
//---------------------------------------------------------
//
// さきほどのソースファイルの関数をさらに完全なものとする
// �@返り値を付加する(0なら正常/1ならエラー)
// �A計算方法を分かりやすくするため、#define定義にする
//
//---------------------------------------------------------
これで最後です。最終形態のラスボスです。
クリアしてエンディングを自力で見たいので、もちっと考えますが。
0954デフォルトの名無しさん
NGNG>>951は単なる宣伝なので、礼を言うことはない。
0955デフォルトの名無しさん
NGNG0956デフォルトの名無しさん
NGNGマルチ帰れ。
自然定数eなんてものは存在しないだろ。
0957デフォルトの名無しさん
NGNG>enumを使うのはC++だ
意味不明
0958デフォルトの名無しさん
NGNG0959デフォルトの名無しさん
NGNG0960デフォルトの名無しさん
NGNGそこまでマルチに徹するとは。
おそれいった。
0961デフォルトの名無しさん
NGNG貼り付けたい時はどうすればいいですか?
I am a boy.
I like 2ch.
↓
.yob a ma I
.hc2 ekil I
こんな感じです。
0962デフォルトの名無しさん
NGNG0963デフォルトの名無しさん
NGNG0964マルチやめれ >>955
NGNG#include <iomanip>
#include <limits>
#include <cmath>
double exp_(){
double tmp = 1.0; // eを計算するための一時変数
double term = 1.0; // eの展開級数の各項を保存する変数
int k = 1; // 展開級数の項番号
double eps = std::numeric_limits<double>::epsilon(); // machine epsilon
while( term / tmp > eps ){ // 収束判定
term /= k;
// 展開級数の各項が1 / k!なので,前の項の計算結果を使って
// 1 / k! = 1 / (k-1)! * (1 / k)
// と計算できる
tmp += term; // 各項を足していく
++k; // 次の項の計算へ
}
return tmp;
}
int main(int argc, char *argv[]){
std::cout << std::setprecision(15); // 表示精度を15桁に
std::cout << exp_() << std::endl; // 計算結果表示
std::cout << std::exp(1.0) << std::endl; // 比較のため
}
0965デフォルトの名無しさん
NGNG一行の長さが1023超えたら条件を満たさなくなる。
ってことで、こんなもんかな。
static bool revCpChr(FILE *fpSrc, FILE *fpDest);
void revCp(FILE *fpSrc, FILE *fpDest)
{
while (revCpChr(fpSrc, fpDest)) {
}
}
bool revCpChr(FILE *fpSrc, FILE *fpDest)
{
int ch = fgetc(fpSrc);
switch (ch) {
case EOF:
return false;
case '\n':
return true;
default:
bool rtn = revCpChr(fpSrc, fpDest);
fputc(ch, fpDest);
return rtn;
}
0966965
NGNGついでに蛇足ながら、
FILE *fpSrc = fopen("original", "r");
FILE *fpDest = fopen("reversed", "w");
revCp(fpSrc, fpDest);
fclose(fpSrc);
fclose(fpDest);
って感じで利用する。
0967デフォルトの名無しさん
NGNGそれは自然対数の底。
0968デフォルトの名無しさん
NGNG0969デフォルトの名無しさん
NGNGあきれるほどに既出
0970デフォルトの名無しさん
NGNG0971デフォルトの名無しさん
NGNG0972デフォルトの名無しさん
NGNG0973961
NGNG0974素人
NGNG失敗した。このあとどのような処置をすればよいか
具体的に述べよ。」って出たんですけどわかりますか?
0975デフォルトの名無しさん
NGNGコンパイラへのパスが通っていなければ、パスを通す。
文法エラーならば問題箇所を修正する。
0976デフォルトの名無しさん
NGNG2ちゃんねるの適当なスレに高慢ちきな態度をもって丸投げする。
レスがくれば逆ギレし噛み付く。
するとあら不思議、解決してしまう。
0977デフォルトの名無しさん
NGNG0978デフォルトの名無しさん
NGNG0979デフォルトの名無しさん
NGNG0980デフォルトの名無しさん
NGNGC/C++の宿題をやらせて、お兄ちゃん 22代目
http://pc5.2ch.net/test/read.cgi/tech/1083050221/
0981デフォルトの名無しさん
NGNGスレタイがきもいから立て直していいか?
0982デフォルトの名無しさん
NGNG0984デフォルトの名無しさん
NGNG0985デフォルトの名無しさん
NGNGきもいから立て直すというその思考がきもい
0986デフォルトの名無しさん
NGNG0987デフォルトの名無しさん
NGNG0988デフォルトの名無しさん
NGNG☆))Д´)←>>985
_, ,_ ∩☆))Д´)←>>986
( ‘д‘)彡☆))Д´)←>>987
⊂彡☆))Д´)←>>989
☆))Д´)←>>990
0989デフォルトの名無しさん
NGNG0990デフォルトの名無しさん
NGNG0991デフォルトの名無しさん
NGNG0992デフォルトの名無しさん
NGNGレス数が950を超えています。1000を超えると書き込みができなくなります。