C/C++の宿題をやらせて、お兄ちゃん 22代目
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
NGNGわからない宿題はまかせてね☆
【注意点】 -------------------------------------------------
・問題はしっかりと解いてもらう方にわかりやすいように
問題文などの省きはやめ、エラーなどは適切に書きましょう
全文を書いてしまうか、分かりやすくまとめましょう。
・後になって問題につけたしをするのはやめましょう。
解いてもらっている方に失礼になってしまいます。
------------------------------------------------------------
【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
http://do.sakura.ne.jp/%7Ejunkroom/cgi-bin/megabbs/lounge/index.html
【歴代スレは>>2-10】
0002デフォルトの名無しさん
NGNG20代目: http://pc5.2ch.net/test/read.cgi/tech/1075217631/
19代目: http://pc5.2ch.net/test/read.cgi/tech/1073566342/
18代目: http://pc5.2ch.net/test/read.cgi/tech/1071407728/
17代目: http://pc5.2ch.net/tech/kako/1070/10704/1070469896.html
16代目: http://pc5.2ch.net/tech/kako/1069/10698/1069837000.html
15代目: http://pc5.2ch.net/tech/kako/1068/10689/1068950713.html
14代目: http://pc5.2ch.net/tech/kako/1067/10671/1067175933.html
13代目: http://pc5.2ch.net/tech/kako/1064/10645/1064541405.html
12代目: http://pc5.2ch.net/tech/kako/1060/10607/1060706382.html
11代目: http://pc5.2ch.net/tech/kako/1058/10582/1058283913.html
10代目: http://pc5.2ch.net/tech/kako/1057/10570/1057070174.html
9代目: http://pc5.2ch.net/tech/kako/1055/10559/1055944101.html
8代目: http://pc5.2ch.net/tech/kako/1055/10550/1055056940.html
7代目: http://pc5.2ch.net/tech/kako/1053/10539/1053963794.html
6代目: http://pc5.2ch.net/tech/kako/1053/10530/1053045530.html
5代目: http://pc5.2ch.net/tech/kako/1051/10515/1051594046.html
4代目: http://pc5.2ch.net/tech/kako/1045/10450/1045074808.html
3代目: http://pc5.2ch.net/tech/kako/1041/10419/1041992392.html
2代目: http://pc3.2ch.net/tech/kako/1039/10397/1039772622.html
宿題手伝いますYO!!: http://pc3.2ch.net/tech/kako/1038/10380/1038024989.html
0003デフォルトの名無しさん
NGNG,.ヘー'´ i `´/ `i_
/ヾ、 ヽ、 i / /ヽ
_ィ、〉 > ´ ̄  ̄ ` く ,ゝ、
}、 ,>'´ 、 ヽ./`ヽ
┌! / / i 「`i ヽヽ ヽ }
Y ! | | l i i l i ',__,.ゝ
,' | | | !l l | l l !
i ! | | | | j___j | |i i!
|i! l ,.|‐T丁i! ハlj, --!`トlノ、||
| ! ! レ'i´`j "i´ `iヽ, i || _
| l |i iバ__ソ L__ソ /.ノ |! _ヽ)
| | |l |、//// ' ///// |! |i ヽ)
!ハ |! |,ゝ' ´ ̄ ̄ ` く レy'|!
__,ノ レ'ヽiハ / \}'´ ̄ `ヽ、
ィ´ ̄/ ,べY やらせて Y`i__ \
〉/ / , 、ヽ C++ /_`ヽ\ \
,ィ'ん、 / ! '´__ ヽ /´__,.` ', \ ァ'`
`ヽ、/ー' /! __`ヾ! レ'´ _,. ! \ i
/ー-ィ、 ィ__! ___`フ / ヽ二 /7 _i弋
/ 辷j ! ヽ / / / / } j´ 〉
ヽ、 冫 ヽ__ュ_y\ / / /ヽヘ/え´ /
\'´` `}ー-、_,ゝくi ヽ、 ____ ,. イィ_,、 __う'´__/
, `>ャ,`Yー-‐'^ |ニ=ー- ー-/ `^7 ,ゝ、ヽ
/// l ! | / } / | iハ_j
く///f´ ̄l/ | i y /-、| |
// | ┌ヽ. / `ー-='´ _| /` | |\
0004デフォルトの名無しさん
NGNG今日のプログラミングの課題で「おまんこをプログラミングせよ」
というのがありました。しかし僕は厨房なのでおまんこを見たこと
もありません。おまんこを見せてくれませんか?
また発展問題として「セクースをプログラミングせよ」というのも
出ました。発展問題を解くと成績が上がるのでぜひ協力してもらい
たいのですが。セクースの相手になってくれますか?
0005デフォルトの名無しさん
NGNGどおぞ
ttp://idol.bbspink.com/ascii/
0006デフォルトの名無しさん
NGNGvoid addLast(SitePtr , SiteList *);
という関数があるのですが、なぜ
void addLast(SitePtr , SiteList);
ではだめなんでしょうか?
SiteListっていうのは一番最初のノードを指してるポインタですよね?
一番上の関数はSiteListのポインタのポインタを用意しなければいけないようですが、
これっていったい何のために使うのでしょうか?
よろしくお願いします。
(この宿題が締め切りまでに間に合いそうにありません。度々お願いして
申し訳ないのですが、自力でダメだったときに提出したいのでどなたか
この課題をやっていただけないでしょうか?よろしくお願いいたします。
もしだめでしたら、質問の答えだけでもよろしくお願いいたします。)
0007デフォルトの名無しさん
NGNG素直な表現でわろた。
0008デフォルトの名無しさん
NGNGttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=205
void addLast(SitePtr , SiteList *);
→変数(構造体)のアドレスが渡される。
void addLast(SitePtr , SiteList);
→変数(構造体)の値がコピーされ渡される。
リスト構造を作るときは、アドレスをつないでいくから、前者なんじゃねーのか?
これでわからんよーなら、リストや木構造のシンプルなサンプルをWeb上でみつけてくださいまし。
0009デフォルトの名無しさん
NGNG>>933 だめでした。(;_;)
>>929 は結局
perlで↓のよーなことしました。(コピペじゃないから間違ってるかも)
s/\#[0-9a-fA-F]{16}\"/'#' . sub($&, 1, 2) .
. sub($&, 5, 2) . sub($&, 9, 2) . '"'/e;
なんとか目的の物は出来ましたが、スマートじゃないなぁ。
0011デフォルトの名無しさん
NGNG宣伝コピペとして規制議論に報告しました
0012デフォルトの名無しさん
NGNG0013デフォルトの名無しさん
NGNGどこの話?
0014デフォルトの名無しさん
NGNGその差が10以下なら「差は10以下」、11以上なら「差は11以上」と表示します。
・・・ここまでは良いんです。ここまでは。
最後に、「論理OR演算子」を使え、と言うのです。
誰か、お助け下さい・・・
0015デフォルトの名無しさん
NGNGdata.txt(フォーマットは変更可能)
5 :使う数
2 4 5 7 8 :xベクトル
1 3 4 8 7 :yベクトル
として、x・y(xとyの内積計算)を標準入力から
読み込んで計算するプログラムをライブラリ化目的で
作りたいんですが・・
最終的に行列計算でこの関数を使える形にもっていきたいです
誰かたしけて・・
0016デフォルトの名無しさん
NGNG{
int a, b;
scanf("%d %d", &a, &b);
if (a - b < -10 || 10 < a -b) {
printf("差は11以上\n");
} else {
printf("差は10以下\n");
}
return 0;
}
0017デフォルトの名無しさん
NGNGint dif = a - b;
if ((dif <= -11) || (11 <= dif)) {
} else {
}
無理矢理だが
0018デフォルトの名無しさん
NGNG>>1読んでね。
001915
NGNGメモリは動的確保(malloc)です
調べてatoiとかも考えてみましたがいまいちわかりません
とほ・・
0020デフォルトの名無しさん
NGNG・変更可能というのは利用者か、それとも開発者が勝手にフォーマットを限定していいのか
・ファイルから読みたいのか標準入力から読みたいのか
0021デフォルトの名無しさん
NGNGC++でいい?
0022デフォルトの名無しさん
NGNGどうもありがとうございました!
頭が凝り固まっていたようです。もっと柔軟に考えます。
002315
NGNG>・変更可能というのは利用者か、それとも開発者が勝手にフォーマットを限定していいのか
開発者が限定していい です
>・ファイルから読みたいのか標準入力から読みたいのか
ファイルからです 失礼しました
>>21
Cでおながいしまふ…<(_ _)>
0024デフォルトの名無しさん
NGNG0025デフォルトの名無しさん
NGNG>>・ファイルから読みたいのか標準入力から読みたいのか
>ファイルからです 失礼しました
あれ?>>15では
>として、x・y(xとyの内積計算)を標準入力から
>読み込んで計算するプログラムをライブラリ化目的で
っていってるけど。
0026デフォルトの名無しさん
NGNGVector new_vector(int n) {
return malloc(sizeof double * n);
}
void free_vector(Vector v) {
free(v);
}
double inner_product(int n,Vector v,Vector w) {
int i;
double s = 0.0;
/* あまりよくない */
for(i = 0;i < n;i++) s += v[i] * w[i];
return s;
}
とりあえず計算部分。
0027デフォルトの名無しさん
NGNG浮動小数対応とかはご自分で
#include <stdio.h>
#include <string.h>
#include <malloc.h>
#define SEPARATORS " \t"
int innerproduct(size_t c, const int *v1, const int *v2)
{
int i, r = 0;
for (i = 0; i < c; i++)
r += v1[i]*v2[i];
return r;
}
void readvector(const char *s, size_t c, int *v)
{
char *tmp = strdup(s);
char *token = strtok(tmp, SEPARATORS);
while (token) {
*v++ = atoi(token);
token = strtok(NULL, SEPARATORS);
}
free(tmp);
}
0028デフォルトの名無しさん
NGNGint main(int argc, char** argv)
{
char s[256];
int c, *v1, *v2;
FILE *fp = fopen(argv[1], "r");
fgets(s, 256, fp);
sscanf(s, "%d", &c);
v1 = malloc(sizeof(int) * c);
v2 = malloc(sizeof(int) * c);
fgets(s, 256, fp); readvector(s, c, v1);
fgets(s, 256, fp); readvector(s, c, v2);
printf("内積: %d\n", innerproduct(c, v1, v2));
free(v2);
free(v1);
fclose(fp);
return 0;
}
0029デフォルトの名無しさん
NGNG>>16
>scanf("%d %d", &a, &b);
%dの間の空白は不要。
>if (a - b < -10 || 10 < a -b) {
演算子の周囲の空白の空け方が不統一。
で、おまいはそのif文を
「aからbを引いてその結果が-10より小さいか、10がその結果より小さいか」
と言った調子で思考するのか?
普通は
if (a - b < -10 || a - b > 10) {
とした方が思考の流れを妨げずに読めると思うぞ。
ついでに言えば、
if (a - b <= 10 || b - a <= 10) {
とした方が表示すべき文章との整合性が取れるな。
>>17
>(11 <= dif)
>16同様。
0032デフォルトの名無しさん
NGNG意図せずああいう分け方になったが、
改行多すぎで分けただけ。
行列ライブラリが欲しいならそこら辺に転がってるじゃんよー
0034デフォルトの名無しさん
NGNG||の後ろの-bはただのtypo。申し訳ない。
不等号の向きに関して少し弁解。
この書き方は、右に行くに従って大きくなる数直線とイメージを重ねている。
a - b のとる値が、0から見て10若しくは-10よりも外側にあるというように考える、ということ。
図にするとこんな感じかな。(等幅フォントで見るとずれないはず)
───────┐ 0 ┌───────
━━━━━━━○────────┼────────○━━━━━━━→ a - b
-10 10
確かに、説明されないと変な書き方に見えるし、こういった人に見せる場で書くコードとしては
不適切だったかもしれない。
003517
NGNG俺は全然問題ないと思うが。
0036デフォルトの名無しさん
NGNGif (a - b < -10 || a - b > 10){のほうが読みにくい。
「aからbを引いてその結果が-10より小さいか、10がその結果より小さいか」
と言った調子で日本語に翻訳して読まないし。
0037デフォルトの名無しさん
NGNGabs(a-b) > 10
でいいじゃん…
0038デフォルトの名無しさん
NGNG右小 < 左大 で 結果、真 じゃないと気持ち悪いと思うし
ソース内でこういうところが統一されてないと漏れの場合バグになりやすいね。
0039デフォルトの名無しさん
NGNGそれだとa,b がint(整数)じゃないと意味が変わってくるよ。
0040デフォルトの名無しさん
NGNGint a, b;
0041デフォルトの名無しさん
NGNGabs(int),labs(long),fabs(double)
と全部出しとくか。
0042デフォルトの名無しさん
NGNG右はお箸を持つほう...と
0043デフォルトの名無しさん
NGNG0044デフォルトの名無しさん
NGNG@
@@
@@@
@@@@
@@@@@
と
@
@@
@@@
@@
@
0045デフォルトの名無しさん
NGNGprintf("@\n@@\n@@@\n@@\n@\n");
0046デフォルトの名無しさん
NGNG0047デフォルトの名無しさん
NGNGワラタ
0048デフォルトの名無しさん
NGNG0049デフォルトの名無しさん
NGNG>>1くらい嫁よ。
#include <stdio.h>
int main(void) {
int i, j;
for (i = 0; i < 1; i++)
for (j = 0; j < 1; j++)
printf("@\n@@\n@@@\n@@@@\n@@@@@\n");
for (i = 0; i < 1; i++)
for (j = 0; j < 1; j++)
printf("\n@\n@@\n@@@\n@@\n@\n");
return 0;
}
0050デフォルトの名無しさん
NGNGint i, j, add = 1;
for (i = 1; i <= 5; i++){
for (j = 0; j < i; j++){
printf("@");
}
printf("\n");
}
printf("\n");
for (i = 1; i > 0; i += add){
for (j = 0; j < i; j++){
printf("@");
}
printf("\n");
if (i >= 3){ add = -add; }
}
なんつーの。
0051デフォルトの名無しさん
NGNG#include<stdlib.h>
int main(){
int i,j;
for (i=1;i<=5;i++){
for(j=1;j<=i;j++) printf("@");
puts("");
}
printf("\nと\n\n");
for (i=1;i<=5;i++){
for (j=1;j<=3-abs(3-i);j++) printf("@");
puts("");
}
return 0;
}
0052デフォルトの名無しさん
NGNGvoid main(void)
{
int x,i,j;
scanf("%d",&x);
for (i=1;i<=x;i++){
for(j=1;j<=i;j++){
printf("☆");
}
printf("\n");
}
}
改造したらできました。ありがとうございました。
0053デフォルトの名無しさん
NGNG1, -1/2, 1/3, -1/4, ...
という数列の第n項までの和を求めよって問題なんですが、
以下のソースがうまくコンパイルできません。
#include <stdio.h>
int main()
{
int n, i;
double j = 0;
printf("Input the number.¥n");
scanf("%d", &n);
for (i=1; i<=n; i++) {
j += (( -1 ) ** ( i + 1 )) * ( 1 / i );
}
printf("The value is %lf.¥n", j);
return 0;
}
9行目のところで、
error: invalid type argument of `unary *'
というエラーが出ます。コンパイラは、gcc3.3 です。
C言語&プログラムを習い始めて間もないので、初歩的なことを見落としている可能性が高いのですが、
とても自己解決できません。なにとぞ、よろしくお願いします。m(_ _)m
0054デフォルトの名無しさん
NGNGねぇねぇ**ってどういう演算子?
0055デフォルトの名無しさん
NGNG0056デフォルトの名無しさん
NGNGT oprator ** (T a, T b) { return a * ((int)b % 2 == 0 ? 1 :-1);} とか?
0057デフォルトの名無しさん
NGNG>j += (( -1 ) ** ( i + 1 )) * ( 1 / i );
(-1)の(i+1)乗を求めたいんなら pow()って関数がある。
でも今回の場合は単に iが奇数なら1、偶数なら-1にするだけだから
べき乗なんて持ち出さないで
(-1) * ((i + 1) & 1)
でいいでしょう。
0058デフォルトの名無しさん
NGNG素直に
a=1.0; b=1.0からループで
c += a / b;
a = a * -1.0;
b = b + 1.0;
するのがまっとうでは?
0059デフォルトの名無しさん
NGNG無理。opratorなんて予約語はC++にないし、**という演算子は
C++に存在しないのでオーバーロードも無理。
0060デフォルトの名無しさん
NGNG0061デフォルトの名無しさん
NGNG0062デフォルトの名無しさん
NGNG0063デフォルトの名無しさん
NGNGそれじゃ、
if (value >= maxLimit) {
ですむロジックを、いちいち
if (maxLimit <= value) {
って書いちゃうわけ?
そんな変な癖ついちゃってたらそりゃぁ、バグの温床になるねぇ。
>36の言うような日本語に翻訳して読むだけの問題ではないんだけど、
頭の中でいちいち数直線持ち出さなきゃいけないんだから効率悪いしバグにもなるわけだ。
0064!38
NGNG0065デフォルトの名無しさん
NGNG>>63
で、前者と後者の「ロジック」に何の差があると?
0066デフォルトの名無しさん
NGNG遅レスだが >>37
それをやると || の使いどころがなくなる
006738
NGNG議論するほどのことじゃないと思う。あくまで漏れの場合だよ。
(わりと漏れに同意してくれる人はいるみたいだけど)
ただ漏れの個人的希望では条件分岐の条件にはソース内で
なんらかの合理的な法則が欲しいと思うわけよ。あんまり賢くないからね。
それがif文であれば左小、右大であるし(プログラムソースは左から読むし
プログラムでなくても通常の数式でもそう書くのが一般的だからね)、
switch〜caseのcaseであれば規則正しく昇順(降順)でラストがdefaultって感じかな。
>>63はそういうのが出鱈目でもミスしないようだからきっと頭がいいのだろうね。
0068デフォルトの名無しさん
NGNG006938
NGNG0070デフォルトの名無しさん
NGNG皆、無意識にやってるんじゃないか?
0071デフォルトの名無しさん
NGNG参照元 符号 参照値
の列が正しい。
あるいは
場所 関係 機能
でお考えになられても可。
0072デフォルトの名無しさん
NGNG表記法を変更するのは愚行であるかと。
0073デフォルトの名無しさん
NGNGa >= 5 && a <= 10 より
5 <= a && a <= 10 の方がわかりやすい気がするんだが。
あと、スレ違いだな>俺
0074デフォルトの名無しさん
NGNGああ、スレ違いの流れに飲み込まれていく…。
0075デフォルトの名無しさん
NGNG5 <= a の表現は禁則なんだな。代入式の形式を無視している。
これでは定数値に対して変数値を評価しているようになる。
それに数直線様な見た目を好む方は2次元以上を扱うことはできるのですか?
スレ違いか・・・
0076デフォルトの名無しさん
NGNG代入式とは何の関係もないですが。
0077デフォルトの名無しさん
NGNG0078デフォルトの名無しさん
NGNG続けるなら他の適切なスレでやってくれ。
0079デフォルトの名無しさん
NGNGC言語で適当に演算させてその結果を標準出力ではなくて
自分のメアドにその内容を送るにはソースコード内にどう書けば良いですか?
0080デフォルトの名無しさん
NGNGでもaが5より大きいとかをわざわざ 5<a とは書かない。普通に a>5 でわかる。
>>79
処理系くらい書け。
0081デフォルトの名無しさん
NGNGここは「宿題」スレなので、>>1の注意点を熟読してから書いてね。
0082デフォルトの名無しさん
NGNG0083デフォルトの名無しさん
NGNG#include <string.h>
int main()
{
char addr[] = "[email protected]";
char command[256] = "/usr/sbin/sendmail ";
strcat(command, addr);
FILE *fp = popen(command, "w");
fprintf(fp, "To: %s\nFrom: %s\nSubject: test\n\n", addr, addr);
fprintf(fp, "message body\n");
pclose(fp);
return 0;
}
0084デフォルトの名無しさん
NGNGフェアプレイの精神を忘れないように。
つまり、処理を進行させていずれは終了するアルゴリズムでなければならず、
時間稼ぎのループのようなインチキを働く実装であってはならない。
そのアルゴリズムの計算量をnの関数として表現せよ。
よろしくお願いします。
0085デフォルトの名無しさん
NGNG0086デフォルトの名無しさん
NGNGモチベーションあがらん教科書ですな。
0087デフォルトの名無しさん
NGNG引き算をデクリメントのループで実装するような姑息な手段はフェアじゃないのだろうか。
実際、どこまでがアンフェアなのかの線引きがない以上手の出しようがないな。
0088デフォルトの名無しさん
NGNGなんで、バブルソートが設計的には一番低速だろ。
それ以外のはいんちきじゃないとできない。(論理的には)
0089デフォルトの名無しさん
NGNG0090デフォルトの名無しさん
NGNGサリンジャーすら読んだことないやつらばっかみたいだねwww
正直生きてて恥ずかしくないか?
最低でもナインストーリーズのバナナフィッシュにうってつけの日くらいは
読んでおかないと社会に出てから恥ずかしい思いするぞwww
0091700
NGNGvoid slowsort(int *data)
{
int i,j,half;
half=MAX/2;
i=rand()%half;
j=i+1+(rand()%half);
if(data[i]>data[j]){
int temp=data[i];
data[i]=data[j];
data[j]=temp;
}
}
Nが大きい時はかなり早いが、完璧にソート出来ない可能性も有る諸刃の剣。
O(N)の方は>>92に任せた。
0092デフォルトの名無しさん
NGNG0093デフォルトの名無しさん
NGNGそれを小さい順(もしくは、大きい順)に並べる
って事したいです。お願いします
0094デフォルトの名無しさん
NGNGそれをソートっていうんだよ!!
0095デフォルトの名無しさん
NGNGそーっとしといてやれ
0096デフォルトの名無しさん
NGNG>>84で既出です。
0097デフォルトの名無しさん
NGNGあなたのギャグセンスは30代以上ですね。
0098デフォルトの名無しさん
NGNGそーとも言う
0099デフォルトの名無しさん
NGNG0100デフォルトの名無しさん
NGNG「はじめてのC」しか読んだことありません。
0101デフォルトの名無しさん
NGNG0102デフォルトの名無しさん
NGNG0103デフォルトの名無しさん
NGNGint count = 0;
while(count < 1) {
try{
・・・ここで入力
}
catch (NumberFormatException e) {
System.out.println("正しい入力をしてください");
continue;
}
count++;
}
のようなことをBorland C++でやりたいのですが、どのようにすればよいでしょうか
ちなみにコンパイラはBorland C++で、 OSはWindowsXP SP1です。
期待する入力はint型、エラーとして受け取りたいのはint型の範囲を超えるものと、int型以外の型です。
0104104(1/2)
NGNG#include <stdlib.h>
#include <string.h>
struct record list{
char name[32];
int score;
struct record *next;
};
int main(void){
struct record *list; *tmp = NULL;
list = (strucct record *)malloc(sizeof(struct record));
scanf("%s", list->name);
while(strcmp(name, "end") != 0){
scanf("%d", &(list->score));
list->next = tmp;
tmp = list;
list = (strucct record *)malloc(sizeof(struct record));
scanf("%s", list->name);
}
list = tmp;
while(list != NULL){
printf("%s: %d\n", list->name, list->score);
list = list->next;
}
return 0;
}
0105デフォルトの名無しさん
NGNG>>1読めよ。
【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
http://do.sakura.ne.jp/%7Ejunkroom/cgi-bin/megabbs/lounge/index.html
0106104(2/2)
NGNG得点をリスト構造から削除する関数を追加したいのですが
どのようにすればいいですか?
0107デフォルトの名無しさん
NGNGすんまそん
0108デフォルトの名無しさん
NGNG{
struct record* next = src;
while(src){
next = src->next;
if(src->score == score){
free(src);
}
src = next;
}
}
0109デフォルトの名無しさん
NGNG0110デフォルトの名無しさん
NGNGstruct record *del_score(struct record* src,int score)
{
if(src!=NULL){
src->next = del_score(src->next,score);
if(src->score==score){
struct record *temp=src;
src = temp->next;
free(temp);
}
}
return src;
}
使い方
list = del_score(list,消したい得点);
0111110
NGNGvoid del_score(struct record** src,int score)
{
if(*src!=NULL){
del_score(&src[0]->next,score);
if(src[0]->score==score){
struct record *temp=*src;
*src = temp->next;
free(temp);
}
}
}
使い方
del_score(list,消したい得点);
0112110
NGNG使い方
del_score(&list,消したい得点);
0113デフォルトの名無しさん
NGNG0115デフォルトの名無しさん
NGNGint binary_search(int l,int r,int a[],int key) {
int m = (l + r) / 2;
if ( l == r && a[m] != key ) return -1;
if(a[m] < key) return binary_search(m+1,r,a,key);
else if(a[m] > key) return binary_search(l,m,a,key);
return m;
}
0116デフォルトの名無しさん
NGNGありがとうございました。
初心者なので助かります。
0117103
NGNG0118デフォルトの名無しさん
NGNG0119デフォルトの名無しさん
NGNGint count = 0;
while(count < 1){
try{
}
catch(NumberFormatException e){
printf("正しい入力をしてください\n");
continue;
}
count++;
}
0120デフォルトの名無しさん
NGNGだな。
0121103
NGNGエラー E2303 win_search.cpp 87: 型名が必要(関数 main() )
エラー E2377 win_search.cpp 87: Catch文に ) がない(関数 main() )
が出てきます。
0122デフォルトの名無しさん
NGNGとかを勝手に定義してくれ。
0123103
NGNG{}の中に何をどう定義すればいいのでしょうか
0124デフォルトの名無しさん
NGNGなにも定義する必要は無い。
0125103
NGNGtry の中は
cin >> key;
だけでいいんでしょうか?
これじゃぁ無理な気がしてきました。
0126デフォルトの名無しさん
NGNG0127デフォルトの名無しさん
NGNGstruct NumberFormatException {};
int main()
{
int count = 0;
while (count < 1) {
try {
std::cin >> key;
if (keyがなんかおかしい) throw NumberFormatException;
} catch (NumberFormatException) {
std::cerr << "正しい入力をしてください" << std::endl;
continue;
}
count++;
}
return 0;
}
0128デフォルトの名無しさん
NGNGなんて都合のいい関数ってありますか?関数じゃなくてもいいですが
0129デフォルトの名無しさん
NGNG0130デフォルトの名無しさん
NGNGsetjmp(), longjmp() でどうにかならないかな。
0131デフォルトの名無しさん
NGNGそんなひねくれた技覚える前に,まともな方法はちゃんと判ってるのか?
0132デフォルトの名無しさん
NGNG例えば
int main(){
int array[10]={1,2,3};
.....
return 0;
}
↓
int main(){
for(;;){
int array[10]={1,2,3};
........
if(終わりたくなったら) break;
}
return 0;
}
変数の寿命:{}ブロック内で宣言した変数はそのブロックの先頭で初期化され,
そのブロック内でのみ有効。
を活用する。
0133デフォルトの名無しさん
NGNGfor( k = 0; k < 10; k++) {
if(stopblocks == 0)
;
else if(i = 0)
;
else if(a[i][k] == 0 ) {
if( a[i-1][k] == 0)
;
else if((a[i+1][k+1] == 0) && (a[i][k+2] == 0)) {
a[i-1][k] = 0;
a[i][k] = 1;
a[i-1][k+1] = 0;
a[i+1][k+1] = 1;
a[i-1][k+2] = 0;
a[i][k+2] = 1;
}
}
else {
/*stopblocks = 0*/;
}
↑荒々しいコードですみませんが、上のようなコードを書いたとき
iとkの中身がインクリメントされてるはずなのに何度ループしても両方0の
ままになってしまいました。iとkがインクリメントされていってくれるものと
思ってif文を書いてたのですが、iもkも常に0なので
いつも一番最後のelse文になってしまい、思うように動いてくれないです・・・。
どこがマズいのでしょう・・・
for文の中のいろんな行でiとkの値を表示させてみたんですが何度ループした後もいつも0になってるんです。
0134デフォルトの名無しさん
NGNGまずは、コンパイラの警告に耳を貸すことを覚えろ。
else if(i = 0)
0135デフォルトの名無しさん
NGNGしまったああああああああああああああああああああああ
そこかあああ
ありがとうございました。
0136デフォルトの名無しさん
NGNG0137デフォルトの名無しさん
NGNG0138デフォルトの名無しさん
NGNGこれを構成する各要素を表現するためのC言語の型定義を示せ。
単に文字列とするのではだめ。
平成 16年(2004) 4月27日(火) 12:15:35
2.火曜日 A群 03 2年 3532 アルゴリズムとデータ構造I 木村 前 03IB 21522
上記の情報を表現するためのデータ構造を、C言語の定義型として書け。
3.データ型、データ構造、抽象データ型の違いを述べよ。
よろしくお願いします。
0139デフォルトの名無しさん
NGNG1.time_t
0140デフォルトの名無しさん
NGNGstruct tmみたいなものを自分でつくれということでは?
0141デフォルトの名無しさん
NGNG0142デフォルトの名無しさん
NGNGおいおい。間違ってはいないけど、それは違うだろw
0143デフォルトの名無しさん
NGNGただし、rが0の時は、「半径が0になっています」と出力し、
rが負のときは「半径が負になっています」と出力する
初歩的なものだと思うんですが、やり始めたばかりなので分かりません。お願いします
0144デフォルトの名無しさん
NGNGmain(){
int r=0;
printf("r=");
scanf("%d",&r);
if(r<0){printf("rが負になっちょる\n");}
else if(r==0){printf("rが0ですぜ\n");}
else{
printf("半径%dの球の体積は%dπです。\n",r,r*r*r*3/4);
}
}
0145デフォルトの名無しさん
NGNG0146デフォルトの名無しさん
NGNG#include <stdio.h>
main(){
float r=0;
printf("r=");
scanf("%g",&r);
if(r<0){printf("rが負になっちょる\n");}
else if(r==0){printf("rが0ですぜ\n");}
else{
printf("半径%gの球の体積は%gπです。\n",r,r*r*r*4/3);
}
{
0147デフォルトの名無しさん
NGNGこれ、問題の意味からしてわからないんです。誰かたすけてー
0148デフォルトの名無しさん
NGNG(a[0]=10
(a[1]=30
5個←(a[2]=20
(a[3]=50
(a[4]=2(a[n-1])
という意味で
iがもし2だったら、a[0〜4]のなかでa[2]が何番目にでかいかって事?
0149デフォルトの名無しさん
NGNGなぜ「でかいかって」と思うんだ?
0150デフォルトの名無しさん
NGNG0151デフォルトの名無しさん
NGNGint rank(int i,int n,int a[]) {
int j, r = 1;
for(j = 0;j < n;i++) if(a[n] > a[i]) r++;
return r;
}
0152デフォルトの名無しさん
NGNGなぜ「上」(w
しかも「点数」(w
0153デフォルトの名無しさん
NGNG>n個のデータなんでn!の比較、n!の入れ替えが一番遅くなる。
n*n = n^2 が一番遅くなるだろ?
0154デフォルトの名無しさん
NGNG0155デフォルトの名無しさん
NGNGありがとうございました
0156デフォルトの名無しさん
NGNGn! よりも遅い n^n を思いついたぞい(w
0157デフォルトの名無しさん
NGNGそのオーダーで動くソートアルゴリズムがあればなw
0158156
NGNG/* 最大値、最小値を探す */
max=min=tbl[0];
for(i=1; i<TBL_SIZE; ++i){
if(min>tbl[i]) min=tbl[i];
if(max<tbl[i]) max=tbl[i];
}
/* ソート(w */
p=0;
for(n=min; n<=max; ++n){
for(i=0; i<TBL_SIZE && p<TBL_SIZE; ++i){
if(n==tbl[i]){
tmp=tbl[p]; tbl[p]=tbl[i]; tbl[i]=tmp;
++p;
break;
}
}
}
0159デフォルトの名無しさん
NGNGいんちきの定義が曖昧なんであれだけど、明らかに不要なループをまわしてるんで
それはいんちきの内にはいるんじゃないの?
0160デフォルトの名無しさん
NGNG01611/2
NGNG素数がどうかを判別するものです。
#include <stdio.h>
int main(void)
{
int i, num;
printf("2以上の整数を入力してください\n");
scanf("%d", &num);
for(i = 2; i <= num; i++){
if(i == num){
printf("%dは素数です\n", num);
}
else if(num % i == 0){
printf("%dは素数ではありません\n", num);
break;
}
}
return 0;
}
01622/2
NGNG「break文を使うと、内側のブロックを抜け出して、
もうひとつ外側のブロック処理が移ることになっています」
とあるのですが、そうだとすると例えば上のnumに12を入れたとすると
12は素数ではありません
12は素数ではありません
12は素数ではありません
12は素数ではありません
12は素数です
と、出るべきじゃないかなと。
つまり、i = 2のときにbreakにかかってfor文に戻り、i = 3のときにbreakにかかってfor文に戻り、
i = 4のときにbreakにかかってfor文に戻り、i = 6のときにbreakにかかってfor文に戻り、
i = 12のとき(i == num)となってfor文を抜け出すと...
breakの部分をどう間違って解釈しているのでしょうか?
長かった・・・
0163デフォルトの名無しさん
NGNGどの本読んだかわからないけどちがう。
上記の例の場合、breakしたときはforブロックを抜ける。
0165デフォルトの名無しさん
NGNGbreakはブロックを抜け出す、というのが間違い。
最も内側のfor,while,do/while,switchを抜けるんだ。
0166デフォルトの名無しさん
NGNG君のやりたいことだとcontinueを使えばいいのかな?
0167166
NGNG0168156
NGNG>それはいんちきの内にはいるんじゃないの?
そうかスマソ
>160
>しかもn^nじゃないし。
そうかスマソ
0169デフォルトの名無しさん
NGNG有難うございます。
参考書(やさしいC第2版/高橋麻奈著)を見たら、
「繰り返し文をネストしている場合、内側の文でbreak文を使うと、内側のブロックを抜け出して、
もうひとつ外側のブロック処理が移ることになっています」
と、ありました。>>162で少し削ってしまい申し訳ないです。
今まで、「break文とは最も内側のブロックを抜け出すものだ」と解釈していたので
大変勉強になりました。有難うございました。
0170デフォルトの名無しさん
NGNG「n個の値 a[0], a[1], …,a[n-1] が与えられているとき」というのはどういうふうにやったらいいんでしょうか。
basicみたいに最後にdataとつけたらいいんでしょうか。
0171デフォルトの名無しさん
NGNGint a[]={0,1,2,3,4,5,6,7,8,9};
これで a[0]〜a[9]が用意される。
0172デフォルトの名無しさん
NGNG0173デフォルトの名無しさん
NGNG0174デフォルトの名無しさん
NGNGその解釈だと、例えば
int ic;
for (ic = 0; ic < 9; ++ic) {
if (...) {
break;
}
}
のbreakにに何の意味もなくなってしまう。
0175デフォルトの名無しさん
NGNGおお、最初に埋めこんでしまうんですね。
たとえば、
# include <stdio.h>
main ()
{
int a[]={0,1,2,3,4,5,6,7,8,9};
と、始めるわけですか。
とすると、配列の要素数を求めるにはどうしたら、
0176デフォルトの名無しさん
NGNG自分でデスクマスコットなりなんなりプログラム組んで戯れてください。
0177デフォルトの名無しさん
NGNGその場合実行時にコピーするコストが掛かるので、
普通は
static int a[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, };
或いは固定値でいいなら
static const int a[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, };
とする。
0178デフォルトの名無しさん
NGNGうおお、かなりむつかしい事になってきました。
ゆっくりと理解していかなければ……
0179デフォルトの名無しさん
NGNGたかが宿題で何言ってんの?
0180デフォルトの名無しさん
NGNGお願いします
0181デフォルトの名無しさん
NGNG全文書いた方がいいぞ
0182デフォルトの名無しさん
NGNG0183180
NGNG0184デフォルトの名無しさん
NGNG0185デフォルトの名無しさん
NGNG>int a[]={0,1,2,3,4,5,6,7,8,9};
>配列の要素数を求めるにはどうしたら、
配列全体のサイズは sizeof(a)
1要素あたりのサイズは sizeof(int)
従って、要素数は sizeof(a)/sizeof(int)
0186デフォルトの名無しさん
NGNG#define numberof(x) (sizeof(x)/sizeof(*(x)))
0187デフォルトの名無しさん
NGNG0188デフォルトの名無しさん
NGNGそのココロは?
0189デフォルトの名無しさん
NGNG0190デフォルトの名無しさん
NGNGC言語プログラムを教えていただきたいです。
物体の質量m、台車の変位x、粘性係数c、剛性係数k、
離散のサンプリング間隔をdtと置いて。
どうやったらいいか、などのアドバイス程度だけでもいいんで是非是非おながいします。
0191デフォルトの名無しさん
NGNGどうせ理学系の大学生だろ?
0192デフォルトの名無しさん
NGNG計24個を表示するにはどうすればいいでしょうか?
forを使ってネストにしているのですが、期待した動作を
してくれません。
0193デフォルトの名無しさん
NGNG0194デフォルトの名無しさん
NGNGint i,j,k,m;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
for(k=0;k<4;k++)
for(m=0;m<4;m++)
if(i!=j&&i!=k&&i!=m&&j!=k&&j!=m&&k!=m)
printf("%d%d%d%d\n",i+1,j+1,k+1,m+1);
0195デフォルトの名無しさん
NGNG有難うございます。ついでといっては何ですが、質問があります。
先ほどのものに関連して、組み合わせの順序を経路とする道で
最短のものを探す(いわゆるTSPというやつの力任せ版です)を
考えているのですが、どうも手計算と値が合わなくて困っています。
http://www.42ch.net/UploaderSmall/source/1083847073.zip
にソースをupしてみました。
どなたか御指南のほどお願いします
0196悩める無能男
NGNG0、1、2、・・・、((2^k)−1)の数字を二進数表現の逆順ビット列の順番にする
(数字を2進数で表現し、ビットを反転させてから(例えば100なら001に)大きい順
に並べ替え、そして10進数に直す。たとえば0,1,2,3、なら0,2,1,3に並べ
替えられる)プログラムがどうしてもできません。方針でもかまいませんので教えてください。
お願いします。
このように並べ替えることにより、バタフライ演算が容易になるんだそうです。
0197195
NGNG0198デフォルトの名無しさん
NGNG小さいほうから反転させればいんじゃないの?
0199デフォルトの名無しさん
NGNGみんなの妹とかいうのが入り込んだんだ?
0201悩める無能男
NGNG0202デフォルトの名無しさん
NGNG排他的論理和じゃねーの?
(例えば100なら011に)
0203デフォルトの名無しさん
NGNG/* ビット反転並べ替えを行う */
void bitrv(int n, double a[])
{
int i, j, k;
double tmp;
i = 0;
for (j = 1; j < n - 1; j++) {
for (k = n >> 1; k > (i ^= k); k >>= 1);
if (j < i) {
tmp = a[j];
a[j] = a[i];
a[i] = tmp;
}
}
}
0204!201
NGNGかぁ。すげ。
もう少しエレガントな方法ないんだろうか。
パズルみたいで面白いとオモタ
0205デフォルトの名無しさん
NGNGC++のプログラムですが
整数値を読み込み、それが正の値であれば、その数を逆順に出力するプログラムを製作せよ。
たとえば12345なら54321と出力すること。なお、読み込んだ値が0以下なら何も出力しない。
いままでに習ったのはdo文までで配列はまだ出てきません。お願いします。
0206デフォルトの名無しさん
NGNG#include <iostream>
int main(){
int val;
std::cin>>val;
if(val<0) return 0;
do{
std::cout<<val%10;
val/=10;
}while(val!=0);
return 0;
}
0207デフォルトの名無しさん
NGNGありがとうございました。
試してみます。
0208デフォルトの名無しさん
NGNG"読み込んだ値が0以下なら何も出力しない"
>if(val<0) return 0;
0209デフォルトの名無しさん
NGNG0210デフォルトの名無しさん
NGNG#include <iostream>
using namespace std;
void f(int val)
{
if (val > 0) {
cout << val % 10;
f(val / 10);
}
}
int main()
{
int val;
cin >> val;
f(val);
return 0;
}
0211デフォルトの名無しさん
NGNGint main(){
int val;
std::cin>>val;
for(; val>0; val/=10) std::cout<<val%10;
return 0;
}
0212デフォルトの名無しさん
NGNG0213デフォルトの名無しさん
NGNG長さxメートル(xは整数)の紐をn等分するときの長さを
am bcm cmmで表示しなさい。
ただしxとnは入力し、m、cm、mmの桁が0のときは、その桁の出力を
抑制すること)の解答を教えてください。mmからcmの繰り上げがよくわかりません。
0214デフォルトの名無しさん
NGNG0215デフォルトの名無しさん
NGNGmmで計算して、出力時に換算する。
mm>cmは10で割ってintにキャストすれば端数は切り捨てられる。
0216195
NGNG二次元平面上に任意の点を最大で10程度取り、原点Oからその
全ての点を通る経路について最短経路長及び経路順を求めよ。
ただし、二点間の距離は
sqrt(pow(x1-x2,2)+pow(y1-y2,2))で求められるものとする。
なお、使用言語はC++であり、点はクラスを用いて表現する。
というものです。点の数が任意であるため、単純なforループでは
実装できませんでした。
やはりGAなどを使ったほうがいいのでしょうか?当方にはGAに関する
知識が無いので困っております。どなたかご指南をお願いいたします。
また、GAを使う必要が有るのであれば、参考になる文献などを教えていただけると
幸いです。
0217デフォルトの名無しさん
NGNG#include <iostream>
#include <vector>
#include <algorithm>
#define N 8
using namespace std;
bool greater(const int &a, const int &b){ return(a > b); }
int main(void)
{
vector<int> d;
int b;
for(int i = 0; i < N; i++){
cin >> b;
d.push_back(b);
}
sort(d.begin(), d.end(), greater);
for(vector<int>::iterator c = d.begin(); c != d.end(); c++){
cout << *c << ", ";
}
return 0;
}
0218デフォルトの名無しさん
NGNG中途半端なところがなんとも。
0219デフォルトの名無しさん
NGNGこうでしょ。
#include <iostream>
#include <iterator>
#include <vector>
#include <algorithm>
int main()
{
std::vector<int> v;
std::copy(std::istream_iterator<int>(std::cin),
std::istream_iterator<int>(),
std::back_inserter(v));
std::sort(v.begin(), v.end(), std::greater<int>());
std::copy(v.begin(), v.end(),
std::ostream_iterator<int>(std::cout, " "));
std::cout << std::endl;
}
0220デフォルトの名無しさん
NGNG#include <stdlib.h>
void set_first(int *, int); int next_junretu(int *, int); void print_junretu(int *, int); void mainloop(int);
int main(int argc, char *argv[]) {int i; if (argc < 2) mainloop(3);else for (i = 1; i < argc; i++)mainloop(atoi(argv[i]));
return 0;}
void mainloop(int n) {int *p;
if (n < 1) return;
p = (int *) malloc(sizeof(int) * (n+1));
if (p == NULL) { /* no memory */ return; }
set_first(p, n);
do { print_junretu(p, n); } while (next_junretu(p, n));
free(p);}
void set_first(int *p, int n) { int i;
for (i = 0; i < n + 1; i++)p[i] = i;}
int next_junretu(int *p, int n) { int i, j, t;
for (i = n - 1; p[i] >= p[i + 1]; i--) ;
if (i == 0) return 0;
for (j = n; p[i] >= p[j]; j--) ;
t = p[i]; p[i] = p[j]; p[j] = t;
for (i++, j = n; i < j; i++, j--) { t = p[i]; p[i] = p[j]; p[j] = t; }
return 1;}
void print_junretu(int *p, int n) { int i;
printf("%d", p[1]);
for (i = 2; i <= n; i++) printf(" %d", p[i]);
printf("\n");}
0221デフォルトの名無しさん
NGNG力任せにすべての順列を試したいなら標準ライブラリにnext_permutationがある。
本来ならこれを使うべきだが、宿題ということなので実装をパクって書いてみた。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=54
0222デフォルトの名無しさん
NGNG先生はC言語でのgetcharにあたるものを文中に使えば途中で消えないと言うのですが、C++では何になるんでしょうか?
0223デフォルトの名無しさん
NGNG0224デフォルトの名無しさん
NGNG0225デフォルトの名無しさん
NGNG有難うございます。
ソースのほうと、ライブラリ関数のほう両方とも見させていただきました。
やはり、要素数が10のときに順列の生成に時間が掛かりすぎてしまいますね・・・
どうにかしてスマートに求められないでしょうか?どなたかご指南お願いいたします
0226デフォルトの名無しさん
NGNGint main()
{
system("PAUSE");
return 0;
}
0227デフォルトの名無しさん
NGNG>点の数が任意であるため、単純なforループでは実装できませんでした。
これは再帰使えば解決できる。
>やはりGAなどを使ったほうがいいのでしょうか?
GA なんてご大層なもの使うほどの問題でもないような気がするけど。
で、枝刈りしながら再帰で探索する方法で作ってみた。座標はランダム初期化。
10点程度なら(よほどの悪条件でなければ)数秒もせず結果が出てくるはず(@PentiumM 1.3GHz)。
高速化のための工夫としては、
1.各点間の距離テーブルを最初に作成しておく
2.今までに発見された最短経路距離を越えた時点で探索を打ち切る(枝刈り)
3.次の点の候補を選ぶ際、距離の短い点から順に選ぶ
(早期により短い経路が発見されやすくなると期待できるので、枝刈りの効率が上がる)
4. 3.のための順序テーブルも最初に作成しておく
といったところ。
結果は多分正しいと思うけどちゃんと確認してない。
後、せっかく C++ だからってんで STL 使って余計見にくくなってしまったかもしれない。
ttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=55&fi=no
# 最初、「原点から」の部分を読み落としてたんだけどあまり変更せずに対応でけた
0228デフォルトの名無しさん
NGNG初期値を0として、解を一つ出すところまではできたのですが、
二つ目以降の解を求める際の初期値を求める方法がどうしても分かりません。
どうかよろしくお願いします。
0229デフォルトの名無しさん
NGNG学校の課題程度なんだったら、
・初期値は手動で与える
・収束しなさそうな場合、ループを途中で打ち切ってエラーメッセージを出力
でいいんじゃない?
0230228
NGNG初期値を手動で与えるようにしてみたのですが、
何を入力しても一つの解しか出ないようになってしまいました。
どこかが間違っているのか自分では見つけられなかったので、
どなたか修正or指摘おねがいします。
ttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=206&fi=no
0231デフォルトの名無しさん
NGNGありがとうございます。幾つか質問させていただいてよろしいでしょうか?
l47:bool operator()(int a, int b) { return table[a] < table[b]; }
operator()(・・・)がいまいち理解できません。関数オブジェクトだとは
解るのですが・・・・
l61:table[i].push_back(j);
vectorには不慣れなもので、よく分かりません。コンテナの末尾にjを挿入している
理由が理解できずに居ます。
l63:sort(table[i].begin(), table[i].end(), ValueCompare<Dists>(dist[i]));
l47に便乗して、sortの最後にあるValueCompareの動作がわかりません。
l87:context.results.push_back(context.temp);
l61同様に、理由が理解できません
以上、
お手数ではありますが教えていただけ無いでしょうか?
0232デフォルトの名無しさん
NGNGよろしくお願い致します。
0233デフォルトの名無しさん
NGNGlong bytes = 0,lines = 0;
FILE *fp;
ファイルを開くとか
while((c = fgetc(fp) != EOF) {
if(c == '\n') lines++;
bytes++;
}
位でお茶を濁す。
0234デフォルトの名無しさん
NGNG# include <stdio.h>
int main(void)
{
int c;
FILE *file = fopen("あるファイル", "r");
int nbytes = 0, nlines = 1;
while((c = getc(file)) != EOF) {
if(c == '\n') nlines++;
nbytes++;
}
fclose(fp);
printf("行数:%d バイト数:%d\n", nlines, nbytes);
}
0235デフォルトの名無しさん
NGNGコマンドプロンプトから実行すればいいだけの話じゃ?
0236デフォルトの名無しさん
NGNG0237デフォルトの名無しさん
NGNG全部出たよ。
どんなパラメータを入力した?
0238デフォルトの名無しさん
NGNG有難うございます。本当に助かりました。
0239デフォルトの名無しさん
NGNGやっぱ分かりにくかったか。すまん。
とりあえず、dist[i][j] が i 番目の点と j 番目の点の距離、
table[i] は i 番目の点を選択した後、次の点を選択する際の順序ってのはいい?
>l47:bool operator()(int a, int b) { return table[a] < table[b]; }
これは sort に渡すための関数オブジェクト。qsort でも比較関数渡すよね?
sort の第 3 引数に渡すことで、operator < の代わりに要素の比較に使われる。
a と b の比較をする場合に、table[a] と table[b] の比較を行うことになる。
table 自体はコンストラクタで渡してるものを使う。
>l63:sort(table[i].begin(), table[i].end(), ValueCompare<Dists>(dist[i]));
ValueCompare<Dists>(dist[i]) は一時関数オブジェクトの生成。
↑の関数オブジェクトで比較を行う際の table に dist[i] を使うことを指定。
結果、dist[i][a] と dist[i][b] の比較、つまり i 番目の点からの距離の大小で
ソートを行うことになる。
NNUM = 5, i = 3 とすると table[i] は { 1, 2, 4 } と点の番号が並ぶ vector に
なってる。
sort の結果が { 2, 1, 4 } となった場合、3番目の点に一番近いのが 2 番目の点。
以下、1 番目、4 番目と続くのでこの順で選択を試す。(>227 の 3, 4)
>l61:table[i].push_back(j);
>l87:context.results.push_back(context.temp);
何が分からないのかよく分からないけど、末尾挿入自体に大した意味はないよ。
別に、添え字を使ってアクセスして代入したところで違いはない。
ただそれだと現在の要素数を管理する必要があるんで、それが面倒だったから。
| for(int j = 1; j < NNUM; j++) if(i != j) table[i].push_back(j);
と
| int k = 0;
| for(int j = 1; j < NNUM; j++) if(i != j) table[i][k++] = j;
の違い。
l87 の方だと context.results のサイズが足りるかどうかも気にしなきゃならなくなる。
0240デフォルトの名無しさん
NGNGコマンドラインからのファイルリダイレクト使えよ(w
0241デフォルトの名無しさん
NGNG0242デフォルトの名無しさん
NGNGしかもコマンドライン引数だぁ?誰がそんな話してるかよ糞が
0243デフォルトの名無しさん
NGNGたびたび有難うございます。納得いたしました。
最後に一つだけ質問させてください。
NUMはconst intとしてglobalに宣言されていますが、これを
ユーザからの入力で決定したい場合、main内にてcinから受け取っても
大丈夫でしょうか?
0245デフォルトの名無しさん
NGNGgetcharの代わりは何を使えばいいか、というのが課題です。調べてもわかんない・・・
0246デフォルトの名無しさん
NGNGcin.get()とか
0247デフォルトの名無しさん
NGNG下らん問題だなぁ
0248デフォルトの名無しさん
NGNG>>236
0249デフォルトの名無しさん
NGNGおねがいします。
2次方程式 ax*x+bx+c=0 の係数a,b,cを与え方程式の解を求めて
出力せよ
0250デフォルトの名無しさん
NGNG解の公式が分からないとか言い出すなよ。
0251む
NGNGその内包されているクラスが内包しているクラスのメンバや関数を
使いたくなった場合、
どのように対処すべきですか?
0252デフォルトの名無しさん
NGNG0253デフォルトの名無しさん
NGNGやりたいことは、
class A;
class B
{
A a;
};
class A
{
B b;
};
ってこと?
0254デフォルトの名無しさん
NGNGC言語を勉強したことがないので見よう見まね。
コンパイルはできるのですが出力できません。
どちら様かご教授願います。
#include <stdio.h>
int k_s = 200000000; /*素数候補の初期値*/
int hantei;
int judge() /*素数かどうか判定する*/
{
int m = k_s;
int k_y = 2; /*約数候補、2から始める*/
do{
m = m / k_y;
k_y ++;}
while( !( m % k_y == 0 ) || !(k_y^2 > k_s) );
if( !( m % k_y == 0 || !( m == 2 ) ) ){/*あまりが0でない、つまり割り切れないとき*/
hantei = 1;/*素数とする。*/
}else{
hantei = 0;
}
}
int main (void)
{
do {
k_s ++;
judge();
}
while( !( hantei == 1 ) );
printf("%d", k_s);
}
0255デフォルトの名無しさん
NGNGclassB{
classC{
int m_i;
}m_c
} m_b;
}
こんなんか?
A a;
a.m_b.m_c.m_i = 0;
0256デフォルトの名無しさん
NGNG0257む
NGNG//ここでmethod_A()やa
//を使いたいのです。
}
class A{
B;
int a;
method_A();
}
0258デフォルトの名無しさん
NGNGA;
//ここでmethod_A()やa
//を使いたいのです。
}
0259デフォルトの名無しさん
NGNG#include "iostream"
int main()
{
using namespace std;
cout << 200000033 << endl;
return 0;
}
0260デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=207
0261デフォルトの名無しさん
NGNG#include <stdio.h>
int k_s = 200000000; /*素数候補の初期値*/
int judge(int k_s) /*素数かどうか判定する*/
{
int k_y = 2;/*約数候補、2から始める*/
for (; k_y * k_y < k_s; k_y++)
if (k_s % k_y == 0) return 0;
return 1;
}
int main (void)
{
do k_s++; while(judge(k_s));
printf("%d", k_s);
}
0262む
NGNG//ここでmethod_A()やa
//を使いたいのです。
}
class A{
B;
int a;
method_A();
}
class Aが大きいのでclass Bのメンバにはしたくないのです。
0263デフォルトの名無しさん
NGNGいやな設計だな。
BはAのメンバである必要性が本当にあるんか?
AとBが互いの領域を侵しあうようだと、クラス設計が怪しいぞ。
0264デフォルトの名無しさん
NGNG0265デフォルトの名無しさん
NGNGclass B{
public:
B(A *a){ pa = a; };
A *pa;
};
class A{
public:
~A(){ if(b) delete b; };
B *b;
Init(){ b = new B(this); };
};
int main()
{
A a;
a.Init();
return 0;
}
なんじゃこりゃあああああ
0266デフォルトの名無しさん
NGNG大きいからいやだって何でよ。
ポインタで持てば、インスタンスの大きさなんか関係ないじゃない。
0267む
NGNGclassBは描画処理を行っているんですが、
classAでの初期化時に値をaに保持させていて、
それを描画時に使いたいんです。
クラス設計が全然わからないので、
いっつもクラスにクラスをメンバとして持たせてしまっているのですが、
それがいけないのでしょうか…
0268デフォルトの名無しさん
NGNG初期化だけをするクラス?
何を初期化するの?
描画処理を行うクラス?
何を対象に描画するの?
OOPの基本中の基本は、「操作の対象」と「操作」を一つにまとめるとこから始まるんだぞ。
初期化がclass Aで、描画が class B なんていう状況はありえないと思うが。
0269デフォルトの名無しさん
NGNGAの初期化処理でBのデータを変更させる。
0270デフォルトの名無しさん
NGNG0271デフォルトの名無しさん
NGNG同じクラスでいいじゃん、と思うんだが
0272デフォルトの名無しさん
NGNGBが描画をするクラスで、そのために必要な情報をAが持っているのなら、
普通に考えて、BがAを持っているべきだよな。
0273デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=208&fi=no
0274デフォルトの名無しさん
NGNG設計の良し悪しはともかく、>>265が質問の答え。
ポインタとコンストラクタってどんなものか分かる?
0275デフォルトの名無しさん
NGNGint m = (l + r) / 2;
if ( l == r && a[m] != key ) return -1;
if(a[m] < key) return binary_search(m+1,r,a,key);
else if(a[m] > key) return binary_search(l,m,a,key);
return m;
}
上記の再帰的な2分探索法で
k回目で検索される可能性があるデータと配列の要素の添え字とを「すべて」表示するようなプログラムを教えてください。
お願いします。
0276デフォルトの名無しさん
NGNGint binary_search(int l,int r,int a[],int key,int k) {
int m = (l + r) / 2;
if( k == 0 ){
printf("%d回目:a[%d]=%d\n",k,m,a[m]);
}
if ( l == r && a[m] != key ) return -1;
if(a[m] < key) return binary_search(m+1,r,a,key,k--);
else if(a[m] > key) return binary_search(l,m,a,key,k--);
return m;
}
こんな感じじゃだめ?
0277デフォルトの名無しさん
NGNGご回答ありがとうございます。
試してみます。
0278デフォルトの名無しさん
NGNGk回目でチェックされる可能性がある配列の添え字とデータの「すべて」を
表示したいです。
たとえば一回目の検索では中央のデータと配列の添え字を1カ所表示し、2回目はもし検索すべきデータが大きい場合と小さい場合があるので、
表示は2箇所となります。ゆえにkステップ目では表示は2^(k-1)箇所必要になるのです。 検索すべきデータがm(中央値)より大きい場合と小さい場合のそれぞれに対して再帰をしてやると簡単だという周りはいっているのですが。。 すみませんお願いします。
0279デフォルトの名無しさん
NGNGこんなかんじ?binary_search関数と下のshow_all関数を見比べて、
動きを掴んでみてくらはい
#include <stdio.h>
void show_all(int l,int r,int a[],int k,int n){
int m=(l+r)/2;
if(k==n) printf("%d:a[%d]=%d\n",n,m,a[m]);
if(l==r) return;
show_all(m+1,r,a,k,n+1);
show_all(l,m,a,k,n+1);
}
#define K_NUM 5
#define ARRAY_LEN 1000
int main(){
int a[ARRAY_LEN];
int i;
for(i=0;i<ARRAY_LEN;i++) a[i]=i*2;
show_all(0,ARRAY_LEN-1,a,K_NUM,1);
}
0280279
NGNG> if(l==r) return;
この行は適当に直しといておくれ
0281デフォルトの名無しさん
NGNG0282デフォルトの名無しさん
NGNGint m = (l + r) / 2;
int ret1, ret2;
printf("%d回目:a[%d]=%d\n",k,m,a[m]);
if ( l == r && a[m] != key ) return -1;
else if(a[m] == key) return m;
k++;
ret1 = binary_search(m+1,r,a,key, k);
ret2 = binary_search(l,m,a,key, k);
if(a[ret1] == key)
return ret1;
else if(a[ret2] == key)
return ret2;
else
rerturn -1;
}
こんなのできました、表示はばらばらになるけど
合ってるかわからん
0283デフォルトの名無しさん
NGNGvoid func(int l, int r, int depth)
{
int m = (l + r) / 2;
if (depth < 1 || l > r)
return;
if (depth == 1) {
printf("%d\n", m);
return;
}
func(l, m-1, depth-1);
func(m+1, r, depth-1);
}
0284デフォルトの名無しさん
NGNG1.乱数を用いて、各要素に-1と1が不規則に現れるようなN次元ベクトルをP個生成するプログラムを作れ。
その為に、P×N次元の配列X[P][N]を用意せよ。ここではN=20、P=3としてこのプログラムを実行し、
実行に用いた乱数のseed値も記載すること。
2.上で作ったプログラムを発展させ、次の規則でN×N次元行列を計算するプログラムを作れ。
上で得られた記憶パターンから計算される20×20次元結合行列を以下の要領で表示せよ。
p-1
J[i][j]= Σ X[p][i]・X[p][j] (i≠jの場合)
p=0
i,j=0,1…N-1
J[i][i]=0 (対角成分は0)
3.神経回路のプログラミング。
N=100,P=10とする。0番目の記憶パターンの要素をM個反転させたパターンを初期状態に設定し、
連想記憶モデルの時間発展を追うプログラミングを書け。Mの値が10、20、30、40、50の5通りの場合に
ついてシュミレーションを行う。
残り2問は3の問題の数値を変更して行うものなので、なんとかなりそうなのですが、それまでの問題が出来ません。
C言語はさっぱりで、どんなものになりそうなのかすら想像出来ません。検索もかけてみたのですが良くわからず、
お手上げ状態です。どうか、お願いいたします。
0285デフォルトの名無しさん
NGNG並べて表示するにはどうしたらいいでしょうか?
0286デフォルトの名無しさん
NGNG1.
#include <stdlib.h>
#define P 3
#define N 20
static int X[P][N];
void foo1()
{
for (i = 0;i < P;i++){
for (j = 0;j < N;j++){
int n = rand() % 2;
if (n){ X[i][j] = 1;}
else{ X[i][j] = -1;}
}
}
}
0287デフォルトの名無しさん
NGNG283でじゅうぶんじゃない?
print文のところで深さをサーチ対象と同じ大きさの配列にでも記録するようにすればいい。
で、最後にお好みの方法で表示。
0288デフォルトの名無しさん
NGNGかわいそうなので、真面目にレス。
>do{
>m = m / k_y;
>k_y ++;}
>while( !( m % k_y == 0 ) || !(k_y^2 > k_s) );
ごめん、何をしたかったか見当がつかん、、
>if( !( m % k_y == 0 || !( m == 2 ) ) ){ /*あまりが0でない、つまり割り切れないとき*/
こうあるけど、mが素数であるためには、√m以下の全ての素数について、割り切れない必要があるわけで、
今のままだとこのif文は一回しか通らないから、明らかにおかしい。
√mを計算するの、ライブラリリンクとか説明するの面倒なので・・、√mは65536以下なのは明らかなので
(int型の最大の制限から)、65536以下の整数全てについて、割り切れないかを検証して、割り切れなけれ
ば素数と判定すればいい。
ということで、judge関数書き直し。
int judge() /*素数かどうか判定する*/
{
int k_y = 2; /*約数候補、2から始める*/
do {
// 一個でも割り切れる約数がみつかれば、hanteiを1として、関数judgeから抜ける(return)
if(k_s % k_y == 0) {
hantei = 1;
return ;
}
while( k_y < 65536 );
// ここまで来たならば、65536までのすべての数で割り切れないということ
hantei = 1;
}
とりあえず次は関数の引数とか、値を返す方法とか勉強しましょう。
0289288
NGNG恥かしいので死んできます
0290デフォルトの名無しさん
NGNGCのライブラリでは
rand() 関数は 0 から RAND_MAX の間の疑似乱数整数を返す。
srand()関数は、 rand()関数で作られる疑似乱数整数系列の新しい種として、その引数の値を使用する。
問題文の"乱数のseed値"とはsrand()に渡すパラメータだ
なお、rand() の実装は、下位のビットが上位のビットほどランダムになってはいない
場合があるので、注意が必要
(単純に rand() % 10 のような、下位のビットを用いる方法はよくない)
0291254
NGNGこれを参考に勉強させていただきます。
0292デフォルトの名無しさん
NGNG次のようなCプログラムを作成せよ
標準入力から学生数nを入力する。
一人分のデータ(学生番号no、英語の点数en、数学の点数mt、理科の点数sc)
を入力して、3科目の平均点avを計算し、
no,en,mt,sc,avを標準入力に出力する。
n人分のデータを繰り返して処理する。
0293デフォルトの名無しさん
NGNGscanf("%d",&n);
for(cnt=1; cnt<=n; ++cnt){
int no,en,mt,sc;
double av;
scanf("%d",&no);
scanf("%d",&en);
scanf("%d",&mt);
scanf("%d",&sc);
av=(en+mt+sc)/3.0;
printf("%d,%d,%d,%d,%f\n",no,en,mt,sc,av);
}
}
0294デフォルトの名無しさん
NGNG./a.out 30 unix.txt とすると30字ごとに改行するように文書整形を行うプログラムを作成しなさい.
ただし、文書中にタブコード(\t)があった場合はスペースに置き換えてもよい
0296デフォルトの名無しさん
NGNGおながいします
0297デフォルトの名無しさん
NGNGそれらしいのを書いてみた。全角文字には対応してない。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=210
0298デフォルトの名無しさん
NGNGjunizuke
k++
ten
juni
juni[j]
0299デフォルトの名無しさん
NGNG元の改行は無視でつか?
0300300
NGNG0301デフォルトの名無しさん
NGNG無視しますた。if (ch != '\n')の部分をとれば
きちんと反映されるし、改行があった場合は
また1文字目から数えなおすという仕様でも
ちょこっと変えればできるはず。
0302デフォルトの名無しさん
NGNGそのコードじゃ全然だめだが。
0304デフォルトの名無しさん
NGNG>無視しますた。
ダメだろ(w
>改行があった場合はまた1文字目から数えなおすという仕様でもちょこっと変えれば
こっちだ。直しとけ。
0305デフォルトの名無しさん
NGNG返答遅くなった。
そういう意味で「定数である必要はない」って注釈つけた。
ただし、main 先頭 points の生成前に設定してくれ。
NNUM の方もちゃんと NUM + 1 で設定しなおす。const もはずしてくれ。
ところで今更だけどちゃんと動いてくれてる?
0306デフォルトの名無しさん
NGNG自己レス。書き直しました。
本当は漏れもこうするつもりだったんだけど、ま、いいかってんでやめちゃったんだ。
他にも書き直した方がいいところとかあるけど、とりあえず。
ttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=56
0307デフォルトの名無しさん
NGNG> double distance(const Point& p) {
> return sqrt(((p.x-x)*(p.x-x))+(p.y-y)*(p.y-y)); // pow はさすがに無駄かと
> }
だったらsqrt()も無駄だと思われ
0308デフォルトの名無しさん
NGNG有難うございます。解決しました。
動作のほうは、いろいろと弄ってありますが特に問題ありません。
BCC32 MinGW 共にコンパイルできました
(CLだけは、timeの挙動でアウトみたいでした。ライブラリやヘッダが足りてないのかもしれません)
03091/2
NGNGpower.h(ファイル名)
/*power関数の宣言*/
int power(int x, int y);
power.c(ファイル名)
/*power関数の定義*/
int power(int x, int y)
{
int i, ans;
ans = 1;
for(i = 1; i <= y; i++){
ans *= x;
}
return ans;
}
03102/2
NGNG#include <stdio.h>
#include "power.h"
int main(void)
{
int num1, num2, ans;
num1 = 0; num2 = 0;
while((num1 < 1) || (num1 > 5)){
printf("1番目の整数を入力してください(1〜5)\n");
scanf("%d", &num1);
}
while((num2 < 1) || (num2 > 5)){
printf("2番目の整数を入力してください(1〜5)\n");
scanf("%d", &num2);
}
ans = power(num1, num2);
printf("%dの%d乗は%dです\n", num1, num2, ans);
return 0;
}
03112/2 の続き
NGNG8-5.cをコンパイルするとエラーが
8-5.obj(8-5.c): Undefined symbol: power_
とあり、マニュアルでこのエラーを調べると
file: Undefined symbol: name
file中で参照されているシンボルnameはどこにも定義がありません。
と、ありますがどうすればよいかわかりません。
どうすれば解決するのでしょう?
0312デフォルトの名無しさん
NGNGbcc32 8-5.c power.c
gcc -o 8-5 8-5.c power.c
0313デフォルトの名無しさん
NGNGすみません、訳がわかりません。。。
0314デフォルトの名無しさん
NGNG統合環境なんだろうなぁ…。
OSの種類、コンパイラのバージョン、統合環境の使い方を
メモして、当該スレッドへ行ってみるが吉。
0315デフォルトの名無しさん
NGNG有難うございます。
他スレで聞いてみます。
0316デフォルトの名無しさん
NGNG{
x=(double)rand()/RAND_MAX;
y=sqrt(1-x*x);
a+=y;
sgl_color(col1);
sgl_circle(x,y,0.005);
}
の3行目と5行目の解説を教えてください
0317デフォルトの名無しさん
NGNG3行目は変数への代入と除算について解説する。
5行目は加算代入演算子について解説する。
0318デフォルトの名無しさん
NGNG(double) で、cast して RAND_MAX で割ると、0 から 1 までの乱数を返す。
a += y;
は、
a = a + y;
と同じ。a の値を y 増やす。
0319319
NGNGhttp://do.sakura.ne.jp/%7Ejunkroom/cgi-bin/megabbs/lounge/index.html#2
0320319
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=212
0321デフォルトの名無しさん
NGNG間違ってるところはあります。というか、把握している問題点を書けよ。
0322319
NGNG0323お願いします
NGNGf(f(x + 11) otherwise
問1 f(x)を計算する関数(プログラム)を再帰的に定義せよ。そして整数データを
読み込みその値に対する関数 f の値を計算して出力するCプログラムを作成せよ。
問2 f(x)を計算する関数(プログラム)を再帰なしで定義したい。そして整数データを
読み込みその値に対する関数 f の値を計算して出力するCプログラムを再帰なしで作成せよ。
この2つ、できるだけ詳しくお願いします。
0324デフォルトの名無しさん
NGNGint main (void){
int i;
char *p[3];
for(i=0;i<3;i++){
gets(p[i]);
printf(p[i]);
}
return 0;
}
これを実行するとエラーが出て文字列を代入できません。
どなたかお願いします。
0325324
NGNGすいませんでした・・。
0326デフォルトの名無しさん
NGNG答1
f(x)
{
return x > 100 ? x - 10 : f(x + 11);
}
答2
f(x)
{
while (x <= 100)
x += 11;
return x - 10;
}
プログラムエントリ
#include <stdio.h>
main()
{
char b[4096];
fgets(b, sizeof b, stdin);
printf("%d", f(atoi(b)));
}
0327319
NGNG0328お願いします
NGNGプログラムエントリとは何でしょうか?
0329デフォルトの名無しさん
NGNGmainが共通だからそうかいただけ。
問1のf()とmain 問2のf()とmainを組み合わせてコンパイルすればいい。
0330デフォルトの名無しさん
NGNG上のような文はどういう意味なのでしょうか?。
正しいのでしょうか?。*を間違って2つ打ったのかな?。
0331デフォルトの名無しさん
NGNGshortへのポインタへのポインタとしてabcを宣言している。
0332デフォルトの名無しさん
NGNG課題:すごろくを作れ
なんですが、初心者の私にはなにをどう始めるのかさえさっぱりな
状況です・・・。手元の資料、ネット上で調べてみても少しも進まないので
こちらでお願いすることにしました。
是非お願いしますm(__)m
0333デフォルトの名無しさん
NGNGすごろくのコースは有向グラフとして表せる。
コマの位置はグラフのノードによって表せる。
とりあえずここから始めてみてはどうかな。
0334お願いします
NGNGちょっとわかりづらいのですが・・・ もうちょっとおねがいできますか??
0335デフォルトの名無しさん
NGNG仕様
1.始めに人数を入力(最大4名)
2.1で入力した人数分の名前を入力(名前の最大文字数は19文字まで)
※'\0'含めて20文字
3.1人ずつ10フレームまでの得点を入力
4.その際に”○フレーム 1投目 : ”と表示させること
5.人数分の得点が入力し終わったら
名前 : 5( 2) 7( 2) 10( ) 3( 7) ・・・・・・ 2( 3)( ) Total :110
と言う形で全員分の得点を表示させよ。
さっぱりわからんです・・・
0336デフォルトの名無しさん
NGNG>>334 超基本形↓rand,srandのツッコミ禁止
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(){
int goal=20;int step=0;int s;
srand((unsigned)time(NULL) % RAND_MAX);
while (step!=goal){
s=rand()%6+1;step+=s;
printf("%d コマ進んだ\n",s);
if(step>goal) {
step=goal*2-step;
printf("行って戻って、");
}
printf("残りは%d コマ\n\n",goal-step);
}
printf("ゴールしたらしい\n");
return 0;
}
0337デフォルトの名無しさん
NGNGi=1〜1.999までをdv[0]〜に格納し、それらの総和の平方根を求めよ。
ヒント #include<math.h>が必要。printfには%fを用いる。
・・・だそうです。大学入って予備知識なしの状況で
「やれ!」と言われました。教科書に[]の配列?の詳しい使い方載ってないです。
for文とsqrtを使うのはわかるのですが・・・。
ご指導よろしくお願いします。
環境:何とかLinuxのときもあればSolarisのときもあります。
0338アベレージ70くらい
NGNGとゆーのは冗談で、ボーリングのルールとか得点とかを調べるべきですな。
0339デフォルトの名無しさん
NGNGint score[4][20];
char name[4][20];
int player;
//プレイヤーの人数を聞き、playerに格納
int i,j,k;
for(i=0;i<player;i++){
//名前を聞き、name[i]に格納
}
取っ掛かりだけ。
点数入力部はplayer*10フレーム*2投でforループが3重になる。
とりあえず点数計算は後回しで倒した本数を表示できるところまで頑張れ。
0340デフォルトの名無しさん
NGNG取っ掛かりサンクスコ
提出まで相当日があるからじっくりやってみます。
0341デフォルトの名無しさん
NGNG教えて下さい。お願いします。例えばopqrを入力してrqpoを出力する。
0342デフォルトの名無しさん
NGNGアンダースコアは空白文字に置換すること。
#include <math.h>
#include <stdio.h>
#define RESOLUTION 1000
int main()
{
____double dv[RESOLUTION];
____double result = 0.;
____int i;
____
____for (i = 0; i < RESOLUTION; ++i) {
________dv[i] = 1. + (double)i / RESOLUTION;
________result += dv[i];
____}
____result = sqrt(result);
____printf("%f\n", result);
____return 0;
}
0343お願いします
NGNGある1文字がその文字列に存在するか判定し、存在すればその文字列の最初
から何番目かを出力しなければ無いと出力しなさい。
* 例えば"cherry"と入力し、この文字列に"r"が存在するので4番目
と出力します。これができたら、複数存在する場合には、
複数の位置を出力できるようにしなさい。
* 例えば"cherry"に'r'が4番目と5番目と出力します。
0344339
NGNG最終フレーム、ストライクのときは+2投、スペアで+1投か。
11フレーム分用意して、点数計算・出力時にもう一捻りだ。
簡単なようでいやらしい問題だな。
0345デフォルトの名無しさん
NGNG#include <stdio.h>
#include <math.h>
int main(void)
{
int i;
static double dv[1000];
double sum;
/* dv[0]〜に、1.000〜1.999を入れる */
for (i = 0; i < 1000; i++)
dv[i] = 1.000 + i / 1000.0;
/* dv[0]〜の総和を求める */
for (i = 0, sum = 0; i < 1000; i++)
sum += dv[i];
/* 総和の平方根を出力 */
printf("%f\n", sqrt(sum));
return 0;
}
0346332
NGNGありがとうございます。
それでもよく分からないのですが;、有向グラフやグラフのノードなど
おっしゃられたものを調べて少しでもやってみることにします!
0348デフォルトの名無しさん
NGNG#include <stdio.h>
int main(void)
{
char str[256];
int cnt;
printf("Input string : ");
scanf("%s",&str[0]);
for(cnt = 0; str[cnt] != '\0'; cnt++);
for( ; cnt>0; cnt--)
{
printf("%c",str[cnt-1]);
}
return 0;
}
0349デフォルトの名無しさん
NGNG#include <string.h>を使えば
cnt=strlen(&str[0]);
とすることも可能
0350デフォルトの名無しさん
NGNG#include <string.h>
#define BUFSIZE 1024
/* ******************************
* 戻り値 正常 = 0, エラー = 0以外
******************************* */
int reverse(char *buf, size_t size){
char tmp;
int left = 0;
int right = size - 1;
if(!buf) return -1;
if(left > right) return -1;
for( ; left < right; left++, right--){
if(buf[left] == buf[right]) continue;
tmp = buf[left]; buf[left] = buf[right]; buf[right] = tmp;
}
return 0;
}
/* main **************************/
main(){
char buf[BUFSIZE];
fputs("input > ", stdout);
fgets(buf, BUFSIZE, stdin);
reverse(buf, strlen(buf) - 1);
printf("result > %s", buf);
}
0351デフォルトの名無しさん
NGNG0352デフォルトの名無しさん
NGNG#include <stdlib.h>
#include <time.h>
int main(void)
{
int i, ans, num, j;
printf("数当てゲーム\n 100までの数字です。\n");
srand((unsigned) time(NULL));
num = rand()%100;
for(i=0, j=5; i<5; i++, j--)
{
printf("%d回目の数字を>>> ", i+1);
scanf("%d",&ans);
if( j == 1){
printf("残念 答えは %-5dでした。\n\n", num);
break;
}
0353352
NGNGprintf("%-2dは小さいです\n",ans);
printf("チャンスはあと%d回\n\n", j-1);
}
else if( num < ans ){
printf("%-2dは大きいです\n",ans);
printf("チャンスはあと%d回\n\n", j-1);
}
else if( num == ans){
printf("********\n 大正解\n********\n\n");
break;
}
}
return 0;
}
答えが近くなれば(+-5くらい)「おしい!」とだしたいのですがどなたかいいアイデアがあれば教えてください よろしくおねがいします
0354デフォルトの名無しさん
NGNG0355デフォルトの名無しさん
NGNG数あてゲーム
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=57
0356355
NGNGmainの中の最初のfor文の継続条件は
i < times
ではなく
i <= times
でした。
0357デフォルトの名無しさん
NGNG助けてください(泣)
/******* ↓は人間vsCPUの 先攻・後攻を決める関数 *******/
void before_after(int& myrest){
if(rand()%2) myrest=1; /* 後攻は一回休み */
}
これを人間3人でやる場合ってどう応用したら良いのでしょうか??
0358デフォルトの名無しさん
NGNGありがとうございます
初心者なりにも参考になりました。
355さんはさっきプログラムを書いてくださったのですか・・・・
本当にありがとうございます
私は2日かかってまだ出来ていないのですぐさま書けるなんてすごい驚いてます
がんばります・・・
私なりに考えた末こうしてしまったことを報告しておきます
else if( num == ans +3 || num == ans +2 || num == ans +1)/* 答えより+3以内なら*/
ありがとうございました
0359デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=58
0360デフォルトの名無しさん
NGNG不等号使ったほうがいいべ。
else if( (num - ans) >= -3 && (num - ans) <= 3 )/* 答えより±3以内*/
0361デフォルトの名無しさん
NGNGそれから、条件判定を連続でやるときは、厳しい条件から判定したほうがやりやすい。
if( 大正解 ){
....
プログラム終了
}
if(答えとの差が ±3以内){
...
}
if(答え>入力値){
...
}
else { /* 答え<入力値 */
...
}
0362デフォルトの名無しさん
NGNG0363デフォルトの名無しさん
NGNGという関数を定義した時に呼び出すには、
def(&rei)
で良いのでしょうか?。def(&&rei)とかでは、なくて。
0364デフォルトの名無しさん
NGNG0365363
NGNG0366デフォルトの名無しさん
NGNG0367デフォルトの名無しさん
NGNGだめ。
0368デフォルトの名無しさん
NGNG0369デフォルトの名無しさん
NGNG0370デフォルトの名無しさん
NGNG{
char s[256];
sprintf(s, "copy /B %s+%s %s", argv[1], argv[2], argv[3]);
system(s);
}
0371デフォルトの名無しさん
NGNGてめーでやれやカス。
0372デフォルトの名無しさん
NGNGそうか、大変だな
0373デフォルトの名無しさん
NGNGいやー、そりゃまた難題をふっかけられましたな。
同情はしてあげますが、プログラムが組めなくてなー。
役に立てずに済まんな。
0374デフォルトの名無しさん
NGNG凄い高度なことをやるんですね。
さぞかし素晴らしい学校に通っておられるんですね。
敬服します。
0375デフォルトの名無しさん
NGNG止まった点Xの分布のグラフを求めるプログラムを作りなさい。
ヒント
出力{Xの平均値、Xの標準偏差}
入力「歩く人の数N人、歩数n歩、左に進む確立p(右はq=1−p)、
乱数の種 ISEED」
グラフィックス「歩く人の歩いた軌跡(N人分)、Xの分布のグラフ、
平均値の位置、標準偏差の位置」
誰かこの問題のプログラムを教えてください。
お願いします。
0376デフォルトの名無しさん
NGNGあなたはこの問題に対してなにをどうしたらいいのかさっぱりわからないの?
もしそうなら、あなたはこの問題を解くまでのレベルには達していないので
本を読んで勉強しなおしてください
そうでなかったら、どこまで考えたのか書いてみて
この問題のどこがわからなくて困っているのかがわからなければ
教えようがないでしょ
宿題を丸投げしようと思ったんなら
逝ってよし
0377デフォルトの名無しさん
NGNG0378デフォルトの名無しさん
NGNGint mc91(int n)
{
if (n>100) {
return n-10;
}
else {
return mc91(mc91(n+11));
}
}
int main()
{
int n;
int mc;
printf("Enter a number: ");
scanf("%d",&n);
mc = mc91(n);
printf("mc91(%d)=%d\n",n ,mc );
return 0;
}
このプログラムを再帰無しで作り変えろ。
という問題です。お願いします教えてください。
0379デフォルトの名無しさん
NGNG0380デフォルトの名無しさん
NGNG{
int mc;
int i;
for(i=0;i<200;i++){
mc = mc91(i);
printf("%d:%d ",i ,mc );
}
return 0;
}
まずこれで各数字に対しmcの返す値を観察してみな。
0381デフォルトの名無しさん
NGNGすいませんどういうことでしょうか?
0382380
NGNG同じ入力に同じ結果を返すのならば、内部でどんな計算をしても(しなくても)「作り変え」た事になるはず。
0383380
NGNG#include <stdio.h>
int mc91(int n)
{
if (n>100) {
return n-10;
}
else {
return mc91(mc91(n+11));
}
}
int main()
{
int mc;
int n;
for(n=0;n<200;n++){
mc = mc91(n);
printf("mc91(%d)=%d\n",n ,mc );
}
return 0;
}
これをコンパイルして実行しろって事。
0384デフォルトの名無しさん
NGNGたびたびありがとうございます。returnを使うことは再帰を使っている事にはならないんでしょうか?
0385デフォルトの名無しさん
NGNG>>383は答えじゃなくて、
mc91()がどんな動きをするか見ろってことでしょ?
0386デフォルトの名無しさん
NGNGプログラムを再帰無しで完全に書き換え、値もでるようにしたいのです。できますか?
すいません、最初から言っておくべきでした・・・。
0387デフォルトの名無しさん
NGNG| ノ u ヽ
/ ● ● |
| u ( _●_) ミ
彡、 |∪| 、`\ 後出しすんなクマー
/ __ ヽノ /´> )
(___) / (_/
0388デフォルトの名無しさん
NGNG下のプログラムでいいのでしょうか?
#include<stdio.h>
main()
{
int box[7],i,j,max,suuji;
for(i=0;i<=6;i++){
scanf("%d",&a);
max=box[i];
suuji=i;
for(j=i+1;j<=7;j++){
if(max>box[j]){
max=box[j];
suuji=j;
}
}
box[suuji]=box[i];
box[i]=max;
}
for(i=0;i<=7;i++)
printf("%d ",data[i]);
printf("\n");
}
0389デフォルトの名無しさん
NGNG本当にすいません。。できればお願いいたします。
0390デフォルトの名無しさん
NGNG0391デフォルトの名無しさん
NGNG最初に7個の数字を入力してもらって
その7個の数字を比較して
小さい数字から出力するようにしたほうがいいと思うよ
0392デフォルトの名無しさん
NGNG383を実行してみた?
実行してみたのならばどう置き換えればいいかなんて一瞬でわかると思うけど。
100以降は単に-10だし、それ以前は一目瞭然。
>388
scanf("%d",&a)はscanf("%d",box+i)とするのが正しい。ポインタに絡む話なんで初心者にはきついか。
というか、まずはコンパイルしてみれ。
0393デフォルトの名無しさん
NGNG#include<stdio.h>
void insertion(int *s, int n){
int i, j, v;
for (i = 1; i < n; i++){
v = s[i];
for (j = i; j > 0 && s[j - 1] > v; j--)
s[j] = s[j - 1];
s[j] = v;
}
}
int main(void)
{
int box[7], i;
for (i = 0; i < 7; i++){
printf("%d番の数目",i+1);scanf("%d", &box[i]);
}
insertion(box,7);
puts("");
for (i = 0; i < 7; i++) printf("%d\n",box[i]);
return 0;
}
0394デフォルトの名無しさん
NGNG#include <stdio.h>
#include <stdlib.h>
int cmp(const void *i, const void *j){
int *a = (int *)i;
int *b = (int *)j;
return (*a- *b);
}
int main(){
int i, work, box[7];
for(i=0;i<=6;i++){
scanf("%d",&work);
box[i] = work;
}
qsort(box, 7, sizeof(int), cmp);
for(i=0;i< 7;i++)
printf("%d ",box[i]);
printf("\n");
return 1;
}
0395デフォルトの名無しさん
NGNG入力は正の数値として,データの終りを0 の入力
0396デフォルトの名無しさん
NGNG{
int d, v=0;
while (std::cin >> d) {
if (d == 0) break;
v +=d;
}
std::cout << v;
}
0397デフォルトの名無しさん
NGNG0398デフォルトの名無しさん
NGNGくわしく教えてください
0399デフォルトの名無しさん
NGNGint tmp,sum=0;
main(){
while(fscanf("%d", &tmp) > 0 ) {
if( tmp == 0 ) break;
sum+= tmp;
}
printf("sum=%d\n", sum);
}
0400デフォルトの名無しさん
NGNG0401デフォルトの名無しさん
NGNGまるぽ。
0402デフォルトの名無しさん
NGNGをいをいまじかΣ(゚∀゚;)
0403デフォルトの名無しさん
NGNG#include<stdio.h>
int main(void){
int tmp=1,sum=0;
while(tmp!=0){
scanf("%d",&tmp);
sum+=tmp;
}
printf("sum=%d\n", sum);
return 0;
}
0404デフォルトの名無しさん
NGNG0405デフォルトの名無しさん
NGNGイヤン
0406デフォルトの名無しさん
NGNG乱数をn個生成し、それらをすべて配列に格納する。
その後、配列rの値をすべて表示する。
さらに、次のことを繰り返す(i=0,1,2,...,n-2)。
r[i]とr[i+1]を比較し、
r[i] > r[i+1]ならr[i]とr[i+1]を交換、
r[i] <= r[i+1]ならなにもしない。
上記を繰り返すと、r[n-1]に最大値が求められている。
最後に、配列rの値をすべて表示する。
○課題5
乱数をn個生成し、それらをすべて1次元配列rに格納する。
その後、配列r中のn個の値を小さい順に並べ替え、並べ替え後の配列rの値をすべて表示する。
nの値は自由。表示のしかたも自由。
0407デフォルトの名無しさん
NGNGconst int n=10;
int r[n];
int index;
int max = 0;
int j;
randomize();
cout << "0 から 99 までの乱数を生成して配列へ格納" << endl;
for(int i=0; i<n; i++)
{ cout << (r[i] = rand() % 100) << " "; }
cout<<'\n';
max=r[0] ;
for (int j=1; j<n;j++) {
if(max<r[j]) {
max=r[j] ;
index=j;
}
}
cout << "最大値は " <<"r["<<index<<"]の"<< max << "です。";
cout << "最大値r["<<index<<"]とr["<<n-1<< "]を交換すると。";
r[j]=r[n];
r[n-1]=max ;
for(i=0;i<n;i++)
cout<<r[i]<<" ";
getch();
return 0;
}
で、↑は4の途中なんですが、どうしてもうまくいきません。
なんか、繰り返しがうまくいかないのか・・・。初歩的な問題だと思いますが、お願いします。
0408デフォルトの名無しさん
NGNGでけた。久しぶりに頭使ったな。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=59&fi=no
0409408
NGNG意味不明なこの↓コメントは、無視してください。
>> // 現在のスタックpopしてして関数処理
0410デフォルトの名無しさん
NGNG>どうしてもうまくいきません。
何がうまくいかないのかなー。
r[j]=r[n];
って意図的?
あと、課題4で書いてあるとおりに値を交換して最大値を求めないと
出題者の意図を汲んだ回答にはならないような気がするよ。
0411デフォルトの名無しさん
NGNGゼロの正しい表現として扱われる。そうした文字を入力に戻すように、このプログラムを直した上でmain を付けて、動作するプログラムを作れ。
っという問題がわかりません。教えてください
#include <ctype.h>
int getch(void);
void ungetch(int);
int getint(int *pn)
{
int c, sign;
while (isspace(c = getch()))
;
if (!isdigit(c) && c != EOF && c != '+' && c!= '-'){
ungetch(c);
return 0;
}
sign = (c =='-') ? -1: 1;
if (c == '+' || c == '-')
c = getch();
for (*pn = 0; isdigit(c); c = getch())
*pn = 10 * *pn + (c - '0');
*pn *= sign;
if (c != EOF)
ungetch(c);
return c;
}
0412408
NGNG0413デフォルトの名無しさん
NGNGお察しのとおり r[j]=r[n]; で実行時にエラーが出るわけです。
値を交換ですか・・・。 なんとなくイメージはつかめるんですが、別の場所に格納するんですね。
0414デフォルトの名無しさん
NGNG「入力しなおして下さい」と表示するプログラムの作り方を教えてください。
0415デフォルトの名無しさん
NGNG0416デフォルトの名無しさん
NGNG{
if (s[0] == '-' || s[0] == '+')
s++;
while (isdigit(*s))
s++;
return *s ? 0 : 1;
}
0417デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=57&fi=no
ここにあったよ。その部分だけ抜き出すと、こんなかんじ。
------------------------------------------------------------------
#include <stdio.h>
#include <ctype.h>
typedef enum {FALSE=0, TRUE=1} BOOLEAN;
/* 文字列が数字だけ(0-9)で構成されているかどうか */
BOOLEAN IsNumberString(char *s){
for( ; *s && *s != '\n'; s++){
if(!isdigit(*s)) return FALSE;
}
return TRUE;
}
#define BUFSIZE 256
main(){
char buf[BUFSIZE]; /* ワーク用 */
int input;
/* ユーザ入力。入力値が数値以外ならやり直し */
for(;;){
printf("%d 回目の数字を >> ", i);
fgets(buf, BUFSIZE, stdin); /* 文字列で取得 */
if(IsNumberString(buf)) break;
else printf(" 入力しなおしてください\n");
}
}
------------------------------------------------------------------
0418414
NGNG格納の仕方が悪いのでしょうか?
0419デフォルトの名無しさん
NGNGK&Rそのままじゃん。
第二版のP96 にあるgetch() ungetch() を書かないと動かせないよ。
0420デフォルトの名無しさん
NGNGとりあえず課題4だけ
課題5は問題の意味がよくわかりません・・・
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
const int NUM = 10;
int main(){
int n = NUM;
/* int r[n]じゃコンパイルできなかった・・・ */
int r[10];
int i, tmp;
srand(time(NULL));
for(i = 0; i < n; i++) r[i] = rand();
for(i = 0; i < n; i++) printf("%d ", r[i]);
printf("\n\n");
for(i = 0; i < (n - 1); i++){
if(r[i] > r[i + 1]){
tmp = r[i + 1];
r[i + 1] = r[i];
r[i] = tmp;
}
}
for(i = 0; i < n; i++) printf("%d ", r[i]);
return 0;
}
0421414
NGNGありがとうございます。
やはり、r[j]=r[n];がありえなかったのですね。
0422デフォルトの名無しさん
NGNG>とりあえず課題4だけ
>課題5は問題の意味がよくわかりません・・・
課題4は最大値だけ端にくるんだろ?
課題5は全部ソート汁!
0423420
NGNGほい課題5、最初問題の意味がわからなかったが、よく読むとただのソートですかい・・・
悩んで損した・・・
ソートの効率はあまり良くない
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
const int NUM = 10;
int main(){
int n = NUM;
/* int r[n]じゃコンパイルできなかった・・・ */
int r[10];
int i, j, tmp;
srand(time(NULL));
for(i = 0; i < n; i++) r[i] = rand();
for(i = 0; i < n; i++) printf("%d ", r[i]);
printf("\n\n");
/* 基本挿入法 */
for(i = 0; i < n; i++){
for(j = i - 1; j >= 0; j--){
if(r[j] > r[j + 1]){
tmp = r[j]; r[j] = r[j + 1]; r[j + 1] = tmp;
}else{
break;
}
}
}
for(i = 0; i < n; i++) printf("%d ", r[i]);
return 0;
}
0425デフォルトの名無しさん
NGNGnが定数じゃないから当たり前
NUMなんて使わないで素直に const int n = 10; にしとけよ
0427デフォルトの名無しさん
NGNG>>nが定数じゃないから当たり前
そんな古いコンパイラは捨ててしまえ。
0429デフォルトの名無しさん
NGNGconstで無理ってことはC++じゃないのか。
Cだと定数式のみ。#defineしてくれ。
bcc32でも拡張子がcppならC++としてコンパイルするよ。
0430デフォルトの名無しさん
NGNGここのソースですがコンパイルがとうりません。
何とか頭を捻っているんですが、コンパイルがとうるようなソースコードになるよう
ご教授願えませんでしょうか?
0431デフォルトの名無しさん
NGNGせめてコンパイラと環境、エラーメッセージくらい書こうとは思わんか?
0432デフォルトの名無しさん
NGNGエラーが起こっている個所に対してもうちょっと頭をひねろう。
括弧の対応がなっていない。
エディタによっては括弧対応を強調表示したり、検索できるものがあるので
そういうのを使うといいかもね。
0433デフォルトの名無しさん
NGNG『プログラミング言語C』を教本としているなら、
『Cアンサーブック』も買おう。
0434デフォルトの名無しさん
NGNG三項演算子
0435デフォルトの名無しさん
NGNG日本語の勉強もしよう。
「とうる」なんて言葉はないよ。
0436デフォルトの名無しさん
NGNGエラーが出てしまいます。どのようにすればよいでしょうか?
struct list{
int value;
struct list *next;
} typedef List;
void PushBack(int val, List *lp){
List *nl;
nl = (List *)malloc(sizeof(List));
nl->value = val;
nl->next = NULL; //新しいリスト{val,NULL}を作る
for(;;){
if(lp->next == NULL) break;
else lp = lp->next; //Listの最後はNULLなのでNULLがくるまで次の構造体を調べる
}
lp->next = nl; //リストの最後のポインタを新しく作ったリストへ繋げる
}
main(){
int val;
List *head = NULL;
printf("Enter value ");
scanf("%d",&val);
PushBack(val,head);
return;
}
0437デフォルトの名無しさん
NGNG#include <stdio.h>
#include <stdlib.h>
int
main()
{
int a[ 1000 ];
int i;
int j;
int c;
for ( j = 0; j < 1000; j++ ) a[ j ] = 0;
a[ 0 ] = 1;
for ( i = 0; i < 1000; i++ ){
c = 0;
for( j = 0; j < 1000; j++ ){
a[ j ] = a[ j ] * 2 + c;
if ( a[ j ] >= 20 ){
a[ j ] = a[ j ] - 20;
c = 2;
} else if ( a[ j ] >= 10 ){
a[ j ] = a[ j ] - 10;
c = 1;
} else {
c = 0;
} /* if */
} /* for */
} /* for */
for ( j = 999; j >= 0; j-- ) printf( "%1d", a[ j ] );
printf( "\n" );
return ( 0 );
} /* main */
0438デフォルトの名無しさん
NGNGtypedef struct list{
int value;
struct list *next;
} List;
>>437
そんなのを参考にしなければいけないのか・・・
0439デフォルトの名無しさん
NGNGありがとうございます。でも、ダメでした。
コンパイルだけは通るので(実行したらエラーが出て止まりますが)、そんな間違いではないと思うのですが…
0440363
NGNGこういうポインターへのポインターなんですが、なんでこんな事をするの
でしょうか?。なにが便利なんでしょうか?。
プログラムを読んでも、よく分からん。抽象的な質問ですいません。
0442デフォルトの名無しさん
NGNGNULLポインタを参照している。
>List *head = NULL;
0443442
NGNGheadの指すべき領域を確保せずに、なぜかNULLポインタとして初期化している。
0444デフォルトの名無しさん
NGNGshortがほしけりゃ、short変数の場所(変数へのポインタ)を関数に教えてやる
short rei;
def(&rei);
if (rei == ... ) {}
shortへのポインタがほしけりゃ、short*変数へのポインタを関数に教えてやる
short *rei;
def(&rei);
if (rei[0] == ...) {}
配列を返して欲しいときは、ポインタのポインタを使う必要があるということだ。
0445デフォルトの名無しさん
NGNGありがとうございます。
List *head;
head = (List *)malloc(sizeof(List));
head->value = NULL;
head->next = NULL;
と書き直したら、うまくいきました。
0446デフォルトの名無しさん
NGNG0447前スレ946
NGNG//--------------------------------------------------------------------------------------
//
//以下のプログラムを作成してください。
//問題10の関数をさらに完全なものとしてください。
//int Calc(int calc , int a, int b, int *ans)
//�@返り値を付加する。ただし、返値=0なら正常、返り値=-1ならエラーとなります。
//�A計算方法をもっとわかりやすくするため、#define定義にしてください。
//
//--------------------------------------------------------------------------------------
http://www1.linkclub.or.jp/~yon/haha/saru-img/saru0784.c にageてあります。
お暇な方よりしくおながいします。
0448デフォルトの名無しさん
NGNG一つだけやってみるので、もうちょっとがんがれ
#define DIV 3
int Calc(int calc, int a, int b, int *ans)
{
int result = 0;
switch (calc) {
case DIV:
if(b == 0) result = -1; /* division by zero */
else *ans = a / b;
break;
default :
printf("認識できない数字です。\n");
result = -1
break ;
}
return result;
}
0450前スレ946 ◆l5YBiGlIU.
NGNG>>448
いちおう、できますた。くどいプログラムなんで直す必要がありそうですが。
ttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/lounge/file/1027870433_214/prog011.c
0451デフォルトの名無しさん
NGNGCalc関数の第一引数をADDとか、MULで置き換えろって事でしょ。
1とか3とかではなく、SUB、DIVと書いてあれば、意味が分かりやすいから。
var = 0 ;
Calc(var, x, y, &z) ;
ではなく、
var = ADD;
Calc(var, x, y, &z) ;
とするか、
Calc(ADD, x, y, &z) ;
のようにするか。
0452デフォルトの名無しさん
NGNG式
#endif
とプログラムの中ほどにあったら、式を実行しないという事ですか?。
コメントのかわりかな。
0453デフォルトの名無しさん
NGNGプリプロセッサによって取り除かれ、その部分はコンパイルすらされません、というか、
コンパイラまで伝わりません。
0455前スレ946 ◆l5YBiGlIU.
NGNG0456デフォルトの名無しさん
NGNGコメントのネスト(/* /* */ */)は普通エラーになるから、そういうとき代わりに#if 0を使う
0457質問
NGNGヘッダファイル
typedef enum token{
EMPTY,
EPSILON,
AST,
CONC,
LPAR,
RPAR,
VERT,
LETTER,
EOREG,
} token;
extern int debug;
extern char *reg_string;
extern void fatal_error(char *s);
extern token curr_token;
extern char token_val;
extern int lexer(void);
extern void get_token(void);
extern void print_token(token tok, int val);
0458質問
NGNG#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>
#include "calc1.h"
void fatal_error(char *s);
int debug = 0;
char* reg_string;
int main(int argc, char* argv[])
{
debug = 1;
if(argc != 2)
fatal_error("no argument");
reg_string = argv[1];
if(debug)
printf("Regular expression: %s\n",reg_string);
lexer();
return 0;
}
void fatal_error(char *s)
{
fprintf(stderr, "%s\n", s);
exit(1);
}
0459質問
NGNG#include <stdio.h>
#include <ctype.h>
#include "calc1.h"
token curr_token;
char token_val;
int lexer()
{ do{ get_token();
}while (curr_token != EOREG);
return 0;}
void get_token()
{ char c;
while ( c = *reg_string )
{ switch (c){case '\\':++reg_string; if ( c == '0' )
curr_token = EMPTY;
else if ( c == 'e')
curr_token = EPSILON;
else curr_token = LETTER;
break;
case '*': curr_token = AST; break;
case '.': curr_token = CONC; break;
case '(': curr_token = LPAR; break;
case ')': curr_token = RPAR; break;
case '|': curr_token = VERT; break;
case '\0': curr_token = EOREG; break;
default: curr_token = LETTER; break;}
reg_string++;}
if (debug)
print_token(curr_token,token_val);
}
0460質問
NGNGvoid print_token(token tok, int val)
{
switch (tok){
case EMPTY: printf("EMPTY\n");
break;
case EPSILON: printf("EPSILON\n");
break;
case AST: printf("AST\n");
break;
case CONC: printf("CONC\n");
break;
case LPAR: printf("LPAR\n");
break;
case RPAR: printf("RPAR\n");
break;
case VERT:printf("VERT\n");
break;
case EOREG: printf("EOREG\n");
break;
case LETTER: printf("LETTER(%c)\n",val);
break;
default: fatal_error("Invaild token");
break;
}}
これらをコンパイルして走らせても無限ループにはまるんですが
どこを改善すればいいのでしょうか
0461デフォルトの名無しさん
NGNG0462デフォルトの名無しさん
NGNG汚い、読みづらい。2chの使用上インデントが反映されないのは仕方がないが、
改行位置をなんとかしろ。
で、void get_token()内
while ( c = *reg_string )
c に0が代入されたとき、whileブロックには入らないから
case '\0': curr_token = EOREG; break;
が実行されることはない。
0463デフォルトの名無しさん
NGNG最終的には正規表現で文字列のパターンマッチをさせるのが目的のようだが。
・文字ごとに種類を定めたいのだとすると、get_token()でwhile()する意味がない。
・ふつう、tokenは、ある文字の連なり、つまり文字列を指すんだが。意味が通っていない。
・正規表現をパスさせるのが目的なのか、要素ごとに分けるのかも良くわからん。
>>462 漏れは
$ indent -kr -ip4 -ts1000
したよ。
0464デフォルトの名無しさん
NGNG期待してる動作かどうかはわからないですけど。
void get_token ()
{
char c;
while ( 1 ){ /* <-ここ */
c = *reg_string; /* <-ここ */
switch (c) {
case '\\': /* <-これはこのままでいいの? */
++reg_string;
if (c == '0')
curr_token = EMPTY;
else if (c == 'e')
・
・
・
case '\0':
curr_token = EOREG;
break;
default:
curr_token = LETTER;
break;
}
if(curr_token == EOREG ) break; /* <-ここ */
reg_string++;
}
if (debug)
print_token (curr_token, token_val);
}
0465デフォルトの名無しさん
NGNG1文字以上で構成されるシンボルがトークンなんだから
意味は通ってるんじゃないのか?
LETTERが463のお望みのものだろうし。
0466デフォルトの名無しさん
NGNG0467457
NGNG>>462さん 見苦しいプログラムを貼ってしまいすみませんでした。
改行をなくそうとしたのが裏目に出てしまいました。ほんとすみません。
>>463さん このプログラムは、文字列について文字をひとつづつ
解析しその結果を出力するようなパターンマッチを目的として
書いたつもりです。書いているうちにこんがらがってしまいました。
見苦しくてすみません。
>>464さん 手直ししていただき有難うございます。
\\ですが、まず\を認識させて、その後に続く文字によって
出力が変わるようにしたいと考えている部分です。つまり
\をエスケープシーケンスとしてはたらいと考えて書きました。
0468463
NGNGうーん。そーなんだけれどさぁ・・・。
普通、get_token()って入力を単位文字(列)を1つ持ってくる働きをしそうではないですか。
while (入力の最後まで) {}
っていうのだと、意味が通らないなぁって思ったのでした。
ふと読んでて思ったのは、switch () {}中のbreak;が外側のwhile(){}に対しての脱出だったら、
意味が通りそうかなぁとか。(でも、やっぱヘン)
>>467
ひと区切り(一文字、もしくはエスケープ1つ)だけ、取ってくる関数をつくりなされ。
そして、それを呼び出すwhile()を持った関数を別に作りなされ。
0469デフォルトの名無しさん
NGNGまだwhile(1) で警告出すコンパイラをお使いですか?
さすがにwhile(2)とか書かれた日にゃあ殴りたくもなるかもしれませんが、
while(1)は十分、市民権を得たでしょう。
それでもfor(;;)を推奨する理由があるなら、不勉強な私に教えてくださいませ。
0470デフォルトの名無しさん
NGNG>command para1 para2 para3
とコマンドを入力して、
para?の文字列が長い順に並び替え表示をするプログラムを作ることになっているのです。
例としては
>command matsuya yosinoya sukiya
yosinoya
matsuya
sukiya
と表示したいのです。
argvでパラメータのアドレスを取得して、strcpyでうつしてやればよいかと考えたのですが、
文字列の長さが一致しないので、どうやってよいのか分かりません。
教えていただけないでしょうか。
0471デフォルトの名無しさん
NGNG移す必要ないじゃん。だからstrcpyも使わない。
ためしに para3 para2 para1 の順で表示するプログラム書いてみ。
0472デフォルトの名無しさん
NGNG好きな方、もしくは会社等で定められたコーディング規則に従えば
どちらでもよい話。議論する理由もない。
0473デフォルトの名無しさん
NGNGヒント:添え字を並べなおせ
0474デフォルトの名無しさん
NGNG#include <stdlib.h>
int lencomp(const void *p1, const void *p2)
{
return strlen(*(char**)p2) - strlen(*(char**)p1);
}
int main(int argc, char **argv)
{
int i;
if(argc < 1) return EXIT_FAILURE;
qsort(&argv[1], argc - 1, sizeof(char*), lencomp);
for(i = 1; i < argc; i++) puts(argv[i]);
return EXIT_SUCCESS;
}
0475デフォルトの名無しさん
NGNG#include <string.h>
が抜けてるな。C なら通るだろうが。
0476デフォルトの名無しさん
NGNGつか、#include <stdio.h> も抜けてるな。吊ってくる。
0477デフォルトの名無しさん
NGNGおしたいです。
要するに,a[ ] の0, 1, 2, . . . , n − 1 番目の
要素をそれぞれa[ ] のn − 1, n − 2, n − 3, . . . , 0 番目
に移したいです.この処理を行うプログラムをお願いします。.
0478デフォルトの名無しさん
NGNGとりあえず、何も考えていない単純で簡単な実装。
void reverse(int a[],int n) {
int i,temp;
for(i = 0; i < n / 2; i++) {
temp = a[i];
a[i] = a[n - i - 1];
a[n - i - 1] = temp;
}
}
0479デフォルトの名無しさん
NGNG0480デフォルトの名無しさん
NGNG#include <algorithm>
std::reverse(a, a+n);
0481デフォルトの名無しさん
NGNG例えばで、scanfで読み取った数字
123456 を 56 という数字に桁をずらす?場合はどうすればいいのでしょうか?
0482デフォルトの名無しさん
NGNGx = x % 100;
0483デフォルトの名無しさん
NGNGでかい数字でなければ例えば100で割った余りでもよいかも。
0484デフォルトの名無しさん
NGNG有難う御座います。
宝くじの当選かはずれかを出力するプログラムの課題を出されて、
下2桁の当選の場合だけがさっぱりでした。
数日前にC言語習い始めたばかりでまだまださっぱりです><
0485デフォルトの名無しさん
NGNG失礼します。
使用コンパイラ gcc -v 3-3.1
OS WindowsXP
エラーメッセージは
test47:error before token':'
test52:error before token':'
です。
>>432
>>434
>>435
訂正します。コンパイルできません。
unsigned rrotate (unsigned x, int n)
{
int bits = int_bits();
n %=bits;
/*return(n?(x>>n)|(x<<(bits-n):x));エラー*/
return(n?(x>>n)|(x<<(bits-n):)x);/*修正*/
}
遅レスすまそ
こうしたらうまくコンパイルできるようになりました。
失礼しました。
演算子の所を復習します。
0486デフォルトの名無しさん
NGNG(学校名はわからんよーに書きな。ネタにされる)
0487デフォルトの名無しさん
NGNG>/*return(n?(x>>n)|(x<<(bits-n):x));エラー*/
> return(n?(x>>n)|(x<<(bits-n):)x);/*修正*/
なんか括弧の位置がきもちわるい
return n? ((x>>n)|(x<<(bits-n))): x;
0488デフォルトの名無しさん
NGNG0489デフォルトの名無しさん
NGNGmain()
{
printf("Hello, world.\n");
}
telnetとかにリダイレクトすればok
0490GIRL
NGNGどうやって作ったらいいですか?
0491デフォルトの名無しさん
NGNGズボンを下げて尻を丸出しにし、手でパシパシ叩きながら
「びっくりするほどルーティング!びっくりするほどルーティング!」
と大声を上げて教室あるいは社内の部屋を一周する。
0492デフォルトの名無しさん
NGNGここの問題なんですが自分ではどうも手におえません
先生方どうか手を貸してください よろしくお願いします。
0493デフォルトの名無しさん
NGNGキーボードから実数xを入力し、結果を表示するプログラムを
作成せよ。
y1=(2*x**2)(3*x−3/4)
0494デフォルトの名無しさん
NGNGdouble d;
scanf("%f", &d);
printf("program nullpo\nreal x,y1\nx=%f\ny1=(2*x**2)*(3*x-3/4)\nwrite(*,*) y1\nstop\nend\n",d);
return 0;
}
0495デフォルトの名無しさん
NGNGint main(void){
std::cout << "Gaxtu!" << std::endl;
return 0;
}
0496デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/lounge/file/1027870433_218/Sample.zip
ここの問題が、解らず困っています。誰か助けてください。
お願いします。
0497デフォルトの名無しさん
NGNG書いてみろそうしないと無理だぞ
0498デフォルトの名無しさん
NGNG明日提出なもので、かなり焦ってます。どうもすみませんでした。
0499デフォルトの名無しさん
NGNG数字をピラミッドみたいに表示させろって言うんだ!具体的には↓みたいなの
1
22
333
4444
55555
って表示させるにはどうすりゃいいんだ!
上の行からスペースの数が4.3.2.1.0.と減って言ってるわけ!
ifを使えってさ!あと二重ループっぽくしたらいいってさ!
0500デフォルトの名無しさん
NGNGがんばれ
どうしても間に合いそうになかったら誰かに聞け
俺は知らんぞ
>>499
もうちょっと真面目に質問しろ
そんなんじゃみんなに放置されても仕方ないぞ
for(i=1;i<=5;i++)
{
for(n=1;n<=i;n++)
{
printf("%d",i);
}
}
0501500
NGNG0502500
NGNGの後に
if(n==i)
printf("\n");
を追加してくれ
えらそうなこと言ってすまんかった
0503デフォルトの名無しさん
NGNGマジありがとう!これからはキチンと説明します。
0504デフォルトの名無しさん
NGNG#include <stdio.h>
#define NUM 5
int i, keta;
for (i=1; i<=NUM; i++) {
for (keta=1; keta<NUM; keta++) {
if (keta <= 5 - i)
printf(" "); // 最初の 5-i 桁は空白
else
printf("%d", i);
}
printf("\n");
}
0505デフォルトの名無しさん
NGNG× for (keta=1; keta<NUM; keta++) {
○ for (keta=1; keta<=NUM; keta++) {
0506デフォルトの名無しさん
NGNG0507デフォルトの名無しさん
NGNG#define NUM 5ってなんなんだよおお
0508デフォルトの名無しさん
NGNG0509デフォルトの名無しさん
NGNG0510デフォルトの名無しさん
NGNG0511デフォルトの名無しさん
NGNG宿題なら構わないんじゃないか?
「C++相談室 part30」は質問という単語をスレタイに含めるべきだと思った、そんな夜。
0512デフォルトの名無しさん
NGNG【初心者歓迎】C/C++室 Ver.6【環境依存OK】
ttp://pc5.2ch.net/test/read.cgi/tech/1082182233/l50
もな。命名規約がなってないな。
0513以蔵
NGNGこのプログラム簡単そうだけど、いい案が浮かびません・・・。どうすればいいでしょうか?
0514デフォルトの名無しさん
NGNG0515デフォルトの名無しさん
NGNGdouble f(double x[],int t,int k)
{
double u[t/2],v[t/2],y;
int j;
for(j=o;j<t/2;j++)
{
u[j]=y[j];
v[j]=y[j+t/2];
}
if(t==2)
{
y=u[0]+k*v[0];
}
else
{
y=f(u,t/2,k)+k*f(v,t/2,k);
}
return y;
}
という関数を作ったのですが正しい値を返してくれません。
u,vの中身がおかしくなっているのでしょうか?
0516デフォルトの名無しさん
NGNG{
u[j]=x[j];
v[j]=x[j+t/2];
}
0517デフォルトの名無しさん
NGNGコンパイル通ったのかよ。
0518515
NGNGそしてt=2^kを書いてませんでした。
申し訳ないです…
0519デフォルトの名無しさん
NGNGの中に文字列(「abc」とか「5/13」とか)が入っていて、
それをchar retu[10]の配列の中に「1文字ずつ」格納したいのですが、
どの様にやれば良いのでしょうか?
とりあえずsschanfとか使ってみて頑張ったけど駄目だったよママン_| ̄|○
0520デフォルトの名無しさん
NGNGfor(count=0;;count++){
retu[count] = *moji++;
if(retu[count] == '\0')break;
}
0521デフォルトの名無しさん
NGNGとかける。この性質を利用してe を小数点以下100桁まで求めるプログラムを作れ。
(ヒント:最初にeに1000...000のような非常に大きな数がかかっていると考えよ。
また割算を実現しなければならないが、この場合は上の例を逆に繰り下がりが問題となる。)
0522デフォルトの名無しさん
NGNGよくわかりませんなぁ、自然対数ね。
0523デフォルトの名無しさん
NGNG0524デフォルトの名無しさん
NGNG細かい事ですまんが、自然対数の「底」ね。
0525デフォルトの名無しさん
NGNGわざわざ難しく考えなくとも…
char *mozi, retu[10];
strncpy(retu, mozi, sizeof(retu)-1);
0526デフォルトの名無しさん
NGNGch = tolower(ch);
else
ch = toupper(ch);
というようなものを使って読み込んだテキストファイルに記述されている
アルファベットの大文字を小文字へ、小文字を大文字へ変換して出力する、
というプログラムを作ろうと思うのですが、
2バイト文字(漢字)とかの場合ってどうなるんでしょう?
0527デフォルトの名無しさん
NGNGで、肝心なプログラミングは??
0528デフォルトの名無しさん
NGNGで、肝心なプログラミングは??
0529デフォルトの名無しさん
NGNG0530デフォルトの名無しさん
NGNG#define IsKanji(c) ( (unsigned char)((int)((unsigned char)(c) ^ 0x20) - 0x0A1) < 0x3C )
0531デフォルトの名無しさん
NGNG私へのレスでしょうか?
isupper〜…で英単語の大文字⇔小文字の相互変換を行うプログラムに、
漢字が記述されているテキストを食わせるとどうなるのでしょう?
という質問だったのですが…
文章が足りずに申し訳ないです。
0532デフォルトの名無しさん
NGNG#include <stdlib.h>
int
main()
{ int a[ 1000 ];
int i,j,c;
for ( j = 0; j < 1000; j++ ) a[ j ] = 0;
a[ 0 ] = 1;
for ( i = 0; i < 1000; i++ ){c = 0;
for( j = 0; j < 1000; j++ ){
a[ j ] = a[ j ] * 2 + c;
if ( a[ j ] >= 20 ){
a[ j ] = a[ j ] - 20;
c = 2;
} else if ( a[ j ] >= 10 ){
a[ j ] = a[ j ] - 10;
c = 1;
} else {
c = 0;
} /* if */ } /* for */ } /* for */
for ( j = 999; j >= 0; j-- ) printf( "%1d", a[ j ] );
printf( "\n" );
return ( 0 );
} /* main */
0533デフォルトの名無しさん
NGNGこのように、配列を主に学習しているので、なんとかこのプログラム
を改良して、eの値を出せないでしょうか??
0534デフォルトの名無しさん
NGNGキモイ
0535デフォルトの名無しさん
NGNGというのはどのようにしたらよいのでしょうか??
0536デフォルトの名無しさん
NGNG小文字だけならソートしろ
0537536
NGNG昇順に並んでいない文字セットがあるかどうかしらないけど。
0538デフォルトの名無しさん
NGNG#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int cmp(const void *a, const void *b){
return *(char*)a - *(char*)b;
}
int main(void){
char buf[128];
fgets(buf, sizeof buf, stdin);
qsort(buf, strlen(buf) - 1, 1, cmp);
puts(buf);
return 0;
}
0539デフォルトの名無しさん
NGNG計算してπの近以値を求めよ
級数による近似計算では,級数の収束を判定して,計算を終了させることが多い.たと
えば,数列のi項目をaiとしi項月までの級数(i項目までの和)をsiとするとき,
lai/sil<10e-14を満たすとき計算を終了させるプログラムのソース
がわかりません(;;)
重量
0540539
NGNG0541デフォルトの名無しさん
NGNG助けて!!!!!
1
222
33333
4444444
555555555
4444444
33333
222
1
上からスペースが四つ「1」を表示。それから五つスペースのあと%0として改行。
以降スペース3、「2」を3回、スペース4回、%0と表示するプログラムを作れとの事なのですが
表示される1.2.3などの数字は文字列としてやれと指示されました。
int a[5][10];
for(j=0;j<=4;j++){
for(i=0;i<=8;i++)
はっきり言ってここまでしか思いつきません。ぎゃお
0542539
NGNGvoid main(void)
{
double sum, x=1.0/5, y=1.0/239, ax, ay;
int n;
ax=x; ay=y;
sum=4*ax-ay;
printf("%17.14f\n",4*sum);
for(n=2;n<=10;n++){
ax=-ax*x*x;
ay=-ay*y*y;
sum=sum+(4*ax-ay)/(2*n-1);
printf("%17.14f\n",4*sum);}
}
このプログラムを改造して条件fabs(ai/Si)<10e-14を
満たすときプログラムを終了し出力例のように出力する
プログラムを教えてください
(出力例)
π=3.14159265358979,収束に要した項数11,|ai/Si|=5.0860511575627e-10
0543デフォルトの名無しさん
NGNGvoid print(int x){
int i, j;
for (i = 1; i <= x; i++){
printf("%*c", x - i + 1, ' ');
for (j = 0; j < i * 2 - 1; j++) printf("%d", i);
puts("");
}
}
0544543
NGNGvoid print(int x){
int i, j;
for (i = 1; i <= x; i++){
for (j = 0; j < x - i; j++) putchar(' '); /*空白*/
for (j = 0; j < i * 2 - 1; j++) printf("%d", i); /*数字*/
puts("");
}
}
0546デフォルトの名無しさん
NGNG---------------------------------------
#include <stdio.h>
#include <memory.h>
#include <malloc.h>
#define N 5
main(){
char *str;
int i;
str = malloc(N * 2);
for(i = 1; i <= N; i ++){
memset(str, ' ', N - i);
memset(str + N - i, i + '0', i * 2 - 1);
*(str + N + i - 1) = '\0';
puts(str);
}
for(i = N - 1; i >= 1; i--){
memset(str, ' ', N - i);
memset(str + N - i, i + '0', i * 2 - 1);
*(str + N + i - 1) = '\0';
puts(str);
}
free(str);
}
------------------------------------------
0547デフォルトの名無しさん
NGNG#include <stdio.h>
#include <memory.h>
#include <malloc.h>
#define N 5
void PutLine(int n, int i, char *str){
memset(str, ' ', n - i);
memset(str + n - i, i + '0', i * 2 - 1);
*(str + n + i - 1) = '\0';
puts(str);
}
main(){
int i;
char *str = malloc(N * 2);
for(i = 1; i <= N; i ++) PutLine(N, i, str);
for(i = N - 1; i >= 1; i--) PutLine(N, i, str);
free(str);
}
0548543
NGNG俺のだと、半分までしか表示されんな。
0549デフォルトの名無しさん
NGNG#include <stdio.h>
#include<math.h>
int main(void)
{
double sum, x=1.0/5, y=1.0/239, ax, ay;
int n=2;
ax=x; ay=y;
double an;
double maxerr = pow(10,-14);
double err = 1.0;
sum=4*ax-ay;
printf("%17.14f\n",4*sum);
while(err >= maxerr){
ax=-ax*x*x;
ay=-ay*y*y;
an = (4*ax-ay)/(2*n-1);
sum += an;
err = fabs(an/sum);
printf("%17.14f\n",4*sum);
n++;
}
printf("π=%.14f ,収束に要した項数%d ,|ai/Si|=%.14E\n", sum*4.0,n,err);
return 0;
}
制限事項
・オリジナルのコードがウンコーなのできっと評価はウンコー。
・|ai/Si|として書かれてる数字、有効数字周りがかなり胡散臭い。仕様。
0550543
NGNG#include <stdio.h>
#include <stdlib.h>
void print(int x){
int i, j;
for (i = 1; i < x * 2; i++){
for (j = 0; j < abs(x - i); j++) putchar(' '); /*空白*/
for (j = 0; j < (x-abs(x-i))* 2 - 1; j++) printf("%d", x-abs(x-i)); /*数字*/
puts("");
}
}
0551デフォルトの名無しさん
NGNG処理系によるんじゃねーの?
0552デフォルトの名無しさん
NGNG> 2バイト文字(漢字)とかの場合ってどうなるんでしょう?
入力する漢字コードの種類によって動作が異なる。
Shift-JIS/JIS(7bit) → 文字化けする
EUC/UTF-8 → 文字化けしない
0553539
NGNGありがとうございます。オリジナルコードは助教授が作った
ものです。
0554デフォルトの名無しさん
NGNG配列を使ってプログラムをつくらなければいけないのですがどうか助けてください!
(>_<)
0555デフォルトの名無しさん
NGNG適当な英文テキストファイルを読み込んで、大文字小文字の区別をせず、
連続2文字で出現する頻度が最も高い組合せを出力する。
なんですが…
自分で解いててわからなくなったのでみなさんの力を貸してください
自分が考えたプログラム(途中)
↓
0556デフォルトの名無しさん
NGNG#include<string.h>
#include<ctype.h>
int main(void)
{
FILE*fp;
charfp[256],d[256],e[256],f[256][256];
int a,b,c,s,t,u;
fp=tolower(fp);
for(s=0;s<26;s++ ){
e[s]="a" + s;
while(!0){
fscanf(fp,"%s",d) ;
c = strlen(d) ;
for(t=0;t<c;t++ ) {
if( (isalpha(d[t]))&& (isalpha(d[t+1])) )
{
for(a=0;a<26;a++){
for(b=0;b<26;b++)
f[a][b]
0557デフォルトの名無しさん
NGNG文字型であらわすプログラムなのですが、普通の2で割って1,10,100とかけていけば
答えはでるのですが、シフトをつかっての書き方がよくわかりません
どうか教えてください。(*- -)(*_ _)ペコリ
0558デフォルトの名無しさん
NGNGシフト使うなら2で割るところを>>1で良いんじゃないのかな?
n = a / 2; なら n = a >> 1; って感じで。
0559デフォルトの名無しさん
NGNGつーか、まずぐぐれ
0560デフォルトの名無しさん
NGNGそしたら上司が
いきなりズボンをおろしておしりをたたきながら
「カツラがずれてもルーティングっ!!カツラがずれてもルーティングっ!!」
といいながら社内を一周しだしました。
0561デフォルトの名無しさん
NGNGできた。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=61&fi=no
0562561
NGNG× void push(char tmp[2], int n){
○ void push(int tmp[2], int n){
× char tmp[2];
○ int tmp[2]
× if(!(fp = fopen(argv[1], "r"))) {
○ if(NULL == (fp = fopen(argv[1], "r"))) {
0563561
NGNG0564デフォルトの名無しさん
NGNG#include <limits.h>
#include <stdio.h>
#include <stdlib.h>
#define BUFSIZE 256
main(){
unsigned int n, mask, int_bit;
char buf[BUFSIZE];
printf("数値を入力 >");
fgets(buf, BUFSIZE, stdin);
n = atoi(buf);
int_bit = sizeof(int) * CHAR_BIT;
for(mask = 1 << (int_bit - 1); mask != 0; mask >>= 1){
if(mask & n)
putchar('1');
else
putchar('0');
}
putchar('\n');
}
/* 大きすぎる値や負の数を入力した場合の動作保証はありません。 */
0565555
NGNGただ…もう少し初心者向けに作りなおせないでしょうか?
自分習い始めたばかりなもので。
0566デフォルトの名無しさん
NGNGかなりわかりやすい部類のソースだと思うが。
コメントまで書いてくれているし、、、
こういう場合は、机上で適当なデータを用意して、どのように推移するか、を確かめてみると
(初心者には)いいだろう。
0567デフォルトの名無しさん
NGNG関数名はint btoi(void)です。
コンパイルしようとすると
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
btoi.c:
エラー E2040 btoi.c 6: 宣言が正しく終了していない
*** 1 errors in Compile ***
TpCc:コンパイル終了
と表示され困っています。
どこがおかしいのか教えてください。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1084589792
に、ソースを貼っています。
ちなみに557さんとは別人です。
>>564さん
-1も4294967295もちゃんと
11111111111111111111111111111111
と表示されました。
0568デフォルトの名無しさん
NGNGint main(void); ←これ
0570555
NGNGソースの最初に
// コマンドライン第一引数(argv[1])で、対象ファイル名を指定。
とありますが、どうすれば適当なデータを入力できるのでしょうか?
0571デフォルトの名無しさん
NGNG> hoge.exe eibun.txt
>>569
いいよ。ちゃんと理解してな。
0572555
NGNGこのふたつを使わないプログラムに書き換えられないでしょうか?
0573デフォルトの名無しさん
NGNG通報しときますた(w
0575デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=62
0576デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=63
0577デフォルトの名無しさん
NGNGやめて〜(w
0578555
NGNGちなみにばれたら自分もまずいですが…
みなさんのおかげでだいたいわかりました。
thxです。
0579567
NGNGMSbが1の時
負数表示になってしまって困ってます。
どうしたらいいんでしょうか?
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1084589792
に
改良時のソースを貼っています。
0580デフォルトの名無しさん
NGNG>576 はも少し簡単にすませろ
int now,prev=0;
while((now=fgetc(fp))!=EOF){
if(isalpha(prev) && isalpha(now)){
if(max < ++ch[toupper(prev) -'A' +1][toupper(now) -'A' +1])
max=ch[toupper(prev) -'A' +1][toupper(now) -'A' +1];
}
prev=now;
}
0581デフォルトの名無しさん
NGNG0582デフォルトの名無しさん
NGNG入力データの最大値を出力するプログラムをお願いします.
ただし,入力は
正の数値で,データの終りは0 の入力です
0583デフォルトの名無しさん
NGNG0584デフォルトの名無しさん
NGNGwhile(入力が終わるまで){
if(入力が0) ループ終了
if(最大値<入力値) 最大値=入力値
}
0585xxx
NGNG{
int max=0,j;
for(;;)
{
printf("Please Input any Number!\n");
scanf("%d",&j);
if(j==0)break;
if(max<j && (j*10)%10==0)max=j;
printf("Maximum number is %d!!\n",max);
}
}
konnatokorodedoudesyouka?
0586デフォルトの名無しさん
NGNGなんぢゃこりゃ?
0587厨房 ◆g/ZMVdytmo
NGNG閏年の条件 西暦が
1、4で割れること
2、100で割れてはいけない(但し、400で割れる)
if文1行で終わるそうですが、解りませぬ・・・
0588デフォルトの名無しさん
NGNG0589厨房 ◆g/ZMVdytmo
NGNGやっぱり趣味の世界で辞めて置いたほうが良い事を、改めて確信しますた。
どうも有難う。
0590590
NGNGスタックを初期化する関数 void stack_initialize(stack *stk)
およびスタックが空であるかどうかを判断する関数 int is_stack_empty(stack *stk) を作れ。
is_stack_empty は,スタックが空であるときに 1 を,空ではないときに 0 を返す。
C言語でお願いします。
できれば説明も書いていただければありがたいです。
0591デフォルトの名無しさん
NGNG0592590
NGNG0593デフォルトの名無しさん
NGNG0594デフォルトの名無しさん
NGNG「stack」←この構造体が宣言されているはずなのだが。
これが分からないことには、誰にも答えられません。
0595590
NGNGhttp://rivernet.cool.ne.jp/upmini/200405d/20040515180139_.txt
0596デフォルトの名無しさん
NGNGstk->count = 0;
return;
}
int is_stack_empty(stack_t *stk){
return (stk->count == 0);
}
で、良いんかな?
0597590
NGNGをifにして後にelseをするんですか?
それでもうできているのかな・・。
0598デフォルトの名無しさん
NGNG心配なら。
int is_stack_empty(stack_t *stk){
return stk->count == 0 ? 1 : 0;
}
とでも書いたらよかろう。
0599デフォルトの名無しさん
NGNG激しく無駄。
「心配なら」って断るくらいならif文使うことを勧めた方がいい。
つーか、return文に括弧つけるなよ。
0600デフォルトの名無しさん
NGNGstk->countが0なら(stk->count == 0) は真なので 1 と同じ。
stk->countが0以外なら(stk->count == 0) は偽なので 0 と同じ。
# というか、定義と問題のスタックの構造体の型が違うような気がするのは
# 気のせいか?
0601デフォルトの名無しさん
NGNG>つーか、return文に括弧つけるなよ。
何故?
おまえは格好つけるなよ。
0602デフォルトの名無しさん
NGNG要らないから。
0603590
NGNG0604デフォルトの名無しさん
NGNGなんていうか、予想を超えた返答が来たな
mainやらなにやらはもちろん必須
0605デフォルトの名無しさん
NGNGでも、問題では戻り値はブーリアンだと明記されていないわけだから、
あえて、1,0を返すのは悪い作法とは思えないよ。
0606デフォルトの名無しさん
NGNG要求されてないぞ。「プログラムを作れ」なら兎も角、「関数を作れ」だからな。
テストするのに必要なら自分で作れ。
0607デフォルトの名無しさん
NGNGhttp://www.kyoto-su.ac.jp/%7Eyamada/ap/stack.html
の問題だよな?txt見たときは何がなんだかわからなかったんだが
0608デフォルトの名無しさん
NGNGもんだいをみるかぎりではmainは必要ない。
プログラムを実行しろと書いてないから。
0610590
NGNG答えは上のやつで正解ですか?
0611デフォルトの名無しさん
NGNGグローバル変数とローカル変数の違いについて説明せよ
関数引数への値渡しとアドレス渡し(ポインタ渡し)の違いについて説明せよ
関数定義とそのプロトタイプ宣言について考察せよ
分割コンパイルとは何か説明し、そのメリットについて考察せよ
お願いしまつ。えらい人
0612デフォルトの名無しさん
NGNG速習Winプログラミング
C言語超入門
ゼロからのプログラミング
藤森水絵 著
か?
0613デフォルトの名無しさん
NGNG値で渡るのと、アドレスで渡るのが違う。
関数定義のプロトタイプを宣言して前方参照を解決する。
分割してコンパイルすること。メリットはコンパイル時間が短くなる。モジュール独立性を高める。など。
0614デフォルトの名無しさん
NGNG値渡しはアドレス渡しより分かりやすいと思います。
以下の設問は「考察せよ」なので回答をする必要はありません。
0615デフォルトの名無しさん
NGNGスコープが違う
>関数引数への値渡しとアドレス渡し(ポインタ渡し)の違いについて説明せよ
どっちも同じ。プログラマが違うと考えてるだけ
>関数定義とそのプロトタイプ宣言について考察せよ
定義と宣言で十分なのになんで"プロトタイプ"宣言なのかな。冗長だな
>分割コンパイルとは何か説明し、そのメリットについて考察せよ
ファイル毎にコンパイルすること。
ヘッダが巨大になると全コン時に遅くなるので、まったりできる。
0617デフォルトの名無しさん
NGNGグラムを教えて下さい。また4個組み合わせて同じ数字が一個もない組み合わせを求める
プログラムを教えて下さい。2つもすいません。お願いします。
0618デフォルトの名無しさん
NGNGを求めるプログラム教えてください。 Cでおねがいしま〜〜す
0619デフォルトの名無しさん
NGNG/* n入力部略 */
for(i=s=0;i<n;i++) s+=(i+1)*(n-i);
0620デフォルトの名無しさん
NGNG#include <iostream>
#include <sstream>
template <int N> struct FFindNum {
void calc( int min, int max,
const std::string& pre = "" ) const
{
FFindNum<N-1> next ;
for( int i = min ; i <= max ; i++ ){
std::stringstream sstr ;
sstr << pre << i << " + " ;
next.calc( min, max - i, sstr.str() ) ;
}
}
} ;
template <> struct FFindNum<0> {
void calc( int min, int max, const std::string& pre ) const
{
if( min == max ) std::cout << pre << min << std::endl ;
}
} ;
int main()
{
FFindNum<3> f ;
f.calc( 0, 10 ) ;
return 0 ;
}
0621デフォルトの名無しさん
NGNGa=1
g=1
m=1
o=1
p=1
r=2
のように、入力した文字を、カウントしてくれるプログラムを
C言語でお願いします。
0622デフォルトの名無しさん
NGNGwhile((c=fgetc(stdin))!=EOF){
if(isalpha(c))
if(toupper(c)) ++cnt[0][c-'A']; else ++cnt[0][c-'a'];
}
0623デフォルトの名無しさん
NGNG0624デフォルトの名無しさん
NGNG重複無し版…つーかさっきのバグってたかも…
反省を込めてCで
#include <stdlib.h>
char buf[256] ;//必要なサイズは適当に...
void calc( int min, int max,
int nest, char *pos )
{
int i ;
if( nest > 0 ){
for( i = min ; i <= max ; i++ ){
sprintf( pos, "%d + ", i ) ;
calc( i + 1, max - i, nest - 1, pos + strlen(pos) ) ;
}
} else {
if( min <= max ) printf( "%s%d\n", buf, max ) ;
}
}
int main()
{
calc( 0, 10, 3, buf ) ;
return 0 ;
}
0625611
NGNGローカルとは、一部、というような意味で、その関数の中のみ使われる変数であり、それに対してグローバル変数はすべての関数で使える変数である。
値そのものを渡すのと、値があるアドレスを渡すことの違い
関数を定義してプロトタイプ宣言することで、以前のを参照することを阻止する
ファイルごとにコンパイルすること。分割することによってコンパイル時間が短くなる
でいこうと思いまつ。ありがとうございました。
0626^^
NGNGおしえてください^^
0627デフォルトの名無しさん
NGNG0628デフォルトの名無しさん
NGNGそして登録したものをキーで割り当てて実行できるような・・・。
0629デフォルトの名無しさん
NGNG0630デフォルトの名無しさん
NGNG書き換えたいコードの事です。
書き換えたいコードを登録していき、チェックボックスにチェックする事で実行するコードを選択でき、
実行ボタンを押すと任意のプログラムに反映される。
という感じなのですが。
0631デフォルトの名無しさん
NGNG亀レスだが
int sum(int n)
{
return n*(n+1)*(n+2)/6;
}
0632デフォルトの名無しさん
NGNG0633デフォルトの名無しさん
NGNG0からSIZE-1までの数をひとつずつなるべくランダムになるように
H[0]からH[SIZE-1]に代入するプログラムを作れ
お願いします。
0634デフォルトの名無しさん
NGNG何がしたいのか全然わかんない。
ランチャーが作りたいの?
0635デフォルトの名無しさん
NGNG#include <stdio.h>
int main(){
int a = 1, i;
puts("0.");
for(i = 0; i < 70; i++){
a *= 10;
putchar(a / 7 + '0');
a %= 7;
if((i + 1) % 10 == 0) putchar('\n');
}
return 0;
}
>>633
int i,j,k;
for(i = 0; i < SIZE; i++) H[i] = i;
srand(time(NULL));
for(i = 0; i < SIZE; i++){
j = rand() % SIZE;
if(H[i] != H[j]){
k = H[i]; H[i] = H[j]; H[j] = k;
}
}
0636デフォルトの名無しさん
NGNGこの判定無駄だった。
0637デフォルトの名無しさん
NGNGprintf("0.");
for (int i = 0; i < 60 / 6; ++i) {
printf("142857");
}
0638633
NGNGありがとう。
0639デフォルトの名無しさん
NGNG簡易プロセスメモリエディタを作っていただきたいという事です。
0640デフォルトの名無しさん
NGNGそれは宿題なのか?
もっとも情報が少なすぎで何ともできないけどな。>>1読んで出直してこい。
0641デフォルトの名無しさん
NGNG0.142857
で繰り返し
0642デフォルトの名無しさん
NGNG>637
0643デフォルトの名無しさん
NGNGできれば配列を使わずにお願いします。
0644デフォルトの名無しさん
NGNGint a;
if(n>999999||n<0) return -1; /* error */
for(a=0;n;n/=10) a=a*10+n%10;
return a;
}
0645デフォルトの名無しさん
NGNGありがとうございます
0646デフォルトの名無しさん
NGNGプログラムを教えて下さい。
0647デフォルトの名無しさん
NGNG0648デフォルトの名無しさん
NGNG0649デフォルトの名無しさん
NGNGごめん、勘違いしてたみたい。物凄い簡単だった。
>>648
分かりやすくまとめたんだ、タコ。
0650デフォルトの名無しさん
NGNG勘違いした状態で分かりやすくまとめる=わかりにくい=全文書く方がいい
0651デフォルトの名無しさん
NGNGとりあえず死ね
0652デフォルトの名無しさん
NGNGアホ発見。まとめたのは問題文。勘違いしてたのはプログラムの中身。
意味分かる?
0653デフォルトの名無しさん
NGNGお前も死んどけ
0654デフォルトの名無しさん
NGNGプログラムを勘違いした状態で分かりやすくまとめる=わかりにくい=全文書く方がいい
0655デフォルトの名無しさん
NGNG>>647 で書かれているように、問題文自体がアホなんだけど。
0656デフォルトの名無しさん
NGNG問題の意味自体は履き違えてなかった。勘違いしてた部分はささいな事。
ここまで言ったら理解できるか?
0657デフォルトの名無しさん
NGNGささいな事を勘違いした状態で分かりやすくまとめる=わかりにくい=全文書く方がいい
0658デフォルトの名無しさん
NGNGとりあえず飯食え
0659デフォルトの名無しさん
NGNG・問題はしっかりと解いてもらう方にわかりやすいように
問題文などの省きはやめ、エラーなどは適切に書きましょう
全文を書いてしまうか、分かりやすくまとめましょう。
分かりにくくまとめた>>647は死ね
0660デフォルトの名無しさん
NGNGもうおなかいっぱい
0661デフォルトの名無しさん
NGNGエェー>>647かYO
0662デフォルトの名無しさん
NGNGスマソ
>>646だ
0663デフォルトの名無しさん
NGNG俺の知り合いには通じたが?
こんな簡単な問題文を理解できない>>659は小学校から通い直せ。
0664デフォルトの名無しさん
NGNGとりあえず、落ち着け
0665デフォルトの名無しさん
NGNGforを使って、ある指定した数以下の素数を
全て出力するプログラムを作成しなさい。
また、作成したプログラムで指定した数をnとした時
プログラム中でどのくらい繰り返しが行われるかを考察しなさい。
0666デフォルトの名無しさん
NGNGこんな簡単な問題文の問題でささいな勘違いをしてた>>663は小学校から通い直せ
0667デフォルトの名無しさん
NGNG問題の内容と勘違いした部分は全く関係なし。
まだ分かってなかった?
0668デフォルトの名無しさん
NGNG0669デフォルトの名無しさん
NGNG勘違いした状態で分かりやすくまとめる=わかりにくい=全文書く方がいい
0670デフォルトの名無しさん
NGNGえっと、記憶障害をお持ちですか?
ってか、そろそろ飽きた。飯食います
0671デフォルトの名無しさん
NGNG勘違いをする程度のアタマで分かりやすくまとめる=わかりにくい=全文書く方がいい
0672デフォルトの名無しさん
NGNG飯食わせて下さい
頭の良さと勘違いするのは全く別。小学生ですか?
ほんとに飯食いますんで、んじゃ
0673デフォルトの名無しさん
NGNG飯食わないで分かりやすくまとめる=わかりにくい=全文書く方がいい
0674デフォルトの名無しさん
NGNG自己流の意味不明問題文を書くやつは、誰にも相手にされないだけなんだから。
損するのは自分自身だろ。
出来るだけ冷酷に、それじゃわからん、と言ってあげましょう。
0675デフォルトの名無しさん
NGNG0676デフォルトの名無しさん
NGNG0677デフォルトの名無しさん
NGNG「エラトステネスのふるい」というアルゴリズムが一般的。
検索すると多分大量に見つかる。
sqrt(n)の倍数までを弾けば残りは素数である事が保証される事に注意。
0678デフォルトの名無しさん
NGNGそしたら喪前の言ってることが正しいかどうかわかる
0679デフォルトの名無しさん
NGNG>>676
0680デフォルトの名無しさん
NGNGよろしくお願いします
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=222
0681デフォルトの名無しさん
NGNG違った、後ろから前から
でもない、後入れ先出しって事だよ
0682デフォルトの名無しさん
NGNGありがとうございます。検索してみます。。
0683デフォルトの名無しさん
NGNGなんですが、今までグラフやリストを全く扱ったことがないので、さっぱりわかりません。
どなたか助けて下さい。
0684デフォルトの名無しさん
NGNGほい。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=64&fi=no
0685デフォルトの名無しさん
NGNGお願いします
0686684
NGNG関数 trim() の中の2行
(誤)
memmove(str, p, q - p);
*(q + 1) = '\0';
(正)
memmove(str, p, q - p + 1);
*q = '\0';
0687デフォルトの名無しさん
NGNGint main(void){
int sum, n;
for (n = 1, sum = 0; sum + n < 500; n += 2, sum += n);
printf("n(max) = %d sum = %d\n", n, sum);
return 0;
}
0688デフォルトの名無しさん
NGNGありがとうございます
0689デフォルトの名無しさん
NGNGまだバグってる。
void trim(char *str){
char *p;
for(p = str; isspace(*p); p++);
if(str < p) memmove(str, p, strlen(p));
for(p = str; isalpha(*p); p++);
*p = '\0';
}
0690sage
NGNG現在、卒研にてToomre Disk作成の為のプログラムを作成しているのです
が、乱数で得た円盤モデル中心から粒子までの距離成分を配列に格納する
段階で躓いてしまっています。どなたかご教授していただけないでしょう
か?プログラムのソースは以下参照でお願いします。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1060403548&res=62
0691デフォルトの名無しさん
NGNGToomre Disk というものがなんだかさっぱり分からないけど
for(i=0; i<N; i++)
のあとに
while(i!=N)
だと確実にwhileは実行されないけど、これはいいの?
あと
r=(double)Rmax*(double)rand()/(double)RAND_MAX;
ではどうですか?
0692デフォルトの名無しさん
NGNGwhileループの直前に、i=0;を追加。
0693sage
NGNG690です。
無事、解決いたしました。ありがとうございます。
0694デフォルトの名無しさん
NGNG上手くいきません。教えて下さいお願いします。何度もスイマセン。
0695デフォルトの名無しさん
NGNG#include <string.h>
0696デフォルトの名無しさん
NGNG0697デフォルトの名無しさん
NGNG1ループごとにsum+nを二回計算してるので不経済。
0698デフォルトの名無しさん
NGNGそれはわかってたんだが、短くすますためちょっとふざけたコードを書いてしまった。
0699デフォルトの名無しさん
NGNGhttp://human4.2ch.net/test/read.cgi/honobono/1084484744/l50
0700デフォルトの名無しさん
NGNG英語の場合はUGに半分足を突っ込んだようなサイトから単語辞書を持ってくればいける。
漢字は辞書を用意しないと絶対無理。文字種混合もきつい。
ソルバーを作るのはそれはそれで楽しいけど、クイズは自力で解くものだと思うぞ。
パズルゲームのソルバーを作る奴は往々にして完成後もプログラム使わず手で解くしな。
0701デフォルトの名無しさん
NGNG0702名○大学生
NGNG角度を変えていくつか表示するプログラム。
それぞれの軌跡は別の記号で出力。
ただし、空気抵抗などは考えないものとする。
g を重力加速度とすれば、弾丸のt秒後の位置は、
x = ct + d
y = -g t**2 / 2 + et + f
と表現できる。
ただし、**は累乗を表し、(c, e)は速度ベクトル、
(d, f)は初期の位置を表すものとする。初期の位置は不変で、
速度ベクトルは打ち出す角度によって、x成分とy成分が異なる。
また、表示に際しては文字の縦横比を考慮に入れるとより現実的な
グラフになる
お願いします。
0703デフォルトの名無しさん
NGNGDo Loopステイトメントを使って、Nを入力して1からNまでの和を求めるものです。
Sum=1+2+3+....+N です。
下のはFor.....Nextを使ったものです。
Dim I As Integer
Dim N As Integer
Dim Sum As Long
N = Val(TextBox1.Text)
For I = 1 To N
Sum = Sum + I
Next
TextBox2.Text = Sum
MessageBox.Show("1+2+3+...+" & N & "= " & Sum, "Total")
時間が迫っていますのでどうかお早めにお願いします!
0704デフォルトの名無しさん
NGNGFor I = 1 To N
Sum = Sum + I
Next
この部分だけ変えればできるそうなんですが。。。。。
0705デフォルトの名無しさん
NGNGスレタイを250回ほど読んでください。
0706デフォルトの名無しさん
NGNG#include <ctype.h>
int getch(void); void ungetch(int);
int main()
{
int c,pn;
c = getint(&pn);
printf("%c\n",'c');
return 0;
}
int getint(int *pn) {
int c, sign;
while (isspace(c = getch()))
;
if (!isdigit(c) && c != '0' && c != '+' && c!= '-'){
ungetch(c);
return 0;
}
0707706続き
NGNGif (c == '+' || c == '-')
c = getch();
int d;
d = getch();
if (d == '+' || '-') {
d = getch();
if ( EOF == d || !isdigit(d) ) {
if ( EOF != d ) ungetch(d);
ungetch('=');
return 0;
}
}
for (*pn = 0; isdigit(c); c = getch())
*pn = 10 * *pn + (c - '0');
*pn *= sign;
if (c != '0')
ungetch(c);
return c;
}
のプログラムで、getch,ungetchを定義せよっといわれるのですがどうやればいいかわかりません
0708デフォルトの名無しさん
NGNGgetchを作れという宿題?
0709デフォルトの名無しさん
NGNGYuzo君は1枚のカードを持っており,そのカードには1から1000の自然数のどれか(この数字をxとする)が書かれている.
Yasumasa君はそのカードに書かれている数字を当てようとする.
Yasumasa君が一つ自然数(これをyとする)を指定すると,Yuzo君はYasumasa君にかくれてサイコロを振り,出た目に応じて次のように答える.
1のとき : 「 黙秘します 」
2のとき : 「 x > y 」
3のとき : 「 x < y 」
4,5,6のとき :
実際に x = y ならば「 x = y 」と答える
実際に x > y ならば「 x > y」と答える
実際に x < y ならば「 x < y」と答える
Yasumasa君は予測を何度も繰り返す.
どのように予測すれば,Yuzo君は早く「 x = y 」と答えるだろうか ?
サイコロの目は1から6であり,どの目が出る確率も 1/6 とする.
Yuzo君はカードを見せてはくれない.サイコロの目も見せてくれない.
また,Yuzo君のカードに書かれている自然数は「1から1000の整数の一様乱数」により決められるものとする.
課題 :
以下のプログラム(YYtester.c)は説明した状況を模擬するものである.
このプログラムにおける Yasumasa.h を書け.
ちなみに,Game()の戻り値が「何回の推測で答えを言い当てたか」を表している
0710709
NGNG#include<stdlib.h>
#include<time.h>
#include<Yasumasa.h>
static const unsigned int MAX=1000000;
/* conjecture : Yasumasa君の予想,TheNumber : カードの数字 */
int Yuzo_Answers(int conjecture,int TheNumber){
int dice = ( rand()%6 ) + 1;
if( 1 == dice )
return(1); /* 黙秘 */
if( 2 == dice )
return(2); /* 答え(x) > 予想(y) */
if( 3 == dice )
return(3); /* 答え(x) < 予想(y) */
if( TheNumber > conjecture )
return(2);
if( TheNumber < conjecture )
return(3);
return(4); /* 正解 */
}
0711709(続き)
NGNGint i;
int TheNumber; /* 正解 */
int conjecture; /* Yasumasa君の予想 */
int answer=0; /* Yuzo君の返事 */
Yasumasa Y;
time_t t;
srand( (unsigned)time(&t) );
printf("sizeof(Yasumasa) = %d\n",sizeof(Yasumasa));
printf("20*sizeof(double) = %d\n",20*sizeof(double));
0712709(続き)
NGNGTheNumber = ( rand()%1000 ) + 1;
for( i=1 ; i<=MAX ; i++ ){
conjecture = Yasumasa_Conjects(&Y,answer);
answer = Yuzo_Answers(conjecture,TheNumber);
if( 4 == answer ){
printf("Trial = %d\n",i);
printf("The Number = %d\n",TheNumber);
printf("Conjecture = %d\n",conjecture);
Yasumasa_Clear(&Y);
return(i);
}
}
Yasumasa_Clear(&Y);
return(0);
}
int main(void){
int sol;
sol=Game();
printf("%d\n",sol);
return(sol);
}
0713デフォルトの名無しさん
NGNG「英単語を入力し、複数形で出力するプログラムを作れ。」
恐らく、child→children見たいなのは無視してもよいです。
0714デフォルトの名無しさん
NGNG無塚しすぎて3日はかかるかも
0715デフォルトの名無しさん
NGNG#include <stdio.h>
int main()
{
char tango[80];
printf("英単語を入力してください >");
scanf("%80s", tango);
printf("複数形は%sesです。\n", tango);
return 0;
}
こんな感じでどうでしょ?
0716デフォルトの名無しさん
NGNG「そんな大雑把な宿題があるかヴォケー!」と逆ギレしてよし。
パターンとしては
1・後ろに "s"
2・後ろに "es"
3・後ろの "y" を "ies" に
4・後ろの "f" を "ves" に
5・変わらない
6・特殊な変化
の 6 パターンあるが…
0717557
NGNG遅くなってすみませんでした。
参考にプログラミングしてるんですがどう考えても
for(mask = 1 << (int_bit - 1); mask != 0; mask >>= 1){
if(mask & n)
putchar('1');
else
putchar('0');
の部分がわかりません。。どうか教えてください
お願いします。
0718デフォルトの名無しさん
NGNG軌跡を打ち出し角度を変えていくつか表示するプログラムを作れ。
それぞれの軌跡は別の記号で出力せよ。ただし、空気抵抗などは
考えないものとする。g を重力加速度とすれば、弾丸のt秒後の位置は、
x = ct + d
y = -g t**2 / 2 + et + f
と表現できる。ただし、**は累乗を表し、(c, e)は速度ベクトル、
(d, f)は初期の位置を表すものとする。初期の位置は不変で、
速度ベクトルは打ち出す角度によって、x成分とy成分が異なる。
また、表示に際しては文字の縦横比を考慮に入れるとより現実的なグラフになる
(上で示した例ではこの比率を考慮していないのでだ円となっている)。
0719デフォルトの名無しさん
NGNG>>702も同じ問題で困ってるみたいだから
二人で相談してみたら?
0720デフォルトの名無しさん
NGNGfor (最上位ビットから最下位ビットまで) {
if (n の該当ビットが立っている) {
'1'を出力;
} else {
'0'を出力;
}
}
具体的にどこがどう判らんか書かないと教えようもない。
0721デフォルトの名無しさん
NGNG閏年の判定で
if((year % 4) == 0) && ((year % 100) != 0 || (year % 400) == 0)
と言うより簡単な方法ってあるでしょうか?
0722デフォルトの名無しさん
NGNG0723デフォルトの名無しさん
NGNGある。
実用的には4年に一度で充分だ。
何故なら、1900年は未だ現行暦ではなかったし、
2100年まで考慮する必要があるとも思えないから。
0724デフォルトの名無しさん
NGNG0725デフォルトの名無しさん
NGNG721のほうがはるかに簡単と俺も思う。
0726デフォルトの名無しさん
NGNG0727デフォルトの名無しさん
NGNGその前に32ビットの限界が来る罠。
0728デフォルトの名無しさん
NGNGCanon LBP-220(レーザープリンタ)を使う予定です。
WIN32APIとMFCとを使わないで、CUIで作りたいのですが、思いつきません。
誰か教えていただけないでしょうか。
0729デフォルトの名無しさん
NGNG0730デフォルトの名無しさん
NGNGそうなんですか。
さっそくお答えありがとうございます。
Linuxでも動かせないといけないのですが、考慮するのはAPIの部分だけでしょうか。
0731デフォルトの名無しさん
NGNGインタフェースを共通化するのが常套手段。
0732デフォルトの名無しさん
NGNGラッパや、LinuxのAPIは初めて使うので、勉強になると思います。
とりあえず、調べてみます。
ありがとうございました。
また、聞きにくるかもしれませんが、そのときはよろしくです。
0733デフォルトの名無しさん
NGNGサイコロの目が4,5,6の時、それぞれイコール、大なり、小なり
でない時はどう答えるの?
0734デフォルトの名無しさん
NGNGプログラムを教えてください。
乱数はvoid rand()を使って生成して欲しいです
煽られています。どなたか助けてください。。。
0735デフォルトの名無しさん
NGNG>void rand()
そんな餌に(略
0736デフォルトの名無しさん
NGNGヘロンの公式:S=√(p(p-a)(p-b)(p-c)) 但し、p=(a+b+c)/2
(p-a)(p-b)(p-c)≦0の時には三角形が出来ないので、入力データに誤りがあることを示せ。」
C言語です。すみませんがお願いします。
0737デフォルトの名無しさん
NGNG#include <stdio.h>
#include <math.h>
int main(void) {
double a, b, c, p, S;
printf("長さaを入力して"); scanf("%lf\n", &a);
printf("長さbを入力して"); scanf("%lf\n", &b);
printf("長さcを入力して"); scanf("%lf\n", &c);
p = (a + b + c) / 2;
if ((p - a) * (p - b) * (p - c) <= 0)
fprintf(stderr, "三角形が出来ないので、入力データに誤りがあること\n");
S = sqrt(p * (p - a) * (p - b) * (p - c));
printf("三角形の面積 %f\n", S);
return 0;
}
0738デフォルトの名無しさん
NGNG1,2,3の時は嘘を付き、4,5,6の時は真実を言うってことでしょう。
0740733
NGNG0741736
NGNG自分でも考えてみたんですけど、コンパイルしてもエラーが
出てしまいました。>>737さんとは違うんですけど、
どのあたりがおかしいか教えていただけますか?
#include<stdio.h>
#include<math.h>
main()
{
float a, b, c, p, s, max, med, min;
printf("input a b c");
scanf("%f %f %f",&a &b &c);
p = (a+b+c)/2.0;
if(p*(p-a)*(p-b)*(p-c) < 0)
printf("no sannkakukei\n");
else{
s = sqrt(p*(p-a)*(p-b)*(p-c));
printf("menseki = %f\n",s);
}
}
0742デフォルトの名無しさん
NGNG↓
scanf("%f %f %f",&a, &b, &c);
0743デフォルトの名無しさん
NGNGはさみうち法はできたんですが、修正はさみうち法とかどうやればいいのか。。。
0744デフォルトの名無しさん
NGNG以下のワイルドカード検索(文字列)にサイズを指定するなりして考えたのですが
うまくいきません。
バイナリデータのワイルドカード比較の方法を教えてください。
int StrMatch( unsigned char *ptn, unsigned char *str ) //0:不一致/1:一致
{
switch( *ptn ){
case '\0':/* NULL */
return( '\0' == *str );
case '*':/* 任意文字列 */
return( StrMatch( ptn+1, str ) || (('\0' != *str) && StrMatch( ptn, str+1 ) ) );
case '?':/* 任意1文字 */
return( ('\0' != *str) && StrMatch( ptn+1, str+1 ) );
default:/* その他 */
return( ((unsigned char)*ptn==(unsigned char)*str) && StrMatch( ptn+1, str+1 ) );
}
}
0745デフォルトの名無しさん
NGNGを(完全ピボット選択ではなく、"部分"ピボット選択のGauss−Jordan法により)
求めるプログラムを作成せよ。このとき、n、mや行列A、Bは標準入力
から入力し、また実際に行列A、Xの積を計算することで、得られた絵画正しいか
どうかをチェックする昨日も実装せよ。またこのプログラムを用いて線形連立方程式の
解や、逆行列を求めた例も示せ。
すみませんがよろしくお願いします。
0746デフォルトの名無しさん
NGNG上式でπ/4を求めるとき、第何項目まで求めれば、3,14159/4との差の絶対値が
0,0001より小になるか、その項数と、そのときのπ/4の近似値をもとめよ。
上の問題がさっぱりです、最初の式って数列ですよね?どなたか解答お願いします。
0748デフォルトの名無しさん
NGNG0749デフォルトの名無しさん
NGNGむしろキサマの国語力の問題。
0750デフォルトの名無しさん
NGNG失せろ。
#include <stdio.h>
#include <limits.h>
#include <math.h>
#define PAI_MODEL ((double)(3.14159/4))
main()
{
long n;
double pai, gosa, l;
pai = 1;
l = 3;
for(n=1; n<LONG_MAX; n++){
if(n%2 == 1){
pai = pai - ((double)1/l);
}else{
pai = pai + ((double)1/l);
}
l+=2;
gosa = PAI_MODEL - pai;
printf("%5ld, %lf == %lf (%lf)\n", n, PAI_MODEL, pai, gosa);
if(fabs(gosa) < 0.0001)break;
}
printf("項数 %ld, 近似値 =%8lf\n",n+2, pai);
return 0;
}
0751デフォルトの名無しさん
NGNGして扱う構造体(struct siken)を定義しなさい.メンバ名は,それぞれsimei, sugaku,
buturi, eigo, gokei とする.名前は大きさ20 の文字配列,点数はすべて整数型とする.
定義した構造体の各メンバに対し,キーボードから入力する次の仕様
の関数を作成して実行しなさい.siken input_data( void);
入力したデータをディスプレイに表示する,次の仕様の関数を作成し
て実行しなさい.void output_data( siken);
siken 型の配列を用いて,問題6,7 の問題を複数人数分扱えるようにしなさい
こういう問題なのですがよろしくお願いします。
0752751
NGNGstruct siken {
char simei[20];
int sugaku;
int buturi;
int eigo;
int gokei;
};
siken input_data( void);
void output_data( siken);
void main( void)
{
struct siken s;
s = input_data();
}
siken input_data( void){
siken data;
cin >> data.simei >> data.sugaku >> data.buturi >> data.eigo;
data.gokei = data.sugaku + data.buturi + data.eigo;
return data;
}
void output_data(siken so){
cout << so.simei<< endl;
cout << so.sugaku<< endl;
cout << so.buturi<< endl;
cout << so.eigo << endl;
cout << so.gokei<< endl;
}
0753751
NGNGうまく出力できません。関数が理解できていないのでしょうか?
0754デフォルトの名無しさん
NGNG問題6,7って何だよ?
0755751
NGNGすみません。
定義した構造体の各メンバに対し,キーボードから入力する次の仕様
の関数を作成して実行しなさい.siken input_data( void); が問6
入力したデータをディスプレイに表示する,次の仕様の関数を作成し
て実行しなさい.void output_data( siken); が問7になります。
0756デフォルトの名無しさん
NGNGwhile文使って整数の2乗を描くプログラムを作れ。
0
1 *
2 ****
3 *********
・
・
・
6 ***********************************
こうやって表示させるためにはどうしたらよろしいでしょうか?
bar graphでは作れるんですが、、
よろしくお願いします。
0757733
NGNGラウンジにスレが立ってたけど一応こっちにも。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1084779763&res=2
0758デフォルトの名無しさん
NGNGmainでoutput_dataを呼んでないぞ。
0760デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=65
こんなんでどうでしょ
0761751
NGNGstruct siken {
char simei[20];
int sugaku;
int buturi;
int eigo;
int gokei;
};
siken input_data( void);
void output_data( siken);
void main( void)
{
int i ;
struct siken data[3];
for (i=0; i<3;i++){
data[i] = input_data();
}
output_data(data[i]);
}
0762751
NGNGsiken data[3];
for (int i=0;i<3;i++){
cin >> data[i].simei >> data[i].sugaku >> data[i].buturi >> data[i].eigo;
data[i].gokei = data[i].sugaku + data[i].buturi + data[i].eigo;
}
return data[i];
}
void output_data(siken s[]){
;for (int i=0;i<3;i++){
cout << s[i].simei<< endl;
cout << s[i].sugaku<< endl;
cout << s[i].buturi<< endl;
cout << s[i].eigo << endl;
cout << s[i].gokei<< endl;
}
}
0763751
NGNGq7.obj : error LNK2001: 外部シンボル ""void __cdecl output_data(struct siken)" (?output_data@@YAXUsiken@@@Z)" は未解決です
Debug/q7.exe : fatal error LNK1120: 外部参照 1 が未解決です。
link.exe の実行エラー
とのエラーが出てしました。
0764760
NGNGのにあるRUIJOの中でtmp=1としてますが
int tmp;
でよろしいです。
KAIJOを間違って先に作っちゃったんでその改造の残りということでw
もっと効率のよさそうなものもあるとおもうんで参考までにしといてくだせ
0765デフォルトの名無しさん
NGNGプロトタイプ宣言ではvoid output_data(siken);
定義してるところではvoid output_data(siken s[])
なのが原因
0767デフォルトの名無しさん
NGNGおねがいしま〜す!
0768デフォルトの名無しさん
NGNGとりあえずさ、実際に実行してみて何がどうなっていけないのかくらいは書こうよ
0769デフォルトの名無しさん
NGNG#include <stdio.h>
int main(void)
{
int n;
for (n = 0; n < NUM; ++n) {
int tmp;
for (tmp = 0; tmp < n * n; ++n)
putchar('*');
0770769
NGNGせっかくだから完成させとく。
#include <stdio.h>
#define NUM 6
int main(void) { int n = 0; while (n < NUM) { int tmp = 0;
for (putchar(n + '0'); tmp < n * n; ++tmp) putchar('*'); puts(""); }
return 0; }
printf()の代わりにputs()とputchar()使ってる分高速
ってことはないかな。
0771デフォルトの名無しさん
NGNGとりあえず無限ループだよね
0772デフォルトの名無しさん
NGNGstruct health_card{
char name[20]; //名前
double height; //身長
double weight; //体重
};
health_card input_card( void); //health_card の各メンバへ入力する関数
void output_card(health_card x); //health_card の各メンバを出力する関数
int search_card( int sw, health_card data[], int n);
//構造体の配列のうち,身長が最も高い者,体重の最も重い者を求める関数
//第一引数:sw が0 ならば,身長が最も高い者を求める.そうでなければ体重の重い者を求める.
//第二引数:構造体health_card の配列
//第三引数:配列の全要素数
//戻り値:それぞれ最大である配列要素の索引(インデックス)
void main( void)
{
health_card data[10]; //10人分のデータを宣言
int i;
for( i=0; i<10; i++){ //配列へデータを入力
data[i] = input_card();
}
i= search_card( 0, data, 10); //身長の最も高いものを検索
cout << "身長の最も高い人 "; output_card( data[i]); //出力
i= search_card( 1, data, 10); //体重の最も重いものを検索
cout << "体重の最も重い人 " ;output_card( data[i]); //出力
}
0773772
NGNG{ 埋めていただきたいところ 1
}
void output_card(health_card x) //health_card の各メンバを出力する関数
{ 埋めていただきたいところ 2
}
int search_card( int sw, health_card x[], int n) //身長,体重の最大値を検索する関数
{ 埋めていただきたいところ 3
}
こんな問題なのですが、よろしくお願いします。
0774デフォルトの名無しさん
NGNG意図した出方をしたのかな?と、心配になってしまったり。要らぬ心配ですか。
はいすいません。
0775デフォルトの名無しさん
NGNG問 π/4=1-1/3+1/5-1/7+1/9-1/11+・・・・
という計算式でπ/4を求める時、3.14159/4との絶対値との差が0.0001より小になるのは
のは何項目か?その項数と、そのときのπ/4の近似値を求めよ。
という問題です・・・・。while文を使って求めるみたいなのですが・・・。
お願いします。
0778デフォルトの名無しさん
NGNG0779デフォルトの名無しさん
NGNG俺流かもしれんが。出力も考慮。
//health_card の各メンバへ入力する関数
health_card input_card( void){
health_card st;
cout << "名前(文字):";
cin >> st.name;
cout << "身長(数字):";
cin >> st.height;
cout << "体重(数字):";
cin >> st.weight;
return st;
}
0780デフォルトの名無しさん
NGNG//health_card の各メンバを出力する関数
void output_card(health_card x){
cout << "名前:" << x.name << "身長:" << x.height << "体重:" << x.weight << endl;
}
//身長,体重の最大値を検索する関数
int search_card( int sw, health_card x[], int n){
int i,ret = 0;
for(i = 0; i < n; i++){
if(sw == 0){
if(x[ret].height < x[i+1].height && x[i+1].height >= 0)ret = i + 1;
}else{
if(x[ret].weight < x[i+1].weight && x[i+1].weight >= 0)ret = i + 1;
}
}
return ret;
}
0781709
NGNGありがとうございます。
非常に助かりました…。感謝感激です。
0782デフォルトの名無しさん
NGNGしたがってwhileを抜けてからnから1引いたものを項数とする。または
nの初期値を1としておきn++を各項の計算の前に書く。
後半がわかりません、教えてください
#include <stdio.h>
#include<math.h>
int main(void)
{
double sum, x=1.0/5, y=1.0/239, ax, ay;
int n=2;
double an;
double maxerr = pow(10,-14);
double err = 1.0;ax=x;
ay=y;
sum=4*ax-ay;
printf("%17.14f\n",4*sum);
while(err >= maxerr){
ax=-ax*x*x;
ay=-ay*y*y;
an = (4*ax-ay)/(2*n-1);
sum += an;
err = fabs(an/sum);
printf("%17.14f\n",4*sum);
n++;
}
printf("π=%.14f ,収束に要した項数%d ,|ai/Si|=%.14E\n", sum*4.0,n,err);
return 0;
}
0783デフォルトの名無しさん
NGNGxとxの2乗の10進数表示の両方にdを含むものをすべて出力するプログラムをつくりなさい。
ただし,次のプロトタイプ宣言で示すように,整数xとdを仮引数として,
xとxの2乗の10進数表示の両方にdを含む場合に1,そうでない場合に0を返す関数hit_digitを作成しなさい。
この関数hit_digitの作り方を教えて下さい
おながいします
0784デフォルトの名無しさん
NGNGint find(TYPE a[], int n, TYPE b)
を作成せよ。なお、配列aと位置を探すbは関数テンプレートを用いて、int型、double型でも
可能なようにせよ。また、bがaに含まれていない場合には-1を、複数含まれている場合には、
最も小さな位置を返却するものとする。
という問題なんですけど教えてもらえませんか。
while文かfor文か検討が着かないので見通しだけでも教えてください。
よろしくお願いします。
0785デフォルトの名無しさん
NGNGwhileでもforでも出来るけど、とりあえず方針。
for(int i=0;i<n;i++)ってループで判定。ヒットする要素があったらループをbreakで
抜ける。ループを抜けた後、i==nだったら-1を返す。i!=nだったらiを返す。
この問題のヤマはテンプレートっぽいけどね
0786デフォルトの名無しさん
NGNGヒントは>>205の問題
0787デフォルトの名無しさん
NGNGプログラムを教えてください。
どうかお願いします。
0788デフォルトの名無しさん
NGNGわけわかめ。n個の乱数を生成するのまではわかったけど、
その乱数をどういう風に利用するんだ?
0789デフォルトの名無しさん
NGNG二分木に配置したいんじゃない?
0790デフォルトの名無しさん
NGNGとりあえず>>1嫁
0791デフォルトの名無しさん
NGNGよく見ろ、void rand()だぞ。
0792デフォルトの名無しさん
NGNG0793デフォルトの名無しさん
NGNGってなんですかねぇ・・・無知ですまぬ
0794デフォルトの名無しさん
NGNG2次元配列を使って、
1 2 3 4 5
10 9 8 7 6
11 12 13 14 15
20 19 18 17 16
21 22 23 24 25
というものを作れというものですが、繰り返しがうまくいきません。お願いします。
0795デフォルトの名無しさん
NGNG神神いってるけどさー
Cで作るのかC++でつくるのかはっきりいったらどうなのよ
0796デフォルトの名無しさん
NGNG意味わからん。
問題を省略すんな。
0797デフォルトの名無しさん
NGNG礼はいらぬ。
0798デフォルトの名無しさん
NGNG奇数行と偶数行で分岐。つまり行を埋めるコードを二種類書く。
1行ずつでなく、2行を1セットとして処理。
普通に並べた後、偶数行だけ反転する。
0799デフォルトの名無しさん
NGNG#define SIZE 5
int main(){
int a[SIZE+2][SIZE+2];
int i,j;
int posx,posy,count;
for(i=1;i<SIZE+1;i++){
for(j=1;j<SIZE+1;j++){
a[i][j]=0;
}
}
for(i=0;i<SIZE+2;i++){ //仮想壁
a[0][i] = 1; a[SIZE+1][i] =1;
a[i][0] =1; a[i][SIZE+1] =1;
}
posx = posy = 1;
for(count=1;count<SIZE*SIZE+1;count++){
a[posx][posy] =count;
if(a[posx-1][posy]<1) posx--;
else if(a[posx+1][posy]<1) posx++;
else if(a[posx][posy+1]<1) posy++;
else break;
}
for(i=1;i<SIZE+1;i++){
for(j=1;j<SIZE+1;j++){
printf("%3d",a[j][i]);
}
printf("\n");
}
return 0;}
ネタに走ってネズミを走らせてみた。って、C++だったかorz
0800デフォルトの名無しさん
NGNGfor(i = 0; i <= 24; i++)
a[i / 5][i % 10 < 5? i % 5 : 4 - i % 5] = i + 1;
0801デフォルトの名無しさん
NGNG#include <iostream>
using namespace std;
#define SIZE 5
int main(){
int i,u,num;
num = u = i = 0;
int a[SIZE][SIZE+1];//+1はずせないのはなぜ??回答もとむ
//入力
for(u = 0;u < SIZE;){
for(i = 0; i < SIZE;i++){
num++;
a[u][i] = num;
}
u++;
if(u < SIZE){
for(i = SIZE; i > 0;i--){
num++;
a[u][i] = num;
}
}else{
break;
}
u++;
}
0802デフォルトの名無しさん
NGNGfor(i = 0; i < SIZE; i++){
if(u%2 != 1){
cout << a[u][i];
cout << " ";
}else{
cout << a[u][i+1];
cout << " ";
}
}
cout << endl;
}
return 0;
}
0803デフォルトの名無しさん
NGNG>int a[SIZE][SIZE+1];//+1はずせないのはなぜ??回答もとむ
>for(i = SIZE; i > 0;i--){
> num++;
> a[u][i] = num;
↑ i の範囲: 1〜SIZE
0804デフォルトの名無しさん
NGNG0805デフォルトの名無しさん
NGNG{
return a/b;
}
0806デフォルトの名無しさん
NGNGこういうことか?
#include <cstdlib>
const int n = 4;
namespace WhereIsAnEsper {
void rand() { for (int i = 0; i < n; ++i) ::malloc(::rand()); }
}
int main() { WhereIsAnEsper::rand(); return 0; }
0807デフォルトの名無しさん
NGNGint hoge(int a,int b)
{
return a/b;
}
int main(void)
{
int x,y;
printf("二つの整数を入力");
scanf("%d %d",&x, &y);
printf("%d/%d=%d\n"x,y,hoge(x,y));
return 0;
}
0808デフォルトの名無しさん
NGNG助かった〜ありがと〜
0809デフォルトの名無しさん
NGNG#include <stdio.h>
int main(int argc, char *argv[])
{
char s[2], buf[20];
char *ret;
FILE *fp;
if (argc > 1) {
fp = fopen(argv[1], "r");
if (fp == NULL) {
strcpy(buf, "ERROR: ");
strcat(buf, argv[1]);
puts(buf);
exit(1); }
ret = fgets(s, 2, fp);
if (ret != NULL) {
printf("A top character code is %d. \n", s[0]); }
else {
printf("It is an empty file. \n"); }
fclose(fp); }
else {
printf("Processing was not performed. \n"); }
return 0;
}
0810いお
NGNGランを作ってください
0811デフォルトの名無しさん
NGNGそんなものはない。
0812デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1084749585/193
マルチだ
0813デフォルトの名無しさん
NGNG0814デフォルトの名無しさん
NGNG∧∧∧∧∧∧∧∧∧∧∧∧∧
/ \ ,,,=;-●-、-、
そんなエサであたしがクマー!! > /-二 _二マ、O、-、
\ アリエナーイ!/ /ィ、,,,"7'、_l,,l l l))
∨∨∨∨∨∨∨∨∨∨∨∨∨ l/> < l l l"
ll rーヽ、 l_l l
_,,..=、、、_ l l lVV、 l / /
\ ,. 'rQ゚=-'''二ニ=、 。 ;1、i、 / _,,/ /
\" / }-==ノ-‐‐、、o /ノノ7ァーr''=‐''"ヽ
l φ、ーlマ ̄,ノ,_,'i、゚ ノイi ,..、 _,..、 l ,くAラ/ l 丿⌒
/l \'イ",.'"。ヽ ̄ ,ィ、l' lミ /__,,.>" / ̄_,, / ⌒ ン⌒
ll"l ノ\l'ゝ,,、.ノ/" l,,,ノィニ"´ 、 `ァ" / ⌒ン ⌒
ヾ、! ヽl\;j='∠;-ァノ,大K~ , iぐ>-、/ /) ⌒ ン⌒
`ヽ、 ヽ、ヽ、,,>''" 'ー^`" ,,.-。−'、ート、 /"//⌒
` ー--‐'''l`'' 、 ( 0r'⌒il ``ー'",,/ ___、、 、、
ヽ ー'⌒)ー---ヽ゚ヽ-'ノ / ┼┼ __
ヽ、_,,.-"  ̄ r、_L_ /\ /
0815デフォルトの名無しさん
NGNGそれじゃできないんスけど…。
0816デフォルトの名無しさん
NGNGwhile文を使って、整数を入力し、今、入力した数と、その直前に入力した数を足す
プログラムを0が入力されるまで繰り返すプログラムを作れ。
(例)
>4
>5
9
>91
96
>−8
83
>0
終了
お願いします。分かりません。
0817デフォルトの名無しさん
NGNGint hoge(double)
{
return 1;
}
0818デフォルトの名無しさん
NGNGいや、実は >>813 は sin, cos 関数の誤差を見積もるために(ry
0819デフォルトの名無しさん
NGNGint n, m;
printf(">");
scanf("%d\n", &n);
if (n == 0) goto END;
while (1) {
printf(">");
scanf("%d\n", &m);
if (m == 0) break;
n += m;
printf("%d\n", n);
}
END:
printf("終了\n");
0820デフォルトの名無しさん
NGNGint main(){
int i,j=0;
while(1){
printf("> ");
scanf("%d",&i);
if(i==0)break;
printf("%d\n",i+j);
j=i;
}
printf("終了\n");
return 0;
}
>819
累計求めてどうする。
0821デフォルトの名無しさん
NGNG仕様を勘違いしてない?
>>816
#include <iostream>
using namespace std;
int main(int argc, char argv)
{
int i, j;
cin >> i;
if(i) {
cin >> j;
while(j) {
cout << i + j << endl;
i = j;
cin >> j;
}
}
return 0;
}
0822デフォルトの名無しさん
NGNG>>815
これでどうだ*/
#include<stdio.h>
int hoge(int a,int b)
{
return a/b;
}
int main(void)
{
int x,y;
printf("二つの整数を入力?,? ");
scanf("%d,%d",&x, &y);
printf("%d/%d=%d\n",x,y,hoge(x,y));
return 0;
}
0823デフォルトの名無しさん
NGNG#define SUCCESS 1 /* 成功 */
#define FAILURE 0 /* 失敗 */
typedef int data_t; /* データ型 */
int queue_data[QUEUE_SIZE]; /* スタック本体 */
int queue_head; /* データ先頭 */
int queue_tail; /* データ末尾 */
待ち行列を初期化する関数 void queue_initを作り
待ち行列が空であるかどうかを判断する関数 int is_queue_empty
は,待ち行列が空であるときに 1 を,空ではないときに 0 を返すものとする。
分からないのでお願いします。
0824デフォルトの名無しさん
NGNG0825デフォルトの名無しさん
NGNGできれば初期化する関数の方もお願いします。
0826KEITA
NGNGx、yをともに【0,1】区間の一様乱数であるとし、乱数の組(x、y)を多数発生させるとこれらの点は一辺の長さが1の正方形内に一様に分布するはずである。
このことを利用して、直径1の円の面積を計算するプログラムを作りなさい。
#include <stdio.h> /*入出力関数を利用するときに必要*/
#include <stdlib.h> /*乱数を利用*/
#include <time.h>
#include <math.h> /*数学関数を利用する時に必要*/
#define START_RAND srand((time_t) time(NULL))/* 乱数発生*/
#define PI 3.14159/*円周率マクロ*/
#define POINTMAX 10000
double rand_1(int n)
{return ((double)(rand()%(n+1))/n);}
main()
{long cnt,cntCir;
double x,y,a,b;
START_RAND;
cntCir = 0;
for(cnt = 0;cnt < 10000;cnt ++)
{
x = rand_1(POINTMAX);
y = rand_1(POINTMAX);
a = 0.5;
b = sqrt(0.25-pow(x-0.5,2));
if(y <= a+b && y >= a-b){cntCir++;}}
printf("Point Sqr:%ld Cir:%ld\n",cnt,cntCir);
printf("Menseki Sqr:1 Cir:%lf\n",0.5*0.5*PI);}
このプログラムに始めのほうにあるみたいに日本語で説明をつけたいんですけどよくわかりません。どなたか御願いします。
0827デフォルトの名無しさん
NGNG問題「四点をクリックし、それらをクリックした順に結ぶ開いたポリラインを描画するプログラムを作成」
という問題です!クリックした順に結ぶことができませんでした。cygwin textpad
0828KEITA
NGNG#include<stdio.h>
#include<math.h>
#define a 0.95
#define V 100
main()
{
double x;
int t;
t = 0;
fprintf(stderr,"初期値x=");
fscanf(stdin,"%lf",&x);
for(t=0;t<V;t++){
x = tanh(a*x);
fprintf(stdout,"x[%d]=%f\n",t+1,x);}}
こっちのほうも御願いします。
マジなきそうなんでホントお願いします。
この行はこうゆうことをしているって感じの簡単な説明をしていただければあとは自力で頑張るので。
0829デフォルトの名無しさん
NGNG#include <TinyFK/TinyFK.h>
int main(int argc, char *argv[])
{
TFK_Windowwin;
TFK_Lineline;
TFK_Vectorstart, end, end2,end3;
double sX, sY, eX, eY, aX,aY,bX,bY;
win.setBaseSize(520, 520);
win.setCanvas(10, 10, 500, 500);
win.open();
start = win.waitMouse(1);
0830デフォルトの名無しさん
NGNGend2 = win.waitMouse(1);
end3 = win.waitMouse(1);
sX = start.x; sY = start.y;
eX = end.x; eY = end.y;
aX = end2.x; aY = end2.y;
bX = end3.x; bY = end3.y;
line.create(sX, sY, eX, eY);
win.draw();
line.create(eX, eY, aX, aY);
win.draw();
line.create(aX, aY, bX, bY);
win.draw();
while(win.wait() == true){
}
return 0;
}
ここまではできたのですが、何が悪くて、クリックして線が出ないのかわかりません。
0831デフォルトの名無しさん
NGNG何が間違ってるのかわかりませんです。
0832デフォルトの名無しさん
NGNG0833デフォルトの名無しさん
NGNG何つー糞コード…
概要。
正方形(0,0)(1,0)(0,1)(1,1)の中にランダムに点(x,y)を取り、それが
中心(0.5,0.5)、半径0.5の円の中に入っていればcntCirを1増やしている。
(後半のa,bとyについての関係式が円の中に入っているかどうかの条件式)
もし試行回数が充分大きければ、
(円の中にある点の数/点の総数)≒(円の面積/正方形の面積)とできる、ってのがモンテカルロ法。
printf文の時点でのcntが点の総数、cntCirが円の中に入った点の数。
>828
こっちも糞コードだな。なんでSTDERR使う…
x[n+1] = tanh(a*x[n])を延々と(今回は100回)繰り返したら値がどうなるか、の実験。
計算は面倒だが、作図は容易。
1)y=sinh(x)とx=sinh(y)を引く。以下、前者をA、後者をBと呼ぶ
2)初期値をx[0]とするとき、直線x=x[0]を引く。
3)x=cとAの交点からX軸に平行に直線を引く。この線はy=x[1]。
4)その線とBがぶつかったところからY軸に平行に直線を引く。この線がx=x[2]。
5)その線とAがぶつかったところからX軸に平行に直線を引く。この線がy=x[3]。
以下、繰り返し。
0834833
NGNG0835デフォルトの名無しさん
NGNGCでお願いします
0836デフォルトの名無しさん
NGNG出力も文字列でいいのか?
0837KEITA
NGNGやっぱり1つめは長すぎますよね…2個目も最初はもっと長かったんですが短くなったほうなんです。
ありがとうございました。
0838デフォルトの名無しさん
NGNG0839デフォルトの名無しさん
NGNG#include <stdio.h>
#include <stdlib.h>
int main(int argc, char **argv)
{
if (argc > 1) {
printf("%d\n", strtol(argv[1], NULL, 2));
}
return EXIT_SUCCESS;
}
0840デフォルトの名無しさん
NGNGstrtol()の第2パラメータの使い方が大間違い。
0841デフォルトの名無しさん
NGNGWin32APIごりごりで良いなら,すぐ書けるが?(cygwinのgccでも動く)
そんなマイナーToolKit使っているのは,その講義受けてる連中だけだぞ。
0842デフォルトの名無しさん
NGNG0843デフォルトの名無しさん
NGNG誰だよ
0844デフォルトの名無しさん
NGNG0845デフォルトの名無しさん
NGNGこれをコンパイルして表示されるエラーが何を意味しているのかが
わかりません。
/cygdrive/c/DOCUME~1/user/LOCALS~1/Temp/cc3bgsz8.o(.text+0x254):
IN function `main':
/home/user/C/ex/sect7/exc0703.c67:undefined reference to`_set'
collect2:ld,マ・ケ・ニ。シ・ソ・ケ 1、ヌスェホサキ、キ、ソ
この場合のエラーメッセージの意味を教えて頂けないでしょうか?
環境 OS WinXP SP1
コンパイラ cygwin gcc -v 3.3.1
です。
0846デフォルトの名無しさん
NGNG関数setが見つからない。
というか、それを作れという宿題だろ。
0847デフォルトの名無しさん
NGNG何度挑戦してもうまくいきません。
0848デフォルトの名無しさん
NGNG0849デフォルトの名無しさん
NGNGfor (j = 0; j < prime_count; j++) {
if (i % primes[j] == 0) add_prime(i);
}
}
0850デフォルトの名無しさん
NGNG0851デフォルトの名無しさん
NGNG0852デフォルトの名無しさん
NGNG#include <string.h>
int compere(char);
int main(void){
char name[4][10],char getname[4][10];
int i;
for(i=0;i<4;i++){
scanf("%s",name[i]);
}
getname=compere(name);
for(i=0;i<4;i++){
printf("%d%s\n",i+1,name[i]);
}
}
int compere(char name){
char getname[4][10];
getname=name;
return getname;
}
main関数で文字を入力して変数nameに入れたものを、compere関数でgetnameに入れてmainに返したいのですが
さっぱりです。お願いします。
本来は文字を比較したものを返すのですが、とりあえず単純な動作すらできないので・・・。
0853デフォルトの名無しさん
NGNG0854デフォルトの名無しさん
NGNGchar *p;
for(i=0;i<4;i++)
{
fgets( getname[i], 10, stdin );
( p=strrchr(getname[i],'\n' ) ? *p='\0': 0;
}
と直接入れれば良いのでは?
後、「compere」は比較だろ?
名前と違う処理をさせようとするな。
0855デフォルトの名無しさん
NGNG添付ファイルを読み込んで、
全ての数字(整数)の和を求める
プログラムを作成してください。
添付ファイル
120
3001
-56
0
-670
5
-98
0857デフォルトの名無しさん
NGNGどううまくいかないのかを書かないのなら、全部やって下さいと書いた方がいい。
0859デフォルトの名無しさん
NGNGそっちは問題文の方かと。
0860デフォルトの名無しさん
NGNGレスどうもです。
出来れば関数間でやりとりしたいのですが。
main{
name[0]-[3];
name[0]-[3]をcomへ;
getname受け取る;
printfでgetname[0]-[3]の中身はcomで代入したname[0]-[3];
}
com[
getname[0]-[3]←name[0]-[3];
getnameをmainへ;
}
こんな感じにしたいのですが。
0861デフォルトの名無しさん
NGNGstrcpy() と同じように汁
0862デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=66
参考程度にどうじょ
0863デフォルトの名無しさん
NGNG最終的にはmain関数からのnameをcom関数で比較、リソートしたものをgetname[0]-[3]に入れて返したいので。
0864デフォルトの名無しさん
NGNG#include <stdio.h>
int main()
{
int s = 0;
int t = 0;
FILE *fp;
fp = fopen("添付ファイル.txt", "r");
if(!fp) return -1;
while(fscanf(fp, "%d", &t) != EOF){
s += t;
}
printf("%d\n", s);
fclose(fp);
return 0;
}
0865デフォルトの名無しさん
NGNGint b[4] = { 1,2,3,4 };
int c[4] = { 5,6,7,8 };
をコンパイルすると、1行目でb,cが未定義のため当然エラーになりますが、
メモリ上に、
[aの内容][bの内容][cの内容]
( = [ bの先頭アドレス ][ cの先頭アドレス ][1][2][3][4][5][6][7][8])
との順に並ばせるにはどうしたらよいでしょう。
0866デフォルトの名無しさん
NGNG規格上無理。ひょっとしたら並ぶかも知れないが、並ばないかも知れない。
0867デフォルトの名無しさん
NGNGとりあえず、思いつくのは構造体だけど、
パディングが入る可能性もあるしな。
0868デフォルトの名無しさん
NGNG>int a[2] = { &b, &c };
アドレスを格納したいなら、型は「int *」だろう
0869デフォルトの名無しさん
NGNGint z = 0;
int a[2] = { &z + 3, &z + 7 };
int b[4] = { 1, 2, 3, 4 };
int c[4] = { 5, 6, 7, 8 };
これじゃ駄目っぽいな
そもそも a, b, c と続けて宣言したらメモリ上に並ぶのか?
>>865
格納するだけなら型は不問
意味的には int * が正解
0870デフォルトの名無しさん
NGNG0871デフォルトの名無しさん
NGNGリニアで欲しけりゃ,ベタ配列で確保すべき。
int a[]={ a+2, a+6, 1,2,3,4,5,6,7,8 }
0872デフォルトの名無しさん
NGNGsizeof(int)!=sizeof(int *) ならどうする気かと(ry
0873デフォルトの名無しさん
NGNG0874デフォルトの名無しさん
NGNG肝心なのは int a の時 sizeof(&a)==sizeof(int *) だよ
というか配列の値を後で変更するコード書くのが正解じゃないか?
0875874
NGNG0876865
NGNGデータがどういう並びをするかは処理系に依存するのは承知なのですが、
必ず定義した順にメモリ上に並ぶという前提で、どうにかならないかと思ったのです。
何をやりたいかといいますと、
int *a[] = { &b, &c, &b, &b, &c, &b, &b, ..., null };
int b[4] = { 1,2,3,4 };
int c[4] = { 5,6,7,8 };
のように、データをブロックとして持つことでデータ量を減らし、
1)配列aの先頭から、(aのサイズ)+(bのサイズ)+(cのサイズ) の領域をバイナリデータとしてファイルに保存しておく。
2)アプリケーションは、保存したバイナリデータを一気に読んでメモリ上に置く。
3)データの先頭アドレス(= aのデータの先頭だとする)から int*型のデータを順に読み、そのデータと先頭アドレスとの
オフセットを計算してその先にあるデータ( bやcの中身)を解析する。
…というようなことをやりたかったのです。
こういうやり方の場合、a がファイルの先頭にあると、都合が良いなーと思ったので。。。
0877デフォルトの名無しさん
NGNGプログラムの組み方がわからないのでよろしくお願いします
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=223
0878デフォルトの名無しさん
NGNG普通にmallocとか使えば?
0879デフォルトの名無しさん
NGNGmalloc とかで abc のブロックをまとめて取得し、a にはアドレスではなくオフセット値を入れる
書き込みは abc 全ての範囲に対して、読み込みは a のオフセット値をアドレスに書き直す
アドレスは下手すると変化するから、オフセット値のほうが後々便利
これじゃ駄目?
0880デフォルトの名無しさん
NGNGファイルに書き出すなら,a,b,cの作成時にそれぞれが
メモリ上で連続している必要はない。
ファイル上で連続になるよう書き出せば,それで十分だろ?
あるヘッダファイルに、
typedef struct {
char aaa[20];
uchar *hhh;
uchar *lll;
}STRUCT;
という構造体を宣言してるんですが、メインでこれを宣言するのに
STRUCT *aaa;
ってやるとコンパイルは通るんですが、
後にこのメンバにデータを入れようとするとセグメンエラーになります
ヘッダの宣言は変えたくないんですが、どうしたらいいでしょうか?
LINUX でボーランドのコンパオら使ってます
0882881
NGNG0883デフォルトの名無しさん
NGNGポインタについて勉強汁。
0884デフォルトの名無しさん
NGNGJavaならそれはまさに…
∧_∧
( ´∀`)< ぬるぽ
0885881
NGNGはあ やっぱそうですか
実態はどこにあるかって話だと思ったんですが
すると
char data[256]とかとって
STRUCT *aaa = data;
とかやってみたんですが意味が違うみたいですね
0886デフォルトの名無しさん
NGNG0887デフォルトの名無しさん
NGNGぬるぽー!は大人しく,ソース全部晒せ。
0888デフォルトの名無しさん
NGNG>メインでこれを宣言するのに
STRUCT aaa;
と、実体を宣言するのに何か不都合でも?
0889881
NGNGソースって これだけなんですが
これがヘッダ内で宣言されていて↓
typedef struct{
charaaa[20];
char*lll;
char*bbb;
}STRUCT;
void main()
{
STRUCT*mona;
mona->bbb= 0;
}
これで死んでしまいます
0890881
NGNGああ えーと
そこでポインタ宣言したいのは、
その *aaa を
次の関数の引数にしたいんです
後だしですみません
0891デフォルトの名無しさん
NGNGSTRUCT giko;
STRUCT *mona = &giko;
0893865
NGNGaの配列のサイズや、b,cのアドレスは、コンパイルするまで不明なので、aの中身に
「あらかじめ計算した【bやcまでのオフセット】」を入れることは困難なのです。
(ちなみに、データセクションの先頭アドレスはいつも固定だと考えてください)
要するに、aの配列の中身である「&b」,「&c」などの値そのものがコンパイラ任せであるため、
アプリケーションでロードした後も、【バイナリファイルとして保存したときと全く同じ状態】で、
かつ、【先頭にaが置かれている状態】でなければ、a,b,cがどこにあるのか分からなくなってしまいます。
int b[4] = { 1,2,3,4 };
int c[4] = { 5,6,7,8 };
int *a[] = { &b, &c, &b, &b, &c, &b, &b, ..., null, (int*)&a };
とやって、ロード後に、(先頭アドレス+ファイルサイズ-sizeof(int*)) のところから a を求めるようにすればなんとかなるのですが、
あまりにもかっこ悪いので、うまいやり方がないかと思っているのですが…。
0894デフォルトの名無しさん
NGNG( ・∀・) | | ガガッ
と ) | |
Y /ノ .人
/ ) .人 < >__Λ ∩
_/し' < >_Λ∩Д´)/
(_フ彡 V`Д´)/ / ←>>881
/ ←>>884
0895デフォルトの名無しさん
NGNG0897デフォルトの名無しさん
NGNG簡単そうなのだったら、時間を見て挑戦してみるわ。
0898デフォルトの名無しさん
NGNG議員年金をなんとかするという大きな問題があるのですが
0899デフォルトの名無しさん
NGNGa がインデックスセクション/b 以降がデータセクションという解釈でOK?
んで a のサイズが変動する可能性があると (b 以降のサイズは固定?)
&b - &a で b のオフセット、&c - &a で c のオフセットを出して、
後から a に書き込むのは駄目なのかな?
最終手段は、インデックスとデータを別々のファイルに保存する事
意外と使われる手法なので試してみるのも良いかも
0900デフォルトの名無しさん
NGNGおまいのその考えの方が、よっぽど格好悪い。
単純に領域を確保して、ポインタでアクセスすればなんの問題もないだろ。
0901デフォルトの名無しさん
NGNGまあそう言うな。俺だって >>893 の気持ちは分かる。
……まあ、もうちょっと格好良いやり方は思いつきたいところだけどね。
0902デフォルトの名無しさん
NGNG#include <stdio.h>
int main(int argc, char *argv[])
{
char s[2], buf[20];
char *ret;
FILE *fp;
if (argc > 1) {
fp = fopen(argv[1], "r");
if (fp == NULL) {
strcpy(buf, "ERROR: ");
strcat(buf, argv[1]);
puts(buf);
exit(1); }
ret = fgets(s, 2, fp);
if (ret != NULL) {
printf("A top character code is %d. \n", s[0]); }
else {
printf("It is an empty file. \n"); }
fclose(fp); }
else {
printf("Processing was not performed. \n"); }
return 0;
}
0903デフォルトの名無しさん
NGNG問題点:
標準関数のexit(), strcpy(), strcat()を使っているのに、
対応するヘッダファイルを読み込んでいないため、
その関数を使う場所でコンパイラが警告を出すかもしれない。
解決方法:
対応するヘッダファイルを読み込めばよい。
具体的には#include <stdio.h>の後の行に
#include <stdlib.h>
#include <string.h>
を追加する。
問題点その2:
インデントが分かり辛く、人間の読むものではない。
解決方法:
indentコマンドで自動整形する。
(あるいは、>>902のリストを理解するのをあきらめる)
0904デフォルトの名無しさん
NGNG何勉強してたんだろ
0905904
NGNG0906デフォルトの名無しさん
NGNG前にどこかで見たような気もするが。
>strcpy(buf, "ERROR: ");
>strcat(buf, argv[1]);
>puts(buf);
ムダ。
あと構造がよくない。
0907デフォルトの名無しさん
NGNG問題点:
プログラムに与えるファイル名が長い場合、ファイルがオープンできないときの
エラーメッセージ生成の過程でbufの領域を突破する。
対策法:
strcpy(buf, "ERROR: ");
strcat(buf, argv[1]);
puts(buf);
などというアホなことをせず、
printf("ERROR:%s\n",argv[1]);
とする。
0908デフォルトの名無しさん
NGNG問題点:
コマンドライン引数が2以上あっても1つのファイルしか調べない。
解決法:
・for (i = 1; i < argc; i++) { /* ... */ } とかループさせる。
・ファイルが開けないときは途中でexitしないで警告メッセージを出すようにする。
>>906
puts(strcat(strcpy(buf, "ERROR: "), argv[1]));
よかマシだとは思うが。
素直にprintf("ERROR: %s\n", argv[1]);
ですな。やっぱ。(あ、>>907で既出だ)
0909デフォルトの名無しさん
NGNG何を目的としたプログラムなのか
0910デフォルトの名無しさん
NGNG探し解決する問題だと思うのですが。私自身#include <stdlib.h> #include <string.h>
を追加するぐらいしか分からなかったものですから、質問させていただきました。
もっともっと精進したいと思います。
0911デフォルトの名無しさん
NGNGウツダ、ウツダドンドコド-ン!。・゚・(ノД`)・゚・
0912デフォルトの名無しさん
NGNG0913デフォルトの名無しさん
NGNG0914デフォルトの名無しさん
NGNGname[0]-[3];
name[0]-[3]をcomへ;
getname受け取る;
printfでgetname[0]-[3]の中身はcomで代入したname[0]-[3];
}
com[
getname[0]-[3]←name[0]-[3];
getnameをmainへ;
}
こんな感じにしたいのですが。
0915デフォルトの名無しさん
NGNGすまん、俺エスパーじゃないので、その書式は意味がわからん。
0916デフォルトの名無しさん
NGNGそんな感じにしてみたらいいんじゃない?
0917デフォルトの名無しさん
NGNG入力した文字列をアルファベット順に並び替えるプログラムがわかりません。
できるだけ、qsortとか使わずに作ろうと思っています。
どなたか教えて下さい。
今のところこんな感じです。。
#include<stdio.h>
#include<string.h>
main()
{
int i,j,temp;
char moji[128];
scanf("%s",&moji);
for(i=0;i<strlen(moji);i++)
{
int mi=moji[i];
int mj=moji[j=i+1];
if('mi'<'mj')
{
temp=moji[i];
moji[i]=moji[j];
moji[j]=temp;
}
}
printf("%s",moji);
}
0918865
NGNGaのサイズもbのサイズもcのサイズも、あるいは、b,c,d,e,f,...などすべての個数が可変です。
イメージ的には、圧縮ファイルを展開するデコーダのようなアプリを作ろうとしていると考えてください。
sample.bin などのデータセットがあって、それをアプリケーションdeocde.exeにインプットすると、
データセットを解析し、展開されたデータ sample.dat を吐く…そういうアプリケーションです。
ですので、インプットはぜひ「1つ」のバイナリファイルにしたいですし、
ヘッダやオフセット等の情報は1バイトでも小さくしたいと考えています。
(アルゴリズム的なことや、圧縮率云々については置いておいてください)
>>865 >>876 >>893 の一連の例でいうと、配列aがファイルの先頭でない場合、どうしてもファイルの先頭から
aへのオフセット情報(たかだかsizeof(int*)バイトですが)が必要になります。
しかし、インデックス配列であるaがファイルの先頭にあると保障されていれば、
純粋に(【aのサイズ】+【bのサイズ】+【cのサイズ】)のファイルサイズで済むと考えたわけです。
長い時間おつきあいしていただいてすみません。
0919デフォルトの名無しさん
NGNG作業がしたいんですけど よくわかりまへん。ご教授ください
#include<stdio.h>
int main(void){
int a[4]={1,2,3,4,5};
int key;
int i,j;
scanf("%d",&key);
for(i=0;i<=4;i++){
if(a[i]==key){
a[i]=a[i+1];
}
}
for(j=0;j<=4;j++){
printf("%d\n",a[i]);
}
return(0);
}
0920デフォルトの名無しさん
NGNGだからぁ、、、配列の代わりにポインタでアクセスするだけで済むんじゃないのぉ?
0922デフォルトの名無しさん
NGNGプログラミングとPPは相容れない物だと感じますた。
0923デフォルトの名無しさん
NGNGありがとうございます。
できれば、アルファベットをどうやって比較するかを教えていただきたいのですが。
よろしくお願いします。
0924デフォルトの名無しさん
NGNGデータを作成するエンコーダー側でアドレス(オフセット)計算して埋め込んでやるのが確実では。
>>920
なんでも「ポインタ」っていえばすむと思っている厨に見えてならない。
具体的に説明してみれ。
0925助けてください
NGNG出てきた。そのプログラムではxの値の絶対値が非常に小さな値をとる場合があり,またそ
の値を高精度で求める必要があった。x−sinxの演算はそのまま実行すると|x|<<1の条件で桁
落ちがおきるため,マクローリン展開で計算する必要があるが,|x|<<1の条件でないときは
x-sinxをそのまま使用するほうがよい。そこでA君はx-sinxの値を計算する実数型関数
xmsin(x)を次の考えで作成することとした。
1)ある適当な正の実数x0を考える。
2)引数xの絶対値がx0より小さいときは,マクローリン展開を使って計算する。
|ai/Si|<<ε(εは1より十分小さい正の実数。)を用いて,収束を判定して計算した値を用いる。
3)引数xの絶対値がx0以上では,x-sinxの値を用いる。
Å君はマクローリン展開の計算をいろいろな場合で計算し,x0=0.1,ε=10e-16として関数を作
成した。また,作成した関数に対し,x=10e-10,10e-7,10e-4,0.0999の条件に対しx,xmsin(x),
x-sin(x)の計算値を比較した結果を表示するプログラムをvoid些関数prnrst(x)を用いて作
成し,関数xmsin(x)の動作確認した。
以下にA君が作成したプログラムを,一部を伏せた形で示す。また,実行結果も示す。A
君に成り代わってプログラムを完成しなさい。
0926助けてください
NGNG(ここに適当な文を追加すること)
void main(void)
{
printf(" x : xmsin(x) : x-sin(x)\n");
printf("-----------------------------------------------------------------\n");
prnrst(1e-10);
prnrst(1e-7);
prnrst(1e-4);
prnrst(0.0999);
prnrst(1.0);
}
void prnrst(double x)
{
(ここに適当な文を追加すること)
}
double xmsin(double x)
{
(ここに適当な文を追加すること)
}
0927デフォルトの名無しさん
NGNGint factorial(int);
int main()
{
int i;
for(i = 0;i <=10; i++){
print("%2d! = %ld\n", i,factorial}
}
return 0;
}
int factorial(int number)
{
if(number <= 1){
return 1;
}
else{
return(number*factorial(number - 1)
}
}
このプログラムの階乗関数をローカル関数と再帰呼び出しパラメータをプリントするようにしてください。
格再帰呼び出しごとに改行し、字下げ幅を大きくしていって。
0928デフォルトの名無しさん
NGNG0929デフォルトの名無しさん
NGNGマクローリンそのものを聞きたいのか、
マクローリンの実装方法を聞きたいのか。
前者ならぐぐれ。
後者なら途中まで書いたものを上げなされ。
0930デフォルトの名無しさん
NGNG0931デフォルトの名無しさん
NGNG0933デフォルトの名無しさん
NGNGcharなら普通に>とか<で大小比較できる。ちなみにA<B<.....<Z<a<b<.......<z。
//これができるのは、charの中身が文字コードに対応するintだから
//printf("%d\n",'a'); とか実行するとちょっと意味が分かるかも知れないし、混乱するかもしれない
>927
完成したが、そもそも自分でやる気が皆無(手元でコンパイルすら通さない)な奴に教える気はない。
書き換えてコンパイルした時の俺の脱力感の責任を取ってくれ。
0934デフォルトの名無しさん
NGNGだとすると、レス番くらい名乗れ。手間をかけさせるな。
>>914を翻訳。
int main() {
char name[4][10],getname[4][10];
とあって、char name[4][10] にそれぞれ入力した文字列を、compere(wという関数を用いて、
char getname[4][10]に代入したい。
しかし、何をとちくるったか、compereなる関数の戻り値で配列に代入したいようなので、
それは不可能だ、といっておこう。
0935デフォルトの名無しさん
NGNG>702,718
垂直成分はdy/dt=-gt。水平成分は変わらず。
0936デフォルトの名無しさん
NGNG#include<stdio.h>
int factorial(int);
int main()
{
int i;
for(i = 0;i<=10; i++){
printf("%2d! = %ld\n", i,factorial(i)}
}
return 0;
}
int factorial(int number)
{
if(number <= 1){
return 1;
}
else{
return(number*factorial(number - 1)
}
}
ってやりたいんだろ?
0937デフォルトの名無しさん
NGNGコノ程度じゃ不満なのか?
FILE *fp=fopen(...);
struct _node{
unsigned char key;
char *data;
size_t size;
} node[100];
node[0].key = 'b';node[0].data = "1234";node[0].size = 4;
node[1].key = 'c';node[1].data = "5678";node[1].size = 4;
node[2].key = 'd';node[2].data = "9012";node[2].size = 4;
............
unsigned char a[]="dabsdagasdtdgjsfgajtlrejasdglkjasraerasgfas...";
fwrite(a,sizeof(a[0]),sizeof(a),fp);
struct _node *ptr;
long offset=0;
for(ptr=node; ptr<node+sizeof(node); ++ptr){
offset += ptr->size;
fwrite(&(ptr->key),1,1,fp);
fwrite(&offset,sizeof(long),1,fp);
}
for(ptr=node; ptr<node+sizeof(node); ++ptr){
fwrite(ptr->data,1,ptr->size,fp);
}
fclose(fp);
0938デフォルトの名無しさん
NGNG0939デフォルトの名無しさん
NGNGどうやらMclaurin法そのものを聞きたいようだね。
http://www.gen-ta.net/underwater/
または、Taylor Expansionでぐぐればよろし。
0940デフォルトの名無しさん
NGNG0941デフォルトの名無しさん
NGNG有名なアルゴリズムらしいけど、名前は知らないです。
http://64.233.161.104/search?q=cache:UuZD6geMkJoJ:www.st.rim.or.jp/~phinloda/cqa/cqa15.html+%E6%9B%9C%E6%97%A5+%E3%82%A2%E3%83%AB%E3%82%B4%E3%83%AA%E3%82%BA%E3%83%A0&hl=ja
0942938
NGNG0943デフォルトの名無しさん
NGNGできたバイナリファイルを読み込んで展開しようとしたときに
どこまでがa[]のデータでどこからがnodeなのかわからないと思うけど。
0944デフォルトの名無しさん
NGNGsizeof aででますよ。
0945デフォルトの名無しさん
NGNGなんかlength埋める分まで節約したいようなこといってたから,
null文字なり,特定の値で終端判断する気と判断した。
もし,node数が可変になるなら,nodeの数は埋める必要があるけどな。
行儀が悪いのは承知した上で書いてるぞ〜。
0946デフォルトの名無しさん
NGNGint a[]={1,2,3,4,5};
#define TBL_SIZE (sizeof(a)/sizeof(int))
int key;
int i,j;
scanf("%d",&key);
/* 探す */
for(i=0;i<TBL_SIZE;i++) if(a[i]==key) break;
/* ずらす */
for(j=i+1;j<TBL_SIZE;j++) a[j-1]=a[j];
0947デフォルトの名無しさん
NGNGただし、比較処理は比較関数でして結果をmainに戻す。
名前 name1='tanaka' name2='suzuki' name3='satou' name4='isihara'
0948デフォルトの名無しさん
NGNGstrcmp()使え
0949デフォルトの名無しさん
NGNG標準入力からカンマ区切りの整数値を入力として受け取り(入力終了はEOF),
大きい方から順にカンマ区切りで標準出力に出力するプログラムを作成せよという問題で、
#include <stdio.h>
int shellsort(int a[],int n);
int main()
{
int n;
int a[10];
scanf("%s", a);
printf("%s\n",shellsort(a, n));
return 0;
}
int shellsort(int v[], int n)
{
int gap, i, j, temp;
for(gap = n/2; gap > 0; gap /= 2)
for(i = gap; i<n; i++)
for(j=i-gap; j >= 0 && v[j]>v[j+gap]; j-=gap) {
temp = v[j];
v[j] = v[j+gap];
v[j+gap] = temp;
}
}
というプログラムを作ったのですが全然おかしいみたいなので
どなたか教えてください!
0950デフォルトの名無しさん
NGNG>scanf("%s", a);
ここがだめ
あと、nに値が入っていない
0951デフォルトの名無しさん
NGNGわかりません・・・。どういうことでしょうか?
もしよければお教えください。
0952デフォルトの名無しさん
NGNG分かってないんじゃないだろーな?
0953デフォルトの名無しさん
NGNGすみません、これも分からないくらいなら聞かずにもっと自分で
勉強するべきですよね。別の本を探してみます!ありがとうございました!
0954デフォルトの名無しさん
NGNGそれだと他の関数で順番を計算した結果をmain関数で表示させたくても出来ないのでは。
配列を使えば順番を計算した結果を複数mainに戻せて便利だと思ったんだけど。
0955デフォルトの名無しさん
NGNG戻り値を配列であらわすということですか?詳しくお聞かせください
0956デフォルトの名無しさん
NGNG0957デフォルトの名無しさん
NGNG実行モジュールをish変換して張っておくから適当な展開ツールで展開してくれ。
<<< sort4int for MS-DOS ( use non-kana ish ) [ 8 lines ] >>>
!!C(!!9Q!4"P$nkn>GKz<u+d9o!d!$"Hrn[[Q~!"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!?/@e
!!C(!!9Q!4"P$nkn>GKz<u+d9o!d!$"Hrn[[Q~!"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!?/@e
!!C(!!9Q!4"P$nkn>GKz<u+d9o!d!$"Hrn[[Q~!"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!?/@e
"mv緜&=<jo:"q壇3各巖烙@鶏幾揖"HB@!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!DH!+
gap0F@=髪_/(}b&岌=郡<濫m3LP@幹d硯!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1@
iW%}b;6止P:l杣V=克摶畛槊w'<n福淞IM斐t掟壯hV:騾睥内H*ScaQ曼fJCJ臻寨訓32e&翆珀些/
--- sort4int (8/8) ---
0958デフォルトの名無しさん
NGNGすげぇおかしい。
配列の内容表示すらまともにできてねぇ。
駄目駄目。
ホレ,これでも見て勉強しろ。
#include <stdio.h>
#include <string.h>
//int配列にカンマ区切りで入力した数値を取得する関数(すげぇ適当)
//返り値:実際に取得した値の数
int get_value(int v[], int v_size){ //v:配列, v_size:配列の要素数
int n;
char buf[1024];
fgets(buf,sizeof(buf),stdin);
char *ptr;
for( n=0,ptr=strtok(buf,","); n<v_size && ptr!=NULL; ++n,ptr=strtok( NULL, "," ) ) {
v[n] = atoi(ptr);
}
return n;
}
//配列の内容をカンマ区切りで表示する関数
void print_value(int v[], int v_size){ //v:配列, v_size:配列の要素数
int n;
for(n=0; n<v_size-1; ++n){
printf("%d,", v[n]);
}
printf("%d\n", v[n]);
}
0959デフォルトの名無しさん
NGNGただし、比較処理は比較関数でして結果をmainに戻す。
名前 name1='tanaka' name2='suzuki' name3='satou' name4='isihara'
マジお願いもう眠いもう駄目
0960デフォルトの名無しさん
NGNG#include <string.h>
int main(void)
{
char *name1="赤沢太郎";
char *name2="松本三郎";
char *name3="山川四郎";
char *name4="岩下次郎";
char *temp="abcdefghijklmn";
if(strcmp(name1,name2)<0){ /*ここから
}else if(strcmp(name1,name2)>0){
temp=name1;
name1=name2;
name2=temp;
}else{
} /*ここまで*4回繰り返してます。
printf("1.%s\n2.%s\n3.%s\n4.%s\n",name1,name2,name3,name4);
return 0;
}
やったぜぇええええええええええええ!!!!!!!!!徹夜した甲斐があった揉んだむほっつ22
でもさ上記の通りnameナンバーこそ違えど同じ処理を繰り返してるわけ。
compare関数を用いたいところなんだけど別の関数からの戻り値は1つだけじゃん?
このプログラムは戻り値1つじゃ成り立たないじゃんがんぐ?
compare関数に纏めれそうなら教えれ。無理っぽいならこのまま亭主打つwwwwwwwwwwwww低所津wwww亭主打つwwwwwwwwwwうはははhw提出ニダ━━━━━━<ヽ`∀´>━━━━━━ !!!!!
0961デフォルトの名無しさん
NGNGさっさとねなさい。
#include <stdio.h>
int main(int argc, char argv)
{
char *tmp, *name[4] = { "tanaka", "suzuki", "satou", "ishihara" };
int i, j;
for(i = 0; i < 4; i++) {
for(j = i + 1; j < 4; j++) {
if(strcmp(name[i], name[j]) > 0) {
tmp = name[i]; name[i] = name[j]; name[j] = tmp;
}
}
}
for(i = 0; i < 4; i++)
printf("%s\n", name[i]);
return 0;
}
> このプログラムは戻り値1つじゃ成り立たない
下の条件
> ただし、比較処理は比較関数でして結果をmainに戻す。
は「比較関数で求めた(比較)結果をmainに戻すということだろう。
0962デフォルトの名無しさん
NGNG配列にして qsort() でソートして解決!(w
0963デフォルトの名無しさん
NGNG理由を述べなさい。
#include <iostream>
using namespace std;
int main(){
char *a;
a = (char*)malloc(256);
a = "ppp";
strcpy(a, "ABCDE");
cout << a << endl;
return 0;
}
どうして?
0964デフォルトの名無しさん
NGNGただ、メモリは破壊する。
0965デフォルトの名無しさん
NGNGa = "ppp";が無用の介だから。
(教育用とはいえ、いやなスタイルだな)
0966デフォルトの名無しさん
NGNGと最初にやっておくと、普通に出力できるのはなぜですか?
0967デフォルトの名無しさん
NGNG0968デフォルトの名無しさん
NGNG文字列リテラルの内容を書き換えようとしているからだろ
0969デフォルトの名無しさん
NGNGってことですね。
0970デフォルトの名無しさん
NGNG処理系依存以前にリテラルは書き換えるな。
0971357
NGNGものすごく遅レスですが、本当に有難うございましたm(__)m
0972デフォルトの名無しさん
NGNG> a = "ppp";
これでaが書き換えられていることに注目しろ。
だからmallocで得た領域を指していない。
0973デフォルトの名無しさん
NGNGもう直ったけど。
0974デフォルトの名無しさん
NGNGa=1,b=2,c=3と設定した上で、実数型の変数xをキーボードから入力し、
y=ax^2+bx+c、を計算し、yを出力するプログラム
なおこの問題では、実数はdouble型変数で表すものとする。
問題文そのままです。よろしくお願いします。
0976975
NGNGそれじゃ全然違うな。
0977デフォルトの名無しさん
NGNGdouble x, y;
scanf("%lf", &x);
y = a*x*x + b*x + c;
printf("y=%lf\n", y);
0978デフォルトの名無しさん
NGNGhttp://www.google.co.jp/search?q=cache:6-PJjsqopxAJ:www9.plala.or.jp/sgwr-t/c/sec10-3.html+%E6%96%87%E5%AD%97%E5%88%97%E3%83%AA%E3%83%86%E3%83%A9%E3%83%AB&hl=ja
文字列リテラルを知らないなら,これ読んどけ。
あと,デバッガが使えないなら,こんな風にprintf埋めまくって
値の動きやどこまで動いているのかを観察してみろ。
#include <iostream>
int main(){
char *a = "ppp";
printf("1 %p\n", a);
a = (char*)malloc(256);
printf("2 %p\n", a);
a = "ppp";
printf("3 %p\n", a);
strcpy(a, "ABCDE");
printf("4 %p\n", a);
cout << a << endl;
printf("5 %p\n", a);
return 0;
}
0979デフォルトの名無しさん
NGNGありがとうございます。
しかし何度見直してもエラーが出ました。
0980デフォルトの名無しさん
NGNGエラー内容くらい書け
0981デフォルトの名無しさん
NGNG{
>>977
}
0982デフォルトの名無しさん
NGNG>>981
0983デフォルトの名無しさん
NGNGここの答えを丸写しして終了、みたいな香具師は、きっと何度も何度もここに来て、毎回アホな質問ばかりするでしょうに。
0984デフォルトの名無しさん
NGNG面倒なら回答しなきゃいいだけ。
0985デフォルトの名無しさん
NGNGそうやってだめぽなやつが量産されて
社会に出た時今いるPGに迷惑かける罠
つーことで漏れとしてはあんまよくないと思うんだけどね
宿題の丸投げってのは
最低限、
自分はこれこれこう思うんですが、
こうこうなってしまって駄目です。
とか、自分がどこが分かってないのか
分かるやつの質問にしか答えないほうがいいと思うんだけど。
厳しいようでも、結局は質問したやつのためになると思うんだけど
0986デフォルトの名無しさん
NGNG0987デフォルトの名無しさん
NGNG解答が間違っている場合を除けば大きなお世話でしかないな。
0988デフォルトの名無しさん
NGNGハゲドウ。
0989デフォルトの名無しさん
NGNG0990デフォルトの名無しさん
NGNG0991デフォルトの名無しさん
NGNG漏れたてようとしたけど無理だった
次スレたつまで1000getすんなよ
0992デフォルトの名無しさん
NGNGできてた
C/C++の宿題は私におまかせくださいませ 23代目
http://pc5.2ch.net/test/read.cgi/tech/1085149383/
しかし、このスレタイは・・・
0993784
NGNGfor文を使ったときの模範解答みたいなのを教えてもらえませんか
int find(int a[], int n, int b)
{
int x;
for(int i=0; i<n; i++){
if(b == a[i]){
break;
}
}
if(i == n){
x = -1;
}
else if(i != n){
x = i;
}
return x;
}
こんな風でいいんでしょうか
0994デフォルトの名無しさん
NGNGそんな面倒なことしなくても、
int find(int a[], int n, int b) {
int ret = -1;
for(int i=0; i<n; i++) {
if(b == a[i]) {
ret = i;
break;
}
}
return ret;
}
0995デフォルトの名無しさん
NGNGint find(int a[], int n, int b) {
for(int i=0; i<n; i++) {
if(b == a[i]) return i;
}
return -1;
}
0996デフォルトの名無しさん
NGNGif分とforを使って作るそうですが・・・・・駄目だす・・・
0997デフォルトの名無しさん
NGNG実数型を==で比較するよーな回答をしそうだ>漏れ
とりあえず、整数型だけね。
int find(int a[], int n, int b)
{
if (a == NULL || n < 1)
return -1;
for (int i = 0; i < n; i++)
if (a[i] == b)
return i;
return -1;
}
0998デフォルトの名無しさん
NGNGfabs(a-b) とかやってほにゃらら未満なら一致とみなす、とか?
0999デフォルトの名無しさん
NGNGint i, x;
/* ... */
for (i = 128; i > 0; i >>= 1) {
if (x / i) {
x -= i;
printf("1");
} else {
printf("0");
}
}
1000デフォルトの名無しさん
NGNG10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。