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

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

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG?2BP(12)
あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他や発言はスルーの方向で。
【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
・問題文は、出題されたまま全文を書いてください。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはやめましょう。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して
 投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。
【質問テンプレ】
[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

【前スレ】
C/C++の宿題を片付けます 76代目
http://pc8.2ch.net/test/read.cgi/tech/1162771475/
【過去スレ一覧】
http://makimo.to/cgi-bin/search/search.cgi?q=C%2B%2B%82%CC%8Fh%91%E8&andor=AND&sf=2&H=&view=table&D=tech&shw=2000
0797デフォルトの名無しさん2006/12/01(金) 19:05:02
[1] 授業単元:プログラミング基礎
[2]  2 3
 1 2

 1 1
 2 2 のような正方行列のデータを読み込んで上の行列をA、下の行列をBとしてA*BとA+Bを求めよ。

[3] 環境
 [3.1] Linux
 [3.2] gcc
 [3.3] C
[4] 期限: 12/2
[5] mallocを用いる事。今回のデータは2行2列ですが、行列のサイズはどの数字でも対応できるものでお願いします。
0798デフォルトの名無しさん2006/12/01(金) 19:09:38
>>796
inputfileの仕様
0799デフォルトの名無しさん2006/12/01(金) 19:19:20
inputfile : ソートするデータが入ったファイルの名前.
      ファイル中のデータの並べ方は問わない.データ数は1000個です
  outputfile : ソート後のデータを出力するファイルの名前
      ファイル中のデータの並べ方は,inputfileと同じにすること.
  pivot_selection : a,b,c のいずれかの文字
  上の軸要素の選び方に対応する.
  basic_sort : b,s,i のいずれかの文字.それぞれ,バブル,選択,挿入ソートに
      相当する.分割した部分配列のサイズが小さくなった場合に用いるソート方法を
      設定する.
small_number : 正の整数.この数字より部分配列のサイズが小さくなったら,
          上で指定した基本的なソート方法を用いる.
  debug_mode : v あるいは n の文字
      vの場合は,データの分割の仕方が分かりやすいように,
軸要素とそれにより分割された部分配列のサイズを
逐次出力させるようにすること.
n の場合は上の出力はしない.
0800デフォルトの名無しさん2006/12/01(金) 19:59:48
>797
//mallocでの正方行列の確保
int i;
int **p;
p = (int **)malloc(n*sizeof(int *));
for(i=0; i<n; i++) p[i] = (int *)malloc(n*sizeof(int));
//和
int i, j;
int **a, **b, **c;
for(i=0; i<n; i++) {
for(j=0; j<n; j++) c[i][j] = a[i][j] + b[i][j];
}
//積
int i, j, k;
int **a, **b, **c;
for(i=0; i<n; i++) {
for(j=0; j<n; j++) {
c[i][j] = 0;
for(k=0; k<n; k++) c[i][j] += a[i][k] * b[k][j];
}
}

後は適当になんとかして。
0801デフォルトの名無しさん2006/12/01(金) 20:25:07
>>799
言い方が悪かった

inputfileの区切り文字は何?
0802デフォルトの名無しさん2006/12/01(金) 20:55:51
区切り文字は空白だと思います
0803デフォルトの名無しさん2006/12/01(金) 21:38:20
 大学の講義の[C言語」という時間の課題として
{1〜10までの乱数を10個発生させて表示させる。ただし、1度出た数字は除外する。} という課題を出されたのですが、教科書を見ながら解いても 同じ数字が重複して表示されてしまうプログラムになってしまいどうしていいかわかりません。
 どなたか手ほどきをおねがいします
0804デフォルトの名無しさん2006/12/01(金) 21:42:38
>>803
教科書を見ながら解いた結果を貼るか、>>1を読んで書き直して丸投げするか
好きな方を選べ
0805デフォルトの名無しさん2006/12/01(金) 21:58:45
>>803 こんなんじゃねぇ?
int data[10];
int i, cnt = 0;

while( cnt < 10 ) {
data[cnt] = rand() % 10 + 1;
for( i = 0; i < cnt; i++ )
if( data[i] == data[cnt] )
break;
if( cnt == i ) cnt++;
}
0806デフォルトの名無しさん2006/12/01(金) 22:13:14
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3051.txt
この整数値の昇順リストを作成するプログラムを、指定データ(下記deletedata)と同じデータを持つセルをすべて
消去し、消去するデータがあったときはdata foundと1回表示し、ないときにはno such data
と1回表示するvoid DeleteAlist(struct LIST **ptr, int deletedata)を再帰を用いることによって作成せよ。

指定データを持つセルの先頭のものを消去する関数を参考にせよ。

void Deletelist(struct LIST **ptr, int deletedata){

if((*ptr)==NULL){
printf("no such data \n");
}else if((*ptr)->data == deletedata){
struct LIST *tmp;
printf("data found\n");
tmp=(*ptr)->nextptr;
free(*ptr);
*ptr=tmp;
}else DeleteList(&((*ptr)->nextptr),deletedata);
}
[3] 環境
 [3.1] OS: Windows XP
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: C
[4] 期限: 明日
[5] その他の制限:
昨日も聞いたんですが、
また条件を言われました。void型は変えずに、関数のなかで、deletedataとnosuchdataを表示しないといけないと言われました。
何度もすいませんが、お願いします
0807デフォルトの名無しさん2006/12/01(金) 22:21:47
>void型は変えずに
?
0808デフォルトの名無しさん2006/12/01(金) 22:27:27
ソートとリストで腹の中がパンパンだぜ
0809デフォルトの名無しさん2006/12/01(金) 22:38:32
>>806
return の変わりに条件判定とprintf文を書けば良いだけでないの?
0810デフォルトの名無しさん2006/12/02(土) 00:23:33
[1] 授業単元:Cプログラミング演習
[2] 問題文:50個の整数データを読み込み、それらを小さい順に出力する
      cプログラムを作成せよ。バブル整列法は使ってはいけない。
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: Cのみ
[4] 期限: 2006年12月23日12:00まで

よろしくお願いします。
0811デフォルトの名無しさん2006/12/02(土) 00:41:03
>>803
#include<stdio.h>
#include<stdlib.h>

int main(void){
int i,j;
int a[10];
srand(time(NULL));
printf("0-10:\n");
for(i=0;i<10;i++){
a[i] = 0;
}
j=1;
while(j<=10){
i = rand() % 10;
if(a[i]==0){
a[i] = j;
j++;
}
}
for(i=0;i<10;i++){
printf("%d\n",a[i]);
}
}
08127152006/12/02(土) 00:49:31
>>718
レス遅くなってスミマセン。ありがとうございました!
0813デフォルトの名無しさん2006/12/02(土) 01:22:03
>>803
int i,k=0,shaffle;
int rar[10];
for(i = 0; i< 9; i++)
rar[i] = i+1;
scanf("%d",&shaffle);
srand((unsigned)time(NULL));
while(k <= shaffle){
i = rand() % 10;
if(i>=0){
temp = Value[i];
Value[i] = Value[i-1];
Value[i-1] = temp;
}
k++;
}
適当にこんな感じでも良いでしょ
0814デフォルトの名無しさん2006/12/02(土) 01:23:52
うわ!なんか似たソースのっかってるし!!
びっくりだ
0815デフォルトの名無しさん2006/12/02(土) 03:34:13
shuffle
0816デフォルトの名無しさん2006/12/02(土) 05:25:56
>>803
int d[10];
int r,w;
int i;

srand((unsigned)time(NULL));


for( i=0; i < 10; i++)
d[i] = i + 1;

for( i = 0 ; i < 10; i++){
r = i + rand() % (10 - i);
w = d[i];
d[i] = d[r];
d[r] = w;
}

0817デフォルトの名無しさん2006/12/02(土) 06:17:56
>813
なんか色々とおかしくない?
08188132006/12/02(土) 06:26:50
おかしいね
何も見ずに書き込んだらやっぱだめだね
0819デフォルトの名無しさん2006/12/02(土) 07:34:43
>>810
コンパイルはしてないけどな。あと、データ読むところは書いてない。

#include <stdlib.h>

int compare(const int *a, const int *b);

int main(void)
{
int data[50];
int i;

/* ここいらでデータを読む */

/* ソート */
qsort(data, 50, sizeof(int), (int (*)(const void*, const void*))compare);

/* 表示 */
for (i = 0; i < 50; i++) {
printf("%d\n", data[i]);
}
}

int compare(const int *a, const int *b)
{
return *a - *b;
}
0820デフォルトの名無しさん2006/12/02(土) 10:39:00
パスカルの法則で
1
11
121
1331
14641
のように出力されるようにするにはどのように作ればいいですか。
0821デフォルトの名無しさん2006/12/02(土) 11:33:54
>>820
どのようにって

・n段目の左からm番目の数字が(n-1)段目の(m-1)番目とm番目の数字和 (n>=3, 2<=m<=n-1)
・n段目の左端(m=1)と右端(m=n)の数字が1

になるように作ればいいと思うよ
08227012006/12/02(土) 12:06:39
>>707
>>744
ありがとうございます。なにしろC言語を習い始めて
まだ二ヶ月もたってない初心者なもので・・

0823デフォルトの名無しさん2006/12/02(土) 12:08:30
1年なら普通だろ
0824デフォルトの名無しさん2006/12/02(土) 12:12:51
二ヶ月やって>>701ができないなら、これからの課題も全部ここに丸投げだな
0825デフォルトの名無しさん2006/12/02(土) 12:22:34
へへん。
プログラミングだけが人生じゃないさ。
難問奇問な宿題はさっさと丸投げして人生を楽しもう。
0826デフォルトの名無しさん2006/12/02(土) 13:56:03
プログラマを顎で使って今までごめんなさい orz
自分で勉強してみて難しさが分かりました orz
これからは期限守らなくても大目に見ますね。
0827デフォルトの名無しさん2006/12/02(土) 14:01:12
>>826
当たり前だカス
0828デフォルトの名無しさん2006/12/02(土) 14:15:57
>>827
ニートは黙ってろ
0829デフォルトの名無しさん2006/12/02(土) 14:34:35
>810
多分題意に反すると思うけど
#include <stdio.h>
#define N 5
int main(void)
{
int i, j, k, n,, a[N];
for(i=0; i<N; i++) {
scanf("%d", &n);
for(j=0; j<i; j++) {
if(a[j]>n) {
for(k=i; k>j; k--) a[k] = a[k-1];
break;
}
}
a[j] = n;
}
for(i=0; i<N; i++) printf("%d ", a[i]);
return 0;
}
0830デフォルトの名無しさん2006/12/02(土) 14:35:52
#define N 5 →#define N 50
0831デフォルトの名無しさん2006/12/02(土) 15:26:00
796の問題難しくないですか?
0832デフォルトの名無しさん2006/12/02(土) 15:27:09
796の問題難しくないですよ!
0833デフォルトの名無しさん2006/12/02(土) 15:33:04
難しくは無いがめんどくさい
inputfile : ソートするデータが入ったファイルの名前.
      ファイル中のデータの並べ方は問わない.データ数は1000個です
outputfile : ソート後のデータを出力するファイルの名前
      ファイル中のデータの並べ方は,inputfileと同じにすること.

これを見る限り区切り文字がスペースだろうとコンマだろうと改行記号だろうと
対応しなくてはならないようだ
どうも質問者は分かってなかったみたいだが

とりあえず関数は全部書いたけどmain作るのがめんどくさくて絶賛放置中
0834デフォルトの名無しさん2006/12/02(土) 15:47:12
区切り文字はスペースで統一するらしいです。さきほど先生にうかがいました
08358322006/12/02(土) 15:49:09
833さん、頭いいですね!
0836デフォルトの名無しさん2006/12/02(土) 15:49:58
>>834
>ファイル中のデータの並べ方は,inputfileと同じにすること.
じゃあこれは何を意味するの?
あとファイル内のデータは数値?文字列?
0837デフォルトの名無しさん2006/12/02(土) 15:54:19
あと比較回数を表示することってあるけど軸選びに使う比較も回数に含めるの?
0838デフォルトの名無しさん2006/12/02(土) 16:01:26
それは含めないらしいです。あとファイル中のデータの並べ方は,inputfileと同じにすること.
ていうのは、inputfileに入っているデータと同じ数字が入っているならいいらしいです。あとファイル内のデータは数字です
0839デフォルトの名無しさん2006/12/02(土) 16:15:32
あと何を伝えて無いんだ?
0840デフォルトの名無しさん2006/12/02(土) 16:19:08
これで全部伝えました。遅くなってすみませんでした
0841デフォルトの名無しさん2006/12/02(土) 16:19:50
そうか。では先生をここに呼んで来い。
0842デフォルトの名無しさん2006/12/02(土) 16:27:22
すみません。先生はもういないです
0843デフォルトの名無しさん2006/12/02(土) 16:32:17
泣いた
0844デフォルトの名無しさん2006/12/02(土) 16:34:27
自分はC言語が苦手で796の問題がぜんぜんわからないのでぜひお願いします
0845デフォルトの名無しさん2006/12/02(土) 16:38:25
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3063.txt
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン:
 [3.3] 言語: C
[4] 期限: 12月7日
[5] その他の制限: よろしくお願いします。
0846デフォルトの名無しさん2006/12/02(土) 16:58:53
>>845
またお前か
0847デフォルトの名無しさん2006/12/02(土) 17:26:51
>>796
今からやるから期待しないで待ってろ
21時までに書き込み無かったら俺からの回答は諦めろ
08488312006/12/02(土) 17:38:22
833さん、僕も今さっき関数ができたんですけどmainがどうしてもできません。
できそうですか?
0849デフォルトの名無しさん2006/12/02(土) 17:38:58
847さん、ぜひお願いします
0850デフォルトの名無しさん2006/12/02(土) 17:43:49
>>848
その関数を晒してもらおうか
08518482006/12/02(土) 17:49:03
void bubblesort(int h, int k, int *A)
{
int i, j;
int test; /* test==1; すでに整列済み */

for(i=h; i<k; i++) /* バブル操作の反復 */
{
test=1;
for(j=k; j>=i+1; j--)
if(A[j]<A[j-1]) {swap(j, j-1, A); test=0;}
if(test==1) return;
}

return;
}
まだバブルソートしかできてません
08528472006/12/02(土) 17:49:37
Main以外出来てるのならすぐだろうよ。そのデータ読んでmy_qsortみたいな関数を呼ぶだけで。
それを晒してくれよ。Mainなら書くよ
08538472006/12/02(土) 17:50:38
>>853
ちょwwwwwwwwwwwwww
0854デフォルトの名無しさん2006/12/02(土) 17:52:10
もう何がなんだか・・
08558482006/12/02(土) 17:53:50
バブルソートはできたんですけど796のほかの関数とかmainがまったくわかりません。
0856デフォルトの名無しさん2006/12/02(土) 17:57:44
人それを全くできてないと云う
0857デフォルトの名無しさん2006/12/02(土) 17:57:58
>>853
大変だwww無限ループにwww
0858デフォルトの名無しさん2006/12/02(土) 18:09:33
スタックオーバーフロー
0859デフォルトの名無しさん2006/12/02(土) 18:13:18
とりあえず796は暇ならinputfileでも作ってどこかにうpしておいてくれ
締め切り日曜みたいだし847からの解答が無ければ俺がのんびり解こう
08607962006/12/02(土) 19:05:04
inputfileの1000個のデータです
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3064.txt
0861デフォルトの名無しさん2006/12/02(土) 19:06:53
正気か?
08628472006/12/02(土) 19:32:29
まずは謝ろう。問題を流し読みしてただのクイックソートじゃんとなめてた。すまない。
これは面倒くさいな。とりあえず前言撤回。俺はやってないことにしておいてくれ。

ということで、>>859にまかせた。
0863デフォルトの名無しさん2006/12/02(土) 19:56:54
と、ここまで期待させておいて>>796を絶望の底へ陥れる自作自演乙
08647962006/12/02(土) 20:04:44
マジでお願いします
0865デフォルトの名無しさん2006/12/02(土) 20:05:42
                   ( 嫌 生 人 こ )
                      ) だ .き .を れ(
                     ( お て .疑 以 )
                      ) ! い .い 上(
           ,, -──- 、._   (    く  .な   )
         -"´         \  .)   .の .が   (
        /              ヽ.(   .は .ら    .)
         /             ヽ〜、_       _(
       |      _ノ    ヽ、_  .|  `,〜〜〜´
        l     o゚⌒   ⌒゚o  l
       ` 、      (__人__)   /
         `ー 、_.   ` ⌒´   /
            /`''ー─‐┬''´
            /  丶. i  |
           ./ 丶、_)|_ノ|_
           .|  ̄ヽ._  ´  ヽ
           ヽ、 _/´`ヽ   /
             ̄     ̄ ̄

0866デフォルトの名無しさん2006/12/02(土) 20:07:07
失敗
0867デフォルトの名無しさん2006/12/02(土) 20:12:19
裏切りを経験するのも人生には必要なのかもしれないな。
他に方法がないからと言って判断を完全に預けてしまうのは
独立した個人としての人格の尊厳に関わるのではないだろうか。
0868デフォルトの名無しさん2006/12/02(土) 20:22:26
         /   /ヘ/  / /   /   /   //  /  / ヽ  \      \ \
        ./ _/ /  / /   /   /  / /  /  ∧_ヽ  \     ヽ.  ヽ
       // /! /  .l  l  /,.-‐'フフヽ.//  /  /´ヽヽ `>.、 .!      ',`ヽ 〉
       /   / |/   |  l// // /.: / ノ  /. :.:.ヽ \\ `ト、   |  | /
       {  ./ ||    l/  /ン-‐<、 ://:/  ./: :,ィ─ヽ-\ヽ. | |   |  |′
        \、.--|l-‐''"_,. -‐''",. =,=¬ミ、/: : :/  /: : : ノ゙,ニ==ミ、 | |   |  |
        /  ̄|| ̄   {: :く   ト-'  }  : : / ./: : : : : ト-'  } // /   j l !
        /   .!',     \:.` ゝ -‐'  .//      ー--  ./ /   /j | /
        /    ', ヽ   \ゝ、       ノ : : !          ノ/  .//ノ'
      ./    .∧ \   \                 -┐ ∠ -‐''" /
      /    /,ハ = ゝヘ、_  ゝ、             __ノ)     /〃/
     /    //  ヽ〃 ヾ ヽ ̄ ̄  、_,.. -−'' ´ ̄   /     /</  ケヒヒッ
   /    ,r'"´ ̄了ゝ、rー、 ヽ     ` ー──‐ '' ´     /liヾ/     人生は裏切りの連続ですぅ
  /    / ゝ, -‐'7`ーイ__.」、  \        ー         /   |
/   , f´ ̄/  /  ノ/ヽゝン‐.、V丶、            /|    |
   / 之/   /  /   ヽ ヽノ1ヽ-、.`丶、   _,. -‐'"´  /|ヾ 「l〃|
  / 「 /    / /     ', ��| ヽ \    ̄  /   / |= =l
/  .ゝ/    //      .i l , -イ  ヽ. ヽ     ,イヽ /  |〃il ヾl
   ,r/    /        || L.、|   l  `丶、 f |  `ヽ、 |    !
  /./    /        || ヽjヾ||〃l  ,. ‐-、ヽl   _  \|     ヽ
/ /    /         || ノj= =|/ , --ヘ}⌒}´_\  \ 、 ヾ r ヽ
0869デフォルトの名無しさん2006/12/02(土) 20:26:35
何の責任を負ってるわけでもないのに裏切りといわれても困るお^^;
0870デフォルトの名無しさん2006/12/02(土) 20:49:25
>>796
ちゃんと動作確かめてないけど、こんなんでいいのかな?

http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3066.c
0871デフォルトの名無しさん2006/12/02(土) 21:02:57
>>869
信じていたのに


この言葉はお約束ですな
08727962006/12/02(土) 21:10:27
>>870
はい、ありがとうございました。おかげで助かりました。
0873デフォルトの名無しさん2006/12/02(土) 21:13:43

           /\        /\
           /  \      /  \
          /    ゙'----''"´    ヾ
          /               `:、
         /                `:
         |                  i
         |      ノ '           |
         |      .,___.,     .,___.,   i
          、    ''"´`:、        υ / キミ達のこと 信じてたのに........クスン
          `丶,:' 、.  . )___Д____,,.,_,,.;''"
           /    /       ο

0874デフォルトの名無しさん2006/12/02(土) 21:37:12
>>873
2ch閉鎖か
0875デフォルトの名無しさん2006/12/02(土) 22:24:45
[1] 授業単元:ソートの準備
[2] 問題文:
配列に格納されたデータをソートするプログラムを作成するにあたり、
以下の機能を持つ関数を作成しなさい。

乱数を生成し配列要素に格納する
 init_array(int *pa, int n)
配列要素を1行で画面に出力する
 output_array(int *pa, int n)
指定された2つアドレスのデータを交換する
 swap(int *x, int *y)
[3] 環境
 [3.1] OS: Windows XP
 [3.2] コンパイラ名とバージョン: Visual Studio.NET2003
 [3.3] 言語: C
[4] 期限: 2006年12月4日09:00まで
0876デフォルトの名無しさん2006/12/02(土) 22:50:07
>>875
# include <stdio.h>
# include <stdlib.h>

void init_array(int *pa, int n)
{
  while(--n >= 0) pa[n] = rand();
}

void output_array(int *pa, int n)
{
  int i;
  for(i = 0; i < n; i++)
    printf("%d ", pa[i]);
  printf("\n");
}

void swap(int *x, int *y)
{
  int t = *x;
  *x = *y;
  *y = t;
}
0877 ◆s2cIPM3PTs 2006/12/02(土) 23:05:15
[1] 授業単元:プログラミング初級
[2] 問題文
  http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3067.txt
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: Visual Studio 2005
 [3.3] 言語: C
[4] 期限: 明後日
[5] その他の制限: 配列を利用する
          関数を利用しない

つい最近習い始めたばかりの初心者です。
宜しくお願いします
0878デフォルトの名無しさん2006/12/02(土) 23:25:19
>>877
問題文の読み込むってファイルから?
ファイルから読むんなら関数使っちゃうよね?
0879デフォルトの名無しさん2006/12/02(土) 23:32:27
ユーザ定義関数を利用しない、って意味じゃないかと。
0880 ◆s2cIPM3PTs 2006/12/02(土) 23:38:13
>>878
>>879
すいません。879さんの言うとおりです。
0881デフォルトの名無しさん2006/12/03(日) 00:06:48
[1]授業単元:アルゴリズム論演習
[2]問題文:入力した年月日が、その年の1月1日から通算何日目かを表示するプログラムを
閏年を判別する関数、通算を求める関数、main関数に分けて作成せよ。
[3]環境
 [3-1]OS:Windows XP
[3-2]コンパイラ名とバージョン:Visual Studio.NET2003
 [3-3]言語:C++
[4]期限:12月7日
0882デフォルトの名無しさん2006/12/03(日) 00:14:00
[1]授業単元:アルゴリズム論演習
[2]問題文:44,44と-0,1111×(10の2乗)を足した値をscanf関数を用いずに
      表示するプログラムを作成せよ。ただし、数値は入力すること。
[3]環境
 [3-1]OS:Windows XP
 [3-2]コンパイラ名とバージョン:Visual Studio.NET2003
 [3-3]言語:C++
[4]期限:12月7日
0883デフォルトの名無しさん2006/12/03(日) 00:26:09
>>882
#include <stdio.h>
int main(void){
float a,b;
char buf[1024];
fgets(buf,sizeof(buf),stdin);
sscanf(buf,"%f %f",&a,&b);
printf("%.2f\n",a+b);
return 0;
}
0884デフォルトの名無しさん2006/12/03(日) 00:59:05
>>882
>44,44と-0,1111×(10の2乗)
俺の脳がコンパイルエラーを返した
0885デフォルトの名無しさん2006/12/03(日) 01:07:51
>>881
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3068.c
0886デフォルトの名無しさん2006/12/03(日) 01:08:47
ぐぼぉっ、よくみたらC++か。適当に書き換えてきまつw
0887デフォルトの名無しさん2006/12/03(日) 01:16:45
>>881
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3069.cpp
0888デフォルトの名無しさん2006/12/03(日) 01:20:30
>>881
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3070.cpp
すまそ、細かいが念のためにちょい修正
0889デフォルトの名無しさん2006/12/03(日) 03:06:06
>>870
これはひどい・・・
0890デフォルトの名無しさん2006/12/03(日) 03:17:45
やはりトラップか
0891デフォルトの名無しさん2006/12/03(日) 03:49:05
>>877
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3071.txt

最低限題意は満たしたつもり。
0892デフォルトの名無しさん2006/12/03(日) 04:09:36
>891
1.平均と等しい数値が平均より小さい数になる。
2.sa_maxが初期化されてない
0893デフォルトの名無しさん2006/12/03(日) 04:22:25
>>892
thx

訂正
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3072.txt
0894デフォルトの名無しさん2006/12/03(日) 05:59:27
うーん……??

Q1
while ((c = getc(fp)) != EOF) {
putchar(c);
}

これ↑だとEOFを検出したらすぐ終了するのに


while (feof(fp)==0) {
c = getc(fp);
putchar(c);
}

これ↑だとEOFを出力してしまうのはなぜ…?


Q2.ファイルの終わりに'\0'を書き込む必要はないのですか?

基本的な質問でごめん、誰か教えてくれないかな…。
0895デフォルトの名無しさん2006/12/03(日) 06:06:30
さすがにこの時間じゃ誰も見てないかな…。
0896デフォルトの名無しさん2006/12/03(日) 06:36:27
二次元配列で
int a[600][600];
とかって確保しようとしたら実行してもすぐ終了してしまう。
大きな領域の二次元配列を確保することは出来ないのでしょうか?
■ このスレッドは過去ログ倉庫に格納されています