トップページ⇒tech
1001コメント292KB

C/C++の宿題は拙者が斬る! 29代目

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさんNGNG
拙者はC/C++侍。
わからない問題は次々と切捨御免。

【注意点】 -------------------------------------------------
・問題はしっかりと解いてもらう方にわかりやすいように
 問題文などの省きはやめ、全文を書きましょう。

・使用する言語(C/C++)や環境(CUI/ANSIとか
 GUI/Windows32bitAPI など)は必ず書きましょう。

・計算問題は必ず数式自体をあげ、どのような計算をするのか
 くわしく説明してください。

・エラーは、その行とエラーの詳細を書きましょう。
 エラーメッセージが出た場合はそのままコピーしてください。

・後になって問題につけたしをするのはやめましょう。
 解いてもらっている方に失礼になってしまいます。
------------------------------------------------------------

【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
http://do.sakura.ne.jp/%7Ejunkroom/cgi-bin/megabbs/lounge/index.html

【歴代スレは>>2-10】
0002デフォルトの名無しさんNGNG
28代目: http://pc5.2ch.net/test/read.cgi/tech/1089974839/
27代目: http://pc5.2ch.net/test/read.cgi/tech/1089448445/
26代目: http://pc5.2ch.net/test/read.cgi/tech/1088860889/
25代目: http://pc5.2ch.net/test/read.cgi/tech/1087929711/
24代目: http://pc5.2ch.net/test/read.cgi/tech/1086612317/
23代目: http://pc5.2ch.net/test/read.cgi/tech/1085149383/
22代目: http://pc5.2ch.net/test/read.cgi/tech/1083050221/
21代目: http://pc5.2ch.net/test/read.cgi/tech/1078157730/
20代目: 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
「C/C++の宿題は拙者が断る! 」に読めたOTLorz
0004デフォルトの名無しさんNGNG
AAが無いのが残念だけど 乙>>1
0005デフォルトの名無しさんNGNG
>>1 乙
AA 無しか。もしかしてテンプレ増加により「改行が多すぎ」?
0006デフォルトの名無しさんNGNG
前スレ951
1様乙です。
テンプレの評判をみてからたてようかと思ってたんですが、
いつの間にか前スレが970までのびてて
拙者まにあわず…
それではごめんなすって…
0007デフォルトの名無しさんNGNG
32行までだな。
0008デフォルトの名無しさんNGNG
変にAAあるとアレなのでなくしますた。
0009デフォルトの名無しさんNGNG
えー
0010デフォルトの名無しさんNGNG
拙者C言語侍がC/C++の宿題を斬って斬って斬りまくります!
     \∧_ヘ      / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
     / \〇ノゝ∩   /  C/C++道
    /三√ ゚Д゚) / <
     /三/| ゚C゚|\   |    壱 宿題を斬って斬って斬りまくれ!
      U (::::::::::)    |    弐〜拾 歴代スレである!
      //三/|三|\   \  参 誰もが侍になれるぞ!
      ∪  ∪      \________________
0011お願いしますNGNG
「円周率(π)を求める公式の和としてライプニッツの公式より精度のよい公式を見つけ出し、
そのC++のぷろぐらむを作成せよ。また、ライプニッツの公式との比較も行え。」
という宿題が出ました。どなたかこの問題が解け、プログラムを作れる、C++に
詳しい方教えてください。お願いします。
0012デフォルトの名無しさんNGNG
>>11
それ最近見た。
0013お願いしますNGNG
>>11   本当ですか!?この問題の答えありますか?
0014デフォルトの名無しさんNGNG
return "およそ3";
0015デフォルトの名無しさんNGNG
>>13
http://www.google.com/search?hl=ja&lr=lang_ja&ie=sjis&q=%83%7d%81%5b%83%60%83%93%82%cc%8c%f6%8e%ae+2ch
0016デフォルトの名無しさんNGNG
公式の和?
0017デフォルトの名無しさんNGNG
>>15
懐かしいな、俺が去年解いた奴じゃん。
0018お願いしますNGNG
>>15   どこらへんにありますか?わざわざ探してくれてありがとうございます。

>>16    和の公式でしたw
0019お願いしますNGNG
どなたか>>11解けませんかね?
0020デフォルトの名無しさんNGNG
前前スレでかかれていたのを組み合わせました。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=184
002120NGNG
書き忘れ
20は>>11の問題に関連する物です。
0022デフォルトの名無しさんNGNG
            ,,ゞト、ノノィ,、
          /       `ゝ
         /  ノノ'`'`'`'`ヽミ
         .|  Y   \ / }i
         |  /    / ヽ ミ
         .!(6リ     (__) ノ
          リノト、 '/エェェェヺ
          り| ヽ  lーrー、/    夏なんで宿題出ませんから!! 残念!!
           ノノ  ヽニニソ            Θ / \
       ,...-'"::::|:|    /'::::::::::::::ヽ、    Θ//\//Θ
    ,...-'":::::::::::::::|.| v /':::::::::::::::::::::::::::_____//\//Θ
.   /::::::::::::::::::::::::::|.! /'::::::::::::::::::::::::::::::",.-、, \ //Θ
   /:::::;┐::::::::::::::::::|,レ':::::::::::::::::::::::::::::: :(_.人 ヽ._ ヽ
.  /:::::::∪::::::::::::::::::::::::::::::::::::::::::::::::::::::::::ハゝ. \   /
                      ,(  \  ノハ

0023デフォルトの名無しさんNGNG
>>前スレ998
Mをメルセンヌ素数(2^n -1 の形の素数 3 7 31など)とするとき、
偶数の完全数は {M(M+1)}/2 で表されるという定理があるんだよ。
また、現在のところ奇数の完全数は見つかっていない。

これらの事実を使ってるから、1000 以下の完全数を求めるのに
主ループを 3,7,15,…,511 の 8 回しか回さずに済むので速い。

# 素数判定部はむしろ一般的に言えば遅いのを使ってる
0024デフォルトの名無しさんNGNG
>Mをメルセンヌ素数(2^n -1 の形の素数 3 7 31など)とするとき、
>偶数の完全数は {M(M+1)}/2 で表されるという定理があるんだよ。

これって小さいのから順にもれなく出てくるんですか?
0025お願いしますNGNG
>>20>>21  ありがとうございます!!
0026デフォルトの名無しさんNGNG
>>24
偶数の完全数ならば全部出てくることが分かってる。
ttp://ja.wikipedia.org/wiki/%E5%AE%8C%E5%85%A8%E6%95%B0
0027デフォルトの名無しさんNGNG
char *c[] = {"Monday" , "Tuesday"};
char **p = c;
とする時、'e'にたどりつくポインタpを用いた表記を
考えられるだけ、列挙せよ。

例)
*(*(p+1)+2))
0028デフォルトの名無しさんNGNG
*(*(p+2-1)+2))
*(*(p+10/10)+2))
0029デフォルトの名無しさんNGNG
*(*(p+1)+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+1-1+2))

こんなの?
0030これで全部かな?NGNG
>>27
*(*(p+1)+2)
*(p+1))[2]
2[*(p+1)]
*(p[1]+2)
*(1[p]+2)
p[1][2]
1[p][2]
2[p[1]]
2[1[p]]
003130修正NGNG
*(*(p+1)+2)
(*(p+1))[2]
2[*(p+1)]
*(p[1]+2)
*(1[p]+2)
p[1][2]
1[p][2]
2[p[1]]
2[1[p]]
0032デフォルトの名無しさんNGNG
*((*(p++)++)++)
*(++(++(*(++p))))
0033デフォルトの名無しさんNGNG
*(*(p+=1)+=2)
0034デフォルトの名無しさんNGNG
>>32
それ大丈夫なんかな
0035デフォルトの名無しさんNGNG
おはようござます。
あるクラスに在籍している5人の出席番号と電話番号をポインタ配列を用いて画面に表示
するプログラムを作成せよ。
数値等は自由。
と言う問題が出たんですがちょっと分らないので模範解答を教えて下さい。
よろしくお願いします。
0036デフォルトの名無しさんNGNG
pの値や*pの値が変化してもいいのかな
0037デフォルトの名無しさんNGNG
「与えられた数の階乗を計算するプログラムを静的変数を用いて作成せよ。」
と言う問題が出ました。
全く分らないので教えて下さいm( )m
0038デフォルトの名無しさんNGNG
>>35
出席番号と電話番号はファイルから読み込むの?
それともキー入力?
それともソース埋め込み?
003927NGNG
みなさん、ありがとうございます m( )m
多ければ多いほど、良いんで(点数的に)。
2,3個かと思ってたんですが、結構ありますね・・
助かりました!
0040デフォルトの名無しさんNGNG
>>38
キー入力です。
よろしくお願いします。
0041デフォルトの名無しさんNGNG
>>37
こんなんでいいのか?

#include <stdio.h>

static int f = 1;

int main(int)
{
int n=5; // ここにNを与える
int i;
for(i=1; i<=n; i++){
f *= i;
}
printf("%d\n", f);
return 0;
}
0042デフォルトの名無しさんNGNG
便乗質問ですが、100!ってどうやって求めるんですか?
数がでかすぎて、格納できる型が無いんですが・・・
0043デフォルトの名無しさんNGNG
>>42
なければ作ればいい
0044デフォルトの名無しさんNGNG
フリーの多倍長整数ライブラリがある
004542NGNG
なるほど。一工夫が要る訳ですね。
調べてみます。
0046デフォルトの名無しさんNGNG
使用言語はCです。
かなりの初心者なので複雑なことは出来ません。
配列がかろうじて出来る程度です。その程度の技術でお答えくださればコレ幸いです。
オネガイします。
1、キーボードから入力した10個の実数データを配列xに格納し、その中の最大値と最小値を求め出力するプログラム
2、キーボードから入力した10個の実数データを配列xに格納し、そのデータを小さい順に出力するプログラム
3、文字型配列を、”OKINAWA”と初期値として宣言し、文字列を反転させて”AWANIKO”と表示するプログラム
4、要素の数が40の文字列配列str1、str2、str3を、初期値なしで宣言する。その後、str1に”Let's”を、str2に”Study”を、str3に”programming”を代入し、これらの文字をつなげて出力するプログラムをstrcat関数を使わない場合と使った場合の2種類のプログラム

いきなり大量の問題ですが(-m-)おねがいします
0047デフォルトの名無しさんNGNG
"OKINAWA"大人気だな、前スレに何度か出てる、まだdat落ちしてない。
0048デフォルトの名無しさんNGNG
1.
#include <stdio.h>

int main()
{
  int i, nNum, nMin, nMax;
  for(i = 1; i <= 10; i++){
    for(;;){
      printf("[%02d] ", i);
      if(scanf("%d", &nNum)) break;
      scanf("%*s");
    }
    if(i == 0 || nNum < nMin) nMin = nNum;
    if(i == 0 || nNum > nMax) nMax = nNum;
  }
  printf("Max: %d\n", nMax);
  printf("Min: %d\n", nMin);
  return 0;
}
0049デフォルトの名無しさんNGNG
あ。いっけね、見間違えた。
0050デフォルトの名無しさんNGNG
1(改).
#include <stdio.h>

int main()
{
    int i, x[10], nMin, nMax;
    for(i = 0; i < 10; i++){
        for(;;){
            printf("[%02d] ", i+1);
            if(scanf("%d", x+i)) break;
            scanf("%*s");
        }
    }
    for(i = 0; i < 10; i++){
        if(i == 0 || x[i] < nMin) nMin = x[i];
        if(i == 0 || x[i] > nMax) nMax = x[i];
    }
    printf("Max: %d\n", nMax);
    printf("Min: %d\n", nMin);
    return 0;
}

とりあえず、入力と最大・最小の判定は別口でやっておいた。
0051デフォルトの名無しさんNGNG
#include <stdio.h>
#include <stdlib.h>

int compare(const int *pSrc1, const int *pSrc2){
    return *pSrc1 == *pSrc2 ? 0 : (*pSrc1 < *pSrc2 ? -1 : 1);
}

int main()
{
    int i, x[10], nMin, nMax;
    for(i = 0; i < 10; i++){
        for(;;){
            printf("[%02d] ", i+1);
            if(scanf("%d", x+i)) break;
            scanf("%*s");
        }
    }

    qsort(x, 10, sizeof(int), compare);
    printf("\n[Sorted]\n");
    for(i = 0; i < 10; i++)
        printf("%d\n", x[i]);
    return 0;
}
0052デフォルトの名無しさんNGNG
どこのバカ学校の生徒が聞きに来てるのか知りたいものだ
0053デフォルトの名無しさんNGNG
>>51 書き忘れ → 2.

3.
#include <stdio.h>
#include <string.h>

int main()
{
    int i;
    char *szSrc = "OKINAWA", szRes[8];
    for(i = 0; i < 7; i++)
        szRes[6-i] = szSrc[i];
    szRes[7] = '\0';
    printf("%s\n", szRes);
    return 0;
}
0054デフォルトの名無しさんNGNG
あぁ・・・表示だけで良かったのか。
ミス多いな、俺。使うのやめたのに#include <string.h>残してるし。

char *szSrc = "OKINAWA", szRes[8];
   :
printf("%s\n", szRes);

   ↓
char *szSrc = "OKINAWA";
for(i = strlen(szSrc)-1; i >= 0; i--)
    putchar(szSrc[i]);
0055デフォルトの名無しさんNGNG
4.
#include <stdio.h>
#include <string.h>

int main()
{
    char str1[40], str2[40], str3[40], str4[120];
    strcpy(str1, "Let's");
    strcpy(str2, "Study");
    strcpy(str3, "programming");

    // 使った場合
    *str4 = '\0';
    strcat(str4, str1);
    strcat(str4, str2);
    strcat(str4, str3);
    printf("%s\n", str4);

    //使わない場合
    printf("%s%s%s\n", str1, str2, str3);
    return 0;
}
0056デフォルトの名無しさんNGNG
宿題まだー?ちんちん
0057デフォルトの名無しさんNGNG
ω
0058デフォルトの名無しさんNGNG
>>48
「 printf("[%02d] ", i);
if(scanf("%d", &nNum)) break;
scanf("%*s");        」
のあたりがどうしてもわかりません・・。
#include <stdio.h>
int main(void)
{
double x[10], max,min;
int i,j;
for (i=0;i<10;i++){
scanf("%lf", &x[i]);
}
/*最大値*/
max = x[0];
for(i=1;i<=10;i++)
if (x[i] > max)
max = x[i];
/*最小値*/
min = x[0];
for(j=1;j<=10;j++)
if (x[j] <= min)
min = x[j];
printf("最大値は%.0lf\n", max);
printf("最小値は%.0lf\n", min);
return 0;
↑↑↑↑↑↑
のような感じで自力でやってみました。
どうしても最小値が「0」になってしまいます。
どうしてでしょうか?
オネガイします。
0059デフォルトの名無しさんNGNG
= はのけろ
{} はつけろ
http://www.cmagazine.jp/src/kinjite/c/coding.html#index26
0060デフォルトの名無しさんNGNG
>>35
#include <stdio.h>
int main()
{
struct{
unsigned int num;
char tel[16];
}man[5]={
{5,"012-345-6789"},
{8,"012-345-9876"},
{17,"012-347-1142"},
{23,"012-315-2000"},
{36,"012-345-5688"},
},*p;
int i;

p=man;
for(i=0;i<5;i++){
printf("%d : 出席番号%d TEL:%s\n",i,p->num,p->tel);
p++;
}

return 0;
}
0061デフォルトの名無しさんNGNG
正常に入力されるまでループ回してます。

scanfに%dを指定したときに、数値以外が入力されると、
取得されない上にバッファ上に残って取り出されない。

そして、scanfの返り値として取得された数が返ってくる。
だから、0以外の場合は正常に入力されたということでループを抜ける。
0のときは、% *(代入しないことを示す) s(文字列として扱う)で、バッファをクリアしてるわけ。

fgetsとatoi使った方が良いと思うけど、「使ったことのある関数がいい」って言われないように、
scanfを使ってみた。



用語に自信が無いなぁ・・・。
0062デフォルトの名無しさんNGNG
>>61
日記は他所で。

宿題なら
> ・問題はしっかりと解いてもらう方にわかりやすいように
>  問題文などの省きはやめ、全文を書きましょう。
0063デフォルトの名無しさんNGNG
>>62
>>58へのレスなんだが・・・・
0064デフォルトの名無しさんNGNG
C++で、ある構造体に別の構造体を配列として動的に確保したいと思っています。
typedef struct tagSENDDESCRIPTOR{
UINTnRetry;
LPVOIDpPacket;
SOCKADDR_INaddrRemote;
}SENDDESCRIPTOR, *LPSENDDESCRIPTOR;
typedef struct tagSENDDATA{
DWORDdwSeq;
UINTnRetry;
DWORDdwTick;
LPSENDDESCRIPTOR pData;
}SENDDATA, *LPSENDDATA;
と言う構造体があり、メンバ変数に
SENDDATA m_SendData;
m_SendData.pData = (LPSENDDESCRIPTOR)malloc(sizeof(SENDDESCRIPTOR)*50);
ZeroMemory(&m_pSendData.pData[1], sizeof(SENDDESCRIPTOR));
ZeroMemory(&m_pSendData.pData[2], sizeof(SENDDESCRIPTOR));
ZeroMemory(&m_pSendData.pData[3], sizeof(SENDDESCRIPTOR));
ZeroMemory(&m_pSendData.pData[4], sizeof(SENDDESCRIPTOR));
                ・
                ・
                ・
というように利用してもいいのでしょうか?
ここまで動かしてみましたが、エラーは出ませんでした。
0065デフォルトの名無しさんNGNG
ZeroMemory(&m_pSendData.pData[1], sizeof(SENDDESCRIPTOR));
 :

ZeroMemory(m_pSendData.pData, sizeof(SENDDESCRIPTOR)*50);
じゃ不満なの?
0066デフォルトの名無しさんNGNG
C++で、ある構造体に別の構造体を配列として動的に確保したいと思っています。
typedef struct tagSENDDES−−−−−−−−−− ここまで読んだ −−−−−−−−−−−
006764NGNG
あ、そこのところはそれでいいのですが、
これを通信用に利用していますので、
配列として利用できれば便利だなと思ったわけです。
0068デフォルトの名無しさんNGNG
バカ過ぎ
0069デフォルトの名無しさんNGNG
できますよ
0070デフォルトの名無しさんNGNG
>>66
俺は全体見渡しただけだ
0071デフォルトの名無しさんNGNG
もしかして、こういう風に使いたいの?

typedef struct tagSENDDESCRIPTOR{
UINT nRetry;
LPVOID pPacket;
SOCKADDR_IN addrRemote;
}SENDDESCRIPTOR, *LPSENDDESCRIPTOR;

typedef struct tagSENDDATA{
DWORD dwSeq;
UINT nRetry;
DWORD dwTick;
SENDDESCRIPTOR Data[0];
}SENDDATA, *LPSENDDATA;

LPSENDDATA pm_SendData;
pm_SendData = (LPSENDDESCRIPTOR)malloc(sizeof(SENDDATA) + sizeof(SENDDESCRIPTOR)*50);
0072デフォルトの名無しさんNGNG
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=269
おねがいしまつ(ノд`)
007366NGNG
>>69
ありがと〜。
なんか書き込んだらスペースがなくなってしまって
醜くてごめんね。
0074デフォルトの名無しさんNGNG
>>72
なんで九九なのに5なのかは分からんが、
int arry[5][5];
↓
static int arry[5][5];
ってことを言いたいんじゃないのか?
007566NGNG
>>71
えっとちょっとちがって
SENDDATA の構造体で SENDDESCRIPTORを50個(ここは実行時に決めます。)
管理したいのです。

なので
SENDDATA ないのSENDDESCRIPTORポインタに
mallocで50個分とか割り当ててあ、
配列として利用できれば名と思っています。
それで、こういう書き方が正当なのかどうかお伺いした
かった訳であります。
0076デフォルトの名無しさんNGNG
>>72
#include<stdio.h>
int *func()
{
static int arry[5*5];
int i,j;
for(i = 0;i < 5;i++){
for(j = 0;j < 5;j++){
arry[i*5+j]= (i+1)*(j+1);
}
}
return arry;
}
int main(void)
{
int *pt;
int i;
pt = func();
for( i = 0;i < 25;i++){
if(i % 5 == 0)puts("");
printf("%3d",*(pt+i));
}
puts("");
return 0;
}

0077デフォルトの名無しさんNGNG
>>75
正当というよりそれが普通だ安心しる
007866NGNG
>>77
ありがとうございました。
こういう場合なんか宣言時に配列であるみたいな宣言がいるのかなと
気にしていました。
すっきりしました。ありがとです〜。
0079デフォルトの名無しさんNGNG
>>67
配列は要素が隙間なく並んでるだけだから、
まとめてZeroMemoryしようと、要素ごとにZeroMemoryしようと変わらない。
関数呼び出しのコストがかかるというデメリットはあってもメリットはない。
008072NGNG
>46,47
ありがとうございます!
0081sageNGNG
>>78
ほんとに配列として扱いたいなら71の方がいいな
008266NGNG
>>81
・・・・・・
SENDDESCRIPTOR Data[0];
}SENDDATA, *LPSENDDATA;

SENDDESCRIPTOR Data[0];
ここのところで、
非標準の拡張機能が使用されています : 構造体または共用体中にサイズが 0 の配列があります。
って Warningがでます〜。
管理用の構造体は別段ポインタでなく
メンバ変数に固定的にもっててもOKで、なかの配列のみを
起動毎に変更したいのでポインタにしてメモリ確保後
配列として使いたかったわけです。
0083デフォルトの名無しさんNGNG
物理の点数データが入った一次元配列のアドレスと人数を受け取り、それらの最大点 最小点 平均点を求めて返す関数を作成せよ。
(点数データは初期値代入し関数呼び出した後は最大点 最小点 平均点の順に出すこと)という問題で以下のプログラムを実行し提出をしたら「今のプログラムでは、関数内で合計しか求めていない。関数内で、最大点、最小点、平均点を求め、これら3つの値を返す
(引数を用いて)関数にすること」というのが返ってきて再提出となり困ってます。できればこのプログラムを少し変えていただけるようなプログラムでしたら非常に助かります お願いします。

http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/lounge/index.html
の270に書き込みさせていただきました(長かったために・・・)
0084デフォルトの名無しさんNGNG
前スレで出てたネタが再提出になったのね
URL間違えてないか
0085デフォルトの名無しさんNGNG
スイマセンこちらでした。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=270
0086デフォルトの名無しさんNGNG
>>85
#include <stdio.h>

void cal(int *x, int n, int *max, int *min, double *ave){
int i, goukei = 0;
*max = *x; *min = *x; *ave = 0;
for(i = 0; i < n; i++){
goukei += *x;
if(*max < *x) *max = *x;
if(*min > *x) *min = *x;
x++;
}
if(n) *ave = (double)goukei / n;
}

int main(void){
int a[10]={0,10,20,30,40,50,60,70,80,90};
int max, min;
double ave;
cal(a, 10, &max, &min, &ave);
printf("最大点=%d 最小点=%d 平均=%f \n",max,min,ave);

return 0;
}
008785NGNG
ありがとうございます さっそく作成していただいたプログラムを
提出させていただきます。ホント助かったです
0088デフォルトの名無しさんNGNG
出題者がここで回答者をやってて
動かぬ証拠を日夜作り出してたりして(ボソ
0089デフォルトの名無しさんNGNG
>>88
なんで知ってるの?
0090デフォルトの名無しさんNGNG
ネタバレ
0091デフォルトの名無しさんNGNG
#include <stdio.h>
int func(int);

int main(void){
printf("%d\n",func(4));
return 0;
}

int func(int n){
if(n == 1) return 1;
else return func(n-1)+n;
}

上記のプログラムを実行すると画面にどのように表示されるかを書け。
また、関数funcは何を計算する関数かを述べよ。

という問題が出ました。実際書いて実行したところ結果は10でしたが
なぜ、10になるのか。funcは何を計算する関数なのかがさっぱり
わかりません。わかる方ご解答お願いします。
0092デフォルトの名無しさんNGNG
>>91
func(4)
func(3)+4
(func(2)+3)+4
((func(1)+2)+3)+4
1+2+3+4 = 10
0093真の66NGNG
なんか偽者>73>75>78>82がいるようで、
騙りはやめてほしかった
009485NGNG
>>88-89
そこまで暇人じゃないのであしからず
0095デフォルトの名無しさんNGNG
>>94
やけに偉そうだな(プ
0096 ◆WBRXcNtpf. NGNG
>>93
トリップ使うと良いらしい
66#password
みたいな
0097デフォルトの名無しさんNGNG
>>94
85?86じゃないのか?
0098デフォルトの名無しさんNGNG
>>92
とても素早い解答ありがとうございます。理解できました
0099 ◆1Cbz1JHu5k NGNG
>>97 ハイ 違います
0100デフォルトの名無しさんNGNG
#include<stdio.h>
void main(){
int a,b,*p;
a=10;
b=10;
p=&b;
a=20;
*p=30;
printf("%d\n",a);
printf("%d\n",b);
}
の結果が
20
30
になるわけを教えて下さい・・。
0101100NGNG
あ、わかりました。すみません・・。
*pの値とbの値は同じってことですね。
最初の
a=10;
b=10;
の意味は良く分かりませんが・・。
0102デフォルトの名無しさんNGNG
>>101
a=10 b=10
が
a=20 b=30
にちゃんと変わっただろ?という事が言いたいんじゃないかな
0103デフォルトの名無しさんNGNG
少なくとも a=10 の意味は全然わかんないけどな。
気の利いた問題作ろうとして失敗したって感じ。
0104デフォルトの名無しさんNGNG
a=20と同じように*pにも代入できるよ、
って所じゃない?
010593=真の66NGNG
ネタだっつーの
65が66って間違えて名前かいてたんだYO!
0106デフォルトの名無しさんNGNG
しまった64だったorz
0107デフォルトの名無しさんNGNG
もうだれがだれやら
0108ふぉるNGNG
フィボナッチ数Fnを求める非再帰的なプログラムを作成してくれませんか?
問題の制限では繰り返し文を用いることだそうです
0109デフォルトの名無しさんNGNG
>>108
概出
>>736-738
0110デフォルトの名無しさんNGNG
>>108-109
前スレだ
ttp://pc5.2ch.net/test/read.cgi/tech/1089974839/736-738
スマソ
0111デフォルトの名無しさんNGNG
これ再帰じゃん
0112デフォルトの名無しさんNGNG
>>108
#include <stdio.h>
void main(){
int n=10,j=2,a,b,c;
a=b=c=1;
for(;j<n;j++){
a=b+c;
c=b;
b=a;
}
printf("%d",a);
}
01131NGNG
最大15、偶数を入力し魔方陣を出力するプログラム
/* 魔方陣 */
#include<stdio.h>
int main(void)
{
int mg[16][16], i, j, k, n;
printf("15以下の奇数を入力してください!\n");
scanf("%d", &n);
j = (n + 1) / 2;
i = 1;
mg[i][j] = 1;
for (k = 2; k <= n * n; k++){
if (k % n == 1){
i++;
}else if (i == 1){
i = n;
j++;
}else if (j == n){
i--;
j = 1;
}else{
i--;
j++;
}
mg[i][j] =k;
}
0114デフォルトの名無しさんNGNG
>108
#include<cmath>
#include<iostream>

using namespace std;

namespace{
 const double SQRT5 = 2.23606797749979;
 const double RSQRT5 = 1/SQRT5;
 const double C1 = ( 1+SQRT5 )/2;
 const double C2 = ( 1-SQRT5 )/2;
}

int fib( int n ) {
 do {
  return 1.0/SQRT5 * ( pow(C1,n) - pow( C2, n));
 }
 while( false );
}

int main(){
 int i;
 for( i = 1; i < 10; ++i ) cout << fib( i ) << endl;
}
01152NGNG
for (i = 1; i <= n; i++){
for (j = 1; j <= n; j++){
printf("%5d", mg[i][j]);
}
printf("\n");
}
return 0;
}
で、
△▽問題▽△
�@偶数を入力すると正しい結果が得られません。偶数を入力された場合でも正確な結果が出るように変更してください。
�A前門に追加して15を超える数、または1未満の数が入力されたときも再入力させるようにプログラムを変更してください
�B下図はn=3の魔方陣である。図のように、横の合計も出力するように前門のプログラムを変更してください。
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
15以下の奇数を入力してください!
3
  8  1  6 | 15
  3  5  7 | 15
  4  9  2 | 15
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
01163NGNG
長かったので分割しました。
おねがいします
0117デフォルトの名無しさんNGNG
>>114, >>115-116
概出
0118デフォルトの名無しさんNGNG
>>117どこだよ
0119デフォルトの名無しさんNGNG
ここまで既出が多いと、問題を出す講師のほうがこのスレを監視しているように思えてくるな。
0120デフォルトの名無しさんNGNG
大金先生とか、実際チクられたケースもあったし。
0121デフォルトの名無しさんNGNG
まぁ28*1000以上のやりとりがあるスレだからな。似たような宿題の繰り返しにもなろう。
0122デフォルトの名無しさんNGNG
画像にフィルタをかけるプログラムを作成せよ、との問題をどなたか解いていただけないでしょうか。
使用言語はC、環境ツールはVisual C++ Toolkit 2003です。
「フィルタは5つ作れ、でも一つ作れば数値を変えるだけだからすぐ作れるだろう」と先生から言われましたが、
全然うまくいかないので、ここに書かせていただきました。
0123デフォルトの名無しさんNGNG
フィルタの計算が出来ないの?
画像の読み込みが出来ないの?
元画像の形式は?
なにがうまくいかないの?
0124デフォルトの名無しさんNGNG
>>122

/* graphic には画像データへのポインタ、sizeにはサイズを渡す */

void filter(char *graphic,int size) {
while(size-- > 0 ) {
*graphic ^= 0xf0;
graphics++;
}
}
0125デフォルトの名無しさんNGNG
dw/dt=(2-a)w da/dt=(2w-4)a をルンゲ・クッタ法で解くプログラムを
作成してください。お願いします。
0126デフォルトの名無しさんNGNG
>>125
>>1
0127デフォルトの名無しさんNGNG
いやいや、実際に面白いもんですよ
学生には解けないだろうな〜ってレベルの問題をだすと、
ここのHPにいつも質問が来てますからね。
最近では簡単な問題でもここに質問して答えだけ得ているようですね。

ほんとにいつも自分でがんばって解く学生なんかは
自分のレベルがきちんと分かっていますね。
だから、学生のレベルでは負えない問題をわざと出すと
ここのところの考え方はこうこうこういう考えでいいんでしょうか?
とか
ここのところをこうこう考えたんですが○○の値がエラーになってしまって困っています。
と、きちんと自分のわからないところを説明できるようになってきています。
馬鹿学生は自分のレベルが分かってないわけですから、
いくら難しい問題を出しても平気で綺麗なプログラムを提出してきます。
私でも、ちょっと書けそうにないぞってなコードがあったので
検索してみたらここのHPを見つけたわけですね。
まあ、前期の単位を出す2週間前に馬鹿学生を呼び出して
いままでのレポートやり直しを命ずるつもりでいますから。

やはり課題を出す側としては完璧なものを求めているわけではありません。
そんなのは無理だということも分かっています。
学生が自分の頭でどう考えて、どう試行錯誤を繰り返すのか、
そこのところが一番大事です。

ここを見ていて思い当たる節のある学生は気をつけるように
0128デフォルトの名無しさんNGNG
学のない人間が学のある人間をよそおって書くと、上記のような不気味な文章になります。
0129デフォルトの名無しさんNGNG
>>127
このスレに出てくる質問の大半は中学〜高校レベルだと思うんだけど
0130デフォルトの名無しさんNGNG
ここのレスが綺麗なプログラムなんて思ってる辺りが粕取り講師の限界なのか。
0131125NGNG
dw/dt=(2-a)w da/dt=(2w-4)a w(0)=2, a(0)=1を
ルンゲ・クッタ法で解くプログラムを作成してください。
お願いします。

http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=271
0132デフォルトの名無しさんNGNG
まずはルンゲ・クッタ法のアルゴリズムをどうぞ
0133デフォルトの名無しさんNGNG
>私でも、ちょっと書けそうにないぞってなコードがあったので

ようはそこか(w
0134125NGNG
ルンゲクッタ法のアルゴリズムです
http://www.math.sci.hiroshima-u.ac.jp/~daishin/keisanB/1998/runge.html
0135デフォルトの名無しさんNGNG
よくわかんないから侍の人よろしく
0136122NGNG
ものすごくレスが遅くなって申し訳ないです。

>>123
えーと、まず下のアドレスにある「入力画像の輝度値を2倍にして出力する」プログラムを試してみました。
ttp://www.edu.tuis.ac.jp/~susaki/image/c_process.html
このプログラムの通り、画像の読み込みは実行時に行い、元画像の形式はraw、出力画像もrawです。
また、宿題も同じようにraw画像を実行時に読みこんで、raw画像を出力ということでした。

うまくいかないのはその後、このプログラムを応用してフィルタの計算をしようとしたのですが、下手にソースをいじるとエラー吐いてよくわからない状態に・・・(汗
なので、ぼかしの効果を出すソースプログラムを教えていただけるとうれしいです。

>>124
すみません。これだけだと実行しても何が何だか・・・(泣

最後に、>>1に書いてあ注意書きに反してしまったみたいです。
すみませんでした。
0137デフォルトの名無しさんNGNG
>>136
非常に簡単な暈かし(というか平均化)の例。

画像読み込み();
for (unsigned y = 0; y < height; ++y) {
for (unsigned x = 0; x < width - 1; ++x) {
画素[x + y * width] = (画素[x + y * width] + 画素[x + 1 + y * width]) / 2;
}
}
画像書き出し();
0138デフォルトの名無しさんNGNG
へー.
何か面白い.
0139デフォルトの名無しさんNGNG
>>136
31行目〜35行目だけ直せばよい

1)輝度2倍(オリジナル)
  if(idat * 2 > 255){
    idat = 255;
  }else{
    idat = idat * 2;
  }

2)2値化(閾値128)
  if(idat & 0x0080){
    idat = 255;
  }else{
    idat = 0;
  }

3)輝度反転
  idat = ~idat;

4)輝度1/2
  idat >>= 1;

5)これら全部対象が1点のみであまり面白くないので、
エンボスやエッジとかもやってみよう。
0140デフォルトの名無しさんNGNG
ナンカスゲー
0141デフォルトの名無しさんNGNG
>>125,131,134
この問題に適切なルンゲ・クッタ法を紹介しろや。調べるのが面倒だったぞ
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=185
0142125NGNG
>>141
侍様、ありがとうございます。
0143デフォルトの名無しさんNGNG
カスタムフィルタでいいじゃん
0144デフォルトの名無しさんNGNG
ヌルボ
0145デフォルトの名無しさんNGNG
宿題まだー?ちんちん
0146デフォルトの名無しさんNGNG
重複とかでるんだったら宿題の回答まとめサイトとかほしいね…
sakuraでは雑然としたメモ帳みたいでなんだかなぁ…
0147デフォルトの名無しさんNGNG
>>146
このスレで質問するようなのは、まとめてあっても見ないから同じ。
回答者は問題をとくのが楽しみだからな。
0148デフォルトの名無しさんNGNG
ちょいっと長いのですが、Cの宿題を助けていただけませんか?
身長のデータを一行一人分で入力するものとする。
ただし、入力するデータは最大でも100人分と分かっているものとする。
身長データとして負の値を入れた時点でデータ入力の終了と判断するものとする。
データ入力が終了した時点で何人分のデータであったかという人数情報と、平均身長、
ならびに全データの中で最大値と最小値を出力するプログラムを作ってもらえませんか?

なお、データの入力中ゼロを入力すればコレまでの入力データを
入力番号(通し番号)と共に表示し、入力番号を入れれば当該データを削除し
それ以降のデータを上に繰り上げて、再びデータ全体を出力するものとする。
入力番号として0を入れた場合は、データの削除は行われず、データの入力処理を継続するものとする。

なお、プログラムの作成に関してはmain関数以外の関数をひとつ定義して使うという条件があります
0149デフォルトの名無しさんNGNG
>>148
丸投げ氏ね。
金くれるんなら考えてもいい( ´ー`)y-~~
0150デフォルトの名無しさんNGNG
す、すみません
とりあえず平均と人数を求めるものは作ってみました。
ここから削除モードに移る機能を付けたいのですがどうすればよいでしょうか?
main()
{
int i;
float height[100],x;
i=height[0]=x=0;
while(x>=0){
scanf("%f",&x);
if(x!=0){
height[i+1]=height[i]+x;
i++;
} else {
i--;
}
}
height[i]=height[i]-x;
i--;
printf("平均身長は%f,\n",height[i]/i);
printf("入力した数は%d,\n",i);
}

0151デフォルトの名無しさんNGNG
>>147
あいや〜質問者のためではなく、
ここで勉強してる僕みたいな人のためですw
0152デフォルトの名無しさんNGNG
>>150
#include <stdio.h>
void hyouji(float height[]){
int i;
for(i = 0; i < 100; i++){
if(height[i] == 0) break;
printf("No.%d Height = %f\n", i+1, height[i]);
}
}
int main(void){
float x, sum = 0, height[100] = {0};
int i, n, index = 0;

while(index < 100){
scanf("%f", &x);
if(x > 0) height[index++] = x;
else if(x == 0){
while(1){
hyouji(height);
printf("delete : "); scanf("%d", &n);
if(n == 0) break;
if(n > index) {printf("no data\n") ;break;}
for(i = n - 1; i < 99; i++) height[i] = height[i+1];
height[99] = 0; index--;}
}
else break;
}
i = 0; while(height[i]){ sum += height[i++]; if(i >= 100) break;}
printf("平均身長は%f\n",sum / i); printf("入力した数は%d\n",i);
return 0;
}
0153152NGNG
>>150
最大と最小出すの忘れてた・・・
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=186
0154デフォルトの名無しさんNGNG
>>152-153
ありがとうございます
とりあえずこれ提出するだけではあんまり意味がないんで、自分の力にもならないし
これを自分なりに手を加えてやってみたいと思います

Cは5月から学校で習い始めたばっかりでまだ>>152-153のソースで分からないものも多いのですが(void)とか
できるだけがんばって見ます。 ありがとうございました
0155デフォルトの名無しさんNGNG
>>148
意味もなく,手抜きBalanced-Tree(平衡木)
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=187
0156デフォルトの名無しさんNGNG
なげーし仕様違反だしw
0157デフォルトの名無しさんNGNG
なんつーかもう身長とか成績とか計算するライブラリつくった方が早いんじゃないか。
どこの大学もこんな問題ばっか出してるわけ?
0158デフォルトの名無しさんNGNG
だから、大半は高校の宿題だって。
0159デフォルトの名無しさんNGNG
>>157
中学校じゃないのか?
オレが工業高校生の頃はもっと難しかったような気がするんだが。
0160デフォルトの名無しさんNGNG
C言語の30%は最大、最小、平均値で出来ています。
0161デフォルトの名無しさんNGNG
残りの70%はやさしさです
0162デフォルトの名無しさんNGNG
2の10000乗を計算するエレガントなプログラムを作れという宿題が出ました。
言語はCでよろしくお願いします。m(_ _)m
0163デフォルトの名無しさんNGNG
main()
{
printf("%d", 2^10000);
}
0164デフォルトの名無しさんNGNG
>>162

int print_large_int(int*, int);

int print_large_int(int* plint, int count) {
/* plint先頭からcount個を配列として、その数を表示する */
return 0;
}

int main(void) {
int elegant[313];
elegant[0] = 0400;
print_large_int(elegant, 313);
}
0165デフォルトの名無しさんNGNG
- elegant[0] = 0400;
+ elegant[0] = 01000;
10000乗なら、こうだな
0166デフォルトの名無しさんNGNG
>>164

/* plint先頭からcount個を配列として、その数を表示する */

ここはどう書くんですか?
0167デフォルトの名無しさんNGNG
気合いで
0168デフォルトの名無しさんNGNG
先生方、お願いいたします。

問題1. 複素数の指数関数 ez は, テーラー展開を用いて次の式で求める.

ez = 1 + z + z^2/2! + z^3/3! + … + z^n/n! + …

上式を用いて e^z を計算するプログラムを作成せよ. 上の展開式で, 各項の分母は階乗であるから, 急速に増大する. よって各項は急速に小さくなる. したがって, 適当なところで計算を打ち切ってよい. まず, 最初の6〜7項を計算し, 計算精度が足りなければ項数を増やせ.

プログラムができたら, e^(x+0i)を計算し,実数のexp関数の答えと照らし合わせて検算せよ.

また, 実数のθに対して e^iθ = cosθ + i sinθ の関係があることを調べよ.

問題のヒント: exp^zの各項はzn/n!の形をしている. z^nは以前に作ったpow関数を使って計算できる. また, 分母のn!はプログラミング演習Iで作ったkaijo関数を使って計算できる. kaijoは戻り値がintなので, complex(kaijo(n),0)として, complex型に変換して使えばよい.

続く
0169デフォルトの名無しさんNGNG
続き
うそぴょーん

終わり
0170デフォルトの名無しさんNGNG
とりあえずこんなんつくったんですが、どうも違うみたいです。

#include "complex.cpp"

int main(void)
{
int a,i;
printf("底eのz乗を計算します\n");
printf("z >");
scanf("%f",&a);
complex c(1,0),z(a,0),sum(0,0);

sum=c+z;
for(i=2; i<10; i++){
complex b(kaijo(i),0);
sum=sum+pow(z,i)/b;
}
sum.print();
printf("\n");
getchar();

return 0;
}

付け加えおねがいします。
0171168NGNG
>>169 これは偽物ですので。
0172デフォルトの名無しさんNGNG
complex.cppって何よ
0173168NGNG
ええと、コンプレックスクラスをつくってあったり、オペレーターで四則演算が
複素数の計算をするようになってます。あと複素数のべき乗を返したり、階乗を返したり
します。すいません、説明がへたで・・・
0174デフォルトの名無しさんNGNG
いや、そうじゃなくて普通はcppをincludeしたりしない。
0175デフォルトの名無しさんNGNG
すいません 会社の研修の宿題なのですが

10101010 x 11001100 = 00100010
となるようなプログラムを記述せよ
* =の右側は演算結果である
演算は一行で記述するものとする

という問題があるのですがお願いします
課題名は ビット演算 です

おねがいします
0176168NGNG
まま、まじっすか!?でも教授にはこうやれと言われ申しました。
ちなみに中身はこんな感じです(一部)。

#include <math.h>
#include <stdio.h>
class complex{
private:
double real,imaginary;
public:
complex(void);
complex(const double r,const double i);
void print(void) const;
#if 0
void draw(CDC* pDC);
#endif
friend int kaijo(int x);
friend complex pow(complex x,double y);
friend double abs(complex x);
friend double arg(complex x);
friend complex polar(double a,double b);
friend complex sqrt(complex x);
friend complex operator +(const complex x,const complex y);
friend complex operator -(const complex x,const complex y);
friend complex operator *(const complex x,const complex y);
friend complex operator /(const complex x,const complex y);
};

どうでしょうか・・・?
0177デフォルトの名無しさんNGNG
>>175
/* ビット演算 */
#include <stdio.h>
int main(void)
{
puts("10101010 x 11001100 = 00100010");
return 0;
}

会社辞めろ。今ならまだ間に合う。
0178デフォルトの名無しさんNGNG
10101010 x 11001100 = 00100010

10101010 | 11001100 = 11101110 ×
10101010 & 11001100 = 10001000 ×
10101010 ^ 11001100 = 01100110 ×

・・・
0179デフォルトの名無しさんNGNG
10101010 & (~11001100) = 00100010 やね
0180デフォルトの名無しさんNGNG
ああ、xに一つの演算子を入れろっていうんじゃないのか。
0181デフォルトの名無しさんNGNG
#include < stdio.h >
void main(){
unsigned char hidari = 0xAA;
unsigned char migi = 0xCC;
printf("%d",hidari & (~migi));
}

あってるかな?
0182181NGNG
これじゃ10進数で表示しちまうか
どうしたらいいんだっけ?
0183デフォルトの名無しさんNGNG
>>182
逐一ビットが立ってるかを調べて01を表示。

for(i = 7; i >= 0; i--)
 if((hidari & (~migi)) & (1 << i)) putc('1');
 else putc('0');
putc('\n');
0184168NGNG
>>168です。自力でやることにします。
>>170でやるとコンパイルはエラーなしでできるのですが実行すると

Run-Time Check Failure #2 - Stack around the variable 'a' was corrupted

といったエラーメッセージがでてきてしまいます。これは何が悪いのでしょうか?
0185デフォルトの名無しさんNGNG
>>184
aをintで宣言しているのにscanfする時に%dにしてない。
0186185NGNG
間違えた。
aとiはdoubleで宣言しなきゃダメ。
0187185NGNG
さらにミス。doubleにするのはaだけでよかった…orz
0188168NGNG
>>186 あいたー!初歩的なことに気付きませんでした。
すいません、ありがとうございました。この恩は向こう数十年は忘れません。
0189168NGNG
>>168です。エラーは消えたのですが答えがz=1のときは底eの2.7なんとかーって
でてくるはずなんですが2.00000000にしかなりません。
kaijo,pow関数はちゃんとした答えを返していました。なにが原因でしょうか・・?
0190168NGNG
どうもpow(z,i)/bがおかしいようでした。毎回pow(z,i)/b=0になっていました。
うーん・・・
0191185NGNG
>>188
忘れていーよ。寧ろ忘れて。

complex b(kaijo(i),0);
↓
complex b((double)kaijo(i),0);
でどうよ?
0192168NGNG
>>185様様
すいません、"/"のオペレーターの式が間違ってました(´д`)
おかげさまで底は無事表示できました。
あとexp関数を使って検算をするらしいんですけどヘルプにあるこれ↓意味がわかんねぇっす・・・

int main( void )
{
double x = 2.302585093, y;

y = exp( x );
printf( "exp( %f ) = %f\n", x, y );
}
0193185NGNG
>>170を使って、aに2.302585093を代入して、同じ値が出ればいいんじゃない?
具体的な値は…10。
0194168NGNG
なるほど。exp(x)はe^xを返す関数というわけですな。
ちなみに2.302585093を我がプログラムにいれたら見事に10.0000がでましたよ!!
ヒャホー(・∀・)イイ!!ありがとうございました!あとはθを使うやつか・・・

ちなみに余談ですが私は.net2003を使っているのですがツールバーの
デバッグのなかにあるプロセスってのをクリックするとなぜか.netがとまってしまうんですよね・・。
デバッグなしで開始のすぐ下にプロセスってのがあるんでさっき間違えて押してしまったときは
蒼白ものでした。
0195デフォルトの名無しさんNGNG
16進数を入力して10進数を出力するプログラムが
宿題で出たんですけど、初心者なのでぜんぜんわかりません。
なぜかscanf()関数を使っちゃいけないらしいです。

例えば、20って入力したら、32って出るプログラムです。
よろしくお願いしますm(__)m
0196デフォルトの名無しさんNGNG
fscanf
0197デフォルトの名無しさんNGNG
>>195w
#include <iostream>

int main() {
 int value;
 while(std::cin >> std::hex >> value)
  std::cout << value << endl;
 return 0;
}
0198デフォルトの名無しさんNGNG
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
int main() {
char buf[20];
fgets(buf, 20, stdin);
printf("%ld\n", strtol(buf, NULL, 16));
return 0;
}
0199デフォルトの名無しさんNGNG
>>197
endl に std がねーぞ。
0200デフォルトの名無しさんNGNG
>>195
普通にこうでしょ

#include <stdio.h>
int main(){
int i;
scanf("%x",&i);
printf("%d\n",i);
return 0;
}
0201デフォルトの名無しさんNGNG
>>200
問題をよく読みましょう
0202200NGNG
やってもた・・・orz
0203デフォルトの名無しさんNGNG
>>195
#include <stdio.h>
#include <string.h>
int main()
{
 char Buf[256];
 fgets(Buf, sizeof Buf / sizeof (Buf[0]), stdin)
 ;printf("%ld", stdtol(Buf, NULL, 32);
 return 0;
}
0204デフォルトの名無しさんNGNG
宿題まだー?ちんちん
0205デフォルトの名無しさんNGNG
>>204
下品。荒らしうざいきえろ
0206デフォルトの名無しさんNGNG
面倒な宿題・・・他の言語と比較してC++について論述しろって。
javaと比較しようと思うのだけど、何を書くのがいいのでしょう。
誰かヒントお願いします。
0207デフォルトの名無しさんNGNG
「ちんちん」は↓のAA略じゃないのか
下品と捉える貴方が

       ☆ チン        ハラヘッタ〜
                     ハラヘッタ〜
 ☆ チン  〃 ∧_∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ヽ ___\(\・∀・)< 宿題まだー?
      \_/⊂ ⊂_)_ \____________
    / ̄ ̄ ̄ ̄ ̄ ̄ ̄/|
   |  ̄  ̄ ̄ ̄ ̄ ̄ ̄:|  |
   | 淡路たまねぎ   .|/
    ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
0208デフォルトの名無しさんNGNG
>>206
参照
多重継承
演算子のオーバーロード
テンプレート
0209デフォルトの名無しさんNGNG
936 名前:デフォルトの名無しさん[sage] 投稿日:04/07/25(日) 21:57
>>934-935
下品すぎ

このアホだろ
0210デフォルトの名無しさんNGNG
「ちんちん」は箸で丼を叩く音なんだけどな。
 
 このAA
   ↓
       ☆ チン

 ☆ チン  〃 ∧_∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ヽ ___\(\・∀・)< ○○まだ〜?
      \_/⊂ ⊂_)_ \____________
    / ̄ ̄ ̄ ̄ ̄ ̄ ̄/|
   |  ̄  ̄ ̄ ̄ ̄ ̄ ̄:|  |
   | 淡路たまねぎ   .|/
    ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
162の2^10000が微妙だから解いてやったら?
0211デフォルトの名無しさんNGNG
>>206
バイトコード
GC
標準ライブラリ
0212デフォルトの名無しさんNGNG
>>208,211
さっそくありがとう。調べてまとめてみる。
0213デフォルトの名無しさんNGNG
>>195
>>203のを改良,エラーチェックぐらいしなさいな
#include <stdio.h>
#include <stdlib.h>
int main()
{
char Buf[256];
gets(Buf);
printf("%ld", strtol(Buf, NULL, 16));
return 0;
}
0214デフォルトの名無しさんNGNG
>>205
さては2ちゃん初心者ですね。
最初はROMっていってるでしょーが。
0215デフォルトの名無しさんNGNG
>>213
改悪するな
0216マイク ◆yrBrqfF1Ew NGNG
サテハニチャンショシンシャデスネー!
wow!f**king!!i18n!
0217デフォルトの名無しさんNGNG
>>215
え!?どこが!?
そもそも>>203コンパイルエラーでつよ?
出力32進数になってるし
0218デフォルトの名無しさんNGNG
出力じゃねーや,32進数として変換されてるってことね
0219デフォルトの名無しさんNGNG
シンタックスエラーを直しても、fgetsをgetsに置き換えてたら釣りと見られても仕方が無い
0220デフォルトの名無しさんNGNG
>>219
先をこされた...
0221デフォルトの名無しさんNGNG
#include <stdio.h>
#include <string.h>
int main()
{
    char Buf[256];
    fgets(Buf, sizeof Buf / sizeof (Buf[0]), stdin);
    printf("%ld", strtol(Buf, NULL, 16));
    return 0;
}

変えるのはこれぐらいでいいだろう。
セミコロンは別に動かさなくても良かったけど、気分悪いから・・・。

わざわざ、バッファオーバーフローしないようにしてあるのを、
(ユーザー次第で)バッファオーバーフローするようにすることもあるまい。
0222ようかんまん ◆nup627Y0Gs NGNG
>162
|・∀・|ノ ひさしぶりにようかんまんが解いてみたよ!
お礼はかわいい幼女画像がいいなー
#include <stdio.h>
#include <string.h>
#define EX10000
#define LIM1000
int main()
{
int tbl[100000];
int carry;
int i,j,w=1;
memset(tbl,0,sizeof(tbl)/sizeof(tbl[0]));
tbl[0]=1;
for(i=0;i<EX;i++){
carry=0;
for(j=0;j<w;j++){
tbl[j]+=carry;
tbl[j]*=2;
if(tbl[j]>=LIM){
carry=tbl[j]/LIM;
tbl[j]=tbl[j]%LIM;
}
}
if(carry>0)tbl[w++]=carry;// 繰り上がり
}
printf("2^%d = ",EX);
for(i=w;i>0;i--)printf("%03d",tbl[i-1]);
puts("");
return 0;
}
0223デフォルトの名無しさんNGNG
getsって使っちゃいけないの?
最近気付いたんだがファイル操作以外で
fgets派を多数見かけるんだがこれってどういう事?
どうも俺はファイル操作以外でfがつく関数を使われると違和感を感じるんだが・・・.
0224マイク ◆yrBrqfF1Ew NGNG
どうせならリモートにしろよ
0225デフォルトの名無しさんNGNG
>>223
getsを使うほうが違和感があるんだが。
0226マイク ◆yrBrqfF1Ew NGNG
>>223
何言ってるんだ使っちゃいけないわけ無い。
使っちゃいけないもんがなんで標準にあんだよ。
no boundary checkingってのが好きな奴もいるんだよ
std::printf(argv[1]);いうのもな
0227デフォルトの名無しさんNGNG
>>223
まさか、プログラマで飯くってる人じゃないだろうな
0228ようかんまん ◆nup627Y0Gs NGNG
>>223
getsじゃ最大文字数指定できないでしょ?
0229デフォルトの名無しさんNGNG
>>227
それって、SE/管理職ってこと?
0230デフォルトの名無しさんNGNG
バッファオーバーフローか,そうかそうか
なんかサイズチェックがゆるい関数表とか
Cで使っちゃいけない関数表とかないかな
0231デフォルトの名無しさんNGNG
>>230
おまえはC/C++を使っちゃいけない。
0232デフォルトの名無しさんNGNG
使うなとは言わない。

ただし、ユーザーが特定できていて、
なおかつ、そのユーザーが仕様以上の文字を入力する心配が無い場合のみにしてくれ。

#include <stdio.h>
int main()
{
    char szBuf[8];
    fgets(szBuf, sizeof szBuf / sizeof(szBuf[0]), stdin);
//    gets(szBuf);
    printf("%s", szBuf);
    return 0;
}

このままの場合と、fgetをコメントアウトしてgetsのコメントアウトを解除した場合で、
8文字以上入力して試してみてくれ。
ただし、バッファオーバーフローするので、自己責任で。
まぁ、Win32の環境なら他のプロセスにまでは影響はでないと思うが…。
0233デフォルトの名無しさんNGNG
>>232
9xなら逝っちゃうかも
0234デフォルトの名無しさんNGNG
>>195なら>>197-198で既に終わってる。
gets とか scanf とかの論争はここ↓でやれや。

C言語なら俺に聞け! Part 87
http://pc5.2ch.net/test/read.cgi/tech/1090654469/
0235デフォルトの名無しさんNGNG
>>234
阿呆。その二つはこっちだ。

C言語なら俺俺に聞け! Part 87
http://pc5.2ch.net/test/read.cgi/tech/1090652323/
0236デフォルトの名無しさんNGNG
>>235
名に言ってんだ。
その二つは「C言語なら俺に聞け!」のメインテーマだろうが!
0237デフォルトの名無しさんNGNG
>>232
だって宿題だぜ?
そりゃー不特定の人相手に作る場合はチェック厳しくするけどさ
0238デフォルトの名無しさんNGNG
>>236
scanfで荒らしたい阿呆は>>235逝きだよ
0239デフォルトの名無しさんNGNG
>>237
「使ってもいい」「使っちゃダメ」って一言で言ったら理由を知らない人が・・・。
俺も、宿題ならgets使おうとscanf使おうと構わないと思うけど。
0240デフォルトの名無しさんNGNG
宿題まだぁ〜ちんこちんこ
0241ようかんまん ◆nup627Y0Gs NGNG
>>222
|・∀・|ありゃりゃTABだったからくっついちゃってる
#define EX 10000
#define LIM 1000
0242デフォルトの名無しさんNGNG
>>222
ん?これあってる?
2^20乗をためしたらおろろな結果になったんだが…
0243デフォルトの名無しさんNGNG
>>222
まったくエレガントではないのぉ
0244デフォルトの名無しさんNGNG
結果: 2^20 = 001010034072576
正:  2^20 = 1048576
0245デフォルトの名無しさんNGNG
象かよ。
0246デフォルトの名無しさんNGNG
ちゅうか
>>エレガントにお願い
とか言われると解くのに躊躇しちゃいます(^^;
0247デフォルトの名無しさんNGNG
ふだんからエレガントに書いていたらショボいソースは出てこないかと。
0248ようかんまん ◆nup627Y0Gs NGNG
carryを0にするの忘れてた

if(tbl[j]>=LIM){
carry=tbl[j]/LIM;
tbl[j]=tbl[j]%LIM;
}else{
carry=0;
}

でもまだ微妙に違うなあ…
0249ようかんまん ◆nup627Y0Gs NGNG
|・∀・;| わかった、逆でした
こっちが正解
tbl[j]*=2;
tbl[j]+=carry;

あと
#include <string.h>とmemset
いらないね
0250デフォルトの名無しさんNGNG
ようかんまーん
清書してsakuraにUPおねがいしまーす!
0251ようかんまん ◆nup627Y0Gs NGNG
|・∀・|ノ うpしたよー
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=188&fi=no
0252デフォルトの名無しさんNGNG
>>251
Guっじょぶ!よーかんまーん
0253デフォルトの名無しさんNGNG
#include <stdio.h>

const int JOU = 1000;
const int KETA = 2000;
const int NINOBASYO = (2 / 2);

int main(void)
{
int i;
int hako[KETA];

for(i = 0; i < KETA; i++) hako[i] = 0;

hako[NINOBASYO] = 1;/* 2ができた */

hako[JOU] = hako[NINOBASYO];/* 1000乗できた */
hako[NINOBASYO] = 0;

for(i = 0; i < KETA; i++) printf("%d",hako[i]);

printf("\n 2進数でドゾー。 \n");

return 0;

}
0254デフォルトの名無しさんNGNG
ようかんまん先生こちらにおられましたか。
前のスレはどこにいきました?
0255デフォルトの名無しさんNGNG
virtualつけた関数ってどういう挙動なんですか

A←B←Cと継承してる場合
基底クラスからvirtualをずっとつけといた関数は
A *c=(A) new C; c->hoge(); とかやると
newしたときのクラスCのhoge()が呼ばれるけど
ずっとvirtualをつけてないときはAのhogeが呼ばれる。

で、よくわからないのが
継承の途中からvirtualをつけたり、途中からはずしたりしたとき。
実験しまくってるけど法則がよくわからないです。
0256デフォルトの名無しさんNGNG
>>255
途中からの変更は効かない
0257デフォルトの名無しさんNGNG
一度virtualをつけたらそれ以降は省略してもvirtual
0258デフォルトの名無しさんNGNG
>>254
ようかんまんも、拙者も、流石兄弟も
中の人達はみんな同じでお送りしております。
0259デフォルトの名無しさんNGNG
>>258
中 の 人 な ど い な い 。

OK?
0260デフォルトの名無しさんNGNG
>>259
いい加減現実を見ろよ!
0261デフォルトの名無しさんNGNG
#include "現実.h"

int main(void)
{
return いい加減現実を見ろよ!();
}
0262デフォルトの名無しさんNGNG
unko[x]の中にy個の数字の中からx個を選んで入れる。
仮にx=4、y=10なとき、

unko[ ]={1,2,3,4}
unko[ ]={1,2,3,5}
unko[ ]={1,2,3,6}
・・・
unko[ ]={7,8,9,10}

とunkoの配列の中身を順に変えて行きたいのですが、
for文を使わずにTimerを使って一回づつ処理を進めて行く場合は
どう書けば良いですか?
0263デフォルトの名無しさんNGNG
>>262
そんな問題を出した先生を埋めて来い
0264デフォルトの名無しさんNGNG
Timerって何?
0265デフォルトの名無しさんNGNG
>>264
コールバックさせたいんじゃない?
0266デフォルトの名無しさんNGNG
>>262
俺が昔書いた(ぱくった)コード
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=54&fi=no
next_permutation(配列の先頭へのポインタ, 配列の末尾へのポインタ + 1);
で動くはず。
0267デフォルトの名無しさんNGNG
>>266
お、有難うございます。
0268デフォルトの名無しさんNGNG
コードの再利用など愚の骨頂だと気づいたから、書き直した。
void swap(int *a, int *b)
{
    int t = *a;
    *a = *b;
    *b = t;
}
void reverse(int *data, int size)
{
    int i, j;
    for(i = 0, j = size - 1; i < j; i++, j--)
      swap(data + i, data + j);
}
int np(int *data, int size)
{
    int i;
    for(i = size - 2; i >= 0; i--)
    {
        if(data[i] < data[i + 1])
        {
            int j = size;
            while(data[i] >= data[--j])
                ;
            swap(data + i, data + j);
            reverse(data + i + 1, size - i - 1);
            return 1;
        }
    }
    reverse(data, size);
    return 0;
}
0269デフォルトの名無しさんNGNG
>>262
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=189
そんなに難しく考えなくてもコレで良いんじゃないかい?
0270デフォルトの名無しさんNGNG
常微分方程式を解くプログラム作ってみたんですけど、
これで問題ないのでしょうか・・・?
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=272
0271デフォルトの名無しさんNGNG
>>270
func()が全く意味を成していない.
xを返してるだけじゃん
0272デフォルトの名無しさんNGNG
return (x); /* 右辺の関数 */
を
return (t,x); /* 右辺の関数 */
に変更
0273デフォルトの名無しさんNGNG
>>272
ぬるぽ!!
0274デフォルトの名無しさんNGNG
>>273
ガッ!!
0275デフォルトの名無しさんNGNG
>>274
ぬるぽ!!
0276168NGNG
すいません、昨日の者です・・・
複素数の指数関数 ez は, テーラー展開を用いて次の式で求める.
e^z = 1 + z + z^2/2! + z^3/3! + … + z^n/n! + …  ( zは(a+0i) )
らしいのでこんなん作ったんですが値が1とか2とか小さいのだと標準ライブラリの
expを使ったのとかなり近い値になるのですが5ぐらいになってくるとかなりずれてきます。
なにがおかしいのでしょうか??

//eの複素数べき乗を返す
complex exp_co(complex x)
{
  int i;
  complex c(1,0),sum;
sum=c+x;
  for(i=2; i<10; i++){
complex b(kaijo(i),0);
sum=sum+pow(x,i)/b;
  }
  return sum;
}

0277168NGNG
ちなみにmainはこんな感じです。
int main(void)
{
double a;
printf("問題1:\n底eのz乗を計算します\n");
printf("z >");
scanf("%lf",&a);
complex ans1,seed(a,0);
ans1=exp_co(seed);
printf("自分のプログラムの値 > ");
ans1.print();
printf("\n\n");
・・・・

}
0278デフォルトの名無しさんNGNG
>>276
マクローリン展開じゃなくテーラー展開を使え
0279168NGNG
>>278 Σ(゚д゚)エッ!?このプログラムテーラー展開してないの!?
0280デフォルトの名無しさんNGNG
>>276
級数の和を取る回数の10を増やせばいいだけじゃないの
0281280NGNG
つーか増やせって>>168にも書いてあるじゃねーか。
0282168NGNG
>>280

ループ条件:for(i=2; i<10; i++)
底eのz乗を計算します
z >7
自分のプログラムの値 > 910.749383+0.000000i
exp関数の値        > 1096.633158+0.000000i

ループ条件:for(i=2; i<20; i++)
底eのz乗を計算します
z >7
自分のプログラムの値 > 101366746.487487+0.000000i
exp関数の値       > 1096.633158+0.000000i

でした・・・
0283デフォルトの名無しさんNGNG
>>282
実装が悪い。階乗を計算してると限界がすぐに来る。
0284168NGNG
ではlong double でいいんですか・・・?
0285デフォルトの名無しさんNGNG
…まあ、向いてないということで……
0286168NGNG
ヽ(`Д´)ノウワァァン
0287デフォルトの名無しさんNGNG
>>199
コンパイルしてから言え
0288デフォルトの名無しさんNGNG
>>287
しなくてもないもんはないだろ
0289デフォルトの名無しさんNGNG
どんな環境でも常に2バイトの大きさを持った変数を使いたいんですが…
どうやら学校のパソコンではint型が4バイトのようで、int使うと大きすぎて困るんです。
だからといって char a[2] みたいにすると直接 a=a+1 とかいう感じに、一つの数字として
扱うことが出来ないし。
なんか方法ないですかね?
0290デフォルトの名無しさんNGNG
>>289
お前には向いてない
学校辞めて別の道探した方がいい
0291デフォルトの名無しさんNGNG
>>289
ここは宿題スレ。こちらへどうぞ。
つ ttp://pc5.2ch.net/test/read.cgi/tech/1090324689/

ついでにこれも。
つ short int
0292デフォルトの名無しさんNGNG
>>291
いやなんか、どんな処理系でも共通な型ってcharだけって聞いたんですが、
short intも常に2バイトで決まってるんですか?
0293デフォルトの名無しさんNGNG
>>292
共通な型という意味では全部そうだが、サイズが同じものは何もない。最低の
ビット数が決まっているだけだ。実装依存だからコンパイラのマニュアルを嫁。
しかし、その前にまず常に2バイトの整数を使いたい理由を言ってみろ。
0294168NGNG
ヒロシで・・・じゃなく168です。
解決しました。
double kaijo(int x)

{

int i,sum;

sum=1;

for(i=1; i<=x; i++) sum=sum*i;

return sum;

}
kaijoがこんなんになってました・・・
sumはdoubleじゃん・・・('A`) もう寝ます。
自分にプログラミングは向いてないっすかね・・・あと実装っていう意味勘違いしてました。
調べてなんとなくですがわかりました。
>>283様 ありがとうございました
0295デフォルトの名無しさんNGNG
>>292
じゃあキミの知ってる short の長さは?
0296デフォルトの名無しさんNGNG
10センチ以下だろ
0297デフォルトの名無しさんNGNG
>>292
stdint.hのint16_t ならどうだ?
ただ2バイトじゃなくて常に16ビットと決められているけど
(VCならたぶんstdint.hがない代わりに__int16って型があるはず)
0298デフォルトの名無しさんNGNG
>>297
で、どんな処理系にもあるの?それ。
0299デフォルトの名無しさんNGNG
WORD は?
0300デフォルトの名無しさんNGNG
>>292
おいおい、>291の前半はスルーか?
0301デフォルトの名無しさんNGNG
はい
0302デフォルトの名無しさんNGNG
>>298
なかったら自分で作れ。typedefと#defineが並んでるだけだ。
0303デフォルトの名無しさんNGNG
>>292
組み込み系ではcharが9bitのものもあるという話だが
0304デフォルトの名無しさんNGNG
>>303
それでも char は1バイト
0305デフォルトの名無しさんNGNG
C99 なら stdint.h
C++ なら boost/cstdint.hpp

C99以前のCとか、C++だけどboost使えないとかの場合はシラン
0306デフォルトの名無しさんNGNG
>>305
C++ の場合は知らないが、C99 の int16_t とかはあれば定義されてるってだけで、
どの処理系にもあるってわけじゃないんでは?
0307デフォルトの名無しさんNGNG
そもそも 1バイト と 8ビット は絶対的には = ではない。
0308デフォルトの名無しさんNGNG
バイトバイトばーいと♪
0309デフォルトの名無しさんNGNG
おい、無職。バイトしろ
0310デフォルトの名無しさんNGNG
Float Overflow のアプリケーションエラーの場合はどうすればいいのでしょうか?
0311デフォルトの名無しさんNGNG
みんな型の質問するときに自分の環境を書かないのはこのスレの伝統ですか?
0312デフォルトの名無しさんNGNG
・全ての環境が同じ仕様だと思っている
0313310NGNG
Borland5.5 WindowsXP です。
0314デフォルトの名無しさんNGNG
>>310
スレ違い。ここは宿題スレだってばさ。
0315デフォルトの名無しさんNGNG
まだー?ちんちん
0316デフォルトの名無しさんNGNG
putcやgetcと、fputcやfgetcの具体的な違いが解せません。
0317デフォルトの名無しさんNGNG
宿題じゃないだろそれ。マニュアル嫁
0318デフォルトの名無しさんNGNG
スレ違いなあなたが解せません。
0319デフォルトの名無しさんNGNG
質問者は俺たちに定期的に宿題を出し続けなければならない
0320デフォルトの名無しさんNGNG
>>289
ビットフィールドじゃだめか?
1バイトが 7,8,9,11 ビットの処理系に対応するように union して
あげれば何とかなると思う.

でも,そんなアクロバティックなプログラムは
今の時代に合わないと思うよ.
0321デフォルトの名無しさんNGNG

>>319
ドラッグ中毒だなw
0322デフォルトの名無しさんNGNG
charが12bitのCPUもある
0323デフォルトの名無しさんNGNG
scanfの話題もそろそろ出てくる頃だな
0324デフォルトの名無しさんNGNG
> 32bitで表せる素数をすべて列挙するプログラムを作成せよ。
> ただし、単独のコンピュータで行い、24時間以内に終了することを条件とする。

どなたか出来ませんでしょうか?
0325デフォルトの名無しさんNGNG
>>324
マジで一生懸命考えちゃったじゃないか!w
0326デフォルトの名無しさんNGNG
ビルの高さh(m)、初速v(km/h)を入力し、
落下地点と最終速度を表示するプログラムを作成しなさい
但し、仰角は0度、空気抵抗は考慮しなくても良い。
0327デフォルトの名無しさんNGNG
■問題
地上26mの高さのベランダから水平に飛び出したところ建物から
9m離れた地表に落下した。ベランダから飛び出したときの初速
を求めよ。なお、重力加速度は g=9.8m/sec^2とし、空気抵抗は
無視する。

考え方:初速度V0で物体を水平方向に投げると、水平方向には等速
運動、鉛直方向には初速度0の自由落下運動となる。
 速度のx成分 Vx=V0 時間tについて積分→t秒後の水平位置 x=V0*t
 速度のy成分 Vy=g*t 時間tについて積分→t秒後の鉛直位置 y=(1/2)*g*t^2
地表に落下した時刻をt1とすると、題意より、
 V0m/sec*t1sec=9m …1)
 (1/2)*9.8m/sec^2*t^2sec=26m …2)
 1)より t1=9/V0 これを2)に代入して
 (9.8/2)*(9/V0)^2=26
 9/V0=√26/(9.8/2)
 V0=9/√(26/(9.8/2))
 V0=3.907m/sec
(答) 3.907m/sec (14.07km/h)
--------------------------------------------------------------------------
■落下時間は 1)にV0を代入して t1=9/3.907≒2.30sec
  最終速度は Vy=g*t=9.8*2.304≒22.58m/sec (81.3km/sec)
0328デフォルトの名無しさんNGNG
   ♀
 彡 />....
───┐   ’ミζ゚
□□□│     ・ 
□□□│      ’.
□□□│↑      ミ
□□□│        ζ゚
□□□│26m       .
□□□│          .
□□□│↓         .
□□□│          .
 ._.  │          ..
 | | |  │       "orz ||     
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 
     |←   9m   →|     
0329デフォルトの名無しさんNGNG
いたい、いたい
0330デフォルトの名無しさんNGNG
関数atof(),atoi(),strtod()と同様の機能の関数を作ってください。
0331デフォルトの名無しさんNGNG
>>324 後はCPU能力次第やな。
int main(void)
{
/* unsigned long = 32Bit */
unsigned long *prime, count, number, index, *memory;
char loop;
prime = (unsigned long *)malloc(1 * sizeof(unsigned long));
if (prime == NULL) return 1;
prime[0] = 2;
count = 1;
printf("%u\n", prime[0]);
number = 3;
while (number != 1) {
for (loop = -1, index = 0; loop && index < count; index++) {
if (number % prime[index] == 0) loop = 0;
if (prime[index] >= number / 2) break;
}
if (loop) {
memory = (unsigned long *)realloc(prime, (count + 1) * sizeof(unsigned long));
if (memory == NULL) {
free(prime);
return 1;
}
prime = memory;
printf("%u\n", number);
prime[count++] = number;
}
number += 2;
}
return 0;
}
0332デフォルトの名無しさんNGNG
>>331
時間計算量も空間計算量も爆発します!
0333デフォルトの名無しさんNGNG
// Need -> #include <stdlib.h>

double _atof(const char *nptr){ return strtod(nptr, (char **)NULL); }
int atoi(const char *nptr){ return strtol(nptr, (char **)NULL, 10);
0334デフォルトの名無しさんNGNG
最後に中括弧つけといて(||゚Д゚)
0335331NGNG
ちょい修正
if (prime[index] >= number / 2) break;
↓
if (prime[index] >= number / 3) break;
0336デフォルトの名無しさんNGNG
>>332
CPU2GHz、RAM1GBもありゃぁ十分可能ジャマイカ?
今時実現不可能なスペックでもあるまい?
0337デフォルトの名無しさんNGNG
素数を計算せよじゃなく、単に列挙するだからラクショー
0338デフォルトの名無しさんNGNG
#include <stdio.h>
#include <stdlib.h>
inline bool BitGet(unsigned int *x, unsigned int y)
{
    return x[y/32] >> (y % 32) & 1;
}
inline void BitSet(unsigned int *x, unsigned int y)
{
    x[y/32] |= 1 << (y % 32);
    return;
}
int main(int argc, char **argv, char **envp)
{
    unsigned int *map, i, j;
    const unsigned int max = 0xFFFF;

    map = (unsigned int *)calloc(max/32+(max%32 != 0), sizeof(int));
    if(map == NULL) return 0;
    for(i = 2; i <= max; i++){
        for(j = 2; j <= max / i; j++){
            BitSet(map, i*j);
        }
    }
    for(i = 2; i <= max; i++)
        if(!BitGet(map, i))
            printf("%d\n", i);

    free(map);
    return 0;
}
0339デフォルトの名無しさんNGNG
エラトステネスのふるいを使ってみた。
とりあえず、"動くように"作ったから速度は(r

メモリは128MBくらい要ります。
maxを0xFFFFFFFFにしといて('A`)
テストで減らしたの忘れてた。
0340デフォルトの名無しさんNGNG
素数は列挙スレに行けばいい。
まあ結局はエラトステネスしかないんだが。

>>339
> maxを0xFFFFFFFFにしといて('A`)
int が 32ビットの保証はないし、32ビットなら止まらん。
0341デフォルトの名無しさんNGNG
limits.h - UINT_MAX
0342デフォルトの名無しさんNGNG
>>341
32ビット演算の場合。
(unsigned)0xFFFFFFFF <= (unsigned)0xFFFFFFFF は真だよね?
0xFFFFFFFF + 0x00000001 = 0x00000000 だよね?
(unsigned)0x00000000 <= (unsigned)0xFFFFFFFF は真だよね?
ほら、Forループが終わらないでしょう?
0343デフォルトの名無しさんNGNG
>>326
地球上と限定していいの? その場合、緯度と標高は?
あーそれに、初速の方向も必要だな。
0344デフォルトの名無しさんNGNG
0xFFFFFFFE
0345デフォルトの名無しさんNGNG
みんなの使うCには do ... while 文というものが無いのか?無いなら謝る。
ui = 0;
do {
ui++;
} while (ui != 0xFFFFFFFF);
とすれば良いジャマイカ。
0346326NGNG
>>343
地球限定で構いません。重力加速度=9.8m/s^2でお願いします。
初速の方向は、地表と水平で、ビルの壁面に対し垂直でお願いします。
0347346NGNG
地球の丸みは無視して下さい。
0348デフォルトの名無しさんNGNG
入力数、平均、最大値、最小値を求めるプログラムを作成せよという問題なのですが
条件としてメイン関数以外の関数を少なくともひと定義して作らなければいけません

http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=273
このプログラムをどこかに関数が入るように改変していただけませんか?
0349デフォルトの名無しさんNGNG
>>348
>>46-
>>148-
0350デフォルトの名無しさんNGNG
>>348
表示を関数にするのやめたんだね
解答に見覚えがある・・・(^^;

http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=190


0351デフォルトの名無しさんNGNG
ハハハ
0352348NGNG
す、すいません
似たような課題があったので上から引っ張ってきたんですが
関数で書かれてるのもあったんですね、もっとよく探すべきでした、すいません
0353デフォルトの名無しさんNGNG
>>326
多分こんな式?

#include <stdio.h>
#include <math.h>

int main()
{
const double g=9.8;
double h,v;
double t;

printf("高さh(m) 初速v(km/h) > ");
scanf("%lf %lf",&h,&v);

t=sqrt(2*h/g);
printf("落下地点 : %f\n",v*1000*t);
printf("最終速度 : %f\n",g*t);
return 0;
}
0354デフォルトの名無しさんNGNG
>>353
最終速度は鉛直方向と水平方向で3平方取らないといけないYO!
0355デフォルトの名無しさんNGNG
空気抵抗ないってことは初速度そのままでいいの?
それなら
printf("最終速度 : %f\n",sqrt((g*t)*(g*t)+v*v));
0356デフォルトの名無しさんNGNG
スペースが消えるだろうから調整してくれ
#include <stdio.h>
#include <math.h>

int main(void)
{
double h, v, vv, t;
double g = 9.80665;// 標準重力加速度
printf("h[m]? >");
scanf("%lf", &h);
printf("v[km/h]? >");
scanf("%lf", &v);
vv = v / 3.6;// v[m/sec]に変換
t = sqrt(2.0 * h / g);
v = sqrt(g * g * t * t + vv * vv);
printf("落下地点 = %f[m]\n", vv * t);
printf("最終速度 = %f[m/sec]\n", v);
printf(" = %f[km/h]\n", v * 3.6);
return 0;
}
0357デフォルトの名無しさんNGNG
>>356
&nbsp; とか全角とかに置き換えれば消えない
0358デフォルトの名無しさんNGNG
全角空白文字を使うと、質問者がそのままコピペして
「コンパイルできません!」とか言われたりする罠
質問・宿題スレではお勧めできない
0359デフォルトの名無しさんNGNG
「  」「&nbsp; 」に置換すると良いね。
でもかちゅ〜しゃでレスポップアップしたときに醜くなる罠
0360326NGNG
>>353
>>356
サンクス!!助かりました!
0361デフォルトの名無しさんNGNG
地球の丸みを無視してもコリオリの力は無視できない罠。
#東京程度の緯度で初速0でも東京タワー程度の高さで3cm位は東に流れるぞ。
0362デフォルトの名無しさんNGNG
自転も無視してください!
0363デフォルトの名無しさんNGNG
そんなの中学校じゃ習わないよ!!
0364デフォルトの名無しさんNGNG
ttp://up.nm78.com/data/up052248.zip

アルゴリズムの問題なのですがよろしくです。
長いのでzipでうpします。
0365364NGNG
使用する言語はCです。
0366デフォルトの名無しさんNGNG
>>1のアップローダー使ってくれ。読む気がせん。
0367364NGNG
>>366
分かりました。かなり長いかもしれませんがよろしくです
0368デフォルトの名無しさんNGNG
>>364
1.
ひとつは,辺の重みの値が 0 になるグラフがだめだよね.
もうひとつは何だろう?

2.
自分でコンパイルしてやって.

3.
プログラム上は配列に残ってるけど,アルゴリズム上は
なくなったノードだからでしょ.
0369デフォルトの名無しさんNGNG
>>364
素人なんで間違ってたらスマソ
1.
辺に重み0をつけられない。
ある点と自分自身との接続や、同じ二つの点の間の複数の接続を表現できない。

2.
自分で試せ。

3.
グラフに孤立点しかなかった場合にvisit_all_nodesは常にYESを返し、
これは期待した動作ではないから。
0370デフォルトの名無しさんNGNG
2. の意見は一致したな.
0371368NGNG
>>369
それか,
1.
辺の重み0ができない.
と
2つのノード間の複数の辺を表現できない.

これだな.(自己接続はできるよ.)
0372364NGNG
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433

このスレの>>274-278に問題&ソースコードうpしました
0373364NGNG
>>368-369
ありがとうございました!
0374デフォルトの名無しさんNGNG
>>372
関数内のコメント凄いね。逆に見辛くない?
0375デフォルトの名無しさんNGNG
>>374
仕様書を兼ねたコーディング規則を取る場合はあれぐらいやるよ
0376デフォルトの名無しさんNGNG
センセが書いたんだろ。
>なぜでしょう?
なんて煽る文句が入ってる。
0377デフォルトの名無しさんNGNG
>>372をGoogleのクロール対象に加えておいた:P
0378デフォルトの名無しさんNGNG
平衡木B-Treeを用いたプログラムを作成せよ。
以下の仕様を満たすものであれば,その他の詳細は問わない。
1.英文テキストファイルから単語を抽出し,それをB-Treeに格納する。
2.B-Treeから,単語を辞書順に出力する。

C言語/C++言語,どちらでも良いそうです。
よろしくお願いします。
0379デフォルトの名無しさんNGNG
リトルエンディアンを入力し、ビッグエンディアンに変換して、出力せよ
その際、先頭の0を省略することを禁じ、演算は、1行で行うものとする
0380デフォルトの名無しさんNGNG
>>379
こうでいいよな?
int main()
{
unsigned short n;
scanf("%u", n);
printf(%0u, (n << 8) | (n >> 8));
return 0;
}

int main()
{
unsigned long n;
scanf("%lu", n);
printf(%0lu, (n << 24) | (n >> 8 << 16) | (n >> 16 << 8) | (n >> 24));
return 0;
}
0381デフォルトの名無しさんNGNG
>>331 >>338 の素数計算プログラムを評価してみた。
CPU: Pen4 2.4BGHz Mem:512MB gcc(g++)オプション: -O3

331:
 桁が二倍になるごとに計算時間は約3.6倍になるように見える。400万以下の素数で 221.167s
 かかることから予想終了時間は1020日位。よって24時間以内に終わらない。 

338:
 桁が二倍になるごとに計算時間は約2.2倍になる。ただし計算数が大きくなるほど倍率は
 下がっていくように見える。(1000万→2000万:2.34倍/2000万→4000万:2.25倍)

 1.6億以下の素数で 173.771s かかることから予想終了時間は 130分以下。
 まさに爆速!このプログラムなら24時間以内なんて楽勝っぽい。
0382デフォルトの名無しさんNGNG
爆速ってのは prime_sieve.c みたいなのを言うんだ
0383デフォルトの名無しさんNGNG
>>381
JavaScriptで書いたほうがはるかに速い
0384デフォルトの名無しさんNGNG
>380
それじゃだめじゃね?
#include <stdio.h>
int main()
{
unsigned int n;
scanf("%x", n);
printf("%0x", (n << 24) | (n >> 8 << 16) | (n >> 16 << 8) | (n >> 24));
return(0);
}
0385デフォルトの名無しさんNGNG
#include <stdio.h>
int main()
{
unsigned int n;
scanf("%x", &n);
printf("%0x", (n << 24) | ((n << 8)& 0x00FF0000) | ((n >> 8) & 0x0000FF00) | (n >> 24));
return(0);
}

douda?
0386デフォルトの名無しさんNGNG
>>356
>v = sqrt(g * g * t * t + vv * vv);
>printf("落下地点 = %f[m]\n", vv * t);
>printf("最終速度 = %f[m/sec]\n", v);

v壊しててもだれもつっこまないんだな
0387デフォルトの名無しさんNGNG
>>379
こういうときこそ,C++。

#include <iostream>
#include <iomanip>

template <class Type> Type traverse(Type in){
int i; char *p,buf[100]; Type out=in;
for(i=0,p=(char*)&out;i<sizeof(Type)/2;++i) p[sizeof(Type)-i-1]^=p[i]^=p[sizeof(Type)-1-i]^=p[i];
std::cout<<"0x"<<std::setw(2*sizeof(Type))<<std::setbase(16)<<std::setfill('0')<<in;
std::cout<<" -> ";
std::cout<<"0x"<<std::setw(2*sizeof(Type))<<std::setbase(16)<<std::setfill('0')<<out;
std::cout<<std::endl;
return out;
}
int main(){
int i=0x01234567;
short s=0x0123;
long l=0x01234567;
long long ll=0x0123456789abcdefll;
traverse(i);
traverse(s);
traverse(l);
traverse(ll);
return 0;
}
0388356NGNG
>>386
元々意図してますが、何か?
これ以降、元の形の v 使いませんが、何か?
0389デフォルトの名無しさんNGNG
何かナニカうるせぇハゲ
0390デフォルトの名無しさんNGNG
>>388
落下地点は?
0391デフォルトの名無しさんNGNG
ハゲハゲうるせぇぼけ
0392デフォルトの名無しさんNGNG
非常に柔軟性の求められる課題で、全く手がつかない状態です。。。

(課題)
今手元に、「ある学校の生徒の名前と連絡先の入ったファイルA」と
「その生徒たちのテストの結果および平均点と評価、全体での平均点が入っているファイルB」があるとする。

�@ファイルBで評価がD以下だった生徒の名前を新たなファイルCに書き出す。
�Aその生徒たちの連絡先をファイルAから探し出しファイルCに追加する。
�Bその生徒たちの名前と連絡先を名前順に並び替える。

結果として、ファイルCに「評価がD以下だった生徒」の「名前と連絡先」が「名前順」にソートされている。


このようなプログラムを作れとのことです。
制限とかはなかったんで、ぜひぜひ自由にプログラム組んでいただけると助かります。
C言語です。どうかよろしくお願いします。
0393387NGNG
>>379
C言語版。
#include <stdio.h>
#include <string.h>
void traverse(void *in, int size){
char *p=malloc(size);
memcpy(p,in,size);
for(i=0;i<size/2;++i) p[size-i-1]^=p[i]^=p[size-i-1]^=p[i]; //演算の一行
printf("0x");
for(i=0;i<size;++i) printf("%02x",((char*)in)[i]);
printf("-> 0x");
for(i=0;i<size;++i) printf("%02x",p[i]);
printf("\n");
free(p);
}
int main(){
int i=0x01234567;
short s=0x0123;
long l=0x01234567;
long long ll=0x0123456789abcdefll;
traverse(&i,sizeof(i));
traverse(&s,sizeof(s));
traverse(&l,sizeof(l));
traverse(&ll,sizeof(ll));
return 0;
}
0394デフォルトの名無しさんNGNG
>>392
1や2でファイルCに書き出すと,すげぇ面倒くさいんだけど?
最後,3で一度だけ書き出すんじゃ駄目なの?
0395デフォルトの名無しさんNGNG
>>393
> for(i=0;i<size/2;++i) p[size-i-1]^=p[i]^=p[size-i-1]^=p[i]; //演算の一行
未定義
0396デフォルトの名無しさんNGNG
>>394
生徒が100万人くらいいてメモリだけでやるには手に負えないんじゃないか?
0397デフォルトの名無しさんNGNG
どんな学校ですか
0398デフォルトの名無しさんNGNG
>>396
それなら,ファイルDを用意しないと,上書きしちゃう。
0399392NGNG
>>394
あっ、書き方が悪かったかもしれません。
最後に一度だけ書き出していただいて、全然問題ないです!

助かります、どうぞよろしくお願いいたします。
0400デフォルトの名無しさんNGNG
>>399
ファイルの形式は決まってないのか?
それも含めて制限なしで自由ってことなのかもしれないけど、面倒くさいんだよ、そういうの。
0401デフォルトの名無しさんNGNG
>>395
どの辺りが?
0402デフォルトの名無しさんNGNG
>>401
p[size-i-1]^=p[i]^=p[size-i-1]^=p[i] の辺り
0403デフォルトの名無しさんNGNG
>>399 に宿題。
ファイルAとファイルBを作って,>>1にうp。
0404デフォルトの名無しさんNGNG
あpろだ使うまでもなくサンプルを2、3行ここに貼ればいいだけじゃないか
0405デフォルトの名無しさんNGNG
↑ Not Found.
0406デフォルトの名無しさんNGNG
宿題まだー?ちんちん
0407デフォルトの名無しさんNGNG
> 毎秒1億桁のπを求め、表示するプログラムを作成せよ。
> (※使用するパソコンの性能は現在、一般に普及している最新型相当のものとする)
何ですが………
どう考えてもできません。どうすればいいでしょうか……。
0408デフォルトの名無しさんNGNG
毎秒一億桁はムリだろー

普通のπなら FFT でガウスルジャンドルでもやっとけ
0409デフォルトの名無しさんNGNG
407 名前:デフォルトの名無しさん[sage 今度こそ不可能なネタ投下!]
0410デフォルトの名無しさんNGNG
>>407
あからさまに不可能な宿題は見ていて面白くないよ。
ギリギリ現実可能か?と思わせる宿題出される様にしてよ。
0411デフォルトの名無しさんNGNG
つか、しつこい上にツマラナイ
0412デフォルトの名無しさんNGNG
またちんちんしちゃうよー
0413デフォルトの名無しさんNGNG
CPU: 1GHz
Mem: 1GB
のパソコンにおいて
一時間かけて合成数n(=p*q)を素因数分解するとき
nが何ビットまで素因数分解できるか
(p,qのビット数は等しいものとする)
0414デフォルトの名無しさんNGNG
情報足りなくないか
0415デフォルトの名無しさんNGNG
何ビットまでって…
0416デフォルトの名無しさんNGNG
足りない頭をひねっても愚問しか出てこないよ。いい加減諦めろ。
0417デフォルトの名無しさんNGNG
ちょー簡単なアルゴリズムの問題でも出そうか。

N個の数、1,2,3,...,nの順列を表示するプログラムを、N=10として作れ。
なお表示する順は問わない。
0418デフォルトの名無しさんNGNG
next_permutation
と元も子もないことを言ってみるテスツ
0419デフォルトの名無しさんNGNG
nが1024ビットの数だったら一時間で素因数分解できないけど
nが40ビットだったら楽勝でできるわけで、
どこが限界か知りたいの
0420デフォルトの名無しさんNGNG
>>417
そういう探せば一瞬で見つかるようなのじゃなくて、もうちょっとひねった問題にしてくれ。
0421デフォルトの名無しさんNGNG
>>417
ここはあくまで宿題スレだから問題出す時は下手に出ろ
0422デフォルトの名無しさんNGNG
while, do〜while文を用いた反復文プログラム

次のような単純な暗号を作成しなさい。
�@暗号化したい数字を入力(正の整数)[データ1]
�A暗号用の鍵(正の整数3桁)を入力[暗号鍵]
�B暗号鍵の数字(の約数)から素数を全て求める
�C1番目に大きい素数と2番目に大きい素数を選択[鍵1,鍵2]
(1番目と2番目が無い場合,暗号鍵の数字に1を足し�Bへ)
�Dデータ1に鍵1の数字を掛ける[データ2]
�E最後に,データ2を鍵2で割り,その余りの2乗を暗号とする

�Aまでは出来たのですが、�B以降が分かりません。
どなたか解いてくださいませんでしょうか、お願いします
0423デフォルトの名無しさんNGNG
すいません↑はC言語でお願いします
0424デフォルトの名無しさんNGNG
ひとついいですかそれは可逆ですか
0425デフォルトの名無しさんNGNG
暗号を作るだけで、暗号から元に戻したりはしません
0426デフォルトの名無しさんNGNG
http://www.geocities.com/shinobi0227/cgi-bin/TicTacToe.zip
http://www.geocities.com/shinobi0227/cgi-bin/poker.zip

Play my games please!!!
0427デフォルトの名無しさんNGNG
ウイルス
0428デフォルトの名無しさんNGNG
Nothing like that. Those games were console applications written with
C++ on my own burden. Just try to right-click, save, then play it!
0429デフォルトの名無しさんNGNG
fuck off sunnovabitch
0430デフォルトの名無しさんNGNG
I seriously made it for fun and only pleasure is just to have somebody
play my hand-made game. That's the sense, well, I would never erge to
play those it's all up to u folks..
0431デフォルトの名無しさんNGNG
えいごわかりません
0432デフォルトの名無しさんNGNG
hand-made game? huh, bullshit.i mean, fuck it.
0433デフォルトの名無しさんNGNG
英語読めね('A`)
0434デフォルトの名無しさんNGNG
Why u so cursing around? Isn't it on far plot so far for you?
I'm really not sneaking.... well, i'm away...
0435デフォルトの名無しさんNGNG
どうでもいいけどスレ違い
0436デフォルトの名無しさんNGNG
go! go! away! hope never to see ya again
0437デフォルトの名無しさんNGNG
えーと、これは自演?コピペ?
0438デフォルトの名無しさんNGNG
C言語で、線形リストを用いて,過去に素数と分かった数を保存し,指定された数(N) 以下の素数を求めるプログラムを
作成してください.素数かどうかを判定する際には線形リストに保存されている素数のみ利用してください。.

こんな問題が出されたんですけどよくわかりません。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=279
こんな感じじゃいけないんでしょうか?
0439デフォルトの名無しさんNGNG
>>437
テケトーに煽ってみたが自演じゃあない
0440デフォルトの名無しさんNGNG
>>438
去年同じ問題をあったな。
C/C++の宿題やらせてください。7代目。
http://pc5.2ch.net/test/read.cgi/tech/1053963794/453+509
0441440NGNG
あ、ふるいじゃないのか。なら違った。
0442デフォルトの名無しさんNGNG
>>440

ありがとうございました〜。
素数判定はどんなことやってもいいので、
その回答例が正しいようです。

お手数をおかけしてすみませんでした。
0443デフォルトの名無しさんNGNG
>>438
>>331に手を加えれば良いんじゃね?
0444デフォルトの名無しさんNGNG
>>443

わざわざ示していただきありがとうございました。

でも、自己参照的データ構造への書き直し方がよくわからないので、
440さんに示していただいたプログラムに手を加えて見ようと思います。

過去レスもよく読まずに質問してしまい申し訳ありませんでした。
0445デフォルトの名無しさんNGNG
このスレは >>1 の暇を潰してあげるスレなの?
じゃ
ttp://www.logos.ic.i.u-tokyo.ac.jp/acm-icpc/problems.html
C か Java だそうです.
04461NGNG
>>445
既に紫(visited)。問題と入出力例は全部
http://www.ehime-u.ac.jp/ICPC/problems/domestic/d2004/
にある。プログラム例は無いがな。
0447デフォルトの名無しさんNGNG
すいませんが場違いなのはわかりますが助けてください。
JPEG処理に使われる1次元8点DVTを実現するプログラムを
SH3-DSPのアセンブリ言語を用いてさくせいせよ。
変換行列の係数は計算済みとしてよい
ソースデータはメインメモリにおかれているとする
結果はメインメモリに格納する
0448445NGNG
>>446
おっと,そうでしたか.失礼しました.
0449デフォルトの名無しさんNGNG
>>447
ここはC,C++の宿題スレです。アセンブラはCとかC++じゃないです。
0450デフォルトの名無しさんNGNG
流れてしまった>>422を誰かお願いします。・゚・(ノД`)・゚・。
0451デフォルトの名無しさんNGNG
とりあえずその(2)までのPrg.を>>1にうpっとけ。
0452デフォルトの名無しさんNGNG
>>450
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=192
0453デフォルトの名無しさんNGNG
>>402
それって未定義なの?
右から順次代入していくんじゃないの?
0454デフォルトの名無しさんNGNG
=じゃなく^=なのだが
0455デフォルトの名無しさんNGNG
>>452さん有難うございましたー
0456456な人NGNG
C言語の課題でこんな問題が出されました。

宝くじで1億円当たったあなたは,それを増やすために,
T銀行に2年間預けることにしました.利率は,0.005%(毎月複利)です
2年間(24ヶ月)の残高の推移を,1ヶ月毎にfor文とprintf文を用いて出力しなさい。

さっぱり分からないので誰か代わりに答えを出してください(´Д⊂
0457デフォルトの名無しさんNGNG
>>454
= も ^= も 代入演算子です
0458デフォルトの名無しさんNGNG
>>456
#include <stdio.h>
main()
{
double money = 100000000;
int i;
printf("元金 %d円\n", (unsigned long)money);
for(i=0 ; i < 24; i++){
money *= 1.005;
printf("%d ヵ月後 %d円\n",i+1 ,(unsigned long)money);
}
}
0459デフォルトの名無しさんNGNG
>>457
^= は = と違って左辺値も一度評価される
0460458NGNG
>>456
表示修正

#include <stdio.h>
main()
{
double money = 100000000;
int i;
printf("元金 %.f円\n", money);
for(i=0 ; i < 24; i++){
money *= 1.005;
printf("%d ヵ月後 %.f円\n",i+1 ,money);
}
}
0461デフォルトの名無しさんNGNG
課題でくらい 10% くらいにしてくれよ
0462デフォルトの名無しさんNGNG
>>392
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=191&fi=no
0463456な人NGNG
ありがとー^^
0464デフォルトの名無しさんNGNG
>>458
表示だけじゃなくて、計算過程としても小数以下は切り捨てるんじゃない?
double money
↓
unsigned long money
あと、0.005%複利は * 1.00005 。
0465デフォルトの名無しさんNGNG
I君は自宅から学校まで電車で通っている。
その片道運賃は190円である。
syyyy年smm月sdd日からeyyyy年emm月edd日まで
学校へ休まず通う(自宅→学校→自宅)とした場合、
運賃はいくらになるか。但し、
通う総日数部分(閏年は考えない)および、運賃計算部分は関数化すること。

という宿題が出ました。よろしくですm(_ _)m
0466デフォルトの名無しさんNGNG
っと、言語はCでよろしくです
0467デフォルトの名無しさんNGNG
>>465
土曜日は学校休み、休まない?
0468デフォルトの名無しさんNGNG
>>465
春・夏・冬休みも学校に行くの?
…現実なら定期を買って行くんだろうけどなぁ。
0469デフォルトの名無しさんNGNG
まだ学校休みじゃないんですよー
課題もネット経由で提出しなくちゃいけないのです;;
0470デフォルトの名無しさんNGNG
ひぃ、ごめんなさい現実と勘違いしてました(照
土日は休みで春・夏・冬休みは無いです・・・

ほんとすいません><
0471デフォルトの名無しさんNGNG
閏年は考えないのに土日を考えるっていったいどうするつもりなんだろう?
0472デフォルトの名無しさんNGNG
下がり杉なので age ときますね.
0473デフォルトの名無しさんNGNG
ageないで良い
0474392NGNG
こんなものでいいかわかりませんが、ファイルAとB一応作ってみたんでうpしました。

http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1091194059

本当に遅れてすみませんでした・・・
0475デフォルトの名無しさんNGNG
age
0476デフォルトの名無しさんNGNG
1年365日の内、土日何日あるのかわからねミ,,゚Д゚彡
0477デフォルトの名無しさんNGNG
365/7*2=104日くらい
0478デフォルトの名無しさんNGNG
Cでコンパイルした時に
77行目:out of memory
というエラーが出るんだけどどういう意味ですか
0479デフォルトの名無しさんNGNG
out of memoryです
0480デフォルトの名無しさんNGNG
>>478
>>479
0481デフォルトの名無しさんNGNG
ヘッダの二重インクルードだろ?
0482デフォルトの名無しさんNGNG
>>465
多分これでいいかな。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=280&fi=no

閏年を無視すると、曜日計算が出来ませんので、開始日の曜日も入力するようにしました。
あと、入力はscanfなんで、指示通りのフォーマットで入れないと暴走します。
0483482NGNG
妙な誤字があたよ。

× >* sw は、開始日の曜日を表す数値。0-6で、小さい順に、月日水目金土日
○ >* sw は、開始日の曜日を表す数値。0-6で、小さい順に、月火水木金土日


あと、年月日の整合性チェックしていないので、変な値入れると動作保障できません。
特に「月」は、配列のインデクスに使ってるので、1〜12の範囲外では不正メモリアクセスが発生する。
0484482NGNG
そういえば、国民の休日っつーもんがあるな。
>465 の提示情報だけだと、祝日も考慮しなきゃならなそうだ。
0485デフォルトの名無しさんNGNG
> 祝日も考慮
ハッピーマンデー キタ━(゚∀゚)━( ゚∀)━(  ゚)━(  )━(゚  )━(∀゚ )━(゚∀゚)━!!!!
0486デフォルトの名無しさんNGNG
> 閏年を無視すると、曜日計算が出来ませんので、開始日の曜日も入力するようにしました。
こんなん感じでええんちゃう?
テストしてないから間違えてるかもしれないけど・・・・

int montable[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int y, m, d, ms, dow;

/*
y = 2004;
m = 2;
d = 7
*/
ms = 0;
for(i = 0; i < m-1; i++) ms += montable[i];
dow = ((y - 1) * 365 + ms + (d - 1)) % 7;
0487デフォルトの名無しさんNGNG
教授によると休みは土日のみらしいです・・・
死ぬぞヽ(`Д´)ノ

>>482さんのソースでできました。
有難うございましたー
0488デフォルトの名無しさんNGNG
C言語実習の課題で
5 -1 7 -7 9 25 -9 5 14 9の配列を
シェルソートで並べ替えた結果と交換回数、比較回数を表示せよ。

なんですけど、交換回数、比較回数の表示ができません。
どうやればいいのか教えてもらえないでしょうか。
0489デフォルトの名無しさんNGNG
コード晒せや
0490デフォルトの名無しさんNGNG
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=281
すいません、これです
0491デフォルトの名無しさんNGNG
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=282
間違い、こっちです
0492デフォルトの名無しさんNGNG
>>491=488

手っ取り早い方法。関数外でstatic unsigned KoukanKaisuu, HikakuKaisuu;と定義しておき、
比較のif文の前で++HikakuKaisu;、交換の直前で++KoukanKaisuu;とカウントする。
ソート後、それらを表示すればよい。
0493デフォルトの名無しさんNGNG
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=283
えっと、こうでいいんでしょうか?
0494デフォルトの名無しさんNGNG
私ゃ頭が痛いよ。
0495デフォルトの名無しさんNGNG
こんな奴がシェルソート書いてることが不自然
ネタ決定
0496デフォルトの名無しさんNGNG
クイックソートって萌えるよね
0497デフォルトの名無しさんNGNG
すいません、天然でした・・・
グローバル関数にしたら作動しました
どうもお騒がせしました
そして有難うございました
0498c言語入門ふつかめNGNG
正の整数を0が入力されるまで配列に順番に格納し、次にある整数を与えると何番目に
入力された整数であるのかを表示する(0を与えると終了)プログラムを作りたいんですがうまくいきません。
ご指摘おねがいします。あと、MAXのマクロ関数定義を変更して任意の正の整数を代入したいです。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=284
0499デフォルトの名無しさんNGNG
>>498
1. 細切れにしなくてもまとめて1つにできる。
printf("数字(%d)を代入してください", n);

2.
scanf("%d",&input);
if(input==0) break;
data[i]=input;
これはinputを使わずにこれじゃダメなのか?
scanf("%d",&data[n]);
if(input==0) break;

3. 何番目にあるのか探すのだから、data[0]〜data["0が入っているとこまで"]をforで探し回らないと探したことにならない。
for (;;) {
    printf("見つけたい数字を入力してください ");
    scanf("%d",&j);
    if (j == 0) {
        printf("それではプログラムを終了します");
        break;
    }
    for (n = 0;; i++) {
        if (data[n] == j) {
          printf("%dは%d番目にみつかりました", j, n);
          break;
        }
        else if (data[n] == 0) {
          printf("%dは見つかりませんでした", j);
          break;
        }
    }
}
0500デフォルトの名無しさんNGNG
>>392
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=193&fi=no
もっと簡単にできたかも。
0501c言語入門ふつかめNGNG
>>499
なるほど、1番目のはどうにかしたらできると思ってたんですが3番目のは全く
思いつかなかった_| ̄|○
ありがとうございます!
0502500NGNG
あ、ファイル出力忘れてた。最後にコレ追加しといて。

// Record set. - C.txt
strcpy(caFile, ".\\C.txt");
if ((pfA = fopen(caFile, "w")) == NULL) {
printf("File not find - %s\n", caFile);
return 1;
}
lIndex[ID_SORT] = 0;
while (lIndex[ID_SORT] < dbQuery.lCount) {
fprintf(pfA, "%s %s\n", praSort[lIndex[ID_SORT]]->caName, praSort[lIndex[ID_SORT]]->caTel);
lIndex[ID_SORT]++;
}
fclose(pfA);
0503デフォルトの名無しさんNGNG
>>499
えっと・・・、ツッコミ待ち?
0504c言語入門ふつかめNGNG
1番目と2番目のはできましたが、
肝心の見つけたい数字を入力するとこが全く正常に動きませんでした・・_| ̄|○
0505デフォルトの名無しさんNGNG
>>504
for (n = 0;; i++) {
を
for (n = 0;; n++) {
にしてみ
0506c言語入門ふつかめNGNG
iをnにしてみましたがかわらず・・
実行したときに、0以外の整数を入力すると常に見つかりませんが表示され、
なぜか0を代入すると0は〜番目に見つかりましたと表示され、プログラムも
終了されません。
c 34: syntax error near 'end of file'このエラーを無視してるからでしょうか_| ̄|○
0507c言語入門ふつかめNGNG
あ、エラーがあるからコンパイルできてないから実行しても結果がかわらないのかな
0508デフォルトの名無しさんNGNG
>>499は間違いが多いから、この考え方を参考にして自分で書いてみるべし。
0509c言語入門ふつかめNGNG
>>508
3番目の考え方を取り入れて自分なりに書いてみました。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=285

c 22: syntax error near 'else'
c 32: syntax error near 'end of file'
あとはこのエラーを直すことができればちゃんと動くような気がするんですがどこが間違ってるんでしょうか
0510デフォルトの名無しさんNGNG
>>509
構文エラーの意味を考えれ。

>if(j==0) break; {
>printf("それではプログラムを終了します");
>}

変だろ?
0511デフォルトの名無しさんNGNG
>>509
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=286&fi=no
参考までに…
0512デフォルトの名無しさんNGNG
>>509
わかったわかった

#include<stdio.h>
#define MAX 10000
#define else

↑これを書けばコンパイルできるよ
0513デフォルトの名無しさんNGNG
初心者にやさしくない人がいますね。
0514c言語入門ふつかめNGNG
>>510,511
ありがとうございます。参考にさせてもらいました。
まだ若干の問題点はありますがもうちょっと改良すればできそうです。
0515デフォルトの名無しさんNGNG
>>392 >>500
ポインタ使って読みやすく改造。
簡単かどうかは???
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1091194059&res=5&fi=no
0516デフォルトの名無しさんNGNG
見やすくはなった
0517482NGNG
余り日数の土日チェックが不完全だったので、一応完全版書いておきます。
初日が土日の場合に、計算が合わないことがあります。
もっとも、初日が休日というのはありえない設定かもしれませんが。
int get_weekdays(int sy, int sm, int sd, int sw, int ey, int em, int ed){
  int i, s, e, all_days, holidays, mod;
  s = YEAR_OF_DAY[sm - 1] + sd;
  e = YEAR_OF_DAY[em - 1] + ed;
  all_days = ((ey - sy) * 365 + e) -  s + 1;
  holidays = (all_days / 7) * 2;
  mod = all_days % 7;
  if(mod > 0){       
    switch(sw){
    case 5:
      if(mod == 1) holidays += 1;
      else holidays += 2;
      break;
    case 6:
      if(mod < 6) holidays += 1;
      else holidays += 2;
      break;
    default:
      if(sw < 0 || sw > 6) break;
      if(sw + mod == 6) holidays += 1;
      else if(sw + mod >= 7) holidays += 2;
    }
  }
  return all_days - holidays;
}
0518482NGNG
>初日が土日の場合に、計算が合わないことがあります。

誤解を招く言い回しかいちゃったので訂正。正しくは

>初日が土日の場合に、計算が合わないことが(最初のプロ具レムでは)ありました。

です。>517 に差し替えれば初日が土日でもちゃんと計算されます。

あと、
MONTH_OF_DAY, YEAR_OF_DAY
は
DAY_OF_MONTH , DAY_OF_YEAR
が英語的にただしいっぽ。
0519デフォルトの名無しさんNGNG
配列を戻り値にできますか?
0520デフォルトの名無しさんNGNG
>>519
関数は配列を戻り値にはできないよ。ポインタなら戻り値にできるけど。
0521デフォルトの名無しさんNGNG
char fanc01(void)[64]; // これはダメ
char *fanc02(void);; // これはOK
char (*fanc03(void))[64];; // これもOKだけど、戻り値は配列のポインタなので間違えない事。

http://pc5.2ch.net/test/read.cgi/tech/1086373839/973 辺りが参考になるかと。
0522521NGNG
セミコロン多かったorz
0523デフォルトの名無しさんNGNG
C++で式を入れたら答えが出力されるという計算機のプログラム
6+2×3と入力したら12とでるやつを作りたいのですが・・・

自分にはできないのでできるかたお願いしますm(__)m


0524デフォルトの名無しさんNGNG
522です
C++じゃなくてCです。すいません><
0525デフォルトの名無しさんNGNG
m(__)m><
0526デフォルトの名無しさんNGNG
入力は2バイト文字?それとも1バイト文字でも良いの?
0527デフォルトの名無しさんNGNG
>>523
if (strcmp(szInput,"6+2×3") == 0){
  printf("12");
}
0528デフォルトの名無しさんNGNG
>>527
素晴らしすぎて射精した
0529392NGNG
>>500>>515

コンパイルして実行してみたら、できました!
全く手がつけられない状態でしたので、すごく助かりました。
本当に、どうもありがとうございました。
0530デフォルトの名無しさんNGNG
>>523
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1091194059&res=6
間違って変なところに張っちまった。
1バイト文字限定、文法判定なし、カッコ未対応、小数点判定付き
0531デフォルトの名無しさんNGNG
http://www.ced.is.utsunomiya-u.ac.jp/lecture/2004/prog/p3/kadai2/
0532530NGNG
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=194
気になった所があったので修正。
0533c言語入門ふつかめNGNG
昼間書き込んでた>>498ですが、いろいろ改良して自分のプログラムを見る限り間違いがみあたらないんですが
どうしてもうまくいきません_| ̄|○
1番目に入力した数字は1番目に見つけました、ときちんと動いてくれるのに
2番目以降に入力した数字は見つかりません、になってしまいます
ご指摘おねがいします
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=287
0534デフォルトの名無しさんNGNG
ブレイク!ブレイク!

     ( ゚∀゚)    ・∴.
     (ヽ□=□━━━
      > >     .∵’
0535デフォルトの名無しさんNGNG
scanf使っているから
0536デフォルトの名無しさんNGNG
なんで初心者ってscanf使っちゃうんだろうね?
0537c言語入門ふつかめNGNG
scanfしか知らないからです_| ̄|○
0538デフォルトの名無しさんNGNG
>>537
scanfの問題では無い。問題も無い。
検索のforループ、見つかろうが見つからまいが、1回目でbreakしてるのが原因。
1つ目に入れた数なら何回目でも必ず見つかる。
0539デフォルトの名無しさんNGNG
>>537
あと、問題は他にもある。
int data[MAX]の中身は不定だ。main()の外に置けば0で初期化される。
0540c言語入門ふつかめNGNG
??27行目あたりのbreakでしょうか?
消して実行してみたら余計おかしくなってしまいました
0541デフォルトの名無しさんNGNG
>>540
少しは頭を使え。
0542デフォルトの名無しさんNGNG
つりっぽ
0543デフォルトの名無しさんNGNG
もし (data[i]==0) なら「見つからなかった」
0544c言語入門ふつかめNGNG
だめだ。。
これ以上この問題だけに時間かけれないので、
具体的にどこをどうすればいいか教えてください
0545デフォルトの名無しさんNGNG
>>544
C言語の習得を諦める
0546c言語入門ふつかめNGNG
>>545
提出しないとダメなので。c言語あと1問、レポート、テスト勉強(;´Д`)
0547デフォルトの名無しさんNGNG
>>544
>if(j==data[i]){
>printf("%dは%d番目に見つかりました\n",j,i+1);
>break;
>}
>else{
>printf("%dは見つかりませんでした\n",j);
>break;
>}
これを、
if(data[i]==0){
printf("%dは見つかりませんでした\n",j);
break;
}
if(j==data[i]){
printf("%dは%d番目に見つかりました\n",j,i+1);
break;
}
にすれば大丈夫、とみんなは言っている。
0548c言語入門ふつかめNGNG
>>547
やっとできました・・・
マジでありがとう。
夏休みにc言語の学習に励みます
0549デフォルトの名無しさんNGNG
>527
個性的でですね

>530さん
ありがとうございます(^▽^) 助かりました(つД`)
0550デフォルトの名無しさんNGNG
>>548
お前にゃムリ
0551デフォルトの名無しさんNGNG
まぁそう言うなって。
なんちゃってプログラマが増えるのは良い事だ。
0552デフォルトの名無しさんNGNG
カレンダー表示させたいのですが、表示部分のプログラムがうまくいきません。
とりあえず、月の開始曜日は0が日曜日・・・6が土曜日になるようにしてます。
土曜日になったら改行するようにしたいんですが、表示がおかしくなります。
アドバイスお願いします。
0553デフォルトの名無しさんNGNG
ソース張れや糞ボケが
0554デフォルトの名無しさんNGNG
タイピングソフトもどきを作っているのですが、
一定時間内に指定された文字を入力させるにはどうすればいいでしょうか。
0555デフォルトの名無しさんNGNG
標準C++では出来ません
0556デフォルトの名無しさんNGNG
>>554
「時間内に指定された文字を入力しろ」って出力したら素直な奴なら従うよ
0557デフォルトの名無しさんNGNG
>>552
#include <stdio.h>

// week : 曜日、 last:月の最終日
void print_calendar(int week, int last){
  int i;
  puts(" 日 月 火 水 木 金 土");
  for(i = 0; i < week; i++) printf("   ");
  for(i = 0; i < last; i++){
    printf(" %2d", i + 1);
    if((i + week) % 7 == 6) putchar('\n');
  }
  putchar('\n');
}

int main(){
  print_calendar(1, 31);
  print_calendar(5, 28);
  print_calendar(0, 30);
  print_calendar(6, 29);
  return 0;
}
0558デフォルトの名無しさんNGNG
>>557
ありがとうございました。
0559デフォルトの名無しさんNGNG
あるC言語で書かれたプログラムXがあり、これはprintf文で画面に"20"と表示する。
このプログラムXのソースに'/'(スラッシュ)を1文字だけ加えることで
画面に"1"と表示するようになるプログラムXのソースを書きなさい。
0560デフォルトの名無しさんNGNG
>>559
#include <stdio.h>
int main(void)
{
return printf("%d", 1 * 20 /**/);
}
0561デフォルトの名無しさんNGNG
>>559
#include <stdio.h>
int main(void) {
int i = 20;
i = 20;
printf("%d\n",i);
return 0;
}
0562561NGNG
#include <stdio.h>
int main() {
printf("%d", 2020 - 1 ? 20 : 1);
return 0;
}
0563デフォルトの名無しさんNGNG
C99対応コンパイラ必須

#include <stdio.h>

int main()
{
printf("%d", -20 / 20
+ 21);
return 0;
}

入れ方
-20 / 20
-20 // 20
0564デフォルトの名無しさんNGNG
#include <stdio.h>
int main(void)
{
/*
printf("20");
/*/
printf("1");
//*/
return 0;
}
0565デフォルトの名無しさんNGNG
1 + 19
1 + 1/9
0566564NGNG
あ、逆じゃん。orz
0567デフォルトの名無しさんNGNG
21 - 1
2/1 - 1
0568デフォルトの名無しさんNGNG
スレタイを拙者にしてくれとか言ってたやつ、まったく書き込まないな
0569デフォルトの名無しさんNGNG
書き込もうにも、知識がありませんから!!残念!!
0570デフォルトの名無しさんNGNG
C言語でテキストファイルから読み込み、読み込んだ内容を全て一行で
出力するプログラムを作りたいのですが、fgetc で読み込んだ後、
出力用に配列に入れようと思ったらうまく行きません。
初歩的で住みませんが、助言して頂けないでしょうか。
0571デフォルトの名無しさんNGNG
別に配列にいれなくても改行文字だけ飛ばしてコピーすれば良いんじゃない?
0572デフォルトの名無しさんNGNG
「もし、enterが押されたら」という分岐はどうすればいいんでしょうか。
0573570NGNG
ちなみに今は以下の感じで、読んだ内容を配列に入れて p に渡して書き込もうと思ってます。

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char str[];
FILE *fp0;
FILE *fp1;
char *p;
int i;
(fopen省略 引数にfp1 fp2 を指定)
for(;;) {
i = fgetc(fp1);
if(i == EOF) break;
}
while(*p){
if(fputc(*p, fp0)==EOF){
printf("ファイル書き込みエラー\n");
exit(1);
}
p++;
}
fclose(fp0);
fclose(fp1);
return 0;
}
0574デフォルトの名無しさんNGNG
改行文字すら知らないアホが居るスレがここですか?
0575デフォルトの名無しさんNGNG
>>572
状況を詳しく。
0576デフォルトの名無しさんNGNG
>>573
お前は辞めた方がいい
突っ込みどころが多すぎる
0577デフォルトの名無しさんNGNG
>>571さん即レスありがとうございます。
そんな手があるんですね(^^;
ありがとうございます、方法について調べて来ます!

ただ、それとは別に配列を使用したいんですけど、難しくなるんでしょうか?
良かったらこちらについてもアドバイス頂けないでしょうか。
0578デフォルトの名無しさんNGNG
>>573
#include <stdio.h>
int main(void)
{
FILE *in = fopen("in", "r");
FILE *out = fopen("out", "w");
int i;
while((i = fgetc(in) != EOF) if(i != '\n') fputc(out, i);
return 0;
}
0579デフォルトの名無しさんNGNG
>>576
独習なら始めはそんなもんだ。
0580デフォルトの名無しさんNGNG
>>575
ss[i]=getch();としてenterを押すまで一文字ずつ取り込んでいきたいんですが
enterの判別にif(ss[i]=='\n)としてもどうもうまくいかないので・・・'
0581デフォルトの名無しさんNGNG
>>580
'\r'と比較してみてはどうだろう。
0582デフォルトの名無しさんNGNG
'\n'じゃなくて'\r'でやれ。
0583デフォルトの名無しさんNGNG
>>581
リロードしてなかった・・・スマソ
0584デフォルトの名無しさんNGNG
すみません、独習Cっていう本みてやってて、例文をいじってるだけです・・・。
このスレッドの主体性をうまく理解してないで書き込んで失礼しました。

>>578さんありがとうございます。
簡潔ですばらしいコードですね、ありがたく参考にさせて頂きます。
それでは出直してきます。。。
0585デフォルトの名無しさんNGNG
>>584
「主体性」を辞書で引く事をお勧めする。
0586デフォルトの名無しさんNGNG
#include<stdio.h>
#define N 3
#define M 4
int n=3;
double a[N][M]={{33.0,16.0,72.0,-359.0},{-24.0,-10.0,-57.0,281.0},
{-8.0,-4.0,-17.0,85.0}};
void print_matrix(double x[][M],int n,int m)
{
int i,j;
for(i=0;i<n;i++){
for(j=0;j<m;j++)
printf("%15.8lf",x[i][j]);
printf("\n");
}
printf("\n");
}
void gauss(double x[][M],int n)
{
int i,j,k,l;
double p;
for(k=0;k<n;k++){
p=a[k][k];
for(j=k;j<=n;j++)
a[k][j] /= p;
a[k][k]=1.0;
for(i=k+1;i<n;i++)
for(j=k;j<=n;j++)
a[i][j] -= a[k][j]*a[i][k];
}
??
}
0587デフォルトの名無しさんNGNG
>>581-582
ありがとうごさいます。無事できました。
0588デフォルトの名無しさんNGNG
>>585さん
以下 goo辞書より
=================================================================
しゅたい-せい 0 【主体性】

自分の意志・判断によって、みずから責任をもって行動する態度のあること。
「―をもって行動する」
=================================================================

逝っていますわ・・・∧||∧
0589デフォルトの名無しさんNGNG
>>559
なんかマッチ棒パズルみたいだな。
0590デフォルトの名無しさんNGNG

void main()
{
print_matrix(a,3,4);
gauss(a,3);
print_matrix(a,3,4);
}
の、??に処理を追加して、第n+1列に解が求めるがうすのしょうきょ法
のプログラムを完成させよ。 をお願いします。
0591586NGNG
586=590です
0592586NGNG
拡大係数行列の第n+1列です。
0593 NGNG
c++でソースの上半分と下半分をmain.cpp,main2.cpp
のように分割してコンパイルするときに結合する
方法はありますか?
0594デフォルトの名無しさんNGNG
main.cppの一番下で
#include "main2.cpp"
0595デフォルトの名無しさんNGNG
#if 0
>>593-594
#endif
0596デフォルトの名無しさんNGNG
int i[10]の中にそれぞれランダムな数字が入ってるとして、
できるだけ短いコードで数字の小さい順に並べ替える方法を教えて下さい。
0597378NGNG
すいません。
どなたか>>378をやっていただけないでしょうか?
よろしくお願いします。
0598デフォルトの名無しさんNGNG
>>596
for(int m=0;m<10;m++)for(int j=0;j<10;j++)if(i[m]<i[j]){i[m]^=i[j];i[j]^=i[m];i[m]^=i[j]}
90字
0599デフォルトの名無しさんNGNG
>596
std::sort(i,i+10);
18字
0600599NGNG
おっと、
#include<algorithm>
の分を入れ忘れた。
0601デフォルトの名無しさんNGNG
>598
外側のforをfor(int j,m=0;m<10;m++)にすれば内側でint が要らないのでちょっと小さく出来る。
それと、;が}のまえ抜けてる。
0602デフォルトの名無しさんNGNG
>>597
B-Tree 書くのマンドクセ。
そんなのネット上で探せば幾らでも転がっているだろうに・・・
0603596NGNG
>>598
;が抜けてますができました。有難うございます。
>>599
すいません。sortは何をincludeすれば使えますか?
0604596NGNG
>>600
あ、なるほど、どうもです。
0605デフォルトの名無しさんNGNG
cでprintf("%8d",hoge);
ってやると値の入らない場所には空白がはいりますよね?
その空白部分に0を表示させたいんですがなにか書き方ってあるんですか?
0606デフォルトの名無しさんNGNG
%08d
0607デフォルトの名無しさんNGNG
宿題まだないでごじゃるか…
拙者刀を磨いてまっているでごじゃる…
0608デフォルトの名無しさんNGNG
>>607
>>568
>>569
0609デフォルトの名無しさんNGNG
569殿はどうやら深くを知りすぎのようじゃ…
というか拙者自分の宿題で四苦八苦してますからっ切腹ぅ!


0610デフォルトの名無しさんNGNG
Cの宿題なんですが、
文字列nPtrの先頭部分をdouble型に変換する関数double atof(const char *nPtr),
文字列nPtrの先頭部分をint型に変換する関数int atoi(const char *nPtr),
文字列nPtrの先頭部分をdouble型に変換する関数double strtod(const char *nPtr, char **endPtr)

と同様の機能の関数を作ってください。できればなるべくシンプルなのでお願いします。
0611デフォルトの名無しさんNGNG
strtod(atof) は宿題の範囲を超えてると思うんだが
0612デフォルトの名無しさんNGNG
>>610
sscanfあり?
0613デフォルトの名無しさんNGNG
�@n元n変数連立1次方程式の拡大係数行列に対し、掃き出し法を適用する関数
 sweep_out()を定義せよ。
�Agaussf()の後半に処理を追加することにより、拡大行列の第n+1列に連立1次方程式の解
 が求めるガウスの消去法のプログラムを完成させよ。

C言語でお願いします。
0614デフォルトの名無しさんNGNG
拡大係数行列の保持の仕方とか指定されてないの?
0615デフォルトの名無しさんNGNG
>>613
の丸1
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=195

丸2は不可能だな。エスパーでも探してくれ。
0616378NGNG
>>378をお願いします…
0617デフォルトの名無しさんNGNG
そのB-treeの実装ってのはHDDに格納するとか条件が
付いてるわけ?それともメモリ?(←意味ねぇよなぁ)
0618378NGNG
メモリ上の作業で良いと思いますが
なぜそれだと意味がないのでしょう?
>>378のとおり,そんな指定はありませんでした。
0619デフォルトの名無しさんNGNG
>>378
思いっきりここにソースが公開されているようだが。
ttp://cis.stvincent.edu/carlsond/swdesign/btree/btree.html
0620デフォルトの名無しさんNGNG
>>618
B-tree(正確にはその派生したもの)はよくFileSystemに使うからだよ。
0621デフォルトの名無しさんNGNG
昨日から悩んでもうすぐ朝です(>_<)。
助けてください。

まずクラスAがあって、
class A
{
public:
   A(int n);
};

クラスAをメンバとするクラスBがあります。
class B
{
private:
   A array;

public:
   B(int n);
};

BのコンストラクターでAを初期化します。
B::B(int n):array(n){}

これはOKなのですが、、、
0622デフォルトの名無しさんNGNG
クラスBがクラスAの配列をメンバに持つとき、
class B
{
private:
   A array[2];

public:
   B(int n);
};

BのコンストラクターでAを初期化できません<m(__)m>
以下はコンパイラーエラーが出ます。
B::B(int n):array[0](n),array[1](n){}
B::B(int n):array(A(n),A(n)){}

助けてください(~o~)
0623デフォルトの名無しさんNGNG
配列を初期化リストで初期化することは出来ません。
つまり、constオブジェクトの配列はキャストでもしない限りメンバに持つべきではありません。
0624デフォルトの名無しさんNGNG
↑(~o~)(~o~)(~o~)
できないのですか、、、、、
やはりそろそろC#に移行します。

レスありがとうございます<m(__)m>
0625デフォルトの名無しさんNGNG
初期化リストじゃなくて、コンストラクタ本体で初期化すりゃいいだろ。
0626デフォルトの名無しさんNGNG
> つまり、constオブジェクトの配列はキャストでもしない限りメンバに持つべきではありません。
constならstaticにすりゃいいだろ。
0627デフォルトの名無しさんNGNG
M$厨の自作自演ネタじゃないのか?
他のスレにも同じ事書いてるみたいだし
それにしても無知無能だな
もう少し勉強しろよって感じ
0628デフォルトの名無しさんNGNG
超初心者です 僕は今こんなプログラムでつまずいてます
#include<stdio.h>
main()
{
int a,x,y;
x=y=0;
while((a=getchar()) !=EOF){
if(a=='\n')
x++;
y++;
}
printf("%d 行 , %d 字数.\n",x,y);
}
というプログラミングでつまずいてます 何故このプログラムで字数が表示されるのか意味不明です
if(a=='\n')x++;y++;という部分が改行コード認識する度に行がカウントされるのは分かるんですけど
どこで字数が確認出きるんですか 教えて下さいお願いします
0629デフォルトの名無しさんNGNG
>>628
そのプログラムは
#include<stdio.h>
main()
{
int a,x,y;
x=y=0;
while((a=getchar()) !=EOF){
if(a=='\n')x++;
y++;
}
printf("%d 行 , %d 字数.\n",x,y);
}
こう書くべきだね。

while((a=getchar()) !=EOF){
は一文字読み込んでそれを a に格納する。と、
その文字が終了文字でなければループを続ける

if(a=='\n')x++;
a が改行コードだったら x の値を 1 増やす
ここで行数のカウントがなされているのは正しいよ。

y++;
この文は前の if 文のスコープの範囲外ですから。
この文は無条件で 1 増やす。
で、この文は while((a=getchar())!=EOF) の中にあるので、
文字数分呼び出されるので、文字数が確認できます。

これで大丈夫かな?
0630デフォルトの名無しさんNGNG
>629さん 理解する事が出来ました。ありがとうございました(゜ー゜)(。_。)ぺこり
0631デフォルトの名無しさんNGNG
>>629
解説ありがとうございます。
ところで、
終了文字の文字コードは何ですか?
終了文字そのものを読み込みたいときはどうすればよいですか?
0632デフォルトの名無しさんNGNG
終了文字なんてものない。
ファイルの終端に達したら、getchar()はEOFという文字コードではない値を返すが。
0633デフォルトの名無しさんNGNG
>>632
あら先を越されちゃいましたね。

>>631
ちょっと難しいかもしれないけど
終了文字の文字コードは存在しません。
文字コードは char 型 1 byte で 0 - 255 までの値だけど
EOF は -1 で char 型が表せる値の範囲外にあります。

そもそも
int getchar(void)
とあるように、getchar 等の char 型を読み込む関数は
EOF も返せるように int 型の返値を持ちます。

だから、
char a;
a=getchar();
だと終了文字を読み込めませんが、
int a;
a=getchar();
だと終了文字を読み込めます。そしてその値は EOF (-1) という形で格納されます。

これで大丈夫?
0634デフォルトの名無しさんNGNG
>>629
while((a=getchar()) !=EOF){
は一文字読み込んでそれを a に格納する。と、
その文字が終了文字でなければループを続ける
0635デフォルトの名無しさんNGNG
終了文字なんてものない。
0636デフォルトの名無しさんNGNG
>>633
痛すぎ
0637デフォルトの名無しさんNGNG
>>635
DOS系では^z(0x1a、SUB)、UNIX系では^d(0x04、EOT)が終了文字として扱われる。
0638デフォルトの名無しさんNGNG
昔のファイルには^Zが入ってたりした
0639デフォルトの名無しさんNGNG
>>637
おいおい、入力の終端とテキストファイルの終端とを混乱していないか?

>>638
大丈夫、今でもバイナリファイルには山ほど入っている(かも知れない)。
0640デフォルトの名無しさんNGNG
>>637
。。。痛さ倍増だよアンタ。それ以上傷口広げないうちに帰ったほうがいいよ。
0641デフォルトの名無しさんNGNG
端末の制御コード

ということば,何で誰も言わないの?
0642デフォルトの名無しさんNGNG
どこが痛いのかも分からずに帰るわけには行かない
0643デフォルトの名無しさんNGNG
>>641
しらないからだろプッ
0644デフォルトの名無しさんNGNG
知識がない奴でも教える側に回れる
これが 2ch
0645デフォルトの名無しさんNGNG
>>641
そんな話はしていないから。
0646デフォルトの名無しさんNGNG
>>644
知識がない奴に嘘を教えられてしまったやつはいい迷惑だよな。
それで将来左右されるかも知れないのに。
0647デフォルトの名無しさんNGNG
将来を心配するなら2chなんぞに頼るなよ
0648デフォルトの名無しさんNGNG
将来左右されるような情報をタダで得ようとする方がどうかしてる。
0649デフォルトの名無しさんNGNG
この程度で左右される人生なんて最初からダメなんだよ。
0650610NGNG
>>612
アリです。お願いします。
0651なもなきー高校生NGNG
Cについての質問です。
画面出力された文字列を全てクリアーする定義文を御教唆ください。
・・・超初心者で申し訳ないです。
0652デフォルトの名無しさんNGNG
if(int iが、int j[10]のいずれの数字とも一致しない場合)
というのをできるだけ簡潔なコードで書く方法を教えて下さい。
0653デフォルトの名無しさんNGNG
>>651
そんなものはありません。少なくともANSI Cの範囲では。
0654デフォルトの名無しさんNGNG
>>652
int k
for(k = 0;k < 10;k++) if(i == j[i]) break;
if (k == 11) { ... }
0655デフォルトの名無しさんNGNG
>>651
環境書け

>>652

int check(int i, int j[], int n){
while (n-- > 0) if (j[n] == i) return 0;
return 1;
}

if (check(i, j, sizeof(j) / sizeof(j[0]))) puts("hoge");
0656デフォルトの名無しさんNGNG
>652
#include<algorithm>

if(std::find(j,j+10,i)==j+10) hogehoge....
0657デフォルトの名無しさんNGNG
#define CLS() printf("\x1b[2J")
or
#define CLS() system("cls")
0658デフォルトの名無しさんNGNG
残念ながらWinXpのコマンドプロンプトはエスケープシーケンスが正しく動作しない。
0659デフォルトの名無しさんNGNG
>>610

質問の回答用ソースを貼るスレのレス番196

http://do.sakura.ne.jp/%7Ejunkroom/cgi-bin/megabbs/lounge/index.html
0660デフォルトの名無しさんNGNG
どなたか助言をいただきたいのですがお願いします
y,Y,n,Nが入力されるまで「Yesならyを、noならnを入力してください。」という分を表示するプログラムを作ったのですが、

わからない点
・YとNを入力したときにもちゃんと回答として判定する方法がわからない(今のままだと小文字のみ判定)
・aやb等を入力した際に表示される「Yesならyを、noならnを入力してください。」という分が二重に表示される

これはどのように直すのでしょうか
ttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=293

初心者用も問題ですいません
0661デフォルトの名無しさんNGNG
分→文くらいちゃんと書け。
・while( c != 'y' && c != 'n' );
おれなら、
C == 'Y'





・if( ans == 'y' && 'Y') { /* これは常に真 、と前に書いた覚えがある。*/
0662デフォルトの名無しさんNGNG
方針
・大文字を小文字に変換して処理
or
・大文字と小文字は別の文字なので両方処理に組み込む

でソースの
> if( ans == 'y' && 'Y'){
は間違いなので
if(ans=='y'||ans=='Y'){
だと思うよ。
0663661NGNG
ミスって送信してしまった。

・分→文くらいちゃんと書け。
・while( c != 'y' && c != 'n' );
俺なら、!(c == 'Y' || c == 'y' || c == 'N' || c == 'n') こう書く。
・改行文字を読んでるから。
・if( ans == 'y' && 'Y') { /* これは常に真 、と前に書いた覚えがある。*/
0664デフォルトの名無しさんNGNG
>>660
すれ違いだが…


> while( c != 'y' && c != 'n' );
ループの中でcの値を更新しないと無限に回る事になる。
    while(c != 'y' && c != 'n' && c != 'N' && c != 'Y') c = getchar();
とすれば良い。
>・YとNを入力したときにもちゃんと回答として判定する方法がわからない(今のままだと小文字のみ判定)
> if( ans == 'y' && 'Y'){
この文の表す条件は、「ansが'y'であり、'Y'が真」で、「'Y'が真」は常に成り立つから(文字は全て真)、意図したように動かない。
    if(ans == 'y' || ans == 'Y'){
とすれば良い。
0665664NGNG
失礼。前半は無し。
0666664NGNG
ごめん。全部無し。
0667デフォルトの名無しさんNGNG
厨くさい回答だな
0668デフォルトの名無しさんNGNG
あえて本人が気づいたことをつっこむ最悪人間が来ましたよ

> while(c != 'y' && c != 'n' && c != 'N' && c != 'Y') c = getchar();
do { } while( 〜 );

> > if( ans == 'y' && 'Y'){
> この文の表す条件は、「ansが'y'であり、'Y'が真」で、「'Y'が真」は常に成り立つから(文字は全て真)、意図したように動かない。
> if(ans == 'y' || ans == 'Y'){
'Y''は意味が無いだけで悪影響は及ぼさない。
0669 NGNG
>>594
エラーになってうまくいかないようです。

適当にソース分断の例
main(void)
{int a,b;
a = 0;
-----------ここでソース分割---------------
b = 1;
}
関数呼び出しはソースを別にしても問題ないですが、
適当にソース分断してコンパイル時に結合することは
できないのかなあ?
0670デフォルトの名無しさんNGNG
単純に結合するわけじゃないから・・・・
0671デフォルトの名無しさんNGNG
次の様なファイルから、単位ごとに分けて数値を変数に格納しなければになりました。
--data.txt--
32cm 1.5mm 80m

これをC標準関数と、C++のSTL、両方で作っていかなければでして、
C標準関数の方はfopenやstrrchr、atoiなどを使って、馬鹿な俺にも力技で出来ました。

ところがSTLの方はさっぱり分かりません。fstreamを使ったところで固まってます。
どうか斬り捨てて頂けないでしょうか。
0672デフォルトの名無しさんNGNG
>>669
main.c

int main(void)
{
#include "another.c"
return 0;
}

another.c

int a,b;
a = 0;
b = 1;
0673デフォルトの名無しさんNGNG
>>669
#include
使ってみろ
0674デフォルトの名無しさんNGNG

foot.c
--------------------------
b = 1;
}
--------------------------


head.c
--------------------------
main(void)
{int a,b;
a = 0;
#include "foot.c"
--------------------------
0675671NGNG
回答が無いと言うことは、結構難しいのかな(´・ω・`)
時間になってしまったので質問を撤回します。スレ汚し失礼。
0676デフォルトの名無しさんNGNG
>>671
>単位ごとに分けて数値を変数に格納しなければ
が説明不足なので誰も手をつけないのではないかと。
0677デフォルトの名無しさんNGNG
ん?cmならこの変数に、みたいな話でしょ
誰も手を付けないのは、パーサーをSTLだけで書くと面倒だからじゃない?
こんな宿題出すなと言ってやれw
まぁ、そんなに難しくないけど
0678デフォルトの名無しさんNGNG
こんな場面でSTL使うことに意味があるとは思えない。
0679デフォルトの名無しさんNGNG
>>678
たった一つの変数の為にポインタ使う宿題だってあるじゃん
0680デフォルトの名無しさんNGNG
#include <stdio.h>
#include <string.h>
int btoi(char[],int);
char *itob(int);

void main(int argc, char *argv[]) {
int s,temp;
s = btoi(argv[1], strlen(argv[1])) + btoi(argv[2], strlen(argv[2]));
printf("%s",itob);
}

つづく・・・
0681デフォルトの名無しさんNGNG
「この場面でSTLを使うことに意味がある」んじゃなくて
単純に「STLを使うことに意味がある」んだよ。
0682デフォルトの名無しさんNGNG
>>681
詳しく
0683デフォルトの名無しさんNGNG
STL使わせたいだけだから問題はどうでも良いんだよ。
0684デフォルトの名無しさんNGNG
コンテナやアルゴリズムは使ってるけど、ストリーム系はキモくて使わないから…
と言い訳
0685デフォルトの名無しさんNGNG
Cについての質問です。
「キーボードから1つの自然数を入力し、1からその数までの3で割ると
1余る数の和を求めよ。」
という問題です。
どなたかよろしくおねがいします。
0686デフォルトの名無しさんNGNG
>>685
#include <stdio.h>

void main( void )
{
    int i, n, sum = 0;

    scanf( "%d", &n );
    for( i = 1; i <= n; i += 3 ) sum += i;

    printf( "%d", sum );
}
0687デフォルトの名無しさんNGNG
int main()
{
  int n = 0, i, c;
  for(;;){
    printf("Input number > ");
    scanf("%d", &n); /* fgets + atoi(strtol)を使ってもok */
    if(n <= 0){
      puts("自然数を入力して下さい。");
      continue;
    }
    c = 0;
    for(i = 1; i <= n; i++)
      if(i % 3 == 1) c++;
    printf("Count > %d\n", c);
  }
  return 0;
}

注意点
※行頭の全角スペースを半角スペースかタブに変えておくこと(重要)
※文字を入力しないこと
0688デフォルトの名無しさんNGNG
個数じゃなく和だと思うの…
0689デフォルトの名無しさんNGNG
>>687
数字は文字じゃないのかな?
0690デフォルトの名無しさんNGNG
最近痛い香具師が出没しているが、ひょっとして同一人物?
0691デフォルトの名無しさんNGNG
仕様にないものを勝手に付け足してバグ増やしてりゃ世話ないわな
0692680のつづきNGNG

int btoi(char x[],int a) {
int i = 0;
int s = 0;
while (x[i] != '\0') {
if (x[i] == '1') {
s = s + ( 1 << (a - 1));
}
i ++;
a --;
}
return(s);
}

char *itob(int sum) {
int cnt=0,i=0;
char z[99];

while (sum >> cnt > 0) {
z[i] = '0' + sum >> cnt & 0x1;
i ++;
cnt --;
}
return(z);
}
0693680のつづきNGNG
コマンドラインから2進数を2つ入力して
加算結果を文字列に変換したのち、出力するプログラムです
文字列に変換するところと文字列のリターン方法がわかりません
教えてください
atoi itoaなどの関数は使用不可です
おながいします
0694デフォルトの名無しさんNGNG
もろくそ環境依存なんですが
0695デフォルトの名無しさんNGNG
char *itob(int sum) {
// ...
char z[99];
// ...
return(z);
}

zのポインタ返しちゃダメじゃん。。。
0696デフォルトの名無しさんNGNG
>>694
環境依存?
0697685NGNG
>>686
ありがとうございました。
>>687
688さんが指摘されたとおりなので。問題文がわかりにくくてすいませんでした。
0698デフォルトの名無しさんNGNG
>>680
>>693
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=198
0699デフォルトの名無しさんNGNG
int btoi(char* str) {
unsigned int value;
value = 0;
while (*str)
value = value * 2 + (*str++ == '1' ? 1 : 0);
return value;
}
char* itob(int i, char* str) {
char* ptr;
unsigned int value;
ptr = str;
value = i;
while (value) {
++ptr;
value /= 2;
}
*ptr = '\0';
value = i;
while (value) {
*--ptr = value % 2 ? '1' : '0';
value /= 2;
}
return str;
}
int main(int argc, char *argv[]) {
char buff[sizeof(int) * 8 + 1];
int sum;
if (argc < 3) return -1;
sum = btoi(argv[1]) + btoi(argv[2]);
printf("%s\n", itob(sum, buff));
return 0;
}
0700デフォルトの名無しさんNGNG
unsigned int btoi(char *p){
  unsigned int n = 0;
  for(;*p == '0' || *p == '1'; p++) n = (n << 1) + (*p - '0');
  return n;
}

void itob(unsigned int s, char *p){
  unsigned int m;
  if(s == 0){*p = '0', *(p + 1) = '\0'; return;}
  for(m = 1; m < s; m <<= 1);
  if(!(m & s)) m >>= 1;
  for(; m; m >>= 1, p++){*p = s & m ? '1' : '0';}
  *p = '\0';
}
0701デフォルトの名無しさんNGNG
>>659
ありがとうございます!!!
0702デフォルトの名無しさんNGNG
// Need #include <limits.h>

const int int_bits = CHAR_BIT * sizeof(unsigned int);
char *itob(unsigned int n, char *s)
{
    int i;
    char *ts = s;

    for(i = int_bits-1; i > 0 && (n >> i & 1) == 0; i--);
    for(; i >= 0; i--, s++)
        *s = '0' + (n >> i & 1);
    *s = '\0';
    return ts;
}

・・・・・厨くせえソースだな。吊ってくる。
0703デフォルトの名無しさんNGNG
>>702
踏み台外しを手伝ってやる
0704デフォルトの名無しさんNGNG
ああ、CHAR_BITだ
なんか定数あった筈と思いながら、思い出せなかった
0705680NGNG
ありがとうございます
文字列をリターンするときは
ex)
char str[5] = {"abcd"};
return(str);
はだめですか?

char *str
strに文字列代入処理;;
return(str);
はOK?
0706デフォルトの名無しさんNGNG
ポインタとstaticを理解してください
0707デフォルトの名無しさんNGNG
この例ではchar str[]は関数内のローカル変数。
関数を抜けた時点でスコープから外れ、その内容は保証されない。
0708デフォルトの名無しさんNGNG
まずはアセンブラを学ぶことをお勧めする
0709デフォルトの名無しさんNGNG
低水準厨うぜぇ
0710デフォルトの名無しさんNGNG
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433

ここの296に問題をうpしました。諸事情にyりコンパイルできないので力を貸して下さい。
プログラムを読めばコンパイル等しなくても分かると言われたのですが.....

問題 下記のコメント内で例として用いられているグラフに対して、このプログラムを実行すると、どのような結果が表示されるか?
0711710NGNG
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=296

リンクしておきます
0712デフォルトの名無しさんNGNG
コンパイルしろ
お前は今超能力でここに書いてるのか?
0713デフォルトの名無しさんNGNG
>>710
>>364にあるファイルを全部リンクしてもダメ?
0714710NGNG
>>713
全部リンクしないと駄目なんでしょうか?
これだけで実行できると教授は言っているんですが一度やったら実行できなかったのです....
0715デフォルトの名無しさんNGNG
>>714
void mainの時点でその教授は信用しないでいいぞ。
0716デフォルトの名無しさんNGNG
mymacro.hは何処やー
mainがコメントアウトされてるのは何でやー
0717710NGNG
>>715
信用しては駄目ですか....
>>716
そこで止まります....そしたらプログラム読みなさいと言われたので・゚・(つД`)・゚・
0718デフォルトの名無しさんNGNG
無能すぎ
710も、教授も
0719デフォルトの名無しさんNGNG
> /* でも本当は、グローバル変数を多用する事は、あまり */
> /* おすすめできません。(なぜでしょう?)         . */
ま た こ の 講 師 か !
0720デフォルトの名無しさんNGNG
そろそろ学校名晒しがあってもいいほど頻出な悪寒
0721デフォルトの名無しさんNGNG
グローバル変数だらけのプログラムの保守だけはしたくない罠
0722デフォルトの名無しさんNGNG
COBOLの保守なら喜んでやる
0723710NGNG
(´・ω・`)
0724デフォルトの名無しさんNGNG
>>723
ねーねー、君がソースを貼ったスレの275を見てごらんよ
0725710NGNG
>>724
それも漏れです....
0726724NGNG
ひでぶっ!
0727デフォルトの名無しさんNGNG
それじゃただの荒らしじゃん
0728710NGNG
申し訳ない
0729デフォルトの名無しさんNGNG
>>710
********** Showing input graph!! (Adjacency-List) **********
# of nodes = 6    # of edges = 7    (Edge density = 46 percent)
Node 1 --------------------
    degree = 2    (2,1)(4,1)
Node 2 --------------------
    degree = 3    (1,1)(3,1)(4,1)
Node 3 --------------------
    degree = 2    (2,1)(6,1)
Node 4 --------------------
    degree = 3    (1,1)(2,1)(6,1)
Node 5 --------------------
    degree = 1    (6,1)
Node 6 --------------------
    degree = 3    (3,1)(4,1)(5,1)

Tabの代わりに半角スペース4こを使った。
0730デフォルトの名無しさんNGNG
>>710
そのソースを見て判る事は「コメントは簡潔かつ分かりやすく」という事だ。
0731710NGNG
>>729
ありがとうございました。皆様、ご迷惑おおかけいたしました。
0732710NGNG
>>729
ありがとうございます!
0733デフォルトの名無しさんNGNG
Cの宿題なのですが�@の部分で"clients.dat"の部分を任意のファイル名にできるようにプログラムを作り変えてください。

#include<stdio.h>

main()
{
int account;
char name[30];
float balance;
FILE *cfPtr;

if ((cfPtr = fopen("clients.dat","w")) == NULL) <===�@
printf("ファイルをオープンできません\n");
else {
printf("口座番号、名前、取引残高を入力してください\n");
printf("(EOFを入力すると終了)\n");
printf("? ");
scanf("%d%s%f",&account, name, &balance);

while (!feof(stdin)) {
fprintf(cfPtr, "%d %s %.2f\n",
account, name, balance);
printf("? ");
scanf("%d%s%f2", &account, name, &balance);
}
fclose(cfPtr);
}

return 0;
}
0734デフォルトの名無しさんNGNG
構造体の配列(メンバは口座番号、名前、取引残高とすること)にファイルのデータを全て読み込むように作り変えてください。
読み込んだデータを、取引残高の多い順に並び替えて表示するようにしてください。
#include<stdio.h>

int main()
{
int account;
char name[30];
double balance;
FILE *cfPtr;

if ((cfPtr = fopen("clients.dat", "r")) == NULL)
printf("ファイルをオープンできません\n");
else {
printf("%-12s%-14s%s\n", "口座番号","名前","取引残高");
fscanf(cfPtr, "%d%s%f", &account, name, &balance);

while (!feof(cfPtr)) {
printf("%-12d%-14s%8.2f\n", account, name, balance);
fscanf(cfPtr,"%d%s%f", &account, name, &balance);
}

fclose(cfPtr);
}

return 0;
}
0735デフォルトの名無しさんNGNG
一行目に追加→ extern char *filename;

�@→if ((cfPtr = fopen(filename,"w")) == NULL)
0736デフォルトの名無しさんNGNG
char szFilename[260];

fgets(szFilename, sizeof(szFileName), stdin); /* scanf("%s", szFileName); じゃないとバレる? */
if((cfPtr = fopen ...
0737デフォルトの名無しさんNGNG
うわ、ハンガリアンや!
0738デフォルトの名無しさんNGNG
MS の DirectX のコード見ても全員ハンガリアンだし
0739デフォルトの名無しさんNGNG
最近になって,ハンガリアンが一人混じったよな
0740デフォルトの名無しさんNGNG
いち、にぃ、ハンガリアン♪
0741デフォルトの名無しさんNGNG
ハンガリアン てなんですか?
0742デフォルトの名無しさんNGNG
↓
ちょっと待て!ハンガリアン
http://pc5.2ch.net/test/read.cgi/tech/1011026963/l50
0743デフォルトの名無しさんNGNG
次のプログラムを実行しても「-1文字以内で入力してください」ってなったり、姓と名が同じになってしまいます。どうすればいいでしょう?

http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=297
0744デフォルトの名無しさんNGNG
入門書読み返せ!
0745デフォルトの名無しさんNGNG
>>743
strlen は 0 返すだろ?
意味分かって使ってんのか?

string はローカル変数だろ?
その値変えたって何にもならねーよ。
変わるのは main の name の方
ポインタ勉強してこい
0746744NGNG
>>743
あ,ごめ〜ん,スレ間違えた。
逝ってくる…
0747デフォルトの名無しさんNGNG
>-1文字以内で入力してください
長さ0の文字列をstrlenしてから-1してるんだから、そりゃそうだろう
>姓と名が同じになってしまいます
b_ptrが指す内容は変わっているが、b_ptrの値は変わっていないから
#include<stdio.h>
char* sprit(char *);
void input(char *, size_t);
int main() {
char name[40]={'\0'};
char *a_ptr,*b_ptr;
input(name, sizeof(name));
a_ptr=name;
b_ptr=sprit(name);
printf("姓は:%sです\n",a_ptr);
printf("名は:%sです\n",b_ptr);
return 0;
}
char* sprit(char *string) {
while(*string!='/'&& *string!='\0')
string++;
if(*string=='/'){
*string ='\0';
string++;
}
return string;
}
void input(char *name, size_t len) {
printf("ローマ字で氏名を%d文字以内で入力してください", len);
printf("ただし、姓と名の間に/を入力してください:");
fgets(name, len, stdin); /* scanf("%s",name); */
}
0748デフォルトの名無しさんNGNG
あ、ごめん
×printf("ローマ字で氏名を%d文字以内で入力してください", len);
○printf("ローマ字で氏名を%d文字以内で入力してください", len - 1);
うう、なんか他にも色々ミスってる悪寒…
0749デフォルトの名無しさんNGNG
strchr使えよ
0750デフォルトの名無しさんNGNG
おいお前!おれの名をいってみろ!!
0751デフォルトの名無しさんNGNG
>>750 ( ´,_ゝ`)
0752デフォルトの名無しさんNGNG
関数名のあとスペース空けろよ
0753(つД`)タスケテクダサイNGNG
ここのスレの人に作ってもらった計算機のプログラムなんですけどこのプログラムの説明とアルゴリズムを教えてください。
出力結果としては3+4*2と入力すると=11とでるようになってます。
どなたか得意な方お願いします。m(__)m

http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1091585218
0754デフォルトの名無しさんNGNG
スレ違い
0755デフォルトの名無しさんNGNG
つか、「プログラムの説明」なんて曖昧に過ぎて答えられない
0756デフォルトの名無しさんNGNG
>>753
プログラムの説明↓
>出力結果としては3+4*2と入力すると=11とでるようになってます。
0757(つД`)タスケテクダサイNGNG
説明は多分一つ一つの命令の説明だと思います。自分では作ってないんで
大体でいいのでだれか暇な方お願いしますm(__)m
アルゴリズムってゆーのもよくわからないです(つД`)
0758デフォルトの名無しさんNGNG
作ったやつに「コメントつけろバカ」って言ってやれ
0759デフォルトの名無しさんNGNG
つまり回答丸コピがバレたんで説明してみろと言われて
それすらも丸投げしていると(w
0760ほらよクズNGNG
main:
 数字、. 、演算子が入力されたら、
  配列 caExpression にそれらの文字を蓄積していく。
  蓄積された文字列の長さは ucLength が表す。
 0x0d は enter。これか = が来たら計算を始める。
  ucLength を 0 にして、もう蓄積されていないことにする。
 0x1b は esc。これが入力されたら計算せずにループを抜けて、
  "Hit any key.\n" を表示して一文字入力を待って終了。

myMath : 数式を解析して数値に変換して返す関数。
 //+,-
 文字列を、最初に見つかった + または - の右側と左側に分解し、
 それぞれを再帰的に解析し、その結果を + もしくは - で計算して返す。
 ただし、*, / の直後のものは数値の符号として扱われる。
 //*, /
 同様に、左右に分解して解析し、2者の結果を * もしくは / する。

 なぜ +, - が先かと言えば、
 これら演算子が一番最後に計算されるから
 (再帰だから、ずんずん分解していった一番奥が先に計算される)

 二つの while を通じて return されなかったということは、
 残りは数字と . のみである。
 とりあえず数字はどんどん積み重ねる。たとえば 3, 2, 4, ., 2, 5 ときたら、
 3 → 32 → 324 → 3242 → 32425 と数を作っていく。これは dAns に格納される。
 この過程で . が見つかっているが、見つかって以後何桁きたかを cDecimal に記憶する。
 最後に小数点以下の桁数の数だけ、dAns を 10 で割り、値を返す。

きちんとした理解は、もう紙に書いて実践してみるっきゃないな。
0761デフォルトの名無しさんNGNG
>>735
エラーが出ましたよ。
>>736
ファイル名が%sになりますよ
0762デフォルトの名無しさんNGNG
>>736
?
0763736NGNG
あれ、ミスった。
>>761
?
0764(つД`)タスケテクダサイNGNG
>760
ありがとう(つД`)タスカリマスタ

でもクズっていうことないじゃん(´・ω・`)ショボーン
0765デフォルトの名無しさんNGNG
クズって言うか無能なだけ
0766デフォルトの名無しさんNGNG
>>764
え、クズ以外の何者?
0767デフォルトの名無しさんNGNG
チリもつもれば山となる
クズもあつまれば再利用できるかもしれん
だが764は無駄飯を食らうだけだ
0768デフォルトの名無しさんNGNG
そうだな、みんな最初はクズだったんだ、とか
0769デフォルトの名無しさんNGNG
プログラムソースは、
制作者にはソースそのものがコメント文のように働き、
他人にはソースがマシン語のごとく見える。
0770デフォルトの名無しさんNGNG
non

プログラムソースは、
制作者にはソースそのものがコメント文のように働き、
他人にはコメントがマシン語のごとく見える。
0771デフォルトの名無しさんNGNG
「コメントを書くぐらいなら関数名と変数名に気を遣え。」
0772デフォルトの名無しさんNGNG
>>771
関数・変数名には日本語使えないし
0773デフォルトの名無しさんNGNG
そういう時はローマ字で命名するといいですよ(* ^ー゚)ノ
0774デフォルトの名無しさんNGNG
>>772
とりあえずC言語使うの向いてないよ。
http://hima.chu.jp/
コレでも使っててください。
0775デフォルトの名無しさんNGNG
>>774
わざわざすまないな
貴様のレス見て荒らしに変貌したくなってきた
0776デフォルトの名無しさんNGNG
>>775
自分がまだ荒らしじゃないと思ってるあたりが笑える
0777デフォルトの名無しさんNGNG
>>776
そりゃそうだ
漏れがここに書き込んだの772で3回目だし
0778デフォルトの名無しさんNGNG
>変貌したくなってきた
なんていってる時点でもう素質十分でっせ
0779デフォルトの名無しさんNGNG
おみゃーはじゃヴぁをつかっとれ
0780デフォルトの名無しさんNGNG
>>771
俺、関数名と変数名つけるの苦手だわ。。。
0781772NGNG
あ、なんだ俺が「名前に日本語が使えない」って書いたから、ひm(ry が出てきたのか
あれは「英語で名前付けるのが苦手」って意味にとってくれ
マジで一瞬馬鹿にされたんかと思った(っていったら作者に失礼か)

自分でも混乱していたらしいマジすまなかった
んじゃROMに戻るよ
0782デフォルトの名無しさんNGNG
願わくば、二度と現れんことを。
0783デフォルトの名無しさんNGNG
現れんこと?
0784デフォルトの名無しさんNGNG
>>783
日本語の勉強をしろ。
0785デフォルトの名無しさんNGNG
>>782だ。意味逆だろ
0786デフォルトの名無しさんNGNG
「"現わ" 連呼!」と?
0787デフォルトの名無しさんNGNG
現わレインコート?
0788デフォルトの名無しさんNGNG
びっくりするほど現わ連呼!
びっくりするほど現わ連呼!
0789デフォルトの名無しさんNGNG
神のご加護のあらんことを
0790デフォルトの名無しさんNGNG
あの使い方だったら「願わくば、二度と現れざらんことを」とすべきだな。
0791デフォルトの名無しさんNGNG
ここは日本語を勉強するスレではありません。

0792デフォルトの名無しさんNGNG
特撮ヲタだったら「あれが最後の772とは思えない。第二、第三の〜」とすべきだな。
0793デフォルトの名無しさんNGNG
似たようなものだ。
質問の仕方を教えるスレだしな。
0794デフォルトの名無しさんNGNG
Cで日本語を弁巨うしろという宿題がでまちた。おねがいそます。
0795デフォルトの名無しさんNGNG
('A`)>>772は滅びん!何度でも甦るさ!
0796デフォルトの名無しさんNGNG
>>761
それは,リンクに失敗したということですか?
それはそういう仕様だから大丈夫。
何も心配することはありません。

課題の条件は満たしているので,自信を持って提出してください。
0797デフォルトの名無しさんNGNG
namingセンスがそいつのレベルの80%を語る。
名前は命。
0798デフォルトの名無しさんNGNG
namingに迷ったときはこちらへどうぞ
http://pc5.2ch.net/test/read.cgi/tech/1087209526/
0799デフォルトの名無しさんNGNG
C++のクラスで、

class _2ch
{
   int val;
   int* pval;

public:
   _2ch(int i){val=i;pval=&val;};
}

このクラスで、時々pvalと*valが違う値を示すのですがヽ(`Д´)ノ
0800デフォルトの名無しさんNGNG
>>799
そら、コンストラクト時には違う値だろう。
0801デフォルトの名無しさんNGNG
つか、pvalと*valは常に違うな。釣り?
クマキボン
0802デフォルトの名無しさんNGNG
typo?

>このクラスで、時々pvalと*valが違う値を示すのですがヽ(`Д´)ノ

このクラスで、時々pvalと&valが違う値を示すのですがヽ(`Д´)ノ

0803デフォルトの名無しさんNGNG
ミスです!釣ってません!!
pvalと&valが違う値になります
0804デフォルトの名無しさんNGNG
>>803
だからそれも常にだって。たまになわけがない。釣り?
クマキボン
0805デフォルトの名無しさんNGNG
ちょっと待て、釣ってない!!絶対違う!!!
確認してくる!!
0806デフォルトの名無しさんNGNG
身体測定のデータ処理を行いたい。番号(2桁の整数)と身長、体重、性別のデータを持つ構造体を作り20人分のデータを扱えるようにしてください。
・入力されたデータから身長と体重の最大、最小値と平均値を性別ごとに求めるプログラムを作ってください。
・番号を入力することで、その人の身長、体重、性別の各データを表示できるようにしてください。
 この時、次の式を使って、標準体重からの差も表示しなさい。
       標準体重 = (身長-100)x0.9

身長は150cmから180�a�b
体重は45�`�cから90�`�c
の範囲で生成せきるようにしてください。
性別は男性:0,女性:1としてください。

データは以下の構造体を用いてください。
struct person{
int number;
int height;
int weight;
int sex;
}

int main()
{
struct person data[20];

return 0;
}
0807デフォルトの名無しさんNGNG
>>805
そんな確認のしようがないもの春な。
きちんと現象が出る状態のソースを腫れ、このバカ。
0808デフォルトの名無しさんNGNG
キタ━(゚∀゚)━キタ━
やっぱり値が違う!!!!!
800〜804は逝ってよし

以下にソースを↓
0809デフォルトの名無しさんNGNG
死んでくれ
0810デフォルトの名無しさんNGNG
//前半
#include <iostream>
using namespace std;

class _2ch
{
  int val;
   int* pval;

public:
   _2ch(int i){val=i;pval=&val;};
   int* GetAddressOfVal(){return &val;};
   int* GetPval(){return pval;};


   _2ch copy(){
      _2ch c(val);
      return c;
   };

   _2ch& operator=(_2ch& c){
      cout<<c.GetAddressOfVal()<<endl;
      cout<<c.GetPval()<<endl;
      val=c.val;
      pval=&val;
      return *this;
   };
};
0811デフォルトの名無しさんNGNG
//後半
int main()
{
   _2ch c0(0);
   _2ch c1(0);

   c0=c1.copy();

   return 0;
}
0812デフォルトの名無しさんNGNG
これを実行すると違うアドレスが表示されます!!!!!
キタ━(゚∀゚)━キタ━
0813デフォルトの名無しさんNGNG
>>810
>int* GetAddressOfVal(){return &val;};
何これ?
お前って池沼?
0814デフォルトの名無しさんNGNG
はー、最近では小学生でもC++書けるのかぁ。
0815デフォルトの名無しさんNGNG
何この糞設計?
0816デフォルトの名無しさんNGNG
(`Д´)ウワーン
正直自身あったのに、、、、
0817デフォルトの名無しさんNGNG
正直、どういう動作を想定していて、
どう違うと言っているのかすら分からん。
順を追ってネタを説明してみろ。
0818デフォルトの名無しさんNGNG
(`Д´)ウワーン

c0=c1.copy()は、
1)c1.copy()
2)c0=
の順に実行されます。

問題は2)で
2ch& operator=(_2ch& c)の引数cのpvalと&valが違う値になります(`Д´)ウワーン
0819デフォルトの名無しさんNGNG
おまいはC++以外の言語に移行した方がいいんじゃね?
0820デフォルトの名無しさんNGNG
http://tool-ya.ddo.jp/2ch/trash-box/file/20040805010447167.gif
これの回答解る方おられますか?
正解の回答だけでいいので教えて下さい。
数学板は人が少ないようなのでこっちに来てしまいました。
センター試予想問題です。
スレ違いでごめんなさい。
0821デフォルトの名無しさんNGNG
すれちがーいさよーならー
0822デフォルトの名無しさんNGNG
>>820
 
 
Cの人間はBASICと数学解らんから他スレ行っとけ
0823デフォルトの名無しさんNGNG
>>820
BASICスレで聞けばいいのに
0824デフォルトの名無しさんNGNG
>>820
403 アクセスを拒否されました
0825デフォルトの名無しさんNGNG
Nが2未満のときのエラー処理がないので
こんなプログラム書いたヤシは落第です。
0826デフォルトの名無しさんNGNG
そのとき、この点は膣番目に表示される。
0827820NGNG
どのスレで聞こうか悩んだんですが、やはりスレ違いでしたか。

>>825
先生が書いたんですが・・・
0828デフォルトの名無しさんNGNG
>>818
コピーコンストラクタが無いからだよ。
_2ch(const _2ch &c)を追加しる。
0829デフォルトの名無しさんNGNG
>>827
じゃあ先生に注意してください
Nに文字入れたときもエラーでるよ
0830デフォルトの名無しさんNGNG
>>829
だから数字も文字なんだってば。

>>820
Basicでプログラム書いて実行してみればいいだろ。
或いはこのスレ的にはだれかCに移植するかもしれないけど。
#単純すぎるから私はやらない。
##って書くと、できないからだとか言われそうだが。
0831デフォルトの名無しさんNGNG
>>820
(1)
3
(2)
1) 1 1
2) 1 2
3) 2 1
(3)
10) 4 1
20) 5 2
27) 6 2
(4)
7
19

センター試験受ける気ならこの程度の問題自分で解け。まぁ、その気はないんだろうけど・・・。
あと、こんなの板違いで聞かないように。(特に数学板。)はずかしい。
0832デフォルトの名無しさんNGNG
>>830
#include <stdio.h>
#define $A$  /* (1) */

int main()
{
    int n, s = 0, k, x, y;

    printf("n="), scanf("%d", &n); /* INPUT "n=";N */
    s = 0; /* S = 0 */
    for(k = 2; k <= n; k++){ /* FOR K=2 TO N */
        for(x = 1; x <= $A$; x++){ /* FOR X=1 TO [ア] */
            y = k - x, s++; /* Y = K - X : S = S + 1; */
            printf("%d) %d %d\n", s, x, y); /* PRINT S;") ";X;Y */
        } /* NEXT X */
    } /* NEXT K */
    return 0; /* END */
}

BASIC知らないからミスがあるかもしれない
0833デフォルトの名無しさんNGNG
1)1つの文字列と1つの文字を入力し、文字列中にその文字が何回含まれているのかを調べるプログラムを作成してください。
2)また、このプログラムを改良して文字列中の何文字目に指定された文字が含まれているのかを答えるプログラムを作成してください。
3)入力された文字列中の文字を逆順に複写し、出力するプログラムを作成してください。
0834デフォルトの名無しさんNGNG
>>833
#include <iostream>
#include <string>
#include <algorithm>

using namespace std;

int
main()
{
    char c;
    string s;

    cout << "文字列 : ";
    getline( cin, s );
    cout << "文字 : ";
    cin >> c;

    // (1)
    cout << count( s.begin(), s.end(), c ) << "個" << endl;

    // (2)
    string::iterator i;
    for( i = s.begin(); i != s.end(); ++ i )
        if( c == *i ) cout << distance( s.begin(), i ) + 1 << "番目" << endl;

    // (3)
    reverse( s.begin(), s.end() );
    cout << s << endl;

    return 0;
}
0835デフォルトの名無しさんNGNG
>>833
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=199
0836デフォルトの名無しさんNGNG
>810-812
gcc 3.4.0 で試してみた。
なるほど、このコードだと copy() から _2ch を返す時に
「見えないインスタンス」を別に作っているようだね。
コピーコンストラクタを書いていないから、デフォルトのコピーコンストラクタにより
pval がその値のままコピーされている。
だから operator = () の中の c の pval と &val は違う値になるんだ。
# この時,*(c.pval) をいじるのは危険だろうね。おそらく前のインスタンスは
# 破棄されているはずだ。つっても、ここで pval は const int * 型のはずだけど。

>828 の言う通りコピーコンストラクタを明示的に書いておくと、
今度は「見えないインスタンス」を生成せず、copy() の中で作った c を
そのまま返してくるのな (;´Д`)
コピーコンストラクタを書いたはずなのに呼び出されないから、焦った。
コピーコンストラクタの呼び出しを省略するのは C++ の仕様の範疇だ (ったと思う)。

次に、コピーコンストラクタを書かず、代わりにデストラクタを書いてみた。
すると、copy() の中の c をそのまま返してきた (;´Д`)
前段落のように、コピーコンストラクタを明示的に書いておいた時のようにね。
これも C++ の仕様だったっけ?
0837デフォルトの名無しさんNGNG
コピーコンストラクタなければ、ただのビットコピーだろ
0838デフォルトの名無しさんNGNG
Cの問題です。
整数nを入力し、n個の乱数を発生して、大きさの昇順のリンク付きリストにせよ
またそのリストの内容を降順に出力せよ。
0839デフォルトの名無しさんNGNG
>>836
>copy() から _2ch を返す時に
>「見えないインスタンス」を別に作っているようだね。

そんな当然のことを,何わざわざ語ってるんだ?
返り値が値渡しなんだから当然だろ。

>copy() の中で作った c を そのまま返してくるのな
これ,考え方が逆。
最適化のスイッチが入って,返り値用に確保してある領域(=_2chのインスタンス)を
そのまま内部変数cとして使うようになっただけ。
0840デフォルトの名無しさんNGNG
バカの相手はほどほどに
0841デフォルトの名無しさんNGNG
実数xと正の整数nを受け取りx^n(xのn乗)を計算して返す関数を作成せよ
ただし、main関数では適当なデータをキー入力し、関数を呼び出した後は、x^nの値を出力せよ
このプログラミングをC言語で作成していただけたら助かります。
さらに以下のような感じに仕上げてもらえたら、さらに助かります
#include<stdio.h>
float func(float *a, float *b, float *x){
*x = -(*b)/(*a);
return 0;
}
float main(void)
{
float a=-10,b=1,kai;
func(&a, &b, &kai);
printf("a = %f\n", a);
printf("b = %f\n", b);
printf("kai = %f\n", kai);
return 0;
}
0842デフォルトの名無しさんNGNG
>>841
const とポインタを理解し直せ
0843デフォルトの名無しさんNGNG
floatが32バイトでPODへのポインタが4バイトでconstが無い処理系だったらどうしてくれる
0844デフォルトの名無しさんNGNG
#include<stdio.h>
float func(const float a, const int b){
float x = 1.0;
int i;
for (i = 0; i < b; i++) x *= a;
return x;
}
float main(void)
{
float a = -10.0, kai;
int b = 2
kai = func(a, b);
printf("a = %f\n", a);
printf("b = %d\n", b);
printf("kai = %f\n", kai);
return 0;
}
0845デフォルトの名無しさんNGNG
constが無い処理系はこのスレ野対象外。
0846デフォルトの名無しさんNGNG
const float a, const int b
ワロタ
0847デフォルトの名無しさんNGNG
そもそもfloatってdouble使えない環境以外では使わないだろ
0848デフォルトの名無しさんNGNG
>>838
かなり適当.
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=200
0849デフォルトの名無しさんNGNG
そもそもfloatってdouble使えない環境以外では使わないだろ
そもそもfloatってdouble使えない環境以外では使わないだろ
そもそもfloatってdouble使えない環境以外では使わないだろ
そもそもfloatってdouble使えない環境以外では使わないだろ
そもそもfloatってdouble使えない環境以外では使わないだろ
そもそもfloatってdouble使えない環境以外では使わないだろ
そもそもfloatってdouble使えない環境以外では使わないだろ
そもそもfloatってdouble使えない環境以外では使わないだろ
0850デフォルトの名無しさんNGNG
3Dの分野では使いまくっとるが・・・・。float。
0851838NGNG
>>848
助かりました
0852デフォルトの名無しさんNGNG
       ☆ チン

 ☆ チン  〃 ∧_∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ヽ ___\(\・∀・)< 宿題マダー?
      \_/⊂ ⊂_)_ \____________
    / ̄ ̄ ̄ ̄ ̄ ̄ ̄/|
   |  ̄  ̄ ̄ ̄ ̄ ̄ ̄:|  |
   | 淡路たまねぎ   .|/
    ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
0853デフォルトの名無しさんNGNG
FPU内部ではすべてdoubleで計算してて
floatはdoubleからの変換の手間がかかるから遅いって聞いた
あれ?64bitじゃなくて80bitだっけ?
0854デフォルトの名無しさんNGNG
>>853
一回インテルのマニュアルでも読んできたら?
0855デフォルトの名無しさんNGNG
>>854
ちょっと量が多いな3行にできないか
0856デフォルトの名無しさんNGNG
>FPU内部ではすべてdoubleで計算してて
凄まじいアフォだな
0857デフォルトの名無しさんNGNG
他力本願で悪いが誰か俺に正しい知識を与えてくれ!
0858デフォルトの名無しさんNGNG
正しい知識って、そんなハード寄りな話は
環境を特定しないと答えようがないだろ
0859デフォルトの名無しさんNGNG
じゃあIntel系で
0860デフォルトの名無しさんNGNG
 scanfとprintfっていうコマンドを使って、プログラム作れって
いわれたんだけど、意味わかんない。誰か助けて。UNIXでやってます。
0861デフォルトの名無しさんNGNG
>>860
#include <stdio.h>
int compare(int (*p)(const char *, ...), int (*q)(const char *, ...))
{
return p == q;
}

int main(void)
{
return compare(printf, scanf);
}
0862デフォルトの名無しさんNGNG
scanfとprintfっていうラインエディタがあるとですか?
0863デフォルトの名無しさんNGNG
#include <stdio.h>

int main()
{
    char szStr[256];

    printf("文字列を入れろや、ボケ教授が!!\n");
    scanf("%s", szStr);
    printf("お前が入力したのは、「%s」だ。馬鹿野郎。\n", szStr);
    return 0;
}
0864デフォルトの名無しさんNGNG
>>860
$ scanf
zsh: command not found: scanf
0865デフォルトの名無しさんNGNG
a:\>scanf
I am scanf.

メモリアロケートエラー
command.comが停止しました
0866デフォルトの名無しさんNGNG
>>865
w
0867デフォルトの名無しさんNGNG
>>860
#include <stdio.h>

void main( void ){ scanf( "" ); printf( "" ); }
0868デフォルトの名無しさんNGNG
void main キター
0869デフォルトの名無しさんNGNG
voiid 厨キター
0870デフォルトの名無しさんNGNG
voiid 厨厨キター
0871デフォルトの名無しさんNGNG
そろそろやめないか?
0872デフォルトの名無しさんNGNG
voiid
0873デフォルトの名無しさんNGNG
voin
0874デフォルトの名無しさんNGNG
スレ違い
http://pc5.2ch.net/test/read.cgi/tech/1075398852/
0875デフォルトの名無しさんNGNG
799ですヽ(`Д´)ノ

>>828,836,839
分かりました!!!!!
ありがとうございますm(__)m
ってか,俺もc++には自信があったんだが(-_-;)(-_-;)



0876デフォルトの名無しさんNGNG
>俺もc++には自信があったんだが
悪いのは頭だけではないようですね
0877デフォルトの名無しさんNGNG
>>876
いや,ネタではなく俺は間違いなくできるほうだ!!
周りはクラスすら理解していない厨房ばかり
0878デフォルトの名無しさんNGNG
他の人がどうであれ、ヌヒが低レベルという事に変わりはないわけだが。
0879デフォルトの名無しさんNGNG
>>877
まるで自分がクラスを理解出来ているかのような言い方ですね
0880デフォルトの名無しさんNGNG
お前も理解出来てないだろ。
出来てると勘違いしてる輩は、問題点を別の個所に求めるから余計にタチが悪い。
OS・コンパイラ・ライブラリのバグだ!とかな。
0881デフォルトの名無しさんNGNG
おやまあ、小山田だ
0882デフォルトの名無しさんNGNG
二分サーチの短所ってなんですか?
0883デフォルトの名無しさんNGNG
>>882
まず探索に O(logN)かかること
例えばハッシュならば O(1) で検索が実行できる。

次に表を昇順にソートしておく必要があるため、
要素を頻繁に挿入・削除される場合、再ソートのオーバーヘッドが大きくなること。
0884デフォルトの名無しさんNGNG
ちなみに、後者についてはデータ構造によってある程度回避することは可能。
0885デフォルトの名無しさんNGNG
>>883
つまり時間がかかるということですか?
0886デフォルトの名無しさんNGNG
>>885
色々なサーチやソートの方法があるのはそれぞれ一長一短があるから。
0887デフォルトの名無しさんNGNG
式 x+y に代入するデータを(x,y)=(2,0),(10,9),(12,4) とする。
この計算結果を表示するプログラムを作成せよ。
ただし、filename.exe -tekitou の様に、それぞれの(x,y)の値における
計算結果を返すようにコマンドラインで引数を任意に指定せよ。
0888デフォルトの名無しさんNGNG
>>887
いまいち入力フォーマットがわからんがコレで良い?
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char* argv[])
{
if (argc < 3) return 1;
printf("%d + %d = %d\n", atol(argv[1]), atol(argv[2]), atol(argv[1]) + atol(argv[2]));
return 0;
}
0889デフォルトの名無しさんNGNG
       ☆ チン

 ☆ チン  〃 ∧_∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ヽ ___\(\・∀・)< 宿題マダー?
      \_/⊂ ⊂_)_ \____________
    / ̄ ̄ ̄ ̄ ̄ ̄ ̄/|
   |  ̄  ̄ ̄ ̄ ̄ ̄ ̄:|  |
   | 淡路たまねぎ   .|/
    ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
0890デフォルトの名無しさんNGNG
>>888
それは違うと思う
0891デフォルトの名無しさんNGNG
>>887
// filename [0..2]
#include <stdio.h>

int main(int argc,char* argv[])
{
&sp;struct{
&sp;&sp;int x,y;
&sp;}tbl[3]={{2,0},{10,9},{12,4}};
&sp;unsigned int c=argv[1][0]-'0';
&sp;if(c<3)printf("%d",tbl[c].x+tbl[c].y);
&sp;return 0;
}
0892デフォルトの名無しさんNGNG
s/&sp;/&nbsp;/
0893デフォルトの名無しさんNGNG
文字列を文字型ポインタで初期化するって具体的にはどんなカンジになるんでしょうか?
0894デフォルトの名無しさんNGNG
膣内ぬるぽするようなカンジです
0895デフォルトの名無しさんNGNG
[m]<- char* chinpo
[a]
[n]
[k]
[o]
[\0]
0896デフォルトの名無しさんNGNG
>>893
PCTSTR pszHoge = TEXT("HOGE");
0897デフォルトの名無しさんNGNG
まだちん
0898デフォルトの名無しさんNGNG
chinpoという名前だが、実態はmankoというオチか?
0899デフォルトの名無しさんNGNG
ちんぽがまんこをさすんでね?
0900デフォルトの名無しさんNGNG

(読み込むファイル形式:input.txt)

576 名前: 名無しさん 投稿日: 04/08/06 19:40 ID:aospsRua
ごにょごにょ
577 名前: 名無しさん 投稿日: 04/08/06 19:41 ID:1Y+s4rjs
ごにょごにょごにょにょ

↑のような形式のファイル input.txt があります。
これを読み込み【ID:】以下の文字列(8文字)を読み込み、
同じIDがあればその重複回数をカウントして重複数の多い順に
output.txt に出力するプログラムを作成してくだせ。

出力する際は、そのIDが全体のレス数のうちどのくらい占めているかをあらわす%も付け加えて出力。
入力に関しては読み込むファイル名をコマンドラインで指定するだけというのがうれしいです。
outputの形式は以下参照

(出力ファイル形式:output.txt)
ID NUM %
aospsRua 10 15.3%
1Y+s4rjs 2 3.2%



0901900NGNG
ああーちと出力ファイル形式のテンプレがずれたので書き直し

(出力ファイル形式:output.txt)
ID(tab)NUM(tab)%
aospsRua(tab)10(tab)15.3%
1Y+s4rjs(tab)2(tab)3.2%

うえのように(tab)をTAB(4文字スペース?)であけてください。
みにくくてスマンです。
0902デフォルトの名無しさんNGNG
それはPerlの仕事。他行ってね
0903デフォルトの名無しさんNGNG
>>900
実験用のファイル用意するの面倒くさかったから予め変数に格納してるけど、
strtokとか取りさって、fgetsでファイルから行を取得するように変更しといて。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=201

俺、STL自体あんまり使わなくて使い方下手くそなので、
そこは叩かないように
0904デフォルトの名無しさんNGNG
あきらかに宿題ではないよね
0905デフォルトの名無しさんNGNG
>>903
どもありがとうございました。
0906デフォルトの名無しさんNGNG
>882 要素がソートされていないと探索できない。以上。
0907デフォルトの名無しさんNGNG
スレ違い感漂いまくりですが

『プロセス間通信及びマルチスレッドプログラミングにはどのような物があるか調査し、
簡単なプログラムを作成する』

って課題出たんですけど、何作ればいいと思いますか?
やり方は2つともわかるけど、具体例が思いつかなくてOTL
0908デフォルトの名無しさんNGNG
いわゆる複数クライアントからの接続要求に対してマルチスレッドで相手するWebサーバーみたいなものでよかろ?
0909デフォルトの名無しさんNGNG
OS
0910907NGNG
>>908>>909
ちなみに科目はOS、概念だけしかやってないから、あまり高度な事は期待していないと思う
ローカル上で真似事をするようなのは構わないかも知れないけど、
実際に接続できるような物作ろうとすると、こっちも時間足りないし
0911デフォルトの名無しさんNGNG
>>910
ローカルでやる、実際に接続、どちらも同じ。
喪前、理解度低すぎで不合格。
0912907NGNG
>>911
ローカルでやるっつったのは、ソケットその他一切使わない真似事って事
単にスレッドとかが動けばいいの
0913デフォルトの名無しさんNGNG
アプリ作れっていうんじゃないなら、一通りのデモでも作ればよかろ。
やり方がわかるなら、そのやり方をプログラムにするだけだ。
経過の表示をグラフィカルに表現すれば、そこそこのヴァリュームで見栄えもよいだろな。
0914デフォルトの名無しさんNGNG
愚痴スレですか?
0915デフォルトの名無しさんNGNG
>>907
>具体例が思いつかなくて
具体例を調査してレポート作成するのも宿題じゃないのか?
0916デフォルトの名無しさんNGNG
telnetdでも作れば?
0917907NGNG
>>915
いや、スレッドとかプロセス間通信なんて、技巧の1つでしかないから、具体例いっぱいありすぎて
逆にスレッドがメインであるようなのは…………正直サーバ・クライアント系だけど、
それ前の課題で似たようなの出てたのよ
その辺りもうちょっと突き詰めれば、そっちは可能かもしれないけど……云々

多分俺の理想が高すぎるだけ
楽しようとしなければ、全然平気(?)
0918907NGNG
ついでに言うと、ネットワーク系まだやってない_| ̄|○
win 系なら幾らでもつなげられるけど、unix 系だから、やった事なくて
0919デフォルトの名無しさんNGNG
>>912
それでプロセス間通信てのはどーやってやんだ?
それで理想が高すぎるって…噴飯ものw
0920デフォルトの名無しさんNGNG
もの凄い勢いで戦う将棋でも作ったらどうよ
0921デフォルトの名無しさんNGNG
とにかく歩を一つ確保して二歩する将棋なら作れるが
0922デフォルトの名無しさんNGNG
>>918
pipeでもつかえばー?
0923デフォルトの名無しさんNGNG
つか、やればできるみたいな事言いながら出来ない愚痴を聞かされてもな。
0924デフォルトの名無しさんNGNG
#include <stdio.h>
int main (void){
int x[10]={1,2,3,4,5,6,7,8,9,10};
int *y,i;
y=x+2;
for(i=0;i<10;i++){
printf("x[%d]=%d\n",i,*y);
y++;
}
return (0);
}
このプログラムでx[0]のアドレスを(y=x)の時は問題ないのですがx[2]のアドレス(y=2)を出力
しようとするとx[0]=3から出力されるのですが、x[8],x[9]あたりで変な値が出て困ってます。
int x[10]の最後の値 10で止まるようなプログラムの場合はどうしたらよいのでしょうか?
どなた様かお力を貸してください。
0925デフォルトの名無しさんNGNG
スレ違い
ポインタが理解出来ていないのが原因。セグフォ。
0926デフォルトの名無しさんNGNG
お前、y=x+2;でx[]のそれぞれの値に2を足した配列のポインタが
yに代入されると思ってないか?(そんなMathematicaじゃあるまいし)
y=x+2でyはx[2]を指す。y++;でx[3],x[4]…と指す先が変わって
いくからyがx+10になった時点でおかしくなるのは当たり前だ。
何をしたいのか分からん。
0927デフォルトの名無しさんNGNG
924はネタだろ
0928デフォルトの名無しさんNGNG
ネタではないのですが・・・ors
質問の仕方が悪かったと思います。スイマセン
このプログラムを実行すると
x[0]=3
x[1]=4
x[2]=5
x[3]=6
x[4]=7
x[5]=8
x[6]=9
x[7]=10
x[8]=1245120
x[9]=4199081
となります。これをx[7]=10で止めるようなプログラムを作成して
いただきたいのですが
0929デフォルトの名無しさんNGNG
#include <stdio.h>
int main (void){
int x[10]={1,2,3,4,5,6,7,8,9,10};
int *y,i;
y=x+2;
while(y <= &x[9]){
for(i=0;i<10;i++){
printf("x[%d]=%d\n",i,*y);
y++;
}
return (0);
}
0930しくったorzNGNG
#include <stdio.h>
int main (void){
int x[10]={1,2,3,4,5,6,7,8,9,10};
int *y,i;
y=x+2;
while(y <= &x[9]){
printf("x[%d]=%d\n",i,*y);
y++;
}
return (0);
}
0931デフォルトの名無しさんNGNG
>>930
愛はどうした?
0932デフォルトの名無しさんNGNG
>>931
そんなものいらない
0933デフォルトの名無しさんNGNG
>>932
寂しい奴だな
0934デフォルトの名無しさんNGNG
放っといてくれ!
0935デフォルトの名無しさんNGNG
>>930
解答のほどありがとうございます。
ですが930さんのプログラムを実行させていただきますと
iがないのでxの中身が変になりました。
x[-858993460]=3
x[-858993460]=4
x[-858993460]=5
x[-858993460]=6
x[-858993460]=7
x[-858993460]=8
x[-858993460]=9
x[-858993460]=10
0936デフォルトの名無しさんNGNG
iがないxなんて・・・
0937デフォルトの名無しさんNGNG
930さんはもう嫌になってますよ
0938デフォルトの名無しさんNGNG
あなたとはもうやっていけないわ
0939926NGNG
いや、そもそも>>924は誤解していると思うのだが。表示は
x[0]=3
x[1]=4
…
となっていてもx[0]==1、x[1]==2…のままだぞ。それは分かってるのか?
それでいいなら
#include <stdio.h>
int main (void){
    int x[10]={1,2,3,4,5,6,7,8,9,10};
    int *y,i;
    y=x+2;
    for(i=0;i<10-2;i++){
        printf("x[%d]=%d\n",i,*y);
    y++;
    }
    return 0;
}
でいいんじゃないのか?
0940926NGNG
あ、ちとインデント間違えた。
0941デフォルトの名無しさんNGNG
>>939 (926)
表示はそのままでよかったです。
ホントありがとうございました。
助かったです。
0942デフォルトの名無しさんNGNG
これ教えてください(つд`)

身体測定のデータ処理を行いたい。番号(2桁の整数)と身長、体重、性別のデータを持つ構造体を作り20人分のデータを扱えるようにしてください。
・入力されたデータから身長と体重の最大、最小値と平均値を性別ごとに求めるプログラムを作ってください。
・番号を入力することで、その人の身長、体重、性別の各データを表示できるようにしてください。
 この時、次の式を使って、標準体重からの差も表示しなさい。
       標準体重 = (身長-100)x0.9

身長は150cmから180�a�b
体重は45�`�cから90�`�c
の範囲で生成せきるようにしてください。
性別は男性:0,女性:1としてください。

データは以下の構造体を用いてください。
struct person{
int number;
int height;
int weight;
int sex;
}

int main()
{
struct person data[20];

return 0;
}
0943デフォルトの名無しさんNGNG
>>942
それ最近みたぞ
0944デフォルトの名無しさんNGNG
>>942
ここだ
>>806
0945デフォルトの名無しさんNGNG
806 == 942 なのか?
0946デフォルトの名無しさんNGNG
>>942
C言語をやってみようと思い作ってみますた
エラーなどは自分で治してください
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=300
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=301
0947デフォルトの名無しさんNGNG
次スレの立て方についてどうぞ
0948デフォルトの名無しさんNGNG
どなたかお助けください
テキストファイルに、1〜nまでの素数を書き込む関数fileSosu()を作成せよ。

void fileSosu( char *fileName, int n )

・fileName : 素数を書き込むファイル名
・n : 素数を求める最大数

上記の関数を以下のプログラムで実行し1〜100までの素数がファイルに出力されたか動作を確認せよ。

#include <stdio.h>

//ここにfileSosu()関数を書く。

void main()
{
//ファイル名を格納する文字列
char wFileName[20];

printf("素数を出力するファイル名=");
//ファイル名をキーボードから入力する
scanf("%s", wFileName );
fileSosu( wFileName, 100 );
}
前すれで聞いた時は流れてしまって、でっちあげて提出したら「お前がやるのは再提出問題で、これは元になった問題の回答だ」と言われました
元になった問題も張りますので、どうにかお助けを_| ̄|○
ttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=302
0949デフォルトの名無しさんNGNG
void fileSosu( char *fileName, int n )
{
    FILE *fp;
    int *prime, i, j;

    fp = fopen(fileName, "w");
    if(fp == NULL) return;
    prime = calloc(sizeof(int), n+1);
    if(prime == NULL) return;

    for(i = 2; i <= n; i++){
        for(j = i * 2; j <= n; j += i)
            prime[j] = 1;
        if(prime[i] == 0){
            if(i > 2) fputc('\n', fp);
            fprintf(fp, "%d", i);
        }
    }
    fclose(fp);
    free(prime);
    return;
}

こんな感じか?
0950デフォルトの名無しさんNGNG
>>948
void fileSosu(char *const filename, const int n)
{
  int i;
  FILE *out = fopen(filename, "w");
  for(i = 2; i <= n; i++)
  {
    int j;
    for(j = 2; j < i; j++)
      if(i % j == 0)
        goto not_prime;
    fprintf(out, "%d\n", i);
not_prime:;
  }
  fclose(out);
}
0951950NGNG
かぶったうえに明らかに拙い…
欝だ死のう
0952デフォルトの名無しさんNGNG
>>949
合成数でもふるいを更新するならフルイのアルゴリズムの利点が無くないか?
0953デフォルトの名無しさんNGNG
>>952
あ



orz
0954デフォルトの名無しさんNGNG
    for(i = 2; i <= n; i++){
    ...
    }

    ↓

    for(i = 2; i <= n; i++){
        if(prime[i] == 0){
            for(j = i * 2; j <= n; j += i)
                prime[j] = 1;
            if(i > 2) fputc('\n', fp);
            fprintf(fp, "%d", i);
        }
    }

これで大丈夫かなぁ・・・
0955デフォルトの名無しさんNGNG
次スレが立ったようです
C/C++の宿題を片づけ作戦指令 30代目
http://pc5.2ch.net/test/read.cgi/tech/1091954342/
0956デフォルトの名無しさんNGNG
ヒマだから,>>907で何か書くか。
0957956NGNG
埋め立てちう
#include <vector>
#include <set>
#include <map>
#include <algorithm>
#include <time.h>
#include <stdio.h>
#include <unistd.h>
#include <pthread.h>
#include <signal.h>

class FDS : public std::set<int> {
private:
fd_set fds;
iterator it;
public:
int fd_max() const { return *max_element(begin(),end()); }
fd_set *fdset(){
it=begin();
FD_ZERO(&fds);
iterator itt;
for(itt=begin();itt!=end();++itt){
FD_SET(*it,&fds);
}
return &fds;
}
int active_fd(){
for(;it!=end();++it)
if( FD_ISSET(*it,&fds) ) return *it++;
return -1;
}
};
0958956NGNG
struct {
pthread_mutex_t mutex;
pthread_cond_t cond, finish;
int count, nmenber;
void join(){
pthread_mutex_lock(&mutex);
if( ++count!=nmenber ) pthread_cond_wait(&cond,&mutex);
else pthread_cond_broadcast(&cond);
pthread_mutex_unlock(&mutex);
}
void oneless(){
pthread_mutex_lock(&mutex);
if( count==--nmenber ) pthread_cond_broadcast(&cond);
pthread_mutex_unlock(&mutex);
}
void onedead(){
pthread_mutex_lock(&mutex);
if( !--count ) pthread_cond_broadcast(&finish);
pthread_mutex_unlock(&mutex);
}
bool end(){ return count<2; }
void wait(){
pthread_mutex_lock(&mutex);
pthread_cond_wait(&finish,&mutex);
pthread_mutex_unlock(&mutex); }
} thread_starter = { PTHREAD_MUTEX_INITIALIZER, PTHREAD_COND_INITIALIZER, PTHREAD_COND_INITIALIZER,
0 };

0959956NGNG
struct thread_data {
pthread_t th;
int pipe[2];
};

std::vector<thread_data*> vec_thread;
time_t base_sec = 0;

const char*const msg[] = {
"%dは%dに斬りかかった",
"%dは%dに銃口を向けた",
"%dは%dに呪文を唱えた",
"%dは%dにぬるぽ",
"%dは%dにガッ!",
};
0960956NGNG
void *student_thread(void *input){
pthread_mutex_t mystart_mutex = PTHREAD_MUTEX_INITIALIZER;
thread_data *arg = (thread_data*)input;
thread_data *data;
int nwrite;
sigset_t sigset;
sigemptyset(&sigset);
sigaddset(&sigset,SIGTERM);
sigprocmask(SIG_BLOCK, &sigset, NULL);
thread_starter.join();
do{
sleep(rand()%5+1);
sigpending(&sigset);
time_t sec;
int len;
char buf[100];
sec=time(0)-base_sec;
write(arg->pipe[1],&sec,sizeof(time_t));
0961956NGNG
if( thread_starter.end() ){
snprintf(buf,sizeof(buf),"%dが生き残った",arg->th);
}else if( sigismember(&sigset,SIGTERM) ){
snprintf(buf,sizeof(buf),"%dは死んだ",arg->th);
}else{
data = vec_thread[rand()%vec_thread.size()];
if( arg != data )
snprintf(buf,sizeof(buf),msg[rand()%(sizeof(msg)/sizeof(msg[0]))],arg->th,data->th);
else
snprintf(buf,sizeof(buf),"%dは身を投げた!!!",arg->th);
if( pthread_kill(data->th, SIGTERM) )
strcat(buf," ミス");
};
len=strlen(buf)+1;
write(arg->pipe[1],&len,sizeof(int));
write(arg->pipe[1],buf,len);
}while( !thread_starter.end() && !sigismember(&sigset,SIGTERM) );
close(arg->pipe[1]);
thread_starter.onedead();
return NULL;
}
0962956NGNG
void log_process(FDS &fds){
std::multimap<time_t,char*> map_log;
while( fds.size() ){
int nsel;
if( 0<(nsel=select(fds.fd_max()+1,fds.fdset(),NULL,NULL,NULL)) ){
int fd;
while( (fd=fds.active_fd())>=0 ){
time_t sec;
int msglen;
char *msg;
int nread;
read(fd,&sec,sizeof(time_t));
read(fd,&msglen,sizeof(int));
msg = new char[msglen];
nread=read(fd,msg,msglen);
if( nread > 0 ){
map_log.insert(std::make_pair(sec,msg));
}else{
fds.erase(fd);
close(fd);
}
}
}
}
std::multimap<time_t,char*>::iterator it;
for(it=map_log.begin();it!=map_log.end();++it){
printf("%03dターン: %s\n",it->first,it->second);
}
return;
}
0963デフォルトの名無しさんNGNG
分速500文字級で>>956がコードを打ってると想像して萌えてみる
0964956NGNG
int main(int argc, char **argv){
srand(time(0));
int count;
FDS fds;
std::vector<thread_data*>::iterator it;
if( argc<2 ){
fprintf(stderr,"Usage:%s [thread_count]\n",argv[0]);
return 1;
}
for(count=atoi(argv[1]);count;--count){
thread_data *data;
data=new thread_data;
pipe(data->pipe);
vec_thread.push_back(data);
fds.insert(data->pipe[0]);
}
thread_starter.nmenber=fds.size();
pid_t pid=fork();
if( pid<0 ){
abort();
}else if(pid>0){
pid=fork();
if(pid<0) abort();
else if(pid>0) return 0;
for(it=vec_thread.begin();it!=vec_thread.end();++it){
close((*it)->pipe[1]);
delete *it;
}
vec_thread.clear();
log_process(fds);
return 0;
}
0965956NGNG
close(0); close(1); close(2);
setpgid(0,0);
for(it=vec_thread.begin();it!=vec_thread.end();++it){
thread_data *data=*it;
close(data->pipe[0]);
if( pthread_create(&(data->th), NULL, student_thread, data) ){
close(data->pipe[1]);
delete data;
vec_thread.erase(it);
thread_starter.oneless();
continue;
}
}
time(&base_sec);
thread_starter.wait();
return 0;
}
0966956NGNG
>>963
ふふふ
コピペとSTLの力は偉大なのだよ
0967デフォルトの名無しさんNGNG
>>956
(:.;゚;Д;゚;.:)ハァハァ
0968907NGNG
>>957
�dクス
でも、HttpDownLoader(偽) と簡易シェルを作って終わりにしちった
許してくれ

ちなみに、使用可能なのは C であって、C++ ではないらしい
とても愉快なうちのPCルーム
0969デフォルトの名無しさんNGNG
しかしコンパイルできない
0970デフォルトの名無しさんNGNG
しかし,埋まらない。
ところで,何がコンパイルできないとお悩みじゃ,お若いの?
0971デフォルトの名無しさんNGNG
>>970
/home/hoge/tmp/ccsX09Q1.o(.text+0x210): In function `student_thread(void*)':
: undefined reference to `pthread_kill'
collect2: ld はステータス 1 で終了しました

gcc3.3.2
コンパイルオプションを教えて.
0972デフォルトの名無しさんNGNG
そりゃ,コンパイルエラーじゃねぇ,リンクエラー。

キミの任務はpthread用のライブラリをリンクすることだ。
リンカオプション -lpthread を活用したまへ。
0973デフォルトの名無しさんNGNG
とりあえず、埋めてからにしようや。
0974工房NGNG
再帰関数を使用し、Xのn乗を求めよ。
プロトタイプ宣言、int Power(int num);

ハテハテ・・・
0975デフォルトの名無しさんNGNG
#include <stdio.h>
int X;
int Power(int num);
int main(void)
{
X = 2;
int n = 10;
printf("%d^%d=%d\n", X, n, Power(n));
return 0;
}
int Power(int num)
{
int a;
for(a = 1; num > 0; num--) a *= X;
return a;
}
都合が悪い所は勝手に直せ。
0976デフォルトの名無しさんNGNG
>>975
再帰つかえよって問題じゃないのか?
0977デフォルトの名無しさんNGNG
#include <stdio.h>
int X;
int Y;
int Power(int num);
int main(void)
{
X = 2;
Y = 10;
printf("%d^%d=%d\n", X, n, Power(1));
return 0;
}
int Power(int num)
{
 if(Y > 1)
 {
  --Y;
  num = Power(num * X);
 }
 return num;
}
0978975NGNG
再帰用に訂正。

int Power(int num)
{
if(num == 0) return 1;
return (Power(num - 1) * X);
}
0979デフォルトの名無しさんNGNG
>>978
numが負だったら……南無
0980デフォルトの名無しさんNGNG
山田君、>>979 の生爪一枚持って行きなさい。
0981デフォルトの名無しさんNGNG
暇なので俺流で
int Power(int num)
{
    return num <= 0 ? 1 : Power(num-1) * X;
}
0982デフォルトの名無しさんNGNG
Xならもう居ないよ
0983デフォルトの名無しさんNGNG
どこ行ったの?
0984デフォルトの名無しさんNGNG
pretrav(int tree)
{
if(tree!=0){
printf("%d",node[tree].info);
pretrav(node[tree].left);
pretrav(node[tree].rigth);
}
}

この2分木の前順走査の再帰プログラムをアセンブリ言語で直してください。
よろしくお願いします。
0985デフォルトの名無しさんNGNG
>>984
内部で完結してないので、無理。
ちなみにアセンブリはすれ違い
0986デフォルトの名無しさんNGNG
>>>985
アセンブリはすれ違いとは?

前順でABDCEGFHIのアセンブリ言語を作っているんですが。
0987デフォルトの名無しさんNGNG
”スレ”違いだろうなたぶん
0988デフォルトの名無しさんNGNG
>>984
MIPS に直せばいいんだろ?
提出明日か……がんがれよ
0989デフォルトの名無しさんNGNG
>>>988
もうむりぽ。
0990デフォルトの名無しさんNGNG
>>984
まず node の型と数をはっきりさせる必要がある
これが済めば後はコンパイラにソースコードを作らせればいい
0991デフォルトの名無しさんNGNG
カウントダウンの時間です
0992デフォルトの名無しさんNGNG
>>977
0! が 1 にならないようだが
0993デフォルトの名無しさんNGNG
993
0994デフォルトの名無しさんNGNG
>>992
何言ってんの?
0995デフォルトの名無しさんNGNG
995
0996デフォルトの名無しさんNGNG
梅
0997デフォルトの名無しさんNGNG
産め
0998デフォルトの名無しさんNGNG
呻
0999デフォルトの名無しさんNGNG
1000
1000999NGNG
失敗
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。