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

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

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2006/07/05(水) 19:24:57
あなたが解けない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++の宿題を片付けます 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:39
de ja vu
0154デフォルトの名無しさん2006/07/11(火) 18:49:29
jamais-vu
0155デフォルトの名無しさん2006/07/11(火) 18:53:01
>>152
# 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
>>149
単なる中継機能だけであれば、次のような機能を実装すればよい。
・サーバは、とあるポート(8080)でlistenする。
・ブラウザからの接続要求で、URLに含まれるサーバへのコネクションを張る(port80で)。
・ブラウザから受信したデータをそのままHTTPサーバに送信する。
・HTTPサーバから受け取ったデータをそのままブラウザに送る。
・Keep-Aliveだったらコネクションを保持、そうでなかったら切る

ブラウザはプロキシの設定でlocalhostの8080番を指定する。
複数クライアントに対応する場合は、forkでもthreadでもお好きなように。
0157デフォルトの名無しさん2006/07/11(火) 19:13:31
>>156
前に似たようなアドバイスをいただいたのですがそれでもできなくて・・・。
解いていただけないでしょうか?
お願いします。
0158デフォルトの名無しさん2006/07/11(火) 19:17:37
>>157
いやその似たようなアドバイスも俺なんだが。
ちなみにそのとき断ったよな?
0159デフォルトの名無しさん2006/07/11(火) 19:21:11
>>158
あの時アドバイスくれた方でしたか。
すいません。
0160デフォルトの名無しさん2006/07/11(火) 19:22:02
>>149
ググってあげたから、これでも改変しなよ。
http://www.unixuser.org/~euske/pub/index.html
のhttpproxy.c
0161デフォルトの名無しさん2006/07/11(火) 19:38:22
>>160
ありがとうございます。
これを見てプログラムで何をしているか学習したいと思います。
0162デフォルトの名無しさん2006/07/11(火) 19:54:59
[1] 授業単元: 情報基礎A
[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
>>162
#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
[1] 情報基礎B
[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:03
{
d=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レスにまたがってしまってスミマセン・・・。
どうぞ宜しくお願いいたします。。。
01671642006/07/11(火) 20:18:50
間違えた。
scanf の跡に、

n = 1000 - n;

を入れてくれ。
0168デフォルトの名無しさん2006/07/11(火) 21:11:42
>>163
#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
>>151
#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
>>148
ありがとうございました。
これで補講にならずにすみます。
0171デフォルトの名無しさん2006/07/11(火) 21:45:47
[1] 授業単元: プログラミング演習1
[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
>>164,168
ありがとうございます
0173デフォルトの名無しさん2006/07/11(火) 21:52:31
>>170
って、よく見たら完成したやつじゃなくて途中のをうpしてたっけ・・・
不適切だからまたここに来るかな・・・一応書いておくか・・・
if(max < *data++) は if(max < *data) に変更
0174デフォルトの名無しさん2006/07/11(火) 21:57:37
>>170 >>146-147
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2326.c
念のために訂正。C++だったみたいだけど、肝心のアルゴリズムの部分はCでもいけたから良いか
0175165-1662006/07/11(火) 21:59:42
追記で大変申し訳有りません。
数値というのは元数と変数です。

どうぞ宜しく御願い致します…。
0176デフォルトの名無しさん2006/07/11(火) 22:19:05
>>106
華麗にスルーされてるけど、OKだと思うよ
でも、前半のi,jの2重ループ部分だけど、垂直判定の後に長さや内積が不要なら
cos値だけ配列で保持して、他は一時的に変数に保持するだけで十分だよ

ちなみに>>62は俺なんだが、間違ってたね
×cos([89度のラジアン]) < ([内積] / [2つの線分の長さの積]) < cos([91度のラジアン])
○cos([91度のラジアン]) < ([内積] / [2つの線分の長さの積]) < cos([89度のラジアン])
寝る前だったんで・・・許して
017783,1042006/07/12(水) 01:32:22
遅レスですいません。
>>107
to be to be
ten made to be.
と書いたテキスト使いました。

>>108
呼び出しのパラメータが足りないとエラーが起こってしまいました・・・
0178デフォルトの名無しさん2006/07/12(水) 08:16:35
>>177
malloc 使ってるけど問題のところは直しておいたよ
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2332.c
その他の場所もついでに書き換えた
0179デフォルトの名無しさん2006/07/12(水) 08:36:53
こんにちは。
質問です。
y=ax^2のグラフを*を使って0<=xの範囲で標示使用と思い、以下のようなプログラム
を構築したのですが、うまくいきません。どこがいけないのでしょうか?
親切な方、どうか教えてください。よろしくお願いいたします。
01801342006/07/12(水) 08:41:58
どなたか>>134お願いします。
0181デフォルトの名無しさん2006/07/12(水) 08:46:45
>>179の続き
#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:41
>>181の続き
for(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
[1] C言語プログラミング
[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
>>184
文字列リテラル"ABCDE"の値は、どこかに確保された文字列へのポインタだから。
%dが指定されているのでポインタを整数として解釈しようとしてそういう表示になる。
0186デフォルトの名無しさん2006/07/12(水) 11:12:10
ポインタになる・・・
指定されたアドレスの先頭番地が返される、ってことなんすかね。
アドレスって本当は整数表記じゃないんですかね。
何型で解釈すると正しい値(?)が出るんですかね?
もちっと勉強してきます
ありがとうございました>>185
0187デフォルトの名無しさん2006/07/12(水) 11:17:19
>>186
>アドレスって本当は整数表記じゃないんですかね。
ハードウェア上はそうだけど、ふつうC言語ではポインタと整数を区別する。
printfでポインタを表示するには%pを使う。
0188デフォルトの名無しさん2006/07/12(水) 11:25:04
>>183
#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:39
>>187
16進数表記になるんですね。
勉強になりました。どうも_(_^_)_
0190デフォルトの名無しさん2006/07/12(水) 14:23:15
A B C 16 15 6 3

↓

A B C 161506.3

A〜Cには文字が入り、右側の数字を連結する。
(右側の数字は時分秒をあらわしている。)
もし、分・秒が1桁の数字なら2桁に直してから連結する。
(0〜9は00〜09となるように。)

このような時刻情報が書き出されているtxtファイルをまとめる(?)という課題があるのですが
さっぱり分かりません。

txtのファイルを読み込み、上のようなルールで編集をしたのち
再度txtで書き出すということなんですが…。

特に分からなくなっているのは、分・秒が一桁の場合、二桁に直してから連結するというところです。

すみませんが、だれか書ける人いませんか?
0191デフォルトの名無しさん2006/07/12(水) 14:47:49
>>190
printf("%C %C %C %2d%2d%2d.%d",A,B,C,hour,min,sec,msec);
0192デフォルトの名無しさん2006/07/12(水) 14:49:05
激しく訂正
printf("%c %c %c %d%2d%2d.%d",A,B,C,hour,min,sec,msec);
0193デフォルトの名無しさん2006/07/12(水) 14:52:16
%02dだろ。
0194デフォルトの名無しさん2006/07/12(水) 14:59:12
>191,192さん

ありがとうございます。早速試してみたのですが、

A B C 16 15 6 3

↓

A B C 1615 6.3

となります。ここでいう秒の6を06というふうには出来ないでしょうか?
0195デフォルトの名無しさん2006/07/12(水) 15:00:37
>193

そのようにしたところ194解決しました。

ありがとうございました。

01961/22006/07/12(水) 15:28:07
[1] 授業単元:プログラミング
[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/22006/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:01
おめえに命令される覚えはねぇ!!
0199デフォルトの名無しさん2006/07/12(水) 16:11:51
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
   画像の輪郭を抽出するラバーバンドを作成しなさい。
[3] 環境
 [3.1] OS:WindowsXP
 [3.2] C++Builder
 [3.3] 言語:C++
[4] 期限:来週の月曜日まで
[5] その他の制限:C言語
0200デフォルトの名無しさん2006/07/12(水) 21:12:23
[1] 数学演習
[2]入力ファイルから全ての行を読み込んで大文字に書き換えるようにしなさい
[3] 環境
 [3.1] xp
 [3.2] gcc 32
 [3.3] Cのみ
[4] 期限:明日まで
[5] その他の制限: Cの知識は一通りありますよろしくお願いします
0201デフォルトの名無しさん2006/07/12(水) 21:17:07
何よその問題はふざけてるの
0202デフォルトの名無しさん2006/07/12(水) 21:34:07
>>201
ふざけてないです
よろしくお願いします
0203デフォルトの名無しさん2006/07/12(水) 22:05:22
[1] 授業単元: 上級プログラミング
[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
[1] 授業単元: プログラミング
[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:16
#include <stdio.h>
void main(){
int num = 0;
while(1){
printf("%d", ++num);
getchar();
}
}
0206デフォルトの名無しさん2006/07/12(水) 23:54:03
どなたか>>144をよろしくお願いします。不明のときは聞いてください
0207デフォルトの名無しさん2006/07/12(水) 23:59:12
>>203
面倒だから問題の概要くらいは書いといてよ
0208デフォルトの名無しさん2006/07/13(木) 00:04:04
>>203
まあ全くやる気ないんだが、linkedlist.hの2行目にバグがあるよ。
0209デフォルトの名無しさん2006/07/13(木) 00:08:36
>>206

問題の日本語が意味不明だし
一緒に書かれたソースも main の {} の対応すらままならない状況

どこをどう esp すれば問題も補完して解答も補完出来ると言うのか
02101442006/07/13(木) 00:12:47
レス番号を間違えましたスイマセン
どなたか>>144をお願いします。不明のときは聞いてください
0211デフォルトの名無しさん2006/07/13(木) 00:22:32
>>144

死ね

#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
>>207
単語を入力して、その単語と同じ単語の入力回数を持ったリストを作成するというものです。

>>208
本当だ…打ち間違えてる。
ご指摘どうもです。
0213デフォルトの名無しさん2006/07/13(木) 00:29:41
>>200は
入力した文字(アルファベット)をすべて小文字に直すプログラムをつくれ
ということだと思うのですがどうかよろしくおねがいします
0214デフォルトの名無しさん2006/07/13(木) 00:38:31
#include <stdio.h>
#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 <stdio.h>
#include <stdlib.h>

int main(void)
{
int c;
while((c = fgetc(stdin)) != EOF)
fputc(tolower(c), stdout);
return 0;
}

02162042006/07/13(木) 00:44:28
>>205
ありがとうございます
0217デフォルトの名無しさん2006/07/13(木) 00:48:37
>>215
すいません エラーが8個くらいでるんですけど
0218デフォルトの名無しさん2006/07/13(木) 00:57:17
>>217
どんなエラー?
0219くま2006/07/13(木) 00:58:08
C言語で、プログラミングしたいのですが・・・。お願いします。
1.正の整数nをキーボードから与えて、その数を5で割った商と余りを求めよ。
  ただし、割り算を用いないで計算すること。(引き算の繰り返しを利用せよ)
2.体重(単位:kg)と身長(単位:m)を与えて(キーボードから)、
  そのBMI指数を求め、体型を次のように判定せよ。(ただし、BMI=体重÷身長÷身長)
  
  BMI:  〜18.5未満 だと 体型:痩身
  BMI:18.5〜25未満 だと 体型:標準
  BMI:25以上      だと 体型:肥満
0220デフォルトの名無しさん2006/07/13(木) 01:00:36
>>218
未定義のシンボルMember,first,ptr
あと四行目で式構文エラー
とかいろいろです
0221デフォルトの名無しさん 2006/07/13(木) 01:14:47
[1] 授業単元: プログラミングA
[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
>>221
まるごとソースうpしろ、ヴォケ
0224デフォルトの名無しさん2006/07/13(木) 01:22:04
>>219
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2336.txt
0225デフォルトの名無しさん2006/07/13(木) 01:25:30
>>219 そんなことで俺様がクマーーー
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2337.txt
0226デフォルトの名無しさん2006/07/13(木) 01:38:48
>>220
レス番間違えてない?誤爆?
022783&&104&&1772006/07/13(木) 02:58:58
>>178
求めていた結果が出てきました。
本当にありがとうございました。
0228デフォルトの名無しさん2006/07/13(木) 03:39:59
[1] 授業単元: プログラミングA
[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
>>228
環境はwinでBCCでやったので動くかどうかわからないが
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2339.txt
0230デフォルトの名無しさん2006/07/13(木) 09:50:39
>>229
本当にありがとうございます。今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
>>171
どなたかできる方いますか?
0233お願いします2006/07/13(木) 12:00:15
[1] 授業単元:C言語プログラミング入門

[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
heikin.c

/* 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:14
以下の4通りを作成し、提出
http://sneg4vip.com/ameloda/1152/759813.txt

よろしくお願いします
0236デフォルトの名無しさん2006/07/13(木) 12:19:36
どなたか>>203出来る方居ませんか?
0237デフォルトの名無しさん2006/07/13(木) 12:48:26
>>233
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2341.txt
02382332006/07/13(木) 14:27:30
>>237
早速の回答ありがとうございました(・∀・ )!
これで単位は無事くるはず・・・!
0239デフォルトの名無しさん2006/07/13(木) 17:27:15


みんな今週いっぱいで夏休みなんか

ここのおじさん(おばさん)たちは忙しいから
宿題ラッシュになると対応し切れないんだよ

今度からはもうちょっと早めに依頼することを
学んでください

0240デフォルトの名無しさん2006/07/13(木) 17:37:12
>>239
おっさん世代が多いとは思えん、せいぜい20代が多いんじゃね?
あるいは、大学3年以上か、大学院生とか?
トーマス氏は30を超えているだろうけど
0241デフォルトの名無しさん2006/07/13(木) 17:50:25
中高生も結構いるような気がする。
0242デフォルトの名無しさんNGNG
俺は3日前に33になりましたが何か。
0243デフォルトの名無しさん2006/07/13(木) 19:06:28
俺と同じく仮面ライダーV3、ウルトラマン7世代か
0244デフォルトの名無しさん2006/07/13(木) 19:12:41
10代の俺がいる
0245デフォルトの名無しさん2006/07/13(木) 20:29:54
>>215
のプログラムを自分で作ったファイルを読み込んで
すべて小文字にしたいんですけど
どうかよろしくおねがいします
[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
>>245
っリダイレクト
0247デフォルトの名無しさん2006/07/13(木) 20:44:23
>>246
すいませんリダイレクトとはC言語においてどのようにやるのでしょうか?
0248デフォルトの名無しさん2006/07/13(木) 20:51:36
OSたんの機能
0249デフォルトの名無しさん2006/07/13(木) 21:09:43
課題として提出する場合にはどのように
書き換えたらいんでしょうか
infileやらoutfileを使うらしいんですけど
0250デフォルトの名無しさん2006/07/13(木) 22:48:03
[1] 授業単元:情報科学�U
[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
>>249
#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
>>251
ありがとうございます
■ このスレッドは過去ログ倉庫に格納されています