C/C++の宿題を片付けます 96代目
■ このスレッドは過去ログ倉庫に格納されています
【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
・問題文は、出題されたまま全文を書いてください。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはやめましょう。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。
【質問テンプレ】
[1] 授業単元:
[2] 問題文(含コード&リンク):
[3] 環境
[3.1] OS: (Windows/Linux/等々)
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
[3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
【C 関数検索 man on WWW】 http://www.linux.or.jp/JM/index.html
【過去ログ検索】 http://chomework.sakura.ne.jp/
【wiki】 http://www23.atwiki.jp/homework/
【前スレ】
C/C++の宿題を片付けます 95代目
http://pc11.2ch.net/test/read.cgi/tech/1187944110/
0693デフォルトの名無しさん
2007/10/04(木) 09:51:290694デフォルトの名無しさん
2007/10/04(木) 10:17:28if(n<=0) return a0;
return touhikyusu(a0, r, n-1)*r+a0;
}
0695デフォルトの名無しさん
2007/10/04(木) 11:27:50なにそれ?
0696デフォルトの名無しさん
2007/10/04(木) 12:37:01double function(double a, double r, int n){
return n==1 ? a : a*pow(r,n-1) + function(a, r, n-1);
}
0697デフォルトの名無しさん
2007/10/04(木) 12:48:16普通初項というとa1じゃないか?
それ以外は良いと思うが
0698 ◆JdKMFRogo6
2007/10/04(木) 15:10:08[2] 問題文(含コード&リンク):
処理の前後で clock() の値を保存しておき、その差をとり、プログラムの実行時間を求めよ。
[3] 環境
[3.1] OS: Windows XP
[3.2] VC
[3.3] 言語: C++
[4] 期限: 2007/10/7まで。
[5] その他の制限:
include<time.h>を用いる。
int t1, t2, t0;
t1 =?
処理
t2 =?
t0 = t2 - t1;
結果表示
制限というかイメージ的には、こんな感じかなぁとは思うのですが式がわかりませんでした。
大変お手数ですが、よろしくお願いいたします
0699デフォルトの名無しさん
2007/10/04(木) 15:43:28処理の内容は何でもいいの?
0700デフォルトの名無しさん
2007/10/04(木) 17:42:53[2] 問題文(含コード&リンク):
ディレクトリの中身のファイル20個をランダムに取り出して違うディレクトリに5個にコピーしろ。
[3] 環境
[3.1] OS: LINUX
[3.2] VC
[3.3] 言語: C++
[4] 期限: 2007/10/7まで。
[5] その他の制限:
今ホームディレクトリにいて
そこにdataというディレクトリがありも、またdata2というディレクトリがあるとします。
dataというディレクトリに1.dat〜20.datのファイルがあるとします。
そのディレクトリのファイルをランダムに5個取り出して、data2にいれてください。
data/〜.datのファイルの数20の番号からランダムに番号を選んでそのファイルを
〜とするべきなのかな?
0701デフォルトの名無しさん
2007/10/04(木) 18:11:54LinuxなのにVC?
0702デフォルトの名無しさん
2007/10/04(木) 18:14:19上のを。
0703デフォルトの名無しさん
2007/10/04(木) 18:20:100704デフォルトの名無しさん
2007/10/04(木) 18:36:04きちんと環境を書かないと解答なんてできないよ。
0705デフォルトの名無しさん
2007/10/04(木) 18:52:58681です
六用の部分は省いても良いです。
0706デフォルトの名無しさん
2007/10/04(木) 19:09:39例えば目の不自由な人を「めくら」と言う等、本人の人格に関わりの無い身体的特徴をあげつらって侮辱するのは差別ではないか、って事らしい。
チビとかデブも駄目らしい。
ハゲは「髪の不自由な人」、チビは「身長の不自由な人」、デブは「脂肪燃焼の不自由な人」って言うそうな。
0707デフォルトの名無しさん
2007/10/04(木) 19:41:06[2] 問題文(含コード&リンク):
ディレクトリの中身のファイル20個をランダムに
取り出して違うディレクトリに5個にコピーしなさい。
[3] 環境
[3.1] OS: LINUX
[3.2] (gcc )
[3.3] 言語: C
[4] 期限: 10月5日の朝までにできてればいいです。
[5] その他の制限:
今ホームディレクトリにいて
そこにdataというディレクトリがありも、またdata2というディレクトリがあるとします。
dataというディレクトリに1.dat〜20.datのファイルがあるとします。
そのディレクトリのファイルをランダムに5個取り出して、data2にいれてください。
data/〜.datのファイルの数20の番号からランダムに番号を選んでそのファイルを
〜とするべきなのかな?
0708デフォルトの名無しさん
2007/10/04(木) 22:48:21[2] 問題文(含コード&リンク):
α=1/1+10^(pKa-pH)。pKaとpHを引数として
αを求める関数を書け。
[3] 環境
[3.1] OS: windowsXP
[3.3] 言語:C
[4] 期限:来週月曜日まで。
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
ありません。
累乗計算がうまくいきません。
よろしくおねがいします。
0709デフォルトの名無しさん
2007/10/04(木) 22:52:320710デフォルトの名無しさん
2007/10/04(木) 23:01:38#include <math.h>
int main(void)
{
double pka,ph,a;
printf("Enter pKa.\n");
printf("pka="); scanf("%f",&pka);
printf("\nEnter pH.\n");
printf("pH="); scanf("%f",&ph);
a=pow(10,pka-ph);
printf("degree of disassociation=%f\n",1/(1+a));
return 0;
}
こんな感じでやってみたのですが・・・。
powは小数の累乗でもできますか?
0711デフォルトの名無しさん
2007/10/04(木) 23:03:05powは
double pow(double,double)
だから小数を使う。この意味は習ってないのかな
0712デフォルトの名無しさん
2007/10/04(木) 23:05:290713デフォルトの名無しさん
2007/10/04(木) 23:08:10double f(double pKa, double pH) { return 1 / ( 1 + pow(10, pKa - pH)); }
0714デフォルトの名無しさん
2007/10/04(木) 23:10:09%fの方がもともと正式
0715デフォルトの名無しさん
2007/10/04(木) 23:23:00#include<stdio.h>
#include<stdlib.h>
int main(void)
{
char filelist[20][FILENAME_MAX], *work[20], *temp;
char cmd[FILENAME_MAX*2+10];
int i, index;
for(i=0;i<20;i++){
sprintf(filelist[i], "data/%d.dat", i+1);
work[i]=filelist[i];
}
for(i=1;i<20;i++){
index=rand()%(i+1);
temp=work[i];
work[i]=work[index];
work[index]=temp;
}
for(i=0;i<5;i++){
sprintf(cmd, "cp -p %s data2/", work[i]);
system(cmd);
}
return 0;
}
0716デフォルトの名無しさん
2007/10/04(木) 23:33:390717デフォルトの名無しさん
2007/10/04(木) 23:45:21こういうこと?
for(i=0;i<5;i++){
index=(rand()%(20-i))+i;
temp=work[i];
work[i]=work[index];
work[index]=temp;
}
0718デフォルトの名無しさん
2007/10/04(木) 23:53:39index = rand() % (20 - i);
sprintf(cmd, "cp -p %s data2/", work[index]);
system(cmd);
work[index] = work[19-i];
}
0719デフォルトの名無しさん
2007/10/05(金) 00:12:37[2] 問題文(含コード&リンク):
#include <stdio.h>
int main(void)
{
int no = 1;
int sum = 0;
do{
sum = sum + no;
no = no + 1;
}while (no <= 5);
printf("1から5までを足した値は%dです。\n", sum);
return (0);
}
問題 上のプログラムに対し、変数noとsumの値がどのように変わっていくのか
が、わかるように、その過程が出力されるようにプログラムを変更する。
ヒント)ループ処理の中で変数noとsumの出力処理を行う
[3] 環境
[3.1] OS: Windows
[3.3] 言語: C言語
[4] 期限:10月5日午前1時30分まで
0720デフォルトの名無しさん
2007/10/05(金) 00:41:27sum = sum + no;
no = no + 1;
printf("no:[%d] sum:[%d]\n", no, sum); // この行を追加する
}while (no <= 5);
0721デフォルトの名無しさん
2007/10/05(金) 00:49:47>double pka,ph,a;
>printf("pka="); scanf("%f",&pka);
>printf("pH="); scanf("%f",&ph);
本当に上手くいってないのは累乗計算なのかな?
0722デフォルトの名無しさん
2007/10/05(金) 00:51:11no = no + 1;
の前の行に入れた方がよくね?
というかこれforでよくね?
まだ習ってないのか?
0723デフォルトの名無しさん
2007/10/05(金) 01:01:38はじめに表示したら、最終的なnoの値が表示されない。
2か所にprintfとかめんどくせ
こんな理由でそこにしてみた。
ってか、この課題をわざわざ書き込みするってことは授業を全く聞いていないレベルだと思うし
0724 ◆JdKMFRogo6
2007/10/05(金) 01:29:24遅れてすいません。処理の内容は何でもかまいません。
プログラムの時間を計ってみろとの課題なので四則演算でも何でもOKです。
0725デフォルトの名無しさん
2007/10/05(金) 09:38:30[2] 問題文(含コード&リンク):
数当てゲームの作成
ルール1
1〜9の数字を重複しない4桁の数字を使う。
4桁の数字は毎回違う数字となるように工夫すること(rand()とsrand()を適切に
利用)
ルール2
数字と桁位置が一致する場合をHIT。
ルール3
数字は一致するが桁が一致しいない場合をBlow
ルール4
4HIT0BLOWで終了
ルール5
12回以内に見つけなければYOU lostと表示し終了
12回以内に見つけかればYOU winと表示し終了
よろしくお願いいたします。
[3] 環境
[3.1] OS: (Windows)
[3.2] コンパイラ名とバージョン: (borand 5.5)
[3.3] 言語: (C++)
0726デフォルトの名無しさん
2007/10/05(金) 10:56:112314とか?
HITは4321てことでいいのかな
0727デフォルトの名無しさん
2007/10/05(金) 11:03:020728デフォルトの名無しさん
2007/10/05(金) 11:37:16ぐぐりますた
てっきり12個乱数を発生させて、それぞれ1桁目が1、2桁目が2、……て判定すんのかと思ってた
てか既存のゲームだったんですね
0729デフォルトの名無しさん
2007/10/05(金) 11:52:301レスに縮めたから、適当だけど
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{
int i;
char num[] = "123456789", ans[4], input[5], *result[] = {"win", "lost"};
srand(time(NULL));
for(i=0; i<4; i++) {
int index = rand() % (9-i);
ans[i] = num[index];
num[index] = num[8-i];
}
for(i=0; i<12; i++) {
int j, k, hit = 0, blow = 0;
fgets(input, sizeof input, stdin);
while(getchar()!='\n');
for(j=0; j<4; j++) if(input[j]==ans[j]) hit++;
for(j=0; j<4; j++) {
for(k=0; k<4; k++) if(input[j]==ans[k] && j!=k) blow++;
}
printf("HIT:%d BLOW:%d\n", hit, blow);
if(hit==4) break;
}
printf("You %s!\n", result[i==12]);
return 0;
}
0730デフォルトの名無しさん
2007/10/05(金) 14:09:361レスに抑えようとして失敗した上、効率悪そうな当てる方
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5014.txt
0731デフォルトの名無しさん
2007/10/05(金) 16:23:02#include <math.h>
int main() {
int i, j, k, aim[4], input, hit, blow;
srand((unsigned)time(NULL));
for (i = 0; i < 4; ) {
aim[i] = 1 + rand() % 9;
for (j = 0; j < i; j++)
if (aim[i] == aim[j]) break;
i += i == j ? 1 : 0;
}
for (i = 0; i < 12; i++) {
hit = 0, blow = 0;
do {
printf("%2d:", i + 1);
if (scanf("%d", &input) != 1)
while (getchar() != '\n');
} while(input < 1000 || 9999 < input);
for (j = 0; j < 4; j++)
if (aim[j] == input / (int)pow(10, 3 - j) % 10) hit++;
for (j = 0; j < 4; j++)
for (k = 0; k < 4; k++)
if (j != k && aim[j] == input / (int)pow(10, 3 - k) % 10) blow++;
printf(" %dHIT%dBLOW\n", hit, blow);
if (4 <= hit) break;
}
printf("YOU %s (%d%d%d%d)\n", i < 12 ? "win" : "lost", aim[0], aim[1], aim[2], aim[3]);
}
0732731
2007/10/05(金) 16:26:08intでやってみた、というだけ。作る前に>>129さんのを見てしまったので、
似た感じのつくりになってしまったと思います。
4桁の数字を作る、ってだけでも色々方法がありそうです。
*/
0733デフォルトの名無しさん
2007/10/05(金) 17:26:46[2] 問題文:1,2項の行列とベクトルx[3](成分(1,5,10))の積と表示
[3] 環境
[3.1] OS: Windows XP
[3.2] コンパイラ名とバージョン: gcc 3.4
[3.3] 言語: C
[4] 期限: ([2007年10月6日まで]
[5] その他の制限: for,if,caseなどは習いました。
お願いします。
0734デフォルトの名無しさん
2007/10/05(金) 17:48:441,2項ってなんだ?
0735デフォルトの名無しさん
2007/10/05(金) 18:11:40[2] 問題文:十進数で1000から10000までの値を36進数で示し、コンマ区切りでファイルresult.txtに格納するファイルを作成せよ。
ただし、1桁の数値は、0〜9、A〜Zであらわすものとする。
[3] 環境
[3.1] OS: Windows XP
[3.2] コンパイラ名とバージョン: Wedit Win32 Vertion4.0
[3.3] 言語: C
[4] 期限: ([2007年10月5日 20:00まで]
[5] その他の制限: ポインタや構造体ファイルの入出力は習いました。
よろしくお願いします。
0736デフォルトの名無しさん
2007/10/05(金) 18:37:20#include <stdio.h>
static const char *str = "0123456789abcdefghijklmnopqrstuvwxyz";
int main(void){
FILE *fp = fopen("result.txt", "w");
int n;
char buf[16], *p, *q;
if(!fp)
return 1;
do{
scanf("%d", &n);
}while(n < 1000 || n > 10000);
for(p = buf; n/36 != 0; p++, n /= 36)
*p = str[n%36];
*p = str[n];
for(q = buf; p != q; p--)
fprintf(fp, "%c,", *p);
fprintf(fp, "%c\n", *p);
fclose(fp);
return 0;
}
0737デフォルトの名無しさん
2007/10/05(金) 18:51:38助かりました!
もうひとつ質問してもよろしいでしょうか?
0738デフォルトの名無しさん
2007/10/05(金) 18:55:59それ以外のことなら、こちらに。
"C言語なら俺に聞け(入門篇) Part 19"
http://pc11.2ch.net/test/read.cgi/tech/1190342593/
0739デフォルトの名無しさん
2007/10/05(金) 19:05:56この問題もお願いします。
問題文
下記のように2つの浮動小数点の値と名前の100人分のデータがコンマで区切られてファイルinput.datに入っている。
10.2,Hnako 18.2,Taro …、…、…… }100人分
以下の型の構造体のメンバ、Xおよびnameに上記を代入し、Xの大きいほうから並び替えて表示するプログラムを作成せよ。
typedef struct{
double X;
}B;
typedef struct{
char name[20];
B*b;
}A;
ただし、並び替えて表示する関数は、次のプロトタイプ形式で、すでに作成されいるものとする。
void sortA(A*);
0740デフォルトの名無しさん
2007/10/05(金) 19:39:060741デフォルトの名無しさん
2007/10/05(金) 19:46:18他の偉い人に任せる。
0742デフォルトの名無しさん
2007/10/05(金) 19:47:00のんびりやってたらなんか明らかにタイミング逃しますた
とりあえずせっかく書いたので載せとく。hitとblowの判定が多少簡単なはず。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(){
int num[9] = {0} , cnt , hit = 0 , blow = 0 , r , i;
char input , *result = "Lose...";
srand(time(NULL));
for (i=0; i<4; i++){
r = rand()%(9-i);
if (!num[r]) num[r] = i + 1;
else num[9 - num[r]] = i + 1;
}
for (cnt=0; cnt<12; cnt++,hit=blow=0){
putchar('>');
for (i=0; i<4; i++){
input = (char)getchar() - '1';
if (input < 0 || input >=9) {i--;continue;}
if (num[input] == i + 1) hit++;
else if (num[input]) blow++;
}
while (getchar() != '\n');
printf(" %dHIT , %dBLOW\n" , hit , blow);
if (hit == 4) {result = "Win!"; break;}
}
printf("You %s" , result);
return 0;
}
0743デフォルトの名無しさん
2007/10/05(金) 19:57:24[2] 問題文(含コード&リンク):英単語(英文字で最大15文字)を*が出るまで
読み込み、読み込んだ英単語の文字数を計算して、文字数分布(同一文字数の出現回数)
を表示するプログラム
ただし、文字数を計算するプログラムでは文字列を格納する領域は配列を使用する。
配列の要素を指定するときは、配列と添え字をしようしないで
配列の先頭番地を記憶するポインタ変数を宣言して使用する。
[3] 環境
[3.1] OS:UNIX
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C言語
[4] 期限:10月8日まで
[5] その他の制限:制限は特にないです
よろしくお願いします。
0744デフォルトの名無しさん
2007/10/05(金) 20:36:16Cの勉強がてら書いてみた.
#include <stdio.h>
#include <string.h>
#define itemof(array, index) (*(array+index))
#define MAXSTRLEN 15
#define SCANFORMAT(n) _SCANFORMAT(n)
#define _SCANFORMAT(n) "%"#n"s"
int main(void){
int i, strlentable[MAXSTRLEN];
char str[MAXSTRLEN+1];
for(i=0;i<MAXSTRLEN;i++)
itemof(strlentable, i-1)=0;
while(1){
scanf(SCANFORMAT(MAXSTRLEN), str);
if(strcmp(str,"*")==0)
break;
else{
int _strlen=strlen(str);
itemof(strlentable, _strlen-1)++;
}
}
for(i=0;i<MAXSTRLEN;i++)
printf("count of strlen==%d =%d\n", i, itemof(strlentable, i-1));
}
0745デフォルトの名無しさん
2007/10/05(金) 20:37:02まてよ
もしかして,strlen()はつかっちゃいけないのか?
0746デフォルトの名無しさん
2007/10/05(金) 20:46:19ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5015.c
0747デフォルトの名無しさん
2007/10/05(金) 20:58:08おかげで理解しながら分かりました。
>>745さん
strlen()は使っても大丈夫です。
0748デフォルトの名無しさん
2007/10/05(金) 21:01:36使っても良かったか
ところでバグを見つけた.
最後のprintf()は
> printf("count of strlen==%d =%d\n", i, itemof(strlentable, i-1));
printf("count of strlen==%d =%d\n", i, itemof(strlentable, i));
だ
0749デフォルトの名無しさん
2007/10/05(金) 21:23:08[2] 問題文:3つの引数として渡された要素数を持つdouble型の3次元配列と同等の領域(3次元配列表記でアクセスできるdouble型値の格納領域)を確保し、
その領域の先頭アドレスを返す関数。
[3] 環境
[3.1] OS: Windows XP
[3.2] コンパイラ名とバージョン: Wedit Win32 Vertion4.0
[3.3] 言語: C
[4] 期限: ([2007年10月6日]
[5] その他の制限:特に無し
よろしくお願いします。
0750デフォルトの名無しさん
2007/10/05(金) 21:39:39一応聞くけど,標準のmalloc()関数は使っていいの?
0751デフォルトの名無しさん
2007/10/05(金) 21:56:45大丈夫だと思います。
0752デフォルトの名無しさん
2007/10/05(金) 22:37:58malloc()使えるなら
double * _(int r1, int r2, int r3){ return (0<r1 && 0<r2 && 0<r3) ? (double*)malloc(sizeof(double)*r1*r2*r3) : NULL; }
でいいと思われる.
0753デフォルトの名無しさん
2007/10/05(金) 22:41:51詳しくお願いします。
0754デフォルトの名無しさん
2007/10/05(金) 22:50:140755デフォルトの名無しさん
2007/10/05(金) 22:53:060756デフォルトの名無しさん
2007/10/05(金) 22:58:17助かりました。
0757デフォルトの名無しさん
2007/10/05(金) 23:17:51[1] 授業単元: C言語
[2] 問題文:キューに関する問題。8つのマスに0〜9の数字を入力。-入力で最古のデータ削除。
先頭の数字hpが後から入れた数字tpに追い越されないこと。8つのマスがフル、または空になったら警告。
[3] 環境
[3.1] OS: Windows XP
[3.2] コンパイラ名とバージョン: Cpad for Borland C++ Compiler ver.2.31
[3.3] 言語: C
[4] 期限: ([2007年10月09日]
[5] その他の制限:特に無し
すみませんがもしよろしければ、よろしくお願いします。
0758デフォルトの名無しさん
2007/10/06(土) 00:04:50>先頭の数字hpが後から入れた数字tpに追い越されないこと。
この条件の意味が今ひとつ分からんのだけど。
「追い越されない」って何ぞ?
普通にキューなら良いの?
0759デフォルトの名無しさん
2007/10/06(土) 00:44:26double ***d3_alloc(int x, int y, int z){
double ***ret=NULL, **index=NULL, *data=NULL;
int i;
data=malloc(sizeof(*data)*x*y*z);
index=malloc(sizeof(*index)*y*z);
ret=malloc(sizeof(*ret)*z);
if(data==NULL || index==NULL || ret==NULL){
free(data);
free(index);
free(ret);
return NULL;
}
for(i=0;i<y*z;i++) index[i]=&data[i*x];
for(i=0;i<z;i++) ret[i]=&index[i*y];
return ret;
}
void d3_free(double ***d3){
free(d3[0][0]);
free(d3[0]);
free(d3);
}
0760デフォルトの名無しさん
2007/10/06(土) 01:22:50レス無かったんで単なるキュー
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5018.txt
0761デフォルトの名無しさん
2007/10/06(土) 07:47:36[2] 問題文:2つの3次元ベクトル(a[3],b[3])を作り、その内積を計算/表示する
(ベクトル成分(a[0]etc.)はscanfで読み込むこと)
(内積(a[0]*b[0]+a[1]*b[1]+a[2]*b[2])はfor文で計算)
[3] 環境
[3.1] OS: Windows XP
[3.2] コンパイラ名とバージョン: gcc 3.4
[3.3] 言語: C
[4] 期限: ([2007年10月7日まで]
[5] その他の制限: for,if,caseなどは習いました。
0762デフォルトの名無しさん
2007/10/06(土) 07:57:33int main(void)
{
double a[3], b[3], ip = 0;
int i;
printf("ベクトルaを入力:");
for(i=0; i<3; i++) {
scanf("%lf", a + i);
}
printf("ベクトルbを入力:");
for(i=0; i<3; i++) {
scanf("%lf", b + i);
}
for(i=0; i<3; i++) ip += a[i] * b[i];
printf("ベクトルaとベクトルbの内積は%f\n", ip);
return 0;
}
0763デフォルトの名無しさん
2007/10/06(土) 08:48:21ipってなんですか?
0764デフォルトの名無しさん
2007/10/06(土) 08:50:52自分で内積求めろって言っといてそれはないだろ
0765デフォルトの名無しさん
2007/10/06(土) 09:36:42本当に知らないんです。習ってませんし、教科書にも載ってませんでした。
でも課題で出たんです。
ipを別の文字に置き換えてはできないんですか?
家でプログラミングできないので確かめられません。
すみません。
エディタの体験版とってもできないんです
0766デフォルトの名無しさん
2007/10/06(土) 09:53:540767デフォルトの名無しさん
2007/10/06(土) 10:04:020768デフォルトの名無しさん
2007/10/06(土) 10:07:21結論だけ言えば、他の文字でも良い。
ipは「変数」または「オート変数」と呼ぶ。
まずは、「変数、C言語」あたりをキーワードにして、
検索かけてみると良いんじゃないかな?
0769デフォルトの名無しさん
2007/10/06(土) 10:14:23ipって必要なんですか?
if,if-else,switch,while,do-while,forしか習ってません。あとint,double,char。
0770デフォルトの名無しさん
2007/10/06(土) 10:24:48単純に、習ったことの理解が出来てないだけだから復習しなさい
ipはinner productの略かな、変数名だから別にcでもdでも何でも良い
0772デフォルトの名無しさん
2007/10/06(土) 10:45:020773デフォルトの名無しさん
2007/10/06(土) 11:06:47自分についたレスくらい嫁
0774デフォルトの名無しさん
2007/10/06(土) 11:12:26734 名前:デフォルトの名無しさん[sage] 投稿日:2007/10/05(金) 17:48:44
1,2項の行列で15分くらい悩んでる。
1,2項ってなんだ?
0775デフォルトの名無しさん
2007/10/06(土) 23:23:56瑞ウの数は再帰使bヲば簡単に解けb驍セ。
bナも負数が全く演ッそうにない=B
1の補数なら反転するだけだから分かるけど、
普通は2の補数だもんなぁ。
まぁ恐らく先生もそこまで(負数の事)考慮してないんだろうけどさ…。
0776デフォルトの名無しさん
2007/10/06(土) 23:34:040777デフォルトの名無しさん
2007/10/06(土) 23:56:04いまいちCの仕組み分かってないんだ。
0778デフォルトの名無しさん
2007/10/06(土) 23:59:000779デフォルトの名無しさん
2007/10/07(日) 00:04:14一応途中まで書いたものうpしました。
どうしても2の補数が表示出来そうにありません。
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5020.txt
0780デフォルトの名無しさん
2007/10/07(日) 00:06:34int main(void)
{
int i, n;
n = 2 + 8 + 32 + 128 + 512 + 2048;
printf("\n%d = ", n);
for(i=sizeof(int)*4; i>=0; i--) putchar((n >> i) & 1 ? '1' : '0');
n = -1;
printf("\n%d = ", n);
for(i=sizeof(int)*4; i>=0; i--) putchar((n >> i) & 1 ? '1' : '0');
return 0;
}
こんな感じ>ビットシフト
0781デフォルトの名無しさん
2007/10/07(日) 00:42:40[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5021.txt
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 10月8日22:00まで
[5] その他の制限: 特にありません。
0782デフォルトの名無しさん
2007/10/07(日) 00:51:54書き方が悪いというか、独り言にしか見えなかった。
テンプレをすべて埋めろ!書き漏らすな!とまでは言わないけど、
居酒屋での愚痴じゃないんだからもう少しまともに書いた方がいいよ
#include<stdio.h>
int main(){
unsigned int i;
int n = -1;
for(i=1<<(sizeof(int)*8-1);i>0;i>>=1)printf("%d",!!(n&i));
return 0;
}
ビットシフトと言われて思いついてみたのを書いたけど、>>780の方がスマートで凹む orz
0783デフォルトの名無しさん
2007/10/07(日) 01:03:23申し訳ない、仰るとおりです。
今後気をつけます。
シフト演算子なんてものがあったんですね。
こんな簡単に書けるとは…。勉強になります。
0784デフォルトの名無しさん
2007/10/07(日) 01:13:06が1になることって保障されてます?
0785デフォルトの名無しさん
2007/10/07(日) 01:23:450786デフォルトの名無しさん
2007/10/07(日) 01:25:110787デフォルトの名無しさん
2007/10/07(日) 01:28:050788デフォルトの名無しさん
2007/10/07(日) 01:30:560789デフォルトの名無しさん
2007/10/07(日) 01:37:220790デフォルトの名無しさん
2007/10/07(日) 01:58:52void preorder(NodePointer node){
printf("%c ",node->key);
if(node->left != tail) preorder(node->left);
if(node->right != tail) preorder(node->right);
}
void inorder(NodePointer node){
if(node->left != tail) inorder(node->left);
printf("%c ",node->key);
if(node->right != tail) inorder(node->right);
}
void postorder(NodePointer node){
if(node->left != tail) postorder(node->left);
if(node->right != tail) postorder(node->right);
printf("%c ",node->key);
}
0791デフォルトの名無しさん
2007/10/07(日) 08:43:40用語を習ってなくて自分で調べても意味不明なのでよろしくお願いします
DBMSを使用せずに、Web掲示板をプログラミングすることを考える。
記事番号、記事タイトル、投稿日付時刻、投稿者名、投稿内容(全角400文字以内)をひとつのレコードとして保存管理するものとする。
【問題】
�@このレコードをプレーンテキストで保存するとしたとき、そのファイルの書式を設計せよ。
具体的にはレコードセパレータと、フィールドセパレータを何にするかを書き、どうしてそう設計するかを説明せよ。
�A具体的な例を3レコード示せ。
0792デフォルトの名無しさん
2007/10/07(日) 08:46:06期限は10月8日17:00までです
スミマセン
■ このスレッドは過去ログ倉庫に格納されています