C/C++の宿題やらせてください。8代目。

このエントリーをはてなブックマークに追加
>>949
おなじだべ
>>947
1から100まで足せ、とクラスに問題を出して
その空き時間で内職しようとした教師が
一瞬で正解を答えたガウスに驚いたという伝説だったかと。
まず、25文字以下の文字列を入力。
次に、一文字を入力、最初に入力した文字列の先頭からその文字を探し
最初に見つかった位置より後ろの文字列を出力する。

AIUEOkakikukeko
a

kikukeko

となるプログラム
955デフォルトの名無しさん:03/06/18 01:21
>>954
#include <stdio.h>
#include <string.h>

int main()
{
char str[1234],*p;
int c;

printf("25文字以下の文字列を入力 : ");
fgets(str,sizeof str,stdin);
if(strlen(str)>25){
fprintf(stderr,"死ね\n");
return 1;
}
c=getchar();
p=strchr(str,c);
if(p)
printf("%s\n",p+1);
else
printf("ねーよ\n");

return 0;
}
956955:03/06/18 01:23
getcharの前に入力を促すメッセージを入れるのを忘れた
char str[25+1];
int c;

ゲッツ!25文字

c = ゲッシ!1文字

printf("%s\n"strchr(str,c));
958デフォルトの名無しさん:03/06/18 01:26
%sにNULLを渡していいのだろうか。
>>958
NULL! とか印字する処理系があったが、規格はどうかな。
多分だめなような気がする(根拠なし)。

ちなみに印字する処理系は昔のMS-C。6.0あたりかな。
VC++の1.0がMS-Cの8.0に相当するからはるか太古の話だ。
960デフォルトの名無しさん:03/06/18 07:42
じゃあ、ルートをCでどう使うか教えてください。
例えば 36の平方根は6ですよね。
今まで使ったことなくって いまふと使わないといけないんですけど
わからなくて困ってます。
961デフォルトの名無しさん:03/06/18 07:54
>>960
そのじゃあってのはなんだ。じゃあってのは。

平方根ならmath.hをインクルードしてsqrtを使えばいい。
#include <math.h>
double sqrt(double x);
>>960
ほんとだ。ワロタ。
963will:03/06/18 19:51
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1055933323

これは2個のサイコロの目を足して出た数をカウントするというものなのですが
カウントしてヒストグラムの表示がうまくいきません。
分かる人、誰か教えてください。
964デフォルトの名無しさん:03/06/18 19:57
AT, BV, CX, DY, EZ とかの文字列から
((((AT BV) CX) DY) EZ) とか (((AT BV) CX)(DY EZ))
とかの木を全て書き出したいのですが、うまい書き方が分かりません。
大まかな方針だけでも教えていただけませんか?
>>964
AT, BV, CX, DY, EZ
この順番は保ったまま?
右と左にわけて再帰すればいいのかな。
((((AT BV) CX) DY) EZ)だったらAT, BV, CX, DYとEZに。
(((AT BV) CX)(DY EZ))だったらAT, BV, CXとDY, EZに。
これと同じ人ならば、配列の要素の順序は移動する。
http://pc2.2ch.net/test/read.cgi/tech/1055864305/49-

968デフォルトの名無しさん:03/06/18 21:09
死にてーな。どうしたらいいかな。
>>968
Kill();
>>963

void mode(int freq[], int answer[])
{

    int rating, j , h, largest = 0, modeValue = 0;


    for(rating = 1; rating <= 12; rating++)
        ++freq[answer[j]];

これを

void mode(int freq[], int answer[])
{

    int rating, j , h, largest = 0, modeValue = 0;


    for(j = 0; j < SIZE; j++)
        ++freq[answer[j]];

こうすればいいんでない?

あと、5,10,15,…てのがずれてる気がするけどそこは自分でなおしてね
>>964
すぐに思いつくのはこれの前後を組にしていく方法。
http://pc2.2ch.net/test/read.cgi/tech/1055864305/49
それ以外だとこれ。
http://pc2.2ch.net/test/read.cgi/tech/1055864305/56
並びに関しては、できる組合せ全てに対して上記の操作を行えばよい。

でも、2個目の方法だと同じものが重複して出てくるのを
どうやってさければよいかが思いつかないな。

例えば4つの時、
abcd
境界は012
これの組合せは6通り、
012 (((ab)c)d)
021 ((ab)(cd))
102 ((a(bc))d)
120 (a((bc)d))
201 ((ab)(cd))
210 (a(b(cd)))
021と201が同じだということをどうやって判別するか。
972デフォルトの名無しさん:03/06/18 21:51
Cのコンソールで、あるところをクリックしたら
〇〇を表示するって可能ですか?
Cのコンソールときたか
974972:03/06/18 22:07
やっぱ不可能ですか?
>>972
ブラウザでアクセスすれば?
976972:03/06/18 22:10
ブラウザでアクセスっすか。
う〜ん・・
メンソーレ
>>972
>クリック〜
マウスを使う時点で環境依存。無理。
いま、20030618と出力されているのを、
2003年06月18日と出力せよ。
980964:03/06/18 22:29
>>965
場所は入れ替わりOKです。
ただ、(ad) と (da) は同じとみなします。
>>967
http://pc2.2ch.net/test/read.cgi/tech/1055864305
は私です。
>>971
これも私です。
たとえば 012 と 021 は最後の3つが一緒なので、
それを判別するだけです。
なんですけど、うまい方法が分からないのです。
>>979
printf("2003年06月18日");
>>981
strncpyとかstrcatとか 使うらしいんですが・・・
char m1[20];
m2[4][3];
m3[7][5][4];

という風にあって、それぞれの先頭アドレスが同じ時

m1[6] のとき m2[?][?] , m3[?][?][?]

という計算は、どのようにすればいいんでしょうか?
char a[256] = {0};
char *b = "2003年06月18日";
strcat(a,b);
strcpy(a,b);
printf("%s",a);
> たとえば 012 と 021 は最後の3つが一緒なので、
> それを判別するだけです。

どういう意味でしょうか?
私が言ってるのは021と201の話なんですが…
986デフォルトの名無しさん:03/06/18 22:38
あのー、高校生なんですが、よくわからない宿題なんで、
聞いてください

身の回りでデジタル化されたものを1つあげ、その際に生じた
メリット・デメリットをあげよ。です。

CDとか、カメラは出てしまいました。なんかわからない・・・・
こーゆーのって、ここは場所が違いますかね・・(汗
>>983
どういう計算だ、そりゃ?

>>986
正解。
>>986
板違いも甚だしい
俺達はデジタル化されているがまだ誰も気が付いていないのだ
住基ネット?
微視的に見れば全て離散的
992964:03/06/18 22:42
>>985
すいません。勘違いしました。
021 と 201 でしたね。
993デフォルトの名無しさん:03/06/18 22:44
エッ!!そんなこと言わないでくださいヨー・・・

じゃあどこへ行けばいいですかね?あ、986です。
>>980
> ただ、(ad) と (da) は同じとみなします。
こんな条件があるなら、これしかないような気がする。
http://pc2.2ch.net/test/read.cgi/tech/1055864305/49
んじゃ、地上波デジタル放送でどうよ
意表をついてデジタル時計で行ってみろ
>>980
これは別物?
((ab)c) (c(ab))
1000
@`
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。