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

C/C++の宿題片付けます 152代目

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2011/08/01(月) 21:33:15.15
あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他の発言はスルーの方向で。

【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。 >>2以降にあります。
・問題文は、出題されたまま全文を書いてください。
・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。
0232デフォルトの名無しさん2011/08/16(火) 19:49:37.56
そりゃあ自分で解く気なんてサラサラ無いんだから問題もロクに見てないわけで
0233デフォルトの名無しさん2011/08/16(火) 20:26:23.77
▒ってなんだよ
0234デフォルトの名無しさん2011/08/16(火) 20:36:42.39
>>230
ρをひとつでも-∞にするとf(x,y)が∞になって問題にならない気がするんだが
本当に条件はそれだけか
0235デフォルトの名無しさん2011/08/16(火) 20:38:17.57
解く気は無いが数式が読めない
数式エディタで作って画像貼ったほうがよさげ
0236デフォルトの名無しさん2011/08/16(火) 21:47:35.96
>>234
条件はこれだけですが…
0237デフォルトの名無しさん2011/08/16(火) 21:50:34.57
>>231
プログラムの概略がほしかったので数式までは載せませんでした
すいません。
>>225 さんのを参考にして作ってみます。
ありがとうございました。
0238デフォルトの名無しさん2011/08/16(火) 22:41:31.20
なんでもいいからC言語でログファイル出力してるサンプルがほしいけど
いまいち検索にひっかからない
検索の仕方がわるいのかな
0239デフォルトの名無しさん2011/08/16(火) 22:45:35.84
何でもいい の条件がわからない
C言語 ファイル出力で検索したらいいんじゃないの
0240デフォルトの名無しさん2011/08/17(水) 03:25:32.15
>>238
Unix なら syslog とか syslogd で検索したら?
0241デフォルトの名無しさん2011/08/17(水) 12:01:13.14
fopenしてfwriteしてfcloseすればいんじゃね?
バッファは知らん
0242デフォルトの名無しさん2011/08/18(木) 09:54:36.67
[1] 授業単元:DirectXプログラミング
[2] 問題文(含コード&リンク): dxsdk_feb2007でインベーダーゲームを作る。
  まずタイトル画面の表示スペースキーが押されたらゲーム開始。
  自機が消滅→ゲームオーバー画面表示
  敵が消滅→クリア画面の表示
[3] 環境
 [3.1] OS: (Windows7)
 [3.2] コンパイラ名とバージョン: Visual Studio 2008
 [3.3] 言語: C
[4] 期限: ([2011年8月20日13:00まで]
[5] その他の制限:DirectXを習いはじめの初心者です。コメントお願いします。
0243デフォルトの名無しさん2011/08/18(木) 11:28:10.13
>>242
ほんとうにそれでいいのか?
0244デフォルトの名無しさん2011/08/18(木) 15:09:36.60
>>243
大丈夫です。よろしくお願いします。
0245 忍法帖【Lv=37,xxxPT】 2011/08/18(木) 16:38:22.02
>>238
logger
0246デフォルトの名無しさん2011/08/18(木) 23:13:29.77
242はまだですか?
0247デフォルトの名無しさん2011/08/19(金) 02:43:00.68
これはたぶん他力だと間に合わないかもわからんから自力でやることを推奨するよ
0248デフォルトの名無しさん2011/08/19(金) 05:12:19.38
1日で催促?
0249デフォルトの名無しさん2011/08/19(金) 07:25:41.88
>>246のせいでやる気なくした。何様?
0250デフォルトの名無しさん2011/08/19(金) 11:29:47.68
242ってスペース押したらランダムで自機か敵機が消滅するんだよね
0251デフォルトの名無しさん2011/08/19(金) 11:52:48.23
一般的なインベーダーゲームと考えるのが妥当だろ
また例の100%説明されないと何もできない人か
0252デフォルトの名無しさん2011/08/19(金) 12:04:39.92
>>251
顧客との調整みたいにレビューでフィードバックがあるわけじゃないのに
仕様が提示されてない部分もエスパーしてできるとかおまえすごいな
2chにいないで仕事しろよ
0253デフォルトの名無しさん2011/08/19(金) 13:08:12.37
インベーダーゲーム作ってっていわれたら
>>250のような案を出すのかw
0254デフォルトの名無しさん2011/08/19(金) 13:32:11.35
>>252
「インベーダーゲーム」から、ランダムではなく自機と敵機で撃ち合って弾に当たったら消滅する
という程度の仕様を想像するのはエスパーでもなんでもない
むしろできない人がいたらびっくりする・・・びっくりしたよ

もちろん正確にはそれでいいかどうかの確認は必要だが
0255デフォルトの名無しさん2011/08/19(金) 13:46:05.80
名称だけ言われたらそのゲームのオーソドックスな仕様を想定するんだろうけど
期間短いしお願いする側は横柄だし仕様は書かれてないし>>250は皮肉だろうしお前らマジレスだし
とりあえず問題文だけ満たせればいいと思うよ
0256デフォルトの名無しさん2011/08/19(金) 13:49:20.75
インベーダーゲームって言ったら、
自機は左右にしか動けず弾は画面内に一発のみとか
敵数がでたまにUFOが横切って落とすとボーナスが貰えたりとか
シールドがあって敵以外にも自分の攻撃でも壊れたりとか
敵の弾が一列下から出てるおかげで名古屋撃ちができたりするあのゲームだろ
これほどはっきりした仕様はないな
俺は作らないけど。
0257デフォルトの名無しさん2011/08/19(金) 14:05:10.62
金出さずに曖昧な仕様で依頼する奴は、完成品みてそれじゃヤダと簡単に言い出す。
0258デフォルトの名無しさん2011/08/19(金) 14:18:47.24
あれはアセンブラで作られてたのか?
もしかしたらBASICかもなw
Cじゃ多分無理じゃね?
0259デフォルトの名無しさん2011/08/19(金) 14:25:35.09
>>258
QZ師が書いてくれるだろ
てか多分今コーディング中だろから
暫く待ったら?
0260デフォルトの名無しさん2011/08/19(金) 15:13:59.34
>>249>>248
242ですが246は自分ではないです
0261デフォルトの名無しさん2011/08/19(金) 15:17:56.62
>>250言葉足らずですいませんでした。
>>256の方の説明であってます。
0262デフォルトの名無しさん2011/08/19(金) 17:41:40.15
よほどの暇人じゃない限り2〜3日とか無理だろ
じゃあ、これからdirectx勉強するわ
0263 忍法帖【Lv=38,xxxPT】 2011/08/19(金) 17:46:13.84
僕の課題が出せないと言うことは僕が単位を取るのに不利になるということ
なんですよ、そこのとこ分かってて話してます?
0264デフォルトの名無しさん2011/08/19(金) 18:02:24.67
C++ & OpenGLなら勉強がてらに作るかもしれん、それじゃ駄目?
0265デフォルトの名無しさん2011/08/19(金) 21:40:17.39
ネタでいいならつくるぞw
0266デフォルトの名無しさん2011/08/20(土) 16:24:02.18
>>264>>265
よろしくお願いします。
一応自分でも取り組んでみます。
0267デフォルトの名無しさん2011/08/20(土) 17:48:24.17
期限過ぎちゃってるやん
0268デフォルトの名無しさん2011/08/20(土) 18:18:28.78
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):http://i.imgur.com/pWn1j.jpg

[3] 環境
 [3.1] OS: Windows7
 [3.2] コンパイラ名とバージョン: visual studio 2008
 [3.3] 言語: C++
[4] 期限: 2011年8月27日
[5] その他の制限: 画像にあるとおりです。お願いします。
0269デフォルトの名無しさん2011/08/20(土) 18:20:49.32
>>268
画像落ちたな
0270デフォルトの名無しさん2011/08/20(土) 18:34:21.85
反転させるコマの位置をキーボード入力させる、とな
0271デフォルトの名無しさん2011/08/20(土) 18:43:14.44
配列変数を使って、オセロの盤を表示するプログラムを作る。
2次元配列の要素をマスに見立て、先手と後手が交互にコマを置く。
ただし、コマを反転させる処理をプログラムすることはせず、キーボードから手動入力させるものとする。
ただ表示するだけのプログラムである。このプログラムを作成し、プログラムリストと実行結果の例を提出せよ。

ヒント
a) マスの数は8×8とし、配列変数の値を0で初期化しておく。 例) int ban[8][8] = {0}
b) 先手と後手を判定するためには、次の処理を用いる。
player = 2 - loop % 2; //loop : ターン数、 player : 先手は1、後手は2
c) 配列要素 ban[x][y]には、何もなければ0、先手は1、後手は2が入る。
d) 画面上の表示を消去する方法は下記を参照。
#include <stdio.h>
#include <stdlib.h> // system("ds") 命令のために追加
・・・
clrscr(); //画面の表示を消去(clear screen の略)

c)の配列要素の値に応じて、□、○、●を表示する。
プレイヤーのコマの位置をキーボードから入力させ、配列要素に代入する。
反転させるコマの位置をキーボードから入力させ、配列要素に代入する。
異常を繰り返す。(while による無限ループ)
0272デフォルトの名無しさん2011/08/20(土) 18:55:39.87
system("ds")ってなんだよsystem("cls")だよ間違えちゃった恥ずかしい
0273デフォルトの名無しさん2011/08/20(土) 19:16:00.39
コマ反転の仕様をもっとくわしく
0274デフォルトの名無しさん2011/08/20(土) 19:47:30.45
プログラムで判断させる段階じゃないから自分で指定しろってことだろ
0275デフォルトの名無しさん2011/08/20(土) 21:08:15.11
>>271
先手と後手との切り替えはコマンド入力?
0276デフォルトの名無しさん2011/08/21(日) 01:41:56.54
#include <stdio.h>
#include <stdlib.h>

int loop = 1;int ban[8][8] = {0};void (*p)(int);

void input(int);void hanten(int);void hanten_end(int);void end(int);

void print_ban(void){
  int i,j;
  printf(" 12345678\n");
  for(i=0; i<8; i++){
    printf("%c", '1'+i);
    for(j=0; j<8; j++){
      printf("%s", ban[i][j]==0 ? "□" : ban[i][j]==1 ? "○" : "●");
    }printf("\n");
  }
}
void end(int player) { printf("ゲーム終了\n"); }
void hanten(int player){
  int in[2], input_yn;
  printf("反転\nPLAYER %d:", player);
  printf("位置(1..8)を入力してください: ");
  scanf("%d %d", &in[0], &in[1]);
  if(1<= in[0] && in[0] <= 8 && 1<= in[1] && in[1] <= 8 &&
   ban[in[0]-1][in[1]-1] != 0 && ban[in[0]-1][in[1]-1] != player){
    ban[in[0]-1][in[1]-1] = player;
  }
  *p = hanten_end;
  fflush(stdin);
}
0277デフォルトの名無しさん2011/08/21(日) 01:42:36.94
void hanten_end(int player){
  int in, i,j, flag_game_end;
  printf("反転\nPLAYER %d:", player);
  printf("反転終了?(Y/N): ");
  scanf("%c", &in);
  if(in== 'Y'){
    loop++;
    for(i=0; i<8; i++){
      for(j=0; j<8; j++){
        if(ban[j][i]==0){ *p = input; return; }
      }
    }
    *p = end;
  }else{ *p = hanten; }
  fflush(stdin);
}
void input(int player){
  int in[2];
  printf("%d回目\nPLAYER %d:", loop, player);
  printf("位置(1..8)を入力してください: ");
  scanf("%d %d", &in[0], &in[1]);
  if(1<= in[0] && in[0] <= 8 && 1<= in[1] && in[1] <= 8 && ban[in[0]-1][in[1]-1] == 0){
    ban[in[0]-1][in[1]-1] = player;
    *p = hanten;
  }fflush(stdin);
}
void update_screen(void) { system("cls"); print_ban(); }
int main(void) {
  *p = input;
  while(1) { update_screen(); (*p)(2-loop%2); }
  return 0;
}
0278デフォルトの名無しさん2011/08/21(日) 23:19:35.10
この美しいとはいえないコードは何者?誰かの回答ってこと?
0279デフォルトの名無しさん2011/08/22(月) 00:48:46.10
[1] 授業単元:アルゴリズム講義及び実習I
[2] 問題文(含コード&リンク):分割統治法を用いて、n人の集団の中から、所持金が頭から数えてm番目の人を見つける
名前、所持金、順番(m)を入力し、所持金がm番目の人の名前を出力する
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限: 2011年8月31日
[5] その他の制限:
0280デフォルトの名無しさん2011/08/22(月) 00:55:55.49
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>

//対象者の名前と所持金と表す構造体
typedef struct {
char name[10]; //対象者の名前
int money; //所持金
} OBJECT;
0281デフォルトの名無しさん2011/08/22(月) 02:04:47.74
//関数プロトタイプ宣言

/*
* main 関数
* 引数: arg1 - コマンドライン引数の数
* : arg2 - コマンドライン引数配列
* 戻値: 成功した場合 0 を, 失敗した場合 0 以外を返す
*/
int main(int arg1, char *arg2[]){

OBJECT* array; //数値格納用の配列
int order; //探索する順番 (order番目の所持金を探索する)
int num; //数値の数
int size; //配列の初期サイズ
int i; //ループカウンタ

num = 0; //数値の初期化
size = 512; //配列の初期化
0282デフォルトの名無しさん2011/08/22(月) 02:08:27.24
//数値格納用の配列を確保
array = (OBJECT *)malloc(sizeof(OBJECT) * size);

// 数値データの読み込み
//array[num]にはOBJECT型の構造体が格納される

scanf("%d\n", &order);
0283デフォルトの名無しさん2011/08/22(月) 02:13:28.96
while (scanf("%s %d\n", array[num].name, &array[num].money) != EOF) {
num++;

// 配列のサイズが足りない場合, 2倍に拡大
if (num == size) {
size *= 2;
array = (OBJECT *)realloc(array, sizeof(OBJECT) * size);
}
}
0284デフォルトの名無しさん2011/08/22(月) 02:22:57.42
printf("problem====================\n");
printf("%d\n", order);

for(i=0; i < num; i++){
printf("%s %d\n", array[i].name, array[i].money);
}

///////////////////////////////////////////////////////////////////
/// ///
/// 作成部分 ///
/// ///
///////////////////////////////////////////////////////////////////



free(array);

return 0;
}
0285デフォルトの名無しさん2011/08/22(月) 02:37:38.74
入力データは標準データとし、
data.txtの中身は
4
11a001 10
11a001 60
11a001 50
11a001 80
11a001 100
11a001 40
0286デフォルトの名無しさん2011/08/22(月) 02:41:46.71
4
11a001 10
11a002 60
11a003 50
11a004 80
11a005 100
11a006 40

間違えました。
よろしくお願いします。
0287デフォルトの名無しさん2011/08/23(火) 01:21:43.54
>>2
0288デフォルトの名無しさん2011/08/23(火) 02:43:01.93
該当者が複数人いるときの処理が不明だけどクイックソートかマージソートしてから
添え字mで参照すれば分割統治法使ったことになるよね

そういう問題?
0289デフォルトの名無しさん2011/08/23(火) 03:16:25.19
いや、全体をソートしきってしまう必要はない
分割統治を適用する際に、m番目が分割したどちら側にあるかは決定できるので
m番目が無い側についてはソートを続ける必要がない
0290デフォルトの名無しさん2011/08/23(火) 14:13:52.39
[1] 授業単元:アルゴリズム
[2] 問題文(含コード&リンク):ナップサック問題 下記のプログラムを改良して、できるだけ荷物の価値の合計が大きく速いものにしてください。
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:
 [3.3] 言語:C
[4] 期限:8月31日
[5] その他の制限:mondai(int n)を必ず使用すること
0291デフォルトの名無しさん2011/08/23(火) 14:16:25.45
//ナップザック問題(総当りによる解法)
#include <stdio.h>
#include <time.h>

#define N 20 //荷物の数
#define MAX 30 //荷物の重量の上限

struct OBJECT {//荷物1〜Nの価値と重量
int value;//荷物の価値
int weight;//荷物の重量
} a[N+1];
static int b[N+2];//荷物の選択を保持(1:選択 0:選択せず)、荷物iを選択したときはb[i]=1
static int max[N+1];//価値の合計が最大となる荷物の選択(1:選択 0:選択せず)

void mondai(int n){//荷物n個の問題を作成する関数
int i;
int rnd=13;//乱数の初期値

for(i=1;i<=n;i++){//荷物の価値、重量の設定(荷物N個分)
rnd=(rnd*109+1021)%32768;//擬似乱数の生成
a[i].value = rnd%19+5;//価値
rnd=(rnd*109+1021)%32768;//擬似乱数の生成
a[i].weight = rnd%11+2;//重量
}
}
0292デフォルトの名無しさん2011/08/23(火) 14:17:34.68
int change(int i){//荷物iの選択を変更(荷物の選択を変更するときに使用する)
if(b[i]==1){//荷物iが選択されていたとき
b[i]=0;//荷物iを除く
return change(i+1);//荷物i+1の選択を変更
}
else{//荷物iが選択されていないとき
b[i]=1;//荷物iを選択
return 0;
}
}

int main(void){
int i;
int k=1;//荷物1〜kまで調査済み
int value;//選択された荷物の価値の合計
int weight;//選択された荷物の重量の合計
int maxvalue=0;//荷物の価値の最大値
int maxweight=0;//荷物の価値が最大のときの荷物の重量
clock_t oldTime, newTime, elapseTime;//時間計測用

//データの準備(問題の作成)
mondai(N);//荷物N個の問題を作成

for(i=1;i<=N;i++){//荷物の価値、重さを表示(荷物N個分)
printf("荷物%2d:価値=%3d 重さ=%2d\n",i,a[i].value,a[i].weight);
}
printf("\n");
0293デフォルトの名無しさん2011/08/23(火) 14:18:02.54
//問題を解く
oldTime=clock();//計算時間計測開始

while(1){//総当り
value=0;//価値の初期化
weight=0;//重量の初期化
for(i=1;i<=N;i++){//価値と重量の合計を計算
if(b[i]==1){//荷物iが選択されていたら加算する
value += a[i].value;//価値の計算
weight += a[i].weight;//重量の計算
}

}

//解の候補が見つかったときの処理
if((value > maxvalue) && (weight <= MAX)){//価値の合計が最大価値を超えたら
maxvalue=value;//最大価値の保存(更新)
maxweight=weight;//最大価値となるときの重量を保存(更新)
for(i=1;i<=N;i++)//最大価値となる荷物の選択を保存(更新)
max[i]=b[i];
//途中経過を表示(最大価値が更新されたら表示)
printf(" 価値=%3d 重さ=%2d ",maxvalue,maxweight);//最大価値と重量を表示)
for(i=1;i<N+1;i++)//荷物の選択状況を表示(1:選択 0:選択せず)
printf("%1d",b[i]);
printf("\n");
}

change(1);//新しい荷物の選択方法に変える
0294デフォルトの名無しさん2011/08/23(火) 14:18:41.12
//途中経過表示
if(b[k+1]==1){//荷物1からkまで調査が終了したことを表示
printf("荷物1〜%dまでの全ての組み合わせについて計算終了。",k);
k++;
newTime=clock();//現在の時間を計測
elapseTime=newTime-oldTime;//経過時間を求める
//経過時間の表示
printf("経過時間=%.2f(sec)\n",(float)elapseTime/(float)CLOCKS_PER_SEC);
}
if(b[N+1]==1)//全ての組み合わせについて調査したら終了
break;
}
newTime=clock();//終了時刻を計測

//結果の表示
printf("\n(回答)\n");
printf("価値の合計が最大となるのは以下の荷物を選択した場合\n");
for(i=1;i<=N;i++)//最大価値となる荷物の選択を表示
if(max[i]==1)
printf("%2d ",i);
//最大価値とそのときの重量を表示
printf("\n価値=%3d 重さ=%2d\n",maxvalue,maxweight);
//計算時間の表示
elapseTime=newTime-oldTime;//計算時間を求める
printf("計算時間=%.2f(sec)\n",(float)elapseTime/(float)CLOCKS_PER_SEC);

return 0;
}
0295デフォルトの名無しさん2011/08/23(火) 15:23:36.34
あぷろだ使った方がよかったと思う
0296デフォルトの名無しさん2011/08/23(火) 16:10:01.37
すみません
やり方がわからなくて
0297デフォルトの名無しさん2011/08/23(火) 17:56:31.90
知恵袋に解答ついてたよ
0298デフォルトの名無しさん2011/08/23(火) 20:00:24.91
本当ですか?
URL貼ってもらっていいですか?
0299デフォルトの名無しさん2011/08/23(火) 23:53:32.24
>>289
確かにそうだな勉強になった
0300デフォルトの名無しさん2011/08/25(木) 03:21:10.72
>279 イメージ
※arrayと同じサイズの workを準備
1) array[m-1] を array[0] と入れ替え
2) for(i=1; i<num; ++i){
array[i]がarray[0]より小さいものはwork[]の先頭の方へ、
array[i]がarray[0]以上のものはwork[]の後ろの方へ、
順番に格納していく
}
3) ループ終了後、workの空き箇所が[m-1]だったらarray[0]が答え <処理終了>
そうでなければ、array[0]をworkの空き箇所[last]に格納し、work全部をarrayにコピーして、1)からを繰り返す[※]
※ただし、
work[] の空き箇所[last]が[m-1]より小さかった場合は、そこから後ろ部分[last〜num-1]だけやり直せば良いし、
[m-1]より大きかった場合は、そこから前部分[0〜last]だけやり直せば良いが、
面倒くさいのでまるっとやり直すw
0301デフォルトの名無しさん2011/08/25(木) 14:59:46.07
ifの判定について質問です。
このコードで、どうしてaとbが一致しないんでしょうか?
値を吐いてみると、255と-1ですが、コンピュータ的には
1111 1111 と 1111 1111 の比較にならないんでしょうか?
http://codepad.org/bfUt7vxs

char main(void)
{
unsigned char a; /*符号無し*/
char b; /*符号有り*/
char c;

a = 0xFF; /*1バイト全てに1を立てる*/
b = 0xFF; /*1バイト全てに1を立てる*/
c = 0; /*ifの結果確認*/

if(a == b)
{
c = 1;
}
else
{
c = 0;
}
printf("%d \n", c);
printf("%d \n", a);
printf("%d \n", b);
return c;

}
0302デフォルトの名無しさん2011/08/25(木) 15:30:02.03
printf("%d \n", a); /* (1) */
printf("%d \n", b); /* (2) */

printf に渡ってるのは int に拡張された値
(1) は 元値 unsigned で 255 ⇒ int に拡張で 255 を渡す
(2) は 元値 signed で -1 ⇒  int に拡張で -1 を渡す
03033012011/08/25(木) 16:18:33.39
>>302
すみません、printfの使い方も問題ありました。
要は、cが1で返ってくるか、0で返ってくるかなんですが、どうして0で返ってくるのかが疑問でした。
そこで、aとbを表示してみたら、値が違ったと言う流れです。

ifの判定で、符号有り型の0xFFと符号無し型の0xFFが異なるということは
ifって2進数で比較しているわけではないんでしょうか?
符号の有無は違いますが、バイトサイズとビットの並びも同じだと思っていました。
0304デフォルトの名無しさん2011/08/25(木) 16:22:31.43
馬鹿にするな
C文は文章なので、文脈があるんだよ
文脈が嫌いならアセンブラでも使ってくれ
03053012011/08/25(木) 16:24:45.44
>>304
?
0306デフォルトの名無しさん2011/08/25(木) 16:59:40.41
if((char)a == (char)b) c = 1; else c = 0;
printf("%d \n", c);
if((unsigned char)a == (unsigned char)b) c = 1; else c = 0;
printf("%d \n", c);
if((int)a == (int)b) c = 1; else c = 0;
printf("%d \n", c);
if((unsigned int)a == (unsigned int)b) c = 1; else c = 0;
printf("%d \n", c);
if(a == b) c = 1; else c = 0;
printf("%d \n", c);
0307 ◆QZaw55cn4c 2011/08/25(木) 18:54:49.53
>>301
>>302 のとおりですが、対応する規格を挙げておきましょう。

キーワード: Integer Promotion あるいは昔は Integral Promotion と呼ばれていました。
ISO/IEC 9899:1999 6.3.1.1.2

printf() のような可変長引数関数やプロトタイプのない関数の引数に対する暗黙の変換については、
ISO/IEC 9899:1999 6.5.2.2.6
0308デフォルトの名無しさん2011/08/25(木) 22:32:45.15
>>307
printf() ってfomat 文字列に従って型を決めるだろ、暗黙の変換なんて有ったっけ?
0309デフォルトの名無しさん2011/08/25(木) 22:37:21.37
>>308
○○だったっけ?
っていう奴は嫌いだ

それが口癖の知人らがクズだから
同類な気がしてならない
0310 ◆QZaw55cn4c 2011/08/25(木) 22:53:40.11
>>308
printf() も可変長引数の関数に過ぎない以上、引数 format をみて解析する関数内部に到達する以前に、後続の可変長引数が integral promotion を受けます(ちょっと不正確ないいまわしですが)。
printf("%f", ...) の %f が double 型に対応しており、また、printf() の変換文字に float 型のためのものが存在しない理由を考えてみてください。

最近、
http://hibari.2ch.net/test/read.cgi/tech/1308749241/906
を発端とした大論争?が、このレスの属するスレとその次スレhttp://hibari.2ch.net/test/read.cgi/tech/1311089619/でありました。
うんこよばわりされてげんなりしました、まあべつにいいですけど。
0311デフォルトの名無しさん2011/08/25(木) 23:25:54.55
>>309
なんという言いがかり
0312デフォルトの名無しさん2011/08/25(木) 23:52:57.37
>>301
#include <stdio.h>
int main(void){
unsigned char a = 0xFF;
char b = 0xFF;
printf("%x %x %d¥n", a, b, a == b);
return a == b;
}

実行結果:
ff ffffffff 0
0313デフォルトの名無しさん2011/08/26(金) 04:13:11.62
char,unsigned charの要素間の順序は定義されていない。
処理系の裁定でintにキャストして扱われる。
0314デフォルトの名無しさん2011/08/26(金) 05:18:53.33
てs
0315!ninjya2011/08/26(金) 13:17:42.20
てす
0316デフォルトの名無しさん2011/08/28(日) 01:22:29.13
>279
st=0; ed=num;
do{
f=st; l=ed;
t=array[st]; array[st]=array[order-1]; array[order-1]=t;
for(i=st+1; i<ed; ++i){
if(array[st].money>array[i].money) work[f++]=array[i];
else work[--l]=array[i];
}
work[f]=array[st];
for(j=st; j<ed; ++j) array[j]=work[j];
if(order-1<=f) ed=f;
else st=f;
}while(f!=order-1);
printf("%2d %s %d\n", order-1, array[order-1].name, array[order-1].money);
0317デフォルトの名無しさん2011/08/30(火) 11:49:37.56
唐突にすいません。ちょっと困っています。
今ニュートン法やSD法などを勉強しながらjavaを使ったプログラムを勉強しているのですが、そういった解析に関するプログラムについての質問も答えられる方はおられますか?
もしよければ力をかしていただきたいです。
0318 ◆QZaw55cn4c 2011/08/30(火) 12:33:36.18
>>317
ニュートン法は方程式の解法の一つであることはわかるのですが、SD 法ってなんですか?心理学の方面の SD 法のことですか?
あと java なら http://hibari.2ch.net/test/read.cgi/tech/1312958339/
0319 ◆tsGpSwX8mo 2011/08/30(火) 12:38:20.54
http://www.google.co.jp/search?client=opera&rls=ja&q=%E3%83%8B%E3%83%A5%E3%83%BC%E3%83%88%E3%83%B3%E6%B3%95+SD&sourceid=opera&ie=utf-8&oe=utf-8&channel=suggest
0320デフォルトの名無しさん2011/08/30(火) 12:52:20.47
>>318
ごめんなさいcかjavaでプログラムしたいんです。
抜けていました。
SD法というのも解析の方法としてあるものになります。
書き込み慣れていないため返すの遅くなりました。
申し訳ありません。
0321デフォルトの名無しさん2011/08/30(火) 13:00:28.34
>>320
>>1読んだ?
ここは宿題スレだよ
0322デフォルトの名無しさん2011/08/30(火) 13:16:13.38
>>321
わかりました。
機会見て問題書かせていただきます。
0323デフォルトの名無しさん2011/08/30(火) 16:10:21.14
ナップザック問題の解答を教えていただけませんか。
0324デフォルトの名無しさん2011/08/30(火) 16:34:38.37
>>323
アルゴリズムの指定は?
0325デフォルトの名無しさん2011/08/30(火) 16:46:42.22
>>290
と同じです。
03262902011/08/30(火) 16:54:03.93
>>325さん
>>290の質問したの自分やけどプログラムかぶらないようにしてくださいね
0327デフォルトの名無しさん2011/08/30(火) 17:17:18.39
>>290さん
それは分かってます
0328デフォルトの名無しさん2011/08/30(火) 18:28:24.97
gaだったら解いてもいいけど、違うよな?
0329デフォルトの名無しさん2011/08/30(火) 19:01:19.93
>>328さん
すいません。gaって何ですか?
0330デフォルトの名無しさん2011/08/30(火) 19:13:46.51
わからんのなら、多分違うな
0331デフォルトの名無しさん2011/08/31(水) 01:29:24.05
nurupo
■ このスレッドは過去ログ倉庫に格納されています