ぼるじょあがC/C++の宿題を片づけますYO! 68代目at TECH
ぼるじょあがC/C++の宿題を片づけますYO! 68代目 - 暇つぶし2ch147: ◆UoNQqijD4I
07/06/22 15:47:15
[1] 授業単元:プログラミング実習
[2] 問題文(含コード&リンク):4行3列の行列Aと3行4列の行列Bの異なる行列式のファイルを読み込み、
読み込んだ行列と、Aの転置行列、及びAの転置行列とBの行列との和を出力するプログラムを作成し、
ソースコードを提出すること。

注意)読み込むファイルはこちら側で用意しておきますので、
行列Aのファイル名を[kadai1.dat]、行列Bのファイル名を[kadai2.dat]という名前で提出すること。


[3] 環境
 [3.1] OS Linux
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語:C言語
[4] 期限: 今日の5時まで!
[5] その他の制限:バイナリファイル、ポインタまで習いました。もう1つのサイトにも書き込みましたが、
結構急ぎなので、できればこちらでもお願いします!!

148: ◆sLIzEFbWfc
07/06/23 11:49:23
>>147です!
期限過ぎましたが、とりあえずは提出したのでよろしくお願いします
ちなみにC言語は今年の春から初めて初心者です(;;)

149:デフォルトの名無しさん
07/06/23 12:23:53
提出したんならもういいじゃん

150:依頼者
07/06/23 16:40:46
1] 授業単元: C言語演習
[2] 問題文(含コード&リンク):
(1)変数xのyビット目を0にする関数int bit_clear(int x, int y)の作成。

(2)変数xのyビット目の値を返す関数int bit_test(int x,int y)の作成。


[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン:visual studio.net
 [3.3] 言語:C++
[4] 期限: 07年6月25日まで
[5] その他の制限:特になし

演算子の問題です。よろしくお願いします。

151:仕様がよく判らんから適当に書いた
07/06/23 16:50:35
int bit_clear(int x, int y) {return x & ~ (1 << y);}
nt bit_test(int x,int y) {return (x >> y) & 1;}

152: ◆DpMW3bRjps
07/06/23 18:55:52
内容:
>>148です
とりあえず提出し「た」いのでよろしくお願いします
脱字すみません↓↓ちなみに課題は>>147です。。。
#include <stdio.h>
#include <stdlib.h>
#define ROW 4
#define COLUMN 3
int main(void)
{ FILE *fp;
double a[ROW][COLUMN];
int i, j;
if ( (fp = fopen( "kadai1.dat", "r")) == NULL )
{ printf("ファイルが見つかりません : kadai.dat \n");
exit(1); }
printf("行列は次の通りです\n");
for( i = 0 ; i < ROW ; i++)
{ for( j =0 ; j < COLUMN ; j++)
{ fscanf(fp, "%lf", &a[i][j]);
printf("%5.2f\t", a[i][j]); }
printf("\n"); }
printf("転置行列は次の通りです\n");
for( j = 0 ; j < COLUMN ; j++)
{ for( i = 0 ; i < ROW ; i++)
{fscanf(fp, "%lf", &a[i][j]);
printf("%5.2f\t",a[i][j]); }
printf("\n"); }
fclose( fp );
return 0;
}

153:homoじょあ ◆5OLf4yFnuM
07/06/23 20:21:37
>>152
#include <stdio.h>

#define file1 "kadai1.dat"
#define file2 "kadai2.dat"

int main(void){
FILE *fp;
double A[3][4], B[4][3], TA[4][3];
int i, k;

printf("A:\n");
fp = fopen(file1, "r");
for(i=0; i<3; i++){
for(k=0; k<4; k++){
fscanf(fp, "%lf", &A[i][k]);
printf("%5.2f ", A[i][k]);
}
printf("\n");
}

printf("\nB:\n");
fp = fopen(file2, "r");
for(i=0; i<4; i++){
for(k=0; k<3; k++){
fscanf(fp, "%lf", &B[i][k]);
printf("%5.2f ", B[i][k]);
}
printf("\n");
}
fclose(fp);

154:homoじょあ ◆5OLf4yFnuM
07/06/23 20:23:01
printf("\nTA:\n");
for(i=0; i<4; i++){
for(k=0; k<3; k++){
TA[i][k] = A[k][i];
printf("%5.2f ", TA[i][k]);
}
printf("\n");
}

printf("\nB+TA:\n");
for(i=0; i<4; i++){
for(k=0; k<3; k++){
printf("%5.2f ", B[i][k] + TA[i][k]);
}
printf("\n");
}
return 0;
}


155: ◆DpMW3bRjps
07/06/23 20:35:24
>>152です
ありがとうございました!!

156:デフォルトの名無しさん
07/06/24 07:51:30
[1] 授業単元:アルゴリズム研究
[2] 問題文:10リットル、8リットル、3リットルの容器があり、10リットルの容器に水がいっぱい入っている。
この3つの容器を用い、3リットルの容器に1リットルの水を取り出す最小の手順を答えよ。ただし、水を移す時は、移す側が空になるか、移す側がいっぱいになってときとする。

幅優先探索と言うのを用いるそうです。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc 5.5.1
 [3.3] 言語: C
[4] 期限: 6月25日の2400まで
[5] その他の制限:バケツの水の入り方を、座標に見立て、その座標に番号をつけ、広がり優先探索を用いる。

どうしたら良いかわからず、焦っています。
急ですがよろしくお願いします

157:デフォルトの名無しさん
07/06/24 21:56:40
一次元配列に入った数字の最大値を自作関数maxofをつかって求めよって問題です。
配列の中身は25、35、8、4、23でお願いします。

158:デフォルトの名無しさん
07/06/24 22:07:06
>>157
>>1のテンプレに沿って書いてくれ。あと配列の型も

159:デフォルトの名無しさん
07/06/24 23:27:06
>>157
仕様が曖昧すぎるので勝手に決めた。
配列の先頭アドレスと配列数を入力とし、配列内の最大値を出力とする。
配列内の数字は正の整数のみとする。

int maxof( int * array, int max )
{
int i;
int ans = 0;
for ( i = 0; i < max; i++ ) {
if ( *array > ans ) ans = *array;
array++;
}

return ans;
}

160:デフォルトの名無しさん
07/06/25 15:27:00
[1] 授業単元:ユニット演習
[2] 問題文(含コード&リンク):正整数n を入力し,2 ~ n の範囲にある素数およびその個数を求めるプログラムを作成
しなさい.
[3] 環境
 [3.1] OS:windows
 [3.2] コンパイラ名とバージョン:cygwin
 [3.3] 言語:C
[4] 期限:特になし
[5] その他の制限:特になし

よろしくお願いします。

161:デフォルトの名無しさん
07/06/25 15:57:04
#include <stdio.h>
int prime[500000];
int main(void)
{
   int i, j, n, cnt = 0;

   printf("正の整数を入力してください:");
   scanf("%d", &n);

   prime[cnt++] = 2;

   for(i=3; i<=n; i+=2) {
      int flag = 0;
      for(j=0; prime[j]*prime[j]<=i; j++) {
         if(i%prime[j]==0) {
            flag = 1;
            break;
         }
      }
      if(flag==0) prime[cnt++] = i;
   }
   for(i=0; i<cnt; i++) printf("%d ", prime[i]);
   printf("\n%d個\n", cnt);
   return 0;
}


162:kino
07/06/25 20:14:23
年頭(1月1日0時0分)からの経過「分」数を標準入力から入力し、
それが何月何日の何時何分に当たるかを標準出力に出力するプログラムを、
以下の手順に従って(必ず以下の仕様・条件を満たすこと)、C言語を用いて作成せよ。
なお、本課題では、その年が閏年かどうかを考慮する必要はないものとする
(閏年ではないものとしてよい)。

 なお、制限事項として、本課題では、構造体は用いてはならないものとする
(構造体を用いた場合は未提出として扱う)。

1. 年頭(1月1日0時0分)からの経過「分」数から、それが何月何日の何時何分に当たるかを求める関数whattime()を作成し、必ず、この関数を用いてプログラムを完成せよ。ただし、この関数内では(エラーメッセージ出力以外の)入出力を一切行ってはならないものとする。
2. whattime()が返す情報を以下のように定める。
* 「月」の情報は、数値ではなく、英語の名称(例えば "April")とする。プログラム上では、文字列(文字列ポインタ)を返すものとする。
* 「日」の情報は数値で返すものとする。プログラム上では、int型のデータを返すものとする。
* 「時」および「分」の情報は、それぞれ数値として返すのではなく、「hh:mm」の形式の文字列(文字列ポインタ)を返すものとする。
3. whattime()が返す文字列の情報については、その記憶領域をすべて whattime()の内部で用意あるいは確保すること。つまり、whattime()を呼び出す側で文字配列を定義する必要がないようにせよ。

 通常、関数内で定義した変数(自動変数)は、関数からリターンした後は利用できない。関数からリターンした後でもその領域を確保したまま利用するためには、以下のいずれかの方法をとらなければならない。
* static 宣言とともに変数を定義する。
* malloc()によって領域を確保する。

すいませんどうかこの問題おねがいします。

163:kino
07/06/25 20:31:57
[1] 授業単元:c言語
[2] 問題文(含コード&リンク):上記
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: すぎてます
[5] その他の制限:なし
お願いします。


164:デフォルトの名無しさん
07/06/25 21:50:04
[1] 授業単元:情報数学
[2] 問題文(含コード&リンク):
2分法の関数を
double bisection(unaryfunc f, double a, double b, double tol, int n);
Newton法の関数を
double newton(unaryfunc f, double p, double tol, int n);
と定義した、方程式解法ライブラリ equation.h, equation.cを作り、
include”equation.h”とすると
newton(myfunc, p, tol, n); のようにmain関数から呼び出して使える
ようにしてみなさい。

[3] 環境
 [3.1] OS:Windows XP
 [3.2] bcc32
 [3.3] 言語:C
[4] 期限:今週中

よろしくお願いします。

165:デフォルトの名無しさん
07/06/26 00:41:44
C言語です。
2進数の四則演算ができるプログラムを作れって問題です。お願いします。

166:デフォルトの名無しさん
07/06/26 00:48:24
>>165
意味が分からん。入力を受け付ける際に2進数を入力するのか
2進数の各桁を筆算するやり方なのか。

167:ぼるじょあ ◆hZ8e4Wjqvw
07/06/26 01:09:18
>>162
(・3・) エェー 構造体がダメだから共用体使ったYO!
URLリンク(kansai2channeler.hp.infoseek.co.jp)

168:デフォルトの名無しさん
07/06/26 06:24:42
[1] 授業単元:C++研究
[2] 問題文:
URLリンク(kansai2channeler.hp.infoseek.co.jp)(プログラム1)
URLリンク(kansai2channeler.hp.infoseek.co.jp)(プログラム2)
上記1~2のプログラムを下記のように修正します。

クラス(設計図)部分を概要部分(ヘッダファイル)と実装部分(ソースファイルに分け)
そしてメイン部分も分け、2つのプログラムを新しく作り直しなさい。

[3] 環境
 [3.1] OS:Windows xp
 [3.2] コンパイラ名とバージョン:Visual studio.2005
 [3.3] 言語: C++
[4] 期限: ([2007年6月27日12:00まで]
[5] その他の制限:特になし
どうかよろしくお願いします

169:デフォルトの名無しさん
07/06/26 15:09:55
1] 授業単元:C
[2] 問題文:
要素数が同じint型配列xaとxbの対応する要素(xa[i]とxb{i})の値が
・xa{i}<xb[i]ならば、xa[i]とxb[i]を入れ替え
・xa{i}≧xb[i]ならば、そのまま
・入れ替えた要素の個数を返す
関数swap_bを作成し、関数swap_bを用いて、下記の配列fa,fbでfaの要素が必ず大きい(または等しい)ように入れ替えて、結果を表示するプログラムを作成しなさい。(下表の配列faとfbの元のデータは配列の初期化で設定)
(元の配列要素)
添字  0 1 2 3 4
fa 3 8 1 9 4
fb 9 1 7 5 6
(変換後の配列要素)
添字  0 1 2 3 4
fa 9 8 7 9 5
fb 3 1 1 6 4

[3] 環境
 [3.1] OS:Windows xp
 [3.2] コンパイラ名とバージョン:VISUALSTUDIO2005
 [3.3] 言語: C
[4]期限 6月28日
実行結果
元のデータ
fa : 3 8 1 9 4
fb : 9 1 7 5 6
--------------
変換後のデータ
fa : 9 8 7 9 5
fb : 3 1 1 6 4
入れ替えた個数=3

どうかよろしくお願いします

170:デフォルトの名無しさん
07/06/26 15:11:44
1] 授業単元:C
[2] 問題文:
要素型が同じint型配列xaとxbの対応する要素(xa[i]とxb[i])の値をすべて入れ替える関数swap_arrayを作成し、下記の配列fa,fbの要素を入れ替えて、その結果を表示するプログラムを作成しなさい。(下表の配列faとfbの元のデータは配列の初期化で設定)
添字 0 1 2 3 4
fa 3 8 1 9 4
fb 9 1 7 5 6

[3] 環境
 [3.1] OS:Windows xp
 [3.2] コンパイラ名とバージョン:VISUALSTUDIO2005
 [3.3] 言語: C
[4]期限 6月28日

実行結果
元のデータ
fa : 3 8 1 9 4
fb : 9 1 7 5 6
--------------
変換後のデータ
fa : 9 1 7 6 5
fb : 3 8 1 9 4



どうかよろしくお願いします

171:デフォルトの名無しさん
07/06/26 15:12:34
1] 授業単元:C
[2] 問題文:
要素型がnumであるint型配列vcの値が最大である要素の添字を返す関数max_indexを作成しなさい。関数max_indexを用いてキーボードから読み込まれた5つの値のうち最大値は何番目だったかを表示するプログラムを作成しなさい

[3] 環境
 [3.1] OS:Windows xp
 [3.2] コンパイラ名とバージョン:VISUALSTUDIO2005
 [3.3] 言語: C
[4]期限 6月28日

実行結果
1番目のデータ=99
2番目のデータ=120
3番目のデータ=80
4番目のデータ=110
5番目のデータ=100
-------------
最大値は2番目に入力

どうかよろしくお願いします

172:デフォルトの名無しさん
07/06/26 15:14:28
1] 授業単元:C
[2] 問題文:
要素型がnumであるdouble型配列dataの値の平均値を返す関数meanvを作成しなさい。関数meanvを用いて、キーボードから読み込まれた4つの値の平均値を表示するプログラムを作成しなさい

[3] 環境
 [3.1] OS:Windows xp
 [3.2] コンパイラ名とバージョン:VISUALSTUDIO2005
 [3.3] 言語: C
[4]期限 6月28日

実行結果例
1番目のデータ=1.55
2番目のデータ=2.66
3番目のデータ=3.77
4番目のデータ=4.88
-------------
平均値 3.21
どうかよろしくお願いします

173:デフォルトの名無しさん
07/06/26 15:15:14
1] 授業単元:C
[2] 問題文:
数型引数x、yに対していの値を返す関数power2を作成し、関数power2を用いて、キーボードから読み込まれた2つの実数a,bに対して の値を画面に出力するプログラムを作成しなさい

[3] 環境
 [3.1] OS:Windows xp
 [3.2] コンパイラ名とバージョン:VISUALSTUDIO2005
 [3.3] 言語: C
[4]期限 6月28日
実行結果例
実数 a : 1.23
実数 b : 9.87
答え = 98.93

どうかよろしくお願いします

174:デフォルトの名無しさん
07/06/26 15:17:32
1] 授業単元:C
[2] 問題文:
2つのint型変数x0、x1(x0<x1とする)に対してx0からx1までの整数の和を返す関数souwa2を作成しなさい。関数souwa2を用いて、キーボードから2つの整数値a,b(a<bとする)を読み込み、そのaからbまでの和を求めるプログラムを作成しなさい

[3] 環境
 [3.1] OS:Windows xp
 [3.2] コンパイラ名とバージョン:VISUALSTUDIO2005
 [3.3] 言語: C
[4]期限 6月28日
実行結果例
整数a : 33
整数b : 98
33から98までの和=4323

どうかよろしくお願いします

175:デフォルトの名無しさん
07/06/26 15:19:41
1] 授業単元:C
[2] 問題文:
int型配列の変数numを引数として、1からnumまでの整数の和を返す関数souwaを作成しなさい。関数souwaを用いて、キーボードから整数値を読み込み、1からその整数値までの和を求めるプログラムを作成しなさい

[3] 環境
 [3.1] OS:Windows xp
 [3.2] コンパイラ名とバージョン:VISUALSTUDIO2005
 [3.3] 言語: C
[4]期限 6月28日

実行結果例
整数を入力 : 98
1から98までの和=4851


176:デフォルトの名無しさん
07/06/26 15:21:01
1] 授業単元:C
[2] 問題文:
要素型がnoであるint型の配列vcの並び(格納されているデータの順番)を逆順にする関数rev_arrayを作成しなさい。関数rev_arrayを用いて、下記のような値をもつ配列bufの各要素の値を逆順に入れ替えて、but[0]から順番に表示するプログラムを作成しなさい
添字 0 1 2 3 4
値  10 20 30 40 50

[3] 環境
 [3.1] OS:Windows xp
 [3.2] コンパイラ名とバージョン:VISUALSTUDIO2005
 [3.3] 言語: C
[4]期限 6月28日

実行結果
buf[0] : 50
buf[1] : 40
buf[2] : 30
buf[3] : 20
buf[4] : 10

どうかよろしくお願いします

177:デフォルトの名無しさん
07/06/26 16:27:08
>>170
URLリンク(kansai2channeler.hp.infoseek.co.jp)

178:デフォルトの名無しさん
07/06/26 16:39:08
>>171
URLリンク(kansai2channeler.hp.infoseek.co.jp)

179:デフォルトの名無しさん
07/06/26 17:01:46
>>174
#include<stdio.h>

int souwa2(int x0, int x1);

int main(void)
{
    int a ,b ,sum;
    printf("a:");scanf("%d",&a);
    printf("b:");scanf("%d",&b);
    sum=souwa2(a,b);
    printf("%dから%dまでの整数の和は%d", a, b ,sum);
    return 0;
}

int souwa2(int x0, int x1)
{
    int sum=0;
    if(x0>x1){/*x0がx1より大きい時は警告して-1を返す*/
        printf("x0がx1より大きい\n");
        return -1;
    }
    for(;x1>=x0;x1--)
        sum+=x1;
    return sum;
}

180:デフォルトの名無しさん
07/06/26 17:06:47
>>175
#include<stdio.h>

int souwa(int num);

int main(void)
{
    int a ,sum;
    printf("a:");scanf("%d",&a);
    sum=souwa(a);
    printf("1から%dまでの整数の和は%d", a,sum);
    return 0;
}

int souwa(int num)
{
    int sum=0;
    for(;num>=1;num--)
        sum+=num;
    return sum;
}

181:デフォルトの名無しさん
07/06/26 17:23:29
>>176
#include<stdio.h>
void rev_array(int vc[],int no);
int main(void)
{
    int i, buf[5];
    for(i=0;i<5;i++){
        printf("buf[%d] : ", i);
        scanf("%d",&buf[i]);
    }
    rev_array(buf,5);
    printf("添字 ");
    for(i=0;i<5;i++) printf(" %d", i);
    printf("\n値 ");
    for(i=0;i<5;i++) printf(" %d", buf[i]);
    return 0;
}

void rev_array(int vc[],int no)
{
    int i,temp;
    for(i=0;i<(no/2-1);i++){
        temp=vc[i]; vc[i]=vc[no-1-i]; vc[no-1-i]=temp;
    }
}

182:デフォルトの名無しさん
07/06/26 17:30:41
>>173
>数型引数x、yに対していの値を返す
の部分が分りません。

183:デフォルトの名無しさん
07/06/26 17:36:51
数値だけ見れば x^2+y^2だな

184:デフォルトの名無しさん
07/06/26 18:08:15
x^2+y^2で見切り発車します。

>>173
#include<stdio.h>
double power2(double x,double y);
int main(void)
{
    double a,b;
    printf("実数 a:");scanf("%lf",&a);
    printf("実数 b:");scanf("%lf",&b);
    printf("答え = %.2f", power2(a, b));
    return 0;
}

double power2(double x,double y)
{
    return x*x+y*y;
}

185:デフォルトの名無しさん
07/06/26 18:21:16
>>165の問題は、入力を受け付けるさいに2進数を入力します。

186:デフォルトの名無しさん
07/06/26 18:22:45
>>165の問題は、入力のさい、2進数で入力します。

187:デフォルトの名無しさん
07/06/26 22:39:31
[1] 授業単元: プログラミング実習
[2] 問題文(含コード&リンク):
構造体を使って学生の名前、大学名、学科、生年月日(年はintで月日がshort),趣味を定義する(全て実在しないものになるようにする)
URLリンク(kansai2channeler.hp.infoseek.co.jp)
まずはfwriteを用いて先頭に学生の数もバイナリ形式で出力する。その後バイナリ形式で定義した学生の情報を出力する。
その後freadでまず生徒の数を読み込み、その人数分ループさせ画面上に読めるように一人ずつ出力する。
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] gcc 3.4
 [3.3] 言語: (C
[4] 期限: 6月27日22:00まで
[5] その他の制限:特になし

よろしくお願いします。

188:デフォルトの名無しさん
07/06/27 01:36:32
ぼるじょあもほもじょあも来ないな

189:kino
07/06/27 02:47:28
>>167
ほんとありがとうございました!!!

190:デフォルトの名無しさん
07/06/27 03:26:51
>>187
誰もやらないんで、やってみた。
バイナリなんて普段使わないから、これでいいのやら・・・
構造体のアライメントとかは一切考慮していない。
URLリンク(kansai2channeler.hp.infoseek.co.jp)

191:デフォルトの名無しさん
07/06/27 03:41:39
0224 < これは先頭に0があるせいで、8進数の値として扱われているね。
その辺、質問者はこれで良いんだろうか?

192:デフォルトの名無しさん
07/06/27 07:56:18
>>191
Oh!そんなとこまで気にしてナカタヨ。

193:デフォルトの名無しさん
07/06/27 14:58:08
>>179>>180>>181>>184
ありがとうございました

>>169>>170>>171>>172
お願いします

194:デフォルトの名無しさん
07/06/27 16:12:47
>>169
#include <stdio.h>

int swap_b(int fa[], int fb[],int n);

int main(void)
{
    int i,n, fa[]={3, 8, 1, 9, 4}, fb[]={9, 1, 7, 5, 6};
    printf("元のデータ \n");
    printf("fa :");for(i=0;i<5;i++) printf(" %d",fa[i]);printf("\n");
    printf("fb :");for(i=0;i<5;i++) printf(" %d",fb[i]);printf("\n");
    n=swap_b(fa, fb, 5);
    printf("\n-------------- \n変換後のデータ\n");
    printf("fa :");for(i=0;i<5;i++) printf(" %d",fa[i]);printf("\n");
    printf("fb :");for(i=0;i<5;i++) printf(" %d",fb[i]);printf("\n");
    printf("入れ替えた個数=%d",n);
    return 0;
}

int swap_b(int fa[], int fb[],int n)
{
    int i, temp,c;
    c=0;
    for(i=0;i<n;i++){
        if(fa[i]<fb[i]){
            temp=fa[i]; fa[i]=fb[i]; fb[i]=temp; c++;
        }
    }
    return c;
}

195:デフォルトの名無しさん
07/06/27 16:22:05
>>170
#include <stdio.h>

void swap_array(int xa[], int xb[],int n);

int main(void)
{
    int i, fa[]={3, 8, 1, 9, 4}, fb[]={9, 1, 7, 5, 6};
    printf("元のデータ \n");
    printf("fa :");for(i=0;i<5;i++) printf(" %d",fa[i]);printf("\n");
    printf("fb :");for(i=0;i<5;i++) printf(" %d",fb[i]);printf("\n");
    swap_array(fa, fb, 5);
    printf("\n-------------- \n変換後のデータ\n");
    printf("fa :");for(i=0;i<5;i++) printf(" %d",fa[i]);printf("\n");
    printf("fb :");for(i=0;i<5;i++) printf(" %d",fb[i]);printf("\n");
    return 0;
}

void swap_array(int xa[], int xb[],int n)
{
    int i, temp;
    for(i=0;i<n;i++){
            temp=xa[i]; xa[i]=xb[i]; xb[i]=temp;
    }
}

196:デフォルトの名無しさん
07/06/27 16:34:34
>>171
>要素型がnumである、の要素型は要素数の打ち違いと判断した。
#include <stdio.h>

int max_index(int vc[], int num);

int main(void)
{
    int i,vc[5],max;
    for(i=0;i<5;i++){
        printf("%d番目のデータ=",i+1);
        scanf("%d", &vc[i]);
    }
    max=max_index(vc, 5);
    printf("最大値は%d番目に入力",max+1);
    return 0;
}

int max_index(int vc[], int num)
{
    int i,max;
    max=0;
    for(i=0;i<num;i++){
        if(vc[i]>vc[max]){
            max=i;
        }
    }
    return max;
}

197:デフォルトの名無しさん
07/06/27 17:04:40
>>172
#include <stdio.h>

double meanv(double data[], int num);

int main(void)
{
    int i;
    double mean, data[4];
    for(i=0;i<4;i++){
        printf("%d番目のデータ=",i+1);
        scanf("%lf", &data[i]);
    }
    mean=meanv(data, 4);
    printf("平均値 %.2f",mean);
    return 0;
}

double meanv(double data[], int num)
{
    int i;
    double sum=0;
    for(i=0;i<num;i++){
        sum=sum+data[i];
    }
    return sum/num;
}

198:デフォルトの名無しさん
07/06/27 17:46:46
>>194>>195>>196>>197
ありがとうございました

199:デフォルトの名無しさん
07/06/27 17:47:58
1] 授業単元:C
[2] 問題文:
要素数がnoであるint型の配列vcの最小値を返却値として返す関数min_ofを作成しなさい。この関数min_ofを利用して、キーボードから10名の得点データを入力すると、その最小値に表示するプログラムを作成しなさい
[3] 環境
 [3.1] OS:Windows xp
 [3.2] コンパイラ名とバージョン:VISUALSTUDIO2005
 [3.3] 言語: C
[4]期限 6月28日

実行結果例
1 番目の得点= 70
2 番目の得点= 50
: (途中省略)
10 番目の得点 = 63
-------------------
最小値 : 50点

よろしくお願いします

200:デフォルトの名無しさん
07/06/27 17:51:46
1] 授業単元:C
[2] 問題文:
要素数がnoであるint型の配列vcの全要素に整数xの値を代入する関数fillを作成しなさい(関数fillは値を返さない)。この関数fillを用いて、要素数5のint型配列xcの全要素をキーボードから読み込んだ値に設定するプログラムを作成しなさい

[3] 環境
 [3.1] OS:Windows xp
 [3.2] コンパイラ名とバージョン:VISUALSTUDIO2005
 [3.3] 言語: C
[4]期限 6月28日

実行結果例
設定する値を入力= 7
-----------------
xc[0]=7
xc[1]=7
xc[2]=7
xc[3]=7
xc[4]=7

よろしくお願いします

201:デフォルトの名無しさん
07/06/27 18:42:29
怒涛の宿題丸投げには恐れ入るな

202:デフォルトの名無しさん
07/06/27 19:26:46
[1] 授業単元:C言語実習基礎
[2] 問題文:URLリンク(kansai2channeler.hp.infoseek.co.jp)
上記プログラムを線形リストから双方向リストへ作り直す。
[3] 環境
 [3.1] OS:Windows xp
 [3.2] コンパイラ名とバージョン:Visual studio.2005
 [3.3] 言語: C
[4] 期限: 明朝まで
[5] その他の制限: 特になし
よろしくお願いいたします。

203:デフォルトの名無しさん
07/06/27 20:05:07
このレベルの低さで、ここまで大量に丸投げするのはすごいな。

204:デフォルトの名無しさん
07/06/27 23:20:39
>>200
よし、3日前にHSPからC++に以降した俺に任せろ。期限に間に合うかどうかは知らん。

205:デフォルトの名無しさん
07/06/28 00:29:47
-----------------------------------------------------------
/////////////////////////////////////////////
//fill関数
/////////////////////////////////////////////
//要素数5の配列変数Uncoの全ての要素に、
//キーボードから入力された値を代入する関数。
//入力値の宣言
int P1=0;
//以下関数本体
int fill(int P1) {
//配列の作成
int Unco[5];
//全要素にP1の値を代入
int cnt=0;
while(cnt<(P1-1)) {
//代入
Unco[cnt]=P1;
//カウンタ回し
cnt++;
}
return 0;
}
---------------------------------------------------------------

C++の細かい仕様がまだ分からん。やっぱ諦めるわ。落書きレベルだけど一応載せとく。


206:デフォルトの名無しさん
07/06/28 00:38:15
>>205
1行目の宣言文は不要。この場合のループではforが一般的。
というよりも、この関数は仕様を一切満たしていない。
fillされるのはローカルのUnco配列のみで、呼び出し側の配列がfillされていないため。

実行確認していないけど、たぶんこんな感じ。
>>200
// pvc 配列の先頭アドレス no 配列個数 x 代入する値
void fill( int * pvc, int no, int x ) {
int i;
for ( i = 0; i < no; i++ ) {
pvc[ i ] = x;
}
}


207:デフォルトの名無しさん
07/06/28 14:56:49
授業単元:C言語
環境:if文・for文・while文・do~while文・switch~case文・
OS:Windows
コンパイラ名とバージョン:borland
言語:C
テーマ:文字配列の操作
問題
文字列と検索文字、置換文字を入力し文字列中の検索文字を置換文字に置き換えなさい
実行画面
文字列(m1)入力==>ABCDEFAABCDABC
削除文字==>A
置換文字==>*

結果文字列(m1):BCDEF**BCD*BC



208:デフォルトの名無しさん
07/06/28 15:04:11
授業単元 関数

言語 C言語

引数の階乗(1*2*3*....*n)を関数を作れ

お願いします

209:202
07/06/28 15:55:58
解決しました。お騒がせしました。

210:デフォルトの名無しさん
07/06/28 16:33:29
>>208
できたぜ!まだヘボいけど、生まれて初めて自分でC++のプログラム作れたヤッホー。

// Info : 引数の階乗を返すfact関数をコンソールウィンドウで使う
///////////////////インクル
#include "stdafx.h"
#include <iostream>
using namespace std;
///////////////////fact関数
int fact(int p1) {
////宣言
int cnt=p1;
int brk=0;
////メイン処理
while (brk==0) {
////階乗
p1=(cnt-1)*p1;
////カウンタ回し
cnt=cnt-1;
////終端チェック
if (cnt==1) { brk=1; }
}
return p1;
}
//////////////////メイン関数
int main() {
int p2=0;
cin >> p2;
int temp=fact(p2);
cout << temp << endl;
}

211:デフォルトの名無しさん
07/06/28 18:11:20
brk使わないでcntで判定すりゃいいじゃん

212:デフォルトの名無しさん
07/06/28 19:32:24
>>210
馬鹿野郎、C言語でと言われてるのに、C++で作る奴があるか
Cで作り直して再提出、ついでに便所掃除1年間の刑に処す。
それともモーホーの肉便器1年間の方がいいか?

と冗談を言ってみるテスト

213:デフォルトの名無しさん
07/06/29 00:39:43
>>165お願いします。関数電卓みたいな感じです。

214:デフォルトの名無しさん
07/06/29 00:49:42
テキストファイルをよみこんでたとえばファイルに
cccchaa
というのがかいてあったら下のような感じで画面に表示したいんですけど
どんなソースコードですかね?お願いします。
c→4 h→1 a→2

215:214
07/06/29 00:56:09
あ、テンプレ忘れましたすいません。
[1] 授業単元: C言語
[2] 問題文(含コード&リンク):
テキストファイルをよみこんでたとえばファイルに
cccchaa
というのがかいてあったら下のような感じで画面に表示する
c→4 h→1 a→2
[3] 環境
 [3.1] Linux
 [3.2] gcc
 [3.3] 言語: C
[4] 期限:明日

216:デフォルトの名無しさん
07/06/29 02:11:39
>>215
cccchaacccchaaの時はどちらに?
c→4 h→1 a→2 c→4 h→1 a→2
c→8 h→2 a→4

217:デフォルトの名無しさん
07/06/29 02:17:22
>>216
スレリンク(tech板:492-493番)

218:かま
07/06/29 17:02:04
[1] 授業単元: C言語
[2] 問題文(含コード&リンク): 次に引数の順番を入れ替えて逆順に表示するプログラムに直せ。
  ソースプログラムを書き込んで提出せよ。

#include "stdio.h"

main(int argc, char * argv[]){

int i;

printf("%d argument(s), \n", argc -1);//,

for(i=0;i<argc; i++) {

printf("argv[%d]:\"%s\"\n", i, argv[i]);

}

}


[3] 環境
 [3.1] Linux
 [3.2] gcc
 [3.3] 言語: C
[4] 期限:今日

219:デフォルトの名無しさん
07/06/29 22:21:32
>>218
#include "stdio.h"
#include <string>
main(int argc, char * argv[]){

int i;
char temp[100];

/*引数の順番を入れ替える*/
for(i=0;i<argc/2; i++){
strcpy(temp,argv[i]);
strcpy(argv[i],argv[argc-i-1]);
strcpy(argv[argc-i-1],temp);
}

printf("%d argument(s), \n", argc -1);//,

for(i=0;i<argc; i++) {

printf("argv[%d]:\"%s\"\n", i, argv[i]);

}

}

220:デフォルトの名無しさん
07/06/30 09:24:06
えー?
>/*引数の順番を入れ替える*/
だからこうじゃないの?

for(i=argc -1; i > 0; i--) {

printf("argv[%d]:\"%s\"\n", i, argv[i]);

}

221:デフォルトの名無しさん
07/06/30 10:51:12
>引数の順番を入れ替えとあるから、引数の配列を並べ替えるような希ガス
ただ単に、逆順で表示するだけなら"引数の順番を入れ替え"を書かずに
"次に引数を逆順に表示するプログラムに直せ"で良いような希ガス
下手をすると、在日より日本語力の低い俺がどうこう言える立場じゃないけどな。

222:デフォルトの名無しさん
07/06/30 12:22:17
>#include "stdio.h"
むしろこれに突っ込んであげて

223:デフォルトの名無しさん
07/06/30 12:48:59
>>222
自作のヘッダファイルつくったんじゃない?

224:デフォルトの名無しさん
07/06/30 14:55:18
>>221
>在日より日本語力の低い俺がどうこう言える立場じゃないけどな。
手抜きの説明文しか書けない218よりは日本語力あるだろ。
よって、どうこう言える立場にある。

225:デフォルトの名無しさん
07/07/01 04:30:59
>>222
それの何が問題?コンパイルできなかった?

226:デフォルトの名無しさん
07/07/01 04:38:10
OKOK、俺が書き直してやんよ。

#include "stdio.h"
main(int argc, char * argv[]){
int i;
char *tmp;
/*引数の順番を入れ替える*/
for(i=1;i<argc/2; i++){
tmp=argv[i];
argv[i]=argv[argc-i];
argv[argc-i]=tmp;
}
printf("%d argument(s) \n", argc -1);
for(i=1;i<argc; i++) {
printf("argv[%d]:\"%s\"\n", i, argv[i]);
}
}

227:デフォルトの名無しさん
07/07/01 05:55:21
だから、標準インクルードファイルを""で括ってインクルードするなって。

228:デフォルトの名無しさん
07/07/01 05:57:41
な・ん・で?それがタブーとされる理由でもあるの?自分ルールや自分スタイルを
押し付けるだけじゃだめだぞ。本質的に不適切かどうかで説明してみろよ?
お前わかってない分かってないって言う奴ほど、自分が本当は分かっていないなんて
オチはどこでもある。

229:デフォルトの名無しさん
07/07/01 06:05:45
>>227
だめな理由が見つからないだろ?自分の主観でそうしないよだの
それはおかしいだの言っている奴が他にもいるからそうなんだよ!
っていうゴネ方はなしな。まるで、子供が欲しいおもちゃがあると
「みんな持っている」とか言ってしまい、持っていない人もいて親に
「みんな持ってはいないよ」とつき返されるのと似た状況だなw

230:デフォルトの名無しさん
07/07/01 06:24:08
理由まだ~?""でヘッダファイル名を囲ってもなんらコンパイルエラーなんて出ないよ?

231:デフォルトの名無しさん
07/07/01 06:27:51
カレントディレクトリもインクルードファイルのサーチパスに含まれてしまうから、
同名のファイルをカレントディレクトリに置いておくと誤動作の原因になる。
こんな基本的なことも知らずにプログラミングやってるの?
「コンパイルエラーでないよ」って、エラーが出なければ全て正しいなんて
阿呆なこと言ってないで人生やり直してきたら?


232:デフォルトの名無しさん
07/07/01 06:37:46
231 名前:デフォルトの名無しさん 投稿日:2007/07/01(日) 06:27:51
カレントディレクトリもインクルードファイルのサーチパスに含まれてしまうから、
同名のファイルをカレントディレクトリに置いておくと誤動作の原因になる。
こんな基本的なことも知らずにプログラミングやってるの?
「コンパイルエラーでないよ」って、エラーが出なければ全て正しいなんて
阿呆なこと言ってないで人生やり直してきたら?
阿呆なこと言ってないで人生やり直してきたら?
阿呆なこと言ってないで人生やり直してきたら?
阿呆なこと言ってないで人生やり直してきたら?
阿呆なこと言ってないで人生やり直してきたら?
阿呆なこと言ってないで人生やり直してきたら?
阿呆なこと言ってないで人生やり直してきたら?

こんなことで他人をここまで罵倒できる基地外が良く言うぜw

233:デフォルトの名無しさん
07/07/01 06:40:47
え~~~、ちなみに、わざと知ってて理由を言わないあんたを試してみただけです。
なんで俺が知らないことになっているのか、さっぱりですね。揺さぶられると
ファビョって当たるタイプかな?検索すりゃ出てくるから、知らない人にも参照しておきますかw
URLリンク(www.02.246.ne.jp)
> ""で囲む場合、コンパイラはまず#include文を記述したソースファイルと同じディレクトリに
> ヘッダファイルがあるか探します。そこになければ、インクルードパスに指定されている
> ディレクトリを探しにいきます。
ええ、当然知ってましたよ、俺は?w
理由もいわないくせに >>227 みたいなことを言う奴がうぜぇだけ。だからわざと "" のまま
書いてやったんだよw

234:デフォルトの名無しさん
07/07/01 06:41:12
素朴な疑問だが、揶揄はしてても罵倒はしてないような。
つーか、正論吐かれて涙目?

235:デフォルトの名無しさん
07/07/01 06:44:37
>>232
こんな基本的なことも知らずにプログラミングやってるの?
こんな基本的なことも知らずにプログラミングやってるの?
こんな基本的なことも知らずにプログラミングやってるの?
こんな基本的なことも知らずにプログラミングやってるの?
こんな基本的なことも知らずにプログラミングやってるの?

なぜか知らないことになっているしw 俺が言いたいのは お前は知っているのか?
ってことだ。指摘する側が理由を言わずに指摘するのは、周りから見るとなんだこいつ?
って思われていることに気づくんだな。それが分からないなら他人の質問に答えるような
スレに来るな。その方がマシな人生が送れるぞw

236:デフォルトの名無しさん
07/07/01 06:45:56
>>234
あれ?言い逃れかな?なみだ目?そっちが勝手に「わからずや、無知」だと思った奴に対して
顔を真っ赤にしているくせして?w 別に俺は「知らなかった」わけじゃないから
知らないでと言われても別にぃ?知ってたけど?としか言いようがない。
理由を言わずしてこんなところでレスするのがこっけいに見えたから揺さぶったんだよw

237:デフォルトの名無しさん
07/07/01 07:02:26
>>236
あまり突っ込まずにスルーするのが大人の対応。

238:デフォルトの名無しさん
07/07/01 07:13:55
>>237
スルー?逃げてちゃ大人になれないぜ?ベイベー

239:デフォルトの名無しさん
07/07/01 07:37:22
>>238
戦争はその小さな争いから始まるのさベイベー

240:デフォルトの名無しさん
07/07/01 08:03:31
相変わらず週末になると元気だな

241:デフォルトの名無しさん
07/07/01 08:05:30
残念、日曜日は週始めだ。曜日の始めは日曜日からだろ?カレンダーを見てみな。
日 月 火 ・・・ と書かれているだろ?当然世間一般でも日曜日が週の始めだ。

242:デフォルトの名無しさん
07/07/01 08:14:44
親切に答えてくれる人に逆ギレするのは

243:デフォルトの名無しさん
07/07/01 08:22:58
英語のWeekEndは土日で問題ないんだけどね。

244:デフォルトの名無しさん
07/07/01 08:23:19
世間一般では日曜が週始めなのか・・・知らなかった・・・

245:デフォルトの名無しさん
07/07/01 08:23:33
あれで親切とは片腹痛いわ

246:デフォルトの名無しさん
07/07/01 08:24:18
っつうか、週の概念ねキリスト教とかじゃねぇの?
宗教詳しくないけど、いろいろモノ作って7日目に休んだことから
日曜日を休日としたんじゃなかったっけ?

247:デフォルトの名無しさん
07/07/01 08:26:26
URLリンク(ja.wikipedia.org)

248:デフォルトの名無しさん
07/07/01 08:31:22
>>243
URLリンク(ja.wikipedia.org)

249:homoじょあ ◆5OLf4yFnuM
07/07/01 15:16:23
(・3・) アルェー みんな仲良くしろYO

250:homoじょあ ◆5OLf4yFnuM
07/07/01 15:17:56
(・3・) エェー ""だろうが<>だろうがいいじゃんかYO
          宿題レベルで気にしちゃだめPO

251:デフォルトの名無しさん
07/07/01 15:22:00
終わった話題を蒸し返すとは、荒れて欲しいのかYO

252:homoじょあ ◆5OLf4yFnuM
07/07/01 20:13:08
(・3・) エェー それもいいかもYO

253:デフォルトの名無しさん
07/07/01 21:22:17
そもそも stdio.h を自分で定義したヘッダのファイル名として使うのもどうかと。
まぁ、それについては人それぞれだけど、敢えてそのファイル名で独自のヘッダファイルを
用意するやつって・・・

254:デフォルトの名無しさん
07/07/01 23:31:40
>>218は荒らす為の道具かもな。名前欄もそれっぽいし、
講師があんなコードを講義で出したら出来の良い学生から馬鹿にされるし。
教務課辺りに、あの講師は馬鹿だから辞めさせろと凸されかねん。
授業評価アンケートも凄い事になるぞ。
もう一つの可能性は、おかしな部分を指摘OR修正して提出するかどうかで
学生の理解度を計ろうとしているのかも試練

255:デフォルトの名無しさん
07/07/01 23:45:08
>>254
深読みし過ぎじゃね?w

256:デフォルトの名無しさん
07/07/02 03:18:52
宿題レベルでも悪い習慣は付けない方がいい。
自分でstdio.hなんてファイルを作らなくても、プリプロセッサのファイル検索順が変わるから、プリプロセスの速度が僅かに遅くなる。大規模になれば影響はある。

ここで答え聞くような奴は単位取るために仕方なくやってるんだろうけど、頼むからソフトウェア・エンジニアにはならないでくれ。

257:デフォルトの名無しさん
07/07/02 03:44:19
>>256
頼むからSEでもないお前がソフトウェアエンジニアにはならないでくれとか言わないでくれ。

258:デフォルトの名無しさん
07/07/02 08:42:51
なんかおもしれーくらいに荒れてるんだけどさ
>>218
>printf("%d argument(s), \n", argc -1);//,

>for(i=0;i<argc; i++) {
argcが10だった場合「引数が9個あるぜ!」と言ってるにも
関わらず、for文で10回回ってるように見えるのは俺だけか?

259:デフォルトの名無しさん
07/07/02 09:34:11
んもうこれからは #include "stdio.h" を流行らせようぜ?これができれば
SEになれるのは間違いなしw

260:デフォルトの名無しさん
07/07/02 09:40:12
俺流ヘッダ(現在更新中) #include "myheader.h" 中身は↓
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <ctype.h>
#include <time.h>

使うであろうヘッダをとりあえず全部取り込んでおkと。


261:デフォルトの名無しさん
07/07/02 15:02:44
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):  温度データを入力し,摂氏から華氏,華氏から摂氏に変換するプログラムを作成しなさい。
[3] 環境
 [3.1] OS:windows xp
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限:特になし
[5] その他の制限:特になし

お願いします。

262:デフォルトの名無しさん
07/07/02 16:34:09
>>261

//セ氏→華氏
/////////////////////////////////////////////
//インクルード
/////////////////////////////////////////////
#include "stdafx.h"
#include <iostream>
using namespace std;

/////////////////////////////////////////////
//fah関数
/////////////////////////////////////////////
int fah(int p1) {
//セ氏→華氏
p1=((p1*9)/5)+32; //華氏→セ氏の場合は、p1=5(p1-32)/9
return p1;
}

/////////////////////////////////////////////
//メイン関数
/////////////////////////////////////////////
int main() {
int p2=0;
cin >> p2;
int temp=fah(p2);
cout << temp << endl;
}

263:デフォルトの名無しさん
07/07/02 19:04:44
あるファイルの中にデータとして多くの0と1が書き込まれており、最後の1文字だけがEであるとする。
このとき、0と1の並びに着目し、データを圧縮することを考える。
ここでは、0と1のそれぞれが何個連続して並んでいるかを記録することで圧縮を行う。
たとえば、digit1.datというファイルに
111110000000000000000000000001E
というように0と1が並んでいるとき、
7 1 24 0 1 1
と圧縮できる。このとき圧縮結果に空白を挟むことに注意する。
上記の圧縮方法に従って、任意の0と1から成るデータを圧縮するプログラムを作成せよ。
ただしデータはリダイレクションを使用し、char型変数の1文字ずつ繰り返し世も困れるものとする。
最後には「圧縮完了」と表示のこと。

期限が迫っています・・・
C++です。
if文、for文、while文、リダイレクションまで習いました。
習ったところまでの文法でお願いします・・・


264:デフォルトの名無しさん
07/07/02 19:38:29
[1] 授業単元: プログラミング実習
[2] 問題文(含コード&リンク):
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] gcc
 [3.3] 言語: C
[4] 期限: 7/3
[5] その他の制限:特になし
よろしくお願いします。

265:デフォルトの名無しさん
07/07/02 22:29:11
>>262
間違いです。単位はとれませんでした。

266:デフォルトの名無しさん
07/07/02 22:36:54
>>7 1 24 0 1 1 と圧縮できる。
>>世も困れるものとする。

5 1 24 0 1 1
じゃないのか(間違ってたらゴメン(藁))?
そもそも処理系も何もかいてなくちゃ世も困れるよ。


267:かま
07/07/02 23:34:34

[1] 授業単元: c言語
[2] 問題文(含コード&リンク): このプログラムを書き換え、ファイル名をコマンドラインの引数から指定できるようにしてください。
#include<stdio.h>
#include<stdlib.h>

int main(void){
char c;
char filename[]="date.txt";
FILE *fp;
if((fp=fopen(filename, "r"))==NULL){
printf("file does not exist, \n");
exit(1);
}
while((c=getc(fp))!=EOF){
printf("%c\n", c);
}
fclose(fp);
}

[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc 3.4 VC 6.0
 [3.3] 言語: C
[4] 期限: 2007年7月4日
[5] その他の制限:
  
  では、宜しくお願いします。

268:デフォルトの名無しさん
07/07/03 00:02:49
[1]授業単元:プログラミング

[2]次のアルファベットのキーワードを入力して計算する関数電卓プログラムを作成しなさい。

sin 正弦
cos 余弦
tan 正接
arcsin 逆正弦
arccos 逆余弦
arctan 逆正接
ln 自然対数
log 常用対数
exp 指数関数
sqr 平方
rad 入力データをラジアン単位にする
deg 入力データを度を単位にする
end プログラムの終了

[3] 環境
[3.1] windows2000
[3.2] VC 6.0
[3.3] C++

[4] 期限 2007年7月4日 午前8時

[5] その他の制限 無し

どうかよろしくお願いいたします。

269:デフォルトの名無しさん
07/07/03 01:05:52
[1] 授業単元:progrming
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 2007/07/04
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
UDP wo mochiiru
onegaishimasu

270:デフォルトの名無しさん
07/07/03 02:25:06
>>264
URLリンク(kansai2channeler.hp.infoseek.co.jp)

271:デフォルトの名無しさん
07/07/03 02:42:34
>>267
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int main(int argc, char *argv[]){
    char c;
    char filename[128];
    FILE *fp;
    if(argc != 2){
        printf("コマンドラインの引数が違います。 \n");
        exit(1);
    }
    strcpy(filename, argv[1]);
    if((fp=fopen(filename, "r"))==NULL){
        printf("file does not exist, \n");
        exit(1);
    }
    while((c=getc(fp))!=EOF){
        printf("%c\n", c);
    }
    fclose(fp);
    return 0;
}

272:デフォルトの名無しさん
07/07/03 03:10:54
>>261
#include<stdio.h>
int main(void)
{
    double temp;
    char ch;
    printf("温度:");
    scanf("%lf",&temp);
    printf("摂氏から華氏[c], 華氏から摂氏[f] :");
    scanf(" %c",&ch);
    switch(ch){
    case 'C':
    case 'c':
        printf("摂氏%f度 = 華氏%f度",temp,1.8*temp+32);
        break;
    case 'F':
    case 'f':
        printf("華氏%f度 = 摂氏%f度",temp,(temp-32)/1.8);
        break;
    default:
        printf("不正な入力");
        break;
    }
    return 0;
}

273:デフォルトの名無しさん
07/07/03 03:25:14
[1] 授業単元:オペレーティングシステム
[2] 問題文(含コード&リンク):

宿題11.プログラム
step1: a = x + y;
step2: b = z + 1;
step3: c = a ? b;
step4: w = c + 1;
に関し、parallel.c(parallel.txt をダウンロード&参照)を完
成させて、step1とstep2を並列実行させるプログラムを作成せよ。
但し、x,y,zはプロンプトにしたがって入力するとする。
正しく動作したか?結果を考察せよ。
URLリンク(kansai2channeler.hp.infoseek.co.jp)

[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語:C
[4] 期限: できれば早くお願いします
[5] その他の制限:丸投げですがよろしくお願いします
           授業中に教授が
           「これは正しく動作しないんだけど、その理由を考察してね」
           とか言っていました
           できればその理由もお願いします

274:デフォルトの名無しさん
07/07/03 04:27:25
>>268
URLリンク(kansai2channeler.hp.infoseek.co.jp)

275:268
07/07/03 08:26:37
>>274
素早い解答、ありがとうございました。
有難く、活用させて頂きます。

276:デフォルトの名無しさん
07/07/03 08:35:27
>>265
丸写しはよくないよ。帳尻あわせぐらいは自分でしよう。

277:デフォルトの名無しさん
07/07/03 08:46:47
そうだ、丸出しは良くない。尻くらい隠して前は丸出しで良いぞ

278:273
07/07/03 08:58:34
問題が少し間違っていました

【誤】step3: c = a ? b;

【正】step3: c = a - b;

よろしくお願いします

279:デフォルトの名無しさん
07/07/03 11:20:01
>>273
それは本当に「並列実行」だと教授が言ったのか?
いやはや……

やること自体はあまり難しくないだろ。
/* create 2nd child... */
のコメントの後にstep2に相当するコードを書いて、
/* on the parent... */
のコメントの後に(授業で教わっているであろう)子プロセスの終了待ちコードを書けばいい。
その後でstep3とstep4を書くことになるわけだが、子プロセスからはstep1, step2の結果を受け取ってないので
正しい計算結果は得られない。それはこの書き方なら当然なのだが、「正しく動作しない」と言いたいのだろう。

280:デフォルトの名無しさん
07/07/03 15:13:52
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
5 名の体重をキーボードから読み込んで,5 名の平均値以上の
値を持つ人の番号と体重を表示するプログラムを作成しなさ
い.
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語:C
[4] 期限: 7月5日

実行結果
1 番目の体重= 60.5
2 番目の体重= 57.3
3 番目の体重= 68.1
4 番目の体重= 52.4
5 番目の体重= 65.2
----------------
平均値: 60.7kg
3 番目: 68.1kg
5 番目: 65.2kg

よろしくお願いします

281:デフォルトの名無しさん
07/07/03 15:15:31
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
5 名の体重をキーボードから読み込んで,それらの値を小さい
順に表示するプログラムを作成しなさい.
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語:C
[4] 期限: 7月5日

(実行結果例)
1 番目の体重= 60.5
2 番目の体重= 57.3
3 番目の体重= 68.1
4 番目の体重= 52.4
5 番目の体重= 65.2
----------------
(1): 52.4kg
(2): 57.3kg
(3): 60.5kg
(4): 65.2kg
(5): 68.1kg
よろしくお願いします

282:デフォルトの名無しさん
07/07/03 15:16:56
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
5 名の体重をキーボードから読み込んで,値の小さい順に,何
番目の人かと,その体重を表示するプログラムを作成しなさ
い.なお,同じ値があれば,番号の小さい方を先に表示する.
(ヒント:番号を保存する配列を別途用意して,体重データを入れ替え
る時に番号も入れ替える)
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語:C
[4] 期限: 7月5日
(実行結果例)
1 番目の体重= 60.5
2 番目の体重= 57.3
3 番目の体重= 68.1
4 番目の体重= 52.4
5 番目の体重= 65.2
----------------
(1) 3 番目: 52.4kg
(2) 1 番目: 57.3kg
(3) 0 番目: 60.5kg
(4) 4 番目: 65.2kg
(5) 2 番目: 68.1kg

よろしくお願いします

283:デフォルトの名無しさん
07/07/03 15:17:46
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
三角形の「底辺の長さ」と「高さ」を仮引数として,三角形
の面積(底辺の長さ×高さ÷2)を返却値とする関数triangle
を定義しなさい.この関数triangle を用いてキーボートから
読み込んだ底辺の長さ,高さの三角形の面積を表示するプロ
グラムを作成しなさい.
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語:C
[4] 期限: 7月5日

(実行結果例)
三角形の面積計算
底辺の長さ:10.8
高さ:8.6
----------------
面積: 46.44
よろしくお願いします

284:デフォルトの名無しさん
07/07/03 15:18:30
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
3つの整数tanka,kosu,pay を仮引数として,
pay - tanka×kosu
の値を返す関数otsuri を定義しなさい.この関数otsuri を用
いて,キーボートから読み込んだ単価,購入個数,支払金額
に対して,おつり(=支払金額 - 単価×個数)を表示するプ
ログラムを作成しなさい.
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語:C
[4] 期限: 7月5日
(実行結果例)
単価:129
購入個数:17
支払金額:5000
-----------------
おつり:2807 円

よろしくお願いします

285:デフォルトの名無しさん
07/07/03 15:24:29
[1] 授業単元: プログラミング言語
[2] 問題文(含コード&リンク):
2次方程式 ax*x+bx+c=0
の係数a,b,cを与え、方程式の解を求めて出力せよ(関数は使わなくてよい)
係数の値によって3つの場合分けをする
zの平方根yの計算はy=sqrt(z)で計算する。

[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン:visual studio2005
 [3.3] 言語: C++
[4] 期限: 無期限
[5] その他の制限:特になし。

ネットで2次方程式を探しましたが、よくわからないので上の問題の条件で回答いただけると幸いです。
お願いいたします。

286:デフォルトの名無しさん
07/07/03 15:40:18
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
要素数がno であるint 型配列data の値の合計を返す関数
CalcSum を定義しなさい.この関数CalcSum を用いて,キ
ーボードから読込まれた5つの得点の合計得点を表示するプ
ログラムを作成しなさい.

 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語:C
[4] 期限: 7月5日
(実行結果例)
1 番目の得点= 59
2 番目の得点= 68
3 番目の得点= 75
4 番目の得点= 51
5 番目の得点= 64
----------------
合計は317 点

よろしくお願いします

287:デフォルトの名無しさん
07/07/03 15:41:26
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
要素数がnum であるdouble 型の配列xv の全要素に,値c
を代入する関数SetValue を定義しなさい(関数SetValue は
値を返さないvoid 型).この関数SetValue を用いて,要素数
10 のdouble 型配列buf_A とbuf_B の全要素を,それぞれキ
ーボードから読込んだ値に設定するプログラムを作成しなさ
い.(設定後のbufA とbufB の全要素を画面に表示する)

 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語:C
[4] 期限: 7月5日
(実行結果例)
bufA に設定する値= 1.23
bufB に設定する値= 3.45
-------------------
bufA[0]=1.23 bufB[0]=3.45
bufA[1]=1.23 bufB[1]=3.45

bufA[9]=1.23 bufB[9]=3.45

よろしくお願いします

288:デフォルトの名無しさん
07/07/03 17:30:40
[1] 授業単元: C言語入門
[2] 問題文(含コード&リンク): URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: Windows
 [3.3] 言語: C言語
[4] 期限:7月4日
[5] その他の制限: 多次元配列について習ってます
よろしくお願いします


289:デフォルトの名無しさん
07/07/03 17:58:19
何この質問ラッシュ。

290:デフォルトの名無しさん
07/07/03 18:36:47
教授「あー!俺の考えた課題をこいつらに解かれてたまるか!
ダミーで釣って、隠してやる!!!お前らはこっちでも解いておけ!
わっははは!」


に一票

291: ◆QQoa7tAmuU
07/07/03 18:42:07
整数nを入力し、2からnの範囲にある素数およびその個数を求めるプログラム
なんですが

#include <stdio.h>
int main(void) {
int i , j, n, cnt, flg;
printf("2以上の整数を入力してください>");
scanf("%d",&n);
if(n<2) return 1;
printf("2");
for(i=3,cnt=1; i<=n; i+=2){
for(j=3,flg=1; j*j<=i; j+=2){
if(i%j==0) {flg=0; break;}
}
if(flg) {
printf("%d",i);
cnt++;
if(cnt%10==9) printf("\n");
}
}
printf("\n2から%dまでには%d個の素数が含まれている\n",n,cnt);
return 0;
}

これだと実行結果が
「2以上の整数を入力してください>5
235
2から5までには3個の素数が含まれている」
と235が余計にでてしまうのですが、どうしたらいいでしょうか?
教えてください!お願いしますm()m

292: ◆DpMW3bRjps
07/07/03 20:13:30
>>291です
できました!!

293:デフォルトの名無しさん
07/07/04 00:32:23
みんながC言語やろうとしたきっかけを話してほしいなぁ。

294:デフォルトの名無しさん
07/07/04 05:04:06
病気療養で求職中に、少しでも再就職に向けて何か技術を習得したいと思った。
今となっては、プログラマ以外の何か資格の勉強してれば良かった。

295:デフォルトの名無しさん
07/07/04 10:08:08
[1] 授業単元:C言語実習課題
[2] 問題文(含コード&リンク):横棒グラフ
・10人分の氏名と売上台数を入力して、順位をつけて、
順位の昇順(売上1番から)売上台数を横棒グラフにして表示する。
・星印は、5台で1個とする。5に満たないものはなし。
(たとえば、23台なら星4つ)
・250台以上は、全て星50個とする。
・売り上げが同じなら氏名の昇順とする。文字列関数(strcmp)を用いる。
・氏名は、15文字以内とする。
[3] 環境
 [3.1] OS: WindowsVista
 [3.2] コンパイラ名とバージョン: Visual Studio 2006
 [3.3] 言語: C++
[4] 期限: 7月20日
[5] その他の制限:配列を使用

296:デフォルトの名無しさん
07/07/04 14:57:09
>>280
#include<stdio.h>
#define N 5
int main(void)
{
    int i;
    double weight[N];
    double sum, average;
    sum=0;
    for(i=0;i<N;i++){
        printf("%d 番目の体重= ",i+1);
        scanf("%lf",&weight[i]);
        sum+=weight[i];
    }
    average = sum/N;
    
    printf("平均値: %.1fkg\n",average);
    for(i=0;i<N;i++){
        if(weight[i]>average){
            printf("%d 番目: %.1fkg\n",i+1,weight[i]);
        }
    }
    
    return 0;
}

297:デフォルトの名無しさん
07/07/04 15:08:38
>>296の訂正
×if(weight[i]>average){
○if(weight[i]>=average){

>>281
#include<stdio.h>
#define N 5
int main(void)
{
    int i,j,min;
    double weight[N];
    for(i=0;i<N;i++){
        printf("%d 番目の体重= ",i+1);
        scanf("%lf",&weight[i]);
    }
    printf("---------------- \n");
    for(i=0;i<N;i++){
        min = 0;
        for(j=0;j<N;j++){
            
            if(weight[min] > weight[j]){
                min =j;
            }
        }
        printf("(%d): %.1fkg \n",i+1,weight[min]);
        weight[min]=100e3;
    }
    return 0;
}

298:デフォルトの名無しさん
07/07/04 15:24:56
>>282
#include<stdio.h>
#define N 5
int main(void)
{
    int i,j,min;
    double weight[N];
    for(i=0;i<N;i++){
        printf("%d 番目の体重= ",i+1);
        scanf("%lf",&weight[i]);
    }
    printf("---------------- \n");
    for(i=0;i<N;i++){
        min = 0;
        for(j=0;j<N;j++){
            
            if(weight[min] > weight[j]){
                min =j;
            }
        }
        printf("(%d) %d 番目: %.1fkg \n", i+1, min, weight[min]);
        weight[min]=100e3;
    }
    return 0;
}

299:かま
07/07/04 15:38:56
[1] 授業単元: C言語
[2] 問題文(含コード&リンク):このプログラムを書き換え、ファイル名をコマンドラインの引数から指定できるようにしてください。

#include<stdio.h>
#include<string.h>
main(){
char c[3];
char s1[]="abcdefghijklmnopqrstuvwxyz";
char s2[100];
s2[0]='\0';
printf("s1 initial value:\"%s\"\n",s1);
printf("s2 initial value:\"%s\"\n",s2);
if (strcmp(s1,s2)==0){printf("s1==s2\n");}
else {printf("s1!=s2\n");}
printf("Push ENTER to procceed.");
fgets(c,2,stdin);
strcpy(s2,s1);
printf("s1 current value:\"%s\"\n",s1);
printf("s2 current value:\"%s\"\n",s2);
if (strcmp(s1,s2)==0){printf("s1==s2\n");}
else {printf("s1!=s2\n");}
}

[3] 環境
 [3.1] OS: Windows/ 
 [3.2] コンパイラ名とバージョン: gcc 3.4 VC 6.0
 [3.3] 言語: C
[4] 期限: 7月5日まで
[5] その他の制限: よろしくお願いします。


300:デフォルトの名無しさん
07/07/04 15:54:12
>>283
double triangle(double b, double h);

int main(void)
{
    double b, h, a;
    printf("三角形の面積計算 \n");
    printf("底辺の長さ:");
    scanf("%lf", &b);
    printf("高さ:");
    scanf("%lf",&h);
    printf("---------------- \n");
    a = triangle(b, h);
    printf("面積:%.2f\n",a);
    return 0;
}

double triangle(double b, double h)
{
    return b*h/2;
}

301:デフォルトの名無しさん
07/07/04 15:59:25
>>284
#include<stdio.h>

int otsuri(int tanka, int kosu, int pay);

int main(void)
{
    int t, k, p, o;
    printf("単価:");
    scanf("%d", &t);
    printf("購入個数:");
    scanf("%d", &k);
    printf("支払金額:");
    scanf("%d", &p);
    printf("----------------- \n");
    o=otsuri(t, k, p);
    printf("おつり:%d\n",o);
    return 0;
}

int otsuri(int tanka, int kosu, int pay)
{
    return pay - tanka*kosu;
}

302:デフォルトの名無しさん
07/07/04 16:14:25
>>285
URLリンク(kansai2channeler.hp.infoseek.co.jp)

303:デフォルトの名無しさん
07/07/04 16:15:45
>>286
#include<stdio.h>
#define N 5
int CalcSum(int data[], int no);

int main(void)
{
    int data[N],i;
    for(i=0;i<N;i++){
        printf("%d 番目の得点= ",i+1); scanf("%d", &data[i]);
    }
    printf("---------------- \n");
    printf("合計は%d 点", CalcSum(data, N));
    return 0;
}

int CalcSum(int data[], int no)
{
    int sum=0,i;
    for(i=0;i<no;i++)
        sum = sum + data[i];
    return sum;
}

304:デフォルトの名無しさん
07/07/04 16:28:46
>>287
#include<stdio.h>
#define N 10
void SetValue(int num, double xv[], double c);
int main(void)
{
    int i;
    double v,bufA[N], bufB[N];
    printf("bufA に設定する値= "); scanf("%lf",&v);
    SetValue(N, bufA, v);
    printf("bufB に設定する値= "); scanf("%lf",&v);
    SetValue(N, bufB, v);
    for(i=0;i<N;i++)
        printf("bufA[%d]=%.2f bufB[%d]=%.2f\n",i,bufA[i],i,bufB[i]);
    return 0;
}
void SetValue(int num, double xv[], double c)
{
    int i;
    for(i<0;i<num;i++)
        xv[i] = c;
}

305:デフォルトの名無しさん
07/07/04 17:35:34
>>288
URLリンク(kansai2channeler.hp.infoseek.co.jp)
URLリンク(kansai2channeler.hp.infoseek.co.jp)

306:デフォルトの名無しさん
07/07/04 19:10:40
>>293
きっかけなんて無かった。ただ何となくやり始めたらは面白くって
今では宿題スレに居着いてる。

>>288
もしかして教科書に柴田望洋著『新版明解C言語入門編』を使ってないか?

307:305
07/07/04 22:21:27
>>305
ありがとうございます
>>306
その教科書使ってますよ
何でわかったんですか!?

308:306
07/07/04 22:48:16
>>307
return文の書き方が独特だから、return (0);と書いている教科書は俺が知る限り
その教科書しかない。


309:デフォルトの名無しさん
07/07/04 22:50:54
return (0);って・・・随分ぶっ飛んだ教本だな

310:デフォルトの名無しさん
07/07/05 03:25:12
問題の無い点を自分スタイルで批判する奴は痛い・・・何も問題ないぞ?
んじゃ、今後は return (数式);スタイルもタブーにしてくれよw

311:デフォルトの名無しさん
07/07/05 09:00:12
>>299 = >>310

312:デフォルトの名無しさん
07/07/05 09:30:01
>>311
イコールじゃねーぞ?妄想する前にちゃんと return (0); の問題点を指摘しろよ。
本当にそれが問題という問題があるなり、不適切と言えるんであれば
当然それなりの説明は出来るだろ。自分スタイルがイカしているだの
自分スタイルを使ってない奴はとか独裁的な考えをすると
自民党のように干されて支持されなくなりますよ?

313:デフォルトの名無しさん
07/07/05 09:36:33
自民党と同等程度に支持されていれば充分だと思うが。

(一部の例外を除いて)余計な括弧はつけないという方針では納得しないんだろうなぁ。

314:デフォルトの名無しさん
07/07/05 09:47:24
>>313
buttheads

315: ◆DpMW3bRjps
07/07/06 16:01:37
先週お世話になったものですが、ぼるじょあさんにやっていたただいた
課題の成績の評価が見事にSでした!!
ほんとに感謝してます(^^)

316:sarucyann
07/07/06 17:14:27
[1] 授業単元:C言語
[2] 問題文(含コード&リンク): 次を元にして、足し算などの式を入力すると計算結果を表示するプログラムを作ることを考える。たとえば式1+2ENTERを入力すると結果の3が表示されるようにプログラムを作り直してください、エラー処理は無視してよい。
他の演算ができるようになっているとさらに高く評価する。
#include<stdio.h>
#include<ctype.h>
main(){
char c[10];
char *p;
int i=0;
printf("Enter a number:");
fgets(c,6,stdin);
p=&c;
while(isdigit(*p)){
i=i*10+(*p++)-48;
}
printf("You have entered: %d\n",i);
}

 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語:C
[4] 期限: 7月8日
よろしくお願いします


317:デフォルトの名無しさん
07/07/06 18:45:56
問題文[1] 授業単元:C言語
[2] 問題文: :入力した人の年齢の合計と平均を出力させるプログラムを作成して下さい。
※入力時に累積の人数を表示 ※年齢入力時に数字属性と範囲のチェックを行う※nullは不許可とする
※0 ~ 9 の文字のみで、かつ 1 ~ 99 の範囲のみを許可する※年齢の平均は小数点第二位まで出力する
※名前に空が入力された場合に年齢の合計と平均を出力してプログラムを終了する
-実行結果-

1人目の名前:human1
1人目の年齢:
入力エラー(年齢を入力してください)
1人目の年齢:30

2人目の名前:human2
2人目の年齢:abc
入力エラー(年齢は数字のみで入力してください)
2人目の年齢:20

3人目の名前:human3
3人目の年齢:0
入力エラー(年齢は1から99の範囲で入力してください)
3人目の年齢:25

4人目の名前:
年齢の合計は75歳、年齢の平均は25.00歳

[3] 環境
 [3.1] OS:Windows
 [3.2] LCpad
 [3.3] 言語: C
[4] 期限: 2007年7月9日hhまで
[5] 初心者です。


318:デフォルトの名無しさん
07/07/06 18:46:59
>>312
スペルミスしたとき、例えばretrun 0;はコンパイル時エラーになるが、
retrun (0);ではretrunという名前の関数を呼び出す式としてコンパイルできてしまう。
もちろんリンカエラーにはなるはずだが、エラーが表示されるときは早いほうがよい。

319:デフォルトの名無しさん
07/07/06 18:51:29
>>318
なるほど、C++ならコンパイル時にエラーになるから構わないわけだな

320:デフォルトの名無しさん
07/07/06 19:06:41
実際にvoid retrun(int)なる関数があったら……

321:デフォルトの名無しさん
07/07/06 19:55:14
retrun()という関数を自分で作っておいて
retrun(1);
とかreturnのつもりで書くってのは相当にアホだろ

322:デフォルトの名無しさん
07/07/06 19:57:11
switch()でのdefault:のスペルミスに比べれば害は少ないよな

retrunというスペルミス云々って話は昔からよく聞くけど
どうもこじつけ臭い
単にカッコは不要で冗長だから嫌われてるだけだろう
他人にスタイルを押し付けるほどの根拠は無いと思うがどうよ

323:デフォルトの名無しさん
07/07/06 20:03:07
今時大抵の奴はキーワードに色がつくエディタか統合開発環境使ってるから
どうせすぐ気づくわな

324:デフォルトの名無しさん
07/07/06 20:29:13
> 単にカッコは不要で冗長だから嫌われてるだけだろう
そうだろうね。昔はreturnに括弧が要ったが、後から要らなくなったことの説明が付く。

325:デフォルトの名無しさん
07/07/07 01:06:43
C言語
問題
2つの符号なし整数a,b(ただし、a>bとし、bは2のべき乗とする)をキーボードから読み込み、
①a,bを2進表示し、配列の中にビットを格納しなさい。
②a,bの四則演算
c=a+b
d=a-b
e=a*b
f=a/b(商のみ)を計算し、その結果を出力しなさい。
7月13日までです。お願いします。

326:デフォルトの名無しさん
07/07/07 01:08:34
[1] 授業単元: プログラミング実習
[2] 問題文:時宜の微分方程式を数値計算を用いて解け。
  ルンゲクッタ法または後退オイラー法を使いプログラミングすること。
  ・3*d^2x/dt^2+dx/dt+2x=4
  ・x(t=0)=0
  ・dx/dt(t=0)=0
[3] 環境
 [3.1] OS: Windows xp
 [3.2] コンパイラ名とバージョン: bcc32?
 [3.3] 言語:C++
[4]期限: 2007年07月08日23:00まで
[5] その他の制限:制限なし
よろしくおねがいします

327:デフォルトの名無しさん
07/07/07 01:17:33
>>325
int main( void )
{
unsigned int a,b;
schanf( "%d %d", &a, &b );
printf( "+:%d\n", a + b );
printf( "-:%d\n", a - b );
printf( "*:%d\n", a * b );
printf( "/:%d\n", a / b );
return 0;
}

>>326
どこかの宿題スレで同じ問題あったよ。
ルンゲクッタ法使ってた。

328:デフォルトの名無しさん
07/07/07 01:23:21

C言語で
1~Nの整数(Nは任意)を、ランダムな順番に並び替え,
printf で出力するようなプログラムを作成したいのですが。

良いアルゴリズムなどはありますか?
あ、動けばいいような気もしてきた・・・・orz

329:328
07/07/07 01:27:19
おらあもうだめだあ
123456

245136

こうなってほしいのに
632312

これが現実 (謎

330:デフォルトの名無しさん
07/07/07 01:28:11
>>328
簡単なのでいいならこんなの?
1.int Num[100]に1~100の値を入れる。
2.Num[rand()%100]とNum[rand()%100]を入れ替える。
3.「2」を適当な回数する。

331:デフォルトの名無しさん
07/07/07 01:44:17
おまいら、なんでそんなに rand() が好きなんだw

332:328
07/07/07 11:38:02
>>330
ありがとうございます
一応、それで作ってみます。
何回くらい入れ替えればいいんだろうか・・・

333:デフォルトの名無しさん
07/07/07 13:43:44
>>327さん、配列を使ってないきが…

334:デフォルトの名無しさん
07/07/07 14:04:16
>328

int a[N];

for(i=1; i<N; i++) {
int j = rand()%(i+1);
if(j!=i) {
int temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}


335:デフォルトの名無しさん
07/07/07 14:17:25
URLリンク(ray.sakura.ne.jp)
でも嫁

336:homoじょあ ◆5OLf4yFnuM
07/07/07 18:30:38
>>316(・3・) エェー 足し算と引き算だけNE
#include<stdio.h>
#include<ctype.h>
int calc(int ans, int i, int op){
switch( op ){
case 0: return ans + i;
case 1: return ans - i;
}
return ans;
}
main(){
char c[256];
char *p;
int i, op = 0, ans = 0;
printf("Enter a number:");
fgets(c, sizeof(c), stdin);
p = c;
while(*p != '\0'){
i = 0;
while(isdigit(*p)){
i = i*10+(*p)-48;
p++;
}
ans = calc(ans, i, op);
if(*p == '+')op = 0;
else if(*p == '-')op = 1;
else op = -1;
p++;
}
printf("You have entered: %d\n", ans);
return 0;
}

337:homoじょあ ◆5OLf4yFnuM
07/07/07 18:46:59
>>317
(・3・)あっちょんぶりけ
URLリンク(kansai2channeler.hp.infoseek.co.jp)

338:デフォルトの名無しさん
07/07/08 01:43:22
問題文[1] 授業単元:C言語
[2] 問題文: :入力した人の年齢の合計と平均を出力させるプログラムを作成して下さい。
※入力時に累積の人数を表示 ※年齢入力時に数字属性と範囲のチェックを行う※nullは不許可とする
※0 ~ 9 の文字のみで、かつ 1 ~ 99 の範囲のみを許可する※年齢の平均は小数点第二位まで出力する
※名前に空が入力された場合に年齢の合計と平均を出力してプログラムを終了する
-実行結果-

1人目の名前:human1
1人目の年齢:
入力エラー(年齢を入力してください)
1人目の年齢:30

2人目の名前:human2
2人目の年齢:abc
入力エラー(年齢は数字のみで入力してください)
2人目の年齢:20

3人目の名前:human3
3人目の年齢:0
入力エラー(年齢は1から99の範囲で入力してください)
3人目の年齢:25

4人目の名前:
年齢の合計は75歳、年齢の平均は25.00歳

[3] 環境
 [3.1] OS:Windows
 [3.2] LCpad
 [3.3] 言語: C
[4] 期限: 2007年7月9日hhまで
[5] 初心者です。お願いします。

339:デフォルトの名無しさん
07/07/08 02:30:35
1つ上のレスぐらい見ろクズ

340:デフォルトの名無しさん
07/07/08 18:18:48
>>325お願いしますm(_ _)m

341:デフォルトの名無しさん
07/07/08 19:42:48
>>327がやってるじゃんと言おうとしたら、仕様を満たしてないのね。
②a,bの四則演算は、何も考えずにc=a+bとかやらずに
2進数で演算しないといけないのかな?


342:homoじょあ ◆5OLf4yFnuM
07/07/08 21:50:28
>>325(・3・) エェー bitに直すだけYO
              もう酔っ払ってダメぽ
#include <stdio.h>
void changeBit(unsigned long n, unsigned char bit[32]){
int i;
for(i=0; i<32; i++, n = n >> 1){
bit[31 -i] = n & 0x1;
}
}
int main(void){
unsigned long a, b;
unsigned char bita[32], bitb[32];
int i;

printf("a:");
scanf("%ld", &a);
printf("b:");
scanf("%ld", &b);
changeBit(a, bita);
changeBit(b, bitb);

for(i=0; i<32; i++){
printf("%u", bita[i]);
}
puts("");
for(i=0; i<32; i++){
printf("%u", bitb[i]);
}
return 0;
}

343:デフォルトの名無しさん
07/07/09 14:17:13
すいません。>>325のaとbは8ビットで結果は16ビットです。すいませんでしたm(_ _)m

344:デフォルトの名無しさん
07/07/09 14:44:00
[1] 授業単元:C言語
[2] 問題文(含コード&リンク): 年(西暦),月,日を入力したとき,入力した年月日の曜日を出力するプログラムを作成
しなさい.
[3] 環境
 [3.1] OS:Windows xp
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:無期限
[5] その他の制限:なし
お願いします。

345:デフォルトの名無しさん
07/07/09 14:46:40
>>344
URLリンク(www9.plala.or.jp)


346:デフォルトの名無しさん
07/07/09 14:51:54
>>344
グレゴリオ暦でおk?

347:デフォルトの名無しさん
07/07/09 15:16:57
// >>344
#include <time.h>
#include <stdio.h>
int main()
{
int year;
int month;
int day;
printf("Input date(year month day:Ex. 2006 12 31).\n");
if (scanf("%d%d%d", & year, & month, & day) < 3) {
fprintf(stderr, "Illegal format.\n");
return 1;
}
struct tm tmp = {0};
tmp.tm_year = year - 1900;
tmp.tm_mon = month - 1;
tmp.tm_mday = day;
mktime(& tmp);
static const char * const weekDayTable[] = {
"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat",
};
printf("%d/%d/%d is %s.\n", 1900 + tmp.tm_year, 1 + tmp.tm_mon, tmp.tm_mday, weekDayTable[tmp.tm_wday]);
return 0;
}


348:デフォルトの名無しさん
07/07/09 15:28:57
>>325もう一度書かして下さい。
C言語です。
二つの符号なし整数a,b(ただしa>bとし、bは2のべき乗とする。またaとbは8ビットで、演算の結果は16ビットです。)をキーボードから読み込み、
①a,bを2進表示し、配列の中にビットを格納しなさい。
②a,bの四則演算(上のを使って、相手に10進で入力させ、それを2進表示する)
c=a+b
d=a-b
e=a*b
f=a/b(商のみ)
を計算し、その結果を出力しなさい。
習ったのはfor文、if文、do文、while文、シフト演算子{(>>)(<<)}、ビット単位のAND演算子(&)、OR演算子(|)、排他的OR演算子(^)、1の補数(~)です。結果は2進の16ビットです。
7月14日までです。お願いしますm(_ _)m

349:デフォルトの名無しさん
07/07/09 19:06:20
とりあえずテンプレに沿って質問しろよ

350:デフォルトの名無しさん
07/07/09 19:46:08
[1] コンピュータ・サイエンス
[2] C++でUDPのechoサーバを作れ
[3] 環境
 [3.1] Windows
 [3.2] VisualC++系
 [3.3] C++
[4]無期限
[5]wsock32.lib  UDPで

おねがいします。

351:177
07/07/09 20:27:59
[1] 授業単元: プログラミング技術
[2] 問題文(含コード&リンク):
(2)例えば式1+2[ENTER]を入力すると3を出力するように足し算の出来る
プログラムに改造したいです。他にも掛け算や割り算、引き算も出来るように
お願いします。

#include <stdio.h>
#include <ctype.h>

main(){
char c[10];
char *p ;
int i=0;

printf("Enter a number: ");

fgets(c,6,stdin);
p = &c; //ここでWarningが出るが問題にはならない
While(isdigit (*p));{
i=i*10+(*p++)-48;
}
printf("You have entered: %d\n", i);
}
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: C++
[4] 期限: 明日中
[5] その他の制限:特になし



352:デフォルトの名無しさん
07/07/09 20:46:43
それは本当にC++か・・・

353:デフォルトの名無しさん
07/07/10 11:03:42
[1] 授業単元:プログラミング言語
[2] 問題文(含コード&リンク):
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: XP pro2
[3.2] VISUALU STUDIO 2005
 [3.3] 言語: C++
[4] 期限:~7/11 09:00
[5] その他の制限:無し

どうかお願いします


354:デフォルトの名無しさん
07/07/10 14:06:54
// ヘッダファイルここから
class Player
{
int point;
public:
Player();
Player(int p);
int get_point();
void set_point(int p);
int rand();
int judge(Player &opp);
void show();
};

void show_winner(int result, const char *a, const char *b);
void show_point(Player &man, Player &woman);


355:デフォルトの名無しさん
07/07/10 14:07:27
// ソースファイルここから
#include <iostream>
#include <iomanip>
#include <string>
#include <cstdlib>
#include <ctime>
#include "player.h"

using namespace std;

Player::Player() : point(100) {std::srand((unsigned)time(NULL));}
Player::Player(int p) : point(p) { std::srand((unsigned)time(NULL)); }
int Player::get_point() { return point; }
void Player::set_point(int p) { point = (p < 0) ? 0 : p; }
int Player::rand() { return std::rand() % 20; }
int Player::judge(Player &opp) {
 int i = this->rand();
 int you = (opp.rand() * 8) / 10;
 if (i > you) {
   opp.set_point(opp.get_point() - i);
   return 1;
 }


356:デフォルトの名無しさん
07/07/10 14:21:09
以下(ry

357:デフォルトの名無しさん
07/07/10 15:06:01

[1] 授業単元:C言語
[2] 数字だけからなる文字列をchar型の配列へ読み込み、それをint型のデータに変換する関数myatoi()
を作成せよ、ただし文字列中に数字以外の文字が含まれれる場合は戻り値としてー1を返すようにすること
さらにmyatoi()を用い、標準入力から与える文字列を数値として(printfの%dを用いて)表示するプログラムを作成せよ
[3] 環境
 [3.1] Linax
 [3.2] gcc
 [3.3] 言語: C言語
[4] 期限: できるだけはやく
[5] できるだけ特殊じゃないので

[3] 環境
 [3.1] OS: linax
 [3.2]gcc gnome emacs
 [3.3] 言語: C
[4] はやめ

お願いします


358:デフォルトの名無しさん
07/07/10 15:08:57
追加

%./ファイル名
入力:14314
入力された数値は14314です
入力:abc
数字以外の文字が入っています
入力:                [c]+d
%

実行結果です

359:デフォルトの名無しさん
07/07/10 15:17:31
[1]授業単元:プログラミング演習
[2]問題文:二つの符号なし整数a,b(ただしa>bとし、bは2のべき乗とする。またaとbは8ビットで、演算の結果は16ビットとする。)をキーボードから読み込み、
①a,bを2進表示し、配列の中にビットを格納しなさい。
②a,bの四則演算(上のを使って、相手に10進で入力させ、それを2進表示する)
c=a+b
d=a-b
e=a*b
f=a/b(商のみ)
を計算し、その結果を出力しなさい。
[3]環境
[3.1]Windows XP
[3.2]VisualC++,UNIX
[3.3]C言語
[4]2007年7月14日まで。
[5]習ったのはfor文、if文、do文、while文、シフト演算子{(>>)(<<)}、ビット単位のAND演算子(&)、OR演算子(|)、排他的OR演算子(^)、1の補数(~)、符号なしありの表し方(unsignなど)です。お願いしますm(_ _)m

360:デフォルトの名無しさん
07/07/10 17:03:35
>>357
URLリンク(kansai2channeler.hp.infoseek.co.jp)

361:みえ
07/07/10 17:14:21
[1] 授業単元:C言語
[2] 問題文(含コード&リンク): 次を元にして、足し算などの式を入力すると計算結果を表示するプログラムを作ることを考える。たとえば式1+2ENTERを入力すると結果の3が表示されるようにプログラムを作り直してください、エラー処理は無視してよい。
他の演算ができるようになっているとさらに高く評価する。
#include<stdio.h>
#include<ctype.h>
main(){
char c[10];
char *p;
int i=0;
printf("Enter a number:");
fgets(c,6,stdin);
p=&c;
while(isdigit(*p)){
i=i*10+(*p++)-48;
}
printf("You have entered: %d\n",i);
}

 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語:C
[4] 期限: 7月11日
よろしくお願いします

たとえば式1+2ENTERを入力すると結果の3が表示される

362:デフォルトの名無しさん
07/07/10 18:16:29
[1] 授業単元: プログラミング実習
[2] 問題文(含コード&リンク):
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: WindowsXP
 [3.2]gcc
 [3.3] 言語: C
[4] 期限: 7/11まで
[5] その他の制限: 特になし

よろしくお願いします。

363:デフォルトの名無しさん
07/07/10 18:18:40
[1] 授業単元: プログラミング実習
[2] 問題文(含コード&リンク):
URLリンク(kansai2channeler.hp.infoseek.co.jp)
実行例
1:コーラ 2:ミルクティー 3:ビール 4:オレンジジュース 5:緑茶
110円 140円 210円 190円 120円
希望の飲み物の番号を入力(終了する場合はCTRL+D) 1
商品はコーラ(価格=110円) お金を入れてください。
1000円:1
500円:0
100円:0
50円:0
10円:0

商品価格=110 釣銭あり
投入貨幣 =1000円(1), 500円(0), 100円(0), 50円(0), 10円(0)
釣銭 =1000円(0), 500円(1), 100円(3), 50円(1), 10円(4)
釣銭用貨幣=1000円(1), 500円(9), 100円(7), 50円(9), 10円(6)

希望の飲み物の番号を入力(終了する場合はCTRL+D)

[3] 環境
 [3.1] OS: WindowsXP
 [3.2]gcc
 [3.3] 言語: C
[4] 期限: 7/11まで
[5] その他の制限: 特になし
よろしくお願いします。

364:デフォルトの名無しさん
07/07/11 12:55:58
>>362は出来たのですが
>>363ができません。
今日の22時までなんです。どなたかお願いします。

365:デフォルトの名無しさん
07/07/11 13:15:47
>>364
昨日やってできたけど、バカバカしくなって消した

366:363
07/07/11 13:24:42
バカバカしくなるぐらい簡単ってことなんでしょうか?
だったら少し頑張って自分でやってみます

367:デフォルトの名無しさん
07/07/11 13:28:55
>>366
できたところまででいいから晒せばヒントあげるよ
すべて人任せはイクナイ

368:デフォルトの名無しさん
07/07/11 18:47:35
[1] 授業単元: プログラミング技術
[2] 問題文(含コード&リンク):ニュートン法
出力が
値入力⇒○
解の値は ○ 収束するのに ○ 回かかりました

[3] 環境
 [3.1] OS:WindowsVISTA
 [3.2] コンパイラ名とバージョン:コンパイラが動かないですorz
 [3.3] 言語:C言語
[4] 期限:考える時間であっというまに・・・7/13(金)17:00です。
[5] その他の制限:
#include<math.h>とdouble、fabsは必ず使うようです。

369:homoじょあ ◆5OLf4yFnuM
07/07/11 23:00:46
(・3・) エェー ニュートン法って式いらんのかいNA

370:デフォルトの名無しさん
07/07/11 23:57:17
>>359お願いしますm(_ _)m

371:デフォルトの名無しさん
07/07/11 23:59:27
[1] 授業単元:情報処理
[2] 問題文(含コード&リンク): コンビニの売り上げ伝票ファイルを集計し、20歳代、30歳代それぞれの売り上げ総額を求める処理
のプログラムを作る。売り上げ伝票ファイルは以下のような形式で記録されるものとする。1行に1品目の売り上げ記録があり、第
1項目が商品コード、第2項目が単価、第3項目が数量、第4項目が客の性別、第5項目が客の年齢層。年齢層の値は19歳以下
なら1、20~29歳なら2、30~39歳なら3、40~49歳なら4、50歳以上なら5である。性別は0が男、1が女を表す。商品コードが0の
または負のとき、それ以後のデータがないことを表すものとする。また、データが不正のときも記録はないものとする。
[3] 環境  
 [3.1] OS:Windows Visual stdio 2003
 [3.2] コンパイラ名とバージョン:bcc
 [3.3] 言語:C
[4] 期限:7月12日朝6時まで
[5] その他の制限:switch文を必ずいれて下さい。

他スレでスルーされてしまいました(´;ω;`)
助けて下さい。よろしくおねがいしますm(_ _)m



372:デフォルトの名無しさん
07/07/12 07:22:26
ぎりぎり杉

373:デフォルトの名無しさん
07/07/12 07:31:20
全くだ
やろうと思ったら6時過ぎてたよw

374:デフォルトの名無しさん
07/07/12 14:42:26
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:Windows xp
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:無期限
[5] その他の制限:なし
よろしくお願いします。


375:デフォルトの名無しさん
07/07/12 14:56:32
#include <stdio.h>
int main(void)
{
int i, n;
int min, sec;
int minsum = 0, secsum = 0;
printf("曲数を入力して下さい. --> ");
scanf("%d", &n);
for(i = 0; i < n; i++) {
printf("<%d 曲目>\n", i);
printf("何分ですか. --> ");
scanf("%d", &min);
printf("何秒ですか. --> ");
scanf("%d", &sec);
minsum += min;
secsum += sec;
}
printf("総時間%d 分%d 秒", minsum, secsum);
return 0;
}

376:デフォルトの名無しさん
07/07/12 15:01:24
>>375 いちいち突っ込むのもあれだけど、とりあえず(鼻からブーーのAA略) ブーーッ!

377:デフォルトの名無しさん
07/07/12 16:43:15
>>359お願いします。

378: ◆lIN/ESgxWw
07/07/12 17:01:58
[1]単元:プログラミング技術
[2]問題文:アップローダーのno.4600にアップしておきました

[3]環境
OS:リナックス
コンパイラ:gcc
言語:C
[4]期限:来週の水曜までに
 よろしくお願いします。

379:368
07/07/12 17:51:51
>>369 式いります。
do{
(式)
}while();
みたいな感じなのですが、私には理解できませんorz

380:デフォルトの名無しさん
07/07/12 18:22:25
>>359
c言語ブランク暦13年の俺様のテクニックをしかと見届けよ

#include<stdio.h>
char b8[9],b16[17];
void d2b8(int n){
for(int i=0;i<8;i++)b8[7-i]=(n&1)+'0',n/=2;b8[8]='\0';
}
void d2b16(int n){
for(int i=0;i<16;i++)b16[15-i]=(n&1)+'0',n/=2;b16[16]='\0';
}
int main(void){
int a,b,i;
while(1){
printf("a=");scanf("%ud",&a);
if(a<0||a>255){printf("8bit\n");continue;}
printf("b=");scanf("%ud",&b);if(b>=a){printf("b<a\n");continue;}
if(b!=1&&b!=2&&b!=4&&b!=8&&b!=16&&b!=32&&b!=64&&b!=128){printf("b=2^n\n");continue;}
d2b8(a);printf("a = %3d (%s)\n",a,b8);
d2b8(b);printf("b = %3d (%s)\n",b,b8);
d2b16(a+b);printf("c = %3d + %3d = %5d (%s)\n",a,b,a+b,b16);
d2b16(a-b);printf("d = %3d - %3d = %5d (%s)\n",a,b,a-b,b16);
d2b16(a*b);printf("e = %3d * %3d = %5d (%s)\n",a,b,a*b,b16);
d2b16(a/b);printf("f = %3d / %3d = %5d (%s)\n",a,b,a/b,b16);
}
//return 0;
}}

381:デフォルトの名無しさん
07/07/12 18:42:45
計算も2進でやらせたいんじゃないん?

382:デフォルトの名無しさん
07/07/12 20:36:53
引数にクラスを指定するのってどうやるの?
下のやり方だとだめだっだ。

TEST_CLASS Sizuoka;

int *p;
p = &Sizuoka;

func(p);




次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch