C/C++の宿題片付けま ..
302:デフォルトの名無しさん
09/05/26 23:42:15
>>291
#include <stdio.h>
#include <stdlib.h>
typedef struct tag_LINT{
int sz_array;
int* value;
} LINT;
LINT* create_lint(int keta){ // size:桁
LINT* lint = (LINT*)malloc(sizeof(LINT));
lint->sz_array = keta / 4 + 1;
lint->value = (int*)calloc( sizeof(int), lint->sz_array);
return lint;
}
LINT* copy_lint(LINT* lint){
LINT* copy = (LINT*)malloc(sizeof(LINT));
copy->sz_array = lint->sz_array;
copy->value = (int*)calloc( sizeof(int), lint->sz_array);
return copy;
}
LINT* mul_lint_int(LINT* l_num, int r_num){
int carry = 0;
//for (int i=l_num->sz_array-1; i>=0; i--){
for (int i=0; i < l_num->sz_array; i++){
int tmp = l_num->value[i] * r_num + carry;
l_num->value[i] = tmp % 10000;
carry = tmp / 10000;
}
return l_num;
}
>>303に続く
303:デフォルトの名無しさん
09/05/26 23:44:20
>>302の続き
void print_lint(LINT* l_num){
for (int i=l_num->sz_array-1; i>=0; i--){
printf("%04d", l_num->value[i]);
}
printf("\n");
}
int main(void){
LINT* n = create_lint(70); // 53!≒4.27*10^69
n->value[0] = 1;
for (int i=1; i<=53; i++){
mul_lint_int(n, i);
printf("%2d!= ", i);
print_lint(n);
}
return 0;
}
リロード忘れてて>>297で答えてたなorz
でもとりあえずw
304:デフォルトの名無しさん
09/05/26 23:50:43
+ ;
* ☆_+
: , xヾ:、__,..-‐‐:、、,へ.........._
く '´::::::::::::::::ヽ
/0:::::::::::::::::::::::', free議論が始まる前にf逃げて〜!!!
= {o:::::::::(;´Д`):::}
':,:::::::::::つ:::::::つ
= ヽ、__;;;;::/
し"~(__)
305:294=302=303
09/05/27 00:09:48
>>304 スマソw
>>302-303の修正
1. // size:桁 -> 消し忘れ
2. copy_lint関数 -> 使ってないから消して
3. 追加
LINT* delete_lint(LINT* lint){
free(lint->value);
free(lint);
}
4. 変更
main関数のreturn前に
delete_lint(n);
を追加
5. 出力部分で先頭部分を空白にするならfor文を
bool f=true;
for (int i=l_num->sz_array-1; i>=0; i--){
if (f && (0!=l_num->value[i])) f=false;
printf( (f? " ": "%04d"), l_num->value[i]);
}
に変更
306:デフォルトの名無しさん
09/05/27 00:13:43
【質問テンプレ】
[1] 授業単元:C言語
[2]問題1 テキストファイルにある文字列を空白で区切って一行ごとに表示する
例 I have a pen とテキストファイルにかかれていたらほかのファイルに
I
have
a
pen
と表示する
問題2 問題1で1行ごとに表示した文字列の4行目の文字列をほかのファイルにコピーする
例の場合はpenをコピーし、また別のファイルにpenと出力させる。
問題3 問題1で作った文字列で区切る物を利用してアルファベット、スペース、数字の数を数えるプログラム
例 as 123 rtd xxとファイルに入力されていたらアルファベットは3こ、数字は2こ、スペースは3個と表示
1,2,3はそれぞれ別のプログラムですが2,3では1のものを利用します。
[3] 環境
[3.1] OS: Windows
[3.2] VisualC++
[3.3] 言語: C
[4] 期限:5月29日まで
307:デフォルトの名無しさん
09/05/27 01:23:07
[1] 授業単元: C++演習
[2] 問題文(含コード&リンク):
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: Visual C++
[3.3] 言語: C++
[4] 期限: 27日まで
[5] その他の制限:vectorを習ったばかりです
308:デフォルトの名無しさん
09/05/27 01:53:29
>>306
問題1--------------------
#include <stdio.h>
int main(void)
{
int c, last;
for (; (c = getchar()) != EOF; ) {
if (c == ' ')
if (last == ' ') ;
else putchar('\n');
else
putchar(c);
last = c;
}
return 0;
}
309:デフォルトの名無しさん
09/05/27 01:54:38
>>306
問題2--------------------
#include <stdio.h>
#include <string.h>
#define MAXBUF 1000
int main(void)
{
unsigned char buf[MAXBUF];
int count = 0, continued = 0;
while (fgets(buf, sizeof(buf), stdin) != NULL) {
if (!continued) count++;
if (count == 4)
fputs(buf, stdout);
if (strlen(buf) == MAXBUF - 1 && buf[MAXBUF - 2] != '\n')
continued = 1;
else
continued = 0;
}
return 0;
}
310:デフォルトの名無しさん
09/05/27 01:55:22
>>306
問題3--------------------
#include <stdio.h>
#include <ctype.h>
int main(void)
{
int c;
int found_digit = 0, found_alpha = 0;
int numeric_count = 0, alpha_count = 0, line_count = 0;
while((c = getchar()) != EOF) {
if (c == '\n') {
line_count++;
if (found_digit) numeric_count++;
if (found_alpha) alpha_count++;
found_digit = 0;
found_alpha = 0;
}
if (isdigit(c)) found_digit = 1;
if (isalpha(c)) found_alpha = 1;
}
printf("アルファベットは%d個、数字は%d個、空白は%d個です\n",
alpha_count, numeric_count, line_count - 1);
return 0;
}
311:307の間違い
09/05/27 01:56:20
URLリンク(kansai2channeler.hp.infoseek.co.jp)
312:デフォルトの名無しさん
09/05/27 02:00:58
[1] 授業単元:C言語演習
[2] 問題文(含コード&リンク):
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 6月初旬
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
URLリンク(kansai2channeler.hp.infoseek.co.jp)
現在できているプログラムですが、ツーペアの判定が上手くいきません。どなたか改善をお願いします。
313:デフォルトの名無しさん
09/05/27 02:07:23
>>306
URLリンク(kansai2channeler.hp.infoseek.co.jp)
URLリンク(kansai2channeler.hp.infoseek.co.jp)
URLリンク(kansai2channeler.hp.infoseek.co.jp)
314: ◆Xf1zvf6ius
09/05/27 02:51:52
[1] 授業単元:C++
[2] 問題文(含コード&リンク):
URLリンク(kansai2channeler.hp.infoseek.co.jp)
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS:XP
[3.2] textpad
[3.3] 言語: C++
[4] 期限: 5月末
よろしくお願いします。
315:馬路
09/05/27 03:30:09
お願いします。
【授業】:プログラミング(C++)
【問題文】:
@以下のプログラムを実行した際,戻り値として何が表示されるか。
#include <iostream>
int main()
{
int a,d,e;
a = 10;
d = a ==10;
e = a < 10;
cout << e <<"\t"<< d <<endl;
}
Aa=10,b=3,c=4とすると、c>aかつc>bの戻り値、c>aまたはc>bの戻り値を出力するプログラムを作成せよ。
BAのプログラムを実行した際,戻り値として何が表示されるか。
【期限】:09.05.27 12:00
316:デフォルトの名無しさん
09/05/27 04:11:24
>>315
>>301
317:デフォルトの名無しさん
09/05/27 04:23:45
>>314
URLリンク(kansai2channeler.hp.infoseek.co.jp)
問題文以上に余計な関数とか書いたから邪魔なら省いてくれ
318:307の間違い
09/05/27 04:36:18
>>298 再帰とか2分木とか考えてる暇がないのには理由がある、役不足。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
319:デフォルトの名無しさん
09/05/27 05:32:23
[1] 授業単元:プログラミング入門C++
[2] 問題文(含コード&リンク):
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS:XP
[3.2] Turbo C++
[3.3] 言語: C++
[4] 期限: 今日18時まで
かなり初歩だと思いますがよろしくお願いいたします。
320:デフォルトの名無しさん
09/05/27 07:17:32
>>319
#include <iostream>
using namespace std;
int passMinutes(const int start, const int end) { return end - start; }
int main()
{
const int MIN_INADAY = 24*60;
int h1, m1, h2, m2;
cout << "開始時間(0-23):"; cin >> h1;
cout << "開始分(0-59):"; cin >> m1;
cout << "終了時間(0-23):"; cin >> h2;
cout << "終了時間(0-59):"; cin >> m2;
// 入力は省略。h1:m2 > h2:m2 の場合、h2:m2は翌日の時間だと判断する
// endは27:00等の入力も受け付けるが、startは、00:00〜23:59の範囲に丸められる
int start = h1*60+m1;
int end = h2*60+m2;
if(start < 0) {
start = 0;
h1 = 0;
m1 = 0;
} else if(start >= MIN_INADAY) {
start = MIN_INADAY - 1;
h1 = 23;
m1 = 59;
}
int tm = (start <= end) ? passMinutes(start, end) : passMinutes(start, MIN_INADAY) + passMinutes(0, end);
cout << h1 << "時" << m1 << "分から" << h2 << "時" << m2 << "分までの時間" << endl;
cout << (tm / 60) << "時間" << (tm % 60) << "分です" << endl;
return 0;
}
321:デフォルトの名無しさん
09/05/27 07:24:17
>>319 ごめ。endが負の数になる場合のチェックを入れ忘れてた。
#include <iostream>
using namespace std;
int passMinutes(const int start, const int end) { return end - start; }
int main()
{
const int MIN_INADAY = 24*60;
int h1, m1, h2, m2;
cout << "開始時間(0-23):"; cin >> h1;
cout << "開始分(0-59):"; cin >> m1;
cout << "終了時間(0-23):"; cin >> h2;
cout << "終了時間(0-59):"; cin >> m2;
// 入力は省略。h1:m2 > h2:m2 の場合、h2:m2は翌日の時間だと判断する
// startは、00:00〜23:59の範囲に丸められるがendは最小値だけが00:00に丸められる。
int start = h1*60+m1;
int end = h2*60+m2;
if(start < 0) {
start = h1 = m1 = 0;
} else if(start >= MIN_INADAY) {
start = MIN_INADAY - 1;
h1 = 23;
m1 = 59;
}
if(end < 0) { end = h2 = m2 = 0; }
int tm = (start <= end) ? passMinutes(start, end) : passMinutes(start, MIN_INADAY) + passMinutes(0, end);
cout << h1 << "時" << m1 << "分から" << h2 << "時" << m2 << "分までの時間" << endl;
cout << (tm / 60) << "時間" << (tm % 60) << "分です" << endl;
return 0;
}
322:デフォルトの名無しさん
09/05/27 07:51:14
>>306
>>313 訂正
URLリンク(kansai2channeler.hp.infoseek.co.jp)
URLリンク(kansai2channeler.hp.infoseek.co.jp)
URLリンク(kansai2channeler.hp.infoseek.co.jp)
0〜9、A〜Z、a〜z以外の ( # ! などの対策を追加
323:デフォルトの名無しさん
09/05/27 09:18:12
>>312
ワンペアの判定結果を使う。
ツーペア判定関数の引数に、最初に見つけたワンペアカードを追加する。
ツーペア判定関数は、ワンペア以降から二組目のセットを見つけ、あればそのカード番号を返す。
ワンペアがなければ、そもそも呼ぶ必要もなさそう。
324: ◆UlBEcxSSxE
09/05/27 09:58:29
[1] 授業単元:プログラミング入門A
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS:Ubuntu Linux 8.
[3.2] コンパイラ名とバージョン: gcc 4.2
[3.3] 言語: C
[4] 期限: 5月29日17:00
[5] その他の制限: アップしたファイルに詳しく書いてあります。
いろいろやってみたのですが難しいです。再帰版はいろいろ調べてみて
何とかなるような気もするのですが、非再帰版はどうやったらいいのか
見当がつかず、あと2日で両方は無理そうです。よろしくお願いします。
325:デフォルトの名無しさん
09/05/27 10:04:19
すみません。 急ぎで知りたいことがあります。
unsigned int 型の数字が、ランダムで生成されて
すでに生成済みか、未生成かを知りたいです。
高速で省メモリにするにはどうしたらいいですか?
326:デフォルトの名無しさん
09/05/27 10:14:29
r(0), r(1), r(2), ... みたいに自然数からの関数rを使って「乱数列」を与える
ことができて、さらにrの逆関数が作れれば簡単。でもそんな乱数列は
あるのかなあ。
そうでなければ、生成した乱数を適当な集合を表すデータ構造(ハッシュか
何か)に突っ込んでおくという愚直な方法しか思いつかないや。でもこれだと
省メモリにはならないかも。
327:325
09/05/27 10:15:59
数字はたくさんあり、メモリに保存するとしたら数ギガになる場合がしりたいです。
メモリはたかだか30Mの使用で処理したいです。
328:デフォルトの名無しさん
09/05/27 10:16:03
>>325
スレ違い
ダブらない乱数を発生させたい(それはもう乱数じゃない)なら
つスレリンク(tech板)l50
そうでないなら
【初心者歓迎】C/C++室 Ver.65【環境依存OK】
つスレリンク(tech板)l50
329:デフォルトの名無しさん
09/05/27 10:35:10
>>325
30M*8bit=240M=240,000,000 MAX
330:デフォルトの名無しさん
09/05/27 10:37:29
>>326
ランダムの数字って言うのは、すでにハッシュ値(CRC,SHA)のことなんです。
質問のため言い換えました。
重複ファイルや重複URLを検出したいのですがいい方法ないかなとおもいました。
ググたところ、パトリシア トライ、ダブル配列あたりが使えそうなのでこのあたりでいってみます。
331:デフォルトの名無しさん
09/05/27 11:41:58
bitデータの2分木で、子がある1、子がない0として記録しておけばかなり縮む。探索は木の左からと決める。
一次元の配列に格納したらデータの更新が難しいが。 追加する部分以降を移動しなければいけない。
332:デフォルトの名無しさん
09/05/27 14:07:44
お願いします。
授業単元ソフトウェア製作実習
osソラリス
コンパイラ gcc
言語 c
制限 台形の面積を求めるのに(上底+下底)*高さ/2を使ってください
。できればいかにも初心者が書いたようなプログラムにしてくれる
と助かります。
高さhが2で上底aと下底bが次のような4つの合計を求めるプログラムをfor文をつかって作成せよ。
台形(1)a=0b=2^2h=2面積=
台形(2)a=2^2b=4^2h=2面積=
台形(3)a=4^2b=6^2h=2面積=
台形(4)a=6^2b=8^2h=2面積=
四つの台形の面積の合計=
以上でお願いします。
333:デフォルトの名無しさん
09/05/27 15:01:30
>>43
334:デフォルトの名無しさん
09/05/27 15:22:54
>>332
URLリンク(kansai2channeler.hp.infoseek.co.jp)
こんなんで良い? ちなみに解の妥当性までは確認してない
335:デフォルトの名無しさん
09/05/27 15:46:51
>>320>>321
ありがとうございました!
336:初心者
09/05/27 15:48:34
C++で
#include <iostream.h>
main()
{
int a=10,b=3,c=2,d=0,e=0;
d = !a && b>c;
e = !a || b>c;
cout << d <<"\t"<< e <<endl;
}
を実行した結果はどうなりますか?
337:デフォルトの名無しさん
09/05/27 15:53:05
実行してみりゃいいだろw
338:デフォルトの名無しさん
09/05/27 15:58:59
>>336
どっちも結果はbool型だと思うぞ。
339:初心者
09/05/27 16:00:09
>>337
いま環境が悪くて実行できないので、すいません。
お願いします。
340:デフォルトの名無しさん
09/05/27 16:02:10
あと1時間後に答えるからそれまで待ってろ
341:デフォルトの名無しさん
09/05/27 16:04:43
>>336
iostream.hとか存在しないからコンパイルエラー
342:デフォルトの名無しさん
09/05/27 16:07:41
>>341
いたた
343:デフォルトの名無しさん
09/05/27 16:09:36
>>341
それはない
環境依存ではあるが古い記述方法であることであるのは事実
intに対して論理否定やboolをintに入れているのはいががなモノかと
main()のintは省略してはならない、ゆえにnon-void関数である
cout, endlは、このスコープで定義されていない
344:初心者
09/05/27 16:19:06
#include <iostream>
int main()
{
int a=10,b=3,c=2,d=0,e=0;
d = !a && b>c;
e = !a || b>c;
cout << d <<"\t"<< e <<endl;
}
となればいいんですか?
結果はどうなるんですか??
345:デフォルトの名無しさん
09/05/27 16:22:45
>>344
ネームスペースがおかしいから、コンパイルエラー。
346:初心者
09/05/27 16:26:15
#include <iostream>
int main()
{
int a=10,b=3,c=2,d=0,e=0;
d = !a && b>c;
e = !a || b>c;
cout << d << e <<endl;
}
ですか?
締切が18:00までなので結果だけでも教えてください。
347:デフォルトの名無しさん
09/05/27 16:26:40
336のままならコンパイルできる環境もあるが、344だとコンパイルできない。
348:デフォルトの名無しさん
09/05/27 16:38:01
>>334
レスありがとうございます。申し訳ありませんが
台形(1)a=0,b=2^2,h=2面積=
台形(2)a=2^2,b=4^2,h=2面積=
台形(3)a=4^2,b=6^2h=2面積=
台形(4)a=6^2,b=8^2h=2面積=
四つの台形の面積の合計=
という表示形式でお願いできないでしょうか?
349:デフォルトの名無しさん
09/05/27 16:45:41
>>46
350: ◆XjTlXLIlH2
09/05/27 16:46:03
>>318
すごく助かりました、ありがとうございました!!
351:334
09/05/27 16:54:43
>>348
ほらよ
URLリンク(kansai2channeler.hp.infoseek.co.jp)
352:デフォルトの名無しさん
09/05/27 17:26:58
>>322
ありがとうございます。
353:デフォルトの名無しさん
09/05/27 18:04:25
>>351たすかりました。ありがとうございます。
354:デフォルトの名無しさん
09/05/27 18:27:30
[1] C言語
[2] 問題文(含コード&リンク):
[3] 環境
[3.1] Windows
[3.2] すみません、わかりません
[3.3] C
[4] 明日まで
入力された文字列をリストに格納し、
そのリスト自体を入れ替えて辞書順に並べる関数を作っています。
その際先頭・最後尾・次のリストのアドレスを変えなくては
ならないのですが、その処理をどうやったらいいか悩んでいます。
(strcmpの下の行からがよくわかりません)
void jisyo(struct B *fp, struct B *ep, int list_sum){
//前からリストの先頭アドレス、リストの最後尾アドレス、リストの数
です。main関数でjisyo(a.front_p, a.back_p, a.list_sum)と
呼び出しています。
int n, i, m;
struct B *p;
355:デフォルトの名無しさん
09/05/27 18:28:50
>>354の続きです
for(n = 1; n < list_sum; n++){
pb = fp;
pb_b = ep;
for(i = 0; i < list_sum-1; i++){
if(strcmp(pb->str_p, pb->next_p->str_p) >= 1){
p = pb;
pb = pb->next-_p;
pb->next_p = p;
356:デフォルトの名無しさん
09/05/27 18:29:31
>>355の続きです
if(fp != pb){
fp = fp->next_p->next_p;
fp->next_p->next_p = fp->next_p;
fp->next_p = fp->next_p->next_p->next_p;
}else if(ep != pb_b){
ep = ep->next_p;
ep->next_p = ep->next_p->next_p->next_p;
ep->next_p->next_p->next_p = ep->next_p;
}else{
pb = pb->next_p->next_p;
pb->next_p = pb;
pb->next_p->next_p = pb->next_p;
}
}
pb = pb->next_p;
}
}
for(m = 0; m < list_sum; m++){
printf("%s\n", pb->str_p);
pb = pb->next_p;
}
}
357:307の間違い
09/05/27 19:14:21
>>307(9255) Vector勉強になった。 それとついでに>>324(9269) >>(9271) N-Queenを解くプログラム
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
#include <time.h>
using namespace std;
struct student {
string name;
int score;
};
bool operator<(const student& x, const student& y) {
return x.score < y.score;
}
int main(void) {
int i;
char buf[50];
student s, t;
vector<student> vecStudent;
vector<student>::iterator theIterator;
srand((unsigned)time(0));
for(i=0; i<20; i++) {
sprintf(buf, "名前.%02d.名前", i+1); s.name = buf; s.score = rand() % 101;
vecStudent.push_back(s);
}
for (theIterator = vecStudent.begin(); theIterator != vecStudent.end(); theIterator++)
cout << theIterator->name << ":" << theIterator->score << endl;
cout<<endl; sort(vecStudent.begin(), vecStudent.end());
for(i=0; i<20; i++)
t = vecStudent[i], cout<<t.name<<":"<<t.score<<endl;
return 0;
}
358:デフォルトの名無しさん
09/05/27 20:04:04
>>354-356
どのような構造体かわからなかったので妄想してコーディングした。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
兄ぃそこはらめぇー、とか。あぁ、酔ってるわ。
359:デフォルトの名無しさん
09/05/27 20:32:00
>>358
ありがとうございます。
でもコメントが文字化けしていて
どんな処理をしているのかわかりませんでしたorz
構造体は
struct A a{
struct B *front_p;
struct B *back_p;
int list_sum;
}
struct B b{
char *str_p;
struct B *next_p
}
です。
書き忘れすみません。
よろしくお願いします。
360:デフォルトの名無しさん
09/05/27 20:43:14
>>358
構造体は予想どおりだったか。
コメントの文字化けは知らんがな。
UTF-8だから、nkfかiconvでSJISにでもしてみてね。
それか、サクラエディタかnotepad++で読み込むとか。
私の考えでは、別にリストのポインタを入れ替えていく必要はないと。
つまり、文字列(char *)だけ入れ替えてやるだけで済むと。
ソートしたい対象が文字列(char *)なのにリストのポインタを替えていくなんて無駄な処理でしょ。
だから、文字列(char *)だけソートしたものが>>358なのよ。
361:307の間違い
09/05/27 20:44:16
>でもコメントが文字化けしていて
>どんな処理をしているのかわかりませんでしたorz
(9273)右クリックでファイルをダウンロードすれば読めるはず。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
362:デフォルトの名無しさん
09/05/27 21:11:55
>>360
文字列のみの入れ替えは完成していたのですが、
講師からリスト自体を入れ替えろと言われました…。
あとコメント見れました。
363:デフォルトの名無しさん
09/05/27 22:35:50
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: [2009年06月03日24:00まで]
[5] その他の制限: 特になし。
よろしくお願いします
364:デフォルトの名無しさん
09/05/28 00:25:36
[1] 授業単元:
[2] 問題文(含コード&リンク):1!〜53!を計算して、それらを右揃えで出力するプログラムを
作成せよ
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: Visual C++
[3.3] 言語: C言語
[4] 期限: [2009年6月2日17:00まで]
[5] その他の制限:・プログラムを幾つかの関数に分割する
URLリンク(kansai2channeler.hp.infoseek.co.jp)
↑途中まで作ったのですが空白にしたいところが0で埋まってしまって困っています。
よろしくお願いします
365:デフォルトの名無しさん
09/05/28 00:25:55
>>363
具体的にどこがわからんの?
366:デフォルトの名無しさん
09/05/28 00:39:17
>>364
print関数だけ。
void print(int a[],int N,int n)
{
int i;
int head;
printf("%2d! = ",n);
head = 0;
for(i=N-1; i>=0; i--) {
if (head)
printf("%07d",a[i]);
else if (a[i]) {
printf("%7d",a[i]);
head = 1;
}
else
printf(" ");
}
printf("\n");
}
367:デフォルトの名無しさん
09/05/28 00:45:29
[1] 授業単元:プログラム演習
[2] 問題文(含コード&リンク):
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: windows
[3.2] コンパイラ名とバージョン: visual c++
[3.3] 言語: C++
[4] 期限: 朝までに。すごく困っています
[5] その他の制限: 特になし
よろしくお願いします
368:デフォルトの名無しさん
09/05/28 00:52:30
>>366
ありがとうございます。
0は消えたんですが右揃えになりません。
369:デフォルトの名無しさん
09/05/28 00:56:08
>>366
すいません。なりました。本当にありがとうございました
370:デフォルトの名無しさん
09/05/28 01:01:49
>>367
greater()をstructの後に移動
if(a.point>b.point)
371:デフォルトの名無しさん
09/05/28 01:05:09
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):線形検索を使用して配列内の最大の要素を検索せよ。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:来週火曜日
[5] その他の制限:制限はありません
まずアルゴリズムが全く思いつきません。
よろしくお願いします。
372:デフォルトの名無しさん
09/05/28 01:06:17
>>370
ありがとうございました。
昨日から悩んでいたのがやっと解決しました
373:デフォルトの名無しさん
09/05/28 01:19:43
[1] 授業単元:プログラム演習
[2] 問題文(含コード&リンク):
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: windows
[3.2] コンパイラ名とバージョン: Visual C++
[3.3] 言語: C++
[4] 期限:できるだけ早く
お願いします
374:デフォルトの名無しさん
09/05/28 01:39:22
[1] 授業単元:情報処理
[2] 問題文(含コード&リンク):
(1)1からn番目までの奇数2n-1までの和をn=1からn=50まで求め、n,和(sum),
n~2の値を出力せよ。また、プログラムの中でsum=0;およびn--;が
必要な理由を答えよ。
(2)原点を中心とした半径2の円を描くプログラムを作成せよ。
[3] 環境
[3.1] OS:XP
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:今週金曜日
[5] (2)についての条件
@半径2の値はconst型で初期化しておき、実数型とする。
A円の方程式は平面極座標(r,φ)を用いてforループでφを0から
2πまで変化させてガウス座標(x,y)を出力する。
Bforループの制御変数はint型とする。
長くなってしまいすいません。よろしくお願いいたします。
375:デフォルトの名無しさん
09/05/28 01:46:08
[1] 授業単元: 最適化
[2] 問題文(含コード&リンク):
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: Visual C++
[3.3] 言語: C++
[4] 期限: 5月30日
ランダム関数を使うらしいのですが全く分かりません。
よろしくお願いします。
376:デフォルトの名無しさん
09/05/28 02:10:13
>>373
URLリンク(kansai2channeler.hp.infoseek.co.jp)
377:デフォルトの名無しさん
09/05/28 02:36:04
>>371
URLリンク(kansai2channeler.hp.infoseek.co.jp)
378:デフォルトの名無しさん
09/05/28 02:37:09
[1] 授業単元: 情報処理入門
[2] 問題文(含コード&リンク):
キーボードから実数 x を入力し、ニュートン法と呼ばれる次のような反
復の式を用いて、近似的に x の平方根を求めるプログラムを作成せよ。
--
xの平方根は、次の計算を| s(i+1)-s(i) | < ε, i=1,2,...となるまで繰
り返すことによって求めることができる。εは収束判定数である。
s(i+1) = ( s(i) + x / s(i)) / 2
ただし、s(1) = 1 とする。
なお、ε=0.00001として計算すること。
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2009年5月29日00:00まで
[5] その他の制限: なし
よろしくお願いします。
379:デフォルトの名無しさん
09/05/28 02:50:29
>>371
URLリンク(kansai2channeler.hp.infoseek.co.jp)
380:デフォルトの名無しさん
09/05/28 06:16:47
>>364
void print(int a[],int N,int n) {
int i;
printf("%2d! = ",n);
for(i=N-1; i>=0&&a[i]==0; i--) printf("%7c",' ');
printf("%7d",a[i]);
for(i--; i>=0; i--) printf("%07d",a[i]);
printf("\n");
}
381:243
09/05/28 06:36:52
>>245 246
先週は助けていただき有難うございました。
関連する問題になるのですが、以前複素数のクラスを作成しました。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
このクラスもPass_Betterを使って値渡しにするよう言われたのですが、
どなたか分かる方いたらお願いします。
[1] 授業単元: C++
[2] 問題文(含コード&リンク):
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: Visual C++
[3.3] 言語: C++
[4] 期限: 5月30日
382:デフォルトの名無しさん
09/05/28 09:26:42
>>374
問題文(1)の中の「n~2の値」、何を出力すればいい?
383:sage
09/05/28 10:11:18
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):番兵を利用して配列内の最大の要素を検索するプログラムを作りなさい
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C言語
[4] 期限:6月2日
[5] その他の制限:制限はありません
お願いします
384:デフォルトの名無しさん
09/05/28 10:34:58
指数関数e^xの近似値を返す関数expon(x, n)をつくります。第1引数は浮動小数点数xで,第2引数はexをTaylor展開で展開する際の最大次数nになります。n次項までのTaylor展開の式は下に示す通りです。
さらに,浮動小数点数yと正の整数mを引数とし,yの小数点m桁より下を切り捨てて出力する関数trunc(y, m)をつくりなさい。
次に,これらの2つの関数を用いて,e^xの近似値を小数点以下の桁数を指定して出力するプログラムをつくりなさい。
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
指数関数e^xの近似値を返す関数expon(x, n)をつくります。第1引数は浮動小数点数xで,第2引数はexをTaylor展開で展開する際の最大次数nになります。n次項までのTaylor展開の式は下に示す通りです。
さらに,浮動小数点数yと正の整数mを引数とし,yの小数点m桁より下を切り捨てて出力する関数trunc(y, m)をつくりなさい。
次に,これらの2つの関数を用いて,e^xの近似値を小数点以下の桁数を指定して出力するプログラムをつくりなさい
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:5月30日
[5] その他の制限:なし
385:デフォルトの名無しさん
09/05/28 10:39:59
すいません>>384はミスです。
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
指数関数e^xの近似値を返す関数expon(x, n)をつくります。第1引数は浮動小数点数xで,第2引数はexをTaylor展開で展開する際の最大次数nになります。n次項までのTaylor展開の式は下に示す通りです。
さらに,浮動小数点数yと正の整数mを引数とし,yの小数点m桁より下を切り捨てて出力する関数trunc(y, m)をつくりなさい。
次に,これらの2つの関数を用いて,e^xの近似値を小数点以下の桁数を指定して出力するプログラムをつくりなさい
関数truncは,trunc(-3.141593, 3) と呼び出すと,-3.141のように画面に出力する。但し,printf("%.*f", m, y); は用いないで定義すること。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:5月30日
[5] その他の制限:なし
386:デフォルトの名無しさん
09/05/28 10:55:54
[1] 授業単元: ソフトウエア科学
[2] 問題文(含コード&リンク):
4桁の10進数の各桁を千の位からd3,d2,d1,d0で表すと、
((d3*10+d2)*10+d1)*10+d0という計算をすることにより、元の10進数を得ることができる。
4桁の10進数の各桁を、まず、大きさ4のint型配列に1桁ずつに入力し、
その後、上記の計算法により、元の10進数にして表示するプログラムを書け。
ただし、上記の計算部分はfor文による繰り返しにより記述すること。
例;入力が4536ならば、((4*10+5)*10+3)*10+6=4536の計算をして表示する。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2009年5月29日12:50まで
[5] その他の制限:特になし
お願いします。
387:デフォルトの名無しさん
09/05/28 11:17:17
>>386
URLリンク(kansai2channeler.hp.infoseek.co.jp)
表示周り適当に修正してちょ
388:デフォルトの名無しさん
09/05/28 11:27:02
>>387
ありがとうございました。
389:デフォルトの名無しさん
09/05/28 11:47:24
もうちょっと面白い問題プリーズ
390:デフォルトの名無しさん
09/05/28 12:09:18
>>380
ありがとうございます
391:デフォルトの名無しさん
09/05/28 12:10:02
>>389
オナニーは楽しいかい?
392:デフォルトの名無しさん
09/05/28 14:13:57
>>389
Windowsのフリーセルの最小手順検索はいかが?
ここで最小手順とは人間が操作を行う回数のこと
列移動も一回として数える
393:デフォルトの名無しさん
09/05/28 14:40:16
>>365さん
入力した内容を暗号化(置き換え)してファイルに保存する方法が分からないです
よろしくお願いします
394:joyful_age
09/05/28 14:44:16
>>363 (Ex-1) Data input by menu.
URLリンク(kansai2channeler.hp.infoseek.co.jp)
395:joyful_age
09/05/28 15:04:34
>>363 修正。ID、名前の数字は置換しない。
void angouka(char *s) {
for(; *s != '\0'; s++)
if(*s < '0' || *s > '9') (*s)++;
}
396:デフォルトの名無しさん
09/05/28 15:14:18
>>389
難易度が高くて未回答の問題が幾つもあるだろ。解いてみろ。
最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5327日前に更新/150 KB
担当:undef