C/C++の宿題やらせてください。おながいします
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
NGNG今まで1年*ヶ月、ほとんど毎日休まず一生懸命C++を勉強してきた。
ついでに今はJavaと基本情報もやっている。
わからない宿題若しくは処理があったら私にやらせてくださいm(_ _)m
4代目(前スレ): http://pc2.2ch.net/test/read.cgi/tech/1045074808/l50
3代目: http://pc2.2ch.net/test/read.cgi/tech/1041992392/l50
2代目: http://pc3.2ch.net/test/read.cgi/tech/1039772622/l50
宿題手伝いますYO!!: http://pc3.2ch.net/test/read.cgi/tech/1038024989/l50
0002デフォルトの名無しさん
NGNG0003デフォルトの名無しさん
NGNG前スレの話だが汎用の値交換に興味のある向きは
BSD や GNU の libc/stdlib/qsort.c を見るといいやも
0004C初心者
NGNGn行m列の表を作ろうと思ったのですがうまくいきません。
超初心者的な質問で申し訳ないですが、どなたかご教授下さい。
#include "sfcgl.h"
void display()
{
BGColor(0, 0, 0);
int i,j;
double n,m,x,y;
for(i = 0; i < n; i++){
x = 10.0 + 10*i;
DrawLine(x, 0.0, 0.0, x, n*100 , 0.0);
}
for(j = 0; j < m; j++){
y = 10.0 + 10*j;
DrawLine(0.0, y, 0.0, m*100, y, 0.0);
}
SGSwapFrames();
}
int main(int argc, char** argv) {
int n,m;
scanf("%d%d",&n,&m);
SGInit(argc, argv);
SGOpenWindow(50, 50, 500, 500);
SG2DMode();
SGSetDisplay(display);
SGCallBack();
return 0;
}
mainで読み込んだn,mをvoid displayに関連させる方法が分りません。
0005デフォルトの名無しさん
NGNGvoid display(double n,m) /* ←引数にする */
{
BGColor(0, 0, 0);
int i,j;
double x,y; /*←ローカル変数のm,nは削除*/
for(i = 0; i < n; i++){
x = 10.0 + 10*i;
DrawLine(x, 0.0, 0.0, x, n*100 , 0.0);
}
0006デフォルトの名無しさん
NGNGglibcはdo{}while(0)マクロを使っていたと思う。
0007C初心者
NGNGでもそれをやると
parse error before m と
m undeclared, n undeclared
とエラーが出ます。引数にするのは正しいと思うのですが、
なぜかできない・・・。
スマソ
0008bloom
NGNG0009デフォルトの名無しさん
NGNGvoid display(double n,double m)
0010デフォルトの名無しさん
NGNG質問の問いのを作ってるのですが、カーソルにあたった時の処理ってどうでしたっけ?
・ボールの角度が垂直×真ん中にあたった=垂直のボールが飛ぶ
・ボールの角度が垂直×端にあたった=端にあたるほど角度の無いボールが飛ぶ
・ボールの角度が垂直でない×真ん中にあたった=その角度を反転させたボールが飛ぶ
・ボールの角度が垂直でない×端にあたった=?
?の部分を教えてください。元のボールの角度に関係なくあたった位置により角度を作るか、
元のボールの位置とあたった位置を平均して角度を作るのどちらかっぽいのですが。
0011C初心者
NGNGしかしできず。萎え・・・。
passing arg 1 of SGSetDisplay from imcompatible pointer type
と出ます。
何度も何度もスマソですがこのエラーの対処方わかります?。
0012デフォルトの名無しさん
NGNGお前はそのエラーメッセージが読めんのか?
0013デフォルトの名無しさん
NGNG0014デフォルトの名無しさん
NGNGヒント。
自分自身の書いた関数名を渡そうとしていないか?
そのSGなんたらには何を渡すべきか判っているのか?
0015C初心者
NGNG問題は上の()の中に入れる関数だと思うのですが、
(display(n,m))と入力しても voidエラーが出て実行できません。
英語が駄目駄目なんでエラー文の意味もまともに解釈できず困ってます。
神の方どうかご教授下さい。
0016デフォルトの名無しさん
NGNGとりあえず関数ポインタについて勉強してからにした方がいいよ
0017デフォルトの名無しさん
NGNG博識者を神とおだてるより自分で調べろよ。
英語がわからないならオンライン辞書でも使えばいいしさ。
エラーをヘルプで検索するってのもできるだろ?
0018C初心者
NGNG勉強いたしたいと思います。ですがとりあえずこのプログラムが
上手くいく方法をご教授願えないでしょうか?よろしくお願いします。
0019デフォルトの名無しさん
NGNG英語も勉強しろ。
sageも覚えろ。
さて、「とりあえず」のコードをやろう。
#include "sfcgl.h"
int n,m;
void display()
{
BGColor(0, 0, 0);
int i,j;
double x,y;
〜〜〜〜〜〜〜〜〜〜〜〜
〜〜〜〜〜〜〜〜〜〜〜〜
}
int main(int argc, char** argv) {
scanf("%d%d",&n,&m);
SGInit(argc, argv);
SGOpenWindow(50, 50, 500, 500);
SG2DMode();
SGSetDisplay(display);
SGCallBack();
return 0;
}
このライブラリは描画関数に引数を渡せんのか・・・。不便だな。
0020デフォルトの名無しさん
NGNG> sageも覚えろ。
これは余計
0021デフォルトの名無しさん
NGNG0022デフォルトの名無しさん
NGNGヒントなんかくれなくていいから答えだせ、と
0023C初心者
NGNGありがとうございます。おかげさまで実行できますた。
0024デフォルトの名無しさん
NGNG0025デフォルトの名無しさん
NGNG質問スレ乱立防止策には成り得ませんか?ダメ?
0026デフォルトの名無しさん
NGNGなんでnとmへの入力をmain関数で受けるの?
0027デフォルトの名無しさん
NGNGchar *p = 'A';
char *p = "A";
次に上記のようにポインタ変数に初期値を与えるのでなく、
代入によって与えるような次のプログラムを書いた。
このプログラムに誤りがあるとすれば指摘しなさい。
#include<stdio.h>
int main(void)
{
char *p;
*p = 'A';
printf("*p = %c",*p);
return 0;
}
よろしくお願いします。
0028デフォルトの名無しさん
NGNG0029デフォルトの名無しさん
NGNG怪しい問題だな。写し間違いか?
0030デフォルトの名無しさん
NGNG>char *p = "A";
上、ろくな事にならんぞ。
0031デフォルトの名無しさん
NGNG>char *p;
>*p = 'A';
>printf("*p = %c",*p);
pは有効な変数を指してないのでまともに動かね
0032デフォルトの名無しさん
NGNGmain(){
int i;
float f;
f=1234.0098;
i=f;
printf("%f %d",f,i);}
1234.0098 1234 と表示されるはずが
1234.009766 1234 と表示されます。
どうしてですか?教えてください。
ちなみに環境はwinXP,bcc5.5です
0033デフォルトの名無しさん
NGNG重箱の隅だが「pは有効な変数を指してない」はいかがなものか
0034デフォルトの名無しさん
NGNG> char *p = 'A';
> char *p = "A";
Cではcharはintと等価だから、上のは代入の時点で普通Warning吐かれるよ。
まあ、そういうことを言いたいんじゃないと思うけど。
とりあえず'A'は値を代入、"A"はアドレスを代入することになるから。
char *p = 'A'は多分、コンパイル通ってもAccess Viorationで落ちるね。
このプログラム、なんか少し前のVCLの某文字列クラスのバグを皮肉ってるようでなんかムカつく。
>>32
C、というかprintfはfloat型を出力できません。
すべてdouble型に暗黙の型変換されます。
0035デフォルトの名無しさん
NGNG2進数 →10進数
00000000 → 0
10000000 → -128 でいいの?
10000001 → -1
01111111 → 128 ?
助けて
0036デフォルトの名無しさん
NGNG× int型って-127〜128だったっけ?
○ 00000000 → 0
○ 10000000 → -128
× 10000001 → -1
× 01111111 → 128
× 助けて
003735
NGNG00000000 → 0
10000000 → -128
11111111 → -1
01111110 → 127
助けて
0038デフォルトの名無しさん
NGNG× char型って-128〜127だっけ?
○ 00000000 → 0
○ 10000000 → -128
○ 11111111 → -1
× 01111110 → 127
× 助けて
003935
NGNG00000000 → 0
10000000 → -128
11111111 → -1
01111111 → 127
10000001 → -127
10000010 → -126
分かった!
0040デフォルトの名無しさん
NGNGそうなんですか?でも、誤差はでませんよね??
0041デフォルトの名無しさん
NGNG× char型って-128〜127だろ!
○ 00000000 → 0
○ 10000000 → -128
○ 11111111 → -1
○ 01111111 → 127
○ 10000001 → -127
○ 10000010 → -126
× 分かった!
0042デフォルトの名無しさん
NGNG004335
NGNG中略
分かりません。
0044デフォルトの名無しさん
NGNG型の取り得る値の範囲は処理系依存。(CHAR_MIN〜CHAR_MAX)
char型が符号付か符合無しかも処理系依存。
0045デフォルトの名無しさん
NGNG丸め誤差とかのことでしょ?
0.0098に対して0.009766は誤差がありすきでしょう。
0046デフォルトの名無しさん
NGNGprintf("%f",FLT_EPSILON);
0047デフォルトの名無しさん
NGNGsigned charなら確実にその範囲は表せる。
004847
NGNG004935
NGNGchar型は1バイトでしょう?8ビット。
256個の整数を表せるのでは?
-128〜127は256個
-127〜127では255個です。
unsigned charでは0〜255なので256個
リナックスとウィンドウズは想像以上に違うの?
つうかリナックスの何処に<stdio.h>ってあるのですか?
#include <stdio.h>
って書いて意味あるの?
0050デフォルトの名無しさん
NGNG補数って知ってますか?
0051デフォルトの名無しさん
NGNG最低8ビットだけど、8ビットとは限らない。
limits.hの中のCHAR_BITがビット数
で、8ビットかつ1の補数表現なら最低は-127
1の補数表現だと全ビット0と全ビット1がどちらも値として0になる。
> つうかリナックスの何処に<stdio.h>ってあるのですか?
多分/usr/include
stddef.hとかは別の場所にあるかも。
005235
NGNGありがとうございました。
0053デフォルトの名無しさん
NGNGIEEE754ならfloatの32bitの内訳は符号sが1bit, 指数eが8bit, 仮数mが23bitなので
有効数字は2進で24桁、約7桁だから期待通りの結果だと思うが?
ttp://www.bohyoh.com/CandCPP/FAQ/FAQ00046.html
読めば全て解決。
昔、漏れも C の先生に
sizeof int 以外は処理系に依らず決まってる
と嘘つかれますた。
0055デフォルトの名無しさん
NGNGttp://www-ccs.ucsd.edu/c/types.html#Basic%20Integer%20Types
ttp://www-ccs.ucsd.edu/c/limits.html
ttp://www-ccs.ucsd.edu/c/
0056デフォルトの名無しさん
NGNG{
for (i = 0; i < 2; i++) {
int temp = vc[i];
vc[i] = vc[4 -i];
vc[4 -i] = temp;
}
return(vc[i]);
}
どこをどう治したらいいかわからん
あと
c:7: warning: declaration of `i' shadows a parameter
これはなに?
0057デフォルトの名無しさん
NGNGなぜint vcを配列として扱う?
0058デフォルトの名無しさん
NGNGその程度の英語くらい何とかしろよ。
そのソースには書いてないようだが、
パラメータでiを宣言しているのに関数内でも宣言してないか?
0059デフォルトの名無しさん
NGNGただのループカウンタを引数にすんなよ。
0060デフォルトの名無しさん
NGNG何をしたいプログラムなの?
0061デフォルトの名無しさん
NGNG% echo 'void f(int i){
int i;};' | gcc -c -xc -
: In function `f':
:2: warning: declaration of `i' shadows a parameter
0062デフォルトの名無しさん
NGNG{
int i;
for (i = 0; i < 2; i++) {
int temp = vc[i];
vc[i] = vc[4 -i];
vc[4 -i] = temp;
}
return(vc[n]);
}
0063デフォルトの名無しさん
NGNG中途半端なスワップ関数だなぁ・・・。
0064デフォルトの名無しさん
NGNG006556「
NGNG使わないやり方教えてください
0066デフォルトの名無しさん
NGNGおいおい、それ以前にやることがあるだろ。
・自分がどんな関数を書きたかったのか
・書かれたことは理解できたか
・ついでにお礼も
ここは質問スレじゃないんだからネタ提供せずに質問だけするなよ。
#あ、ネタにはなってるのか。
0067デフォルトの名無しさん
NGNGvoid one(int i, int *vc)
{
for (; --i > 0; vc++) {
int temp = *vc;
*vc = vc[i];
vc[i] = temp;
}
}
0068デフォルトの名無しさん
NGNGvc[n]はintだから型もあっているし。
0069デフォルトの名無しさん
NGNG007056「
NGNG#include <stdio.h>
#define NUMBER 5
void one(int i, int *vc)
{ for (; --i > 0; vc++) {
int temp = *vc;
*vc = vc[i];
vc[i] = temp;
} }
int main(void)
{
int i;
int vc[5];
puts("5個の整数を入力してください。");
for ( i = 0;i < 5; i++){
printf("%2d番目:", i + 1); scanf("%d", &vc[i]);
}
puts("逆に並べると");
for (i = 0;i < 5; i ++)
printf("vc[%d]=%d\n", one(i, *vc ));
return(0);
}
: In function `main':
:26: warning: passing arg 2 of `one' makes pointer from integer without a cast
:26: invalid use of void expression
さっぱりでつ お願いします
0071デフォルトの名無しさん
NGNG> printf("vc[%d]=%d\n", one(i, *vc ));
なぜ*vcと間接参照する。参照しないでポインタを渡すの。
007271
NGNG007356「
NGNG0074デフォルトの名無しさん
NGNG#include <stdio.h>
#define NUMBER 5
void one(int i, int *vc)
{ for (; --i > 0; vc++) {
int temp = *vc;
*vc = vc[i];
vc[i] = temp;
} }
int main(void)
{
int i;
int vc[5];
puts("5個の整数を入力してください。");
for ( i = 0;i < 5; i++){
printf("%2d番目:", i + 1); scanf("%d", &vc[i]);
}
puts("逆に並べると");
one(i, vc );
for (i = 0;i < 5; i ++)
printf("vc[%d]=%d\n", i,vc[i]);
return(0);
}
0075デフォルトの名無しさん
NGNG漏れは礼はいらんと思う。理解できたかどうかだけが意味がある。
0077デフォルトの名無しさん
NGNG紛らわしかったかもしれんが75≠56
0079デフォルトの名無しさん
NGNGもう一つ引かないといけないんじゃない?
void one(int i, int *vc)
{
for (; --i > 0; vc++, i--) {
int temp = *vc;
*vc = vc[i];
vc[i] = temp;
}
}
0080デフォルトの名無しさん
NGNGfor (; --i > 0;)
*vc++ ^= vc[i--] ^= *vc ^= vc[i];
}
0081__
NGNG( ・∀・)/< こんなのみつけたっち♪
http://www.yamazaki.90.kg/moe/hankaku07html
http://yamazaki.90.kg/mona/index.html
http://www.yamazaki.90.kg/moe/hankaku08.html
http://yamazaki.90.kg/moe/hankaku10.html
http://www.yamazaki.90.kg/moe/hankaku07.html
http://yamazaki.90.kg/moe/hankaku03.html
http://www.yamazaki.90.kg/moe/hankaku05.html
http://yamazaki.90.kg/moe/hankaku01.html
http://www.yamazaki.90.kg/moe/hankaku06.html
http://yamazaki.90.kg/moe/hankaku04.html
http://www.yamazaki.90.kg/moe/hankaku09.html
0082デフォルトの名無しさん
NGNG1.1926以上2002以下の数(西暦)をキーボードから入力すると、「昭和45年です」とか
「平成6年です」とか和暦に直すプログラム。1926年の場合は「昭和元年です」
1989年の場合は「平成元年です」と表示するように。
で、1925以下や2002以上が入力されると「入力は1926-2001の間にして下さい」と表示。
2.Aさん、Bさんが階段じゃんけんゲームをシュミレーションするプログラム。
ルールは・・・
○プレイヤー2人は、最初階段の0段目にいてじゃんけんする。
○じゃんけんの勝者はグーで勝てば1段、チョキで勝てば2段、パーで勝てば5段
階段を登ることが出来る。あいこは0段。
○10回のじゃんけんの結果、より高い段に居た方が勝ち。
3.「2のn乗 −2」がnで割り切れるなら素数であるという定理を使って、2〜20までの
素数を全て求めよ。
0083デフォルトの名無しさん
NGNGおまえら、無駄が多い。
0084デフォルトの名無しさん
NGNGお前は無駄レスだけ。
0085デフォルトの名無しさん
NGNG> 3.「2のn乗 −2」がnで割り切れるなら素数であるという定理を使って、2〜20までの
この定理、なんか変じゃないか???
0088デフォルトの名無しさん
NGNG2^3-2=6
2^4-2=14 ×
2^5-2=30
...
0089デフォルトの名無しさん
NGNG0090デフォルトの名無しさん
NGNGn=341の時はその定理は成り立たない。nが20以下には全部適用できるね。
009187
NGNGなるほど「問題文の日本語が変」なだけだw
3.「2のn乗 −2」がnで割り切れるなら "nが" 素数であるという定理を使って、2〜20までの
素数を全て求めよ。
ってことね。
0092デフォルトの名無しさん
NGNG0093デフォルトの名無しさん
NGNG配列を上位桁から表示するようにして欲しいです。
関数は
int card_conv(unsigned x, int n, char d[])
{
int i;
char dchar[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
int digits = 0;
if (x == 0)
d[digits++] = dchar[0];
else
while (x) {
d[digits++] = dchar[x % n];
x /= n;
}
for (i = 0; i < n / 2; i++)
swap(int, d[i], d[n - i - 1]);
return (digits);
}
0094デフォルトの名無しさん
NGNGint main(void)
{
int i;
unsigned no;/* 変換する整数 */
int cd;/* 基数 */
int dno;/* 変換後の桁数 */
char cno[100];/* 変換後の各桁を格納する文字の配列 */
int retry;/* もう一度? */
do {
printf("正の整数値を入力してください:");
scanf("%u", &no);
do {
printf("何進数に変換しますか(2-36):");
scanf("%d", &cd);
} while (cd < 2 || cd > 36);
dno = card_conv(no, cd, cno);/* noをcd進数に変換 */
printf("%d進数では", cd);
for (i = dno - 1; i >= 0; i--)/* 上位桁から順に表示 */
printf("%c", cno[i]);
printf("です。\n");
printf("もう一度しますか(1…はい/0…いいえ):");
scanf("%d", &retry);
} while (retry == 1);
return (0);
}
0095デフォルトの名無しさん
NGNGswap(int, d[i], d[n - i - 1]);
for (i = 0; i < digits / 2; i++)
swap(int, d[i], d[digits - i - 1]);
0096デフォルトの名無しさん
NGNGこの書式指定では駄目なのでしょうか?
#include <stdio.h>
#include <string.h>
struct tell{
char name[20];
char tele[20];
};
main(){
char *a,*b;
struct tell c[255];
int i,j=0;
while(1) {
printf("全角5字以内で、氏名を入力せよ。 終了:e\n");
scanf("%s",&a);
if (a == "e") break;
strcpy(c[j].name, a);
printf("半角20字以内、ハイフン編集して、電話番号を入力せよ。 終了:e\n");
scanf("%s",&b);
if (b == "e") break;
strcpy(c[j].tele, b);
j++;
}
printf("氏名 電話番号\n");
for (i=0;i>j;i++) {
printf("c[i].name c[i].tele\n");
}
}
009796
NGNG0098デフォルトの名無しさん
NGNGchar a[1000]
0099デフォルトの名無しさん
NGNGscanf("%s",a);
0100デフォルトの名無しさん
NGNGexploitコードの見本ですか?
0101デフォルトの名無しさん
NGNG> char cno[100];/* 変換後の各桁を格納する文字の配列 */
変換対象が unsigned no なら 100 もとることはなかろう。
0102デフォルトの名無しさん
NGNG0103デフォルトの名無しさん
NGNG0104デフォルトの名無しさん
NGNGftp://ftp.matsusaka-u.ac.jp/pub/algorithms/src/gauss.c
ftp://ftp.matsusaka-u.ac.jp/pub/algorithms/src/matutil.c
0105102
NGNG有難く頂いておきますが。
0106デフォルトの名無しさん
NGNG『アルゴリズム事典』は持っとけ。良くできた本だから。
ttp://www.gihyo.co.jp/books/syoseki.php/4-87408-414-1
ttp://www.matsusaka-u.ac.jp/~okumura/algo/
ttp://www.amazon.co.jp/exec/obidos/ASIN/4874084141
0107その1
NGNG86ではないが、2をやってみますた
#include <stdio.h>
#include <time.h>
int nyuryoku(){
int t;
while(1){
printf("1:グー 2:チョキ 3:パー\n");
scanf("%d",&t);
if(t<=0||t>=4){
printf("1 2 3のどれかを入力して下さい!\n");
} else {
break;
}
}
return t;
}
0108その2
NGNGif(a==b){return 0;}
if(a==1&&b==2)return 1;
if(a==1&&b==3)return -5;
if(a==2&&b==1)return -1;
if(a==2&&b==3)return 2;
if(a==3&&b==1)return 5;
if(a==3&&b==2)return -2;
}
void main(){
int pla=0,plb=0;//A,Bのいる位置
int i;
int ta,tb;//じゃんけんの手
int jan;
char *s;
time_t a;
0109その3
NGNGfor(i=1;i<=10;i++){
ta=nyuryoku();
tb=time(NULL);
tb=tb%3+1;
jan=janken(ta,tb);
if(jan>=0){
pla=pla+jan;
printf("Aの勝ち\n");
printf("Aは階段を%d段上がりました\n",jan);
} else {
plb=plb-jan;
printf("Bの勝ち\n");
printf("Bは階段を%d段上がりました\n",-jan);
}
}
if(pla<plb)s="Bの勝ちです";
if(pla==plb)s="あいこです";
if(pla>plb)s="Aの勝ちです";
printf("Aは%d段に、Bは%d段にいるので%s",pla,plb,s);
}
0110107
NGNGもっと上手い方法きぼんぬ
0111デフォルトの名無しさん
NGNG0112102
NGNGコンパイルしたけど下の奴はコンパイルできねえし
gauss.cは出来たけど実行したら
nしか入れられないじゃないか!
2 2 3 x 10
3 2 3 y = 9
9 2 3 z 8
とかやりたいの!
0113107
NGNGいいプログラムきぼんぬ
っていうか、janken関数が自分で書いててなんか気持ち悪い
0114デフォルトの名無しさん
NGNGstatic int const *const sSteps[] = {0, 1, -5, -1, 0, 2, 5, -2, 0};
return sSteps[(a - 1) * 3 + (b - 1)];
}
0115107
NGNGAを行列として
Ax=y
を解きたいんでしょ?
線形代数の教科書に載ってる、余因子を使って逆行列を求める方法を使えば?
1.A,yの値を入力する
2.detAを求め正則かどうかを判別する
3.余因子を計算し、それを用いてAの逆行列A^(-1)を求める
4.x=A^(-1)yを計算し、表示する
0116107
NGNGおぉ、成る程
いい方法教えてくれて有難うございます
0117デフォルトの名無しさん
NGNG#define NGAMES 10
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
int
main(int argc, char **argv)
{
unsigned long seed;
int a = 0, b = 0, x, y, i;
int p[3][3][2]={{{0,0},{1,0},{0,1}},{{0,1},{0,0},{1,0}},{{1,0},{0,1},{0,0}}};
char *name[3] = {"goo", "choki", "paa"};
seed = argc > 1 ? atoi(argv[1]) : time(NULL);
srandom(seed); printf("# seed = %ld\n", seed);
for (i=0; i<NGAMES; i++){
x = random()%3; y = random()%3; a += p[x][y][0]; b += p[x][y][1];
printf("turn %2d: A:%5s(%2d), B:%5s(%2d)\n", i+1, name[x], a, name[y], b);
}
if (a < b) puts("B won"); else if (a > b) puts("A won"); else puts("draw");
return 0;
}
0119デフォルトの名無しさん
NGNG行列式は知ってる?
この場合行列式(detAと書く)が0になるから
解は無限に存在するんだよ
0120デフォルトの名無しさん
NGNGこの場合、条件を満たすx,y,zは存在しないみたいね
0121102
NGNG0122デフォルトの名無しさん
NGNG{
Mona, Giko, Shii
};
ってenumがあったとき、
関数(Mona) // 0を返す
関数(Giko) // 1
関数(Shii) // 2
って関数がC++にあったような木がするのですが、
俺様の気のせいですか?
0123デフォルトの名無しさん
NGNG別に関数なんて使わないでも値指定しなきゃ
デフォで012,、って入ってる気がするが俺の気のせいですか?
0124デフォルトの名無しさん
NGNG#define C 2
#define P 5
int win(int a, int b) {
return a == G && b == C || a == C && b == P || a == P && b == G;
}
if (win(a, b)) c += a;
else if (win(b, a)) d += b;
こんな感じでどう?
0125デフォルトの名無しさん
NGNGデフォ。1個目は省略すると0、2個目からは++していく。
0126デフォルトの名無しさん
NGNG↓
「乱数つかえよ?アホ共」と思い、boost::mt19937にstd::timeで実装してみる。
↓
あいこの判定がないのに気づく。
↓
完成しレスするかと読み返していると、ふと「場合によっては10回ループ中で、あいこの無限ループ?」という事実に気づく。
↓
女々しくZThreadで逃げてみる。
↓
数レスでは収まらない馬鹿長いコードになっている。
↓
他人のために数時間を無駄にしていることに気づき、なにもかも忘れようとゲームを始める。
↓↑
なにか納得いかない。(繰り返し)
0127デフォルトの名無しさん
NGNG>>117
0128デフォルトの名無しさん
NGNG蛇足だが、補足
行列式が0だからといって解が無限にあるという考えは間違い。
一般の非斉次の場合、解が無い場合がほとんど。
つまり連立方程式は
1)解が一組だけある。
2)解そのものが無い
3)無限組ある
の3つの場合が起こりえるが、このうち行列式=0で起こるのは2)3)
のいずれか。
0129デフォルトの名無しさん
NGNGそれでも>>128の内容は数Cの教科書に載ってますな。
0130デフォルトの名無しさん
NGNG最近の中学校と高校の数学の教科書見ましたけど、こんなんで日本は大丈夫なのか?
って思っちゃいました。
これで思考力をつけるとか言ってるんだから正気じゃないね。
基礎力のないところに思考力もへったくれもないだろっての!
0131102
NGNG0132デフォルトの名無しさん
NGNG行列式(det)なんて、大学入るまで習ってねーぞー。
確か・・・。
0133デフォルトの名無しさん
NGNG作りたいんですけど作れません。どなたか教えてくださいm(_ _)m
0134デフォルトの名無しさん
NGNG0135デフォルトの名無しさん
NGNGマカセタ!
0136デフォルトの名無しさん
NGNGガンバッテ!
0137デフォルトの名無しさん
NGNGとりあえず、これだけ聞くと、memcpyで出来そうな気がするけど。
0138デフォルトの名無しさん
NGNGこないだ知合いの高3に数C教えたけど、逆行列は載ってたよ。
「行列式」という言葉や「det A」はなぜか書いてなかったけど、
同じものをΔと書いて>>128と同じことが説明してあった。
ついでにいうと、その数Cの教科書には掃き出し法による
連立一次方程式の数値解法のBASICのコードも載ってた。
つうか、今の数Cの教科書の行列のところは、和、積、ケーリーハミルトン、
逆行列、連立一次方程式、掃き出し法しかのってないんだけど。
線形空間の言葉が全然出てこなくておじさんクラクラしたよ。
0139デフォルトの名無しさん
NGNGfor (; *s; s++) putchar(' ');
}
for (;; x++) {
locate(x, y);
puts(s);
if (end) break;
locate(x, y);
erase(s);
}
0140デフォルトの名無しさん
NGNGむぅ。
0141デフォルトの名無しさん
NGNGありが�d
0142デフォルトの名無しさん
NGNG#define NUMBER 5
void one(int i, int vc[])
{
while(i < 2) {
int temp = vc[i];
vc[i] = vc[4 -i];
vc[4 -i] = temp;
i++;
} }
int main(void)
{
int i;
int vc[5];
i = 0;
puts("5個の整数を入力してください。");
while (i < 5 ){
printf("%2d番目:", i + 1); scanf("%d", &vc[i]);
i++;
}
puts("逆に並べると");
one(i, vc );
while (i < 5) { ←ここの部分が表示されないんだけど
printf("%d\n", vc[i]); 助けてください
i++;
}
puts("となります。");
return(0);
}
0143デフォルトの名無しさん
NGNG1番目: 5
2番目: 80
3番目: 110
4番目: 2200
5番目: 33000
逆にならべると
33000
2200
110
80
5
となります.
こんな風にしたいんですがおながいします
0144デフォルトの名無しさん
NGNG0145デフォルトの名無しさん
NGNG{
i = 0;
while(i < 2) {
int temp = vc[i];
vc[i] = vc[4 -i];
vc[4 -i] = temp;
i++;
} }
0146デフォルトの名無しさん
NGNG#define NUMBER 5
void reverse(int i, int *vc) {
for (; --i > 0;)
*vc++ ^= vc[i--] ^= *vc ^= vc[i];
}
int main(void)
{
int i, vc[NUMBER];
printf("%d個の整数を入力してください。\n", NUMBER);
for ( i = 0;i < NUMBER; i++){
printf("%2d番目:", i + 1); scanf("%d", &vc[i]);
}
puts("逆に並べると");
reverse(NUMBER, vc);
for (i = 0;i < NUMBER; i++)
printf("vc[%d]=%d\n", i,vc[i]);
return 0;
}
0147デフォルトの名無しさん
NGNG5個の整数を入力してください。
1番目:1
2番目:2
3番目:3
4番目:4
5番目:5
逆に並べると
となります。 ←ここのところが抜けちゃう運ですよ
0148デフォルトの名無しさん
NGNGprintf("%d\n", vc[i]); 助けてください
i++;
}
for (i=0; i<5; i++) printf("%d\n", vc[i]);
0149デフォルトの名無しさん
NGNG> *vc++ ^= vc[i--] ^= *vc ^= vc[i];
また、「 未 定 義 」か...。
0150デフォルトの名無しさん
NGNGwhileぶんで作らなければならないんですよ
0151デフォルトの名無しさん
NGNGwhile (i < 5) { ←ここの部分が表示されないんだけど
printf("%d\n", vc[i]); 助けてください
i++;
}
0152デフォルトの名無しさん
NGNGそりゃあ、その行には出力するための処理がないからね。
0153デフォルトの名無しさん
NGNGforを使え forを使え forを使え forを使え forを使え forを使え forを使え
forを使え forを使え forを使え forを使え forを使え forを使え forを使え
forを使え forを使え forを使え forを使え forを使え forを使え forを使え
forを使え forを使え forを使え forを使え forを使え forを使え forを使え
forを使え forを使え forを使え forを使え forを使え forを使え forを使え
forを使え forを使え forを使え forを使え forを使え forを使え forを使え
0154デフォルトの名無しさん
NGNGfor (; --i > 0; vc++, i--) *vc ^= vc[i] ^= *vc ^= vc[i];
これでいい?
0155デフォルトの名無しさん
NGNGちょっともちつけ
何言ってるのかわからなくなってきてるぞ
0156151
NGNGコピペしたときに入っただけで。
0157デフォルトの名無しさん
NGNGwhile (i < 5) { ←ここの部分が表示されないんだけど
printf("%d\n", vc[i]); 助けてください
i++;
}
ここの部分をどうすればよいのでしょうか
教えてください
0158あんたまだ解決してなかったんかい
NGNGprintf("%d\n", vc[i]); 助けてください
i++;
}
を
i=0;
while (i < 5) { ←ここの部分が表示されないんだけど
printf("%d\n", vc[i]); 助けてください
i++;
}
に
0159デフォルトの名無しさん
NGNG0160デフォルトの名無しさん
NGNG0161デフォルトの名無しさん
NGNG#define NUMBER 5
void one(int i, int vc[])
{
while(i < 2) {
int temp = vc[i];
vc[i] = vc[4 -i];
vc[4 -i] = temp;
i++;
} }
int main(void)
{
int i;
int vc[5];
i = 0;
puts("5個の整数を入力してください。");
while (i < 5 ){
printf("%2d番目:", i + 1); scanf("%d", &vc[i]);
i++;
}
puts("逆に並べると");
one(i, vc );
i = 0;
while (i < 5)
printf("%d", i);
printf("%d\n", vc[i]);
i++;
puts("となります。");
return(0);
}
こんどは、5番目まで入力したら、その後ずっと止まらなくなってしまいました
0162デフォルトの名無しさん
NGNG最後のwhileの中括弧が抜けてるよ
これだとprintf("%d",i);が無限にw
0163デフォルトの名無しさん
NGNG5個の整数を入力してください。
1番目:1
2番目:2
3番目:3
4番目:4
5番目:5
逆に並べると
01
12
23
34
45
手取り足取りで申し訳ないが今度はこんな風になってしまった。
この課題が終わったら少しまじめに取り組もうと思うのでこれだけはお願いします。
0164デフォルトの名無しさん
NGNG本当にありがとうございました
またくるかもしれませんがよろしくね
0165デフォルトの名無しさん
NGNG0166デフォルトの名無しさん
NGNG全然逆じゃないんだがいいのか?
0167デフォルトの名無しさん
NGNG0168デフォルトの名無しさん
NGNG大阪工大?
0169デフォルトの名無しさん
NGNG留年 or 院 ってことかな ?
0170デフォルトの名無しさん
NGNG0171デフォルトの名無しさん
NGNG来れなくなっちゃうよ・・・
0172172
NGNG西暦に変換し"1982年06月05日"という書式で標準出力する
プログラムを作成しなさい。ただし、生年月日は明治元年
以降に対応すること。
どのような条件式をつくればいいのでしょうか?
if elseで可能ですよね?
0173デフォルトの名無しさん
NGNG1982年06月05日
0174デフォルトの名無しさん
NGNGint main()
{
char c;
int year;
int month;
int day;
scanf("%c%d/%d/%d",&c,&year,&month,&day);
/* 元号を西暦に変換する処理は後回し */
printf("%d年%02月%02日\n",year,month,day);
return 0;
}
0175デフォルトの名無しさん
NGNG何年から何年が明治で何年から大正とか知らないんだよな・・・
0176172
NGNG1868年から明治、1912年から大正、
1926年から昭和、1989年から平成です
0177デフォルトの名無しさん
NGNG不正な入力で落ちまくり(w
0178デフォルトの名無しさん
NGNG0179デフォルトの名無しさん
NGNG気にするな(w
宿題じゃなきゃこんなコードかかん
0180デフォルトの名無しさん
NGNGそもそも平成1年が存在しない(よね?)
0181デフォルトの名無しさん
NGNGExcelでオートフィルかけたらこんなんなったが?
昭和64年1月6日
昭和64年1月7日
平成1年1月8日
平成1年1月9日
0182デフォルトの名無しさん
NGNGそれはエクセルがおかしい。
平成元年ならあるが平成1年はない
0183デフォルトの名無しさん
NGNG0184デフォルトの名無しさん
NGNGその時に別名だからいいんだと言い張るのかい?
0185デフォルトの名無しさん
NGNG>>176
あり得ない日付を入力したらエラー処理をしろとか言われた?
0186172
NGNG月別に日にちの制限を設ける必要はないと思います。ただ13月、
32日はさすがにエラー処理しないといけないでしょう
0187デフォルトの名無しさん
NGNG恥書くわけ無いでしょ。
普通に使われてるよ。
むしろあんたが恥。
0188デフォルトの名無しさん
NGNG白い服は着てないよね?
0189デフォルトの名無しさん
NGNGttp://www.google.co.jp/search?q=%22%95%BD%90%AC%8C%B3%94N%22+site%3Ago.jp
0190デフォルトの名無しさん
NGNGうん。普通に使われてるね。
0191デフォルトの名無しさん
NGNG件数で計れるものではないかもしれないけど
0192デフォルトの名無しさん
NGNG平成,1
平成,2
平成,3
#というわけで、数字しかはいらないんだから、無茶を言うな。
0193デフォルトの名無しさん
NGNG1年という言い方が間違っているならそうとう減るはずだからね。
特にgo.jpなら。でもこの差はgo.jp以外でも一緒だし。
いいかい。1年という言い方は正しいんだよ。
0194デフォルトの名無しさん
NGNG変数の中身は1でも、表示を元年にすることはできますね。
0195172
NGNG0196デフォルトの名無しさん
NGNG大正='T'
昭和='S'
平成='H'
でいいの?
0197デフォルトの名無しさん
NGNGTyuu='T'
Settu='S'
Highschool='H'
0198デフォルトの名無しさん
NGNGelse printf("%d年",year);
これをつけるかつけないかだけだろ?
0199194
NGNG表示は西暦だから。
0200デフォルトの名無しさん
NGNG西暦元年
0201デフォルトの名無しさん
NGNG普通かどうかは別にしても、>>180=>>182=>>184 が主張するほどではないことは明白だわな。
>>184 は、何をもって恥を掻くと言ってんだろう ?
普通に考えたら、そこまで言っといて「恥を書く」と書くほうがよほど恥ずかしいと思うが。
0202デフォルトの名無しさん
NGNGでも、入力は「元年」にも対応しなくちゃね。
0203デフォルトの名無しさん
NGNG0204デフォルトの名無しさん
NGNG0205デフォルトの名無しさん
NGNGC++ではありません。
【開発環境】
Visual Studio.NET(Not 2003)
OSはXP Home
エディタはK2Editerを使用してます。
どなたか、問題を出していただけませんか?
0206デフォルトの名無しさん
NGNG1から任意数までの素数を全部表示するプログラムとか?
0207205
NGNGそれは既にやったんですよ。任意の数字を変数に入れ、
それをfor文、if文でちょいっと…。
わがままで申し訳ありませんが、もう少しレベルの高いものって
ありませんか?
よろしくお願いします。
0208デフォルトの名無しさん
NGNGMSDN ライブラリを調べて API 使ってみたら?
プログラミングの幅が広くなって面白いよ。
試しに、あるディレクトリにある全てのファイルを表示させてみるとか。
0209デフォルトの名無しさん
NGNGint expand(double x, int base, char str, char *len)
0 ≦ x < 1 を base 進法で表した小数部を最大 len 文字で str に書き込む。
書き込んだ文字数を返す。
0210デフォルトの名無しさん
NGNG誤 int expand(double x, int base, char str, char *len)
正 int expand(double x, int base, char *str, char len)
0211デフォルトの名無しさん
NGNGもちつけ俺
誤 int expand(double x, int base, char str, char *len)
正 int expand(double x, int base, char *str, int len)
0212デフォルトの名無しさん
NGNG多倍長演算の実装やって、円周率を下1000桁ぐらいまで求めるとか
0213デフォルトの名無しさん
NGNGアルゴリズムイントロダクションを買ってきて、
最初から順に実装していく。
0214デフォルトの名無しさん
NGNG明治以降に西暦元年はないわな。
それに西暦では1年なんでは・・・
0215デフォルトの名無しさん
NGNGchar *me;
static void die(char *msg){fprintf(stderr, "%s: %s", me, msg); exit(1);}
int main(int argc, char **argv)
{
char c;
char s[BUFSIZ];
int y,m,d;
me = argv[0];
if (fgets(s, BUFSIZ, stdin) == NULL) die("couldn't read input\n");
if (sscanf(s, "%c%d/%d/%d",&c,&y,&m,&d) != 4) die("invalid format\n");
switch(c) {
case 'H': y += 1988; break;
case 'S': y += 1925; break;
case 'T': y += 1911; break;
case 'M': y += 1867; break;
default: die("unknown first letter\n");
}
printf("%d年%02d月%02d日\n", y,m,d);
return 0;
}
0216デフォルトの名無しさん
NGNGexitを使うときはstdlib.hをインクルードせよ。
0217デフォルトの名無しさん
NGNG「ファイルが見つかりません」ってでるんですが
どうしたらインストールできますか?」
0218デフォルトの名無しさん
NGNGインストールしろという宿題なのか?
マイクロソフトに聞けよ。
0219205
NGNG>>208
初心者本を読破した程度でAPIが理解できるものなのでしょうか?
まぁせっかくVisual Studio.NETがあるので、見てみたいと思います。
>>209
ああ・・・全然理解できん・・・
>>212
面白そうですね。
多倍長演算は名前だけ聞いたことがあるのですが、実際に使ったことはありませんし、
すごく面白そうです。
>>213
そろそろアルゴリズム云々を勉強しようとしてたので、やってみたいですね。
実際に力もつきそううですし。
みなさん、こんな初心者に丁寧にアドバイス本当にありがとうございました。
0220デフォルトの名無しさん
NGNGhttp://www.linux.or.jp/JM/
http://www.bohyoh.com/CandCPP/C/Library/index.html
ここでCの標準関数を調べて、自分で書いてみるってのはどう?
とりあえずはシステム依存の知識がいらないstr系関数から。
0221デフォルトの名無しさん
NGNG昭和元年は確か半月もなかったと思うのだが
1926年=昭和元年でいいのか?
うちの甥っ子が昭和64年1月2日生まれだから気になるのかもしれんが。
0222デフォルトの名無しさん
NGNGその時に作られた貴重な硬貨があるYO
0223デフォルトの名無しさん
NGNG0224sage
NGNGconst int TARGETVALUE=100;
const int HALFTARGETVALUE=TARGETVALUE/2+1;
const int UNPRIMENUM=3;
int i;
int j;
bool blnPrimeFlg[TARGETVALUE];
for(i=0;i<TARGETVALUE;i++){
blnPrimeFlg[i]=false;
}
for(i=UNPRIMENUM;i<TARGETVALUE;i+=2){
blnPrimeFlg[i]=true;
}
blnPrimeFlg[2]=true;
for(i=UNPRIMENUM;i<HALFTARGETVALUE;i+=2){
j=i*(i-1);
while(blnPrimeFlg[i]){
j+=i;
if(j<TARGETVALUE){
blnPrimeFlg[j]=false;
}
else{
break;
}
}
}
for(i=0;i<TARGETVALUE;i++){
if(blnPrimeFlg[i]){
cout<<i<<"\n";
}
}
}
0225sage
NGNGあらためて。
1>>様、その他の先生の皆様。Cをはじめて半年の未熟者です。ご意見をいただ
きたいのですが、おながいします。
目的の値までの素数を表示させるプログラムについて課題がでておりまして、
以下のようなコード書いたのですが、問題なく素数は表示される状態です。
ただし、可能であればもう少しスマートに進めたいのですが、なにか改善可能
な場所、方法はありませんでしょうか。よろしくおながいします。
0226デフォルトの名無しさん
NGNGif (blnPrimeFlg[i])
for(j=i*i; j < TARGETVALUE; j+=i)
blnPrimeFlg[j]=false;
}
0227デフォルトの名無しさん
NGNGint tmp;
(省略)
for(tmp=2; tmp<prime/2; tmp++)
{
if(tmp == prime) printf("素数\n");
if else((prime%tmp) == 0) printf("素数ではありません\n")
}
かなり略したけどこんなのじゃだめ?
列挙したいならこれ全体をforで囲むとか
0228デフォルトの名無しさん
NGNG0229デフォルトの名無しさん
NGNG感動しました!
実際、コードみると納得なんですが、そこまで思いつくのが難しいんですよね。。
どうもありがとうございました。すごくためになりました。また何か在りましたら、
よろしくお願いします。
227様>>
即レスありがとうございます。
今回はmodしようせずに(授業中にmodでおこなうような様誘導があったため。)
あえて進めてみようと思っておりました。ただ、mod使用の際にはかなり、行数を短く
提出できるタイプみたいなので、ありがたく頂戴させていただきます。
どうもありがとうございました。
0230デフォルトの名無しさん
NGNG228様>>
"エラトステネスのふるい”こういったアルゴリズムが存在してたんですね。
勉強不足でした。。。。
ありがとうございました。
0231デフォルトの名無しさん
NGNGconst int TARGETVALUE=100;
const int UNPRIMENUM=3;
int i;
int j;
bool blnPrimeFlg[TARGETVALUE];
for(i=UNPRIMENUM;i<TARGETVALUE;i+=2){
blnPrimeFlg[i]=true;
}
cout<<2<<"\n";
for(i=UNPRIMENUM;i*i<TARGETVALUE;i+=2){
if (blnPrimeFlg[i]){
for(j=i*i; j < TARGETVALUE; j+=2*i)
blnPrimeFlg[j]=false;
cout<<i<<"\n";
}
}
for(;i<TARGETVALUE;i+=2){
if (blnPrimeFlg[i])
cout<<i<<"\n";
}
}
0232デフォルトの名無しさん
NGNG>>106
0233デフォルトの名無しさん
NGNG0234230
NGNG231様>>
ありがとうございます。最終的にそのような形で固まりました。
232様>>
さっそくチェキしてみます。ただ、先に答えがあると、考える前にみそうな感じがして怖いです。丸写しになりそうで・・・精神力弱いんです(つдT)
前回、226様よりお教えいただいた方法で実行すると、100に含まれる素数を判断するために、条件分岐がfor(i=UNPRIMENUM;i*i<TARGETVALUE;i+=2)のなかで8回、for(j=i*i; j < TARGETVALUE; j+=i)のなかで54回となるのですが、さらにこれを少なくする事は可能でしょうか。
私てきにはこれで限界と思えるため、この状態で提出を考えておりますが、可能であればコードでなくても、結構です。可能とだけお教え願えないでしょうか。
大変お手数おかけしますが、どうぞよろしくお願いします。
0235デフォルトの名無しさん
NGNGhttp://pc2.2ch.net/test/read.cgi/tech/1018657457/
0236デフォルトの名無しさん
NGNG#include<ctype.h>
#include<stdlib.h>
#include<string.h>
void filter(int limit, char *filename);
int isprime(int *discoverd_prime, int chknum, int dis_num);
/* mainがやるのは、引数チェックのみ。 */
void main(int argc, char *argv[]){
int limit;//この数までの素数を調べる。
char filename[10];//ファイル名
/* 上限数とファイル名の設定。 */
if(argc == 1){//引数無し
limit = 1000;
strcpy(filename,"nanashi.txt");
}else if(argc > 2 && (isdigit(*argv[1])) ){//第1引数が数字で、ファイル名の指定あり
limit = atoi(argv[1]);
strcpy(filename,argv[2]);
}else if(argc >= 2 && (!isdigit(*argv[1])) ){//第1引数が数字でない
limit = 1000;
strcpy(filename,argv[1]);
}else if(argc >= 2 && (isdigit(*argv[1])) ){//第1引数が数字で、ファイル名の指定無し
limit = atoi(argv[1]);
strcpy(filename,"nanashi.txt");
}
if (limit >= 131071){limit = 131071;}//一応の上限
filter(limit,filename);
}
0237デフォルトの名無しさん
NGNGFILE *fp;
int num;
int p,i;//ループ処理などに使う汎用変数。
int m;//現在までに発見した素数の個数
int a = limit/2+1; // 素数の最大個数。
int prime[65536]; //素数を格納する配列。とりあえずこんだけ確保しとく。
if((fp = fopen(filename,"w")) == NULL){ //ファイルを作る。
fprintf(stderr,"ファイルが作れませんでした。");
}
printf("%d までの素数を計算し、ファイル名 %s で保存します。\n",limit,filename);
/* 作業開始 */
for(p=0; p < a ; p++){//prime配列の初期化
prime[p]=1;
}
p = 0;
prime[p] = 2;p++; m=1;//偶数はチェックしないので、あらかじめ2を検出したことにしておく。
0238デフォルトの名無しさん
NGNGfor(num = 3; num <= limit ;num += 2){//偶数はチェックするだけ時間の無駄だ。
if((isprime(prime,num,m))== 0 ){
prime[p] = num; m++; printf("%d ",prime[p]);p++;
}
}
for(p = 0; p< m ;p++){
fprintf(fp," %d",prime[p]);
}
printf("\n以上の素数を保存しました。\n作業が終了しました。\n");
fclose(fp);
}
/* 与えられた数が素数か調べる。 */
int isprime(int *discoverd_prime, int chknum, int dis_num){
int p;
for(p=0; p<dis_num; p++){
if(chknum % *discoverd_prime != 0){
discoverd_prime++;
continue;
}else{
return 1;
}
}
return 0;
}
0239239
NGNGi=2のとき、data[i++] data[++i]
変数aからjがint型としたとき、下記の式において演算の順序はどうなるか答えなさい。また、a=0b=1c=2…j=9を初期値とするときこの式の実行結果はどうなるか答えなさい。
a = b = c == d && e | |f < g % h / i + j ;
よろしくお願いします。
0240デフォルトの名無しさん
NGNGなぜ実行して確かめない?
0241デフォルトの名無しさん
NGNG死んだ方が良いな。
0242デフォルトの名無しさん
NGNGhttp://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&oe=UTF-8&q=C%E8%A8%80%E8%AA%9E+%E6%BC%94%E7%AE%97%E5%AD%90+%E5%84%AA%E5%85%88%E9%A0%86%E4%BD%8D
0243デフォルトの名無しさん
NGNG心配なら括弧を付ける。
0244デフォルトの名無しさん
NGNGそれに関しては激しく同意だが、悲しいけどこれって宿題なのよね。
0245デフォルトの名無しさん
NGNGこうじゃないかな。
0246デフォルトの名無しさん
NGNG0247デフォルトの名無しさん
NGNGえっ、どこが ?
0248デフォルトの名無しさん
NGNGa = b = c
って何?
0249デフォルトの名無しさん
NGNGa=b;
0250デフォルトの名無しさん
NGNG| |
0251デフォルトの名無しさん
NGNGa, b, c が全て等しい時に真になる新しい比較演算子。
0252デフォルトの名無しさん
NGNGああ、なるほど。了解した。
しかし、よく気付いたな、コンパイルしてみたのか ?
0253デフォルトの名無しさん
NGNG等幅のフォントならひと目で分かるんだが
0254デフォルトの名無しさん
NGNGthx
0255デフォルトの名無しさん
NGNGdata[i++] = 3
data[++i] = -4 (ただし上式を行った後なら変な値を返す)
まず (左結合)
g % h / i (6 % 7 / 8 = 0) ・・・(1)
次に
(1) + i (0 + 9 = 9) ・・・(2)
でもって
f < (2) (5 < 9 = 1) ・・・(3)
さらに
d && e (3 && 4 = 1) ・・・(4)
これから
(4) || (3) (1 || 1) ・・・(5) *この時orの左側が真なので右は評価されない
最後に (右結合)
a = b = (5) (b = 1, a = b)
ってか演算子の優先順位ぐらいは知ってるだろ
0256デフォルトの名無しさん
NGNGc == d が抜けてら
さらに
c == d (2 == 3 = 0) ・・・(4)
となると
(4) && e (0 && 4 = 0) ・・・(5) *この時andの左側が偽なので右は評価されない
これから
(5) || (3) (0 || 1 = 1) ・・・(6)
最後に (右結合)
a = b = (5) (b = 1, a = b)
0257デフォルトの名無しさん
NGNGhttp://www-ccs.ucsd.edu/c/express.html#Preincrement
http://www-ccs.ucsd.edu/c/express.html#Postincrement
http://www-ccs.ucsd.edu/c/express.html#precedence
http://www-ccs.ucsd.edu/c/express.html#Logical%20AND
http://www-ccs.ucsd.edu/c/express.html#Logical%20OR
0258デフォルトの名無しさん
NGNG0259デフォルトの名無しさん
NGNG8.3 9.0
8.8 10.3
・・・
上のような1行にスペース区切りで、複数行にデータが入っている
ファイルから、データを分割してそれぞれの
総和をもとめたいんですが
どうすればいいですか?
PerlでいうところのSplit関数ってないんですが?
0260デフォルトの名無しさん
NGNG正規表現みたいな頭のいいことは出来ないが。
0261デフォルトの名無しさん
NGNGvector<double> values;
while(s){
double sum=0;
for(int i=0; i<2; i++){
ddouble val=0;
s>>val; sum+=val;
}
values.push_back(sum);
}
でけた!! 駄目だこりゃ!
0262デフォルトの名無しさん
NGNGmain()
{
FILE* file;
int ret;
double f=0,s=0;
if( (file=fopen("data.txt","r")) == NULL )
return 0;
do{
s+=f;
ret = fscanf(file,"%ld",&f);
}while(ret != EOF);
printf("%ld",s);
fclose(f);
return 0;
}
改行とか入れてなけりゃこれでできるとおもうが
0263デフォルトの名無しさん
NGNG0264デフォルトの名無しさん
NGNGバグ
これらの関数は絶対に使用しないこと。もし使用する場合は、以下のことに注意すること。
これらの関数はその最初の引数を変更する。
これらの関数は const な文字列では使えない。
終端文字はすべて \0 になってしまう。
strtok() 関数はパーズに静的バッファを用いるので、スレッドセーフでない。もしこれが問題になる場合は strtok_r() を用いること。
0265デフォルトの名無しさん
NGNGそれぞれの総和を求めたいのです。
0266デフォルトの名無しさん
NGNG#include <fstream>
#include <vector>
#include <numeric>
using namespace std;
int main()
{
vector<double> m, kg;
ifstream s("hoge.txt");
while(s)
{
double val;
s >> val;
m.push_back(val);
s >> val;
kg.push_back(val);
}
m.pop_back();
kg.pop_back();
cout << "身長の和は" << accumulate(m.begin(), m.end(), 0.0) << endl;
cout << "体重の和は" << accumulate(kg.begin(), kg.end(), 0.0) << endl;
return 0;
}
0267デフォルトの名無しさん
NGNGmain()
{
FILE *fp;
double height, weight, h_sum = 0, w_sum = 0;
char buf[256];
if ((fp = fopen("filename.txt", "r")) == NULL) {
printf("ERROR\n"); exit(1);
}
while (fgets(buf) != NULL) {
sscanf("%lf%lf", &height, &weight);
h_sum += height;
w_sum += weight;
}
}
0268267訂正
NGNGmain()
{
FILE *fp;
double height, weight, h_sum = 0, w_sum = 0;
char buf[256];
if ((fp = fopen("filename.txt", "r")) == NULL) {
printf("ERROR\n"); exit(1);
}
while (fgets(buf, 255, fp) != NULL) {
sscanf(buf, "%lf%lf", &height, &weight);
h_sum += height;
w_sum += weight;
}
}
0269デフォルトの名無しさん
NGNG0270デフォルトの名無しさん
NGNGC の勉強/宿題なの ?
実務で使う & Perl がわかるなら、Perl でやったほうがいいんじゃないのか ?
0271デフォルトの名無しさん
NGNGC++なら準標準ライブラリboostのregex.hppの中にsplitと同じ事が出来る
メソッドがあります。
0272デフォルトの名無しさん
NGNG0273デフォルトの名無しさん
NGNG一番最後に入れたリストが表示されてしまいます(FIFOというやつでしょうか)。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct list {
char *name;
char *tele;
struct list *nextlist;
};
>>274
0274デフォルトの名無しさん
NGNGmain()
{
struct list *a, *b;
char *n,*t;
int fig = 0;
b = NULL;
while(1) {
printf("名前キボンヌ。終了:e\n");
scanf("%s", n);
if(n[0] == 'e') break;
a = (struct list *)malloc(sizeof(struct list));
a->name = (char *)malloc(strlen(n)+1);
strcpy(a->name,n);
printf("電話キボンヌ。終了:e\n");
scanf("%s", t);
if(t[0] == 'e') {
fig = 1;
break;
}
0275デフォルトの名無しさん
NGNG0276デフォルトの名無しさん
NGNGa->tele = (char *)malloc(strlen(t)+1);
strcpy(a->tele,t);
a->nextlist = b;
b = a;
}
printf("名前 電話番号\n");
a = b;
while (1) {
if (a == NULL)
break;
printf("%s %s\n", a->name,a->tele);
a = a->nextlist;
}
}
0277デフォルトの名無しさん
NGNGスマソ。ソースちょっと長くなった。
構造体は名前のポインタと電話番号のポインタの2つです。
scanfつかってデータを入力する。eで終了します。
0278デフォルトの名無しさん
NGNGリストの最初を保持する変数がない。
a はmallocで確保した要素を保持している。
b はリストの最後を保持している。
表示はaを表示しているから、一番最後に確保した要素に
なるのは当たり前。
0279278
NGNG> a->nextlist = b;
> b = a;
これはLIFOのやり方だ。
0280デフォルトの名無しさん
NGNG0281デフォルトの名無しさん
NGNG278のいうことももっともだが
それ以前にどうしてsにmallocしないんだ。
確実にメモリー参照エラーっぽ。
0282デフォルトの名無しさん
NGNGchar *n;
scanf("%s",n);
これまずいでしょ。
0283デフォルトの名無しさん
NGNG最後に入れた要素を表示する前に落ちると思うんだけど。
0284デフォルトの名無しさん
NGNGそれ以前に、最初の scanf() で落ちたよ。
(Win2KPro, VC++6, Debug Build)
まあ、>>282 が書いてる通り当たり前なわけだが。
0285デフォルトの名無しさん
NGNG0286デフォルトの名無しさん
NGNGできる。
0287デフォルトの名無しさん
NGNG初心者向けでスマソ。
1〜任意の数字までの階乗を表示するプログラム。
・・・15!ぐらいになるとCでは扱えない数字になっちゃうかも
0288280
NGNG長いので2回に分ける。
どういうわけか構造体を次のようにあらかじめ
サイズきめとかないとエラー出るのでそこはかんべん。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<malloc.h>
#include<conio.h>
typedef struct{
char name[256];
char tel[256];
void* nextpoint;
}LIST;
void movenext(LIST** pplist)
{
LIST* sub;
sub = (LIST*)((*pplist)->nextpoint);
free(*pplist);
*pplist = sub;
}
main()
{
char n;
char name[256],tel[256];
LIST *lpbottom=0,*lptop=0,*sub=0;
lpbottom = lptop = (LIST*)malloc(sizeof(LIST));
0289280
NGNGwhile(1)
{
printf("------------------\n");
printf("どれよ?\n");
printf("1:入力\n");
printf("2:出力\n");
printf("other:終わり\n");
printf("------------------\n");
n = getch();
if(n == '1')
{
printf("名前キボン\n");
scanf("%s",lptop->name);
printf("電話番号キボン\n");
scanf("%s",lptop->tel);
lptop->nextpoint=malloc(sizeof(LIST));
lptop=(LIST*)lptop->nextpoint;
}
0290280
NGNGelse if(n=='2')
{
if(lpbottom==lptop)
break;
printf("名前 %s\n",lpbottom->name);
printf("電話番号 %s\n",lpbottom->tel);
movenext(&lpbottom);
}
else
break;
}
while(lpbottom != lptop)
movenext(&lpbottom);
free(lpbottom);
return 0;
}
0291デフォルトの名無しさん
NGNG{
int n;
int64 ret = 1;
cin >> n;
for(int i=2; i<=n; i++)
ret *= n;
cout << ret << endl;
return 0;
}
0292デフォルトの名無しさん
NGNGsizeof(long) = 4のときの
long long のこと?
0293デフォルトの名無しさん
NGNGsizeof(long) = 4のときの
long longのサイズって一意に決まってるの?
0294デフォルトの名無しさん
NGNG> typedef struct{
> char name[256];
> char tel[256];
> void* nextpoint;
> }LIST;
name, tel を固定長で持つ是非は別にして、void* nextpoint ってなんだ ?
こんなこと書く奴を俺は信用しない。
0295292
NGNG.NETだと long longでエラー出して
確認できねぇ・・・
誰か回答キボン
0296288
NGNGとおいていいのかわからなかったんで
void* で妥協。
0299デフォルトの名無しさん
NGNGスタティックリンクも出来ますよ。LIBをビルドする事になるけど。
0300デフォルトの名無しさん
NGNGhttp://chart.yahoo.co.jp/t?c=2003&a=4&b=1&f=2003&d=4&e=30&g=d&s=6701.t&y=0&z=6701.t
を取得し終値の平均値を出しなさい。
難しすぎるか…
0301デフォルトの名無しさん
NGNGわっちの使っているコンパイラにint64なかったんで
結果が正確ではないが次のようにしますた。
main()
{
int n;
double i,t=1;
scanf("%d",&n);
for(i=2;(int)i<n;i++)
t*=i;
printf("%ld",t);
return 0;
}
0302デフォルトの名無しさん
NGNGかききれないような・・・
0303301
NGNG次のとこ訂正
×printf("%ld",t);
○printf("%lf",t);
0304デフォルトの名無しさん
NGNGこれじゃ書ききれないな。wininetとboost使えれば書ききれるけど。
0305デフォルトの名無しさん
NGNGint f();
main()
{printf("%d\n",f(3.14));}
int f(int a)
{return a*3.14*2;}
0306305
NGNGこの結果がなぜ6になるのか教えてください
0307デフォルトの名無しさん
NGNG18か19
0308デフォルトの名無しさん
NGNG0309デフォルトの名無しさん
NGNG0310デフォルトの名無しさん
NGNG×int f();
○int f(int)
つーかエラーでコンパイルできないだろ多分
0311デフォルトの名無しさん
NGNGint f()
int f(int a)
は引数が違うので別物と見られます。
使うときに引数によってどっちが使われるか決まります。
で、f(3.14)なので引数がある
int f(int a)が使われ。
3.14がintにキャストされ a=3状態に。
で、a*3.14*2で18.28に。
値返すときにやっぱりintにキャストされるので
18になるってこった。
切り上げの場合は19か。コンパイラによるだろうが。
0312デフォルトの名無しさん
NGNGコンパイラによっちゃ
仮想関数ってことでOK。
だめなほうが少ないかしら?
0313デフォルトの名無しさん
NGNGCなら、doubleの引き数を渡し、intの引き数を受け取ると言う事態が発生する。
0314デフォルトの名無しさん
NGNGCでも自動的にキャストしてくれないのでつか?
コンパイラによるのかな。
0315デフォルトの名無しさん
NGNG> int f()
> int f(int a)
> は引数が違うので別物と見られます。
これはあってるけど...
> int f(int a)が使われ。
アホか。そういう状況 (=C++) なら、int f(int a) はまだ宣言されてないから、単にそんな関数は無いと怒られるだけのことだよ。
>>312
仮想関数 ? C++ の初歩からやり直すべし。
>>313
これが、正解。
>>314
キャストしようが無いだろ。
f(3.14) をコンパイルしている時点では、f(int) なのか f(double) なのかわからんのだから。
0316デフォルトの名無しさん
NGNG次の式が成り立つとき、a+bがもっとも小さいときの
aとbを求めなさい。
a*b=2450448
こんな問題どうでしょ。宿題ってわけじゃないんですが。
0317デフォルトの名無しさん
NGNGそれ、C/C++の問題なのか?
0318315
NGNGはて、VCなら通ったんだが・・・
VCが特殊なのかねぇ。
ところでポケコンのCコンパイラでやってみたところ
これだめでした
int f();
int f(int a)
{
return a*3.14*2;
}
fが再定義されてるとのことでだめでした。
たんにへっぽこコンパイラなのかもしれないけど。
0319デフォルトの名無しさん
NGNGa+bが尤も小さくなるようにaとbを選べばいいんだな?
a=-1,b=-2450448でどうだ。
0320デフォルトの名無しさん
NGNGVCはCコンパイラでもあるからな。
0322デフォルトの名無しさん
NGNGいやいや、例えばa=-1e-100,b=-2450448e100の方が小さくなるぞ。
ということで、解が得られないじゃぁないか。>>316
0323デフォルトの名無しさん
NGNG0324318
NGNG311です。
0325デフォルトの名無しさん
NGNG|a| + |b|だろ
0326デフォルトの名無しさん
NGNG(゚Д゚)ハァ?
0327316
NGNG323も間違えでもないような・・・
0328デフォルトの名無しさん
NGNGaの符号=bの符号
よって
|a|+|b| = |a+b|
ってことでよい?
0329328
NGNG0330デフォルトの名無しさん
NGNG> いいたいことは325だったんだが
> 323も間違えでもないような・・・
はぁ ?
>>321
> でも自然数限定ってことで。
>>325
|a| + |b|だろ
全然違うじゃねーか。
0332316
NGNGともかく整数aとbが次の関係を持つとき、|a+b|がもっとも小さくなる時の
aとbの絶対値を求めよ。
a×b=2450448
ややこしくてすみません。言うまでもないがCかC++で書いてけれ。
ところでさっきつっこまれたんですがここは
文法に関する問題のみでつか?
0333デフォルトの名無しさん
NGNGa=1547 b=1584で合計3131が最小らしい。
かなり適当に作ったからウソかも?w
0334デフォルトの名無しさん
NGNGint main(void){
int a, b, x;
for (x = 2; x < 10000000; x++)
for (a = 1, b = x - a; a <= b; a++, b--)
if (a * b == 2450448) {
printf("%d %d\n", a, b);
return 0;
}
return 0;
}
0335デフォルトの名無しさん
NGNGコンパイルしたら>>333と同じ結果が出た
0336デフォルトの名無しさん
NGNG#include <stdio.h>
#define NUM 2450448
int main(void)
{
int a,b,ma,mb,min=NUM;
for(a=1;a<NUM/2;a++) {
if(NUM%a==0) {
b=NUM/a;
if(min>a+b) {
ma=a;
mb=b;
min=a+b;
}
}
}
printf("%d %d",ma,mb);
return 0;
}
0337デフォルトの名無しさん
NGNG#include <math.h>
int main()
{
int const num = 2450448;
int a = floor( sqrt( (double)num ) );
for( ; a > 0 ; --a )
{
int const b = num / a;
if( a * b == num )
{
printf( "a = %d , b = %d\n" , a , b );
return 0;
}
}
return 1;
}
0338デフォルトの名無しさん
NGNG商の整数チェックわすれて違う答えが出た
…フカク
0339デフォルトの名無しさん
NGNG#include <math.h>
#define NUM 2450448
int main(void){
int a = sqrt(NUM), b;
while (a * (b = NUM / a) != NUM) a--;
printf("%d %d %d", a, b, a + b);
}
0340デフォルトの名無しさん
NGNG#include <math.h>
#define N 2450448
int main(void){int a=sqrt(N);while(a>1&&(N%a)!=0)--a;printf("%d %d",a,N/a);return 0;}
0341デフォルトの名無しさん
NGNG0342デフォルトの名無しさん
NGNG#include <math.h>
#define N 2450448
int main(void){int a=sqrt(N);while(N%a)--a;printf("%d %d",a,N/a);return 0;}
0343デフォルトの名無しさん
NGNGいい流れ。
こんな感じで誰か問題だしてくれぃ
0344343
NGNGピタゴラス数をどんどん出していくやつとか。
あとは、完全数を列挙していくものとか。
ピタゴラス数・・・各辺の長さが整数で表される直角三角形。3:4:5とか。
完全数・・・約数のうち、その数自身以外の物の和がその数になるもの。
例えば、6。これの約数は1,2,3,6。ここから自身の数、6以外の和を出す。
1+2+3 つまり6(自身の数)
こんなん面白そうなんで出してみました。
俺もちょっと考えてみまふ
0345343
NGNG0346デフォルトの名無しさん
NGNGn 路盤に次の条件を満たすように石をおくとき、
おくことのできる碁石の最大数を求めよ。
条件: どの4つの碁石も路に平行な辺を持つ長方形にならない。
なお、路とは碁盤に引かれた線のことで、
縦横に n 本の路がある碁盤を n 路盤と言う。
石は路と路の交点におく。条件を無視すれば n*n 個の石がおける。
0347デフォルトの名無しさん
NGNG長方形以外ならいいのね
0348デフォルトの名無しさん
NGNGyes
なお長方形とは4つの角が等しい四辺形なので正方形も長方形とみなす
0349デフォルトの名無しさん
NGNG// 単純にどんどん出すけど全てを列挙しているわけではない
#define LIMIT (10000)
int main(void)
{
for (int ic = 1; ic < LIMIT; ic++) {
int num = 2 * ic * (ic + 1);
printf("%d, %d, %d\n", 2 * ic + 1, num, num + 1);
}
return 0;
}
0350デフォルトの名無しさん
NGNGint main(void)
{
int i;
i=0;
do{
printf("%d\n",i);
i++;
}while(この中身がわかりません);
return 0;
}
1から400まで+1づつ表示したいです
よろしくおながいします
0351デフォルトの名無しさん
NGNG0352デフォルトの名無しさん
NGNGはい、よろしくおながいします
0353デフォルトの名無しさん
NGNG0354デフォルトの名無しさん
NGNGfor(i=1;i<=10;i++){
for(j=1;j<=10;j++){
System.out.print("\n");
}
プログラムの出力を次のように修正せよ
● 出力の横幅を40に変更
● 出力の縦幅を20に変更
↑
この問題の解答おながいします
0355354
NGNGfor(i=1;i<=10;i++){
for(j=1;j<=10;j++){
System.out.print("*");
}
System.out.print("\n");
}
でした
0356デフォルトの名無しさん
NGNG0357デフォルトの名無しさん
NGNG0358デフォルトの名無しさん
NGNG宿題以前の問題だよ。それくらいは自力で理解できないと、
ネタとマジの区別もつかなくなるぞ。
>>350
普通はforループを使うケースだな。
なんでdo-whileループなんだ?
>>345
多桁演算クラスを用意してくれたらすぐにでも書くぞ。w
#確か700!くらいで2000桁近く入ったような記憶がある。
0359デフォルトの名無しさん
NGNG#include <stdio.h>
int main(void)
{
int i;
i=0;
do{
printf("%d\n",i);
i++;
}while(i < 400);
return 0;
}
0360デフォルトの名無しさん
NGNGfor(j=1;j<=40;j++){
System.out.print("*");
}
System.out.print("\n");
}
0361デフォルトの名無しさん
NGNGそれだと0〜399だべ
0362デフォルトの名無しさん
NGNG読み込んだものを戻り値とする関数を
reallocを使って作成せよ。
お願いします
0363デフォルトの名無しさん
NGNG0364デフォルトの名無しさん
NGNG関数の終了条件が不十分。
0365デフォルトの名無しさん
NGNG{
void *dummy = malloc(50);
vector<string> strs;
for(int i=0;i<5;i++)
{
std::string t;
cin >> t;
strs.push_back(t);
dummy = realloc(dummy, t.size());
}
free(dummy);
return strs;
}
0366デフォルトの名無しさん
NGNG0367デフォルトの名無しさん
NGNGオマエニマカセタ!
0368デフォルトの名無しさん
NGNGrealloc使えというから使ってやったんだ。感謝しろ。
0369デフォルトの名無しさん
NGNGvoid main(void)
{
int a,b,c,d,e,f,g;
printf("===============================================");
printf("いまから四則演算をする数値2つ入れなさい");
printf("===============================================");
printf("1つ目");
scanf("%d",&a);
printf("二つ目");
scanf("%d",&b);
c=a + b;
d=a - b;
e=a * b;
f=a / b;
g=a % b;
printf("演算結果");
printf("%d + %d=%d\n",a,b,c);
printf("%d - %d=%d\n",a,b,d);
printf("%d * %d=%d\n",a,b,e);
printf("%d / %d=%d\n",a,b,f);
printf("%d % %d=%d\n",a,b,g);
printf("\n");
printf("\n");
printf(" 以上\n");
}
なぜエラー11も?
0370デフォルトの名無しさん
NGNGエラーの内容読めよ
0371デフォルトの名無しさん
NGNGてのはどういう意味?文字列の区切りは改行?
返り値の型は char **でいいの?
0372デフォルトの名無しさん
NGNGまるちすんなっちゅーの
0373デフォルトの名無しさん
NGNG0374362
NGNG書いてなかったけど改行だと思う
問題があいまいな気が
0375デフォルトの名無しさん
NGNG0376デフォルトの名無しさん
NGNG書かないから>>365みたいな教師をおちょくるような答えが出てくるんだよ。
0377デフォルトの名無しさん
NGNGそんなに変数いらない
0378362
NGNGすみません、Cでお願いします
0379デフォルトの名無しさん
NGNGrealloc()の使い方が×です
0380うんこ
NGNG「error C2018: 文字 '0x81' は認識できません。」
文字列リテラルとか文字定数とか以外で全角文字使うと、
こういうのが出てくる。全角文字を消せ。使うな。
これが出ると、続けて似たようなのがもう一つ出る。
「error C2018: 文字 '0x40' は認識できません。」
と。ちなみに、そのソースだと全角スペースが入ってる。
インデントはタブで付けるんだ
0381デフォルトの名無しさん
NGNGやさしいヤツだなオマエ。
ヘルプも活用できないクソ野郎はほっとけばいーのに
0382369
NGNGあっ、目くそ鼻くそですか。すいません
0383デフォルトの名無しさん
NGNG0384369
NGNG0385369
NGNG0386デフォルトの名無しさん
NGNG何個あるのか数えなさいとの問題がでました。
入力ファイルは1000個の数字であり、出力ファイルは
2列で数字とその個数をかいたものとします。
よろしくおねがいします。
0387369
NGNG0388デフォルトの名無しさん
NGNG乱数の種か?
0389デフォルトの名無しさん
NGNG#include <stdlib.h>
#include <time.h>
int main(void) {
int result[100],i;
FILE *fp;
srand((unsigned int)time(NULL));
for(i=0;i<100;i++) result[i]=0;
for(i=0;i<1000;i++) result[rand()%100]++;
fp=fopen("out.txt","w+");
for(i=0;i<100;i++) if(result[i]!=0) fprintf(fp,"%d %d\n",i+1,result[i]);
fclose(fp);
return 0;
}
適当に書いたからコンパイル通るかわからん(藁
0390デフォルトの名無しさん
NGNGint main()
{
std::ifstream if(in.txt);
std::map<int, int> intmap;
for(int i=0;i<1000;i++)
{
int val;
if >> val;
intmap[i]++;
}
std::ofstream of(out.txt);
for(std::map<int, int>::iterator it=intmap.begin(); it!=intmap.end(); ++it)
{
of << (*it).first << " " << (*it).second << std::endl;
}
return 0;
}
0391デフォルトの名無しさん
NGNG反論する前に自分のミスのフォローをするべきだろ?
0392390
NGNG○intmap[val]++;
0393デフォルトの名無しさん
NGNG宿題丸投げですか…まあ、そーゆースレだが…
それくらいはやったほうが…
0394デフォルトの名無しさん
NGNG×
std::ifstream if(in.txt);
std::ofstream of(out.txt);
○
std::ifstream if("in.txt");
std::ofstream of("out.txt");
0395デフォルトの名無しさん
NGNG任意の省略型学籍番号(例:M02121)を文字型で入力し、
イニシャルから学科を判定し、学科名、入学年度(西暦下2桁分)及び学籍番号を次のように印刷せよ
学科名:Management
入学年度:’02年度
学籍番号:02175121
この問題で学科はChemistry,Electricity,Architecture,Design,Managementの五つあります。
学籍番号は省略型で読み込んだ02と121の間に17は各学科共通で
17の後に学科別にChemistryは1、Electricityは2となりManagementは5となり
この数字が入ります。
条件として省略学籍番号は文字型で読み込み、最後に正式学籍番号を単一の文字列として完成させる。
一応ここまではできたのですが、学籍番号を出すところがイマイチわかりません
ご教授お願い致します。Cです。
#include <stdio.h>
#define N 5
int main()
{
char a[80];
static char *name[]={"Chemistry","Electricity","Architecture","Design","Manegement"};
int i;
printf("省略学籍番号:");
scanf("%s",a);
for(i=0;i<N;i++){
if(name[i][0]==a[0])
printf("学科名:%s\n",name[i]);
}
0396395
NGNGポインタの使い方がまだ良く分からないので
ご教授お願い致します
0397デフォルトの名無しさん
NGNG02175121の省略形は
175なの?
0398397
NGNG0399デフォルトの名無しさん
NGNG×if(name[i][0]==a[0])
○if(!strcmp(name[i], a))
以上。
0400デフォルトの名無しさん
NGNGprintf("学籍番号:%c%c17%d%c%c%c",a[1],a[2],i,a[3],a[4],a[5]);
じゃだめ?
0401395
NGNG学籍番号の内容的に
最初の02は入学年、17は各学科共通、次の数字が学科判別の数字で
Chemistryなら1、Managementなら5となります。ラストの3桁は生徒番号です。
M02121が省略学籍番号で、これを入力すると
学科名:Management
入学年度:’02年度
学籍番号:02175121
と結果がでます。
説明が下手で申し訳ないです
0402デフォルトの名無しさん
NGNGいや、どっちでも動くし。
0403395
NGNG入学年度に関してはそれでいいといってましたが
学籍番号でそれはダメだ。といってました。
他の方法ないでしょうか?
0404デフォルトの名無しさん
NGNG違うでしょ
0405デフォルトの名無しさん
NGNGがわからん。
1文字ずつ読む条件ならscanf("%s",a)はおかしいし。
0406デフォルトの名無しさん
NGNG>>400は無難だと思うけど何で駄目なんだ?
0407デフォルトの名無しさん
NGNGchar str[9];
sprintf(str, "%c%c17%d%c%c%c",a[1],a[2],i,a[3],a[4],a[5]);
printf("学籍番号:%s",str);
ってことか?
0408デフォルトの名無しさん
NGNG0410デフォルトの名無しさん
NGNGif (a[0] == name[i][0]) {
printf("学科名:%s\n", name[i]);
i++;
continue;
}
にしないとな
0411デフォルトの名無しさん
NGNG0412デフォルトの名無しさん
NGNGfor(i=0;i<N;i++){
よりも、
#define numberof(x) (sizeof(x)/sizeof(*(x)))
for (i = 0; i < numberof(names); i++) {
とするべきだが、それを言い出すとscanf()も使うべきではない。
0413デフォルトの名無しさん
NGNG飛ばしちゃうのかよ!!!
0414デフォルトの名無しさん
NGNGそれでどうやって数値を文字に返るの?
itoaは機種依存だよ。
0415デフォルトの名無しさん
NGNG一文字ずつコピーしたりstrcpy()やstrcat()を駆使するコードを書いたら馬鹿だ。
0416デフォルトの名無しさん
NGNGchar number[80], bak;
a++;
bak = a[2];
strcpy(number, a);
strcat(number, "17");
a += 2;
a[0] = bak;
strcat(number, a);
printf("学籍番号:%s",number);
0417410
NGNGs/continue/break/
だな
0418416
NGNG0420デフォルトの名無しさん
NGNGmemmove(a+5,a+3,3);
memmove(a,a+1,2);
a[2]='1';a[3]='7';a[4]='0'+i+1;
printf("学籍番号:%s",a);
0421デフォルトの名無しさん
NGNG0422395
NGNGというエラーがでてきました。
どうすればいいんでしょうか?
0423デフォルトの名無しさん
NGNG0424395
NGNG0425デフォルトの名無しさん
NGNG>>416でポインタの移動してますが…
0426デフォルトの名無しさん
NGNGint num,r_num;
num = atoi(a+1);
r_num = num/1000*1000000+num%1000+170000+i*1000;
memset(r,0x30,8);
r[8]='\0';
itoa(r_num, t, 10);
if(r_num < 10000000) {
memcpy(r+1,t,7);
} else {
memcpy(r,t,8);
}
printf("学籍番号:%s",r);
memory.hとstdlib.hをinclude
0427デフォルトの名無しさん
NGNGitoaは機種依存ですよ。
0428395
NGNG'++' には左辺値が必要です。
'+=' : 左のオペランドが、左辺値になっていません。
プログラム
#include <stdio.h>
#include <string.h>
#define N 5
int main()
{
char a[80],number[80], bak;
static char *name[]={"Chemistry","Electricity","Architecture","Design","Manegement"};
int i;
printf("省略学籍番号:");
scanf("%s",a);
for(i=0;i<N;i++){
if(name[i][0]==a[0])
printf("学 科 名:%s\n",name[i]);
}
printf("入学年度:'%c%c年度\n",a[1],a[2]);
a++;
bak = a[2];
strcpy(number, a);
strcat(number, "17");
a+=2;
a[0] = bak;
strcat(number, a);
printf("学籍番号:%s",number);
return 0;
}
0429デフォルトの名無しさん
NGNGa++の前の行でで
char *b = a;
とやってbで処理する。
0430デフォルトの名無しさん
NGNG0431デフォルトの名無しさん
NGNG配列とポインタは別物です
0432395
NGNG今ポインタとか配列とか理解しきれてないのでなかなかうまいことできないんです。
後>>426にあるプログラムを組み込んで実行したところ学科別の番号が識別されてませんでした。
難しいですね・・。
0433デフォルトの名無しさん
NGNGprintf("学 科 名:%s\n",name[i]);
printf("入学年度:'%c%c年度\n",a[1],a[2]);
printf("学籍番号:%c%c17%1d%s\n",a[1], a[2], i, a+3);
0435デフォルトの名無しさん
NGNGそのまま組み込みたいなら、char a[80];
ってのを
char *a;
a = (char*)malloc(80);
にして、最後にfree(a);をするようにすると通るかと。
0436デフォルトの名無しさん
NGNG0437デフォルトの名無しさん
NGNGchar temp_buf[80];
char *a=temp_buf;
こっちの方がよいと思う。
0438デフォルトの名無しさん
NGNG0439デフォルトの名無しさん
NGNG*t++ = *s++;
*t++ = *s++;
*t++ = '1';
*t++ = '7';
*t++ = '0'+i;
while (*t++ = *s++) ;
0440デフォルトの名無しさん
NGNG#include <stdio.h>
#include <string.h>
#define N 5
int main()
{
char a[80];
static char *name[]={"Chemistry","Electricity","Architecture","Design","Manegement"};
int i;
printf("省略学籍番号:");
scanf("%s",a);
for(i=0;i<N;i++){
if(name[i][0]==a[0]){
printf("学科名:%s\n",name[i]);
printf("入学年度:'%c%c年度\n",a[1],a[2]);
memmove(a+5,a+3,3);
memmove(a,a+1,2);
a[2]='1';a[3]='7';a[4]='0'+i+1;a[8]=0;
printf("学籍番号:%s",a);
}
}
}
0441395
NGNG無事完成させることができました!
Cの知識があまりないので
memmove(a+5,a+3,3); と
memmove(a,a+1,2);
はプログラム上どういうことを行っているのか教えていただきたいのです。
memmove(a,a+1,2);はどういうこと?と聞かれると答えられないので
ぜひご教授お願い致します。
0442デフォルトの名無しさん
NGNG0443デフォルトの名無しさん
NGNGa+1から2バイトをaに移動
0445デフォルトの名無しさん
NGNG1.1を読んだら「グー」、2を読んだら「チョキ」、3を読んだら「パー」と表示せよ。
(多分岐処理、switch文、case文、break文、default文 がキーワード)
2.10人分の英語と数学の点数を2次元配列に入れ、それぞれの平均を求めよ。
各点数は2次元配列に初期値として格納する。
3.入力した数字が配列中にあるかどうか調べ、見つかれば○、見つからなければ×を
表示せよ。検索は0を入力するまで続ける。配列中の数値は初期値として設定。
キーワードはbreak
0446デフォルトの名無しさん
NGNG1,
#include <string>
#include <iostream>
void main()
{
int i;
std::string out;
std::cin >> i;
switch(i)
{
case 1:
out = "グー";
break;
case 2:
out = "チョキ";
break;
case 3:
out = "パー";
break;
std::cout << out << endl;
}
}
0447デフォルトの名無しさん
NGNGstd::cout << out << endl;
}
}
じゃなくて
}
std::cout << out << endl;
}
0448デフォルトの名無しさん
NGNG0449デフォルトの名無しさん
NGNG#include <iostream>
#include <algorithm>
void main()
{
int values[] = { 7, 41, 552, 61, 889, 1024, 26 };
int in;
for(;;)
{
std::cin >> in;
std::cout << std::find(values, values + 7, in) == (values + 7) ? "×" : "○" << endl;
if(!in)
break;
}
}
0450デフォルトの名無しさん
NGNG0452デフォルトの名無しさん
NGNGコマンドラインから入力するの?それともソースの中に書いちゃっていいの?
0453445
NGNG0454デフォルトの名無しさん
NGNG本当にコマンドラインからなの?
まあいいや、
2
#include <iostream>
#include <numeric>
using namespace std;
void main()
{
int in[2][10];
for(int i=0;i<10;i++)
{
cout << i << "人目の英語の点数入れてね" << endl;
cin >> in[0][i];
cout << i << "人目の数学の点数入れてね" << endl;
cin >> in[1][i];
}
cout << "英語の平均点は" << accumulate(in[0], in[0] + 10, 0.0) / 10 << "点" << endl;
cout << "数学の平均点は" << accumulate(in[1], in[1] + 10, 0.0) / 10 << "点" << endl;
}
あと言い忘れてたのを2つ。
これらのソースはC++
全角スペースはタブに置き換えろ
0455デフォルトの名無しさん
NGNGvoid main()を
int main()に置き換えて
最後にreturn 0;で0返してあげてね。
0456デフォルトの名無しさん
NGNG○cout << i+1 << "人目の○○の点数入れてね" << endl;
0457445
NGNG親切かつ迅速にありがとう
0458デフォルトの名無しさん
NGNG#include <iostream>
#include <algorithm>
int main()
{
int values[] = { 7, 41, 552, 61, 889, 1024, 26 };
int* const values_begin = &values[0];
int* const values_end = &values[ sizeof( values ) / sizeof( values[0] ) ];
std::sort( values_begin , values_end );
for( int in ; ( std::cin >> in ) && ( in != 0 ) ; )
std::cout << ( std::binary_search( values_begin , values_end , in ) ? "○" : "×" ) << std::endl;
return 0;
}
0459デフォルトの名無しさん
NGNG課題なのですがVC++を使って、
サーバーからファイルをDLするプログラムを教えてください。
アドレスを入力してそのファイルをDLする感じのプログラム
なのですが、よくわかりません;;よろしくお願いします。
0460デフォルトの名無しさん
NGNGwininet? winsock?
0461デフォルトの名無しさん
NGNGwchar_t *wc = "ち0こ";
wc[1] = 'ん';
wc[2] = 'げ';
で
ちんげになるの?'
0462デフォルトの名無しさん
NGNG0463デフォルトの名無しさん
NGNGプロトコルは?
おまいはどこまで作った?
0464デフォルトの名無しさん
NGNG#include <wininet.h>
#include <string>
#include <iostream>
#pragma comment(lib, "wininet.lib")
int main()
{
std::string url;
std::cout << "『えっとね、URLを入力してほしいの』" << std::endl;
std::cin >> url;
HINTERNET hSession = InternetOpen( "Mio", INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0 );
if(hSession){
HINTERNET hService = InternetOpenUrl( hSession, url.c_str(), NULL, 0, 0, 0 );
if(hService)
{
for(;;)
{
char buf[1025];
DWORD readbyte = 1024;
InternetReadFile( hService, buf, 1024, &readbyte );
if( readbyte == 0 ) break;
buf[readbyte] = 0;
std::cout << buf << std::endl;
}
}
InternetCloseHandle(hService);
}
InternetCloseHandle(hSession);
return 0;
}
0465デフォルトの名無しさん
NGNG0466デフォルトの名無しさん
NGNGc2 = (y2-y3)*(a-x3)-(x2-x3)*(b-y3)
c3 = (y3-y1)*(a-x1)-(x3-x1)*(b-y1)
((c1<0)&&(c2<0)&&(c3<0)) || ((c1>0)&&(c2>0)&&(c3>0))
0467459
NGNG>>460
特に指定はありませんでした。
>>463
プロトコルはhttpかと思います。
僕はDLしてくれる命令がわからなくてgetstoreってのが
そうじゃないかとか探してる最中でした。;;
>>464
ありがとうございます。
えっと、実行してみました。そして
DL先のアドレスはどこになるのでしょうか?
0468459
NGNG>>464
すみません、表示されました。^^;
わけがわからないこといってすみません。
ありがとうございました!
もう少しまじめにCの勉強をして見ます。
ホントにありがとうございました。
0469デフォルトの名無しさん
NGNG{
char str[] = "abcde";
char *ptr = str;
以上のような変数宣言をしたときの
・ポインタ変数のアドレス
・ポインタ変数に格納されている値
・ポインタ変数が参照する配列変数の先頭アドレス
・ポインタ変数の参照先データ
をそれぞれポインタ変数を用いてポインタの位置を文字数分まで
1つずつ進めながら16進数で確認するプログラムを作成せという問題がでました。
これからまじめに講義聞きますので、教えてください。先生・・・許してね。
0470bloom
NGNG0471デフォルトの名無しさん
NGNG0472デフォルトの名無しさん
NGNG書いてあるやろ
0473デフォルトの名無しさん
NGNG> 確認するプログラム
こっちを。
さて、どういう処理をすれば「確認」した事になるかというと
0474デフォルトの名無しさん
NGNG0475デフォルトの名無しさん
NGNGあんたもアホだが問題もアホだ。
ポインタ変数をptrだと考えると
#include<stdio.h>
int main(void)
{
char str[] = "abcde";
char *ptr = str;
int i;
printf( "ptrのアドレス=%p(インクリメント無意味)\n", &ptr );
printf( "ptr参照する配列変数の先頭アドレス=%p(インクリメント無意味)\n", ptr );
for( i = 0; i < 5; i++ )
{
printf( "ptrに格納されている値=%p\n", ptr );
printf( "ptrの参照先データ=%x\n", (int)*ptr );
ptr++;
}
return( 0 );
}
0476デフォルトの名無しさん
NGNGだよな…
配列の先頭アドレスがインクリメントするごとに変わるのかと思って自分を疑った
0477デフォルトの名無しさん
NGNG変わらないのを確かめろ、って意味なんじゃない?
0478デフォルトの名無しさん
NGNG5.438,6.546
3.846,5.478
5.154,5.433
6.516,3.937
....
....
こういう座標のデータが入っているファイルが100個くらいあるんですが、
7x7の空間を0.1ずつに区切って、その区切った升目に、点がいくつあるか
を求めたいんです。
70x70の2次元配列を作って、何とかすればいいのかな、とは思うんですが
プログラム作ったことがないので、まったくどうしていいのかわかりません。
どなたか、助けてください、おねがいします。
0479デフォルトの名無しさん
NGNGとかでカウントしてけばいいんでないか
0480デフォルトの名無しさん
NGNGこれだとやっぱり、「ポインタ変数のアドレス」と
「ポインタ変数が参照する配列変数の先頭アドレス」も
インクリメントしながら確認せにゃいかんのじゃない?
もっとも前者は「変わらん」でいいとして、
後者をどうやれというのか俺には理解できんけど。
やっぱり問題作成者がポインタを理解してないか、日本語を理解してないかのどっちかだな。
0481デフォルトの名無しさん
NGNG&str[0]
0482デフォルトの名無しさん
NGNG丸投げしたいならファイルの内容を晒すこと
自分でやりたいならわからない部分をはっきりさせること
0483デフォルトの名無しさん
NGNGプログラムを組みたい!というのが目的でなければ
エクセル等表計算ソフトを使ったほうが速い
0484デフォルトの名無しさん
NGNG例示されてるコードにはポインタ変数は一つしかないし
「ポインタの位置を文字数分まで1つずつ進めながら」だから、
配列変数の先頭アドレスをどうこうしなかy、と読むのはおかしい
0485478
NGNGそうなんですけど、それを「どうやってCで書くか?」
が、わからないんですわ。
ほんとに初心者ですみませんが、よろしくお願いします。
0486デフォルトの名無しさん
NGNG#include <string>
#include <iostream>
#include <fstream>
#include <math.h>
using namespace std;
int main()
{
int point[70][70] = {0};
ifstream ifs("in.txt");
while(ifs)
{
double x, y;
ifs >> x;
ifs.get();
ifs >> y;
point[int(floor(x*10))][int(floor(y*10))]++;
}
for(int i=0;i<70;i++)
{
for(int j=0;j<70;j++)
{
if(point[i][j])
cout << 0.1*i << "-" << 0.1*(i+1) << "," << 0.1*j << "-"
<< 0.1*(j+1) << "=" << point[i][j] << endl;
}
}
}
0487デフォルトの名無しさん
NGNGおまえ嫌なヤツだな
0488デフォルトの名無しさん
NGNGそれはできたんですけど、これをCでやるとどうなりますか?
・秒数を入力。Enterでカウントダウン開始
・0になったらビープ音が鳴り、TimeOverと表示
0489478
NGNG>487
ありがとうございます。
gccではコンパイルできませんでしたが、g++でコンパイルできました。
実際は360*900に分けないといけなかったので、
これで何とかなりそうです。
ほんとに助かりました、ありがとうございました。
>483
ファイルサイズが結構でかいのと、処理するファイルがたくさんだったので、
excellではちょっと大変そうだなあ。と思いまして。
awkを少し使えるので、試しに作ってみたんですけど、うまくいかなかったのと、
遅かったので、こちらに泣きついてしまいました。
レスをくれた皆様、ありがとうございました。
0490デフォルトの名無しさん
NGNGそれは実際のカウントダウンなのか?
それとも秒数関係なく数字だけを表示してビープ音を鳴らすのかね
0491デフォルトの名無しさん
NGNG#include <windows.h>
#include <iostream>
#include <time.h>
using namespace std;
int main()
{
int sec;
cin >> sec;
DWORD endtime = GetTickCount() + sec*1000;
int tick;
while((tick = endtime - GetTickCount()) > 0)
{
if(tick / 1000 < sec)
{
cout << sec << endl;
sec--;
}
else
Sleep(1);
}
Beep(4000, 1000);
cout << "TimeOver" << endl;
}
0492デフォルトの名無しさん
NGNGBeep(4000, 1000);
cout << "TimeOver" << endl;
0493デフォルトの名無しさん
NGNGどうせBeepはAnsi C++にないからGetTickCount使っちゃいました
0494478
NGNG486さんのプログラムを使ってみたところ、
最後の行を一回多くカウントしているようなんですが、これはどういうことなのでしょうか?
せっかくなので、勉強のために、どうしてそうなるのかを教えていただけたら幸いです。
よろしくお願いします。
0495デフォルトの名無しさん
NGNG5
4
3
2
1
1
TimeOut
となるって事ですか?
0496デフォルトの名無しさん
NGNG意味がよく分からないのだけどこうしろって事?
#include <windows.h>
#include <string>
#include <iostream>
#include <time.h>
#include <math.h>
using namespace std;
int main()
{
int sec;
cin >> sec;
DWORD endtime = GetTickCount() + sec--*1000;
int tick;
while((tick = endtime - GetTickCount()) > 0)
{
if(tick < sec * 1000)
cout << sec-- << endl;
else
Sleep(1);
}
cout << "TimeOver" << endl;
Beep(4000, 1000);
}
0497デフォルトの名無しさん
NGNG'\a' 使えよ
0498デフォルトの名無しさん
NGNGすっかり忘れてました。
0499478
NGNGええと、「カウントダウン」のプログラムではなくって、
その前の「座標」のプログラム。のほうです。
>>486さんのプログラムを使うと、
in.txtにある座標のデータの、最後の行を2回カウントしてしまうんですよ。
たとえば、in.txtの中身が
3.846,5.478
5.154,5.433
6.516,3.937
だとすると、
3.8-3.9,5.4-5.5=1
5.1-5.2,5.4-5.5=1
6.5-6.6,3.9-4=2
という結果が出力されてしまうんです。
よろしくお願いします。
0500デフォルトの名無しさん
NGNG#include <string>
#include <iostream>
#include <fstream>
#include <math.h>
using namespace std;
int main()
{
int point[70][70] = {0};
ifstream ifs("in.txt");
while(ifs)
{
double x, y;
ifs >> x;
ifs.get();
ifs >> y;
if(ifs.fail())
continue;
point[int(floor(x*10))][int(floor(y*10))]++;
}
for(int i=0;i<70;i++)
{
for(int j=0;j<70;j++)
{
if(point[i][j])
cout << 0.1*i << "-" << 0.1*(i+1) << "," << 0.1*j << "-"
<< 0.1*(j+1) << "=" << point[i][j] << endl;
}
}
}
0501478、499
NGNGありがとうございます。うまくいきました。
ソース見てもちんぷんかんぷんですが、
どんなことをしているのか、勉強してみます。
0502デフォルトの名無しさん
NGNGを解くプログラムがわかりません。教えてください
0503デフォルトの名無しさん
NGNG0504343
NGNG#include <stdio.h>
int main()
{
int a,b,c;
for(a=2; a<10000; a++)
{
for(b=2; b<10000; b++)
{
for(c=1; c<10000; c++)
{
if(a*a==(b*b)+(c*c))
{
printf("%d:%d:%d\n",a,b,c);
}
}
}
}
return 0;
}
まだ色々改善しなくちゃだめだけどもっともっと簡単にできたりできませんか?
0505デフォルトの名無しさん
NGNG別の変数を使ってやる方法があったとおもうよ。
u+vとu*vから求めるとかいうの。
0507デフォルトの名無しさん
NGNGaを長辺に固定してるからb<a,c<a
またc<=bとしても一般性は失われない。
ってのでループの条件を修正
0508デフォルトの名無しさん
NGNGいろんなパターンのプラグラムが知りたいんですけど....
0509デフォルトの名無しさん
NGNG0510デフォルトの名無しさん
NGNG0511デフォルトの名無しさん
NGNG0512デフォルトの名無しさん
NGNGで過労による自殺者が出た。
http://www.samos.co.jp
http://society.2ch.net/test/read.cgi/traf/1046749189/l50
http://tmp.2ch.net/test/read.cgi/company/1046775680/l50
,.-、
/.n l /⌒ヽ
| l l | ,' /7 ,'
, '' ` ー ' '-' /
/ 、_, `ヽ
l , .-. 、`´ l
ヽ ヽ ̄フ / また死んだ〜〜〜!
丶、 ̄____,/
/ ,. - 、 )
(( ( n ([N],ハ_う
ゝ)ノ  ̄ ヽ
/ _ l ))
〈__ノ´ `(_ノ
0513名無し@沢村
NGNG会社をやめたら膨大な違約金を取られてしまうんだよ。
また自宅にあるPCも会社に没収されてしまったよ。尾行をつけられたり、電話も盗聴されているんだよ!
会社はおれが他の会社に移ったり自宅でこっそりプログラムをつくったりすることをとても怖れているよ。
困ったもんだね…
0514デフォルトの名無しさん
NGNG標準出力及びファイルに出力するプログラムをシステムコールを
使って作成したいのですが・・・例えば
cat foo.txt | ./a.out
というコマンドを入力とすると、foo.txtの中身が標準出力に出力され、
さらにファイルhoge.txtに格納されるという感じです。
コンパイルはできたのですが、実行するとどうしても
”/0=/dzy#”という変な文字しか出力されません。
どこがおかしいのでしょうか?よろしくお願いします。
#define SIZE 100
int main(void){
int n;
int fd;
char buf[SIZE];
creat("hoge.txt",0644);
fd = open("hoge.txt",1);
while(n = read(0, buf, sizeof buf) > 0){
write(1, buf, n);
write(fd, buf, n);
}
close(fd);
return 0;
}
0515デフォルトの名無しさん
NGNGn初期化しなさいよ。
0516デフォルトの名無しさん
NGNG> fd = open("hoge.txt",1);
ここがおかしい
0517デフォルトの名無しさん
NGNGsize_t n;
0518デフォルトの名無しさん
NGNGwhile(n = read(0,bufm sizeof(buf) > 0) なんてやったら
nには1か0かしか入らない気がするが?
0519デフォルトの名無しさん
NGNG0520514
NGNG>>516の部分、fd = creat("test2.txt",0644);に直してみました。
他で指摘いただいた部分も直しましたがやはり全く同じ結果になります。
本当にわからないです・・・
0521デフォルトの名無しさん
NGNG0522デフォルトの名無しさん
NGNG0523デフォルトの名無しさん
NGNGシェルがパイプエラー出してないかい?
0524デフォルトの名無しさん
NGNG>while(n = read(0, buf, sizeof buf) > 0){
を
while((n = read(0, buf, sizeof buf)) > 0){
にしたか?
0525デフォルトの名無しさん
NGNG0526デフォルトの名無しさん
NGNGいや、コンパイラの中の人の方が。
0527デフォルトの名無しさん
NGNG0528デフォルトの名無しさん
NGNG0529514
NGNGできました、どうもありがとうございます。
>>523
すみません、UNIXの場合どう環境を説明すれば良いか
分かりませんがとりあえずパイプエラーは出てなかったです。
0530369
NGNGスマソ。気をつけます。
0531デフォルトの名無しさん
NGNG実現したいのですが、関数などの使い方がよく分からず
ls_l()の中身をどのようにすればよいか苦戦しております。
どうか指南いただけないでしょうか。以下は滅茶苦茶ですが途中まで書いたやつです。
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <pwd.h>
#include <grp.h>
int main(int argc, char *argv[]){
if( argc != 2 ){
fprintf(stderr,"Usage: %s filename \n",argv[0]);
exit(0);
}
ls_l(argv[1]);
}
0532デフォルトの名無しさん
NGNGstruct stat buf;
if(lstat(const path, &buf) == -1)
{
perror(path);
exit(1);
}
printf("%d",readlink(path));
printf("%s",getpwuid((int)path));
/*printf("%s",getgrgip(buf.st_gid));*/
/*printf("%d",buf.st_size);*/
printf("%s",ctime(&buf.st_ctime));
printf("%s\n",path);
}
0533デフォルトの名無しさん
NGNGmanを引きながらBSDとかGNUのソースを見ればいいのでは?
0534デフォルトの名無しさん
NGNGsystem("ls -l dir");
するとか、
popen("ls -l dir", "r");
すれば事足りるんでないの?
どうしてもってことならUnixならソースがあるんだから>>533の言うとおり。
0535531
NGNG0536デフォルトの名無しさん
NGNGテンプレートとフレンド関数の問題なんですが、
friend void C2< T1 >::F3( C1< T1 > &);
が入るときの各クラスを求めよというものです。
Cx : クラス Tx : 型パラメータ Fx : 関数 で
xはクラスごとに異なります
#include <iostream.h>
template <typename T3>
class C3{
public:
void F3(C3< T3 > &a){;}
};
template <typename T2>
class C2 : public C3< T2 >{
};
template <typename T1>
class C1{
friend void C2< T1 >::F3(C1< T1 > &);
};
だと F3(C1< T1 > &) が F3(C3< T1 > &) じゃないとダメだし…
ホントわけ分からなくなりました。よろしくお願いします。
0537デフォルトの名無しさん
NGNG入力した文字列から指定した文字を検索するプログラムを作れ。
ただしポインタ変数を用いよ!
要は、こんな感じで実行結果が出ればいいようですが・・・。
文字列を入力してください:abcabc
検索文字を入力してください:b
文字列"abcabcに"b"は
2番目 5番目
にあります.
文字列を入力してください:abcde
検索文字を入力してください:z
そんな文字は入っていません
時間がなくて困ってます。お願いしますtt
0538デフォルトの名無しさん
NGNGman stat
0539デフォルトの名無しさん
NGNG#include <stdio.h>
int main()
{
char s[100];
char ch;
printf("文字列を入力してください:");
gets(s);
printf("検索文字を入力してください:");
ch = getchar();
0540539
NGNG途中だけど帰る。
0541デフォルトの名無しさん
NGNGchar *mystrchr(char *p, int ch)
{
while (*p) {
if (*p == ch) {
return p;
}
++p;
}
return NULL;
}
0542デフォルトの名無しさん
NGNG{
char buf[256];
char ch;
char *p;
int offset;
printf("文字列を入力してください:");
scanf("%256s", buf);
printf("検索文字を入力してください:");
scanf(" %c", &ch);
if ((p = mystrchr(buf, ch)) != NULL) {
printf("文字列\"%s\"に\"%c\"は\n", buf, ch);
while (p != NULL) {
offset = p - buf + 1;
printf("%d番目 ", offset);
p = mystrchr(p + 1, ch);
}
printf("\nにあります.\n");
}
else {
printf("そんな文字は入っていません\n");
}
return 0;
}
0543デフォルトの名無しさん
NGNG教えてください。。
0544デフォルトの名無しさん
NGNGC FAQ読み直して来い
0545デフォルトの名無しさん
NGNG0546デフォルトの名無しさん
NGNG0547デフォルトの名無しさん
NGNG#include <stdio.h>
#include <stdlib.h>
#define BUFSIZE (1024)
#define TRUE (0)
#define FALSE (!TRUE)
int main(){
char buffer[BUFSIZE]; // for fgets&sscanf
char strSearchData[BUFSIZE];
char chrQuery;
char *pSearch;
int iCheck[BUFSIZE];
int iCount;
int i;
// init
for(i=0;i<BUFSIZE;i++){
iCheck[i]=FALSE;
}
iCount=0;
0548デフォルトの名無しさん
NGNG// input
printf("文字列を入力してください:");
fgets(buffer,BUFSIZE,stdin);
sscanf(buffer,"%s",strSearchData);
printf("検索文字を入力してください:");
fgets(buffer,BUFSIZE,stdin);
sscanf(buffer,"%c",&chrQuery);
// search
i=0;
for(pSearch=(char *)strSearchData;*pSearch!='\0';pSearch++,i++){
if(*pSearch == chrQuery){
iCheck[i]=TRUE;
iCount++;
}
}
0549デフォルトの名無しさん
NGNG// result
if(iCount==0){
printf("そんな文字は入っていません\n");
}else{
printf("文字列\"%s\"に'%c'は\n",strSearchData,chrQuery);
for(i=0;i<BUFSIZE;i++){
if(iCheck[i]==TRUE){
printf("%d番目",i+1);
}
}
printf("\n");
printf("にあります");
}
}
>>542の方が綺麗だけどさ・・・
0550デフォルトの名無しさん
NGNG0551デフォルトの名無しさん
NGNGint main() {
char s[100];
char ch, *t;
printf("文字列を入力してください:");
gets(s);
printf("検索文字を入力してください:");
ch = getchar();
for (t = s; *t && *t != ch; t++) ;
if (!*t) {printf("そんな文字は入っていません\n"); return 0;}
printf("文字列\"%s\"に\"%c\"は\n", s, ch);
for (; *t; *t++)
if (*t == ch) printf("%d番目 ", t-s+1);
printf("\nにあります.\n");
return 0;
}
0552デフォルトの名無しさん
NGNGtを巻き戻せ。
0553デフォルトの名無しさん
NGNG0554デフォルトの名無しさん
NGNG1バイト=8ビットとは限らない、って言いたかったんだろう
きっと
0555デフォルトの名無しさん
NGNG0556デフォルトの名無しさん
NGNGtを巻き戻すってどこ?
0557デフォルトの名無しさん
NGNG配列に入れる代わりにフラグを使ってみました
#include <stdio.h>
#include <string.h>
int main()
{
char InputString[512], SearchString[512], *Position;
int Matched;
fprintf(stderr, "文字列を入力してください:"); gets(InputString);
fprintf(stderr, "検索文字を入力してください:"); gets(SearchString);
Matched = 0;
for(Position = InputString; (Position = strstr(Position, SearchString)) != NULL; Position++){
if(!Matched){
printf("文字列\"%s\"に\"%s\"は", InputString, SearchString);
Matched = 1;
}
printf(" %d", Position - InputString + 1);
}
if(Matched){
printf(" 番目にあります\n");
} else {
printf("そんな文字は入っていません\n");
}
return 0;
}
0558デフォルトの名無しさん
NGNG3次元空間上の4点
A (10,135,14), B (73,-16,-22), C (27,-21,96), D (-50,-32,-43),
で構成される3角錐、及びその3角錐内の点 P を考える。
今、点 P が始点 O (0,0,0)にあり、1秒毎に
ベクトル V(1,2,3) 分だけ移動し続けるとする。
但し、もし P が3角錐の面と交差した時には、
P はその面に対して垂直に反射するように移動方向を
変えるものとした場合、1年(365日)後の点 P の
座標を求めよ。
0559デフォルトの名無しさん
NGNGそれともシミュレーションでゴリゴリやっていいの?
0560デフォルトの名無しさん
NGNG#include <string>
#include <iostream>
using namespace std;
int main()
{
string str, fstr;
char c, *pc = &c;
size_t pos;
cout << "文字列を入力して下さい" << endl;
cin >> str;
cout << "検索文字を入力して下さい" << endl;
cin >> *pc;
fstr = *pc;
if((pos = str.find(fstr)) != string::npos)
{
cout << "文字列\"" << str << "\"に\"" << *pc << "\"は" << endl;
do
{
cout << pos + 1 << "番目 ";
} while((pos = str.find(fstr, pos+1)) != string::npos);
cout << "\nにあります" << endl;
}
else
cout << "そんな文字は入っていません" << endl;
}
0561560
NGNGヒント関数atoiを用いると容易。
お願いします
0562r
NGNGこれを参考にして。
#include <cstdlib>
#include <iostream>
int main( int argc, char* argv[] ) {
int sum = 0;
while( int i = 1; i < argc; i++ ) {
sum += std::atoi( argv[i] );
}
std::cout << sum;
}
}
0563デフォルトの名無しさん
NGNG#include <cstdlib>
#include <iostream>
int main(int argc, char** argv)
{
int value=0;
for(int i=1; i<argc; i++)
value += std::atoi(argv[i]);
std::cout << value << std::endl;
return 0;
}
0564デフォルトの名無しさん
NGNG0566デフォルトの名無しさん
NGNG解ける方法で解いてください。
0568デフォルトの名無しさん
NGNGまず50個のデータ(数字)を入力し、昇順に並べ替える。
そのなかに好きな数字を入れて、その数字がどこにあるのかを探し、
その進行状況を表示するプログラムを作成せよ。
(例えば、すべてのデータが50個であり、二分探索で25番目を検索している時は、25と表示。)
0569デフォルトの名無しさん
NGNGめんどいからバカソートで良いじゃん。
0570デフォルトの名無しさん
NGNGソートはqsortでいいだろ。
サーチはbsearch使うわけにはゆかないけど。
0571デフォルトの名無しさん
NGNGじゃあ線形探索だ。for一個で楽ちん。
0572デフォルトの名無しさん
NGNGHash 表作って一発サーチすれば、進行状況の表示がサボれるかもしれない。
0573デフォルトの名無しさん
NGNG#include <stdio.h>
#include <time.h>
inline int icmp(const int *x, const int *y){return *x - *y;}
int ibsearch(const int key, const int *base0, size_t nmemb) {
int i, base = 0; size_t lim;
for (lim = nmemb; lim != 0; lim /= 2) {
i = base + lim/2; printf("[%d]", i);
if (key == base0[i]) return i; if (key > base0[i]) { base = i+1; lim--; } }
return -1; }
int main(int argc, char **argv) {
int n, i, *base; char buf[BUFSIZ];
n = argc-1;
if (0 == n){ fprintf(stderr, "usage: %s numbers...\n", argv[0]); return 1; }
base = (int*)malloc(sizeof(int)*n);
for (i = 0; i < n; ++i) base[i] = atoi(argv[i+1]);
qsort(base, n, sizeof(int), (int(*)(const void*, const void*))icmp);
while (fprintf(stderr, "input target: "), fgets(buf,BUFSIZ,stdin))
puts(ibsearch(atoi(buf), base, n) < 0 ? " not found" : " found");
return 0; }
0574デフォルトの名無しさん
NGNGあまつさえ、それを qsort の引数にしている >>573 に小一時間(ry
0575デフォルトの名無しさん
NGNGハッシュがかち合ったとき、どのみち表示しないとダメでしょ
0576デフォルトの名無しさん
NGNGオーバーフロー領域の検索なんて所詮数回でしょ ?
(そうでないときは、ハッシュの設計ミスだし。)
表示なんかしても一瞬だからいらんと思うけど。
0577デフォルトの名無しさん
NGNG0578558
NGNG比較関数内に状況を表示させる機能をつければ bsearch を使っても良いと思われ。
(但し、それがC言語の規約上、動作が「保証」されているかどうかは怪しいが・・・)
そんな事より、誰か >>558 の解答、よろしくおながいします。
0579デフォルトの名無しさん
NGNG0580デフォルトの名無しさん
NGNG0581デフォルトの名無しさん
NGNGじゃあ、何だったらいいでしか?
0582デフォルトの名無しさん
NGNG0583デフォルトの名無しさん
NGNG0584デフォルトの名無しさん
NGNG0585デフォルトの名無しさん
NGNG0586デフォルトの名無しさん
NGNG三角錐の面と交差するか調べる関数と
垂直に反射する関数を書けばいいのだよ。
俺は数学が分からないから書けないが。
緯度と経度で表したり、外積を使えば簡単に書けるかもしれん。
0587デフォルトの名無しさん
NGNG0588デフォルトの名無しさん
NGNG順次探索のsearch関数、insert関数、delete関数を配列ではなくリストで
プログラムを書かないといけないのですが、
どのようなプログラムになるか教えてくださいm(_ _)m
0589558
NGNGとリあえず C++ でもいいです。
>>586
要するにレイトレするのと同じなのは分かっていますが、
もっと単純&エレガントな方法があればなお良いのです。
Cを使って2chの1レス内にコピペできるくらいのが希望です。
0590デフォルトの名無しさん
NGNG> P はその面に対して垂直に反射するように
^^^^^^^^
0591デフォルトの名無しさん
NGNGあるデータファイルをヒストグラムが書けるデータファイルに
したいのですが。データの数は決まってないです。
よろしくお願いします。
0592デフォルトの名無しさん
NGNG比較関数に渡される要素ってどっちが探索中の要素で、どっちが比較対照要素になるかって決まってるのか ?
俺も一瞬考えたけど、そこら辺がわからんかった。
>>577, >>580
畑って言ってるけど、進行状況を表示するぐらいの規模だぜ。
まあ、>>568 はなんかの宿題だろうから、>>572 は当然ネタだけど、実際のプログラムなら Hash は検討すべきだと思うよ。
>>587
もうちょっとなんか書けよ。
0593デフォルトの名無しさん
NGNGとりあえず、これで必要最小限の実装になっていると思うが、どうよ。
typedef struct List_ {struct List_ *n;void *e;} List;
typedef int ListCmp(void *a,void *b);
List *Search(List *h,void *e,ListCmp p)
{while(h!=NULL&&p(h->e,e))h=h->n;return h;}
List *Insert(List *h,void *e)
{List *l=(List *)malloc(sizeof(List));l->n=h;l->e=e;return l;}
List *Delete(List *h,List *d)
{if(h==d)return h->n;while(h)if(h->n==d){h->n=d->n;break;}return h;}
0594デフォルトの名無しさん
NGNGC99ならinlineがサポートされているよ
0596デフォルトの名無しさん
NGNGなら、qsort に inline 関数を渡したとき、
その関数はインライン展開されるのか?
0597デフォルトの名無しさん
NGNG>比較関数に渡される要素ってどっちが探索中の要素で、どっちが比較対照要素になるかって決まってるのか ?
進行状況を表示するだけならば、それらの情報は全く要らないと思うが。
0598デフォルトの名無しさん
NGNGこれを実行すると 合計は[2550] と表示される。
4行目の宣言を消してforヘッダの中でnumを宣言するようにすると
合計は[2] になってしまう。理由を述べよ。
#include <stdio.h>
int main()
{
int sum;
int num; /* 4行目 */
for (/*int*/ num = 2, sum = 0; num <= 100; num += 2)
sum += num;
printf("合計は[%d]\n", sum);
return 0;
}
0599デフォルトの名無しさん
NGNGうちでは、0 になりましたが。
0600デフォルトの名無しさん
NGNG0601デフォルトの名無しさん
NGNG正確にいうと出力される数字は不定
for (int num = 2, sum = 0; num <= 100; num += 2)
こうした場合sumは2回目の宣言となる
1個目のsumは隠されるためアクセスできない
1個目のsumは値が代入されないので値は不定
0602デフォルトの名無しさん
NGNGqsortの中にってこと?されるはずがない。
ちなみに私は>>573じゃないよ。
0603デフォルトの名無しさん
NGNG糞みたいな宿題だな。
0604593
NGNG渡されたら(まぁ、普通起こらないとは思うが)、ぬるぽが出ちゃうよ!
やっぱり本能に任せたままのコーディングはいかんな。
悪い、>>588 よ、そこら辺はてきとーに直しておいてくれ。
0605デフォルトの名無しさん
NGNG0606デフォルトの名無しさん
NGNG3行目のint sumとforヘッダのsumは別物なんでつね。
たまたま偶然2だったと、フみたいなもんでつか。
ちなみ3行目を int sum = 55; にしたら
合計は[55] になりますた。
0607動画直リン
NGNG0608デフォルトの名無しさん
NGNGガッ
0609デフォルトの名無しさん
NGNGなければ「数字がありませんでした。」と表示するプログラムをつくれ。
C言語です。よろしくお願いします。
0610デフォルトの名無しさん
NGNG関数のポインタ渡しと化する場合は当然展開されない版が
リンクされる。
0611デフォルトの名無しさん
NGNGisdigit
0612デフォルトの名無しさん
NGNGDelete() で、ルートがさす要素以外の要素を指定したら無限ループ。
Insert() で、malloc() する割には、Delete() で free() しないと言う変なインターフェース。
>>604 以前に、よくこんなものネットに晒せたもんだな。
0613デフォルトの名無しさん
NGNG0614デフォルトの名無しさん
NGNGそこまで言わなくてもいいじゃん。
だからいつも一言多いと言われるんだよ。
0615デフォルトの名無しさん
NGNGそんな文章よくネットに晒せたもんだな。
0616593
NGNG>Delete() で、ルートがさす要素以外の要素を指定したら無限ループ。
お、ほんとだ、ありがと。で修正。
{if(h==d)return h->n;while(h)if(h->n==d){h->n=d->n;break;h=h->n;}return h;}
>Insert() で、malloc() する割には、Delete() で free() しないと言う変なインターフェース。
ここは趣味の問題。
0617593
NGNGうわ、修正にもなっていないよ(w
{if(h==d)return h->n;while(h){if(h->n==d){h->n=d->n;break;}h=h->n;}return h;}
0618デフォルトの名無しさん
NGNG0619デフォルトの名無しさん
NGNGぷぷっ、釣りですか ?
0620デフォルトの名無しさん
NGNG利用者がやるんだと思う。
ルートポインタの更新も利用者任せみたいだから、正直ちょっとどうかと思う。
0621デフォルトの名無しさん
NGNGにある処理をC言語でするとどうやればいいのでしょうか?
0622デフォルトの名無しさん
NGNGsystem("perl -i.bak -npe 's/\r\n/\n/' hogehoge.txt");
0624デフォルトの名無しさん
NGNG0625デフォルトの名無しさん
NGNGread(s,buf,sizeof(buf));
のbufを変換する場合は?
0626デフォルトの名無しさん
NGNGfor(1;2;3) {4} なら 1→(2→4→3→2→4→3)・・・
と言うのは分かるのですが。初期値代入は複数書くのは処理系依存なのですか?
パット見102*25==2550と思ったのでよく宿題の意味がわからなかったのですが。
0627デフォルトの名無しさん
NGNG×: system("perl -i.bak -npe 's/\r\n/\n/' hogehoge.txt");
○: system("perl -i.bak -npe 's/\\r\\n/\\n/' hogehoge.txt");
0628デフォルトの名無しさん
NGNG#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
int main(void)
{
FILE*fp;char s[1024];int i,l,ok;
if((fp=fopen("file.txt","rb+"))==NULL){puts("ファイルオープン失敗");exit(1);}
fread(s,sizeof(s),1,fp);fclose(fp);
for(i=0,l=strlen(s),ok=0;i<l;i++){if(isdigit((int)s[i])){ok=1;break;}}
if(ok)puts("数字あり");else puts("数字なし");
return 0;
}
0629629
NGNGStatic char *name[7] = {“Sunday”,”Monday,”Tuesday”,”Wednesday”,”Thursday”,”Friday”,”Saturday”};n
お願いします
0630デフォルトの名無しさん
NGNGの考え方がわかりません。どなたかおしえてください
0631593
NGNGなら、 free すれば使用メモリが減るという保証でもあるんでしか?
また、(実は)下の件にも関わってくるでし。
>>620
>ルートポインタの更新も利用者任せみたいだから、正直ちょっとどうかと思う。
実際に何度かリストをいじったことがあればすぐに気づくと思うが、
リストという香具師は、必ず先頭から辿りたい時ばかりとは限らない
(言語処理系の変数のスコープの実装などが良い例)。
ならば、「リストを管理する構造体」などという殻で全体を囲わずに
実際に扱う対象はリストの先頭のポインタのみで、
後の細かな管理は使用する側にまかせるのが吉、という事もある。
まあ、これも趣味の問題だが・・・
0632デフォルトの名無しさん
NGNG普通EOFまで一文字ずつ読み込んで処理しないか?
0633デフォルトの名無しさん
NGNG#define Static static
char *DayName(int n)
{
Static char *name[7] = {“Sunday”,”Monday,”Tuesday”,”Wednesday”,”Thursday”,”Friday”,”Saturday”};
if(n<0||n>6) return NULL;
return name[n];
}
0634デフォルトの名無しさん
NGNGこう書き換えるとわかるかな?
int sum;
for (int sum = 0, num = 2; num <= 100; num += 2)
int sumが2回宣言されてるよね
0635デフォルトの名無しさん
NGNG0636633
NGNG0637デフォルトの名無しさん
NGNG#include <stdio.h>
char*DayName(int n)
{
static char*name[7]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};
return name[n%7];
}
int main(void)
{
printf("%s\n",DayName(14));
return 0;
}
0639デフォルトの名無しさん
NGNG0641デフォルトの名無しさん
NGNG> なら、 free すれば使用メモリが減るという保証でもあるんでしか?
毎回こう言うこと言う奴がでてくるな...。
まあ下の件も含めて、趣味の範疇なんだろうからどうでもいいけど、正直こう言う奴とは組みたくないな。
0642593
NGNG>まあ下の件も含めて、趣味の範疇なんだろうからどうでもいいけど、正直こう言う奴とは組みたくないな。
世の中には奇妙な事や変な事を考えている奴は意外と多いもの。
あなたには、たまには普段と違う世界・パラダイムを覗いてみる事を
お勧めするでつ。
0643デフォルトの名無しさん
NGNGと聞いてるんだよ。
質問を質問で返すなよ。
0644643
NGNGこの糞度もがぁーーーーっ!!!!!
0645デフォルトの名無しさん
NGNG0646デフォルトの名無しさん
NGNG0647デフォルトの名無しさん
NGNGというクラスがあって、これを削除したい場合は
delete p_sts;
ですむのだけど、これをたとえば、自殺したい場合はどうすれば
いいのですか?
たとえば、CTestのメンバ関数内で、自殺したい場合です。
delete this; では、まずいですよね?
0648デフォルトの名無しさん
NGNG自殺なんてできない。
0649デフォルトの名無しさん
NGNGえと、ではいつもどうしてます?
ちなみに自分は、KillRequest() というメンバ関数を設置して、
自殺したい場合はこのメンバ関数を呼び出してます。
この関数内では、boolフラグをたてて、
あとで、別の場所でこのboolフラグを監視し、もしたっていれば
そこで delete かけることで実装してます。
が、これは非常にコーディングに注意力が必要で、
油断してると、すぐにdelete漏れしてしまうのです。
どうしたものだか・・・
0650デフォルトの名無しさん
NGNGそれは生成元で管理しきれないから
GCっぽいことしてるってこと?
そのフラグ監視してるのが自前GC?
0651デフォルトの名無しさん
NGNGんー、そうなのかなー、自前GCというのだろうか?
自分の中ではグルーピングと呼んでいて、
一応、それ専用の監視クラスが存在してはいるんだけど・・・
>>それは生成元で管理しきれないから
そのとおりですー
小規模なら、注意力喚起して、生成元で管理しきれるのだけど
最新のPCでビルドに3分以上かかるような規模になると
もう、生成元では管理できなくて・・・
0652デフォルトの名無しさん
NGNGただ、自信が無かったりするなら↓とかチェックしてみれ。
http://www.hpl.hp.com/personal/Hans_Boehm/gc/
(boolフラグ立て忘れたらどうしよう・・・とか)
0653デフォルトの名無しさん
NGNG0654593
NGNG>>643-644
夜遅くまでご苦労さん(w
いちお解答しますけど、当然ふえていきます。
ただし、これが問題となるような状況が発生した時に
それを解決するための方法は、>643タン は真っ先に free を
思いつくのかも知れませんが、私ならまず、
1.(OS側の管理情報を減らす為)List 構造体用のメモリ管理を
アプリケーション内で行う
2.GCを実装する
という(比較的効果が高いと思われる)対策を取ったあと、
最後のおまけとして free をくっつけまつ。
今回の件では、ここまでやる必要性は無いと判断したのですが・・・
0655デフォルトの名無しさん
NGNG> 1.(OS側の管理情報を減らす為)List 構造体用のメモリ管理を
> アプリケーション内で行う
よくこう言う奴がいるけど、大体 malloc()/free() ライブラリよりヘボイもの書いて自己満足してる奴が多い。
大体は、まともに free() するプログラムが書けない奴だと思う。
> 2.GCを実装する
だったら初めから、C/C++ なんか使わん方がいいと思うけどね。
別に、>>593 がそうだと言ってるわけじゃないけどさ。
0656デフォルトの名無しさん
NGNG0657デフォルトの名無しさん
NGNG> 今回の件では、ここまでやる必要性は無いと判断したのですが・・・
じゃぁ真っ先に思いつく最後のおまけのfreeくらいつけとくもんだ。
0658デフォルトの名無しさん
NGNG高いとは思えん。shared_ptrで十分。
0659デフォルトの名無しさん
NGNG604のケアレスミスを見てると
0660デフォルトの名無しさん
NGNG仮にdelete thisで自殺ができたとすると、
p_sts(p_tst?)が参照切れを起こす。
自殺時にp_stsを書き換えるようにすると、外部との結合度が高くなりよろしくない。
自殺したこを示すフラグを用意する手もあるが、わざわざ自殺しなくても、
そのフラグをチェックしたときにdeleteすればよい。
外部から参照されていない場合は、そもそもメンバ関数が呼ばれないはず…
0661あふぉ
NGNG2進数表示を利用する奴です。
0662593
NGNGあのー、しっかりと>>631で
>また、(実は)下の件にも関わってくるでし。
とコメントつけといたんですけど・・・
Delete した構造体が "必ず" free するべき対象となるとは
限らないことは結構あるものです。
>>659
あなた、ケアレスミスの "亡霊" に取り付かれていませんか?
なにか辛い事でもあったんでしか?
0663デフォルトの名無しさん
NGNGdouble power(double x, double n)
{
FILE *fp;
char buf[100];
sprintf(buf, "awk 'BEGIN{print %g^%g}'", x, n);
fp = popen(buf, "r");
fgets(buf, sizeof(buf), fp);
pclose(fp);
return atod(buf);
}
0664593
NGNGそんな点より、free の前の malloc でメモリが確保できなかったときの
対応がぬけていると責める人が現れなくなった、というのは
時代の流れを感じるでつ。
隔世の感がありまつな・・・
0665デフォルトの名無しさん
NGNG0666デフォルトの名無しさん
NGNGここは宿題スレ。
0667デフォルトの名無しさん
NGNGこういうスタンスに立つなら、mallocするのがおかしいような気がする。
0668デフォルトの名無しさん
NGNG今はfree()の話をしてるんで、malloc()の件は後で
0669デフォルトの名無しさん
NGNG0670デフォルトの名無しさん
NGNG#include<stdio.h>
#include<stdlib.h>
#include"list_appli_header.h"
#include"liststructure.h"
int init(void)
{
head=NULL;
return 1;
}
0671デフォルトの名無しさん
NGNGnodetype* search(keyType a_key) {
........
}
int insert(dataType *dp) {
........
}
int delete(keyType a_key) {
........
}
void printAllData(void) {
nodeType *p=head;
while(p!=NULL){
printkey(p);
printf(",");
p=p->next;
}
printf("\n");
}
このプログラムの........の部分の順次探索の
search関数、insert関数、 delete関数をリストで書かないといけないのですが、
どのようなプログラムになるのか教えて下さい。
0672デフォルトの名無しさん
NGNG#include"liststructure.h"
の中身は自分で想像しろってことかな?
0673デフォルトの名無しさん
NGNG0674デフォルトの名無しさん
NGNG>>588 と同じ課題?
0675デフォルトの名無しさん
NGNG0676デフォルトの名無しさん
NGNGlist_appli_header.hとliststructure.hの中身は、
●list_appli_header.h
typedef int keyType ;
typedef struct {
keyType key ;
} dataType ;
typedef struct node {
dataType data ;
struct node *next ;
} nodeType ;
int less(keyType, keyType) ;
int equal(keyType, keyType) ;
keyType key(dataType *p) ;
keyType key2(nodeType *p) ;
void printKey(nodeType *p);
0677デフォルトの名無しさん
NGNGstatic nodeType *head ;
int init(void) ;
int insert(dataType *p) ;
nodeType* search(keyType) ;
int delete(keyType) ;
void printAllData(void) ;
です。
宜しくお願いします。
0678デフォルトの名無しさん
NGNG> Delete した構造体が "必ず" free するべき対象となるとは
> 限らないことは結構あるものです。
はぁ ?
だったら、なぜ Insert する構造体は必ず malloc() するんだ ?
free してない構造体は何に使うんだ ?
設計ミスの言い訳は見苦しいぞ。
(InsertWithoutMalloc() を作るとか言い出しそうだな...。(藁 )
0679デフォルトの名無しさん
NGNGデータ数がいくつでも可能というように書き換えて
#include<iostream.h>
#include<fstream.h>
#include<map.h>
int main()
{
std::ifstream fin("in.txt");
std::map <int,int> intmap;
for(int i=0;i<5000;i++)
{
int val;
fin >> val;
intmap[val]++;
}
std::ofstream fout("out.txt");
for(std::map<int, int>::iterator it=intmap.begin();it!=intmap.end(); ++it)
{
fout << (*it).first << " " << (*it).second << std::endl;
}
return 0;
}
0680デフォルトの名無しさん
NGNG0681デフォルトの名無しさん
NGNG> #include<fstream.h>
> #include<map.h>
ぐはっ
0682初心者の名無しさん
NGNG> 限らないことは結構あるものです。
全然思いつかないんだけど例えばどういうとき?
0683デフォルトの名無しさん
NGNG0684デフォルトの名無しさん
NGNG0685デフォルトの名無しさん
NGNGnodeType* search(keyType a_key) {
nodeType* p = head;
while (p != NULL) {
if (p->data.key == a_key) break;
p = p->next;
}
return p;
}
int insert(dataType *dp) {
nodeType* node;
if ((node = (nodeType*)malloc(sizeof(nodeType))) == NULL) return 0;
node->data = *dp;
node->next = NULL;
if (head == NULL) {
head = node;
} else {
nodeType* p = head;
while (p->next != NULL) p = p->next;
p->next = node;
}
return 1;
}
0686デフォルトの名無しさん
NGNG#include <iostream>
#include <fstream>
#include <map>
#include <string>
int main()
{
std::string filename;
std::map <int,int> intmap;
while(1)
{
std::cin >> filename;
if(std::cin.fail())
break;
std::ifstream fin(filename.c_str());
std::map<int, int> intmap;
for(;;)
{
int val;
fin >> val;
if(fin.fail())
break;
intmap[val]++;
}
}
std::ofstream fout("out.txt");
for(std::map<int, int>::iterator it=intmap.begin(); it!=intmap.end(); ++it)
{
fout << (*it).first << " " << (*it).second << std::endl;
}
return 0;
}
0687685
NGNGnodeType* node;
if (head->data.key == a_key) {
node = head;
head = node->next;
free(node);
return 1;
} else {
nodeType* p = head;
while (p->next != NULL) {
if (p->next->data.key == a_key) {
node = p->next;
p->next = node->next;
free(node);
return 1;
}
p = p->next;
}
}
return 0;
}
0688686
NGNG#include <iostream>
#include <fstream>
#include <map>
#include <string>
int main()
{
std::string filename;
std::map <int,int> intmap;
while(1)
{
std::cin >> filename;
if(std::cin.fail())
break;
std::ifstream fin(filename.c_str());
for(;;)
{
int val;
fin >> val;
if(fin.fail())
break;
intmap[val]++;
}
}
std::ofstream fout("out.txt");
for(std::map<int, int>::iterator it=intmap.begin(); it!=intmap.end(); ++it)
{
fout << (*it).first << " " << (*it).second << std::endl;
}
return 0;
}
0689デフォルトの名無しさん
NGNGstd::map<int,int> intmap;
std::string filename;
while(std::cin >> filename)
{
std::ifstream fin(filename.c_str());
int val;
while(fin >> val)
{
intmap[val]++;
}
}
0690デフォルトの名無しさん
NGNGありがとうございます。
クラスとか使わないでできないですかね?
0691デフォルトの名無しさん
NGNG出来るけどやる気無いから他の人にやってもらって
0692デフォルトの名無しさん
NGNG> クラスとか使わないでできないですかね?
意味わからん。
0693デフォルトの名無しさん
NGNG頭悪いな
0694デフォルトの名無しさん
NGNG意味わかったの?おしえて。
「クラスとか」ってやつを具体的にしてもらえれば分かるような気はするんだ。
0695デフォルトの名無しさん
NGNGifstreamはbasic_ifstreamのtypedefでbasic_ifstreamはクラスだよ。分かる?
ofstreamはbasic_ofstreamのtypedefでbasic_ofstreamはクラスだよ。分かる?
0696デフォルトの名無しさん
NGNG0697デフォルトの名無しさん
NGNGそれはわかります。
streamクラスを使わないとして、FILE*は使っていいってことですかね?
stringもmapもクラスです。
stringのほうはchar*でいけそうだけど、
mapのほうは構造体を使わないとムリなんじゃないですか?
あ、もしかして、
int intmap[INT_MAX];ですか?
0698デフォルトの名無しさん
NGNG0699デフォルトの名無しさん
NGNGint* mapindex;
int* mapvalue;
0700デフォルトの名無しさん
NGNG0701デフォルトの名無しさん
NGNGmapのほうは構造体を使わないとムリなんじゃないですか?
mapのほうは構造体を使わないとムリなんじゃないですか?
int intmap[INT_MAX];int intmap[INT_MAX];int intmap[INT_MAX];
0702697
NGNG|も.|
|う |
│来│
│ね│
│え .|
│よ .|
バカ ゴルァ │ !!.│
└─┤ プンプン
ヽ(`Д´)ノ ヽ(`Д´)ノ (`Д´)ノ ( `Д)
| ̄ ̄ ̄|─| ̄ ̄ ̄|─| ̄ ̄ ̄|─□( ヽ┐U
〜 〜  ̄◎ ̄ . ̄◎ ̄  ̄◎ ̄ ◎−>┘◎
0703デフォルトの名無しさん
NGNG0704デフォルトの名無しさん
NGNG下のプログラムを書いたんだけどエラーでちゃったどう書き直せばいいの?
main( int argc, char *argv[])
{
int dat[1];
int i, ii;
int time;
int G=[200000];
if(argc!=2)
{
printf("<execute file> <input filename>\n");
exit(1);
}
if( argc < 2)
{
cerr << "You must specify a filename" << endl;
exit(1);
}
ifstream fin(argv[1]);
while(1)
{
fin >> dat[0];
if(!fin.eof())
break;
for(time=0; time < 100000;time++)
{
if(dat[0]==time)
G[time]++;
}
cout << dat[0] << setw(4) << G[time] << endl;
}
}
0705デフォルトの名無しさん
NGNGifstreamは使っちゃ駄目なんじゃないの?
0706デフォルトの名無しさん
NGNG0707デフォルトの名無しさん
NGNG0708デフォルトの名無しさん
NGNG0709デフォルトの名無しさん
NGNG0710デフォルトの名無しさん
NGNGdat[1]と書けばdat=3;などとやってしまったときにエラーにしてくれる。
0711697
NGNG#include <cstdio>
#include <cstdlib>
#include <limits>
#include <algorithm>
int main()
{
using namespace std;
size_t mapsize = 0;
int* mapindex = 0;
int* mapvalue = 0;
size_t filenamecapacity = 1;
char* filename = static_cast< char* >( malloc( filenamecapacity ) );
if( filename == 0 ) abort();
0712697
NGNG{
size_t filenamesize = 0;
for(;;)
{
int c = getchar();
if( c == EOF )
goto END_OF_INPUT;
else if( c == ' ' || c == '\n' || c == '\t' )
c = '\0';
if( filenamecapacity <= filenamesize )
{
size_t n = filenamecapacity * 2;
filename = static_cast< char* >( realloc( filename , n ) );
if( filename == 0 ) abort();
filenamecapacity = n;
}
filename[ filenamesize++ ] = c;
if( c == '\0' ) break;
}
0713697
NGNGif( in != 0 )
{
size_t const bufsize = std::numeric_limits< int >::digits10 + 1;
char buf[ bufsize ];
for(;;)
{
size_t read = 0;
for(;;)
{
int c = fgetc( in );
if( c == EOF )
goto END_OF_FILE;
else if( c == ' ' || c == '\n' || c == '\t' )
c = '\0';
if( read < bufsize )
{
buf[ read ] = ( read < bufsize - 1 ) ? c : '\0';
++read;
}
if( c == '\0' ) break;
}
if( read == 0 || bufsize < read ) goto END_OF_FILE;
0714697
NGNGlong val = strtol( buf , &endptr , 0 );
if( *endptr != '\0'
|| val < std::numeric_limits< int >::min()
|| std::numeric_limits< int >::max() < val )
goto END_OF_FILE;
size_t pos = distance( mapindex , lower_bound( mapindex , mapindex + mapsize , val ) );
if( pos == mapsize || mapindex[pos] != val )
{
size_t n = mapsize + 1;
mapindex = static_cast< int* >( realloc( mapindex , sizeof( int ) * n ) );
mapvalue = static_cast< int* >( realloc( mapvalue , sizeof( int ) * n ) );
if( mapindex == 0 || mapvalue == 0 ) abort();
copy_backward( mapindex + pos , mapindex + mapsize , mapindex + n );
mapindex[ pos ] = val;
copy_backward( mapvalue + pos , mapvalue + mapsize , mapvalue + n );
mapvalue[ pos ] = 0;
mapsize = n;
}
++mapvalue[ pos ];
}
END_OF_FILE:
fclose( in );
}
0715697
NGNGEND_OF_INPUT:
free( filename );
FILE* const out = fopen( "out.txt" , "w" );
if( out != 0 )
{
for( size_t i = 0 ; i < mapsize ; ++i )
fprintf( out , "%d %d\n" , mapindex[ i ] , mapvalue[ i ] );
fclose( out );
}
free( mapindex );
free( mapvalue );
}
はぁ。C++標準ライブラリは偉大だなぁ。
0716デフォルトの名無しさん
NGNGこういう書き方をしちゃいけないと何度言ったら(ry
宿題だから許されるんだろうけど
0717デフォルトの名無しさん
NGNG0718デフォルトの名無しさん
NGNGFILE使ってるけどいいの?
システムコール使えよ。
0719デフォルトの名無しさん
NGNGはぁ?死ね。
0720デフォルトの名無しさん
NGNG>>697
0721697
NGNG0722デフォルトの名無しさん
NGNG0723697
NGNG0724デフォルトの名無しさん
NGNGどうもありがとうございました。
0725デフォルトの名無しさん
NGNG#define N 128
void defvec(double [N]);
int N;
double A[N];
void defvec(double A[N]){
void main(){
double k,d;
double A[N];
double B[N];
int i;
defvec(A);
defvec(B);
k=0;
for(i=0;i<N;i++)
k=k+(A[i]-B[i])*(A[i]-B[i])
d=sqrt(k);
double distance(double A(N),double B(N));
return (d);
}
これではしらないのですが、どこがおかしいのでしょうか?
おながいします。
0726デフォルトの名無しさん
NGNGはぁ ?
> #define N 128
> int N;
そもそもコンパイルできるとも思えないんだが。
0727725
NGNGそうですね・・・すいません。
>double k,d;
ってのは合ってるんですかね?
0728__
NGNGhttp://www.yoshiwara.susukino.com/moe/hankaku08.html
http://yoshiwara.susukino.com/zenkaku/
http://yoshiwara.susukino.com/moe/hankaku10.html
http://www.yoshiwara.susukino.com/moe/hankaku03.html
http://yoshiwara.susukino.com/moe/hankaku09.html
http://www.yoshiwara.susukino.com/moe/hankaku06.html
http://yoshiwara.susukino.com/moe/hankaku05.html
http://www.yoshiwara.susukino.com/moe/hankaku01.html
http://yoshiwara.susukino.com/moe/hankaku02.html
http://www.yoshiwara.susukino.com/moe/hankaku08.html
http://yoshiwara.susukino.com/moe/hankaku04.html
0729デフォルトの名無しさん
NGNGパッと見あやしいのは
726が言ってた場所と
double distance(double A(N),double B(N)); ←ここ
0730デフォルトの名無しさん
NGNGなんでint N;がエラーになるかわかっている?
0731725
NGNG分からないです・・・教えてください。
0732デフォルトの名無しさん
NGNG何も問題ないけど、普通はdouble A[]と書くかdouble *Aと書く。
0733デフォルトの名無しさん
NGNG何する(したい)プログラム?
0734デフォルトの名無しさん
NGNG#define N 128ってやっているでしょ。こうすると以降のNは(undefされるまで)全て128に置き換えられるの。
つまりint 128;となるわけ。変数名(識別子)の先頭は英字かアンダーバーしか使えないから。
0735725
NGNG1:実数要素N個からなるベクトルAを定義する関数defvecを作る。
2:次にdefvec関数を2回呼び出しA,Bを定義するmain関数を作る。
3:そのmain関数のなかでベクトルA,B間の距離を計算する。
4:次にこの距離の計算部を関数にする。
という問題なんですが。
0736731
NGNGなるほど!ありがとうございます。
0737デフォルトの名無しさん
NGNG泣きそうなんですけど。 ・・・ごめんなさい。
0738デフォルトの名無しさん
NGNG構造体でするとか・・・。
0739デフォルトの名無しさん
NGNG特には言われなかった気がします。
0740デフォルトの名無しさん
NGNG0741デフォルトの名無しさん
NGNGってところでわけわかめ
単に2点間の距離を求めるということとは違うんだよね?
0742bloom
NGNG0743デフォルトの名無しさん
NGNG要はN次元での2点間の距離を求める問題とは違うのん?
0744デフォルトの名無しさん
NGNG0745デフォルトの名無しさん
NGNG領域を確保するだけでいいのか、
確保して値もstdinとかから読み込むのか、
main内で配列として持っておいて値を入れるだけなのか。
0746デフォルトの名無しさん
NGNGdefvec関数は何を入れたらいいのか分らんから、とりあえず0で埋めた。
#define N 128
void defvec(double A[]){
int i;
for(i=0; i<N; i++)
A[i]=0;
}
double distance(double A[],double B[]){
int i;
double k=0;
for(i=0;i<N;i++)
k+=(A[i]-B[i])*(A[i]-B[i]);
return sqrt(k);
}
int main(){
double A[N];
double B[N];
defvec(A);
defvec(B);
printf("%f\n",distance(A,B));
return 0;
}
0747デフォルトの名無しさん
NGNG>735しか言われなかったもので。
0748デフォルトの名無しさん
NGNG0749デフォルトの名無しさん
NGNG0750デフォルトの名無しさん
NGNG0751あふぉ
NGNG2進数表示を利用する奴です
0752デフォルトの名無しさん
NGNG07537
NGNGヒント:関数strenを用いてあらかじめ文字列sの長さを測ると容易。
お願いします
0754デフォルトの名無しさん
NGNG#include <stdlib.h>
#include <iostream>
void reverse(char s[])
{
std::reverse(&s[0], &s[strlen(s)+1]);
std::cout << s << std::endl;
}
0755デフォルトの名無しさん
NGNG>>751
int power(int x, int n) {
int r = 1;
for (; n; n>>=1, x*=x)
if (n&1) r *= x;
return r;
}
0756デフォルトの名無しさん
NGNGchar *t = s + strlen(s) - 1;
for (; s < t; s++, t--) {
char tmp = *s;
*s = *t;
*t = tmp;
}
}
0757あふぉ
NGNG0758動画直リン
NGNG0759デフォルトの名無しさん
NGNG符号付きのものを右シフトして、0になることを期待するなよ。
0760デフォルトの名無しさん
NGNGif (n < 0) return 0;
とかいれて、はじいといて。
0761デフォルトの名無しさん
NGNGCなんですけど
int 型の配列 a[MAX] (MAX は 10〜100000 の間で適当に動かしてみる) に,昇順で整数を代入しておく.
配列 a[MAX] に代入される整数は,1,3,9,12 などのように飛び飛びでもよく,また,8,10,10,10,14 などのように同じ値が連続してもよいとする.
以下の仕様に従って,a[l]〜a[r] (l ≦ r) の中に値 k が存在するならばその位置を返す再帰関数 int binary_search(int a[], int k, int l, int r) を作成し,プログラムと実行結果を示せ.
関数 int binary_search(int a[], int k, int l, int r) は,a[l]〜a[r] (l ≦ r) の中に値 k が存在するならばその位置を返す.
a[l]〜a[r] (l ≦ r) の中に値 k が存在しない時は,関数 int binary_search(int a[], int k, int l, int r) は -1 を返す.
関数 int binary_search(int a[], int k, int l, int r) は,以下のような再帰関数とせよ:
a[l] == k ならば,l を返す.
a[l] < k ≦ a[(l + r) / 2] ならば,binary_search(a, k, l, (l + r) / 2) を再帰的に呼び出しその値を返す
a[(l + r) / 2] < k ≦ a[r] ならば,binary_search(a, k, ((l + r) / 2) + 1, r) を再帰的に呼び出しその値を返す.
それ以外の場合,-1 を返す.
比較的小さな MAX に対しては,計算の過程において関数 int binary_search(a, k, i, j) (0 ≦ i < MAX, 0 ≦ j < MAX) がどのように呼び出され,どのような値を返したのかを,printf などを用いて画面に出力すること.
また,MAX を 10〜100000 の間で適当に動かして
関数 binary_search(a, k, i, j) (0 ≦ i < MAX, 0 ≦ j < MAX) が呼び出された回数
関数 binary_search(a, k, i, j) の中で k と配列の要素が大小比較された回数
がどのように変化するかについて考察すること (大ざっぱなオーダーだけではなく,係数・定数の値まで見積ること).
って宿題があるんですが、さっぱりわからないのでお願いします。
0762デフォルトの名無しさん
NGNG0763デフォルトの名無しさん
NGNG0764デフォルトの名無しさん
NGNG>大ざっぱなオーダーだけではなく,係数・定数の値まで見積ること
無茶言うなよ・・・
0765デフォルトの名無しさん
NGNG0766デフォルトの名無しさん
NGNG0767488
NGNG>>491
ありがとうございます。その通りです。
ただ、C++じゃなくてCのソースが欲しいです。
最初に書かなかった私が悪いんですが、勉強のため、よろしくお願いします。
0768デフォルトの名無しさん
NGNGcinとcoutをそれぞれstdinからの入力とstdoutへの出力に置き換えるだけじゃん。
自力で何とかしなさいよ。
0770デフォルト名無しさん
NGNG最初の #: 1(scanf)
次の #: 3(scanf)
三番目の #: 4(scanf)
最初の2つの#を入力してください: 1 3 (scanf)
最初の#は1、次は3、 三番目は 4ですね? (printf)
というプログラム。(ノードを使って)
0771デフォルトの名無しさん
NGNG0772動画直リン
NGNG0773デフォルトの名無しさん
NGNGとりあえずbinary_searchは書けるだろ。
0774デフォルトの名無しさん
NGNGちゃんと書いてるから気にするな。
このスレは「C」って言われてもC++で書く、字の読めない馬鹿がいるだけだ。
0775デフォルトの名無しさん
NGNGリスト構造のことじゃねーの?
0776デフォルトの名無しさん
NGNG0777デフォルトの名無しさん
NGNGニホンゴワカリマスカ?
0778デフォルトの名無しさん
NGNG0779デフォルトの名無しさん
NGNG0780デフォルトの名無しさん
NGNGどこが?ビープ音? それは処理系というか他の環境によるのでは。
0781デフォルトの名無しさん
NGNGtimeとclockの事では?winでは暦時間、プロセス時間だけど、unix?何かでは
違うらしいです。
0782デフォルトの名無しさん
NGNGclockはANSI Cにあるだろ。
http://www.linux.or.jp/JM/html/LDP_man-pages/man3/clock.3.html
0783デフォルトの名無しさん
NGNGポインタのポインタを使って書かなければいけないのですが、
どのようなプログラムになるか教えて下さい。
お願いします。
0784デフォルトの名無しさん
NGNG僕のパソコン(winMe)だとミリ秒を返してくれるのですが、返してくれない機種も
あると言われたことがありました。
0785デフォルトの名無しさん
NGNGCLOCKS_PER_SECで割ればいいだけ。
まあ実時間であるとは限らないからだめと言う人もいるかもしれないけど。
0786デフォルトの名無しさん
NGNGCLOCKS_PER_SECで割るんだけど。馬鹿?
0787デフォルトの名無しさん
NGNG二つの時はルート取ればいいのですが
三つ以上になるとどうすればいいのかわかりません。
0788デフォルトの名無しさん
NGNG#include <math.h>
double
geometric_mean(double *a, int n)
{
int i;
double x = 0.0;
for(i=0; i<n; i++) x += log(a[i]);
return exp(x/n);
}
0789デフォルトの名無しさん
NGNG1000/1秒を返す機種ならCLOCKS_PER_SECが1000になり
100/1秒を返す機種なら100になり、割ることで結果的に秒単位の
プロセス時間を得れるって事?
0790デフォルトの名無しさん
NGNG標準C ttp://www-ccs.ucsd.edu/c/
0791デフォルトの名無しさん
NGNGありがとうございます。そっかlogから考えれば良いのか。
0792568
NGNGレスくださった方、有り難うございます
>568とほとんど同じなのですが…、
まず50個のデータ(数字)を入力し、昇順に並べ替える。
そのなかに好きな数字を入れる。そして、その数字がどこにあるのかを最初(1番目)から探し、
探している進行状況を表示するプログラムを作成せよ。
(例えば、好きな数字25を入力した場合、まず1番目を検索し、25でなければ「1 NG」と表示。
2番目を検索し、25でなければ「2 NG」と表示…… と続いて、x番目にあれば「x OK」と表示。」
C言語です。プログラムよろしくお願いしますm(__)m
0793デフォルトの名無しさん
NGNGそれは二分探索を使わなければならないの?
0794デフォルトの名無しさん
NGNG>>573を改造すればいいだろ?
0796デフォルトの名無しさん
NGNG#include <stdio.h>
#include <stdlib.h>
static int icmp(const void *,const void *);
int main()
{
int ia[50],i,search;
for(i=0;i<50;i++){
printf("%2d個目のデータ : ",i+1); fflush(stdout);
scanf("%d",ia+i);
}
qsort(ia,50,sizeof(int),icmp);
printf("\n\n探索する数字 : "); fflush(stdout);
scanf("%d",&search);
for(i=0;i<50;i++){
if(ia[i]==search){
printf("%2d OK\n",i+1);
return 0;
}
printf("%2d NG\n",i+1);
}
return 0;
}
0797つづき
NGNGstatic int icmp(const void *x,const void *y)
{
const int *xp=(const int *)x;
const int *yp=(const int *)y;
return *xp==*yp?0:*xp<*yp?-1:1;
}
0798798
NGNGヒント:関数strenを用いてあらかじめ文字列sの長さを測ると容易。
お願いします
0799デフォルトの名無しさん
NGNG#include <stdio.h>
#include <string.h>
void reverse(char s[])
{
int i;
for(i=strlen(s)-1;i>=0;i--)
putchar(s[i]);
}
0800デフォルトの名無しさん
NGNGstrenを使うんだろ。
strlenではないかと思われ
int stren(char *s)
{ return strlen(s); }
を使うべし
0801デフォルトの名無しさん
NGNG#define stren(x) strlen(x)でいいだろ。
0802デフォルトの名無しさん
NGNG0803デフォルトの名無しさん
NGNGうるせー馬鹿!
ところで、戻り値の型はsize_tにしたほうがいいと思う。
0804デフォルトの名無しさん
NGNGstren(s);
0805デフォルトの名無しさん
NGNG有り難うございました!
0806デフォルトの名無しさん
NGNG>>801で言ってるのは引数つきマクロなんだが、これのことか?
0807デフォルトの名無しさん
NGNG0808デフォルトの名無しさん
NGNG0809デフォルトの名無しさん
NGNG0810正直、「>>761=>>795=いい加減うぜぇ」と思ってた
NGNG#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX 100000
int compare(const void*, const void*);
int binary_search(int*, int, int, int);
int main(void) {
static int a[MAX]; int i, n;
srand( (unsigned int)time(NULL) );
for (i=0 ;i < MAX; i++) { a[i] = rand(); }
qsort((void*)a, (size_t)MAX, sizeof(int), compare);
printf("Input:"); scanf("%d", &n);
if ( binary_search(a, n, 0, MAX-1) == -1) printf("not found\n");
}
int compare(const void* left, const void* right) {
return (*(int*)left == *(int*)right)? 0 : (*(int*)left < *(int*)right)? -1 : 1;
}
int binary_search(int* a, int k, int l, int r) {
static int ct=1;
if (a[l] == k) { printf("%d OK\n", ct); return l; }
if ( (a[l] < k)&&(k <= a[(l+r)/2]) ) { printf("%d NG\n", ct++); return binary_search(a, k, l, (l+r)/2); }
if ( (a[(l+r)/2] < k)&&(k <= a[r]) ) { printf("%d NG\n", ct++); return binary_search(a, k, (l+r)/2+1, r); }
return -1;
}
0811デフォルトの名無しさん
NGNGお前の冗長なコードもなー
int compare(const void* left, const void* right) {
return (int*)left-(int*)right;
}
0812デフォルトの名無しさん
NGNGよく確認しないで書いてしまうおまえもなー
int compare(const void* left, const void* right) {
return *(int*)left-*(int*)right;
}
0813デフォルトの名無しさん
NGNG関数uru_year()は整数型の引数をもらい、閏年なら1、違ったら0を返すらしいんだが
if文でやるぐらいしかワカンネ。
こんな簡単なのもわからん漏れに誰か教えてくれ。
0814デフォルトの名無しさん
NGNG0816デフォルトの名無しさん
NGNGif(yeaar>西暦何年だが忘れた)
return (year % 4!=0)?false:((year%100!=0)?false:*));
else{
printf("当時は閏年という概念は無かった\n");
exit(-1);
}
}
*は普通はtrue,しかし厳密には更に(year%うんたらかんたら!=0)?false:...
が続く。(ほぼ無限)
0817デフォルトの名無しさん
NGNG上から5件目
だからなぁ、ぐぐれよ・・・
0818デフォルトの名無しさん
NGNGずいぶんユーザーに厳しいな
0819デフォルトの名無しさん
NGNG/* yearは現行西暦を仮定 */
int uru_year(int year)
{
if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
return 1;
}
return 0;
}
0820デフォルトの名無しさん
NGNGそれ以前に間違ってるんだからどうでもいいじゃん。
0821デフォルトの名無しさん
NGNGま、確かに。
0822デフォルトの名無しさん
NGNGそりゃ2chなんだから、falseとtrueが入れ替わることは
大いにあり得るな。ビットにして1ビットしか違わないんだし...
0823デフォルトの名無しさん
NGNGyeearなんて未定義の変数を使ってみたり、、、
普通は>>819さんのプログラムで正解と思われ。
エラー処理も必要(?)なんだが。
0824わか
NGNG人生をバラ色にして、年商1000万円ほど稼ぎませんか?
ただし、多少の営業努力が必要です。ノルマ無し、料金回収無し
クーポン屋 「2003年」
営業が得意な方は、年商1000万円稼げます。
私と仲良くビジネスをしませんか?
http://www.c-gmf.com/index1.htm
http://www.c-gmf.com/index2.htm
http://www.c-gmf.com/index3.htm
http://www.c-gmf.com/mail.htm
クーポン屋でございます。貴方のHPにバナーを貼るだけで
稼げます。本当にお金が欲しい方は、相談にのります。キャッシュバック制度!
0825デフォルトの名無しさん
NGNGおまえもエラーだな
○yeaar
×yeear
0826デフォルトの名無しさん
NGNG0827デフォルトの名無しさん
NGNG0828デフォルトの名無しさん
NGNGあなたの頭はどんな石で出来てますか?もしかしてコンパイラさんでっか?
0829デフォルトの名無しさん
NGNGプ
0830デフォルトの名無しさん
NGNG長さが32の0と1の列
se7e6…e1e0d1d2d3…d23
を入力してこのビット列の表す実数値
(-1)^s*(1+M)*2^E if -127<E<128
(-1)^s*M*2^(E+1) if E=-127
Inf(無限大) if E=128,M=0
NaN(非数) if E=128,M≠0
ここで、M=琶=1~23 di*2^-i , E=琶=0~7 ei*2^i−127
を出力するCプログラムを作成せよ。
0831デフォルトの名無しさん
NGNG問題が理解できない
0832デフォルトの名無しさん
NGNG0833デフォルトの名無しさん
NGNGfloat
str2float(char *str)
{
union strflo {unsigned int u; float f;} x; x.u = 0;
while (*str != '\0'){x.u <<= 1; x.u |= *str++ == '1' ? 1 : 0;}
return x.f;
}
#include <stdio.h>
int
main(int argc, char **argv)
{
if (argc < 2 || strlen(argv[1]) != 32) return 1;
printf("%.8e\n", str2float(argv[1]));
return 0;
}
0834デフォルトの名無しさん
NGNGついでに、文字列のチェックも入れといて
0835デフォルトの名無しさん
NGNG>se7e6…e1e0d1d2d3…d23
0と1の列とか言ってるけど、例はそうなってないし、ようわからんね。
0836デフォルトの名無しさん
NGNGつまり、たとえば以下のbit列を、
0 1 0 1011010101001001
~ ~ ~ ~
S e7 e6 e5...
とするって事か。
0837デフォルトの名無しさん
NGNGintとfloatは同じ大きさなの?
0838デフォルトの名無しさん
NGNGC言語では定義されていないInfやらNaNが指定されている時点で可搬ではない。
0839デフォルトの名無しさん
NGNGん?
0840デフォルトの名無しさん
NGNG{
char x='A';
int a=5,b=32;
printf("�@",x);
printf("%d+%d=(�A)x\n",�B)
printf("%d�C%d=%d\n",�D);
printf("変数%cの初期値は%dです\n",x+�E,a);
}
実行結果
変数xの初期値はAです
5+32=(0025)x
32%5=2
変数aの初期値は5です
�Eの答えがわかりません
0841デフォルトの名無しさん
NGNG(-x)+'a'
0842デフォルトの名無しさん
NGNGbなんだろうけど、>>841 にすべきだね。
0843840
NGNG0844デフォルトの名無しさん
NGNGキーコードを2文字以上を、
同時に取れる事で出来るんですか?
また方法を教えていただけますでしょうか?
0845デフォルトの名無しさん
NGNG例
乱数で1から100までの数字を発生させて
1〜40ならA
41〜50ならB
50〜99ならC
100ならD
といったような具合に場合分けしたいときって どうすればいいんですかね?
1<X<40
こういった条件式をプログラム上で行いたいんだけど
良いほうが思いつかないもので
初心者的な質問ですんません
C言語限定ってわけではないけどアルゴリズムが知りたいので書きました
良かったら 教えてください
0846デフォルトの名無しさん
NGNGあちこち同じカキコすんなや。
0847デフォルトの名無しさん
NGNGint r=ransuu;
if(r<=40){A();}elseif(r<=50){B();}elseif(r<=99){C();}elseif(r==100){D();}
0848デフォルトの名無しさん
NGNG「英文字を入力すると読み込んだ文字を 50 個横に並べて表示する」プログラムを作れ。
入力される文字は A 〜 Z で、1文字であると仮定して良い。たとえば、G を
入力すると、
GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
と表示されるようにする。
なお、入力された文字の検査(A 〜 Z以外の文字が入力されなかったかどうか、
1文字であるかどうかの検査)は行わなくて良い。
また、入力された文字が変数 moji に格納されている時、この文字を表示するには、
printf("入力された文字は %c です。\n", moji);
と書くことができることをヒントにしても良い。ただし、解答として、
printf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c...
のように %c を 50 個並べることは禁止する。
0849デフォルトの名無しさん
NGNGvoid print50char(int c){int i;for(i=0;i<50;i++)printf("%c");printf("\n");}
0850デフォルトの名無しさん
NGNGx=(rand()/100)+1;
if (x >= 1 && x <= 40) {
} else if (x >= 41 && x <= 50) {
} else if (x >= 51 && x <= 99) {
} else if (x == 100) {
} else {
}
0851デフォルトの名無しさん
NGNGchar buf[51];
memset(buf,getchar(),50);
buf[50]='\0';
puts(buf);
0852デフォルトの名無しさん
NGNG848はバカだから、scanfのところも書いておいてあげなきゃ
char moji; int i; scanf("%c",&moji); for (i=0;i<50;i++) printf("%c", moji);
0853デフォルトの名無しさん
NGNG#include <stdio.h>
int main(void)
{
int i;
char c;
c=getchar();
for (i=0; i<50; i++)
printf("%c", c);
printf("\n");
return 0;
}
0854デフォルトの名無しさん
NGNGファイル構造体を使って作成しなさい
asupugqaudga9という文だと9aduaqgupusaとなるようにしなさい
文章がはいってるのはahya.txtとします
(´・ω・`)?
0855デフォルトの名無しさん
NGNGcd
は
ba dc
dc か ba か
どっち?
0856デフォルトの名無しさん
NGNGコンパイラを教えて
0857デフォルトの名無しさん
NGNGicl
0858デフォルトの名無しさん
NGNG3ケタの数字でそれぞれのケタを3乗したものの和が
元の3ケタの数字と同じになるものを全て探すプログラムを作成しなさい。
0859854
NGNG0860854
NGNG./a.out ahya.txt result.txt と実行すると
ahya.txtの中のそれぞれの文章の行について左右反対にした
resulet.txtというファイルを作成するプログラムでつ
(´・ω・`)わかりにくかったね・・・
0862デフォルトの名無しさん
NGNGmain(){
int dat,a[3];
scanf("%d",&dat);
a[0]=dat%10;dat/=10;
a[1]=dat%10;dat/=10;
a[2]=dat%10;/*datだけも良いかな*/
if((a[0]*a[0]*a[0]+a[1]*a[1]*a[1]+a[2]*a[2]*a[2]==dat)
printf("%d",dat);
return 0;
}
0863デフォルトの名無しさん
NGNG#include <stdio.h>
int main()
{
 int i, j, k;
 int cube[10];
 int value100, value10, value;
 int sum100, sum10, sum;
 
 for (i = 0; i < 10; i++) cube[i] = i * i * i;
 for (i = 1; i < 10; i++) {
   value100 = i * 100;
   sum100 = cube[i];
   for (j = 0; j < 10; j++) {
     value10 = value100 + j * 10;
     sum10 = sum100 + cube[j];
     for (k = 0; k < 10; k++) {
       value = value10 + k;
       sum = sum10 + cube[k];
       if (value == sum) {
         printf("%d = %d + %d + %d\n", value, cube[i], cube[j], cube[k]);
       }
     }
   }
 }
 return 0;
}
0864デフォルトの名無しさん
NGNGmain(){
int data,dat,a[3];
for(data=100; data<1000; data++){
dat=data;
a[0]=dat%10;dat/=10;
a[1]=dat%10;dat/=10;
a[2]=dat%10;/*datだけも良いかな*/
if(a[0]*a[0]*a[0]+a[1]*a[1]*a[1]+a[2]*a[2]*a[2]==data)
printf("%d ",data);
}
return 0;
}
0865デフォルトの名無しさん
NGNG0866デフォルトの名無しさん
NGNG{
int i;
for (i = strlen(s) - 1; i >= 0; i--)
putc(s[i], outfp);
}
int main(int argc, char **argv)
{
FILE *infp = stdin, *outfp = stdout;
char buf[256];
switch (argc) {
default:
case 3:
if ((outfp = fopen(argv[2], "w")) == NULL) {
fprintf(stderr, "connot open file: %s", argv[2]); exit(1);
}
case 2:
if ((infp = fopen(argv[1], "r")) == NULL) {
fprintf(stderr, "connot open file: %s", argv[1]); exit(1);
}
case 1:
break;
}
while (fgets(buf, sizeof(buf), infp))
reverseoutput(buf, outfp);
return 0;
}
0867デフォルトの名無しさん
NGNG0868デフォルトの名無しさん
NGNG0869デフォルトの名無しさん
NGNGこの初期化の仕方は何が違うのか詳細に述べよ。
メモリ上で文字列を格納する領域の取り方に注意。
それぞれの変数に適した使い方についても考えてみること。
char string1[]="Good morning";
char *string2="Good night";
↑ってのが課題ででました。
ちんぷんかんぷんです。教えてください。
0870デフォルトの名無しさん
NGNG0871デフォルトの名無しさん
NGNGプログラム組んでちょんまげ。
0872デフォルトの名無しさん
NGNGttp://www.catnet.ne.jp/kouno/c_faq/c6.html#0
0873デフォルトの名無しさん
NGNG国は?
グレゴリオ暦の採用時期がそれによって大きく異なるのだが。
0875871
NGNG0876デフォルトの名無しさん
NGNG誰がそんなもん作るってのよ。
0877デフォルトの名無しさん
NGNGまぁ、660を引くんだか足すんだかすればいいわけだし。
ちなみに、皇紀という呼称のほうが好きだ。
0878デフォルトの名無しさん
NGNG4000年分ぐらいのテーブルつくれ。先生もきっと許してくれる。
0879デフォルトの名無しさん
NGNGなお、あくまでも予想なのではずれてもよいものとする。
さっぱりわかりません(T_T)
0880デフォルトの名無しさん
NGNG地球シミュレータをクラックすれば、何とかなるんじゃないか。
まずは socket の使い方から学べ。
0881デフォルトの名無しさん
NGNG#include <stdlib.h>
int main(void)
{
char w[] = {"晴","曇","雨"};
int i;
for(i=1;i<=7;i++)
printf("%d日後の天気は%sかも\n",i,w[rand()/(RAND_MAX/N+1)]);
return 0;
}
0882デフォルトの名無しさん
NGNG1.天気予報のページを探して、そのページをブラウザで表示するシェルなどを作る。
2.上記のページをパースして、その情報を任意の方法で表示する。
3.”晴れ”,”曇り”,”雨”などの天候文字列を乱数で選んで表示する。
1:学生ならば不正解。社会人なら大正解。
2:ヒマと興味があるならおすすめ
3:普通だね
0883デフォルトの名無しさん
NGNG#include <stdio.h>
#include <stdlib.h>
int CheckUruuDosi(int year)
{if((year%4==0&&year%100!=0)||year%400==0)return 1;return 0;}
int main(void)
{
int a,i[2],y,m,d,w=0,u;char s[256];
const int day[12]={31,28,31,30,31,30,31,31,30,31,30,31};
for(a=0;a<=1;a++)
{puts(a==0?"year?":"month?");gets(s);i[a]=atoi(s);
if(i[a]<=0||(a==1&&i[a]>=13))a--;}
for(y=1;y<=i[0];y++)for(m=1,u=CheckUruuDosi(y);m<=(y==i[0]?i[1]-1:12);m++)
w=(w+day[m-1]+(u&&m==2?1:0))%7;
u=CheckUruuDosi(i[0])&&i[1]==2?1:0;
puts("\nSun Mon Tue Wed Tur Fri Sat");
for(d=0;d<=w;d++)printf("%4s","");
for(d=1;d<=day[m-1]+u;d++)
printf("%3d%s",d,(d+w+1)%7==0?"\n":" ");
printf("\n\n改行を押してください 終了します");getchar();return 0;
}
0884デフォルトの名無しさん
NGNGinoue note 120
inoue envelope 80
inoue pencil 20
yamada note 120
yamada envelope 80
kawaguchi envelope 80
kawaguchi pencil 20
yamamoto note 100
という内容の、db.txtというファイルを用いて
品目、単価への射影を
note 120
envelope 80
pencil 20
note 100
のように出力させたいんです
射影とは関係表から属性を切り出し
もし重複があればそれを取り除いたものだそうです。
0885858
NGNGmain(){
int data,dat,a[3];
for(data=100; data<1000; data++){
dat=data;
a[0]=dat%10;dat/=10;
a[1]=dat%10;dat/=10;
a[2]=dat%10;/*datだけも良いかな*/
if(a[0]*a[0]*a[0]+a[1]*a[1]*a[1]+a[2]*a[2]*a[2]==data)
printf("%d ",data);
}
return 0;
}
で求める事ができました 協力頂いた皆様ありがとうございます
さらにここで見つけた解の個数も表示するにはどうすれば良いのですか。
結果は定数「4」でなく変数を用いて表すとするとどうなりますか、教えて下さい。お願いします。
0886__
NGNG( ・∀・)/< こんなの有ったっち♪
http://www.yoshiwara.susukino.com/moe/hankaku03.html
http://yoshiwara.susukino.com/moe/hankaku10.html
http://www.yoshiwara.susukino.com/moe/hankaku08.html
http://yoshiwara.susukino.com/moe/hankaku09.html
http://www.yoshiwara.susukino.com/moe/hankaku06.html
http://yoshiwara.susukino.com/moe/hankaku05.html
http://www.yoshiwara.susukino.com/moe/hankaku01.html
http://yoshiwara.susukino.com/moe/hankaku02.html
http://www.yoshiwara.susukino.com/moe/hankaku08.html
http://yoshiwara.susukino.com/moe/hankaku04.html
0887デフォルトの名無しさん
NGNG0889871
NGNG完璧でした!!まじありがとうございました。
0890デフォルトの名無しさん
NGNGif文の内に入った回数を数えましょう、ならわかるか?
0891デフォルトの名無しさん
NGNGホントにわかんないです。。。
何使って書くのかさえわかんないです。。。
0892デフォルトの名無しさん
NGNG1ずつ数えるなら変数の値に1足してゆく。
0893デフォルトの名無しさん
NGNG解の数の表現方法がわかりません。。。
解というかif文に入った回数ですか?
あぁホント情けないです。。。
0894デフォルトの名無しさん
NGNG普通はint型を選ぶよね。
int 解の数;で宣言して、if文の内で(解の数)++てやって
最後に表示すればいいでしょ。
0895デフォルトの名無しさん
NGNGprintf("%d\n",data);
printf("%d個です",i++);}
ってやってみたらメチャクチャたくさん表示されるのはどうしてでしょうか?
0896デフォルトの名無しさん
NGNG2. {}で囲まれていないif文の範囲はわかりますか?
0897デフォルトの名無しさん
NGNG#include <stdio.h>
int SZ(int num){return num*num*num;}
int main(void)
{
int num[3]={0};int a;
for(;num[2]<=9;)
{
if(num[2]*100+num[1]*10+num[0]==SZ(num[2])+SZ(num[1])+SZ(num[0]))
printf("%d%d%d ",num[2],num[1],num[0]);num[0]++;
for(a=0;a<=1;a++)if(num[a]==10){num[a]=0;num[a+1]++;}
}
puts("\n改行を押してください 終了します");return 0;
}
0898デフォルトの名無しさん
NGNGif(a[0]*a[0]*a[0]+a[1]*a[1]*a[1]+a[2]*a[2]*a[2]==data)
{printf("%d\n",data);
printf("%d個目\n",i++);}
初期化の後、こうして記述すると個数が表示できました。
この場合の実行結果は
(数字)1個目
(数字)2個目
・・・・・・・・・・・
となりました。
ここで結果として「何個あったか」のみを表示するためにはどこをいじれば良いのですか?
0900デフォルトの名無しさん
NGNGi++はif文の内に残して、for文の外でprintfすれば良い
0901デフォルトの名無しさん
NGNGうわぁ、、もう朝の準備せんと。。。 あとひといきお願いします!
0902デフォルトの名無しさん
NGNG{printf("%d\n",data);
i++;}
}
printf("%d個\n",i);
0903動画直リン
NGNG0904デフォルトの名無しさん
NGNGできました! 長々とありがとうございました!
0905デフォルトの名無しさん
NGNGだから最初からifやwhileはブロックにしろと・・・
0906デフォルトの名無しさん
NGNGttp://wombat.doc.ic.ac.uk/foldoc/foldoc.cgi?indent+style
0907こんぴゅーた-
NGNG実行すると
文字列を入力してください:tokyo
反転文字列は"oykot"です.
ってなるようにプログラムを作成しなければならないのですが、
最近printfとかcharの使い方を最近になって理解したばっかなのに、
こんな課題出されてこまっております。
だれか救って下さい。ぼくはパソコンむいてないかも(*-*)
0908デフォルトの名無しさん
NGNG#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int
main(int argc, char **argv)
{
char buf[BUFSIZ];
int n;
fputs("文字列を入力してください:", stderr);
fgets(buf, BUFSIZ, stdin);
fputs("反転文字列は\"", stderr);
for(n=strlen(buf)-1; n>0;) putc(buf[--n], stderr);
fputs("\"です.\n", stderr);
return 0;
}
0909こんぴゅーたー
NGNGやってみます
0910デフォルトの名無しさん
NGNG末尾につくであろう改行文字を考慮しているんだろうけど、なんか・・ちょっと・・・
0911デフォルトの名無しさん
NGNG0912デフォルトの名無しさん
NGNG0913デフォルトの名無しさん
NGNGケツから出せばいいだけでは?
0914デフォルトの名無しさん
NGNG>>908にはそう書いてあるようには見えないのか?
0915デフォルトの名無しさん
NGNGこういうソースを書いたら上手くいきませんでした
どこがおかしいのでしょうか?
#include <stdio.h>
#include <string.h>
int main(){
char *str,*str1;
int len,i;
puts("文字列を入力して下さい");
gets(str);
len=strlen(str);
for(i=0;i<=len-1;i++){
*(str1+i)=*(str+len-1-i);
}
printf("反転文字列は %sです",str1);
return 0;
}
0916デフォルトの名無しさん
NGNGコンパイラの警告は無視しないように。
str,str1が初期化されていないのに使われていると言われなかったか?
0917デフォルトの名無しさん
NGNG0918デフォルトの名無しさん
NGNGif (a[i] == key)
break;
i++;
}
において、whileではなく、forを使うとどうなりますか?
0919デフォルトの名無しさん
NGNG0920デフォルトの名無しさん
NGNGif (a[i] == key)
break;
i++;
}
0921デフォルトの名無しさん
NGNG下のソースを改造するようなのですが・・・。
#include <stdio.h>
void main (void)
{
unsigned char moji[10];
FILE *fp;
if ((fp = fopen ("unix.txt", "r")) == NULL)
{
printf(" FILE OPEN ERROR\n");
}
else
{
if(fgets (moji , 2, fp) !=NULL)
{
printf ("FILE ROAD OK\n");
printf ("READ DATA -> %s\n", moji);
}
else
{
printf ("FILE READ ERROR\n");
}
fclose (fp);
}
}
0922デフォルトの名無しさん
NGNGこんな短いプログラムも書くことが出来ないなんてダメですよね。
ですが、もう1問だけ質問させてください。
要素数がnである配列aからkeyと一致する要素数の添え字を配列idxの先頭から
順に格納し、一致したよう素数を返す以下の関数を作成するという問題です。
272625という配列で2を指定すると3が導かれると言うものです。
int searchidx(int a[], int n, int key, int idx[]);
main関数は次の書き込みにします。
0923デフォルトの名無しさん
NGNG{
int i, ky, idx;
int x[7];
int nx = sizeof(x) / sizeof(x[0]);
printf("%d個の整数を入力してください。\n", nx);
for (i = 0; i < nx; i++) {
printf("x[%d]:", i);
scanf("%d", &x[i]);
}
printf("探す値:");
scanf("%d", &ky);
idx = search(x, nx, ky);/* 配列xから値がkyである要素を線形探索 */
if (idx == -1)
puts("探索に失敗しました。");
else
printf("%dは%d個あります。\n", ky, idx + 1);
return (0);
}
0924デフォルトの名無しさん
NGNG#include <stdio.h>
#include <algorithm>
void main (void)
{
unsigned char buf[32768];
FILE *fp;
if ((fp = fopen ("unix.txt", "r")) == NULL)
{
printf(" FILE OPEN ERROR\n");
}
else
{
while(fgets(buf , 32767, fp) !=NULL)
{
std::reverse(buf, buf + strlen(buf));
std::cout << buf << std::endl;
}
fclose (fp);
}
}
0925924
NGNG#include <iostream>
入れ忘れた
0926デフォルトの名無しさん
NGNG0927デフォルトの名無しさん
NGNG補足すると線形探索でするそうです。
0928デフォルトの名無しさん
NGNG適当にだけどこんな感じ?
void main()
{
char str[256];
int i;
FILE *fp;
if ((fp = fopen("unix.txt", "r") == NULL) {
printf("error\n");
exit(1);
}
while(fgets(str, 255, fp)) {
for (i = strlen(str - 1); i >= 0; i--) {
putchar(str[i]);
}
putchar('\n');
}
fclose(fp);
}
0929デフォルトの名無しさん
NGNG良く読んでなかった。result.txt作るのね。
#include <stdio.h>
#include <algorithm>
#include <string.h>
#include <iostream>
#include <fstream>
void main (void)
{
unsigned char buf[32768];
FILE *fp;
if ((fp = fopen ("unix.txt", "r")) == NULL)
{
printf(" FILE OPEN ERROR\n");
}
else
{
std::ofstream ofs("result.txt");
while(fgets(buf , 32767, fp) !=NULL)
{
std::reverse(buf, buf + strlen(buf));
ofs << buf << std::endl;
}
fclose (fp);
}
}
0930デフォルトの名無しさん
NGNG課題1
./a.out unix.txt result.txt と実行すると
unix.txtの各行について左右反対にしたresulet.txtというファイルを
作るようなプログラムを作成しなさい
もとの課題はこれ?
0931デフォルトの名無しさん
NGNG訂正
fopenでresult.txtをwで開いて
fputcで書き込みかな
0932デフォルトの名無しさん
NGNGint searchidx(int a[], int n, int key, int idx[])
{
int i, j;
j = 0;
for (i = 0; i < n; i++) {
if (a[i] == key) {
idx[j] = i;
j++;
}
}
return j;
}
0933デフォルトの名無しさん
NGNGありがとうございます。ちょっとやってみます。
>>930
それですw
0934デフォルトの名無しさん
NGNG#define p3(xx) (xx*xx*xx)
if(p3(a[0])+p3(a[1])+p3(a[2])==data)
{printf("%d\n",data);
i++;}
}
printf("%d個\n",i);
0935デフォルトの名無しさん
NGNG>>860 見ろ。
おまいらの学校はどうなってるんだ?
0936デフォルトの名無しさん
NGNGすいません、よく見てませんでした。以後気をつけます。
言い忘れてましたが>>929氏もありがとうございました。
0937922
NGNG早速、関数を置き換えてみました。
ですが、呼び出し時のパラメータが足りないと出てしまいます。
たしかに3つしかSearchidx関数に渡していないのですが
解決方法が分かりません。
どうしたらいいのですか?
0938922
NGNG{
int i, ky, idx;
int x[7];
int nx = sizeof(x) / sizeof(x[0]);
printf("%d個の整数を入力してください。\n", nx);
for (i = 0; i < nx; i++) {
printf("x[%d]:", i);
scanf("%d", &x[i]);
}
printf("探す値:");
scanf("%d", &ky);
idx = searchidx(x, nx, ky);/* 配列xから値がkyである要素を線形探索 */
if (idx == -1)
puts("探索に失敗しました。");
else
printf("%dは%d個あります。\n", ky, idx + 1);
return (0);
}
0939デフォルトの名無しさん
NGNG十分な領域を確保して関数に渡す。
0940デフォルトの名無しさん
NGNG関数の定義では、引数を4つとることになっている。
idx = searchidx(x, nx, ky);
関数呼び出し時に引数が3つしか指定されていない。1つ足らない。
0941デフォルトの名無しさん
NGNGもし、書き直すとすれば、main関数だけです。
何処を書き換えるのですか?
0942デフォルトの名無しさん
NGNGこれでどう?
int searchidx(int a[], int n, int key)
{
int i, j;
j = 0;
for (i = 0; i < n; i++) {
if (a[i] == key) {
j++;
}
}
return j;
}
0943デフォルトの名無しさん
NGNGidx = searchidx(x, nx, ky, hoge);
0944デフォルトの名無しさん
NGNGidx = searchidx(x, nx, ky);/* 配列xから値がkyである要素を線形探索 */
↓
int *idxbuf = new int[x];
idx = searchidx(x, nx, ky, idxbuf);/* 配列xから値がkyである要素を線形探索 */
delete[] idxbuf;
0945デフォルトの名無しさん
NGNG{
return n?(searchidx(a+1,n-1,key)+(*a==key?1:0)):0;
0946デフォルトの名無しさん
NGNGじゃあ、呼び出し元がおかしいでしょ。
0947デフォルトの名無しさん
NGNGint *idxbuf = new int[x];
↓
int *idxbuf = new int[nx];
0948941
NGNG短い時間にたくさんのご指導をありがとうございました。
全ての解答を試してスキルアップしてみます。
0949デフォルトの名無しさん
NGNG今、理解しました
ありがとうございます
0950デフォルトの名無しさん
NGNG0951デフォルトの名無しさん
NGNG0952950
NGNG0953デフォルトの名無しさん
NGNG0954デフォルトの名無しさん
NGNGBoard2ch board("http://pc2.2ch.net/tech/")
if(thread.GetResCount > 950)
{
board.CreateNewThread(thread.GetTitle() + " Part2", thread.GetRes(1).GetBody());
}
0955デフォルトの名無しさん
NGNG山崎渉
0956デフォルトの名無しさん
NGNGBoard2ch board("http://pc2.2ch.net/tech/")
for(;;)
{
thread.Update();
if(thread.GetResCount() > 950)
{
board.CreateNewThread(thread.GetTitle() + " Part2", thread.GetRes(1).GetBody());
break;
}
Sleep(300 * 1000);
}
0957デフォルトの名無しさん
NGNG{
Board2ch board("http://pc2.2ch.net/tech/")
board.Update();
Thread2ch &thread = board.FindThread("C/C++の宿題", Thread2ch::latest);
for(;;)
{
thread.Update();
if(thread.GetResCount() > 950)
{
board.CreateNewThread(thread.GetNextPartTitle(), thread.GetRes(1).GetBody() +
"前スレ:" + thread.GetURL);
break;
}
Sleep(300 * 1000);
}
}
0958958
NGNGint add(int);
int main(void)
{
add(1);
add(2);
add(3);
add(4);
printf(“%d\n”,add(5));
return 0;
}
int add(int n)
{
int sum;
sum += n;
return (sum);
}
お願いします。
0959デフォルトの名無しさん
NGNGこんな糞コード仕事で書くなよな。
0960デフォルトの名無しさん
NGNGint main(void)
{
add(1);
add(2);
add(3);
add(4);
printf("18\n");
return 0;
}
int add(int n)
{
int sum;
sum += n;
return (sum);
}
0962デフォルトの名無しさん
NGNG関数strlenを用いてあらかじめ文字列sの長さを求めると容易。
お願いします。
0963デフォルトの名無しさん
NGNG>>959のが普通だと思うけど、””が間違いだし、戻り値が役に立っていない。
笑ってしまう>>960のが正解っぽい。意地悪問題か?ただ、総和は15だと思う。
0964デフォルトの名無しさん
NGNGfor文かwhile文による繰り返しの問題です。
ボールを水平面に落とすと、元の高さの0.75倍の高さまで跳ね返る。
10回水平面にバウンドした後、最高地点に到達した瞬間までのボールの動いた
総距離を計算せよ。
初期高さは80mで、各回の高さも出力表示せよ
多分基本問題なんだろうけど、おながいします。
0965964
NGNG0966デフォルトの名無しさん
NGNG0967デフォルトの名無しさん
NGNGfor(x=1; x<=10; x++)
{
t = 80*0.75;
printf("%d回目のバウンド時のボールの高さは%dです。\r\t",x,t);
}
コンパイルしてないし、漏れも初心者なのであってるかワカラン。
誰か上級者教えてくたされ
0968デフォルトの名無しさん
NGNGmain()
{
double total = 0;
double height = 80;
for(int i=0; i<10; i++)
{
total += height;
height *= 0.75;
std::cout << i+1 << "回目" << height << "m" << std::endl;
total += height;
}
std::cout << "合計" << total << "m" << std::endl;
}
0969デフォルトの名無しさん
NGNG0970デフォルトの名無しさん
NGNGはやっ!ありがとうございます。たすかりました。
0971デフォルトの名無しさん
NGNG同一学校と思われ
0972デフォルトの名無しさん
NGNG#include <stdio.h>
float bound( float height )
{
return height * 0.75;
}
int main( void )
{
float height = 80;
float total = 0;
int counter;
for( counter=0; counter<=10; counter++ ) {
if( 0 != counter ){
height = bound( height );
total += height;
}
total += height;
printf( "%2d回目 %f m\n", counter, height );
}
printf( "ボールの動いた総距離: %fm\n", total );
return 0;
}
0973デフォルトの名無しさん
NGNGなぜ片道しか加算しない?
0974デフォルトの名無しさん
NGNG0975デフォルトの名無しさん
NGNG出来ないならそんな無理しないで素直に>>968のcoutだけprintfに書換えとけよ。
0976デフォルトの名無しさん
NGNG0977デフォルトの名無しさん
NGNG#include<math.h>
int func(double param1,double param2,double *souka,double *soujou)
{
*souka = (param1+param2)/2;
*soujou = sqrt(param1*param2);
return 0;
}
int main(void)
{
double a,b,c,d;
scanf("%f %f",&a,&b);
func(a,b,&c,&d);
printf("相加平均%f 相乗平均%f",c,d);
return 0;
}
どこが間違っているのかが分からないんです!教えてください!
0978デフォルトの名無しさん
NGNGdoubleなら
%f→%lf
0979デフォルトの名無しさん
NGNGscanfはdoubleに対しては%lfを使います。
0981デフォルトの名無しさん
NGNG電脳土方にはよくある事
0982デフォルトの名無しさん
NGNG馬鹿?
たったの4バイトで「烈しい」と言うのか?
あぁ、変数が2つあるから8バイトか。
しかも、スタックは節約できても実コードは却って増える罠。
0983デフォルトの名無しさん
NGNG#include <stdio.h>
#include <math.h>
#define START 80
#define RATE 0.75
#define TIMES 10
double gettotalmove(double start,double brate,int ntimes)
{
double d = pow(brate,(double)ntimes);
return start * (1 + brate) * (1 - d) / (1 - brate);
}
int main(void)
{
int i;
for (i = 1;i <= TIMES;i++){
printf("%d times, bound = %f,total = %f\n",
i,START * pow(RATE,i),gettotalmove(START,RATE,i));
}
return 0;
}
0984デフォルトの名無しさん
NGNGget_total_move
にしてホシイ
0985デフォルトの名無しさん
NGNG漏れは字数が伸びてアンダースコア嫌い
GetTotalMoveにしてホシイ
0986デフォルトの名無しさん
NGNGjavaっ娘なのでgetTotalMoveにしてホシイ
0987デフォルトの名無しさん
NGNG0988デフォルトの名無しさん
NGNG字数を気にしてる時点でまだまだだな
俺もjava風味でgetTotalMoveとかがいいかな?
getが修飾してるってわかりやすいし
0989デフォルトの名無しさん
NGNG大文字小文字を混ぜるとき、先頭だけ小文字ではじめるのって、なんか利点があるんですか?
0990デフォルトの名無しさん
NGNG文字の量をそのままに単語の区切りを指定できる。
0991デフォルトの名無しさん
NGNG先頭だったら大文字小文字関係ないじゃん。
0992デフォルトの名無しさん
NGNG問題の意味から教えて下さい。
0993デフォルトの名無しさん
NGNGquicksort cutoff >google
0994デフォルトの名無しさん
NGNGJAVA厨ということでよろしいか?
0995デフォルトの名無しさん
NGNG0996デフォルトの名無しさん
NGNG0997990
NGNGごめんなさい。読み間違えてました。
>>989
先頭を小文字にするのは僕の場合、ローカル変数とグローバル変数を分ける
ため。特に仮引数に小文字ロングネーム変数を使う。僕が使っているVC6は、
関数を呼び出した時その名前が出るのでと言うのもある。グローバル変数を
使ってはいけないと言う説もありますが。
ローカル:yCountNum グローバル:YCountNum 関数:YCountNum() マクロ:Y_COUNT_NUM
0998デフォルトの名無しさん
NGNG\∧_ヘ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
,,、,、,,, / \〇ノゝ∩ < 1000取り合戦、いくぞゴルァ!! ,,、,、,,,
/三√ ゚Д゚) / \____________ ,,、,、,,,
/三/| ゚U゚|\ ,,、,、,,, ,,、,、,,,
,,、,、,,, U (:::::::::::) ,,、,、,,, \オーーーーーーーッ!!/
//三/|三|\ ∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
∪ ∪ ( ) ( ) ( ) )
,,、,、,,, ,,、,、,,, ∧_∧∧_∧∧_∧ ∧_∧∧_∧∧_∧∧_∧
,,、,、,,, ( ) ( ) ( ) ( )
0999デフォルトの名無しさん
NGNG1000デフォルトの名無しさん
NGNG:::::::::::::::::::::::::::::::::::/ :::::::::::::::::::::::::::::::::
:::::::::::::::::...... ....::::::| |::::::::::::.. ...: ::::::::
:. .::::::::........ . .::::::::::::::::::: | ........... ..:::::
:::: :::::::::... . .... .. . ヽ / . . . ... ..::::: . .. .
\ /
−ー
∧_∧ ./^^^^\
( ´∀`) . / ;、 \
(つ日 ) ⌒⌒/', ' ',;'', ;'',; '',;' ',' \
| | | ⌒⌒⌒/ , 、 \⌒⌒
TTTTTTTTTTTTTT. / 、 \
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| ⌒⌒⌒⌒⌒⌒⌒⌒⌒ヽ
.| '⌒⌒⌒⌒⌒⌒⌒⌒⌒⌒⌒
.| _ _
.| ',',',',', _ ,',',',',',' l^lニl ,',',',', l^lニl ',',',',',',',',',',',',',',',','
.| ',',' l^lニl ,',',',',',',',',',',',',',',',',',',',',',',',',',',',',',',',',',',',',',',','
1000ゲットは気持ち(・∀・)イイ!!
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。