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

プログラマー軍団がC/C++の宿題を解決します 34代目

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
あなたのお悩み、ご相談下さい。
史上最強のプログラマー軍団の見解は?
――【注意点】――――――――――――――――――――――
・使用する言語(C/C++)や環境(CUI/GUIなど)は必ず書きましょう。
・問題文は、ちゃんと解いてもらう方にわかりやすいように全文を書きましょう。
・計算問題は必ず数式自体をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その行とエラーの詳細を書きましょう。
 エラーメッセージが出た場合はそのままコピーしてください。
・後になって問題につけたしをするのはやめましょう。
 解いてもらっている方に失礼になってしまいます。
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
http://do.sakura.ne.jp/%7Ejunkroom/cgi-bin/megabbs/lounge/index.html

【歴代スレは>>2-10】
0446デフォルトの名無しさんNGNG
>>445
3点がわかっているのだから解は一意に決まるんじゃないの?
手計算で連立方程式も簡単にとけるでしょ。
それとも連立方程式をプログラムで解かないといけないの?
0447デフォルトの名無しさんNGNG
238==445?
0448デフォルトの名無しさんNGNG
<<446
三点の値は自由に変えられるようにしたいです。

<<447
はい。またアドバイスがいただけたらと…
0449デフォルトの名無しさんNGNG
もう何回も答えは出てるだろが
0450デフォルトの名無しさんNGNG
>>448
だから、三点の座標を(x1,y1),(x2,y2),(x3,y3)として連立方程式を解けばいいじゃないか。
君、この程度の数式もとけないの?
0451デフォルトの名無しさんNGNG
>>448
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=6778&forum=3&start=8&10
0452デフォルトの名無しさんNGNG
>>451 ありがとうございます。
0453デフォルトの名無しさんNGNG
>>259
オリジナルのBASICプログラムは無駄なコードだらけなので整理した。
/*
  Fractional Derivate
*/

#include  <windows.h>

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

#define  KMAX  100
#define  XMAX  300

#define  MAXBUF  256
#define  PI  3.14159265358979323846

double  ga()
{
  double  r = 0.0;
  int  i;

  for(i = 0; i < 10; i++){
    r += ((double)rand() / RAND_MAX) - 0.5;
  }

  return  r;
}
0454デフォルトの名無しさんNGNG
int  main(void)
{
  double  ek = PI * 2.0 * 0.7 / XMAX;
  double  a = 2.5 - 1.0;
  double  fmax = 0.0;
  double  fmin = 0.0;
  double  f[XMAX];
  int  x, k;

  srand((unsigned)time(NULL));

  for(x = 0; x < XMAX; x++){
    f[x] = 0.0;
    for(k = 0; k < KMAX; k++){
      double  rk = k + 1.0;
      double  kx = ek * rk * x;
      f[x] += pow((ek * rk), -a) * (ga() * cos(kx) - ga() * sin(kx));
    }
    if(fmax < f[x])
      fmax = f[x];
    if(fmin > f[x])
      fmin = f[x];
  }
0455デフォルトの名無しさんNGNG
  {
  int  x0 = 100;
  int  y0 = 200;
  double  w = 200.0 / (fmax - fmin);

  HWND  hWnd = NULL;
  HDC  hDC = GetDC(hWnd);
  RECT  r = {100, 100, 400, 300};
  HBRUSH  hbr = (HBRUSH)GetStockObject(GRAY_BRUSH);
  HPEN  hpen = (HPEN)GetStockObject(BLACK_PEN);
  SelectObject(hDC, hpen);

  FillRect(hDC, &r, hbr);

  MoveToEx(hDC, x0 + 0, y0 + 0, NULL);
  for(x = 0; x < XMAX; x++){
    char  s[256];
    sprintf(s, "%24.18f, %24.18f", f[x], f[x] * yw);
    TextOut(hDC, 500, 20 * x, s, strlen(s));
    LineTo(hDC, x0 + x + 1, y0 + (int)(f[x] * yw));
  }

  ReleaseDC(hWnd, hDC);
  }

  return  0;
}

まあ、かなり手抜きなんだが、 >>436 よりはマトモに動く。
0456デフォルトの名無しさんNGNG
double w = 200.0 / (fmax - fmin);
↓
double yw = 200.0 / (fmax - fmin);

直してくれ。スマソ
0457235NGNG
もう見てないかもしれませんが

>>437
説明を見落としてました
前に送ったのはクイックソートでした
もういっぺん送ります


あふぉな漏れですみませんorz
吊ってきます・・・
0458デフォルトの名無しさんNGNG
c++で以下の条件でのプログラムを書く問題です。よろしくお願いします。
○ クラス名:
- bank_account
○ データメンバ:
- name (char 配列,名前)
- personal_code (int 型,暗証番号)
- balance (int 型,残金)
○ メンバ関数:
- init_account(char *name0, int code0, int pay0) (void 型)
口座の初期化を行う.名前,暗証番号,最初の入金を入力する.
- pay_in(int pay) (void 型)
口座に入金する.
- withdraw(int draw) (void 型)
口座からお金を引き出す.ただし暗証番号を入力させて,正しい場合のみ引き出す.
- show_balance() (void 型)
残高照会.名前と残高を表示する.残高がマイナスの場合は加えて”赤字です.」と表示す
る.
- is_correct_code(int code) (bool 型)
暗証番号を調べる.正しければtrue を返し,間違っていればfalse を返す.
※ 必要なら口座の初期化を行うコンストラクタも作成すること.
○ main 関数
下記の流れで処理を行う.
1. 名前,暗証番号,最初の入金を入力し,bank_account クラスの初期化を行う.
2. while ループに入る.
次のように表示して,番号を入力する.
終了の番号(0)が入力されるまでループを繰り返す.
cout << "番号を入力してください." << endl;
cout << "(1:入金,2:引き出し,3:残高照会,0:終了):";
3. (ループの中で)switch 文で入力された番号をもとに処理を分岐させ,それぞれの処理を行う.
ただし,お金を引き出す場合は暗証番号の入力を求めて,暗証番号が正しい場合のみ
引き出すこと.
0459デフォルトの名無しさんNGNG
そこまでわかっていて何故書けないんだろう…
0460458NGNG
>>459
愚か者ですまんです。
お察しください。
0461デフォルトの名無しさんNGNG
#include <iostream>
using namespace std;
class bank_account {
private:
    char *name; int personal_code; int balance;
public:
    ~bank_account(){};
    void init_account(char *name0, int code0, int pay0);
    void pay_in(int pay);
    void withdraw(int draw);
    void show_balance();
    bool is_correct_code(int code);
};
void bank_account::init_account(char *name0, int code0, int pay0) {
    name = name0; personal_code = code0; balance = pay0;
}
void bank_account::pay_in(int pay) {
    balance += pay;
}
void bank_account::withdraw(int draw) {
    balance -= draw;
}
void bank_account::show_balance() {
    cout << "名前:" << name << endl;
    cout << "残高:" << balance << endl;
    if(balance < 0) cout << "赤字です" << endl;
}
bool bank_account::is_correct_code(int code) {
    if(personal_code == code) return true;
    return false;
}
0462続きNGNG
int main()
{
  int number; int pay,draw,code;
  bank_account ba;
  ba.init_account("暇人", 459, 1000);

  while(1) {
    cout << "番号を入力してください." << endl; cout << "(1:入金,2:引き出し,3:残高照会,0:終了):";
    cin >> number;
    switch(number) {
          case 1:
        cout << "金額?:"; cin >> pay;
        ba.pay_in(pay);
        break;
      case 2:
     cout << "暗証番号?:"; cin >> code;
     if(ba.is_correct_code(code)) {
       cout << "OK" << endl; cout << "金額?:"; cin >> draw;
       ba.withdraw(draw);
     } else { cout << "Error" << endl; }
     break;
      case 3:
        ba.show_balance();
     break;
      case 0:
     return 0;
    } 
  }
}
0463C言語/コンパイラ:gccNGNG
ノートから構成されるリスト構造を用いて
名前と電話番号を入力して名前が文字コード順になるように名前と電話番号を
出力するプログラムなのですが、肝心DisplayList以外の関数が出来ません。
どうかよろしくお願いします。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
typedef struct _node {
  char name[20];
  char phone[12];
  struct _node *next;
}Node;
Node *CreateNode(Node*),*InsertNode(Node*,Node*);
void DisplayList(Node*),FreeList(Node*);
int main(void)
{
  Node *p=NULL,q;
    while(1){
      printf("名前:"); scanf("%s",q.name);
      if(strcmp(q.name,"end")==0) break;
        printf("電話番号"); scanf("%s",q.phone);
        p=InsertNode(p,CreateNode(&q));
      }
      DisplayList(p);
      FreeList(p);
      return;
}
Node CreateNode(Node*){}//ノードの作成(ヒープ領域の確保及び値の設定)
Node *InsertNode(Node*,Node*){}//ノードの挿入
void DisplayList(Node*){}
void FreeList(Node*){}//リスト全体のヒープ領域の開放
0464デフォルトの名無しさんNGNG
>>463
Node* CreateNode(Node* src){
Node* ret = (Node*)malloc(sizeof(Node));
memcpy(ret, src, sizeof(Node));ret->next = NULL;
return ret;
}
Node* InsertNode(Node* dest, Node* src){
Node* temp;
if (dest == NULL){dest = (Node*)malloc(sizeof(Node));memcpy(dest, src, sizeof(Node));}
else if (dest->next == NULL){dest->next = (Node*)malloc(sizeof(Node));memcpy(dest->next, src, sizeof(Node));}
else if (!(strcmp(dest->next->name, src->name) < 0)){temp = (Node*)malloc(sizeof(Node));memcpy(temp, src, sizeof(Node));temp->next = dest->next;dest->next = temp;}
else /* strcmp(dest->next->name, src->name) < 0 */InsertNode(dest->next, src);
return dest;
}
void DisplayList(Node* root){Node* cur = root;while (cur != NULL){printf("name:%20s phone:%12s\n", cur->name, cur->phone);cur = cur->next;}}
void FreeList(Node* ptr){if (ptr->next != NULL) FreeList(ptr->next);free(ptr);}
0465463NGNG
>>464
ありがとうございました。とっても助かりました。
がんばります。
0466デフォルトの名無しさんNGNG
ノートから構成されるリスト構造を用いて
ノートから構成されるリスト構造を用いて
ノートから構成されるリスト構造を用いて
0467デフォルトの名無しさんNGNG
[head] - [ノート1] - [ノート2] - [ノート3] - [NULL]
0468デフォルトの名無しさんNGNG
短縮

Node* InsertNode(Node* dest, Node* src){
if (dest == NULL){dest = src;}
else if (dest->next == NULL){dest->next = src;}
else if (!(strcmp(dest->next->name, src->name) < 0)){src->next = dest->next;dest->next = src;}
else InsertNode(dest->next, src);
return dest;
}

間違ってたらスマソ
0469デフォルトの名無しさんNGNG
大学ノートか?バインダーか?
0470デフォルトの名無しさんNGNG
ノードの間違い


だと釣られてみるテスト
0471デフォルトの名無しさんNGNG
デスノート万歳!
0472デフォルトの名無しさんNGNG
あれ面白いか?くだらない。
0473デフォルトの名無しさんNGNG
DEATH NOTEって書いた大学ノート持った女子見かけたよ。


某県立高校にて。
0474464NGNG
>>468
そっちが正しい。
0475デフォルトの名無しさんNGNG
1.キーボードから入力された10真数を、2真数として出力するプログラムをつくりなさい。
2進数への変換は、商が0になるまで10進数を2で割り、余りを逆の順番で並べる方法を
用いる。ただし、入力は正の整数であって、最大値は16383(すべてが1である14桁の2進数)
とする。

2.キーボードから入力した文字列の中の、英大文字、英小文字、数字、その他(記号など)の
個数を出力するプログラムを、ポインタを使ってつくりなさい。

3.キーボードから和暦(英文字に続く数字)を入力したとき、西暦年を出力するプログラムを
プログラムを作りなさい。ただし、明治はmまたはM、大正はtまたはT、
昭和はs、またはS、平成はhまたはHとし、数字は必ず2けたで入力するものとする。
たとえば、平成7年の場合は、H07またはH07と入力すること。

どなたかお願いしますm(__)m
0476デフォルトの名無しさんNGNG
自分で一切やろうとしないで全部ここにやらせようという考えかw
0477デフォルトの名無しさんNGNG
ここってそういうスレじゃないんですかm(__)m
0478デフォルトの名無しさんNGNG
>>477
自分でやって駄目だったらって位置付けだと思う。
それってC言語の初歩の初歩じゃん。
自分でやった方がいいと思うし、自分で出来るレベルの問題だよ。
0479goto推奨委員会 ◆oZFvlbPXjs NGNG
>>475
1.解いたよ

#include <stdio.h>
void main(void){
int i, j, k;
int kazu;
char ss[20];
scanf("%d", kazu);
i=0;
j=0;
label0:
if(kazu==0)goto label1;
if(kazu&1){ss[i]='0';}else{ss[i]='1';}
kazu = kazu - (kazu/2);
j++;
goto label0;
label1:
label2:
if(j==-1)goto label3;
putchar(ss[i]);
j = j-1;goto label2;
}label3:
}
0480goto推奨委員会 ◆oZFvlbPXjs NGNG
やべ、下のほうにある
putchar(ss[i]);
は、
putchar(ss[j]);
でお願い。

問題解かしてもらってる立場の分際で
バグ作っちゃったりしてほんとにごめんなさい。
0481デフォルトの名無しさんNGNG
>>480
あなた問題欲しいの?
ならf2cをVC6.0で使えるようにして、ついでに公開してよ。
0482デフォルトの名無しさんNGNG
この課題、難しすぎて解けません!!
どなたか難問に挑戦してくださいますか?
課題:標準入力からテキストファイルを読み込み、 行を短い順に出力しなさい。 但し、行は最大 80 文字とし、 80 文字以上の行は先頭 80 文字だけの行として取扱い 出力し、空行は出力しないで下さい。
また、同じ長さの行は入力した順番に出しなさい。
レポートでは、実行例として、作成したソースプログラムをプログラムに入力 した出力と、ttp://www.bbn.com/index.html のホームページのソースを入力した結果を先頭 5 行、最後の 5 行を示しなさい。
なお、取り扱える行数は実行時のコンピュータのメモリーのサイズのみに依存 しなければなりません。 勝手な上限を設けてはいけません。
0483goto推奨委員会 ◆oZFvlbPXjs NGNG
>>475さん
問2もできました。
どうぞ

void main(void){
int i;
char *p;
char ss[80];
i=0;
scanf("%s", ss);
p=ss;
label0:
if(*p==0)goto label1;
i++;p++;
goto label0;
label1:
printf("%d個文字があったよ\n", i);}
0484デフォルトの名無しさんNGNG
何回もおんなじ物投下すんなぼけ
0485482NGNG
実行例

入力
あいうえお
あい
あいう

出力
あい
あいう
あいうえお
0486goto推奨委員会 ◆oZFvlbPXjs NGNG
>>481

int main(void)
{
label0:
goto label0;
/*ここまでこれるかは知らんけど*/
return 0;
}
0487482NGNG
ヒント
C++ で行の取得をするには std::istream のメンバ関数である getline メソッ ドを使います。 これは getline(文字配列のポインタ, 文字数, 区切り文字)で呼びます。
ここで、区切り文字が来る前に文字数-1 文字だけ読み込んでしまった時、 std::ios:failbit が ON になってしまいます。
この場合 clear() メソッドでこのビットを OFF にする必要があります。 但し、この clear() メソッドは std::ios:eofbit も OFF にしてしまうので、 注意して使う必要があります。
以下は標準入力から各行を高々 80 文字だけ読み込み出力するプログラムです。
0488482NGNG

#include <iostream>
using std::cin;
using std::cout;
using std::endl;
main(){
char buffer[81];
while(!cin.eof()){
cin.getline(buffer,sizeof(buffer));
cout << buffer << endl;
while((!cin.eof())&&cin.fail()){
cin.clear();
cin.ignore(80,'\n');
}
}
}
これを元にお願いします。


0489goto推奨委員会 ◆oZFvlbPXjs NGNG
goto推奨委員会に入りたい君は名前欄に
goto推奨委員会#goto
と入力。
0490デフォルトの名無しさんNGNG
int main()
{
  goto main;
  return 0;
}

for VC++
0491デフォルトの名無しさんNGNG
>>475
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=265
0492デフォルトの名無しさんNGNG
>>490
?なにこれ?
0493482NGNG
>>491さん
問題といてもらったのは嬉しいんですが・・・
m、s、t、h、Hの時にうまくいきません。
もう少しがんばってください。
あと、もうちょっと簡単に解いてください
0494259NGNG
>453さん
返信がおくれてすいません。
プログラム本当にありがとうございます。
今回色々な人に助けられて、無事に課題を終えることができました。
皆様本当にありがとうございますm(_ _)m
0495デフォルトの名無しさんNGNG
>>482
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=266
0496デフォルトの名無しさんNGNG
構造体の配列について質問です。
構造体の配列を使って以下のように出力するとします

出席番号 名前 点数1 ・・・ 点数N 平均点 評価

メンバには上の全てをくわえ、平均点は点数1〜Nで計算、評価は平均点で考えるとします。
このとき平均点は0を入れて初期化が適当ですが、評価のところには何を入れればよいのでしょうか。
どなたかご教授願います。
0497デフォルトの名無しさんNGNG
「評価は表示等に使われる前に必ず平均点から算出されている」
が保証されているなら、何を入れていてもいい気がする。

もし未評価状態でも表示したいなら、「未評価」な状態を一個定義してそれを設定する
0498496NGNG
今はこんな感じになっています。後は評価が出力されれば課題終了です。
#include<stdio.h>
struct data{int no;
char name[50];
int tensu[2];
double avg;
char gj[5];};
void main(void)
{int i;
char h[5];
struct data ch[]={{101,"名無しさん",{42,12},0,h[0]},
{403,"名無し君",{6,5},0,h[1]},
{404,"名無しちゃん",{60,23},0,h[2]},};
for(i=0;i<3;i++){ch[i].avg=(float)(ch[i].tensu[0]+ch[i].tensu[1])/2;}
printf("番号   氏名    教科1   教科2    平均点  評価\n");
for(i=0;i<4;i++){if(ch[i].avg<=100&&81<=ch[i].avg){h[i]='A';}
              else if(ch[i].avg<=80&&61<=ch[i].avg){h[i]='B';}
              else if(ch[i].avg<=60&&41<=ch[i].avg){h[i]='C';}
else{h[i]='D';}
printf("%d     %s  %d  %d  %d  %.1f  %c\n",ch[i].no,ch[i].name,ch[i].tensu[0],ch[i].tensu[1],ch[i].avg,gaku[i].gj);}
}
0499303NGNG
>>482
俺のは無視か(-_-#)
0500デフォルトの名無しさんNGNG
こちら側も選ぶ権利はある
0501デフォルトの名無しさんNGNG
ワラタ
0502デフォルトの名無しさんNGNG
後からチョロチョロと情報小出しにしておいて文句言うなよ。
>>1より
・後になって問題につけたしをするのはやめましょう。
 解いてもらっている方に失礼になってしまいます。
0503デフォルトの名無しさんNGNG
質問。

後になって解答につけたしをするのはOKですか?
0504デフォルトの名無しさんNGNG
>>503
答えてもらえる確率が下がるだけです.
0505デフォルトの名無しさんNGNG
なんで解答側が答えて"もらう"んだろう....
0506デフォルトの名無しさんNGNG
質問者がわのことだろ、何いってんだ。
0507デフォルトの名無しさんNGNG
何だ、質問者が解答に対して何か付け加えると勘違いしたのか。
正直スマンカッタ
0508デフォルトの名無しさんNGNG
初心者です。
index10.txt、index20.txt、hello30.txt、hogehoge.txtが生成されないの
はなぜですか?お願いします。
#include <iostream.h>

int main() {
int i;
for (i <= 0; i <= 5; i++){
switch ( i ){
case 1:
freopen("index10.txt", "w", stdout);
printf("Hello, World!");
fclose(stdout);
break;
case 2:
freopen("index20.txt", "w", stdout);
printf("Sage, World!");
fclose(stdout);
break;
case 3:
freopen("hello30.txt", "w", stdout);
printf("Hoge, World!");
fclose(stdout);
break;
default:
freopen("hogehoge.txt", "w", stdout);
printf("mogemoge, World!");
fclose(stdout);
break;
}
}
}
0509デフォルトの名無しさんNGNG
>>508
初心者です。ではなくて
ネタです。だよな?
0510デフォルトの名無しさんNGNG
stdout
0511デフォルトの名無しさんNGNG
freopen, fclose, printfを使っておきながらiostream.hとは何事か。
0512マイク ◆yrBrqfF1Ew NGNG
.hは過去の遺物だ。
0513デフォルトの名無しさんNGNG
イオ → イオラ → イオストリーム
0514デフォルトの名無しさんNGNG
タワラ
0515デフォルトの名無しさんNGNG
ポインターの利点ってアドレスにある値を直接操作できるってことでええんですかね?
配列の時にP+1とかって利用できるのが利点なのは後付けなきがするのですが。
0516デフォルトの名無しさんNGNG
オイ→オラオラ→シュトロハイム
0517デフォルトの名無しさんNGNG
>>515
それであってると思うよ。でも、
配列の機能がポインタの機能の後付みたいな物でないか?
0518デフォルトの名無しさんNGNG
すみません
前回こちらに来ましたが、説明不足で答えて頂けなかったので
cpp全体をファイルをうぷしてまいりました

しかし!英語での出題となっております
読める方、、いるのかどうかわかりませんが、よろしくおねがいいたします
拡張子をcppに変更してお使いくださいまし

ttp://f37.aaa.livedoor.jp/~kisiseal/upseal/img/090.lzh

入力用ファイル

ttp://f37.aaa.livedoor.jp/~kisiseal/upseal/img/091.lzh
0519デフォルトの名無しさんNGNG
>>517
サンクス
やっぱり値操作がメインですよね
二行目は多分同じことを言ってるかも?
0520gakuseiNGNG
http://www.iis.u-tokyo.ac.jp/~susaki/c/func1.html
ここなんですけど、事情があって授業を長期間休んでしまったせいで
全く分かりません。
もし宜しければ何方かお願いしますm(_ _)m
問題は1〜5番です

別のスレにも出現していますが勘弁してください^^;
単位が本当にヤバクテ(x_x)
0521デフォルトの名無しさんNGNG
>>518
開けね
つーか>読める方、、いるのかどうかわかりませんが なめすぎ
今のご時世、英会話とまで行かなくともせめて読めなきゃやってられんぞ

>>520
ほとんどが、正常に動作するか確認せよ。と書かれているが…
0522デフォルトの名無しさんNGNG
>520
マルチヤメレ
いろんなスレの人に迷惑がかかるだろがヴォケ

1はそのまま実行するだけ。
2は****の部分をheightにして実行。
3も2と同様に。
4は最初の****のところにheightを、次の****のところにheight,weight,bmi,sweightをいれる。
5は実行するだけ。


…もしかして釣りか?
0523518NGNG
http://f37.aaa.livedoor.jp/~kisiseal/upseal/upload.php

ここの90番91番です
お手数かけてもうしわけありません。

>>521
了解です;
もっと英語勉強しまする

よろしくおねがいしますm(_ _)m
0524デフォルトの名無しさんNGNG
>>520
と、とうだいせいdうぇうか?
0525gakuseiNGNG
>>522
有難うございますm(_ _)m
ネタじゃないです^^;
0526デフォルトの名無しさんNGNG
>>522の補足
5はscanfの行を while( scanf(略) != EOF ){ に変更して最後にも } をつける
0527gakuseiNGNG
有難うございます^^
感謝しますm(_ _)m
0528522NGNG
>526
補足サンクスコ
0529デフォルトの名無しさんNGNG
520 名前:gakusei[] 投稿日:04/11/22 10:01:29
http://www.iis.u-tokyo.ac.jp/~susaki/c/func1.html
ここなんですけど、事情があって授業を長期間休んでしまったせいで
全く分かりません。
もし宜しければ何方かお願いしますm(_ _)m
問題は1〜5番です

別のスレにも出現していますが勘弁してください^^;
単位が本当にヤバクテ(x_x)
0530デフォルトの名無しさんNGNG
またまんこの丸投げか
0531デフォルトの名無しさんNGNG
520は怖くて試せなかった。きっとデ・・・
0532デフォルトの名無しさんNGNG
>518
これホントに宿題か?
0533デフォルトの名無しさんNGNG
>526
普通にwhile(1){ … }でいいと思うんだが
0534518NGNG
宿題ですよー。
いくつかのソースは入力済みです。

InsertTransaction関数だけでもなんとか教えて頂けませんでしょうか・・・
0535デフォルトの名無しさんNGNG
バカ東大生
0536デフォルトの名無しさんNGNG
しーーっ!
0537デフォルトの名無しさんNGNG
東大生で女で入院か・・・・・・ネタで(ry
0538デフォルトの名無しさんNGNG
>>533
問題文は Ctrl+C ではなくCtrl+D を指定してるんだぞ?
0539デフォルトの名無しさんNGNG
バッファがあふれても知らんけど…。
int main(void) {
    double height, weight, bmi, sweight;
    char buf[256];
    while (printf("身長(m)と体重(kg)を入力してください "), fgets(buf, sizeof(buf), stdin)) {
      if (sscanf(buf, "%lf%lf", &height, &weight) != 2)
          continue;
      /* BMIの計算 */
      bmi = bmi_cal(height, weight);
      /* 標準体重の計算 */
      sweight = std_weight(height);
      /* 肥満度の判定 */
      message(height, weight, bmi, sweight);
  }
  return 0;
}
0540デフォルトの名無しさんNGNG
C言語についての課題です。
「50単語程度からなる英文(複数のセンテンスでも可)をファイルから読み込み、その文章中に出現する単語とその頻度を画面表示するプログラムを作成すること。」です。
実行結果が以下のようになるようにお願いします。
ファイルの内容例
Put your hand on a hot stove for a minute, and it seems like an hour.
Sit with a pretty girl for an hour, and it seems like a minute.
That's relativity.
実行結果
Put[1] your[1]hand[1]
on[1]a[4]stove[1]
for[1]minute[2] and[2]
it[2]seems[2] like[2]
an[2]hour[2]Sit[1]
with[1]pretty[1] girl[1]
for[1]That’s[1]relativity[1]
0541デフォルトの名無しさんNGNG
>>540
That と that は同一として扱うのか?
0542デフォルトの名無しさんNGNG
>>540
hotが消えたりforが二回数えられたり、難しすぎて漏れにはわかんないや。
0543デフォルトの名無しさんNGNG
>>541
 別みたいです。
>>542
 すいません。hotが消えてるのと、forを2回数えてるのはミスです^^;
0544デフォルトの名無しさんNGNG
C++言語の課題です
D=v^2sin2θ+Aw(vsinθ)^2
上の式において、D,v,A,wは定数として値を与えられる。このときのθを求める問題です
よろしくお願いします
0545デフォルトの名無しさんNGNG
宿題です。やってみましたが、どうもうまくいきません。誰か教えてください。

以下のような動作をするプログラムを、ビット演算子利用して作成しなさい。
まずキーボードからアルファベット1文字読み込む。
ただし、アルファベット以外の文字が入力された場合は、アルファベットが入力されるまで入力を繰り返す。
そのようにしてキーボードから入力されたアルファベットが大文字なら小文字へ、小文字なら大文字へ変換し、
表示するプログラムを作成しなさい。ただし、変換する部分の処理には必ずビット演算子を使用すること。

注意)
・必ず、入力された文字がアルファベットであるかどうかを判断して、アルファベットが1文字入力されるまで、入力を繰り返すこと。

・C言語には大文字に変換する標準関数toupperや小文字に変換する標準関数が用意されているが、それらを使用してはならない。
■ このスレッドは過去ログ倉庫に格納されています