C/C++の宿題を片付けます 69代目
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2006/07/05(水) 19:24:57【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
・問題文は、出題されたまま全文を書いてください。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはやめましょう。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して
投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。
【質問テンプレ】
[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++の宿題を片付けます 68代目
http://pc8.2ch.net/test/read.cgi/tech/1151158759/
【過去スレ一覧】
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
0153デフォルトの名無しさん
2006/07/11(火) 18:47:390154デフォルトの名無しさん
2006/07/11(火) 18:49:290155デフォルトの名無しさん
2006/07/11(火) 18:53:01# include <stdio.h>
struct num
{
int val;
int size;
int grade;
};
int main(void)
{
struct num ns[] = {
{706592, 1000000, 1},
{284148, 1000000, 1},
{ 82201, 100000, 2},
{ 74490, 100000, 2},
{ 6226, 10000, 3},
{ 5657, 10000, 3},
{ 7, 100, 4},
{ 51, 100, 4}};
int i;
int x;
printf("Input number: ");
scanf("%d", &x);
for(i = 0; i < sizeof ns / sizeof *ns; i++)
if(x % ns[i].size == ns[i].val)
printf("You win the grade %d.\n", ns[i].grade);
return 0;
}
0156デフォルトの名無しさん
2006/07/11(火) 18:53:02単なる中継機能だけであれば、次のような機能を実装すればよい。
・サーバは、とあるポート(8080)でlistenする。
・ブラウザからの接続要求で、URLに含まれるサーバへのコネクションを張る(port80で)。
・ブラウザから受信したデータをそのままHTTPサーバに送信する。
・HTTPサーバから受け取ったデータをそのままブラウザに送る。
・Keep-Aliveだったらコネクションを保持、そうでなかったら切る
ブラウザはプロキシの設定でlocalhostの8080番を指定する。
複数クライアントに対応する場合は、forkでもthreadでもお好きなように。
0157デフォルトの名無しさん
2006/07/11(火) 19:13:31前に似たようなアドバイスをいただいたのですがそれでもできなくて・・・。
解いていただけないでしょうか?
お願いします。
0158デフォルトの名無しさん
2006/07/11(火) 19:17:37いやその似たようなアドバイスも俺なんだが。
ちなみにそのとき断ったよな?
0159デフォルトの名無しさん
2006/07/11(火) 19:21:11あの時アドバイスくれた方でしたか。
すいません。
0160デフォルトの名無しさん
2006/07/11(火) 19:22:02ググってあげたから、これでも改変しなよ。
http://www.unixuser.org/~euske/pub/index.html
のhttpproxy.c
0161デフォルトの名無しさん
2006/07/11(火) 19:38:22ありがとうございます。
これを見てプログラムで何をしているか学習したいと思います。
0162デフォルトの名無しさん
2006/07/11(火) 19:54:59[2] 問題文: 入力は1000以下の自然数n
出力はn円の商品を1000円札を出して買ったときの、お釣りに含まれる各硬貨の枚
数とその合計枚数。ただし、合計枚数が一番少なくなるような組み合わせを出力し、
0枚の硬貨については出力しないようにする。例えば、373を入力した場合、出力が
500yen=1
100yen=1
10yen=2
5yen=1
1yen=1
total=7
となるようにする。なお、出力する順番は好きにしてよい。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2006年7月19日20:45まで
[5] その他の制限:forとwhileとifを勉強しました。初心者です。
0163デフォルトの名無しさん
2006/07/11(火) 20:01:36[1] 授業単元: 情報基礎A
[2] 問題文: 次の仕様をみたすプログラムを作成せよ。
(1)入力は2以上の自然数n
出力はnのすべての約数
(2)入力は2以上の自然数n
出力はnの約数の個数
(3)入力は2以上の自然数n
出力はnが個数ならば"n is prime."、合成数ならば"n is not prime."
(nの部分には入力した自然数が表示されるようにすること)
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2006年7月19日20:45まで
[5] その他の制限:上と同じです。よろしくお願いいたします。
0164デフォルトの名無しさん
2006/07/11(火) 20:17:17#include <stdio.h>
int main(){
int coin[] = {500, 100, 50, 10, 5, 1};
int n, i;
scanf("%d", &n);
for(i = 0; i < sizeof(coin)/sizeof(coin[0]); i++){
if(coin[i] > n) continue;
printf("%dyen=%d\n", coin[i], n/coin[i]);
n %= coin[i];
}
return 0;
}
0165デフォルトの名無しさん
2006/07/11(火) 20:17:20[2] このプログラムを改造して、数値をキーボードから入力出来るようにしたいのですが、
どう改造しても上手く回らなくて・・・
#include <stdio.h>
#define N 3
int main(void)
{
static double a[N][N+1]=
{
{2.0 ,3.0 ,1.0 ,4.0},
{4.0 ,1.0 ,-3.0 ,-2.0 },
{-1.0 ,2.0 ,2.0 ,2.0}
};
double p,d;
int i,j,k;
for (k=0;k<N;k++)
{
p=a[k][k];
for (j=k;j<N+1;j++)
a[k][j]=a[k][j]/p;
for (i=0;i<N;i++)
{
if (i!=k)
0166デフォルトの名無しさん
2006/07/11(火) 20:18:03d=a[i][k];
for (j=k;j<N+1;j++)
a[i][j]=a[i][j]-d*a[k][j];
}
}
}
for (k=0;k<N;k++)
printf("x%d=%f\n",k+1,a[k][N]);
}
[3] 環境
[3.1] OS:Win 2000
[3.2] コンパイラ名とバージョン:Visual C++ 2005
[3.3] 言語:C++
[4] 期限:2006/07/12 22:00
2レスにまたがってしまってスミマセン・・・。
どうぞ宜しくお願いいたします。。。
0167164
2006/07/11(火) 20:18:50scanf の跡に、
n = 1000 - n;
を入れてくれ。
0168デフォルトの名無しさん
2006/07/11(火) 21:11:42#include <stdio.h>
int main(){
int num, i, cnt = 0;
call:
scanf("%d", &num);
if (num < 2) goto call;
for (i= 1; i <= num; i++){
if ((num % i) == 0){
printf("%d ", i);
cnt++;
}
}
printf("\n%dの約数の個数=%d\n", num, cnt);
if (cnt == 2)
printf("%d is prime.\n", num);
else
printf("%d is not prime.\n", num);
return 0;
}
0169デフォルトの名無しさん
2006/07/11(火) 21:39:53#include <stdio.h>
void main( void ) {
int data[21] = { 20 ,
50 , 70 , 64 , 51 , 68 , 60 , 73 , 53 , 49 , 67 ,
100 , 72 , 41 , 59 , 86 , 69 , 38 , 93 , 50 , 69 } ;
int y , x , cnt , i , ave ;
for ( y = 0 ; y < 11 ; y++ ) {
cnt = 0 ;
if ( y != 10 ) {
for ( x = 1 ; x < (data[0]+1) ; x++ ) { if ( ((y*10) <= data[x]) && (data[x] <= (y*10+9)) ) { cnt++ ; } }
printf( "%3d-%3d : " , (y*10) , (y*10+9) ) ;
} else {
for ( x = 1 ; x < (data[0]+1) ; x++ ) { if ( 100 == data[x] ) { cnt++ ; } }
printf( "100- : " ) ;
}
for ( i = 0 ; i < cnt ; i++ ) { printf( "*" ) ; }
printf( "\n" ) ;
}
ave = 0 ;
for ( i = 1 ; i < (data[0]+1) ; i++ ) { ave += data[i] ; }
ave /= data[0] ;
printf( "AVERAGE : %d\n" , ave ) ;
}
0170デフォルトの名無しさん
2006/07/11(火) 21:43:14ありがとうございました。
これで補講にならずにすみます。
0171デフォルトの名無しさん
2006/07/11(火) 21:45:47[2] 問題文(含コード&リンク): 以下の2つの課題について,C言語でプログラムを作成し,プログラムおよび実行結果を示し,考察せよ.
�@キーボードから正整数を読み込み,その数を素因数分解した結果を画面に表示する.た
だし,1つの整数を引数とし,その整数の最小の素因数を返す関数をユーザ定義関数として作成
し,この関数を使用すること.
�Aキーボードから7桁の整数を2つ読み込み,その積を表示する.ただし,整数型以外の
変数を用いてはならない.
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン: VisualStudio2003
[3.3] 言語: C
[4] 期限: できるだけ早くお願いします。
[5] その他の制限: お願いします
0172デフォルトの名無しさん
2006/07/11(火) 21:52:03ありがとうございます
0173デフォルトの名無しさん
2006/07/11(火) 21:52:31って、よく見たら完成したやつじゃなくて途中のをうpしてたっけ・・・
不適切だからまたここに来るかな・・・一応書いておくか・・・
if(max < *data++) は if(max < *data) に変更
0174デフォルトの名無しさん
2006/07/11(火) 21:57:37http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2326.c
念のために訂正。C++だったみたいだけど、肝心のアルゴリズムの部分はCでもいけたから良いか
0175165-166
2006/07/11(火) 21:59:42数値というのは元数と変数です。
どうぞ宜しく御願い致します…。
0176デフォルトの名無しさん
2006/07/11(火) 22:19:05華麗にスルーされてるけど、OKだと思うよ
でも、前半のi,jの2重ループ部分だけど、垂直判定の後に長さや内積が不要なら
cos値だけ配列で保持して、他は一時的に変数に保持するだけで十分だよ
ちなみに>>62は俺なんだが、間違ってたね
×cos([89度のラジアン]) < ([内積] / [2つの線分の長さの積]) < cos([91度のラジアン])
○cos([91度のラジアン]) < ([内積] / [2つの線分の長さの積]) < cos([89度のラジアン])
寝る前だったんで・・・許して
017783,104
2006/07/12(水) 01:32:22>>107
to be to be
ten made to be.
と書いたテキスト使いました。
>>108
呼び出しのパラメータが足りないとエラーが起こってしまいました・・・
0178デフォルトの名無しさん
2006/07/12(水) 08:16:35malloc 使ってるけど問題のところは直しておいたよ
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2332.c
その他の場所もついでに書き換えた
0179デフォルトの名無しさん
2006/07/12(水) 08:36:53質問です。
y=ax^2のグラフを*を使って0<=xの範囲で標示使用と思い、以下のようなプログラム
を構築したのですが、うまくいきません。どこがいけないのでしょうか?
親切な方、どうか教えてください。よろしくお願いいたします。
0181デフォルトの名無しさん
2006/07/12(水) 08:46:45#include "stdio.h"
int main(void)
{
int c,i,j;
double a,k;
scanf("a= %f", &a);
if(0 < a && a <= 1)
{
printf(" y");
0182デフォルトの名無しさん
2006/07/12(水) 08:47:41for(i = 0;i <= 50;i=i+1)
{
k = (100 - 2 * i)/100;
printf("%.2f", &k);
printf("|");
for(j = 5;j <= 55;j=j++);
if(k == a*((j-5)/50)*((j-5)/50))
{
printf("*");
}
else
{
printf(" ");
printf("\n");
}
}
return 0;
}
else
{
printf("The value is invalid. Input a real number a such that 0<a<=1.\n");
return 0;
}
0183デフォルトの名無しさん
2006/07/12(水) 09:35:30[2] 問題文(含コード&リンク):
要素数5の配列key[5]に、適当な初期値を用意し、単純交換法でソートするプログラムを作成せよ
要素が1つ決定されるたびに(前ページの流れ図のループ1の中で)、確認の為配列を画面に出力しなさい
初期値として、スライド・教科書の例を使い確認すること。
{58, 27, 6, 32, 13}
比較回数を数えて、最後に画面に出力しなさい
計算量の説明を参照して、確認すること
教科書・スライドの流れ図とプログラムで、要素番号の違いに注意する
[3] 環境
[3.1] OS: XP
[3.2] visual studio.2003
[3.3] 言語: C
[4] 期限: 来週の火曜日まで
[5] 配列、ループ、線形探索、二部探索、構造体
0184デフォルトの名無しさん
2006/07/12(水) 10:40:34文字定数ABCDEは
A=65,B=66,C=67,D=68,E=69
なのに
printf(%d,"ABCDE");
って書くと
4202469
になるのはなんでですか?
0185デフォルトの名無しさん
2006/07/12(水) 10:45:36文字列リテラル"ABCDE"の値は、どこかに確保された文字列へのポインタだから。
%dが指定されているのでポインタを整数として解釈しようとしてそういう表示になる。
0186デフォルトの名無しさん
2006/07/12(水) 11:12:10指定されたアドレスの先頭番地が返される、ってことなんすかね。
アドレスって本当は整数表記じゃないんですかね。
何型で解釈すると正しい値(?)が出るんですかね?
もちっと勉強してきます
ありがとうございました>>185
0187デフォルトの名無しさん
2006/07/12(水) 11:17:19>アドレスって本当は整数表記じゃないんですかね。
ハードウェア上はそうだけど、ふつうC言語ではポインタと整数を区別する。
printfでポインタを表示するには%pを使う。
0188デフォルトの名無しさん
2006/07/12(水) 11:25:04#include <stdio.h>
#define SIZE 5
void swap(int* a, int* b) { int t = *a; *a = *b; *b = t; }
int main() {
int key[SIZE] = { 58, 27, 6, 32, 13 };
int i, j, k, cmp_cnt = 0;
for (k = 0; k < SIZE; k++) { printf("%3d", key[k]); }
printf("\n");
for (i = 0; i < SIZE - 1; i++) {
for (j = SIZE - 1; j > i; j--) {
if (key[j - 1] > key[j]) {
swap(&key[j - 1], &key[j]);
for (k = 0; k < SIZE; k++) { printf("%3d", key[k]); }
printf("\n");
}
cmp_cnt++;
}
}
printf("compare: %d\n", cmp_cnt);
return 0;
}
0189デフォルトの名無しさん
2006/07/12(水) 11:42:3916進数表記になるんですね。
勉強になりました。どうも_(_^_)_
0190デフォルトの名無しさん
2006/07/12(水) 14:23:15↓
A B C 161506.3
A〜Cには文字が入り、右側の数字を連結する。
(右側の数字は時分秒をあらわしている。)
もし、分・秒が1桁の数字なら2桁に直してから連結する。
(0〜9は00〜09となるように。)
このような時刻情報が書き出されているtxtファイルをまとめる(?)という課題があるのですが
さっぱり分かりません。
txtのファイルを読み込み、上のようなルールで編集をしたのち
再度txtで書き出すということなんですが…。
特に分からなくなっているのは、分・秒が一桁の場合、二桁に直してから連結するというところです。
すみませんが、だれか書ける人いませんか?
0191デフォルトの名無しさん
2006/07/12(水) 14:47:49printf("%C %C %C %2d%2d%2d.%d",A,B,C,hour,min,sec,msec);
0192デフォルトの名無しさん
2006/07/12(水) 14:49:05printf("%c %c %c %d%2d%2d.%d",A,B,C,hour,min,sec,msec);
0193デフォルトの名無しさん
2006/07/12(水) 14:52:160194デフォルトの名無しさん
2006/07/12(水) 14:59:12ありがとうございます。早速試してみたのですが、
A B C 16 15 6 3
↓
A B C 1615 6.3
となります。ここでいう秒の6を06というふうには出来ないでしょうか?
0195デフォルトの名無しさん
2006/07/12(水) 15:00:37そのようにしたところ194解決しました。
ありがとうございました。
01961/2
2006/07/12(水) 15:28:07[2] 問題文(含コード&リンク):
#include <stdio.h>
extern int inpint(void);
extern float inpdbl(void);
int main(void)
{
int n;
printf("0: integer 1: floating point\n");
printf("please input a number:");
scanf("%d",&n);
switch(n)
{
case 0: printf("be input an integer:%d\n", inpint());
break;
case 1: printf("be input a floating point number:%f\n", inpdbl());
break;
default: break;
}
return 1;
}
01972/2
2006/07/12(水) 15:30:02#include <stdio.h>
float inpdbl(void)
{
float n;
printf("please RNTER Value:");
scanf("%f", &n);
return n;
}/* 整数値入力関数用ファイル */
#include <stdio.h>
int inpint(void)
{
int n;
printf("please RNTER Value:");
scanf("%d", &n);
return n;
}
次のプログラムは整数値入力、浮動少数点数入力に分岐するものである。
整数値、浮動値の2つの関数をおのおの別のファイルに作成している
プログラムの内容を確認せよ
0198デフォルトの名無しさん
2006/07/12(水) 16:02:010199デフォルトの名無しさん
2006/07/12(水) 16:11:51[2] 問題文(含コード&リンク):
画像の輪郭を抽出するラバーバンドを作成しなさい。
[3] 環境
[3.1] OS:WindowsXP
[3.2] C++Builder
[3.3] 言語:C++
[4] 期限:来週の月曜日まで
[5] その他の制限:C言語
0200デフォルトの名無しさん
2006/07/12(水) 21:12:23[2]入力ファイルから全ての行を読み込んで大文字に書き換えるようにしなさい
[3] 環境
[3.1] xp
[3.2] gcc 32
[3.3] Cのみ
[4] 期限:明日まで
[5] その他の制限: Cの知識は一通りありますよろしくお願いします
0201デフォルトの名無しさん
2006/07/12(水) 21:17:070202デフォルトの名無しさん
2006/07/12(水) 21:34:07ふざけてないです
よろしくお願いします
0203デフォルトの名無しさん
2006/07/12(水) 22:05:22[2] 問題文(含コード&リンク):
長めなのでアップローダーにアップさせてもらいました。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2333.zip
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン:不明
[3.3] 言語: C++
[4] 期限: ([2006年7月13日20:00まで])
[5] その他の制限: 問題文通りに作ること
どなたかご教示お願いします。
0204デフォルトの名無しさん
2006/07/12(水) 22:47:43[2] 問題文(含コード&リンク):
1, 2, 3, 4, 5, ・・・ と表示するプログラムを作成せよ。
(ただし、最初に1を表示、次にリターンキーを押せば2を、といったようにすること)
[3] 環境
[3.1] OS: Windows XP
[3.2] コンパイラ名とバージョン: BCC32
[3.3] 言語: どちらでも可
[4] 期限: 無期限
[5] その他の制限: 特になし
GetAsyncKeyState(VK_RETURN)を使ってみたんですけど、押した時間だけ表示し続けてしまいます。
1度押せば次が表示される、というようにしたいんです。
0205デフォルトの名無しさん
2006/07/12(水) 23:26:16void main(){
int num = 0;
while(1){
printf("%d", ++num);
getchar();
}
}
0206デフォルトの名無しさん
2006/07/12(水) 23:54:030207デフォルトの名無しさん
2006/07/12(水) 23:59:12面倒だから問題の概要くらいは書いといてよ
0208デフォルトの名無しさん
2006/07/13(木) 00:04:04まあ全くやる気ないんだが、linkedlist.hの2行目にバグがあるよ。
0209デフォルトの名無しさん
2006/07/13(木) 00:08:36問題の日本語が意味不明だし
一緒に書かれたソースも main の {} の対応すらままならない状況
どこをどう esp すれば問題も補完して解答も補完出来ると言うのか
0211デフォルトの名無しさん
2006/07/13(木) 00:22:32死ね
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
void main(void)
{
int i, j;
double a, s;
srand((unsigned)time(NULL));
printf("a s = ");
scanf("%lf %lf", &a, &s);
printf("a = %lf\n", a);
printf("s = %lf\n", s);
for(i = 0; i < 100; i++){
double y, w = 0.0;
for(j = 0; j < 12; j++)
w += (double)rand() / (double)RAND_MAX;
y = s * (w - 6) + a;
printf("y[%2d] = %lf\n", i, y);
}
printf("\n");
getchar();
}
0212デフォルトの名無しさん
2006/07/13(木) 00:23:32単語を入力して、その単語と同じ単語の入力回数を持ったリストを作成するというものです。
>>208
本当だ…打ち間違えてる。
ご指摘どうもです。
0213デフォルトの名無しさん
2006/07/13(木) 00:29:41入力した文字(アルファベット)をすべて小文字に直すプログラムをつくれ
ということだと思うのですがどうかよろしくおねがいします
0214デフォルトの名無しさん
2006/07/13(木) 00:38:31#include <stdlib.h>
int main(void)
{
int c;
while((c = fgetc(stdin)) != EOF)
fputc(to_lower(c));
return 0;
}
0215デフォルトの名無しさん
2006/07/13(木) 00:41:58#include <stdlib.h>
int main(void)
{
int c;
while((c = fgetc(stdin)) != EOF)
fputc(tolower(c), stdout);
return 0;
}
0216204
2006/07/13(木) 00:44:28ありがとうございます
0217デフォルトの名無しさん
2006/07/13(木) 00:48:37すいません エラーが8個くらいでるんですけど
0218デフォルトの名無しさん
2006/07/13(木) 00:57:17どんなエラー?
0219くま
2006/07/13(木) 00:58:081.正の整数nをキーボードから与えて、その数を5で割った商と余りを求めよ。
ただし、割り算を用いないで計算すること。(引き算の繰り返しを利用せよ)
2.体重(単位:kg)と身長(単位:m)を与えて(キーボードから)、
そのBMI指数を求め、体型を次のように判定せよ。(ただし、BMI=体重÷身長÷身長)
BMI: 〜18.5未満 だと 体型:痩身
BMI:18.5〜25未満 だと 体型:標準
BMI:25以上 だと 体型:肥満
0220デフォルトの名無しさん
2006/07/13(木) 01:00:36未定義のシンボルMember,first,ptr
あと四行目で式構文エラー
とかいろいろです
0221デフォルトの名無しさん
2006/07/13(木) 01:14:47[2] 問題文(含コード&リンク): 以下のプログラムをselect()を使わずに、
fork()で同様の結果を得るにはどのように書き換えればよいのでしょうか?
[3] 環境
[3.1] OS: (Windows/Cygwin)
[3.2] コンパイラ名とバージョン: (gcc 3.4)
[3.3] 言語: c言語
[4] 期限: ([2006年7月25日])
[5] その他の制限: なし。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2335.txt
0222くま
2006/07/13(木) 01:21:27問1はforを使います。
問2はif〜elseを使います。
明日の朝7時までにお願いしたいです。恐縮。。。
0223デフォルトの名無しさん
2006/07/13(木) 01:21:51まるごとソースうpしろ、ヴォケ
0224デフォルトの名無しさん
2006/07/13(木) 01:22:04http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2336.txt
0225デフォルトの名無しさん
2006/07/13(木) 01:25:30http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2337.txt
0226デフォルトの名無しさん
2006/07/13(木) 01:38:48レス番間違えてない?誤爆?
022783&&104&&177
2006/07/13(木) 02:58:58求めていた結果が出てきました。
本当にありがとうございました。
0228デフォルトの名無しさん
2006/07/13(木) 03:39:59[2] 問題文:日本の通貨体型(500,100,50,10,5,1)で、与えられたおつりの金額に対して貨幣の総数が最少になるようにそれぞれの貨幣の枚数を計算するプログラムを作成せよ。
//プログラムについて
・プログラム名はchange.c
・任意の値はfopen関数で読み出せし、そのファイルをデータファイルと呼ぶ事にする。データファイル名はchange1.txt
----------------------
6
1 5 10 50 100 500
40
75
99
0
----------------------
//↑これがchange1.txtの中身。1行目は貨幣の種類の数、2行目は貨幣の種類、3〜5行目は具体的な例で0が入力されれば終了。
・実行結果
40yen,4mai,(10*4)
75yen,4mai,(50*1)(10*2)(5*1)
99yen,10mai,(50*1)(10*4)(5*1)(1*4)
[3] 環境
[3.1] OS: (redhatlinux)
[3.2] コンパイラ名とバージョン: (gcc 3.4)
[3.3] 言語: C言語
[4] 期限: ([2006年7月15日])
このほかにも3題あるのですが、ところどころができず本当に困っています。よろしくお願いします。
0229デフォルトの名無しさん
2006/07/13(木) 06:20:45環境はwinでBCCでやったので動くかどうかわからないが
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2339.txt
0230デフォルトの名無しさん
2006/07/13(木) 09:50:39本当にありがとうございます。今Macintosh上でgccかけたら通りました。
自己考察してみたいと思います。
申し訳ないのですが、ほかの問題も教えていただけないでしょうか?
今解いていただいたのが、課題1です。
特に課題4はどうやっていいかすらわかりません。
よろしくお願いします。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2340.txt
0231デフォルトの名無しさん
2006/07/13(木) 11:43:38よろしくね。
http://www2.accsnet.ne.jp/~composer/index.html
暇なら見てね。
0232デフォルトの名無しさん
2006/07/13(木) 11:51:36どなたかできる方いますか?
0233お願いします
2006/07/13(木) 12:00:15[2] 問題文: ポインタを使って九九の表を作ってください。
2つ配列を用意します。それぞれの要素をポインタを使って指し示し、積を計算します。
その結果を表示します。例えば配列は下のようにしてみましょう。
int a[9] = {1, 2, 3, 4, 5, 6, 7, 8, 9}
int b[9] = {1, 2, 3, 4, 5, 6, 7, 8, 9}
heikin.cでは、iを0から4まで増やし(ポインタを配列上で1つずつ移していき)ポインタが指し示している
配列の値を使いました。このプログラムでは、ポインタを移す操作はheikin.cと同じで、
繰り返しを2重にします(iとjを用意し、それぞれ0から8まで増やします)
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: ([2006年7月15日00:00まで] または [無期限] のいずれか)
[5] その他の制限:以前作ったプログラムheikin.cを修正し作成するとよいでしょう。
0234お願いします
2006/07/13(木) 12:01:36/* 2つの配列の各要素の平均値を求める, heikin.c */
#include <stdio.h>
main(){
int a[5] = {50, 80, 20, 30, 10};
int b[5] = {20, 40, 30, 20, 50};
int i, *p[2], ave;
p[0] = a;
p[1] = b;
for (i=0; i<5; i++) {
ave = (*(p[0]+i) + *(p[1]+i)) / 2;
printf("average of %d th pair = %d\n", i, ave);
}
}
0235お願いします
2006/07/13(木) 12:04:14http://sneg4vip.com/ameloda/1152/759813.txt
よろしくお願いします
0236デフォルトの名無しさん
2006/07/13(木) 12:19:360237デフォルトの名無しさん
2006/07/13(木) 12:48:26http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2341.txt
0239デフォルトの名無しさん
2006/07/13(木) 17:27:15みんな今週いっぱいで夏休みなんか
ここのおじさん(おばさん)たちは忙しいから
宿題ラッシュになると対応し切れないんだよ
今度からはもうちょっと早めに依頼することを
学んでください
0240デフォルトの名無しさん
2006/07/13(木) 17:37:12おっさん世代が多いとは思えん、せいぜい20代が多いんじゃね?
あるいは、大学3年以上か、大学院生とか?
トーマス氏は30を超えているだろうけど
0241デフォルトの名無しさん
2006/07/13(木) 17:50:250242デフォルトの名無しさん
NGNG0243デフォルトの名無しさん
2006/07/13(木) 19:06:280244デフォルトの名無しさん
2006/07/13(木) 19:12:410245デフォルトの名無しさん
2006/07/13(木) 20:29:54のプログラムを自分で作ったファイルを読み込んで
すべて小文字にしたいんですけど
どうかよろしくおねがいします
[1] 数学演習
[3] 環境
[3.1] xp
[3.2] gcc 32
[3.3] Cのみ
[4] 期限:明日まで
[5] その他の制限: Cの知識は一通りありますよろしくお願いします
215のプログラム
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int c;
while((c = fgetc(stdin)) != EOF)
fputc(tolower(c), stdout);
return 0;
}
0246デフォルトの名無しさん
2006/07/13(木) 20:33:10っリダイレクト
0247デフォルトの名無しさん
2006/07/13(木) 20:44:23すいませんリダイレクトとはC言語においてどのようにやるのでしょうか?
0248デフォルトの名無しさん
2006/07/13(木) 20:51:360249デフォルトの名無しさん
2006/07/13(木) 21:09:43書き換えたらいんでしょうか
infileやらoutfileを使うらしいんですけど
0250デフォルトの名無しさん
2006/07/13(木) 22:48:03[2] 問題文(含コード&リンク):2つの空リスト L1, L2 を用意する.C-d が押されるまでに入力した整数を順次
•L1の先頭に挿入
•L2の適切な位置に挿入(適切な位置とは挿入後のリストが要素の値の昇順になるような位置)
とし,C-d が押された後,できた二つのリストを表示するプログラムを作成せよ.
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2006年7月14日(金)8:40まで
[5] その他の制限:「ポインタと構造体」という単元で出された課題です。
よろしくおねがいします。
0251デフォルトの名無しさん
2006/07/13(木) 23:00:59#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int c;
FILE *fin, *fout;
if ((fin = fopen("a.txt", "r")) != NULL
&& (fout = fopen("a.txt", "r+")) != NULL)
while((c = fgetc(fin)) != EOF)
fputc(tolower(c), fout);
fclose(fin);
fclose(fout);
}
0252デフォルトの名無しさん
2006/07/13(木) 23:02:57ありがとうございます
■ このスレッドは過去ログ倉庫に格納されています