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

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
あなたが解けない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++の宿題を片付けます 67代目
http://pc8.2ch.net/test/read.cgi/tech/1150273052/
【過去スレ一覧】
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
2デフォルトの名無しさん:2006/06/24(土) 23:26:48
>>1
そろそろ期末だな
3デフォルトの名無しさん:2006/06/24(土) 23:43:35
乙であります。
4デフォルトの名無しさん:2006/06/25(日) 01:30:06
アルゴリズムの問題でお聞きしたいです。
↓の16ページ目 第6問です(pdf)
ttp://www.i.u-tokyo.ac.jp/edu/course/ipc/pdf/2004system-j.pdf


(1)は
C(A,1) = 1;
C(B,1) = 0;

C(A,n) = C(A,n-1) + C(B,n-1);
C(B,n) = C(B,n-2) + C(A,n-2);

(2) は
空欄1 ; r = 1;
空欄2 ; r = 0;
空欄3 ;
if( p == 'A'){ r = path('A',n-1) + path('B' , n-1);}
if( p == 'B'){ r = path('A',n-2) + path('B' , n-2);}

と自分で答えを出しましたが (3)がわかりません。
漸化式を解いてそれを表現するだけだと思ったのですが うまくいきません。
よろしくお願いいたします。
5デフォルトの名無しさん:2006/06/25(日) 02:10:06
>>4
漸化式から一般項が求められないということ?
なら、C(A,n)とC(B,n)はそれぞれフィボナッチ数列になると思われ。
6デフォルトの名無しさん:2006/06/25(日) 02:34:42
>>4 試してないけど
a = a1 + b1;
b = a0 + b0;
a0 = a1; b0 = b1;
a1 = a; b1 = b;
で大丈夫かな。漸化式をそのまま入れてみたけど。
7デフォルトの名無しさん:2006/06/25(日) 03:13:39
>>5
一般項一応求められるのですが なにか与えられたプログラムで表現できませんでした。
a bも初期化してないし どうやるんだろうと思っていました。
フィボナッチ数列は初耳です。

>>6
ありがとうございます。おみそれしました。
おそらくそれで正しいと思います。
漸化式って配列でも使わなきゃ駄目かと思っていました。力不足です。
アルゴリズムの授業は受けていたのですが・・

この分野勉強するのにお勧めの本ってありますか?
適当にデータ構造とアルゴリズムとかそんな感じの本見ればいいんですかね
講義ノートしか無いんで駄目駄目です
8デフォルトの名無しさん:2006/06/25(日) 06:15:19
[1] 授業単元:プログラミング・同演習
[2] 問題文(含コード&リンク):キーボードから入力したファイル名のファイルを開き、
そのファイルにアルファベットの小文字aがいくつ含まれているかをカウントして表示するプログラムを作成せよ。
【実行例】
(適当なファイル名を入力してエンターキーを押す)
文字aは○個ありました。

[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン:Visual C
 [3.3] 言語:C
[4] 期限:明日の夜12時までが提出期限なのでなるべく今日中にはお願いします。
[5] その他の制限:繰り返し処理はfor文のみ使ってwhile文等は使わないで下さい。

getc関数を使うと思うのですが、イマイチ上手くいかないので教えて下さい。
9デフォルトの名無しさん:2006/06/25(日) 09:07:20
>>8
#include <stdio.h>
#include <string.h>
#include <assert.h>
int main(){
int c, cnt = 0;
char filename[256], *p;
FILE *fp;
fgets(filename, sizeof(filename), stdin);
if(p = strchr(filename, '\n')) *p = '\0';
assert(fp = fopen(filename, "r"));
for(; EOF != c; c = fgetc(fp))
if(c == 'a') cnt++;
printf("文字aは%d個ありました。\n", cnt);
return 0;
}
10デフォルトの名無しさん:2006/06/25(日) 09:22:40
[1] 授業単元: プログラミング基礎
[3] 環境
 [3.1] OS: (WindowsXP
 [3.2] コンパイラ名とバージョン:Cpad
 [3.3] 言語: どちらでも可
[4] 期限: 今日中
#include <stdio.h>
int main(void)
{
int i;
printf("i=");
scanf("%d", &i);
if(i==1)
{printf("*\n");}
if(i==2)
{printf("**\n");printf("**\n");}
if(i==3)
{printf("***\n");printf("***\n");printf("***\n");}
if(i==4)
{printf("****\n");printf("****\n");printf("****\n");printf("****\n");}
if(i==5)
{printf("*****\n");printf("*****\n");printf("*****\n");printf("*****\n");printf("*****\n");}
if(i==6)
{printf("******\n");printf("******\n");printf("******\n");printf("******\n");printf("******\n");printf("******\n");}
if(i<=0||i>=7)
{printf("error\n");}
return 0;
}
このプログラムを作ったのですがこのプログラミングをwhile do-whileのどちらかを使いすっきりさせたいのです。
しかし、何度やってもうまくいきません。
力を貸してください。
11デフォルトの名無しさん:2006/06/25(日) 09:27:59
>>10
補足です。
このプログラムは打った数分だけ縦と横に*が表示されるというものです。
12デフォルトの名無しさん:2006/06/25(日) 09:33:37
>10

#include <stdio.h>
#defineINPUT_MAX6
int main(void)
{
int i,j;
char str_ast[INPUT_MAX];


printf("i=");
scanf("%d", &i);
for( j=0; j < INPUT_MAX ; j++){
str_ast[j]='*'
}

if( i <= 0 || i>INPUT_MAX ){
printf("error\n");
return 0;
}
for( j=0; j<i ; i++){
printf("%*s\n", j,str_ast);
}
return 0;
}
13デフォルトの名無しさん:2006/06/25(日) 09:41:23
>>12
実行しましたが、エラーが出ました。
また、for文ではなくwhileが do while で作りたいのです
14デフォルトの名無しさん:2006/06/25(日) 10:01:22
#include <stdio.h>
int main(void)
{
int i, k, m = 0;
printf("i="); scanf("%d", &i);

if(i <= 0 || i >= 7){
printf("error\n");
} else {
while (m != i){
k = 0;
while(k != i){
putchar('*');
k++;
}
putchar('\n');
m++;
}
}
return 0;
}
15デフォルトの名無しさん:2006/06/25(日) 10:36:28
お願いします

虚数演算を行う関数
要素数2の1次元配列を使って複素数一個を表す。例えば
a[]={-1,1};
であれば、これは-1+jを表す(jは虚数単位)ものとする。a,b,cをそれぞれ要素数2の
1次元配列(つまり複素数)として、複素数の四則演算のうち和積商を行う関数群
void add(a,b,c);/*c=a+b*/
void multiply(a,b,c);/*c=a*b*/
void divide(a,b,c);/*c=a/b*/
を作成し、この関数を利用して以下の数式の値fを求めよ。(各関数においてcは答えの容器である)
f=(2+3j)*(-1+2j)/(1+j)+5j

3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン:Microsoft Visual C++ 6.0
 [3.3] 言語:C++
[4] 期限:6/27
[5] 制限:教科書はサイエンス社のザ・Cです。基礎的なことしか習っていません。標準ライブラリ、
という内容も分かりません。
1610:2006/06/25(日) 10:52:28
>>14
プログラムありがとうございます。無事実行できましたが
制限をつけるのを忘れていました。
まだc言語を習い始めて間もないため
putcharなどは使うことができません。
また、教科書はオーム社 C言語によるプログラミング基礎編です。
if,while,○○++等基本的なものだけでお願いできないでしょうか?

17デフォルトの名無しさん:2006/06/25(日) 10:56:52
条件小出し厨はカエレ
18デフォルトの名無しさん:2006/06/25(日) 11:00:10
switchもだめか
1910:2006/06/25(日) 11:03:30

>>17 忘れてたんで・・・
>>18 はい、すいません
20デフォルトの名無しさん:2006/06/25(日) 11:03:38
>>16
ヒント:putchar を printf に変える
21笹井奈琴:2006/06/25(日) 11:04:21
>>15
#include <stdio.h>
#include <math.h>
void add( const double* a, const double* b, double* c ) {
c[0] = a[0] + b[0];
c[1] = a[1] + b[1];
}
void multiply( const double* a, const double* b, double* c ) {
c[0] = a[0]*b[0] - a[1]*b[1];
c[1] = a[1]*b[0] + a[0]*b[1];
}
void divide( const double* a, const double* b, double* c ) {
double m = a[1]*a[1] + b[1]*b[1];
c[0] = ( a[0]*b[0] + a[1]*b[1] ) / m;
c[1] = ( a[0]*b[1] + a[1]*b[0] ) / m;
}
int main (int argc, char * const argv[]) {
double e1[2] = { 2, 3 }, e2[2] = { -1, 2 }, e3[2] = { 1, 1 }, e4[2] = { 0, 5 };
double c1[2], c2[2], c3[2];
multiply( e1, e2, c1 );
divide( c1, e3, c2 );
add( c2, e4, c3 );
printf( "result:%lf%cj%lf", c3[0], c3[1]<0?'-':'+', fabs(c3[1]) );
return 0;
}
2210:2006/06/25(日) 11:09:29
>>14さんのやつ参考に必死にやったらできました。
お騒がせしました。
23デフォルトの名無しさん:2006/06/25(日) 11:28:55
[1] 授業単元:プログラミングIII
[2]真っ黒な画面(この場合は使いやすいかと思って768*768サイズを自主的に使いました)
  に、グラデーション(色が若干ずつずれていく)させた線を引く
[3] Microsoft Visual C++
 [3.1] OS: WindowsXP
 [3.2] Microsoft Visual C++ 2003
 [3.3]C++
[4]2006年7月いっぱいまで
[5]制限

  画像の色を0〜360の値を入れる事により、色相をずらすプログラムを改造して作り上げようとしていました。

ヘンテコなプログラムになっていると思いますが、ここから改良して、完成して欲しいです。

No.2184にファイルがおいてあります。bmp_in.txtは完成系です。
24デフォルトの名無しさん:2006/06/25(日) 11:34:01
>>21 m は 0 にもなりうるよ。
25デフォルトの名無しさん:2006/06/25(日) 11:46:34
>>24
つーかdivideの式がおかしいような。
b==0の時に0除算になるのは当然だからこんな感じじゃない?
void divide(const double* a,const double* b,double* c) {
  double mi=1/(b[0]*b[0]+b[1]*b[1]);
  c[0]=(a[0]*b[0]-a[1]*b[1])*mi;
  c[1]=(a[1]*b[0]-a[0]*b[1])*mi;
}

26笹井奈琴:2006/06/25(日) 11:47:07
>>24
ほんとだ。
複素数O( 0+j0 )で割り算したときはどういう結果にするのが適切?
27笹井奈琴:2006/06/25(日) 11:48:20
>>25
ホントだ、間違ってる。ありがと
28デフォルトの名無しさん:2006/06/25(日) 11:48:48
って自分も間違ってりゃしょうがないな。

void divide(const double* a,const double* b,double* c) {
double mi=1/(b[0]*b[0]+b[1]*b[1]);
c[0]=(a[0]*b[0]+a[1]*b[1])*mi;
c[1]=(a[1]*b[0]-a[0]*b[1])*mi;
}
29デフォルトの名無しさん:2006/06/25(日) 12:01:01
void divide(const double *a, const double *b, double *c){
  if(b[1] == 0){
    c[0] = a[0] / b[0];
    c[1] = a[1] / b[0];
  }else{
    double x = b[0] * b[0] - b[0] * -b[0];
    if(x != 0){
      double y[2];
      y[0] = b[0] / x;
      y[1] = -b[1] / x;
      multiply(a, y, c);
    }else{
      printf("error\n");
    }
  }
}
3029:2006/06/25(日) 12:03:41
ちがった。無視してください。
3110:2006/06/25(日) 12:06:22
#include <stdio.h>
int main(void)
{
int i, j;
int m;
printf("m=");
scanf("%d", &m);
i=1;
while(i<=m)
{
i++;
j=1;
while(j<=m)
{
j++;
printf("*");
}
printf("\n");
}
return 0;
}

数値を入力し、入力した数値の数だけの横と縦を持つ正方形を出力するプログラムですが、
1〜6までは通常処理、0以下7以上はerrorと表示したいのですが、
うまくできません。知恵を貸してください
32デフォルトの名無しさん:2006/06/25(日) 12:14:36
>>31
#include <stdio.h>
int main(){
int m, i;
printf("m=");scanf("%d", &m);
for(i = 0; i < m * m; i++){
putchar('*');
if(i % m == m -1) putchar('\n');
}
return 0;
}
33デフォルトの名無しさん:2006/06/25(日) 12:15:52
エラー処理忘れてた

#include <stdio.h>
int main(){
int m, i;
printf("m=");scanf("%d", &m);
if(m <= 0 || m >= 7){
puts("error");
}else{
for(i = 0; i < m * m; i++){
putchar('*');
if(i % m == m -1) putchar('\n');
}
}
return 0;
}
34デフォルトの名無しさん:2006/06/25(日) 12:21:41
#include <stdio.h>
int main(void) {
  int i,m;
  printf("m=");
  scanf("%d",&m);
  if (i<=0 || i>=7) {
    printf("error\n");
  } else {
    i=0;
    while (i<m) {
      printf("%s\n","*******"+(7-m));
    }
  }
  return 0;
}
35デフォルトの名無しさん:2006/06/25(日) 12:23:34
寝ぼけているな。

#include <stdio.h>
int main(void) {
  int i,m;
  printf("m=");
  scanf("%d",&m);
  if (m<=0 || m>=7) {
    printf("error\n");
  } else {
    i=0;
    while (i++<m) {
      printf("%s\n","*******"+(7-m));
    }
  }
  return 0;
}

36デフォルトの名無しさん:2006/06/25(日) 12:38:32
>>31
この書き方に統一すると
#include <stdio.h>
int main(void)
{
int i, j;
int m;
printf("m=");
scanf("%d", &m);
i=1;
if(m==0||m>=7)
printf("error\n");
else{
while(i<=m)
{
i++;
j=1;
while(j<=m)
{
j++;
printf("*");
}
printf("\n");
}
}
return 0;
}

こんな感じじゃないか?
C初めて2ヶ月の俺が言うのもなんだけどもう少し読みやすい書き方をすることをお勧めする
3710:2006/06/25(日) 12:43:59
ありがとうございます。できました。
38デフォルトの名無しさん:2006/06/25(日) 16:43:08
int main(void)
{
int m;
printf("m=");
scanf("%d", &m);
if(m<=0||7<=m){
printf("error\n");
return 0;
}

{int i=1;
while(i<=m)
{int j=1;
while(j<=m)
{
printf("*");
j++;
}
printf("\n");
i++;
}
}
return 0;
}

こんな感じじゃないか?
39デフォルトの名無しさん:2006/06/25(日) 16:46:43
システムコールのみを使ってファイルの内容を改行ごとに配列に代入するには
どうしたらいいのでしょうか
よろしくお願いします
40デフォルトの名無しさん:2006/06/25(日) 16:52:58
[1] 授業単元:言語論
[2] 問題文(含コード&リンク):
最初に一つの自然数を入力する.この自然数をnとする.このあとに続けて,空白で区切ったn個の自然数を入力する.
これらのデータをd1,d2,...,dnとよぶ.これらのn個の自然数の最大値と最小値の差を表示するプログラムを作成しなさい.
プログラム中では,連続する整数へのポインタ,整数の数 nの二つのパラメータを与えると,与えたn個の数の中で「最大のものを最小のもの」
で引いた値を返す関数 int range(int *p, int n) を定義し,それを利用するものとする.
1 nとして与える値は1以上32以下とし,それ以外の数を入力したときは"error"を出力してプログラムを停止すること.
2  出力した数字の後ろに,スペースを出力してはいけない.
3  関数rangeでは,データはポインタ変数を用いて扱い,配列としての扱いは一切行わないこと.
4  端末の入出力はmain関数中で直接行い,関数range中では端末への表示は行わないこと.
5 プログラム名は「range」
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
 [3.3] 言語: C
[4] 期限: 6/26午後7時

問題文が長くなりすみませんが、よろしくお願いします。
41デフォルトの名無しさん:2006/06/25(日) 17:08:27
http://pc8.2ch.net/test/read.cgi/tech/1150273052/
つーかまだ前スレ残ってるからあっちから使おう
42デフォルトの名無しさん:2006/06/25(日) 17:15:03
int range(int *p, int n)
{int i,max=*p,min=*p;
for(i=1; i<n; ++i){
if(max<*(p+i)) max=*(p+i);
if(min>*(p+i)) min=*(p+i);
}
return max-min;
}
int main(void)
{int n;
printf("n?>"); scanf("%d",&n);
if(n<1 || 32<n){ printf("error\n"); return 0; }
{int i,d[32];
printf("d?>"); scanf("%d", &d[0]);
for(i=1; i<n; ++i) scanf("%d", &d[i]);
printf("range=%d\n",range(d,n));
}
return 0;
}
4340:2006/06/25(日) 17:21:07
>42

ありがとうございます。助かりました。
44デフォルトの名無しさん:2006/06/25(日) 18:44:38
>>15をやって頂いた方、ありがとうございます!!
45デフォルトの名無しさん:2006/06/25(日) 19:30:40
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク): 任意の数nとrを入力して、
nCrを求めてその結果を表示するプログラムを作成せよ
[3] 環境
 [3.1] OS:Windows XP
 [3.2] コンパイラ名とバージョン:Borland
 [3.3] 言語: C
[4] 期限: 6/26午前5時
46デフォルトの名無しさん:2006/06/25(日) 20:07:51
>>45
gcc で確認。
#include <stdio.h>
int fact(int) ;
int choose(int,int) ;
int main(void) {
int n,r ;
printf("N?") ;
scanf("%d",&n) ;
printf("R?") ;
scanf("%d",&r) ;
printf("Choose!%d\n",choose(n,r)) ;
return(0) ;
}
int fact(int n) {
return((n==0)? 1:n*fact(n-1)) ;
}
int choose(int n,int r) {
int res ;
if(r==1) res=n ;
else if(r==n || r==0)res=1 ;
else res = (fact(n)/(fact(r)*(fact(n-r)))) ;
return(res) ;
}
範囲のチェックとかしてないから、大きな数になると落ちる(^^;
そこら辺は対応ヨロシコ。
47デフォルトの名無しさん:2006/06/25(日) 21:31:44
1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2186.txt
network1.txt
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2187.txt
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 月曜の18:00まででお願いします
[5] その他の制限: なし

どなたかよろしくお願いいたします。
48デフォルトの名無し:2006/06/25(日) 21:47:53
[1]授業単元: C 言語
「2」問題文
ハノイの塔を解くボトムアップ方式のプログラムを作り上げよ。
  分割統治法アルゴリズムの動作解析
  それに基づくボトムアップ方式の設計

「3」
  「3.1」  OS :windowsXP
  「3.2」  コンパイラ名:gcc3.3.2
  「3.3」  言語 C
「4」期限 月曜日の23:59までです。どうかおねがいします。
「5」その他の制限:ありません。
49デフォルトの名無しさん:2006/06/25(日) 22:17:44
【授業単元】C言語 プログラミング
【環境】Visual Stdio.NET2003
【OS】Windows XP
【提出期限】6月26日
【課題内容】ある年の月間平均気温、月間降水量が以下の通りであった
標柱のデータを構造体の配列に格納したあと、年間平均気温、年間平均気温
年間平均降水量を求めるプログラムを作成せよ

 月    1  2  3 4 5 6 7 8 9 10 11 12
平均気温 3.6 4.3 7.5 13.5 18.0 21.7 25.6 26.8 22.8 16.9 11.4 6.2
降水量 50 61 98 153 162 210 218 170 209 121 74 48

例答)年間平均気温14.9 年間平均降水量131.17
50デフォルトの名無しさん:2006/06/25(日) 22:40:40
>>49
なんか変な問題だな。
年間平均気温はΣ((月間平均気温)*(月の日数))/(年の日数)で出せばいいのかな。
降水量は明らかに出ている数値が年間平均降水量じゃ無いところが。
年間平均降水量なら月ごとの平均降水量の和のはずだろ。
51デフォルトの名無しさん:2006/06/25(日) 23:20:35
ヤバイ。これは消防の頃の記憶がががが…。
コロ助懐かしい…。
52デフォルトの名無しさん:2006/06/25(日) 23:21:17
>>51は書き込むスレ間違えました、申し訳ありません。
53デフォルトの名無しさん:2006/06/25(日) 23:43:15
[1] 授業単元:
[2] 問題文(含コード&リンク):main関数内で0〜10までの5個のランダムなint型整数値を1元配列data1に格納するものとする。
又、0〜10までの10個のランダムなdouble型実数値を1元配列data2に格納するものとする。
この時、int型のデータnとint型の1元配列dataを引数として、データのdouble型平均値を返す関数averageを作成し、
この関数を多重定義することによりdouble型1元配列の平均値も算出できるようにせよ。
最後に、main関数でdata1とdata2の平均値を出力するようなプログラムをトップダウン方式で作成せよ。
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン: Borland
 [3.3] 言語:C++
[4] 期限:明日の午後六時まで
[5] その他の制限: 特にありません。
夜分遅くに申し訳ありませんが、もし解いて下さる方がいたら宜しくお願いします。
54デフォルトの名無しさん:2006/06/25(日) 23:47:22
>>49
構造体使う意味が分からんのだが、こういうこと?
#include <stdio.h>
#define MONTH 12
typedef struct {
double temperature ;
int precipitation ;
}Weather ;
double temperature[] = {3.6,4.3,7.5,13.5,18.0,21.7,25.6,26.8,22.8,16.9,11.4,6.2} ;
int precipitation[] = {50,61,98,153,162,210,218,170,209,121,74,48} ;
int main(void) {
Weather data[MONTH] ;
int i ;
double tmp,pre ;
tmp=pre=0 ;
for(i=0;i<MONTH;i++) {
data[i].temperature = temperature[i] ;
data[i].precipitation = precipitation[i] ;
}
for(i=0;i<MONTH;i++) {
tmp += data[i].temperature ;
pre += data[i].precipitation ;
}
printf("temperature avg:%lf,precipitation avg:%lf\n",tmp/MONTH,pre/MONTH) ;
return(0) ;
}
それとも問題文の理解ミス?
55デフォルトの名無しさん:2006/06/26(月) 00:00:38
年間平均降水量って複数年のデータの年平均じゃないの?
ということで、「月間平均降水量」の間違いかと思ってググったら、
そのような言葉はどうも無いようです。
56デフォルトの名無しさん:2006/06/26(月) 00:06:49
[1] 授業単元: 基礎プログラミング演習
[2] 問題文(含コード&リンク): このプログラムを変更して、摂氏から華氏への変換をユーザ定義関数として定義して,これを使うようにせよ.
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2021.c

[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: Visual Studio 2003
 [3.3] 言語: C
[4] 期限: 6月27日
[5] その他の制限: よろしくお願いします。
57デフォルトの名無しさん:2006/06/26(月) 00:18:34
>>56
K&R
58デフォルトの名無しさん:2006/06/26(月) 00:30:00
8進数を表現するときは0をつけ
16進数を表現するときは0xをつけますが
2進数ってどうやって表現するんでしたっけ?
59デフォルトの名無しさん:2006/06/26(月) 00:35:33
ないよ
60デフォルトの名無しさん:2006/06/26(月) 00:36:30
分かりました
0xが16進数で
0oが8進数で
0bが2進数のようですね
61デフォルトの名無しさん:2006/06/26(月) 00:55:52
>>60
「わかって」よかったね。
つか、6分で「わかる」ような質問すなヴォケ。
しかもスレ違いじゃ
62デフォルトの名無しさん:2006/06/26(月) 01:06:48
>>61
おいおい、何キレてんだよ?これだから 低レベル 低俗 な 低学歴 は困るぜ・・・ヤレヤレ
63デフォルトの名無しさん:2006/06/26(月) 01:07:42
サオ師乙。
64デフォルトの名無しさん:2006/06/26(月) 01:14:36
>>56
double CtoF(double temperature) {
return(temperature*9/5+32) ;
}
あとは該当個所で呼び出せばおk。
65デフォルトの名無しさん:2006/06/26(月) 01:23:29
すみません、前スレの556と同じ内容なんですが、次のような形でお願いできませんか
基本構造
while(TRUE){
type_prompt();
read_command(command);
if((pid=fork())==0){
//Act as a child process
//commandからパイプの切り出し、コマンド名とパラメータの切り出し
//exec*によるコマンド実行
}else if(pid != -1){
//error
}else{
//Act as a parent process
waitpid(&status);
}
}

キーワード
.pathの読み取り-open,close,resd…
プロセス生成(fork)-終了待ち(wait,waitpid),ゾンビプロセス、シグナル処理(sigaction)
プロセスイメージの置き換え(exec*)-環境変数の新規設定(getenv,setenv)
パイプによるプロセス間通信(pipe,due/due2)-標準入出力の切り替え
6665:2006/06/26(月) 01:24:26
【質問テンプレ】
[1] 授業単元: オペレーティングシステム
[2] 問題文(含コード&リンク):
fork,exec*システムコールを用いて簡単なコマンドインタープリタ
(mysh)を作成せよ。但し、作成するコマンドインタープリタは以下の
昨日をサポートすること。
・設定ファイル(.path)にコマンドサーチパスを指定することが出来る。
なお、ファイル内のパスの指定方法は、各自が考え定義すること。
(パスにないコマンドを入力した場合には、見つからない旨のエラー
メッセージを出力すること。)
・パイプを利用して複数(可変個)のコマンドの入出力を結合する
ことができる。
・コマンド実行中にCtrl-Cを入力すると、現在のコマンドの実行を
中断する
・exitを入力すると、myshを終了する。
[3] 環境
 [3.1] OS: windowsXP,cygwin
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語:C言語
[4] 期限: ([2006年06月26日23:59まで]
[5] その他の制限: ファイル入出力、プロセス制御、パイプ生成に
関してはシステムコールを用いること。
6765:2006/06/26(月) 01:26:26
実行イメージ
$./mysh
myprompt>
myprompt> ←エンターキーのみの入力なら単なる改行
myprompt>ls -l ←単一コマンドの実行
……………
myprompt>hoge
myprompt>hoge:Command Not Found ←コマンドパスにないコマンドを実行しようとした
myprompt>ls -l|grep aaa ←パイプによる入出力結合
………..
myprompt>exit ←exitを入力するとmysh終了


期限ぎりぎりまで考えましたがわかりませんでした。
できればプログラムの説明も簡単に入れてくれると理解しやすくて助かります。
よろしくお願いします。
68デフォルトの名無しさん:2006/06/26(月) 01:36:24
>>64
double CtoF(double temperature) {
return(temperature*9/5+32) ;
}

これは、どこにつけたらいいのでしょうか?
該当個所で呼び出すとはどういう意味でしょうか?理解力がなくてすみません・・。
69デフォルトの名無しさん:2006/06/26(月) 01:36:57
[1] 授業単元:C++基礎演習
[2] 問題文(含コード&リンク):
第1引数、第2引数ともにchar型の1元配列であり、
これら2つの配列(文字列)を連続して表示する関数catstringがあるものとする。
但し、第2引数にはデフォールトの文字列、”お疲れさん”が設定されているものとする。
main関数からキーボード入力により、2つの文字列を取得し、
catstringの第1引数のみに文字列が渡される場合と第1、及び第2引数に文字列が与えられる場合の
動作確認を行うプログラムを作成しなさい。
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン: Visual Studio2005
 [3.3] 言語:C++
[4] 期限:明後日まで
[5] その他の制限: 特にありません。
こんな時間に申し訳ありませんがお願いします。
70デフォルトの名無しさん:2006/06/26(月) 01:44:04
>>69
#include <iostream>
#include <string>
using namespace std;
void catstring(char const* s1,char const* s2="お疲れさん"){
  cout << s1 << s2 << endl;
}

int main(void) {
  string s1,s2;
  cout << "Input string1";
  cin >> s1;
  cout << "Input string2";
  cin >> s2;

  catstring(s1.c_str());
  catstring(s1.c_str(),s2.c_str());
}
71デフォルトの名無しさん:2006/06/26(月) 02:30:37
もし>>53の問題解ける方がいらっしゃったらお願いします。
72デフォルトの名無しさん:2006/06/26(月) 02:32:46
>>70
ありがとうございます。それを元に自分で少しいじってみようと思います。
本当に助かりました!
73超初心者:2006/06/26(月) 03:00:11
os:winxp コンパイラ:gcc 言語:C
下記の課題をやっているのですが、うまく動きません、、どこがおかしいのでしょうか?
どなたか助言をお願いします。

アメリカへの船便小包の郵便料金は、1000g まで1800 円、1000g を越え10000g までは1000g ごとに550 円
ずつの割増し、10000g を越え20000g まではさらに1000g ごとに350 円ずつの割増しになる。小包の重さ
を読み込み、その郵便料金を計算するプログラムを作りなさい。ただし、船便小包の重量制限は20kg であ
る。
(例: 3000g → 2900 円、3001g → 3450 円、20000g → 10250 円)

#include <stdio.h>
main()
{
int n, m, o;
printf("重さあたりの郵便料金を計算します\n重さ=");
scanf("%d", &n);
m = 1800+((n-1)/1000*550);
o = 6750+((n-10001) / 1000*350);
if(1000>=n>0){
printf("1800円\n");
}
if(10000>=n>1000){
printf("%d円\n",m);
}
if(20000>=n>10000){
printf("%d円\n",o);
}
if(n>20000){
printf("重量オーバーです\n");
}
}
74デフォルトの名無しさん:2006/06/26(月) 03:03:17
if (1000 >= n && n > 0)

以下同様
75デフォルトの名無しさん:2006/06/26(月) 03:04:07
>>71
ttp://homepage2.nifty.com/aito/cpp/node3.html
関数の多重定義を理解すりゃすぐにできるっしょ?
76デフォルトの名無しさん:2006/06/26(月) 03:23:24
>>71
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2188.txt

std::accumulateを使うのが違反だってのなら自前で。
77デフォルトの名無しさん:2006/06/26(月) 06:59:06
>>46
あんなに速答してくださってありがとうございます。
おかげさまで出来ました。ありがとうございました。
78降水量の人:2006/06/26(月) 09:29:23
問題は問題文をそのまま入力しました
一切改変してません
年間降水量は全部の月間をたして12でわるのかな
79降水量の人:2006/06/26(月) 09:33:50
>>54
ありがとうございました
本当に助かりましたm(_ _)m
80デフォルトの名無しさん:2006/06/26(月) 10:40:40
#include <stdio.h>
#include <string.h>
typedef struct Item_{
char Name[10]; unsigned int Day; char Client; int Order;
}Item;
Item InputItem(){
Item I={"\0",0,"\0",0};
char buf[256];
puts("発注内容を入力します。");
puts("品物の名前は?");
scanf("%s",buf);
strncpy(I.Name,buf,10);
puts("いくつ発注しますか?");
scanf("%d",&I.Order);
puts("クライアント");
scanf("%s",buf);
I.Client = buf[0];
puts("日にち");
scanf("%d",&I.Day);
return I;
}
81デフォルトの名無しさん:2006/06/26(月) 10:40:55
void OutputItem(Item I){
printf("品物の名前は[%s]\n発注数は[%d]\n発注日[%d]\n依頼主
[%c]",I.Name,I.Order,I.Day,I.Client);
}
int main(){
Item I;
I = InputItem();
OutputItem(I);
return 0;
}
InputItemのながおかしいのですが
どうすれば直るでしょうか?やってみたけどわかりませんでした
8281:2006/06/26(月) 11:04:10
すいません 解決しました
83VC++初心者:2006/06/26(月) 11:09:56
[1] 授業単元:ファイル読み書き
[2] 問題文(含コード&リンク):
"abc.txt"ファイルを読込み、読込み数値 + 1を
"abc.txt"ファイルにセット(書込み)する。

[3] 環境
 [3.1] OS:WindowsXP
 [3.2] VC++5.0
 [3.3] 言語:C++
[4] 期限:6月26日 夕方
[5] その他の制限:VC++の初心者です。
         基本的な事ですみません。
         よろしくお願いします。
84デフォルトの名無しさん:2006/06/26(月) 11:34:43
>>83
#include<iostream>
#include<fstream>
using namespace std;
int main(){
    int n = 0;
    {
        ifstream fin("abc.txt");
        fin >> n;
    }{
        ofstream fout("abc.txt");
        fout << n+1;
        cout << n+1 << endl;
    }
}
85デフォルトの名無しさん:2006/06/26(月) 11:35:39
初心者の私がやってみた、間違っていたら賢い人直してください。
#include <iostream>
#include <fstream>
using namespace std;

int main(void){
char s[30];
int num;
ifstream fin("abc.txt");
if (fin.fail()){
cout << "file open error\n";
} else {
fin >> s;
ofstream fout("abc.txt");
if (!fout){
cout << "file open error\n";
} else {
sscanf(s, "%d", &num);
sprintf(s, "%d", num+1);
fout << s << "\n";
fout.close();
}
fin.close();
}
return 0;
}
86デフォルトの名無しさん:2006/06/26(月) 11:44:19
>>83
#include <iostream>
#include <fstream>
main()
{
int n;
std::ifstream ifs("abc.txt");
if(!ifs){
std::cerr << "file open error" << std::endl;
}
ifs >> n;
ifs.close();
std::ofstream ofs("abc.txt");
ofs << (n + 1) << std::ends;
}
87デフォルトの名無しさん:2006/06/26(月) 11:49:07
>>85
間違っちゃ無いが気になるとこが結構あった。
一応指摘しておくけど、もしすでに分かっていたら適当に聞き流しておいてください。

わざわざcloseを自分で呼ぶのが冗長。
closeはstreamのデストラクタで自動的に呼ばれる。
ただ、ofstreamを開く前にifstreamのcloseを呼び出す場合なら意味はある。
しかし、今回のコードだと、そうでないので、まったくもって無意味。

入力を文字列で受け取って変換するのは冗長。
operator>>(ifstream&,int)があるから変換する必要はない。
さらに言えば、入力長のチェックもしていないのでバッファオーバーフローの脆弱性がそれには存在する。

同様に、出力を文字列に変換するのも冗長。
同じようにoperator<<(ofstream&,int)があるから自分で変換する必要は無い。
8886:2006/06/26(月) 11:49:09
エラー時のreturn入れ忘れた。
89デフォルトの名無しさん:2006/06/26(月) 11:51:00
【授業単元】C言語 プログラミング
【環境】Visual Stdio.NET2003
【OS】Windows XP
【提出期限】6月29日
【課題内容】2つの実数を文字として取り込み、数値に変換後、
それらの和・積・差・商を求めるプログラムを作成せよ
90デフォルトの名無しさん:2006/06/26(月) 11:51:05
>>87
ありがとうございます
非常に勉強になりました
91デフォルトの名無しさん:2006/06/26(月) 12:01:42
[1] 授業単元:プログラミング言語基礎
[2] 問題文(含コード&リンク):税込みの値段(消費税5%)を入力した時、税別の値段と消費税率を表示せよ。
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:Borland Cpad
 [3.3] 言語:C++
[4] 期限:2006年6月27日12:00まで
[5] その他の制限:まだ基本部分しかできてません。お願いします。
9283:2006/06/26(月) 12:05:46
ファイルの読み書きですが
>>84>>85>>86>>87>>88
回答ありがとう御座います。

ひとつ教えて下さい。
"abc.txt"をオープンや書込みする際、
場所の指定がないですが、
指定する方法などはありますか?
93デフォルトの名無しさん:2006/06/26(月) 12:21:57
プログラムの実行時にコマンドパラメータとしてファイル名渡せば?
94デフォルトの名無しさん:2006/06/26(月) 13:33:33
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):実行してabcdezと入力したらbcdefa、01239と入力したら12340と出力されるようなプログラム。
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン:Visual Studio2005
 [3.3] 言語: C言語
[4] 期限: 6/27
[5] if文とwhile文を用いよとのことです。
95デフォルトの名無しさん:2006/06/26(月) 13:41:36
[1] 授業単元:プログラミング1
[2] 問題文(含コード&リンク):

三角形の3辺a,b,cで三角形が形成できる場合にはヘロンの公式(下記)で計算した三角形の面積Sを戻り値とし,三角形が形成できないなら
エラーを示す値を戻り値とする関数を作成せよ.
ヘロンの公式は,三角形の面積をSとすると,
    S2 = x(x-a)(x-b)(x-c) ただし,x = (a+b+c)/2 

三角形の3辺の長さa,b,c(いずれも整数)をキーボードから入力し,この作成したユーザー定義関数を用いて三角形の面積Sを表示するプログラムを作成せよ.
ただし,三角形が形成できない場合には再度a,b,cの入力を促すようにし,三角形の面積Sが計算できるまで繰り返すようにすること.
[実行結果]

三角形の3辺 <a, b, c> : 3 4 10

*** 三角形にならないよ!もう一度入れなおして.

三角形の3辺 <a, b, c> : 3 4 7

*** 三角形にならないよ!もう一度入れなおして.

三角形の3辺 <a, b, c> : 3 4 5

*** 三角形の面積 = 6.000000


[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: VisualStudio2003
 [3.3] 言語: C
[4] 期限: 6月29日
[5] その他の制限: お願いします!!
96デフォルトの名無しさん:2006/06/26(月) 13:51:55
>>94
#include <stdio.h>
#include <string.h>

const char *alphabet = "abcdefghijklmnopqrstuvwxyza";
const char *number = "01234567890";

int main()
{
char buf[128];
int i = 0;
printf("Input phrase : ");
gets(buf);

while (buf[i] != '\0') {
if ('a' <= buf[i] && buf[i] <= 'z') {
putchar(alphabet[buf[i] - 'a' + 1]);
} else if ('0' <= buf[i] && buf[i] <= '9') {
putchar(number[buf[i] - '0' + 1]);
}
i++;
}

return 0;
}
97デフォルトの名無しさん:2006/06/26(月) 14:04:03
>>89

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
double x,y;
char buf[1024];
do
{
printf("実数1を入力してください: ");
fgets(buf,1024,stdin);
}while((sscanf(buf,"%lf",&x))!=1);
do
{
printf("実数2を入力してください: ");
fgets(buf,1024,stdin);
}while((sscanf(buf,"%lf",&y))!=1);
printf("和: %lf\n",x+y);
printf("差: %lf\n",x-y);
printf("積: %lf\n",x*y);
printf("商: %lf\n",x/y);
system("PAUSE");
return 0;
}
98デフォルトの名無しさん:2006/06/26(月) 14:19:43
>>95
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
double helon(int a, int b, int c)
{
double x,s;
x = (a + b + c) / 2.0;
s = x * (x - a) * (x - b) * (x - c);
if(s > 0)
return sqrt(s);
else
return -1;
}
int main(int argc, char *argv[])
{
int a,b,c;
char buf[1024];
double s;
while(1){
do{
printf("三角形の3辺 <a, b, c> : ");
fgets(buf,1024,stdin);
}while((sscanf(buf,"%d %d %d",&a,&b,&c))!=3);
if((s = helon(a,b,c)) > 0)
break;
printf("\n*** 三角形にならないよ!もう一度入れなおして.\n\n");
}
printf("\n*** 三角形の面積 = %lf\n",s);
return 0;
}
9996:2006/06/26(月) 14:22:08
>>96
#include <string.h>
は不要なので削ってください。
100デフォルトの名無しさん:2006/06/26(月) 14:27:21
>>73

#include <stdio.h>
int main(int argc, char** argv)
{
int n, m, o;
printf("重さあたりの郵便料金を計算します\n重さ=");
scanf("%d", &n);
m = 1800+((n-1)/1000*550);
o = 6750+((n-10001) / 1000*350);
if(n <= 1000)
printf("1800円\n");
else if(n > 1000 && n <= 10000)
printf("%d円\n",m);
else if(n > 10000 && n <= 20000)
printf("%d円\n",o);
else
printf("重量オーバーです\n");
return 0;
}
101デフォルトの名無しさん:2006/06/26(月) 14:37:00
[1] 授業単元:c言語
[2] 問題文:引数が素数なら1を、素数でなければ0を返す関数を作り、2から20までの結果を表示するプログラムを作ってください
[3] 環境
 [3.1] OS:Windows XP
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:c言語
[4] 期限:今日15:30まで
[5] その他の制限:お願いです(;_;)できるだけ早くお願いします・・・forを使うんですが
102デフォルトの名無しさん:2006/06/26(月) 14:55:46
#include <stdio.h>

int func(int num)
{
int i, flag = 0;
for(i = 2; i <= (num - 1); i++){
if(num % i == 0){
flag=1;
break;
}
}
return flag;
}

int main(void){
int flag, i;
for (i = 2; i <= 20; i++){
flag = func(i);
if (flag != 1) printf("%d ", i);
}
return 0;
}
103デフォルトの名無しさん:2006/06/26(月) 15:03:42
訂正、関数が返す値を逆にしてしまった
#include <stdio.h>

int func(int num)
{
int i, flag = 1;
for(i = 2; i <= (num - 1); i++){
if(num % i == 0){
flag=0;
break;
}
}
return flag;
}

int main(void){
int flag, i;
for (i = 2; i <= 100; i++){
flag = func(i);
if (flag != 0) printf("%d ", i);
}
return 0;
}
104デフォルトの名無しさん:2006/06/26(月) 15:07:43
>>103
さらに訂正
for (i = 2; i <= 100; i++){

for (i = 2; i <= 20; i++){
10547:2006/06/26(月) 15:11:21
どなたか、>>47をお願いいたします・・・
106デフォルトの名無しさん:2006/06/26(月) 16:31:35
長さが3文字以上の文字列を入力として受け付けて,先頭と最後の文字を除いた文字列を出力せよ。ただ
し,入力される文字列が3文字以上であることは仮定して良い。をお願いします。。
107デフォルトの名無しさん:2006/06/26(月) 16:44:36
106>
[1] 授業単元:c言語
[2] 問題文(含コード&リンク): 長さが3文字以上の文字列を入力として受け付けて,先頭と最後の文字を除いた文字列を出力せよ。ただ
し,入力される文字列が3文字以上であることは仮定して良い
[3] 環境
 [3.1] OS: (Windows
 [3.2] コンパイラ名とバージョン: (gcc )
 [3.3] 言語: (C/C++/どちらでも可)
[4] 期限: ([2006年2月27日
[5] その他の制限: 特にないと思います。。
おねがいします。
108デフォルトの名無しさん:2006/06/26(月) 16:45:44
>>107
#include <stdio.h>
main() {
int i;
char* st;
printf("Input Charactors > ");
scanf("%s",st);
for(i=1; st[i+1] != '\0'; i++)
printf("%c",st[i]);
}
109デフォルトの名無しさん:2006/06/26(月) 16:47:31
うひょっ、すまそ。 >>108 はエラー起こすんで却下。
文字列を扱い慣れてない未熟なソースですまそ。
110デフォルトの名無しさん:2006/06/26(月) 16:48:51
>>107 ちうわけで配列要素を指定して再チャレンジ (^^;
#include <stdio.h>
main() {
int i;
char st[256];
printf("Input Charactors > ");
scanf("%s",st);
for(i=1; st[i+1] != '\0'; i++)
printf("%c",st[i]);
}
111デフォルトの名無しさん:2006/06/26(月) 16:50:03
遅くなりましたが>>71です。
答えてくださった、>>75>>76の御二方、本当にありがとうございました。
112デフォルトの名無しさん:2006/06/26(月) 16:55:02
ありがとうございます!!!

ここがよくわからないのですが。。。
for(i=1; st[i+1] != '\0'; i++)
113デフォルトの名無しさん:2006/06/26(月) 16:57:36
>>112
移動元に回答があるよ。つーか、なんつう期限だよ。
114デフォルトの名無しさん:2006/06/26(月) 17:08:51
>>112
配列の2番目から文字を表示して行き
文字列の最後 \0 を検出する1つ前まで表示ってことだが
まぁ、まだ文字列の最初のところだろうし、どこまで習ったか分からんので
初歩的だと思えるやり方でやってみたが・・・
115デフォルトの名無しさん:2006/06/26(月) 17:10:47
>>114はちと違うか。
文字列の最後 \0 を検出する2つ前まで表示 ってなるかな。
116デフォルトの名無しさん:2006/06/26(月) 17:17:30
移動元???期限はあしたですが??

st[i+1] != '\0'
がわからないです。
すいません。。。。。
117デフォルトの名無しさん:2006/06/26(月) 17:20:39
>>107
[4] 期限: ([2006年2月27日
どう考えてもとっくに期限は過ぎてます、ありがとうございました

>>116
だから文字列を入れた配列の終わりを検出するまでfor文をiをインクリメントしながら続けて
文字列の終わりの2つ前まで文字の表示を繰り返すってことなんだが
分からないもなにも、授業で何を習ったかこっちも分からんのじゃ、可能な手段を選んで
ソースを書くくらいしかしてやれんよ。もっと良く教科書を読んだら?
118デフォルトの名無しさん:2006/06/26(月) 17:28:16
>>116
まぁ、この辺も参考にして。ここは丸投げに対して適当なレスしかせんスレやし。
ttp://homepage3.nifty.com/mmgames/c_guide/14-03.html#S5
119デフォルトの名無しさん:2006/06/26(月) 17:28:57
もう過ぎてたわ。。。。。
もう受け取ってもらえないかな??

できました。。。。。。。。。。。。。
いろいろありがとうございます
120デフォルトの名無しさん:2006/06/26(月) 17:30:47
>>119
っつか、2月だったら明らかに年度が違うと思うんで
最近出された課題なら6月27日でしょ・・・w
121デフォルトの名無しさん:2006/06/26(月) 17:43:04
ありがとうございます。

6月27です。そのとうりです。わたしがわるかったです・
122デフォルトの名無しさん:2006/06/26(月) 18:13:34
>>116
あんたが先に書き込んでいたスレにも回答があるよってこと。
移動したときには移動元にもレスがあることがあるからきちんとフォローしなさいよ。
123デフォルトの名無しさん:2006/06/26(月) 18:34:28
[1] 授業単元:演習
[2] 問題文(含コード&リンク): 以下の処理を行うプログラムを作成しなさい.
(1) 80 字以内の英文をgets()を用いて入力し,putchar()を用いて出力する.また,文
字の並びを逆向きにputchar()で出力する.
(2) 80 字以内の英文をgetchar()を用いて入力し,puts()を用いて出力する.
ただし,関数(strcpy(), strcat(), strlen()等)は使用しないこと.ま
た,(1),(2)に対しては,それぞれ文字列へのポインタを仮引数とする関数(例
えば,process1(char *p),process2(char *p))を各自定義し,それら内部で処理させる
こと.処理の流れは以下に示す仕様に従って下さい.
<仕様>
1.􀀕メニューを表示し,上記処理(1)か処理(2)のどちらを実行させるか選ば
せる.これは「1」または「2」の入力によって選択させる.
2.􀀕上記ステップにおいて,「1」,「2」以外の不適切な入力がなされたときは,再
度メニューを表示し,正しい選択を求める.
3.􀀕「1」または「2」の適切な入力がなされたときは,それによって指示される
関数が文字列を処理する.[3] 環境
 [3.1] OS: linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C
[4] 期限: 6月28日
[5] その他の制限: よろしくおねがいします
12447:2006/06/26(月) 19:01:05
>>47をやって下さっている方はいらっしゃいますでしょうか・・・?
なんとか今日の24:00までにどなたかお願いいたします・・・。
125デフォルトの名無しさん:2006/06/26(月) 19:29:02
>>124
#include<stdio.h>
main()
{
printf("キタ━━━━━━(゚∀゚)━━━━━━ !!\n");
}
126デフォルトの名無しさん:2006/06/26(月) 20:59:00
【質問テンプレ】
[1] 授業単元:
[2] 問題文(含コード&リンク):
2つの整数n,kを引数として,組み合わせの数nCkを返すユーザー定義関数を用いて,キーボードから非負整数nを入力して(a+b)nを展開するプログラムを作成せよ.

ただし,
(a+b)n = Σi=0n nCi an-ibi

[実行結果1]

何乗?:3
(a+b)^3 = 1 a^3 b^0 + 3 a^2 b^1 + 3 a^1 b^2 + 1 a^0 b^3


[実行結果1]

何乗?:0
(a+b)^0 = 1 a^0 b^0
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: Visual Stdio.NET2003
[3.3] 言語: C
[4] 期限: 6月30日
[5] その他の制限: ヨロシクお願いします
127デフォルトの名無しさん:2006/06/26(月) 21:21:11
>>126
#include<stdio.h>
int C(int n,int r){
    int a = 1,i;
    for(i=1;i<=r;++i)a = a*n/r;
    return a;
}
int main(){
    int n,i;
    printf("何乗?:");scanf("%d",&n);
    printf("(a+b)^%d = ",n);
    for(i=0;i<=n;++i)
        printf("%d a^%d b^%d%s",C(n,i),n-i,i,i==n?"\n":" + ");
    return 0;
}
128デフォルトの名無しさん:2006/06/26(月) 21:23:09
>>127
あ、テスト用のコードを張ってしまった。
a = a*n/rをa = a*n--/iと置き換えてくれ
129デフォルトの名無しさん:2006/06/26(月) 21:39:05
>>127 >>128 ありがとうございます。。助かりました。
130デフォルトの名無しさん:2006/06/26(月) 21:51:51
[1] 授業単元:Cプログラミング
[2] 問題文(含コード&リンク):
1)任意の貨幣体系(ただし自然数で、価値1の貨幣をふくむ)に対して、与えられたおつりの金額に対して貨幣の総数ができるだけ少なくなるようにそれぞれの貨幣の枚数を計算するプログラムを作成せよ。
2)任意の貨幣体系(ただし自然数で、価値1の貨幣をふくむ)に対して、与えられたおつりの金額に対して貨幣の総数が最小になるようにそれぞれの貨幣の枚数を計算するプログラムを作成せよ。
【実行例】
最初に貨幣を定義する。つまり、86円玉でも952円玉でも、好きなように入力。
その後、価格を入力して、実行結果を出す。

[3] 環境
 [3.1] OS:Mac OSX
 [3.2] コンパイラ名とバージョン:x code
 [3.3] 言語:C
[4] 期限:今週中
[5] その他の制限:できるだけシンプルにする。

if分でできるようなのですが、いまいちわかりません。よろしくお願いします。
131デフォルトの名無しさん:2006/06/26(月) 21:58:53
>>130
1)と2)の違いって何?
俺頭悪いのかな。何度読み直してもよくわからなかった。
132デフォルトの名無しさん:2006/06/26(月) 22:02:28
>>130
2) で重複はどうするの?
1 円玉から99円玉まであって、 100円を表すのに 1+99 から50+50 まで 50 通り
の最小解があるけど、どうやって表示するの?
13347:2006/06/26(月) 22:37:05
やっぱり>>47は駄目ですか・・・
ありがとうございました。
134デフォルトの名無しさん:2006/06/26(月) 22:39:57
>>133
ちゃんと噛んで含めるように説明しないとここの連中には荷が重いって。
#漏れも含めてね。
135デフォルトの名無しさん:2006/06/26(月) 22:45:41
[1]授業単元:データ構造、アルゴリズム
[2]問題文:与えられたmain関数の中で呼び出される関数を完成させプログラムを実行させる。(別のファイルに適当な番号と名前、点数を3つで1つのセットをいくつか用意し、それをソートや二分探索して結果を表示する。)
struct student{
int num;
char name[10];
int score;
};
main(){
if((Num=read_file("ファイル名"))==0)
exit(0);
quick_sort(Student,0,Num-1);
while(1){
printf("番号を入力してください。");
if(scanf("%d",&key)==EOF)
break;
if((i=bi_search(key))!=-1)
prinf("番号=%d,名前=%s,点数=%d\n",Student[i].num,Student[i].name,Student[i].score);
else
printf("データがありません。\n");
}
}



[3]環境:
 [3.1]OS:Linux
[3.2]コンパイラ名とバージョン:バージョンは分からないのですが、gccでお願いします。
 [3.3]言語:Cでお願いします。
[4]期限:2006年7月4日でお願いします。
[5]その他の制限:Cはだいたい習ったのですが、今いち理解できてなくて(TωT)構造体やファイルのことなどがよく分からないので誰かお願いします\(。´□`・。\)
13647:2006/06/26(月) 22:49:06
>>134
prim法は授業でやっていないので、あまりくわしくはわかりませんでした。
なので、問題文まるまる載せたつもりでしたが、確かにわかりにくいですね。
137デフォルトの名無しさん:2006/06/26(月) 22:52:46
prim法の隣接リスト版なら本に載ってるが、隣接行列版で、しかも
優先キューを使ってはいけないとなると、なかなか見つからないな。
ずっとぐぐって探してるんだが。
138前スレ949:2006/06/26(月) 23:46:18
前スレ971-972氏へ
教えて頂いたプログラム、動作確認し、なんとか期間までに提出できました。
提出を怠ると、問答無用で単位落ちなので、本当に助かりました。

本当にありがとうございました。
139130:2006/06/27(火) 00:50:48
>>131
ありがとうございます。(1)は最小ではなくてもよくて、とにかく、できるだけ少なくするようなプログラムで(2)は最少になるプログラムということです。わかりにくい文章で申し訳ございません。

>>132
ありがとうございます。基本的に全検索でしか解けない問題といわれているそうです。貴方がおっしゃっている場合は、どちらでも可です。∵どの通りでも最少になっているため。

すみませんが、よろしくお願いいたします。
140デフォルトの名無しさん:2006/06/27(火) 01:20:25
「貨幣を定義」ってのが分からんなぁ。
実行例を、詳しく書いてみて。
141デフォルトの名無しさん:2006/06/27(火) 01:21:48
(1)
#include <stdio.h>
#include <stdlib.h>
int cmp(const void *a1, const void *a2){
return (*(int*)a2 - *(int*)a1);
}
int main(){
int i, j, kahe[50], m;
printf("貨幣定義(負値で終了) : \n");
for(i = 0; i < sizeof(kahe) / sizeof(kahe[0]); i++){
scanf("%d", &kahe[i]);
if(kahe[i] < 0)break;
}
qsort(kahe, i, sizeof(int), cmp);//降順に一応ソート
printf("価格 : \n");
scanf("%d", &m);
for(j = 0; j < i; m %= kahe[j], j++)
if(m / kahe[j])printf("%d円%d枚\n", kahe[j], m / kahe[j]);
return 0;
}
142デフォルトの名無しさん:2006/06/27(火) 02:05:43
「最小」と「できるだけ少なく」って何が違うんだろう・・・
143デフォルトの名無しさん:2006/06/27(火) 02:06:51
まあ、かわらんか
#include <stdio.h>
#define NUM 20
int main(){
int value[NUM],cnt=0,i,a,b,w,money,kazu[NUM];
for(i=0 ; i<NUM ; i++)kazu[i]=0;
printf("貨幣(0で終了)?");
scanf("%d",&a);
while(a!=0 && cnt<NUM){
value[cnt] = a;cnt++;printf("貨幣(0で終了)?");
scanf("%d",&a);
}
/* ソート */
for(a=0 ; a<=cnt-2 ; a++){for(b=a+1 ; b<=cnt-1 ; b++){
if(value[a]<value[b]){
w = value[a];value[a] = value[b];value[b] = w;
}}}
printf("金?");scanf("%d",&money);
for(i=0 ; i<cnt ; i++){if(money >=value[i]){
kazu[i]=money/value[i];money-=value[i]*kazu[i];
}}
for(i=0 ; i<cnt ; i++){if(value[i]>0)
printf("%dを%d枚\n",value[i],kazu[i]);
}return 0;}
144デフォルトの名無しさん:2006/06/27(火) 02:08:13
>>142ソートしたら最小になる。が、できるだけ少なくはほんとわからんな。
145デフォルトの名無しさん:2006/06/27(火) 02:12:10
IQ140超を誇る俺様だが、問題文の意味がわからんのはほんと久しぶりだ orz
146デフォルトの名無しさん:2006/06/27(火) 02:12:32
っつか、本屋で色々と見てきたけど、ここで出る課題って
市販の本をしっかり読んでりゃできるものばかりだよね?
中にはモロに本の中に書かれているソースを書いて提出してもいける課題もあったぞな
147デフォルトの名無しさん:2006/06/27(火) 02:13:44
つ【学力低下】
148デフォルトの名無しさん:2006/06/27(火) 02:15:46
>>146
えーと、その話はどこに持って行きたいの?
149デフォルトの名無しさん:2006/06/27(火) 02:16:36
>>148
分からないお前に答える必要もなかろう。もっと幅広い文献に目を向けりゃ
程度の低い課題だけでなく、ちょっと厄介なものも解決策が見つかるってことよ。
150デフォルトの名無しさん:2006/06/27(火) 02:16:41
任意の整数Aについて*、^演算子を使わずに符号を反転させるプログラムを作れ。
151デフォルトの名無しさん:2006/06/27(火) 02:17:44
>>148
ふんふん、それでどう話を展開したいのかな?
152デフォルトの名無しさん:2006/06/27(火) 02:18:04
できるだけって、最小でなくてもよいので、多分脊髄プログラミングで
全部 1 円玉で出しても採点側は文句が言えないんじゃないかな?
153デフォルトの名無しさん:2006/06/27(火) 02:18:59
>>149
探し出せるということも、スキルの一つだからな。
探し出せない奴がいたって何の不思議も無い。
154デフォルトの名無しさん:2006/06/27(火) 02:20:26
>>150
-A;
155デフォルトの名無しさん:2006/06/27(火) 02:22:45
>>153
まぁ、それもそうだな。けど、ここでおバカな課題を出す奴は、今後も頼り続けるだろうね。
それで他人が書いたソースを提出して単位取得・・・妙な世の中になったな。
実力のない奴が世に出てくる、まぁ、そいつはいつまでも下っ端だから良いけどなw
156デフォルトの名無しさん:2006/06/27(火) 02:23:22
「できるだけ少なく==可能な限り少なく==最小」
じゃないのか?
出題ミスか、問題の写し間違えじゃないか?
157デフォルトの名無しさん:2006/06/27(火) 02:24:46
>>155
いや、昔からそうだし。
158デフォルトの名無しさん:2006/06/27(火) 02:25:05
>>150
A=~A+1
159デフォルトの名無しさん:2006/06/27(火) 02:26:28
>>155
下っ端でよかったぢゃないか。どうせのさばれんから問題なし。
160デフォルトの名無しさん:2006/06/27(火) 02:28:00
プログラミングできないなんて問題じゃないし。
まぁどうでもいいけど。
161デフォルトの名無しさん:2006/06/27(火) 02:29:43
どうでも良いけど、もちっと本屋に言ってC言語の本に目を向けようなw
162デフォルトの名無しさん:2006/06/27(火) 02:30:20
脳内大卒者乙。
163デフォルトの名無しさん:2006/06/27(火) 02:35:40
低学歴必死だな に対して 高学歴余裕だな という煽り文句を考えてみました
164デフォルトの名無しさん:2006/06/27(火) 02:38:12
あんまり墓穴を掘るような発言するんじゃないぞ。
つい、つっこみたくなるから。
165デフォルトの名無しさん:2006/06/27(火) 02:42:52
>>130 の(2)
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2189.c
貨幣体系が1 10 25のとき44を計算させると、例えば>>141とは異なる結果になる。
日本語として正しいかはともかく、出題者が意図しているのはこういうことじゃないかと。
166デフォルトの名無しさん:2006/06/27(火) 02:45:42
妙ちくりんな小難しい数学の公式を使ったもんでなきゃ載ってる内容は多いよ
ファイルのダンプでさえあったしな。っつーわけで、もちっと幅広い観点から
物事を見る目と、情報を得る姿勢を持とうね
>怠け者&何かと他人の意見に自分の意見を押し付けようと口を挟んで否定するキチガイ
167デフォルトの名無しさん:2006/06/27(火) 02:50:33
>>165
うーん、貨幣を大きい順に並べて、おつりを超えないもっとも大きな貨幣を
まず選ぶ、っつーのがそもそも納得いかないんだけど、そういわれれば
そういう気もしますな。
168タロウ:2006/06/27(火) 04:17:06
[1] 授業単元:プログラミング言語T

[2] 問題文(含コード&リンク):
・ネピアの定数(e)を少数以下20000桁まで求めるプログラムを作成し、
 19991桁から20000桁の10個の数字を表示しなさい。
・以下の公式を使用せよ。
 http://img142.imageshack.us/img142/6717/3d669b70f520df87086101fd8490ae.png
・実効時間を低減するための工夫を行い、実効時間がどれだけ低減したか示しなさい。プログラムの解説もつけること。

[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン: Borland C++Compiler5.5 または Visual Stdio.NET2003
 [3.3] 言語: C++

[4] 期限: 6月29日

67代目609でものってました。全然わからないのでやってもらえませんか?
169デフォルトの名無しさん:2006/06/27(火) 04:26:14 BE:104814869-#
>>150
#include<stdio.h>
#include<stdlib.h>
int main(void){char tmp[100];int A;fgets(tmp,sizeof(tmp),stdin);A=atoi(tmp);
printf("%d\n",0-A);return 0;}
170デフォルトの名無しさん:2006/06/27(火) 04:57:01
>>168
ttp://www.elc.ees.saitama-u.ac.jp/ProgrammingI/kadai/kadai1.html
これだねぇ。まだ解けないの?
171デフォルトの名無しさん:2006/06/27(火) 05:03:03
172デフォルトの名無しさん:2006/06/27(火) 07:48:06
173デフォルトの名無しさん:2006/06/27(火) 09:18:26
[1] 授業単元:計算機リテラシ
[2] 問題文(含コード&リンク):
名簿管理システム。データの格納にはリスト構造を用いること。 名簿管理システムは以下の機能を持つこと。

1. メンバの追加
2. メンバの削除
3. メンバリストを名前順(アルファベット昇順)で表示
4. メンバリストのファイル出力
5. 引数としてファイルパスを指定することによるメンバ初期データの読込

メンバ情報としては、最低限、名前と学生番号を持つこと。システムの拡張は自由に行ってよい。



[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン: BCC
 [3.3] 言語: C
[4] 期限: 6月27日まで。
[5] その他の制限: 特になし

リスト構造のサンプルはあるのですが、リスト構造の中にどうやって名前を含めたらいいのかわかりません。
どうかよろしくお願いします。
ttp://www.katsakuri.sakura.ne.jp/src/up14054.txt.html
こちらがサンプルです。
174デフォルトの名無しさん:2006/06/27(火) 09:41:01
>>168
その問題は誰かが解いてたが・・・
175デフォルトの名無しさん:2006/06/27(火) 11:47:46
[1]プログラム2 C言語コース
[2]構造体を用い、簡単な複素数の計算をするプログラムを作りなさい。
複素数 x=a + ib y=c + id とし、
それぞれxyを構造体変数として宣言し、数値を入力し、
x+yの値を表示するようにせよ
[3]OS:Linux コンパイラ:gcc 言語:C
[4]期限: 明日です
よろしくお願いします
176デフォルトの名無しさん:2006/06/27(火) 11:49:39
>>174
>>168 は作ってもらったプログラムが気に入らないって言っているだけ。
177デフォルトの名無しさん:2006/06/27(火) 13:13:32
>>175
#include <stdio.h>
typedef struct tagComplex{
double real;
double image;
}Complex;
Complex add(Complex x , Complex y){
Complex z;
z.real = x.real + y.real;
z.image = x.image + y.image;
return z;
}
int main(int argc, char** argv)
{
Complex x,y,z;
x.real = 3.24;x.image = -1.8;
y.real = 1.92;y.image = 0.4;
z = add(x,y);
printf("x + y = %g + %gi\n",z.real, z.image);
return 0;
}

つくづくこういうのはC++のほうがいいなー、と思う
構造体にもメンバ関数定義できるとはいえ
178デフォルトの名無しさん:2006/06/27(火) 13:18:01
>>177
どもです、
いまいち不明瞭なところもなんとなく理解できました。
ありがとうございます。
179タロウ:2006/06/27(火) 13:55:17
168ですが、67代目の609とは別の人間です。たぶん同じ学科の人が先に頼まれたのだと思います。
どうもありがとうございました。すごく助かります。答えがわかったので、過程は自分でがんばって見ます。
180デフォルトの名無しさん:2006/06/27(火) 15:59:45
【質問テンプレ】
[1] 授業単元: 情報プログラミングT
[2] 問題文(含コード&リンク):

HTTPプロトコルによりウェブサーバと接続し、ウェブコンテンツをキャラクタ端末
(ktermなど)に表示するクライアントプログラムを作成せよ。
ただし、コマンドラインでURLを与えることにより、結果を標準出力に表示するようにする。

もっとも簡易的には、HTMLのタグを削除して<body>〜</body>の間の地のテキストのみを出力するものでよい。
ヘッダ部の<title>タグ、<h1>, <h2>, <h3>, <p>, <br>などのタグ程度は適切に処理できることを期待する。

余力のある場合には、日本語のコード変換などを実装して、複数の日本語サイトでの検証を行うこと。


[3] 環境
 [3.1] OS: Vine Linux 2.6
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C言語
[4] 期限: 2006年07月頭ごろ
[5] その他の制限: 特になし。

キャラクタ端末をブラウザにしちゃう系の問題です。
よろしくお願いします。
181デフォルトの名無しさん:2006/06/27(火) 16:23:45
[1] 授業単元:プログラミング演習 単元は配列とポインタです。
[2] 問題文(含コード&リンク):
10個の数字を入力し,それらを小さいものから順に表示するバブルソートのプログラムを作成せよ.
但し,2つの数字の比較・入れ替えを行う関数 void swap( int flag, int *x, int *y )を作成し,
比較・入れ替えはこの関数を用いて行うこと.

void swap( int flag, int *x, int *y )
引数1: int flag  = 1 : x > y なら入れ替える. = 2 : x < y なら入れ替える  
引数2: int *x   1つ目の値xへのポインタ  
引数3: int *y   2つ目の値yへのポインタ

[3] 環境
 [3.1] Windows  XP
 [3.2] borland C + cpad
 [3.3] 言語: C
[4] 期限: 本日中
[5] その他の制限: 特にありません
よろしくお願いします。
182デフォルトの名無しさん:2006/06/27(火) 16:26:01
>>180
> ブラウザにしちゃう系

この言葉遣いでやる気0
183デフォルトの名無しさん:2006/06/27(火) 16:28:42
>>182
もともとやる気なんかないくせにw
184デフォルトの名無しさん:2006/06/27(火) 16:32:34
123をよろしくおねがいします><
185デフォルトの名無しさん:2006/06/27(火) 16:44:06
186デフォルトの名無しさん:2006/06/27(火) 16:47:28
[1] 授業単元:計算機科学
[2] 問題文(含コード&リンク):
0と1が300~400ほど並んだ乱数列をLempel-Ziv符号化せよ。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: borland C
 [3.3] 言語: C
[4] 期限: 3日以内
[5] その他の制限: 特にないです
187181:2006/06/27(火) 16:47:49
>>185さん

大変ありがとうございました。
188デフォルトの名無しさん:2006/06/27(火) 16:55:00
>>186 その手法の説明を書くか説明のあるページへリンクを。
あと締め切りが曖昧。解くのには関係ないけど。
189デフォルトの名無しさん:2006/06/27(火) 16:58:59
>>180
HTTP1.1 の実装って結構へこたれるんだけど、
永続的な接続とか、Transfer-Encoding の chanked とか対応しないと
まずいんだよね?
190デフォルトの名無しさん:2006/06/27(火) 17:00:14
期限は3日後の夕方4時です
Lempel-Ziv符号化の方法は
http://yougo.ascii24.com/gh/14/001433.htmlのスライド辞書法です
191デフォルトの名無しさん:2006/06/27(火) 17:45:28
[1] 授業単元:アルゴリズム
[2] 問題文(含コード&リンク):
文字列を反転させるプログラムを作成せよ。半角英数字のみに対応したものでよい。
[3] 環境
 [3.1] OS: Windows XP
 [3.2] コンパイラ名とバージョン: borland C
 [3.3] 言語: C
[4] 期限: 29日まで
[5] その他の制限:
  配列は一つまで。逆から出力させるのではなく、ちゃんと交換してから出力すること

初めてのご依頼です。条件がきつくて作れませんでした。ポインタは習ってません
192デフォルトの名無しさん:2006/06/27(火) 18:01:57
>>191 どこの条件が厳しいのですか?????
193デフォルトの名無しさん:2006/06/27(火) 18:07:51
>>191
#include <stdio.h>
#include <string.h>
int main()
{
char buf[128];
int i, len;
char c;
printf("Input string: ");
gets(buf);
len = strlen(buf);
for (i = 0; i < len / 2; i++) {
c = buf[i];
buf[i] = buf[len - i - 1];
buf[len - i - 1] = c;
}
printf("%s\n", buf);
return 0;
}
194デフォルトの名無しさん:2006/06/27(火) 18:21:28
>>189
prot 80でコネクション張って、GETコマンド発行すればいいだけじゃね?
別にブラウザ作れっていってるわけじゃなさそうだし。
195デフォルトの名無しさん:2006/06/27(火) 18:22:18
#include <stdio.h>
#include <string.h>
int main(){
int i,len;
char w;
char a[128];
printf("文字?");
gets(a);
len = strlen(a);
for(i=0; i<len/2 ; i++){
w = a[i];
a[i] = a[len-i-1];
a[len-i-1] = w;
}
printf("%s",a);
return 0;
}
196デフォルトの名無しさん:2006/06/27(火) 18:35:54
#include <stdio.h>
void swap( int flag, int *x, int *y ){
int w;
if((flag==1 && *x > *y ) || (flag==2 && *x < *y)){
w = *x ;
*x = *y ;
*y = w ;
}
return;
}

int main(){
int i,j,t[10];
for(i=0 ; i<10; i++){
printf("Number[%d]?",i);
scanf("%d",&t[i]);
}

for(j=9 ; j>=0 ; j--){
for(i=0; i<j ; i++){
swap(1,&t[i],&t[i+1]);
}
}

for(i=0 ; i<10 ; i++)
printf("%d\n",t[i]);

return 0;
}
197デフォルトの名無しさん:2006/06/27(火) 18:36:26
>>196>>181
198デフォルトの名無しさん:2006/06/27(火) 19:26:43
>>191
C初心者の俺が書いたらもの凄くめちゃくちゃなソースになりました。

#include<stdio.h>
#include<string.h>

int main(void)
{
  char buf[128],buf2[128],temp;
  int i,j=0;
  
  printf("Input strings:");
  gets(buf);

  for(i=(int)strlen(buf);i>=0;i--){
    temp=buf[i];
    buf2[j]=temp;
    j++;
  }

  for(i=1;i<(int)strlen(buf)+1;i++){
  printf("%c",buf2[i]);
  }
  printf("\n");

  return 0;
}
199デフォルトの名無しさん:2006/06/27(火) 19:27:36
tempに入れる必要なかった。まあいいや
200デフォルトの名無しさん:2006/06/27(火) 19:28:35
>>198 それならtempにおかんでいいだろうに。
201デフォルトの名無しさん:2006/06/27(火) 19:30:12
修正した。
#include<stdio.h>
#include<string.h>

int main(void)
{
  char buf[128],buf2[128];
  int len,i,j=0;
  
  printf("Input strings:");
  gets(buf);

  len=(int)strlen(buf);
  for(i=len;i>=0;i--){
    buf2[j]=buf[i];
    j++;
  }

  for(i=1;i<len+1;i++){
    printf("%c",buf2[i]);
  }
  printf("\n");

  return 0;
}
202デフォルトの名無しさん:2006/06/27(火) 19:30:15
>>198
>配列は一つまで
203デフォルトの名無しさん:2006/06/27(火) 19:31:03
>配列はひとつまで->0点
204デフォルトの名無しさん:2006/06/27(火) 19:31:35
>>202
色々破綻しました。。
205デフォルトの名無しさん:2006/06/27(火) 19:37:49
1] 授業単元:プログラム
[2] 問題文(含コード&リンク):
[3] 環境
 [3.1] OS: (Windowsxp)
 [3.2] コンパイラ名とバージョン:  [3.3] 言語: C++)
[4] 期限: 今夜中
課題1 配列a[5]={1,5,6,-1,-3}が入っているとき、最小値と最大値を求めて出力するプログラムを作成すること。ポインタを使
った場合と使わない場合の両方でプログラムをつくること!
206デフォルトの名無しさん:2006/06/27(火) 19:41:27
>>205 これを聞くとは痛い
207デフォルトの名無しさん:2006/06/27(火) 19:46:55
>>205
ポインタ(演算)を全く使わないで作れるのなら漏れも教えて欲しい。
それにしても「配列...が入っている」って、斬新な表現だな。
#配列aに初期値何がしが入っていると言う意味なんだろうけど。
208デフォルトの名無しさん:2006/06/27(火) 20:00:58
#include <stdio.h>
int main(){
int a[5]={1,5,6,-1,-3}, max, min, i;
max = min = a[0];
for(i=1; i < 5; i++){
if (min > a[i]) min = a[i];
if (max < a[i]) max = a[i];
}
printf("最小値%d 最大値%d\n", min, max);
return 0;
}

#include <stdio.h>
int main(){
int a[5]={1,5,6,-1,-3}, max, min, i;
int *p = a;
max = min = *p++;
for(i = 1; i < 5; i++, p++){
if (min > *p) min = *p;
if (max < *p) max = *p;
}
printf("最小値%d 最大値%d\n", min, max);
return 0;
}
209デフォルトの名無しさん:2006/06/27(火) 20:03:26
#include <iostream>
class A{
private:
int a[5],MAX,MIN;
public:
A(){
a[0]=1; a[1]=5; a[2]=6; a[3]=-1; a[4]=-3;
}
int MAX_OUT(void); int MIN_OUT(void);
};
int A::MAX_OUT(){
MAX=a[0];
for(int i=1; i<5;i++)
if(a[i]>MAX)MAX=a[i];
return MAX;
}
int A::MIN_OUT(){
MIN=a[0];
for(int i=1; i<5;i++)
if(a[i]<MIN)MIN=a[i];
return MIN;
}

int main(){
A a;
std::cout << "最大値" << a.MAX_OUT() << std::endl; std::cout << "最小値" << a.MIN_OUT() << std::endl;
}
210デフォルトの名無しさん:2006/06/27(火) 20:08:58
//>>207 概念的には使ってないよw
#include <algorithm>
#include <iostream>

int main()
{
int a[] = {1, 5, 6, -1, -3};
std::cout << "最小値" << * std::min_element(a, a + sizeof(a) / sizeof(*a)) << std::endl;
std::cout << "最大値" << * std::max_element(a, a + sizeof(a) / sizeof(*a)) << std::endl;
return 0;
}
211191:2006/06/27(火) 20:21:07
みんなありがとう

けど見たこと無い関数ばっかりだ。なんも習ってないことがわかった。
ちょっとずつ解明していきます。
212デフォルトの名無しさん:2006/06/27(火) 20:27:31
なんかコードも書かずにうだうだ言う奴が増えたな。
解答する気ないなら来なくていいよ。
213デフォルトの名無しさん:2006/06/27(火) 20:29:38
>>205
#include<iostream>
#include<algorithm>
#include<numeric>
#include<limits>
#include<utility>
using namespace std;
pair<int,int> f(const pair<int,int>&v,int n){
    return make_pair(min(v.first,n),max(v.second,n) );
}
int main(){
    int a[5]={1,5,6,-1,-3};
    pair<int,int> v = accumulate(a,a+5,
        make_pair(numeric_limits<int>::max(),numeric_limits<int>::min()),f
    );
    cout << "min = " << v.first  << endl;
    cout << "max = " << v.second << endl;
}
214デフォルトの名無しさん:2006/06/27(火) 20:34:05
>>213
なるほど。
accumulateをそういう風に使えるとは考えもしなかった。
215超初心者:2006/06/27(火) 20:51:01
[1] 授業単元:情報処理基礎演習
[2] 問題文:順列・組合せ
      キーボードから2つの整数値nとmを入力し、n個の中から
      m個取り出すときの順列と組合せを求めるプログラムを作成
      してください。ただし、nとmの入力処理は、処理可能な範
      囲が入力されるまで繰り返すようなアルゴリズムにしてくだ
      さい。
[3] 環境
 [3.1] OS:XP
 [3.2] コンパイラ名とバージョン:よくわかりません。
 [3.3] 言語:C
[4] 期限:28日水曜日午後5時
[5] その他の制限:最近defineやdo〜while文を習った。
216デフォルトの名無しさん:2006/06/27(火) 22:49:53
【質問テンプレ】
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2193.txt
のプログラムを改良して、文字列を読み込んで以下すべて出力するプログラムを作成せよ
読み込んだ文字列の長さ
読み込んだ文字列中のスペースの数
大文字と小文字を区別しないときの各アルファベットの数
上記の数の比率
大文字と小文字を区別しないときの27種類の文字(スペースとアルファベット)各2文字組みの出現回数。

abAb c13cB
[a or A][b or B]の2文字組は2個、
[b or B][a or A]の2文字組は1個、   

↑この2つは区別
[b or B][スペース]の2文字組は1個
[スペース][c or C]の2文字組は1個
[c or C][c or C]の2文字組は0個 間に他の文字が入ってるときは、並びとみなさない
[c or C][b or B]の2文字組は1個

[3] 環境
 [3.1] OS:Xp
 [3.2] コンパイラ名とバージョン: Borland
 [3.3] 言語: C
[4] 期限: 金曜日
[5] その他の制限:なし

よろしくお願いします!
217デフォルトの名無しさん:2006/06/27(火) 22:53:03
>>216

#include <stdio.h>
int main (void)
{
float n,m,flg1=0,flg2=0;
int a,b,c=1,d=1,i=0,e;
while((flg1!=1)||(flg2!=1))
{
if(flg1!=1)
{
printf("nの値を入力-->");
scanf("%f",&n);a=n;
if((n<1)||(n-a!=0))
{
printf("1以上の整数を入力して下さい。\n");
continue;
}
flg1=1;
}
printf("mの値を入力-->");
scanf("%f",&m);b=m;
if((m<1)||(m-b!=0))
218デフォルトの名無しさん:2006/06/27(火) 22:53:47
続き

{
printf("1以上の整数を入力して下さい。\n");
continue;
}
flg2=1;
for(b=1;b<=m;b++)
{
c*=(n-i);
i++;
}
i=1;
for(e=1;e<=m;e++)
{
d*=i;
i++;
}
printf("n個の中からm個取り出すときの順列と組合せは%d通り\n",c/d);
}
return 0;
}
219前スレ609:2006/06/28(水) 00:10:52
[1] 授業単元:プログラミング言語T

[2] 問題文(含コード&リンク):
・ネピアの定数(e)を少数以下20000桁まで求めるプログラムを作成し、
 19991桁から20000桁の10個の数字を表示しなさい。
・以下の公式を使用せよ。
 ttp://img142.imageshack.us/img142/6717/3d669b70f520df87086101fd8490ae.png
・実効時間を低減するための工夫を行い、実効時間がどれだけ低減したか示しなさい。プログラムの解説もつけること。

[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン: Borland C++Compiler5.5 または Visual Stdio.NET2003
 [3.3] 言語: C++

[4] 期限: 6月29日

調べた結果結局良くわからない始末で、、どうかよろしくお願いいたしますm(_ _)m

プログラム:ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2194.txt
のプログラムの実効時間を計ろうとしたら以下のようなエラーが出てしまいました。。
どこがいけないのか分かりません。よろしくお願いします。

警告 W8004 q1.cpp 50: 'millisec' に代入した値は使われていない(関数 main(int,char * *) )
警告 W8004 q1.cpp 50: 'sec' に代入した値は使われていない(関数 main(int,char * *) )
警告 W8057 q1.cpp 50: パラメータ 'argc' は一度も使用されない(関数 main(int,char * *) )
警告 W8057 q1.cpp 50: パラメータ 'argv' は一度も使用されない(関数 main(int,char * *) )
エラー E2451 q1.cpp 201: 未定義のシンボル timebuffer(関数 to_decimal(unsigned int *,unsigned int *) )
エラー E2451 q1.cpp 202: 未定義のシンボル sec(関数 to_decimal(unsigned int *,unsigned int *) )
エラー E2451 q1.cpp 203: 未定義のシンボル millisec(関数 to_decimal(unsigned int *,unsigned int *) )
エラー E2451 q1.cpp 205: 未定義のシンボル elapsed_time(関数 to_decimal(unsigned int *,unsigned int *) )
*** 4 errors in Compile ***
220 ◆YZfBQ74IBk :2006/06/28(水) 00:50:42
[1] 授業単元: プログラミング基礎
[2] 問題文(含コード&リンク):
・適当な標準ライブラリ関数を見つけて
キーボードから文字列を順次読み込んで、それが文字列quitと一致するまで
その入力を繰り返す簡単なプログラムを作れ
・関数は呼び出しで使用されるが、ソースコード上で呼び出される箇所より
前の箇所に関数定義もしくはプロトタイプ宣言が無ければ
コンパイルエラーとなる。しかし、標準ライブラリ関数はユーザが関数定義も
プロトタイプ宣言も明示的に記述していないのも関わらず呼び出して
使用することができる、この理由を、ライブラリ関数定義もしくは
プロトタイプ宣言の実体がどこにあるかを踏まえて説明せよ。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C++
[4] 期限: 7月4日
[5] その他の制限:関数定義、関数呼び出し、プロトタイプ宣言、
標準ライブラリ関数をちょっと習い始めました。
私用している参考書は高橋麻奈著やさしいC++です。
よろしくお願いします。
221デフォルトの名無しさん:2006/06/28(水) 01:28:16
>>219
errorの変数群は関数内で宣言されてるわけでも、グローバルな
わけでも、引数として渡されているわけでもない。
222デフォルトの名無しさん:2006/06/28(水) 01:29:09
>>220
#include <iostream>
using namespace std;
main() {
char* str;
do {
cout << "Input > ";
gets(str);
}while(str=="quit");

}
223デフォルトの名無しさん:2006/06/28(水) 01:30:26
あかん、>>222は却下w
224デフォルトの名無しさん:2006/06/28(水) 01:38:29
>>215

#include<stdio.h>

int kaijou(int x){ //階乗を求める関数
int i;
int sum=1;
for(i=x;i>0;i--) sum = sum*i;
return sum;
}

int main(void){
int n, m, i;
int junretu;
int kumi;
do{
printf("nを入力->");
scanf("%d", &n);
}while(n == 0); //0以外が入力されるまでnの入力を求める
do{
printf("mを入力->");
scanf("%d", &m);
}while(n < m); //n>m となるmが入力されるまでmの入力を求める
junretu = kaijou(n)/kaijou(n-m);
kumi = kaijou(n)/(kaijou(n-m)*kaijou(m));
printf("%dP%d=%d\n", n, m, junretu);
printf("%dC%d=%d\n", n, m, kumi);
return 0;
}
225デフォルトの名無しさん:2006/06/28(水) 01:40:39
>>220

#include<iostream>
#include<string>

using namespace std;

int main(){

std::string str1,str2 = "quit";

do{
std::cin >>str1;
}
while(str1 != str2);

}
226デフォルトの名無しさん:2006/06/28(水) 01:42:36
>>220
本当にC++だよな?
227デフォルトの名無しさん:2006/06/28(水) 01:47:04
>>220 今度こそ
#include <iostream>
using namespace std;
main() {
char* str;
do {
cout << "Input > ";
cin >> str;
}while(strcmp(str,"quit"));
}
228デフォルトの名無しさん:2006/06/28(水) 01:52:12
>>226
>>220には
>私用している参考書は高橋麻奈著やさしいC++です。
って書いてあるガーナが負けてもうた・・・
229デフォルトの名無しさん:2006/06/28(水) 01:57:28
>>228
てか2点目の線審はありえない
230デフォルトの名無しさん:2006/06/28(水) 01:58:35
>>227
もっとがんばれ
231デフォルトの名無しさん:2006/06/28(水) 02:03:08
>>227
悪い事は言わないから、std::string str;にしとけ。

比較部分は if (str == "quit") で。
232デフォルトの名無しさん:2006/06/28(水) 02:03:51
>>230 おっしゃ、がんばってみた(パクって書き換えただけだが)
#include<iostream>
using namespace std;
main(){
string str1;
do{
cout << "Input > ";
cin >>str1;
}while(str1 != "quit");
}
233デフォルトの名無しさん:2006/06/28(水) 02:14:21
#include <iostream>
#include<string>

using namespace std;

int main() {

std::string str1,str2 = "quit";

do{
std::getline(cin,str1,'\n');
}
while(str1 != str2);

}

標準関数使ってましぇーん
234デフォルトの名無しさん:2006/06/28(水) 02:16:37
while(str != "quit")
でいいじゃん

235デフォルトの名無しさん:2006/06/28(水) 02:42:45
なんつーか、超低レベル向けコードレビュースレになってきたな
236デフォルトの名無しさん:2006/06/28(水) 02:49:28
[1] 授業単元:プログラミング応用
[2] 問題:
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2195.txt
↑の問題を自分なりに解いた結果↓
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2196.txt
コンパイルしてみたら、無限ループしたり、コアダンプしたりでまったく
うまく動きません。いったいどこをどのように直せばよいか、教えてください。
[3] 環境
 [3.1] OS:UNIX
 [3.2] コンパイラ名とバージョン:Borland
 [3.3] 言語: C
[4] 期限:明日の昼ごろですが、早ければ早いほど嬉しいです。
[5]その他の制限 : 構造体を3つ使う、ファイルは3つ使う。
よろしくお願いします。

237デフォルトの名無しさん:2006/06/28(水) 03:43:53
>>236
Use fread and fwrite, Luke.
238デフォルトの名無しさん:2006/06/28(水) 04:00:47
>>236
ちらっとしかコード見てないけど、そのコード、コンパイル通ってないでしょ。
少なくともコンパイルできるコードをアップするか、いちから解答を求めて
ください(そのほうが楽)。

まぁひとついえることは、fputsに渡すバッファはヌルターミネートしてないと駄目。
あとスペルミスは恥ずかしいので修正するように。cordじゃなくてcodeね。
239デフォルトの名無しさん:2006/06/28(水) 04:05:37
>>236
所属コードのバイト数はそれでいいのかな?
240デフォルトの名無しさん:2006/06/28(水) 04:22:52
【1】情報プログラム通論1C
【2】問題文
練習問題6
まずはこのプログラムがどういった動きであるものかを見る。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2197.txt
これはポインタ,ないしは配列を用いて数値を画面に表示するプログラムである。
このように格納されている数値を参照する場合は複数の表現が同じ事柄を示す。

このプログラムの動作の各表現の意味を解説し、
各変数のメモリ上での割り当て(どのアドレスがどの変数の格納位置に相当するか)を
実際の実行時の表現と合わせて簡単な表にして示せ。

プログラムを作成する課題ではないのですが、
いまいち良く分からなくて…。 よろしくお願いします。

241デフォルトの名無しさん:2006/06/28(水) 04:40:52
242デフォルトの名無しさん:2006/06/28(水) 05:02:13
課題の内容に沿わないオナニーコードはちらしの裏にお願いします。
>>220に対する回答とか。
243デフォルトの名無しさん:2006/06/28(水) 05:10:44
ttp://www.ksky.ne.jp/~seahorse/cpp/using.html
std::がなくてもええんしょ?
244デフォルトの名無しさん:2006/06/28(水) 05:21:21
#include<stdio.h>
#include<string.h>

int main(void)
{
char str[256];

do{
printf("Input:");
gets(str);
}while(strcmp(str,"quit"));

return 0;
}
245デフォルトの名無しさん:2006/06/28(水) 05:22:04
>>243
自分のソース内でusing namespace std;した上で省略するのは構わないと思うよ。
246242:2006/06/28(水) 05:25:02
>>243
それは俺に対するコメントかな?
>>220に対する回答のほかにも、>>198とかもそう。
稚拙なコードを示して、レビューしてもらうスレではない。
同じような内容の回答が既に複数出ているのに、なぜ新たに稚拙なコードを貼るのか?
それにコメントする奴も出てきて、スレが無駄に伸びるだけ。
247デフォルトの名無しさん:2006/06/28(水) 05:29:07
>>246
自治厨ウザイ
248デフォルトの名無しさん:2006/06/28(水) 05:33:42
>>246
いや、stdに関してはお前へのレスじゃないよ。
稚拙なコードとかは明らかに「お前の判断基準」になるんで
何が稚拙とかは議論せず。ぐだぐだ言うくらいならお前がソースを提出しろ!
ってのが、過去の言い争いでの結論だからw
出さないなら「黙ってろ」ってことで、俺もこれ以上無駄レスせんから。
>それにコメントする奴も出てきて、スレが無駄に伸びるだけ。
わかってんならお前も無駄レスしないこと、そしてオレモナー
249デフォルトの名無しさん:2006/06/28(水) 05:34:35
>>246
うざい
250デフォルトの名無しさん:2006/06/28(水) 05:35:39
>>246
前もこんなやついたなw
251242:2006/06/28(水) 05:36:19
>>248
(特に)君とはやりあう気は全くないが、>>198などは特に見苦しい。
書いた本人がそういってるじゃない。初心者が書いたらめちゃくちゃになったコードだと。

まあ、自重してくれとお願いするしかないわけだけど。
252242:2006/06/28(水) 05:39:40
>>250
その前の奴は俺じゃないがな。
このスレで特にひどくなった気がしたので書いた。>>191などは、もう
同じような回答がいくつもいくつも。

俺からは、この件ではもう何も書かない。
また回答生活に戻る。
253デフォルトの名無しさん:2006/06/28(水) 05:43:52
>>252
それが一番いいと思われ
254デフォルトの名無しさん:2006/06/28(水) 05:53:52
>>248
明らかに稚拙なコードは存在するよ
255デフォルトの名無しさん:2006/06/28(水) 05:56:57
>>248
お前がレスしないことが、スレが無駄に間延びしない一番の方法なんだがなw
256デフォルトの名無しさん:2006/06/28(水) 06:03:45
他人の稚拙なコードが気になるのは自分のコードに自信がない所為だろ。
自分のコードに自信があるなら他人のコードに興味なんてないだろうからな。
#尤も、漏れみたいに他人のコードに突込みどころを探すためにここにいるのもいるけどな。
257デフォルトの名無しさん:2006/06/28(水) 06:05:23
>>256
何このサンドバック
258デフォルトの名無しさん:2006/06/28(水) 06:07:09
>>254-255
見苦しい。無駄レスするなって言われたばかりだろ・・・
お前らもソースだせYO!
259デフォルトの名無しさん:2006/06/28(水) 06:15:25
出してるけど何か?
260デフォルトの名無しさん:2006/06/28(水) 06:19:46
>>256
自分のコードには自信あるよ。プロだし。
他人の稚拙なコードが気になるのは、俺がプロだから。
他人のコードに突っ込んだことは、宿題スレでは過去に一度しかない。
ゴミコードにアドバイスしたって無駄だし。
それに、プロでも仕事じゃないから解答するとしてもゆるいコード書くだろうし。俺がそうだ。
261デフォルトの名無しさん:2006/06/28(水) 06:30:45
>>260
たとえそうだとしても、そのレス自体が無駄だって気づいてね。
そしてお前はプロだと思っているのは、自分が書いたものではなく
プロが書いたものを真似ただけのものだと気づくであろう
262デフォルトの名無しさん:2006/06/28(水) 06:33:58
>>261
まあお前のレスも無駄レスだからお互い様だな。
後半2行は意味不明。
263デフォルトの名無しさん:2006/06/28(水) 06:42:56
>>260
あるぇ〜〜、プロがこんなところに何の用だ?自称プロか。
お前の書いたソースで出来上がったプログラムはバグだらけだろうね・・・
所詮、他人のソースを真似て勉強した口だろ?だからプロの真似をしただけで
お前がプロじゃないんだよw
264デフォルトの名無しさん:2006/06/28(水) 06:52:16
こんなところで油を売ってないで早く新聞配達に戻るんだ
265デフォルトの名無しさん:2006/06/28(水) 06:56:11
>>263
まあ何とでもほざけ。
プロになれなかったのが悔しいのかな?
266デフォルトの名無しさん:2006/06/28(水) 07:27:40
>>263

 ま た お 前 か
267デフォルトの名無しさん:2006/06/28(水) 07:39:12
>>186
>>190
お願いしますorz
268デフォルトの名無しさん:2006/06/28(水) 09:47:13
[1] 授業単元: プログラミング
[2] 問題:文字を引数として、その文字がアルファベットの何番目の文字であるか返し、英文字ではない場合-1を返す整数型の関数abc(ch)を使ったプログラムを作成してください
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C
[4] 期限: 今日中
[5] その他の制限:なるべく早くお願いします
269デフォルトの名無しさん:2006/06/28(水) 10:12:55
>>268
大文字小文字区別する?
270デフォルトの名無しさん:2006/06/28(水) 10:18:25
区別します。
271デフォルトの名無しさん:2006/06/28(水) 10:18:52
#include<stdio.h>

int abc(char ch);

int main(void)
{
char ch=getchar();

printf("%d",abc(ch));
return 0;
}

int abc(char ch)
{
int i=ch,j;
for(j=65;j<=90;j++){
if(j==i) return i-64;
}
for(j=97;j<=122;j++){
if(j==i) return i-96;
}

return -1;
}
272デフォルトの名無しさん:2006/06/28(水) 10:19:49
[1] 授業単元: プログラミング
[2] 問題
名前と点数を格納するデータ部を持つ自己参照型構造体を定義し、
線形リストを実装しなさい。
構造体の名前は struct grade とし、新たに glist 型として定義する。
構造体のメンバは、char name[40]、int score、及びポインタnext。
ノードは3つ作成し、それぞれキーボードからデータを入力する。
ポインタに値を代入し、ヘッダhdと3つのノードの間を繋ぐ。
読み出し用のポインタpを使って、リストのデータを順に画面に出力する。
【ヒント】
実習時間中にスライドの指示に沿って作成したコードを提出しても良い。
余力のある人は、ノードを作成する際に動的にメモリを確保するコードを作成すること
(より効率的なコーディングが可能となる)。
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン:visual studio.2003
 [3.3] 言語: C
[4] 期限: 今日中
[5] その他の制限:なるべく早くお願いします
273デフォルトの名無しさん:2006/06/28(水) 10:22:51
>>271>>268
274デフォルトの名無しさん:2006/06/28(水) 10:29:38
[1] 授業単元:プログラム技法
[2] 問題文
1、各データ型(char,int,float,double)の変数とポインタ変数をそれぞれ宣言し、各データ型変数のアドレスを同じデータ型の
ポインタ変数に代入した上で、各データ型変数とポインタ変数の内容と各変数アドレスを表示せよ。ただし、同じ値と思われる
ものを一行で表示する。

2、char a[9]={65,66,69,70,71,72,73,0},*p;と宣言し、p=&a[4];とすると、文字配列aの各要素のアドレスとポインタ変数pの内容
を表示し、また、++*p,(*p)++,--*p,(*p)--の値も表示せよ。この時、括弧をつけない場合の*p++,*p--の結果も表示して確認する。

3、int a[9]={10,15,20,25,30,35,40,45,50},*p;を宣言し、p=&a[4];文の後に、p++,++p,--p,p--の各実行文を実行した場合、*p
の結果を出力せよ。また、p=&a[0];文の後に、*(p+1),*(p+2),*(a+1),*(a+2)の値を出力せよ。

4、文字列の長さを求める標準ライブラリ関数strlen()の自作版関数int mystrlen(char *)を作成せよ。

[3] 環境 
 [3.1] OS: windowsXP
 [3.2] cygwin
 [3.3] C言語
[4]期限 午後13時までです。(今日)
275216:2006/06/28(水) 10:51:07
金曜日までにはお願いします!
276デフォルトの名無しさん:2006/06/28(水) 14:19:15
[1] 授業単元: プログラミング
[2] 問題文: 階乗を計算するdouble型の関数を使い、1から10までの階乗を表示するプログラムを作成してください。引数を使わないで、外部変数を使って、main関数からユーザー関数に、1から10までの値を送ってください。
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 今日
[5] その他の制限:お願いします。なるべく早く・・・
277デフォルトの名無しさん:2006/06/28(水) 14:37:44
>>265
どこをどう読んだら>>263がプロになれなかったという憶測ができるのやら
お前がプロかどうかなんて、こんなスレに来ているようじゃ明らかに
ありえねぇーってのはバレバレだから、痛々しい自慢にもならねー
クソソース貼り付けてプロ気取ってんじゃねーよw
278デフォルトの名無しさん:2006/06/28(水) 14:38:58
ほぉほぉ>>271これがプロのソースか、そかそか。平凡じゃん。
まだトーマス氏の方が難しそうな数学の公式を使ったプログラムでは
プロっぽいと思えるけどw
279デフォルトの名無しさん:2006/06/28(水) 14:44:03 BE:19410252-#
いや、中学生や高校生でも知ってるような公式は「難しい」とは言わないから。
280デフォルトの名無しさん:2006/06/28(水) 14:56:42
>>276 しかしまぁ、なんで整数を扱う階乗の計算ってわかりきっているのに
double型に指定して宣言するのやら・・・引数もなくその型すらdoubleでなくても良いし。
double型の値を返す関数でもなさそうだし・・・

#include <stdio.h>
int i,x=1;
double kaijo() {
printf("%2d! = %d\n",i,x*=i);
return 0;}
main() {
for(i=1; i<=10; i++)
kaijo();}
281デフォルトの名無しさん:2006/06/28(水) 14:57:22
>>277-278
頭大丈夫?
282デフォルトの名無しさん:2006/06/28(水) 14:58:33
っていうか、>>263=>>277でしょ。
君何度もバーチャル人格を捨ててるつもりなんだろうけど、
全く変わってないからバレバレなんだけど。
283デフォルトの名無しさん:2006/06/28(水) 14:59:30
>>279
まぁ、自分が知っているのは一例しかないけど
フィボナッチのは効率の良さがはっきりしてたかと。
課題の趣旨は満たしていなかったが、それは課題を無視して
効率の良いプログラムとしては十分な結果をだせていたし。
しかし、妙な課題が多いスレだね・・・
そんなスレに来て自分はプロって、プロならこんなところで油売ってねーよなw
自分は趣味程度でやっているけど、まだまだだし、プロを目指す気はないがw
284デフォルトの名無しさん:2006/06/28(水) 15:00:26
ってか>>281=>>282でしょ?
君何度もバーチャルパーソナルを捨ててるつもりなんだろうけど、
短時間で複数を装う自作自演がバレバレなんだけど。
285デフォルトの名無しさん:2006/06/28(水) 15:02:21
260 名前:デフォルトの名無しさん 投稿日:2006/06/28(水) 06:19:46
>>256
自分のコードには自信あるよ。プロだし。
他人の稚拙なコードが気になるのは、俺がプロだから。

260 名前:デフォルトの名無しさん 投稿日:2006/06/28(水) 06:19:46
>>256
自分のコードには自信あるよ。プロだし。
他人の稚拙なコードが気になるのは、俺がプロだから。

とても恥ずかしくてこんなスレでプロなんて言えないね・・・
こんなレベルの低いスレで、自分より下だと思う奴を前の前にしか
でけぇ面ができない小心者だろ?プロ?クソなプログラムを作って
ユーザのコンピュータを困らせるなよ
286デフォルトの名無しさん:2006/06/28(水) 15:03:29
>>284
ああ、そういう返ししかもう出来ないんだね。
いつもそうだ。困ったらそういう返しする。
>>281=>>282ってあたりまえじゃん。なんかおかしい?日本語大丈夫?
287デフォルトの名無しさん:2006/06/28(水) 15:04:16
ああ〜なんだ、専門学校を卒業した自称プロが働き場所に困って
ここで「プロフェッショナル」として「無償」でソースを書いてやってんのか?
職業としてやってないのに「プロ」ってありえねぇ〜からw
プロフェッショナルの意味も理解していない低学(ry乙
288デフォルトの名無しさん:2006/06/28(水) 15:04:47
>>285
低学歴ニートだから、そうやって社会人をこきおろすことでしか、
アイデンティティを保てないんだよね。
かわいそうに。
289デフォルトの名無しさん:2006/06/28(水) 15:05:28
>>287
君いつも昼間からいるよね?
何してる人?
290デフォルトの名無しさん:2006/06/28(水) 15:08:17
>>287
君さー、以前大学に関してありえない妄想書いて大恥かいたの忘れちゃったの?
プロがここにいてもおかしくないじゃん。ああ嫉妬心というやつか。
291デフォルトの名無しさん:2006/06/28(水) 15:15:24
うわっ、なんだこの低レベルな争いは?このスレもスレに来る奴も低レベルだなw
よっぽど市販の本の課題をこなしていた方がレベルアップにもなるよ
っつか、何お前ら噛み付いてきてんの?
>>290
>大学に関してありえない妄想
知らんガニ。お前が勝手に相手を勘違いしているだけだな
少なくともオレは大学について何か勝手なことを言った覚えはないが?
あとさぁ、このスレに来て自分の書くソースはプロだって、アホじゃね?
ろくにプロと言えるソースも出さない奴が多いのがバレバレなのにw
http://dictionary.goo.ne.jp/search.php?MT=professional&search_history=%A5%D7%A5%ED%A5%D5%A5%A7%A5%C3%A5%B7%A5%E7%A5%CA%A5%EB&kind=je&kwassist=0&ej.x=50&ej.y=11&ej=%B1%D1%CF%C2&mode=0
プロフェッショナルの意味も理解しておいてね。
まぁ、専門で毎日やっているからって、そいつがまともなソースを書くとも限らない。
世に出るプログラムで欠陥が多くサポートするものが多いし
バグや不具合の少ないメーカーに所属しているなら、どこに所属しているか書けよ?
292デフォルトの名無しさん:2006/06/28(水) 15:20:45
--------------------以下レベル関係なしに争いはご遠慮ください--------------------
293デフォルトの名無しさん:2006/06/28(水) 15:23:21 BE:15528724-#
>>280
doubleの方が扱える値の範囲が広いので、戻り値をdoubleにするのはアリ。
戻り値が32bit整数だと、せいぜい21!くらいまでしか計算できない。

>>283
効率つーか、一般項を求める漸化式があるなら使うのは常識つーか。
級数の計算をプログラムで書くときにはまず数学的に一般化しないかな?
294デフォルトの名無しさん:2006/06/28(水) 15:33:19
>>293
あれは再帰の項目でフィボナッチを使ってみよー!って課題だったみたいだし
別にそれについてはどうこう言わないけどね
295デフォルトの名無しさん:2006/06/28(水) 15:36:13

ヒント:頭のおかしい人の相手はしないようにしましょう
296デフォルトの名無しさん:2006/06/28(水) 15:39:59 BE:122283779-#
>>294
つーか、無限級数を再帰で実装するという課題の意味が分からん…
そういう用途には再帰は向いてないことを確認する課題なんだろか。
297デフォルトの名無しさん:2006/06/28(水) 15:40:24
>>291
なんかしらんがお前が「プロ」に噛み付いてるんだろ。
まぁ、俺もプロなんだがw
来ちゃいけないか?プロが。
298デフォルトの名無しさん:2006/06/28(水) 15:42:19
>>296
>そういう用途には再帰は向いてない
そうかもね。ソートでもバブルソートから習って、まずは効率の悪いプログラムを知って
それじゃ、どうしたら効率が良くなるか?って流れもあるかもね。
そこで、高校、大学で習った数学を適用しようかと。
マクローリンは大学の講義で聞いた覚えがあるけど、自分はもう忘れとった・・・
299デフォルトの名無しさん:2006/06/28(水) 16:41:00 BE:19410825-#
>>298
そういや、自己参照構造体でスタックを実装するなんて課題もあったな。
実装実験つーか、SMプレイみたいな趣だ。
300デフォルトの名無しさん:2006/06/28(水) 16:56:52
ここはね、現実世界で満たされない人たちが、何か人の役に立って
自己を慰めるスレなんだよ。
301デフォルトの名無しさん:2006/06/28(水) 16:57:19 BE:58230465-#
丸投げに回答しても誰の役にも立たないわけですが。
302デフォルトの名無しさん:2006/06/28(水) 17:01:38
異常にプロという言葉に反応している奴がいるな。
この板は少なくとも半数以上はプロだと思っていたが、俺の認識違いだったか。
303デフォルトの名無しさん:2006/06/28(水) 17:06:53
>>301
回答者の勉強にはなるやろ。
304デフォルトの名無しさん:2006/06/28(水) 17:09:05
プロの意味を理解していない奴がいるな。
このスレは少なくともプロなんていないと思っていたが、一人くらいはいそうだ。
305デフォルトの名無しさん:2006/06/28(水) 17:09:50
俺は純粋に質問者の利益になると思って解答してるよ。
質問者の為になるのかどうかは知ったこっちゃないが。
引きこもりニートなんで、時間はたっぷりあるんだ orz
306デフォルトの名無しさん:2006/06/28(水) 17:11:26
>>304
2,3人はいると思うよ。たまにプロの匂いがするコードがある。
307デフォルトの名無しさん:2006/06/28(水) 17:11:33
自称プロの態度が大きくてうざい。スレの流れを見ても分かるが
お世辞にもプロとは言えない回答ばっかりじゃん。
プロだったらサクッとまともなソースを出すだろ。そんな奴はほとんどいない。
要するにこのスレにはプロは来ない。他のまともなスレで議論しているだろ。
数学の話が出たとたん、自称プロが黙ってしまったのにはワラタ。
専門 学校に通っていることをプロ(専門)と勘違いしたようだw
308デフォルトの名無しさん:2006/06/28(水) 17:26:10 BE:46584364-#
>>305
丸投げに回答しても、質問者の能力が向上するわけではない。
丸写しで単位がもらえるなら能力に不相応な評価を得るだけなので利益にはならない。
したがって、純粋に質問者の利益を考えるなら回答するべきではない。
309180:2006/06/28(水) 17:31:46
>>189
>>194
遅くなりました。
.htmlを取得して、<body></body>内をタグを消したテキストにし、
キャラクタ端末に表示する仕様です。
なので一時的な接続による取得だと思われます。


いまさら遅いかもしれませんが・・・。
310デフォルトの名無しさん:2006/06/28(水) 17:32:09
>>307
>>165,241はプロっぽい。あくまで「ぽい」だけどな。
別にプロが解答しててもいいだろ?何が気に入らないの?

>数学の話が出たとたん、自称プロが黙ってしまったのにはワラタ。
これ前にも書いた気がするけど、高校や専門学校、大学を出て何年も
たてば忘れるんだって。それに教科書に載ってたり、webに載ってることを
知ってる知らないなんて水掛け論しても面白くないし。

ちなみにプロ(w)である俺のコードは>>96,193。暇つぶしに書いてるだけ。
311デフォルトの名無しさん:2006/06/28(水) 17:53:07
>>308
質問者の消費するであろう時間を肩代わりするという意味で「利益がある」ってことだよ。
その後、結果的に質問者が不利益をこうむろうがどうしようが知ったこっちゃない。
312デフォルトの名無しさん:2006/06/28(水) 17:58:15
66代目のスレが立っているが、どういうことだろう?
313デフォルトの名無しさん:2006/06/28(水) 18:01:05
ttp://www.orchid.co.jp/computer/cschool/cschool.html
ttp://www.bohyoh.com/
ネット上でも市販の本でも探せばプロっていえるソースなんざ
ごまんと見つけられる罠
それをパクってちょちょっと課題向けに書き直してプロ?
ここで出される課題なんて、既に答えの分かりきったもの。
それができたくらいで自分がプロって思えるなら、どんだけ視野が狭く
世間を知らない井の中の蛙だよ・・・
314デフォルトの名無しさん:2006/06/28(水) 18:06:17
>>313
わかってないなぁ。怠惰、傲慢、短気こそがプログラマの美徳だよ。
著作権的に問題ないコードがあるなら、それをパクっても、そりゃ普通のことだ。
わざわざWebから元ネタ検索して、書き換えてここにアップするような面倒くさい
ことやるプロがいるかどうかは知らんがな。

んで、なんでそんなにプロに敵対心を燃やしてるの?
315デフォルトの名無しさん:2006/06/28(水) 18:07:09
暇潰しに来たんだけど未解答の課題はないみたいだね。
今の時期って課題少ないの?
316デフォルトの名無しさん:2006/06/28(水) 18:10:40
>>315
HTTPクライアントの奴とか。
317デフォルトの名無しさん:2006/06/28(水) 18:16:58 BE:46584364-#
>>272
#include<stdio.h>
#include<stdlib.h>
#define N 3
typedef struct grade{char name[40];int score;struct grade* next;} glist;
typedef glist* pglist;pglist hd=NULL;
pglist addnode(const char* name,int score){pglist hp=hd,
newitem=(glist*)malloc(sizeof(glist));strncpy(newitem->name,name,40);
newitem->score=score;newitem->next=NULL;if(hp){while(hp&&hp->next)
hp=hp->next;hp->next=newitem;}else hd=newitem;return newitem;}
int main(void){char name[40],tmp[40];int i,score;pglist hp;
for(i=0;i<N;i++){printf("名前(%d):",i);fgets(tmp,sizeof(tmp),stdin);sscanf(tmp,"%s",name);
printf("点数(%d):",i);fgets(tmp,sizeof(tmp),stdin);score=atoi(tmp);
addnode(name,score);}hp=hd;while(hp){printf("名前:%s\n点数:%d\n",hp->name,hp->score);
hp=hp->next;}return 0;}
318デフォルトの名無しさん:2006/06/28(水) 18:18:07
>>315
ネイピアの定数の19991〜20000桁の値を求めるやつとか
319デフォルトの名無しさん:2006/06/28(水) 18:18:35
>>180
>>186>>190
くらいじゃねえの
320デフォルトの名無しさん:2006/06/28(水) 18:18:51
>>313
おいおい、上のURLチラ見したけど、それプロのコードじゃないだろ。
プロなら絶対にmainで「return;」などとはしない。譬えmainが10行でも。
ただそれだけで、そのサイトは信用ならん。
321デフォルトの名無しさん:2006/06/28(水) 18:19:41 BE:23292634-#
>>311
質問者も回答が来るまで待ってるわけだから時間は変わらないかと。
322デフォルトの名無しさん:2006/06/28(水) 18:22:54
HTTPクライアントの奴は、Webからコードパクって、<body>〜</body>の間だけ
を標準出力に表示するということなら10分で書けるが、非難されそうなのでしないw
323デフォルトの名無しさん:2006/06/28(水) 18:23:38 BE:29115353-#
>ネピアの定数
多倍長数とか複素数はクラス化されてないとやる気にならねえw

>HTTPクライアント
system("GET")じゃダメ?

>レンペルジブ
LHAのソース見れ
324271:2006/06/28(水) 18:24:25
帰宅したら、知らないうちに
自分のコードが罵りあいにまきこまれているわけですが。
完全な第三者です
325デフォルトの名無しさん:2006/06/28(水) 18:25:13
>>321
おやおや、君がそんなこと言うとは意外だな。君は即効で解答してあげてるじゃない。
俺は、直近の解答していない問題で、なおかつ10分くらいで書けるものを解答してる。
君もそんな感じかと思ってたけど。
326デフォルトの名無しさん:2006/06/28(水) 18:26:45
>>316,318,319
ありがと
327デフォルトの名無しさん:2006/06/28(水) 18:26:54
328デフォルトの名無しさん:2006/06/28(水) 18:26:55
[1] 授業単元: コンピューター実習
[2] 問題文(含コード&リンク):
  10行10列の行列を考える。
  各要素に0〜99の範囲で乱数を入力する。
  各行の要素の値について、合計値を表示する。
  各列の要素の値について、合計値を表示する。

例)   0 5 3 2  10
     3 8 6 0  17
     2 3 6 4  15
     1 4 7 9  21

     6 20 22 15
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 7月4日
[5] その他の制限: 乱数はrand()をつかって発生させる。
  forを使用する。

よろしくお願いしますm(_ _)m
329デフォルトの名無しさん:2006/06/28(水) 18:29:01 BE:23292634-#
>>325
俺もそんな感じだけど。
2ch開いてスレ探してテンプレ書いて回答待ってる時間あれば書けるような回答しか
書いてないから。
330デフォルトの名無しさん:2006/06/28(水) 18:30:39
>>323
それで全部解決してたらこのスレの存在意義なんて(ry
331デフォルトの名無しさん:2006/06/28(水) 18:38:07
>>314
> んで、なんでそんなにプロに敵対心を燃やしてるの?
彼はこのスレのお山の大将でいたいんだよ。
過去の発言見てない?相手があきらめるまで絶対に叩くの止めないから。
332デフォルトの名無しさん:2006/06/28(水) 18:38:29
>>320 >>314
お前らのプロの定義、意義がおかしいから話にならね
ここで書いているくらいでプロなら金稼ぎのソースを書けば?
プロって金を稼ぐ意味も入ってるよ
333デフォルトの名無しさん:2006/06/28(水) 18:40:21
>>331
>過去の発言見てない?相手があきらめるまで絶対に叩くの止めないから。
それは>>314。未だに自分がプロだ!っつってんだろ。
こっちはプロに対して敵対した覚えはなし。こんなところにいてプロってのが
片腹痛いだけ。しかも、書いたと思われるソース(過去ログ)を見た?
どう考えてもプロとは言えないユーザーインターフェースの悪いプログラムだったよ・・・
334デフォルトの名無しさん:2006/06/28(水) 18:41:24 BE:31057128-#
>>328
#include<stdio.h>
#include<stdlib.h>
#define N 10
int main(void){int i,j,r,cs[N],rs;
for(j=0;j<N;j++)cs[j]=0;for(i=0;i<N;i++){rs=0;
for(j=0;j<N;j++){r=(100.0*rand()/(RAND_MAX+1.0));
rs+=r;cs[j]+=r;printf("%4d ",r);}printf("|%d\n",rs);}
rs=0;for(j=0;j<N;j++){printf("%4d ",cs[j]);rs+=cs[j];}
printf("|%d\n",rs);return 0;}
335デフォルトの名無しさん:2006/06/28(水) 18:41:54
「低学歴」「専門学校」で検索すれば完璧だよw
336デフォルトの名無しさん:2006/06/28(水) 18:42:53
>>310
>>165,241はプロっぽい。あくまで「ぽい」だけどな。
プロ ぽい って書いてあるら?だからこいつの勝手な判断基準なんだって気づけよw

>ちなみにプロ(w)である俺のコード >>96 >>193
どう見ても幼稚なソースです、昼間っから自分はプロプロって言いに
レベルの低い奴が集まるスレでお山の大将になりたくていきがっているだけだな
337デフォルトの名無しさん:2006/06/28(水) 18:43:16 BE:95109577-#
>>330
このスレで解決すべき問題はただ一つ。

「 丸 投 げ 厨 を 余 所 の ス レ に 漏 ら さ な い 」

だけなので、それ以外のことは割とどうでも良かったり。
338デフォルトの名無しさん:2006/06/28(水) 18:43:29
さぁごらん!プロのソースを!
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2189.c
339デフォルトの名無しさん:2006/06/28(水) 18:43:32
>>333
なんで、このスレにはプロがいないと思いたいの?
340デフォルトの名無しさん:2006/06/28(水) 18:44:31
>>96 >>193は別に普通な気がするけど
参考にしたいから、不毛な争いだけでなく
具体的に技術的な点を指摘して欲しい。
341デフォルトの名無しさん:2006/06/28(水) 18:44:49
>>337
>だけなので、それ以外のことは割とどうでも良かったり。
激しく同意。自分はやれるという変な自身を持ってここに来たへんな厨房が増えたな。
昼間っから学校からここを見て罵倒している暇があるガキが騒いでいるみたいだ。
342デフォルトの名無しさん:2006/06/28(水) 18:45:15
コンプレックス丸出しw
343デフォルトの名無しさん:2006/06/28(水) 18:45:25
#include <stdio.h>
#include <stdlib.h>

int main(void){
int i,j,r,rsum;
int m[10][10];
int csum[10];
for (i=0;i<10;i++) {
for (j=0;j<10;j++) {
for (r=rand();r>99;r=rand()) ;
m[i][j]=r;
}
csum[i]=0;
}

for (i=0;i<10;i++) {
rsum=0;
for (j=0;j<10;j++) {
printf("%3.3d ",m[i][j]);
csum[j]+=m[i][j];
rsum+=m[i][j];
}
printf("%3.3d\n",rsum);
}
for (j=0;j<10;j++) {
printf("%3.3d%1.1s",csum[j]," \n"+(j==9));
}
return 0;
}
344デフォルトの名無しさん:2006/06/28(水) 18:45:37
>>339
>このスレにはプロがいない
こんなスレで出される課題に答えたくらいで プロ ってのが片腹痛いし
プロって言えるソースはほとんど出ていないって
過去ログとソースを見れば分かるよ・・・お前2ch初心者だな?
半年ROMってろよ
345デフォルトの名無しさん:2006/06/28(水) 18:46:48
>>341
お前がこのスレには、プロなんかいないとかいうから反応してるだけなんだけど。
なんでそう思いたいの?
346デフォルトの名無しさん:2006/06/28(水) 18:48:43
>>344
論理がめちゃくちゃだなあ。
どんな問題に答えるかなんてことはどうでもよくて、プロが書けばそれは
プロのコードなんだけど。

>プロって言えるソースはほとんど出ていないって
多分君はプロじゃないから、プロの匂いがわからないだけなんだよ。
347デフォルトの名無しさん:2006/06/28(水) 18:52:40
>>332
話しそらさないで、技術的に論理的に>>320の内容にコメントして欲しいなあ。
348デフォルトの名無しさん:2006/06/28(水) 18:53:45
ヒント:頭の悪い議論していると、本当に頭が悪くなっちゃいますよ(^^)v
349デフォルトの名無しさん:2006/06/28(水) 18:54:24
>>346
>論理がめちゃくちゃだなあ。
それはお前。
>プロが書けばそれは プロのコードなんだけど。
このスレで調子ぶっこいているだけのプロになりきれなかったクズだろ
そんな誰にでもなれる奴は世の中にごまんといるんだよ
350デフォルトの名無しさん:2006/06/28(水) 18:55:18
うんこが漏れそうなのですが、どこか近くてきれいなトイレはありませんか><
できれば洋式でウォシュレット付が好ましいのですが!
351デフォルトの名無しさん:2006/06/28(水) 18:55:29
誰か、毎回同じ結果が出る>>343を訂正してやれ
srand()に適当な種を入れてやらんと毎回同じ乱数で計算することになるぞ
352デフォルトの名無しさん:2006/06/28(水) 18:57:05
\   ヽ   才 _  . -┼-   -┼-   -┼-   -┼-   -┼-   -┼-   -┼-   -┼-     /
 \  ̄ ̄`i /|/  ヽ ,-┼/-、 ,-┼/-、 ,-┼/-、 ,-┼/-、 ,-┼/-、 ,-┼/-、 ,-┼/-、 ,-┼/-、  /
  \ _/  |   ノ ヽ__レ ノ ヽ__レ ノ ヽ__レ ノ  ヽ__レ ノ ヽ__レ ノ ヽ__レ ノ ヽ__レ ノ  ヽ__レ ノ/
          .,ノ';`′,,  |.゙ュ          r'゚'=              ,,,,..ぃ―-、,,,_
        ,/  .. .|`ヽ ,l゙.l゙ .ム       / ̄`''''"'x、          r'く.l゜| ,,.、  ゙ヽ
       ../   、`.ヽv-イ/ /.,!    ,-=''"`i, ,x'''''''v'" ̄`x,__,,,_   | ゙l.゙l | .l゙.゙l  .‐ .ヽ
      .,/     .゙li、 .!、゛.,テ'" _,,/    i!        i, ̄\ ` 、 ..゙l,レヘ-,i´ 、.シ \
     .,i´  ,,,i´  l゙ . ゙̄"⌒  - "  |   /ヽ      /・l, l,   \ `゙_'{ .',,,/ .__,ィ" ゙‐  ヽ
    .,ノ  、,「.゙ .  .|     /(     1  i・ ノ       く、ノ |     i  i゙  .`゙゙゛ :|  .  .゙l,
   ./   ,l゙    .l゙     | i     {,      ニ  ,    .|     {   {     .| .'i、    ゙l、
   l゙   ,l゙   .,ノ      l,  i,     }   人   ノヽ   |    . }   |     |  :゙'ii、   ゙l
   ,l゙   .゙l   .,iン‐'"゙゙゙゙゙''i、 },  |    Tヽ.|lF-―-ヵl|\__,/     }   i      .|   ゙l   .゙l
  ,i´   ′ .ヾ″   ヽ. ヽ.} , |.  ̄`/}  {.ト、_ノ} i  /―i、、.,-.|   ,}゙゙'-、  ゙l    _゙    .|
  l゙     .、   .  .''、,. . | ,i_,iJヘヽ  `x, ヾ┴┴'ソ  x=‐'''~  .゙-|   ,}   、  ‘\.` `."    ゙l
 .l゙     ‥‐r-  "゙.!゙゙'^ '.   ./ ヽヽ    ` ニ ´ ノ     l.゜  iiJi_,ノ.'(二 .     ヽ .   .、゙l
353デフォルトの名無しさん:2006/06/28(水) 18:57:55
毎回違う乱数と言う指定じゃないんだから如何でもいいだろ。
354デフォルトの名無しさん:2006/06/28(水) 18:58:26
>>347
話をそらしてんのはお前。何がプロか定義を述べよ。
自分勝手な判断基準や価値観でプロって言っているならそれで良いよ。
別にお前がプロじゃないとは言ってないなから。
こんな答えの分かりきった課題が出されるスレで
あたかも自分が書いた!みたいな喜びを感じたいならどうぞご自由に。
本当のプロの世界を知りな。そんなのができても雇ってくれる企業はほとんどないよ。
未知なるものの開発に携わることもあるんだし。視野が狭すぎ。
355デフォルトの名無しさん:2006/06/28(水) 18:58:35
>>349
だから俺はプロなんだって。俺がいちゃいけないのか?

まぁ君から見たら>>96 >>193は幼稚なコードなんだろうけど、
はっきり言ってこのコードには自信があるよ。仕事では絶対に
書かないやりかただけどね。
356デフォルトの名無しさん:2006/06/28(水) 18:59:00
>>353
そうだな、それがプロの意見か、片腹痛いわっw
357デフォルトの名無しさん:2006/06/28(水) 19:01:20
痛いなぁ。痛すぎるよ小沢さん。
358デフォルトの名無しさん:2006/06/28(水) 19:02:28
もう雑談スレでやれよ
359デフォルトの名無しさん:2006/06/28(水) 19:02:54
>>354
「2.0は変数じゃない。お前の変数の定義を述べよ」式の論理のすりかえだな。
360デフォルトの名無しさん:2006/06/28(水) 19:04:41
要するに、このスレでプロと言ってるのは「自称プロの低学歴」であって欲しいし、
他人は「視野が狭い」と言いたいだけなんだろ。

こいつと議論しても無駄だよん。
なんだかわけわかんなくなって、奴が勝利宣言出して終わりってのがいつものパターン。
361デフォルトの名無しさん:2006/06/28(水) 19:07:09
プロなら未解決の課題のやつ全部やってもらえばいいんじゃない?
過去のコードどうのこうの言うよりも、これから書くコードみてやろうぜ
362デフォルトの名無しさん:2006/06/28(水) 19:07:42
/**********終了************/
363デフォルトの名無しさん:2006/06/28(水) 19:08:35 BE:34938263-#
コーディング能力とプロかどうかはあまり関係ない。
コーディング能力と学歴もあまり関係ない。
コーディング能力と職業も実は関係ない。
コーディング能力と年齢は全く関係ない。
364デフォルトの名無しさん:2006/06/28(水) 19:15:24
またかw
今回の原因は・・・>>242のようだな。
毎度ながらくだらんことで言い合いするのが好きだよな、お前ら。

気に入らないレスはスルーしろよ。
365デフォルトの名無しさん:2006/06/28(水) 19:18:16
>>320
>プロなら絶対にmainで「return;」などとはしない
そこはプロかどうかの判断する点でも基準でもなし。
しかも、C言語なら問題なし。何か問題ならオレじゃなくて「書いた人に」言ってきな。
ttp://www.futatsugi.net/develop/cpp/memo.html#memo004
366デフォルトの名無しさん:2006/06/28(水) 19:19:06
スルーできる人はネ申?
367デフォルトの名無しさん:2006/06/28(水) 19:20:40
>>363
まぁそうだが、プロは毎年1000〜2000時間ずつ経験を蓄積させていくからな。
20〜30行程度じゃ変わらないだろうけど、200〜300行程度書かせれば、まともな
プロなら一味違ったコードを書くと思うよ。
素人同然(もしくはそれよりひどい)プロがゴロゴロしてるのが、この業界の実態
だから、プロだから良いコードを書くとは言えないけどね。
368デフォルトの名無しさん:2006/06/28(水) 19:23:16
なんか文句あんならカレンダーを表示するソースを書いてみろや>自称プロ
369デフォルトの名無しさん:2006/06/28(水) 19:23:17
お里が知れたね。
370デフォルトの名無しさん:2006/06/28(水) 19:24:32
>>359
意味不明。そんな議論持ち出した覚えなし。
そもそも2.0は定数だよ?変数でもなし。どこのスレの話だ?
お前、あちこち回って荒らしている奴だな?暇人め・・・
371デフォルトの名無しさん:2006/06/28(水) 19:24:43
>>368
#include <stdlib.h>
int main()
{
system("cal");
return 0;
}
372デフォルトの名無しさん:2006/06/28(水) 19:26:34
>>370
hahaha...
373デフォルトの名無しさん:2006/06/28(水) 19:27:44
盛  り  下  が  っ  て 
 
マ  イ  リ  マ  シ  タ
374デフォルトの名無しさん:2006/06/28(水) 19:30:39
プロだのどうでもいいじゃん
書きたい人が書けば
初心者でもプロでも
つーか本当にプロならこんなところこないだろ



とか学生が言ってみるテスト
375デフォルトの名無しさん:2006/06/28(水) 19:31:42
>>370
あらら、C/C++関連スレで読んでないスレあったんだ。
お前と似た奴が暴れてたぞ。

327 名前:デフォルトの名無しさん[] 投稿日:2006/06/18(日) 21:14:06
>>303
>2.0がdoubleじゃない
お前バカ?定数と型の指定のある変数の意味もわかってないのが露呈されただけ

専  門  学  校  は  こ  の  程  度  (  プ
376デフォルトの名無しさん:2006/06/28(水) 19:32:03
ある数式(関数)にて、値が変わることにより計算結果が変わるからこそ
変数を用いる数式があるし、よく y=x^2+2とかあるじゃん。
x,yは変数にしても2は定数。まさか、yも変数ならその数式にある2も変数とか言うなよ。
値が定まっているからだが・・・なんでオレがここでプロについておかしな理論を押し付ける奴に
変数や定数の議論のすり替えをつきつけられなきゃならねーんだよ?
何が言いたいんだ?バカじゃねーの、しばらくここを離れるわ。マジでもうこねーよ、カス共。
377デフォルトの名無しさん:2006/06/28(水) 19:32:59
>>375
>お前と似た奴が暴れてたぞ。
それはお前だろ、なに責任転嫁してんだよ。お前、被害妄想をする癖があるんだな
よっぽどお前の学歴が良いのか悪いのか知らんが、学歴って言葉に敏感なんだなw
378デフォルトの名無しさん:2006/06/28(水) 19:33:23
333 名前:デフォルトの名無しさん[] 投稿日:2006/06/18(日) 21:33:49
専門学校生乙。恥ずかしいからもう黙ってな。
筋の通った理論に基づいて話してなく、自分がバカだと思う奴がバカって
言っているだけだな。ご愁傷様。
2.0は 変数 ではなく 定数 なので、変数に使う型は関係ない。
問題は変数同士と、代入する変数の型だよ。
あの数式を見れば一目瞭然。さすがに初心者だからといって
理解力のないバカまで指導するスレじゃないんで、俺はこれで失礼するよ。
低俗な人間の問題煮まで相手にしてたら、こっちがバカになるw
379デフォルトの名無しさん:2006/06/28(水) 19:35:59
自分の目でそういう部分を判断できなきゃ、自分が適切なプログラムを作れなくて困るだけ
一生2.0が何型か?について議論してなさい。
とりあえず答えたけど?自分(質問者)はバカですが何か?って質問に対して
あ〜そうですね?って俺に答えさせただけだな。恥ずかしいね
本当に頭の弱い人って。お願いだから浅はかな考えで社会に出て
犯罪を犯さないでくれ。いつまでもあんたらみたいな「低俗な人間」に
入れ知恵をするつもりはないし、お前らもその程度じゃ賢くはなれんよ。
何でもかんでも答えてもらえる、自分の思った通りに答えない人は嫌いになる
みたいな感情まで持ち込んでどうすんだよ?プログラムは感情なんて当てにしてくれないぞw
380デフォルトの名無しさん:2006/06/28(水) 19:38:35
>>377

君さー、いつも昼間っから常駐してるけど、何してる人?
381デフォルトの名無しさん:2006/06/28(水) 19:40:34
人口無能なんだよ、きっと。
382デフォルトの名無しさん:2006/06/28(水) 19:44:05
回答する人にお願い。
回答するときに、元発言へのリンクを必ず付けてね。
回答済みかどうかわかりづらいから。
383377:2006/06/28(水) 19:44:55
>>382
それはお前だろ、なに責任転嫁してんだよ。お前、被害妄想をする癖があるんだな
よっぽどお前の学歴が良いのか悪いのか知らんが、学歴って言葉に敏感なんだなw
384382:2006/06/28(水) 19:48:18
煽るのを止めることはできないけどさ、せめて落ち着こうぜw
385デフォルトの名無しさん:2006/06/28(水) 19:49:29
このスレも定期的に荒れるね。
まぁ、今回もそろそろ鎮火する頃だろう、多分。
386デフォルトの名無しさん:2006/06/28(水) 19:57:16
387 ◆qvf.IClkDc :2006/06/28(水) 19:58:16
急ぎ気味ですがよろしくお願いします。

[1] 授業単元:コンピュータグラフィックスT
[2] 問題文(含コード&リンク):
ttp://blog.youty.jp/blog_user_top.php/7802/
 このブログに書き込んでおきました。
[3] 環境
 [3.1] OS:WindowsXP Pro
 [3.2] Borland C++ 5.5.1
 [3.3] 言語:C
[4] 期限:2006年06月30日12:00まで
[5] その他の制限:特になし
388デフォルトの名無しさん:2006/06/28(水) 20:04:16 BE:27174072-#
>>385
荒れてるかどうかというなら、今は平和そのもの。
丸投げ厨が余所のスレに漏れるようになったら「荒れている」ということで。
389デフォルトの名無しさん:2006/06/28(水) 21:08:33
[1] 授業単元:情報科学U
[2] 問題文:関数 sasho は第1引数と第2引数の数値(実数)の差と商を計算し,
  差を第3引数で与えられる場所に,商を第4引数で与える場所に格納し,
  第2引数が 0 の場合は 0,その他の場合は 1 を返す関数である
  (第2引数が 0 の場合は,商の計算はしない).関数 sasho を定義し,
  main 関数では,2つの実数を入力して,sasho を利用して,2数の差と商を表示する
  (sasho の帰り値が 0 の場合は差のみを表示)プログラムを作成せよ.
[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2006年6月30日(金)8:40まで
[5] その他の制限:ポインタの単元をやっているところです。

よろしくおねがいします
390デフォルトの名無しさん:2006/06/28(水) 21:17:24
>>389
#include <stdio.h>

int sasho(double a,double b,double *c,double *d){
*c=a-b;
if (b) {
*d=a/b;
return 1;
} else return 0;
}

int main() {
double a,b,c,d;
int f;
printf("input a>");
scanf("%lf",&a);
printf("input b>");
scanf("%lf",&b);
f=sasho(a,b,&c,&d));
printf("a-b=%lf\n",c);
if (f) printf("a/b=%lf\n",d);
return 0;
}
391デフォルトの名無しさん:2006/06/28(水) 21:18:33
訂正
f=sasho(a,b,&c,&d));
->
f=sasho(a,b,&c,&d);
392デフォルトの名無しさん:2006/06/28(水) 21:27:11
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
文字列を読み込んでその中の文字をASCIIコード順に並び替えて出力するプログラムをつくれ
[3] 環境
 [3.1] OS: Windows2000
[3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: C
[4] 期限: 明日
[5] その他の制限: 特になし


お願いします!
393デフォルトの名無しさん:2006/06/28(水) 21:39:41
>>392
#include <stdio.h>
#include <string.h>
int c[256];
char buf[1024];

int main() {
int i;
printf("input string>");
fgets(buf,1024,stdin);
i=strlen(buf);
if (buf[i-1]=='\n') buf[i-1]='\0';
for (i=0;buf[i];i++) c[buf[i]]++;
for (i=0;i<256;i++)
while (c[i]--) {
putchar(i);
}
putchar('\n');
return 0;
}
394389:2006/06/28(水) 21:46:24
>>390ありがとうございました。
395デフォルトの名無しさん:2006/06/28(水) 22:01:00
[1] 授業単元:プログラミング実験
[2] 問題文(含コード&リンク):

http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2203.zip
問題文、プログラムの例など含めて長くなるのでローダーにアップさせてもらいます。

[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン:
 [3.3] 言語: C++
[4] 期限: [2006年6月29日18:00まで]
[5] その他の制限: 設問どおりに作成すること…だそうです。

窓口が1つの場合は例題を少しいじれば作れるのですが、
2つになるとどうにもなりません…。
396デフォルトの名無しさん:2006/06/28(水) 22:07:08
>>395
平均到着時間って何?
397デフォルトの名無しさん:2006/06/28(水) 22:24:49
[1]情報科学実験T
【2】練習課題6
n個の文字列を読み込み,
読み込んだ文字列を縦に読むプログラムを作成しなさい。

実行例は以下のようにしなさい
文字列の個数を入力しなさい
4
1:takeda
2:ootsuka
3:murakami
4:ogi

1 tomo
2 aoug
3 ktri
4 esa
5 duk
6 aka
7  am
8  i

[3]OS:LINUX コンパイラ:GCC 言語:C
[4]「ポインタのポインタ」を必ず使用すること
398デフォルトの名無しさん:2006/06/28(水) 22:27:02
あ、[4]は期限でしたね・・・。
[4]期限:次の]金曜日
[5]制限:「ポインタのポインタ」を必ず使用する事。
習っている部分はポインタまでで、来週から構造体といった感じです。

よろしくお願いします。
399216:2006/06/28(水) 23:01:33
216をお願いします!
400デフォルトの名無しさん:2006/06/28(水) 23:38:03
>>399
>>216 なら解答でてるじゃん
>>217,218 じゃだめなの?
401216:2006/06/28(水) 23:42:56
>>400
なんかレス番号間違いですよね?俺に対する解答じゃない気がします
402デフォルトの名無しさん:2006/06/28(水) 23:47:49
>>396
次のお客が列に並ぶまでの間隔の平均時間みたいです。
403デフォルトの名無しさん:2006/06/28(水) 23:54:12
>>401
あせらずに待つがよろしい
404403:2006/06/28(水) 23:59:36
とある事情でやるき失せた。なんのことだかわからなかったら、
誰かのとばっちりだからごめんね。
俺がやんなくても誰かやってくれるかもしれないし。
405デフォルトの名無しさん:2006/06/29(木) 00:00:48
>>404
あっちのスレですよね。なんか荒れてしまったみたいでもうしわけないっす
406403:2006/06/29(木) 00:02:44
あ、君じゃなかったんだ。
じゃ6/29 23:59までにやっとくから待ってて。
407デフォルトの名無しさん:2006/06/29(木) 00:32:37
>>397
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2204.txt
せこいプログラムだ。ダブルポインタの使い方も不安だ・・・。
408497:2006/06/29(木) 00:38:38
str = malloc(sizeof(str) * num);
は明らかに変だな。
str = malloc(sizeof(char *) * num);
とかすればいいのか?意味的に。
(ポインタのサイズはどうせ同じだろうけど・・・)

いろいろ、突っ込んでいただけると助かります。
409デフォルトの名無しさん:2006/06/29(木) 01:45:23
画像抜き出してみたけど、
エヴァンジェリンの見えない部分の手とか適当でワロタ。
410デフォルトの名無しさん:2006/06/29(木) 01:46:24
誤爆した
411デフォルトの名無しさん:2006/06/29(木) 02:10:51
>>409
ここはアニヲタも紛れ込む場所だったのか(ニヤニヤ
412デフォルトの名無しさん:2006/06/29(木) 02:12:24
(1)単元:情報処理演習
(2)演習問題6−a
3つの自然数x y zの値とx × y行列Aとy × z行列B の行列の要素を読み込む。
そして行列の積C = A Bを計算し、その行列要素を出力するプログラムを作成しなさい。
但し、行列A、Bの要素は配列要素として読み込み、
行列A, B, Cの要素は動的メモリ領域に割り当てる。
また、指定の3つ関数を作成し、main関数ではこれらの関数を呼び出すようにしなさい。

A: 行列要素を読み込むための関数
B: 行列の積を計算するための関数
C: 結果を表示するための関数

以下に簡単な実行例を記す。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2207.txt

[3]環境:Vine Linux gcc C言語
[4]期限:本日中

よろしくお願いします
413デフォルトの名無しさん:2006/06/29(木) 02:12:34
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):

http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2205.txt

[3] 環境
 [3.1] OS:unix
 [3.2] コンパイラ名とバージョン:
 [3.3] 言語: C+
[4] 期限: [2006年6月29日]
[5] その他の制限:

よろしくお願いします。
414デフォルトの名無しさん:2006/06/29(木) 02:13:47

×言語: C+
○言語: C
415デフォルトの名無しさん:2006/06/29(木) 02:18:13
>>411
9割がアニオタエロゲオタだよ
今さら何言ってんの
416デフォルトの名無しさん:2006/06/29(木) 04:08:54
すいません、別のスレに書き込んだのですが
こっちが本スレでしたので書き込ませてもらいます。
[1] ポインタと配列
[2]試験の点数データ配列を用いて、10点間隔ごと及び満点(100点)にいくつのデータがあるか
書き出すプログラムhistgram.cを
書きなさい。

点数データ:int grade〔12〕={100、95、47、88、86、92、75、89、81、70、55、80};
出力
0−9:0
10−19:0
20−29:0
30−39:0
40−49:1
50−59:1
60−69:0
70−79:2
80−89:5
90−99:2
100 :1

[3] 環境
 [3.1] OS windowsXP: (Windows/Linux/等々)
 [3.2] Borland c++ compiler 5.5
 [3.3] 言語:C
[4] 期限: 今週の金曜日
[5] 今のところfor文とかポインタ配列程度の知識で
構造体とかそっちのほうは習っていません
お願いします
417笹井奈琴:2006/06/29(木) 06:49:34
#include <stdio.h>
void h( int* sum, int* grade, int n ) {
int i;
for( i=0; i<n; i++ )
sum[ grade[i] / 10 ]++;
}
int main( int argc, char** argv ) {
int grade[12] = { 100, 95, 47, 88, 86, 92, 75, 89, 81, 70, 55, 80 };
int sum[11] = {0};
int i;

h( sum, grade, 12 );
for( i=0; i<10; i++ )
printf( "%d-%d:%d\n", i*10,i*10+9,sum[i] );
printf( "100:%d\n", sum[10] );
}
418デフォルトの名無しさん:2006/06/29(木) 08:23:15
>>417
すいません
コンパイルしたらパラメータargc とargvはどちらも使用されない関数とかってエラー
がでたんですけど。
419デフォルトの名無しさん:2006/06/29(木) 08:27:00
エラーじゃなくて警告だろ。
無視すればよい。
420デフォルトの名無しさん:2006/06/29(木) 08:41:08
分かりましたありがとうございます。
421デフォルトの名無しさん:2006/06/29(木) 08:50:21
422デフォルトの名無しさん:2006/06/29(木) 09:11:09
最近グラフや表計算の問題が多いね
423デフォルトの名無しさん:2006/06/29(木) 10:34:01 BE:104814296-#
統計計算なんてCの最も不得意とするところだろうに…
424デフォルトの名無しさん:2006/06/29(木) 13:31:58
>>416
#include <stdio.h>
#include <stdlib.h>

int grade[12]= {100,97,47,88,86,92,75,89,81,70,55,80};

int main(int argc, char *argv[])
{
int histgram[11]={0};
int i;
for(i=0; i<12; i++)
histgram[grade[i]/10]++;
for(i=0; i<10; i++)
printf("%2d-%2d:%d\n",i*10,(i+1)*10-1,histgram[i]);
printf("%3d:%d\n",i*10,histgram[i]);
return 0;
}

なんで全角なんだよボケが
425デフォルトの名無しさん:2006/06/29(木) 14:06:10
426デフォルトの名無しさん:2006/06/29(木) 14:17:28
>>408
> いろいろ、突っ込んでいただけると助かります。
もう解答するな。
427デフォルトの名無しさん:2006/06/29(木) 14:33:10
4281/3:2006/06/29(木) 14:52:16
[1] 授業単元:計算物理学
[2] fortranで書かれたプログラムをC言語でお願いします。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: bcpad
 [3.3] 言語: C
[4] 期限:7月3日


C***  report2
C***  gakusekibangou
DIMENSION YA(30),VA(30),YS(30),VS(30),YR(30),VR(30)
OPEN(UNIT=16,FILE="dy.d")
OPEN(UNIT=17,FILE="dv.d")
G=9.8
R=0.3
CANALYTIC SOL.
DO 10 K=1,30
T=K
EP=EXP(-R*T)
VA(K)=G/R*(1.0-EP)
YA(K)=G/R*T-G/R/R*(1.0-EP)
4292/3:2006/06/29(木) 14:52:56
10CONTINUE
YS0=0.0
YS1=0.0
YS0=0.0
YS0=0.0
YR0=0.0
VR0=0.0
H=0.01
DO 20 K=1,3000
CSABUN
T=0.01*K
YS2=2.0*YS1-YS0+G*H*H-R*(YS1-YS0)*H
VS2=(YS2-YS1)/H
CRUNGE-KUTTA
BK1=VR0
BM1=G-R*VR0
BK2=VR0+H*BM1/2.0
BM2=G-R*(VR0+H*BM1/2.0)
BK3=VR0+H*BM2/2.0
BM3=G-R*(VR0+H*BM2/2.0)
BK4=VR0+H*BM3
BM4=G-R*(VR0+H*BM3)
YR1=YR0+H*(BK1+2.0*BK2+2.0*BK3+BK4)/6.0
YR1=YR0+H*(BM1+2.0*BM2+2.0*BM3+BM4)/6.0
IF(MOD(K,100).NE.0) GO TO 30
4303/3:2006/06/29(木) 14:53:56
KK=K/100
YS(KK)=YS2
VS(KK)=VS2
YR(KK)=YR1
VR(KK)=VR1
30 YS0=YS1
YS1=YS0
VS0=VS0
VS1=VS2
YR0=YR1
VR0=VR1
20 CONTINUE
WRITE(17,100)
DO 40 K=1,30
WRITE(17,150) K,VA(K),YS(K),VR(K)
40 CONTINUE
WRITE(16,200)
DO 50 K=1,30
WRITE(16,150) K,YA(K),YS(K),YR(K)
50 CONTINUE
100 FORMAT(5X,"T",5X,"VA",11X,"VS",11X,"VR")
150 FORMAT(2X,T3,3X,F10.5,3X,F10.5,3X,F10.5)
200 FORMAT(5X,"T",5X,"YA",11X,"YS",11X,"YR")

STOP
END
431デフォルトの名無しさん:2006/06/29(木) 15:06:31
432デフォルトの名無しさん:2006/06/29(木) 15:14:08
[1] 授業単元: 演習
[2] 問題文(含コード&リンク):
・整数の配列 data[10] に正整数が書かれているときm=maxx(data,10);
でmに最大値を戻す関数を作成する。
・data[10]に20〜60の乱数を書き込んだとき関数maxx()を用いて最大値を表示する。
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:できればすぐ!
[5] その他の制限:特にありません。宜しくお願い致します。
433デフォルトの名無しさん:2006/06/29(木) 15:17:06
#include <stdio.h>
#include <stdlib.h>
int maxx(int a[],int n){int max=a[0],i;for(i=1;i<n;i++)if(max<a[i])max=a[i];return max;}
int main(void){int a[10],i;for(i=0;i<10;i++)a[i]=rand()%41+20;printf("%d\n",maxx(a,10));return 0;}
434デフォルトの名無しさん:2006/06/29(木) 15:22:39
>>433さん有難うございます。
435デフォルトの名無しさん:2006/06/29(木) 15:22:43
東海大生がいるぞ
436デフォルトの名無しさん:2006/06/29(木) 15:28:40
さ、コピペして出そうかな
437デフォルトの名無しさん:2006/06/29(木) 15:32:00
>>431
typedef struct node *Tree;
というのに思いっきり違和感を感じました。
えと、ただそれだけの感想です・・・
438デフォルトの名無しさん:2006/06/29(木) 15:35:10
よく使う手じゃないか?
439デフォルトの名無しさん:2006/06/29(木) 15:41:43
>>438
capitalizeしているところに違和感を感じたということです・・・
440デフォルトの名無しさん:2006/06/29(木) 15:41:44
>>435
広めるなよ
441デフォルトの名無しさん:2006/06/29(木) 15:45:21
[1] 授業単元:情報処理演習
[2] 問題文(含コード&リンク):
以下のプログラムを完成させよ

文字列を読み込む。
その中の文字をASCIIコード順にクイックソートで並び替えて、出力する
[3] 環境
 [3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン: Borland
 [3.3] 言語: C
[4] 期限:明日
[5] その他の制限: 特にないです

よろしくですm(_ _)m
442デフォルトの名無しさん:2006/06/29(木) 15:48:17
>>428
多分元の fortran のプログラムが間違っているのでちゃんと動かないと思うけど。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2212.c
化け文字のコメントの入っている部分が多分元の fortran のプログラムでおかしい
部分。
コンパイルエラーしか取ってないので動くかどうかは保証しない。

443デフォルトの名無しさん:2006/06/29(木) 15:52:00
>>436
>>433さんの答えで出すならお礼言った方がいいよ
444436:2006/06/29(木) 15:54:24
( ^ω^)>>435がネタかなって思って乗ってみただけだお
445デフォルトの名無しさん:2006/06/29(木) 15:54:50
>>439
なるほど、納得。
446デフォルトの名無しさん:2006/06/29(木) 15:57:03 BE:122283779-#
>>441
#include<stdio.h>
#include<stdlib.h>
int charcmp(const void* a,const void* b){return *(const char*)a-*(const char*)b;}
int main(void){char tmp[100];int len;fgets(tmp,sizeof(tmp),stdin);len=strlen(tmp);
tmp[--len]='\0';qsort(tmp,len,sizeof(char),charcmp);
printf("%s\n",tmp);return 0;}
447428:2006/06/29(木) 16:05:05
>>442
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
report2.c:
警告 W8070 report2.c 71: 関数は値を返すべき(関数 main )
警告 W8004 report2.c 71: 't' に代入した値は使われていない(関数 main )
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland

ありがとうございます。
実行したらこういうエラーが出たんですけど、どうしたらいけますかね?
448デフォルトの名無しさん:2006/06/29(木) 16:06:20 BE:19410252-#
どこにエラーが出ているのかと。
449デフォルトの名無しさん:2006/06/29(木) 16:13:12
>>437
俺が書いたとこの批判は多々あるだろうが
原文ママのところに違和感を感じられてもな
450デフォルトの名無しさん:2006/06/29(木) 16:19:25
[1] 応用プログラム演習
[2] 問題文:人対人の簡単な対戦型オセロを作れ。
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ: ビジュアルスタジオ2003
 [3.3] 言語: Cのみ!
[4] 期限: 2006年7月2日まで
[5] その他の制限:ポインタくらい、できれば標準ライブラリのみ

451デフォルトの名無しさん:2006/06/29(木) 16:37:00
>>449
正直すまんかった。
left_subtree, right_subtreeって何だよ!とかも思った(汗
452グルド:2006/06/29(木) 17:09:42
[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク):
  http://briefcase.yahoo.co.jp/bc/guld11_27/lst?&.dir=/&.src=bc&.view=l
  
  ここにあるC2006.pdfの<コンテスト課題>というところです。
[3] 環境
 [3.1] OS: Windows
 [3.2] cygwinを使ってます。
 [3.3] 言語: C
[4] 期限: 2006年6月30日10:00までです。。

最短経路数を求める問題です。
期限が迫っていて誠に申し訳ないんですが、
力を貸してください。
453デフォルトの名無しさん:2006/06/29(木) 17:36:32
>>452
・・・・ごめんなさい、こういうときどんな顔すればいいのか、わからないの 
454デフォルトの名無しさん:2006/06/29(木) 18:00:13
>>446
ありがとうございます。アルゴリズムを説明していただけるとうれしいです
455デフォルトの名無しさん:2006/06/29(木) 18:08:03
>>450
過去ログ嫁
456デフォルトの名無しさん:2006/06/29(木) 18:18:12 BE:122283779-#
>>454
断る。
457デフォルトの名無しさん:2006/06/29(木) 18:22:39
>>456
qsort(tmp,len,sizeof(char),charcmp);

のqsortがどこから出てくるか不明なんです・・・・
458デフォルトの名無しさん:2006/06/29(木) 18:26:23
>>454
そういうときはね、このスレ以外の場所で質問するといいお ⊂( ^ω^)⊃
459デフォルトの名無しさん:2006/06/29(木) 18:26:55 BE:31055982-#
>>457
スレ違い。
460デフォルトの名無しさん:2006/06/29(木) 18:42:20
さぁ丸投げしてまったく分からない初心者よ、他のスレに飛び出て
じゃんじゃん細かい内容の質問をしてきたまえ
恐れていたほかのスレへの流出を自ら招くとは・・・さすがだ
461デフォルトの名無しさん:2006/06/29(木) 18:47:20 BE:69876094-#
理解しようとして余所のスレに行くのは別に何の問題もないと思うんだが。
余所のスレで丸投げするのが問題なわけで。
462デフォルトの名無しさん:2006/06/29(木) 18:47:21
463デフォルトの名無しさん:2006/06/29(木) 18:51:08

内容理解しようとするのはえらいじゃん
464デフォルトの名無しさん:2006/06/29(木) 18:53:50
[1] 授業単元: ポインタ
[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2201.txt
[3] 環境
 [3.1] OS:windows XP
 [3.2] コンパイラ名とバージョン:visual studio
 [3.3] 言語: C++
[4] 期限:6/30まで
[5] その他の制限:ポインタを使う
465デフォルトの名無しさん:2006/06/29(木) 18:59:16
>>457
#include <stdlib.h>
466デフォルトの名無しさん:2006/06/29(木) 19:02:11
>>462
入力された文字列の改行コードをchopする必要があるよ。
467デフォルトの名無しさん:2006/06/29(木) 19:05:12 BE:31056544-#
>>464
省略部分上から順に。
void array_comp(int* peven,int* pminus,int* array,size_t size);

array_comp(&even,&minus,x);

void array_comp(int* peven,int* pminus,int* array,size_t size){int t;size_t i;
for(i=0;i<size;i++){if(array[i]<0)*pminus++;if(!(array[i]&1))*peven++;if(i<(size/2)){
t=array[size-i-1];array[size-i-1]=array[i];array[i]=t;}}}
468デフォルトの名無しさん:2006/06/29(木) 19:16:01

>>462
ありがとうございます。こちらも参考にします

>>466
chopってなんでしょうか?入力データの改行コードはCRのみを用います
469デフォルトの名無しさん:2006/06/29(木) 19:17:42 BE:77640858-#
>>468
スレ違いだってば。
470デフォルトの名無しさん:2006/06/29(木) 19:20:45
必死だな
471デフォルトの名無しさん:2006/06/29(木) 19:22:01
>>467
error C2660: 'array_comp' : 関数に 3 個の引数を指定でき
ません
ってなってしまいます。

472デフォルトの名無しさん:2006/06/29(木) 19:23:44 BE:29115735-#
>>471
だから何?
473デフォルトの名無しさん:2006/06/29(木) 19:24:45 BE:23292443-#
>>471
これか。
array_comp(&even,&minus,x,sizeof(x));
474デフォルトの名無しさん:2006/06/29(木) 19:34:00
質問者は自分が求めた結果を出していない回答者がいても、不必要なレスはしないこと
だそうです。っつか、さすがにトーマス氏もこれまでか・・・
少しはできる人だと思ったが、他人をけなす態度からして、ただの厨房か
475デフォルトの名無しさん:2006/06/29(木) 20:47:31
476グルド:2006/06/29(木) 21:28:58
>>475
ありがとうございます><
本当に助かりました!!
477462:2006/06/29(木) 22:48:14
>>466
うほほ、普段getsと書いているところを、なんとなくfgets使ってみようかと
思ったのが間違いだった。

>>462
fgets(buf, sizeof buf, stdin);

gets(buf);
に修正してくれ。>質問者
478デフォルトの名無しさん:2006/06/29(木) 22:52:18
1] ポインタと配列
[2]要素数nScores=13の配列scores〔〕={65,0,95,0,0,79,82,0,84,94,86,90,0}から0を
除去して要素数nScores=8の配列〔〕={65,95,79,82,84,94,86,90)を求める関数
RemoveZeroElements(array,n)を書きなさい
main()では実行文により、0を除去した配列の要素数を求めて、ファイルにnScores,scores〔〕
を書き出すこと。
nScores=RemoveZeroElements(scores,nScores);

[3] 環境
 [3.1] OS windowsXP: (Windows/Linux/等々)
 [3.2] Borland c++ compiler 5.5
 [3.3] 言語:C
[4] 期限: 明日の朝
[5] 6月からC始めてちょうどポインタやったとこであまり深い知識
などはぜんぜんありません。よろしくお願いします。
479デフォルトの名無しさん:2006/06/29(木) 23:41:17
わかりにくい文章だべな
480デフォルトの名無しさん:2006/06/29(木) 23:43:34
[1] 授業単元:c入門
[2] 問題文(含コード&リンク):N個(マクロを使って特定の値に設定)の任意の整数の列を入力し、
最大値と最小値を求めるプログラムを作成すること。
ただし、配列を入力し、最大値と最小値を求める関数を作ること。
main()関数の中ですべて行ってはいけない。
[3] 環境
 [3.1] OS:Linux/
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限: 土曜日の12時
[5] void func()
{
}
int main(void)
という形かつポインタ、swapを使うようなのですがよくわからないです。
よろしくお願いします
    
481デフォルトの名無しさん:2006/06/29(木) 23:44:14
>>478
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2215.txt

文章が分かりにくい以前の問題だな
482デフォルトの名無しさん:2006/06/29(木) 23:44:56
>>478
元の配列を書き替えるのか新しく配列を作って写すのか
483デフォルトの名無しさん:2006/06/29(木) 23:49:48
>>480
ポインタとswapをどう有効に使えばいいのか分からん

void minmax(int* array)
{
int i,min,max;
min = max = array[0];
for(i=1;i<N;i++)
{
min = (min > array[i])?array[i]:min;
max = (max < array[i])?array[i]:max;
}
printf("MIN = %d\n",min);
printf("MAX = %d\n",max);
}
484デフォルトの名無しさん:2006/06/29(木) 23:57:01
void minmax(int* array)
{
int i,*min,*max;
min = max = array;
for(i=1;i<N;i++)
{
min = (*min > *(array+i))?array+i:min;
max = (*max < *(array+i))?array+i:max;
}
printf("MIN = %d\n",*min);
printf("MAX = %d\n",*max);
}

無理矢理ポインタを使うとこうかな
ソートしないならswapなんて不要じゃ?
485デフォルトの名無しさん:2006/06/30(金) 00:01:53
配列の中身をソートしろってことじゃないの
486デフォルトの名無しさん:2006/06/30(金) 00:16:10
じゃあこうかいな
void swap(int* i, int* j)
{
int temp = *i;
*i = *j;
*j = temp;
}
int* minmax(int* array)
{
int i,j;
for(i=0;i<N;i++)
{
for(j=i+1;j<N;j++)
{
if(array[i] > array[j])
swap(array+i, array+j);
}
}
printf("MIN = %d\n",array[0]);
printf("MAX = %d\n",array[N-1]);
return array;
}
487デフォルトの名無しさん:2006/06/30(金) 00:54:11
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):
graph.txtにて表現されるグラフに対し、任意の2点間の道を
深さ優先探索により求めるプログラムを作成せよ
・始点はs、木の状態を保存するためにはfather[]配列を用いる
・辺の情報は、隣接行列adjacent[][]として記憶すること。また2次元ポインタとして定義すること

[3] 環境
 [3.1] OS: windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 土曜日の12:00までです
[5] その他の制限: なし
graph.txtは↓です
488487:2006/06/30(金) 00:57:09
graph.txt
8
4 3
4 1
3 2
1 0
1 2
2 5
0 5
0 6
6 7
7 5
0 7
6 5
5 1
2 0
3 0
4 5
//1行目は点の数
//2行目以降は両端の点番号

どなたかよろしくお願い致します。
489デフォルトの名無しさん:2006/06/30(金) 03:24:46
>>432
#include<stdio.h>
#include<stdlib.h>
#include<time.h>

int maxx(int data[],int num)
{
int i,j=0;
for(i=1;i<num;i++){
if(j<data[i]) j=data[i];
}

return j;
}

int main(void)
{
int data[10],i,m,min=20,max=60;

srand((unsigned)time(NULL));
for(i=0;i<10;i++) data[i]=min+(int)(rand()*(max-min+1.0)/(1.0+RAND_MAX));
m=maxx(data,10);
printf("%d",m);

return 0;
}
490デフォルトの名無しさん:2006/06/30(金) 03:33:57
 int i,j=0;
 for(i=1;i<num;i++){
  if(j<data[i]) j=data[i];
 }

data[0]が最大の場合、正しくない


491デフォルトの名無しさん:2006/06/30(金) 03:48:56
パクって適当に改造しときやした
#include<stdio.h>
#include<stdlib.h>
#include<time.h>

int maxx(int data[],int num) {
int i,j=data[0];
for(i=1;i<num;i++){
if(j<data[i]) j=data[i];
} return j; }

int main(void) {
int data[10],i,m;
srand((unsigned)time(NULL));
for(i=0;i<10;i++) {
data[i]=rand()%41+20;
printf("%d ",data[i]); // 配列を表示(不要ならこの行を消すこと)
}
printf("\n");
m=maxx(data,10);
printf("%d",m);
return 0; }
492デフォルトの名無しさん:2006/06/30(金) 03:52:26
>>441
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int asort(const void *i,const void *j)
{
return *(char*)i-*(char*)j;
}

int main(void)
{
char str[256];
int len;

gets(str);
len=(int)strlen(str);
qsort(str,len,sizeof(char),asort);

printf("%s\n",str);
return 0;
}
493デフォルトの名無しさん:2006/06/30(金) 03:54:51
>>490
>>491
ありがと
494デフォルトの名無しさん:2006/06/30(金) 10:26:35
>>480の解答してるやつウザい
495デフォルトの名無しさん:2006/06/30(金) 12:05:41
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):http://wakabadou.ddo.jp/~shioya/cgi-bin/wikif/wiki.cgi?page=%B8%A1%BA%F7%B2%DD%C2%EAC%2B%2B6%2F30
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン:ヴィジュアルスタジオ2003
 [3.3] 言語: C++
[4] 期限: 7/1 12:00
[5] その他の制限: 2分探索を用いる
よろしくお願いします
496デフォルトの名無しさん:2006/06/30(金) 13:35:23
宿題もないし、暇だからフリーソフトでも作るか
497ジャック:2006/06/30(金) 13:59:19
みなさんいろいろ忙しいとは思いますが、本当によろしくお願いします。
私にはまったくりかいできませんでした。

課題:自分で定義した立体図形の透視投影像を描き、これを印刷する。

課題説明
・立体図形は頂点および稜線を定義し、線図形として描く (ワイヤーフレームモデル)。
―頂点の定義
1,(x1,Y1,Z1)
2,(x2,Y2,Z2)

―稜線の定義
稜線1,(1,2)
稜線2,(2,3)

・立体図形は世界座標系の原点の近傍で定義する。
・支店を適当な世界座標(x,Y,Z)に置き、ここから世界座標の原点を見る。
・投影面の始点からの距離Dおよび投影面のサイズSは適当に決める。
・世界座標系による立体のデータを視点座標系に変換し、これを透視投影し投影図を求める。
・隠線処理、ビューボリューム、3次元クリッピングの処理は行わなくてよい。ただし、
 データが画像からはみださないように注意する。ビューポートのサイズを位置は任意に決める。
・プログラムはC言語で作成し、実行する。

課題補足
・対象3次元図形の定義データ(頂点表、稜千表)をプログラム中に埋め込まず、別のファイルからデータとして読み込むようにすること。
・必ず、斉次座標系、行列による座標変換・幾何変換の考え方を使うこと。(ビューイング変換と透視投影変換を行列を使って表現しプログラムすること。
そうしないと一般的なプログラムにならない。)
・座標変換・幾何変換の処理は「関数」としてプログラムする。変換の合成は、それぞれの「変換行列の積」としてプログラムする。
・プログラムは理解しやすいように書く。
(コメントを入れる。変数の定義をわかりやすくするなど)
498デフォルトの名無しさん:2006/06/30(金) 14:14:57
つ【質問テンプレ】
499ななつさん:2006/06/30(金) 14:54:25
日本語の音韻の特徴のひとつである「拍(モーラ)」について、
他言語の音節構造との違いを示しながら説明してほしいんですけど・・

あと、拍(モーラ)という音節構造の成立に大きな影響を及ぼした現象についても
おしえてくださーーい!!!

切羽詰まってます。
誰かお願いします。
500デフォルトの名無しさん:2006/06/30(金) 15:31:39
[1] 授業単元:演習
[2] 問題文(含コード&リンク):2 次方程式ax2+bx+c=0 の解を求めるプログラムを作成しなさい.ただし,プログラムは,main()に加えて次の4関数で構成されるものとします.
・判別式を計算する関数(戻り値なしの型で,参照渡しによって引数を与えること).
・判別式が0 の場合の解を計算する関数(戻り値ありの型で,解はmain()で出力させる.参照渡しによって引数を与えること).
・判別式が正の場合の解を計算する関数(戻り値なしの型で,解はmain()で出力させる.参照渡しによって引数を与えること).
・判別式が負の場合,「解無し」と表示する関数.
<入出力例>
Please input coefficients!
a=2
b=-10
c=12
Solutions of (2.000000)*x^2+(-10.000000)*x+(12.000000) are calculated.
Double solutions
First solution: x=3.0000
Second solution: x=2.0000
Please input coefficients!
a=3
b=18
c=27
Solutions of (3.000000)*x^2+(18.000000)*x+(27.000000) are calculated.
Single solution: x=-3.0000
Please input coefficients!
a=1
b=1
c=9
Solutions of (1.000000)*x^2+(1.000000)*x+(9.000000) are calculated.
No solutions due to negative discriminant value!
[3] 環境 [3.1] OS: linux [3.2] コンパイラ名とバージョン:gcc[3.3] 言語: C
[4] 期限: 7/4  [5] その他の制限:特にありませんよろしくおねがいします
501デフォルトの名無しさん:2006/06/30(金) 16:15:53
>>499
ひょっとして C 言語と比較すればおっけ?
502デフォルトの名無しさん:2006/06/30(金) 16:54:09
>>494
君いつも昼間からいるよね?何してる人?
503デフォルトの名無しさん :2006/06/30(金) 17:09:48
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク): 簡易データベース
   http://briefcase.yahoo.co.jp/gavagava12のa.htmlです
[3] 環境
 [3.1] OS: UNIX
 [3.2] gcc バージョンは分かりません。m(_ _)m
 [3.3] 言語: C
[4] 期限: 2006/7/14 17:00
[5] その他の制限: ないです。。

構造体のメンバー数を可変にするとこと、コマンドを読み込むところで
手詰まってます。
よろしくお願いします。
504デフォルトの名無しさん:2006/06/30(金) 17:38:11
[1] 授業単元:プログラム演習
[2] 問題文(含コード&リンク):
コマンドライン引数にオプションを指定して、-を除いた文字を返す関数を作れという問題です。
例えば、
% ./work.exe -h
と入力するとhと表示したいです。

[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc(バージョンはわかりません)
 [3.3] 言語: C
[4] 期限: 無期限
[5] その他の制限:
ポインタを使った文字列操作の課題です。
main関数:int main(int argc, char **argv);
-を除いた引数を戻す関数:char get_option(char *)
と指定されています。
自分でやってみてもセグメントエラーが出まくって、もうワケわかめです。
どうかお願いします。
505デフォルトの名無しさん:2006/06/30(金) 17:53:29 BE:38820645-#
>>504
#include<stdio.h>
#include<string.h>
char get_option(char* opt){size_t i;
for(i=0;i<strlen(opt);i++)if(opt[i]!='-')return opt[i];return 0;}
int main(int argc,char* argv[]){size_t i;
for(i=1;i<argc;i++)printf("%c\n",get_option(argv[i]));return 0;}
506デフォルトの名無しさん:2006/06/30(金) 17:59:19
[1] 授業単元: プログラミング言語論
[2] 問題文(含コード&リンク):
次のプログラムはfloat型の二点の座標をx座標、y座標を表すメンバーとしてもつ構造体を前提としたものである。
二点を与えてその2点間の距離を求めるプログラムを関数distance()を定義することにより完成させなさい。
# include <stdio.h>
# include <math.h>

typedef struct point {
float x;
float y;
} point_t;

float distance(point_t point1, point_t point2) {
  /* この部分を作成する */
}
int main(void) {
point_t p1, p2;

p1.x = 10; p1.y = 20;
p2.x = 10; p2.y = 30;
printf("%f\n", distance(p1, p2));
}
HINT: sqrt(x) は xの平方根を値として返す関数である。
また、コンパイル時には gcc xx.c –lm –o xx のようにする
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン:コンパイラって何?いつもemacsでソースコードを書いて、「gcc o- プログラム名 プログラム名.c」ってやってコンパイルしています。
 [3.3] 言語: C言語
[4] 期限: もう過ぎてます(出てるの知らなかった)。減点になりますが出さないと単位もらえません。少しでも早いほうが良いです
[5] その他の制限:特になし。 よろしくお願いします。
507デフォルトの名無しさん:2006/06/30(金) 18:03:48
>>505
ありがとうございます!
1つ質問いいですか?
int main(int argc, char *argv[]);

int main(int argc, char **argv);
って同じものですか。
char **argvというのは初めて見る形で、教科書にも載ってないのです・・
508デフォルトの名無しさん:2006/06/30(金) 18:04:13
>>506
return sqrt((point1.x-point2.x)*(point1.x-point2.x)+(point1.y-point2.y)*(point1.y-point2.y));
509デフォルトの名無しさん:2006/06/30(金) 18:05:35
510506:2006/06/30(金) 18:12:11
>>508
ありがとうございますm(_ _)m。早いですね。助かりました。
511デフォルトの名無しさん:2006/06/30(金) 18:35:42
512デフォルトの名無しさん:2006/06/30(金) 19:13:53
ttp://www.geocities.jp/space_2ch/space.html
週末の土日でまた色々と質問が出ると思ったので
プログラムが見やすくなるよう、こんなものを作ってみました。
回答プログラムを貼る時やプログラムの質問をする時など、
ここを介してやっていただけると幸いです。
513デフォルトの名無しさん:2006/06/30(金) 19:19:33
[1] 授業単元: 計算物理
[2] 問題文:速度に比例する抵抗がある場合の落下の式
       d^2y/dt^2=g-rdy/dt
を(i)解析的に(A)2階の差分近似で(B)ルンゲ・クッタ公式
       で解け。ただし、g=9.8 r=0.2〜0.3とおき、初期条件はt=0のとき
       y=0、dy/dt=0とする。

[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:Borland
 [3.3] 言語: C/C++
[4] 期限:7/8

難しいとは思うのですがお願いしますm(_ _)m
514デフォルトの名無しさん:2006/06/30(金) 19:32:05
>>512
ほぉ、ご丁寧に半角スペースをHTMLでも使われるnbspに変換してくれるスクリプトを
ご用意して下さったわけね。ご苦労さま。
      ちとテスト
515デフォルトの名無しさん:2006/06/30(金) 19:46:11
>>512
お、こりゃいいね
プログラムにおいて見やすさって重要だからね
これでちゃんと変換して貼れば無駄なミスが減るだろう

俺はよくTABキー使ってプログラム組んでるんだが
ここに貼った時に文字がくっついちゃって
プログラム自体を手直ししないと使えない、という事態に陥ったからなあ
516デフォルトの名無しさん:2006/06/30(金) 19:47:18
復元はできないの?
517デフォルトの名無しさん:2006/06/30(金) 19:51:25
[1] 授業単元:プログラミング通信
[2] 問題文(含コード&リンク):
かなりの量なので↓にまとめています。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2217.zip
中に入っているquiz.txtと問題文.txtのエンコードは違いますので注意してください。
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C言語
[4] 期限:7月3日12時まで
[5] その他の制限:制限は特にありません。

量が非常に多くて恐縮ですが、よろしくお願いします。
518487:2006/06/30(金) 20:16:21
どなたか>>487をお願い致します
519デフォルトの名無しさん:2006/06/30(金) 21:51:17
:%s/ /\ /g
:%s/ / /g
520519:2006/06/30(金) 21:52:11
orz
521デフォルトの名無しさん:2006/06/30(金) 21:53:36
>>517
サーバは、複数のクライアントの要求を同時に受け付けなきゃいけないの?
それとも、1対1でOK?
522517:2006/06/30(金) 22:06:21
>>521
1対1でOKです。
523デフォルトの名無しさん:2006/06/30(金) 22:09:20
K-1見てたら、1対1でKOです。っと読んでしまった俺ガイル
524デフォルトの名無しさん:2006/06/30(金) 22:28:10
>>517
CPUのアーキテクチャが異なるため、直接添付のLMを実行できないんだけど、
このサーバは終了しても各ユーザの正解数を保持してる?
それとも起動するごとにリセットされる?
525デフォルトの名無しさん:2006/06/30(金) 22:47:00
>>515
使ってる2chブラウザによっては、そのコメントをコピペするとスペースがスペースじゃ
なくなる場合があるから、やらないほうがまし。
526517:2006/06/30(金) 22:52:27
>>524
サーバは起動する毎にリセットされるようです。
よろしくお願いします。
527デフォルトの名無しさん:2006/06/30(金) 22:52:39
誰かのソースをコンパイルする時にnbspとかついてると
取るのに苦労するんだが・・・
528デフォルトの名無しさん:2006/06/30(金) 22:59:26
IEとかでスレを開きなおしてコピペするしかないね
クソ面倒くさいけど
529デフォルトの名無しさん:2006/06/30(金) 23:07:08



自分にレス付けてこうすりゃいいんじゃね?
>>529
530デフォルトの名無しさん:2006/07/01(土) 00:02:12
>>527
:s/&nbsp;/ /g
531デフォルトの名無しさん:2006/07/01(土) 00:13:54
な る ほ ど ね
>>531
532デフォルトの名無しさん:2006/07/01(土) 00:33:01
[1] 授業単元:プログラミング言語C
[2] 問題文(含コード&リンク):ttp://www.uploda.org/uporg430792.pdf
[3] 環境
 [3.1] WindowsXP
 [3.2] gcc
 [3.3] C
[4] 期限:7月3日の早朝まで
[5] その他の制限:特にありませんが、
問題文に明記されている関数を使わなければいけないらしいです。

2問と多いですが、どうか宜しくお願いしますm(_ _)m
533デフォルトの名無しさん:2006/07/01(土) 01:05:47
>>532
1つめ
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2219.c

2つめはちと時間を置いてからうpしまつ
534デフォルトの名無しさん:2006/07/01(土) 01:07:58
535デフォルトの名無しさん:2006/07/01(土) 01:33:49
別の人か?
536デフォルトの名無しさん:2006/07/01(土) 01:35:07
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):以下にうpしました。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2221.txt
[3] 環境
 [3.1] UNIX
 [3.2] gcc
 [3.3] C
[4] 期限:7月3日昼12時まで
[5] その他の制限:(どこまで習っているか、標準ライブラリは使ってはいけない等々)
今年の5月からスタートしたばかりなので今まで習っているところは
基本の四則計算、変数宣言とかの基礎の基礎、floatとかキャスト、if文、
while文、switch文、for文、配列と二次元配列です。
で、今習っているのが関数の最初の部分で関数の初歩の部分が課題になっています。

2問あるのですが自分ではどうしても出来ませんでした。
どなたかご教授頂けると幸いです。
537デフォルトの名無しさん:2006/07/01(土) 01:52:12
>>536
(1)
#include <stdio.h>

void d2b(int n)
{
int i;
for(i=7; i>=0; i--)
printf("%d ",(n>>i)%2);
putchar('\n');
}

int main(int argc, char** argv)
{
int c;
char buf[128];
while(1)
{
printf("2進数に直したい10進数の正の整数を入れてください\n"
"負の数の場合は終了です\n");
scanf("%d",&c);
if(c < 0)
break;
d2b(c);
}
return 0;
}

シフトは駄目かな?
538デフォルトの名無しさん:2006/07/01(土) 02:06:07
>>536
(2)
#include <stdio.h>
#include <math.h>
int isprime(int n)
{
int i=2;
if(n%i == 0)
return 0;
for(i=3; i<=sqrt(n); i+=2)
if(n%i == 0)
return 0;
return 1;
}
int main(int argc, char** argv)
{
int i=2,n=1;
printf("%4d ",i);
for(i=3; i<1000; i+=2)
{
if(isprime(i))
{
printf("%4d ",i);
if(((++n)%10)==0)
putchar('\n');
}
}
return 0;
}

激遅アルゴリズム
539デフォルトの名無しさん:2006/07/01(土) 02:18:04
>>537
ありがとうございます。
えっとシフトというか習っていないものがちらほら…

charとか見たことないんですがどういう意味なのかちょっとぐぐってきます
540デフォルトの名無しさん:2006/07/01(土) 02:25:38
>>539
あちゃー
541デフォルトの名無しさん:2006/07/01(土) 02:34:48
542デフォルトの名無しさん:2006/07/01(土) 02:47:36
543デフォルトの名無しさん:2006/07/01(土) 02:55:53
>>542 自己レス
よくよく考えたら、isprimeの戻り値はflagに0か1を入れんでも
素数でなきゃreturn 1、素数だったらreturn 0でいけたね。
544デフォルトの名無しさん:2006/07/01(土) 02:56:53
つーかよー
>>536が知らない内容を使っても特に問題ないだろ
教えてるほうは知ってるんだから

ぼくがりかいできるはんいでとうあんをつくってください

だと?ふざけろ
545デフォルトの名無しさん:2006/07/01(土) 02:57:40
>>536 2つめ
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2225.c
ちうわけで、他にも余計なものもあったんで削って訂正
546デフォルトの名無しさん:2006/07/01(土) 02:58:57
最近>>544のような馬鹿が増えましたなぁ。
547デフォルトの名無しさん:2006/07/01(土) 03:00:34
>>544
レスするのも任意だから、お前みたいなのは来なくて良いよ
それから、質問者もそうだが、自分の意見の押し付けも無意味だから
548デフォルトの名無しさん:2006/07/01(土) 03:06:02
>>536 1つめも訂正。表示する桁が不十分だった。
なんか集中力が落ちてきたんでオレは今日はこの辺で落ちるっす。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2226.c
549デフォルトの名無しさん:2006/07/01(土) 03:14:13
素数か…
思い出すな、あの頃を…
550デフォルトの名無しさん:2006/07/01(土) 03:18:05
そーっすね(遠い目)
551デフォルトの名無しさん:2006/07/01(土) 03:31:12
昔はよく篩ったもんだ
552デフォルトの名無しさん:2006/07/01(土) 03:41:13
>>548を良く見たら、d2bにしてなかったね・・・だめぽ orz
まぁ、ヒントが出ているだけマシか
553デフォルトの名無しさん:2006/07/01(土) 06:11:28
[1] 授業単元:プログラミング言語C
[2] 問題文(含コード&リンク):

下記URLの最後のスライド14が問題で、
配列並べ替えの問題です。

http://www-it.sci.waseda.ac.jp/ITB1/class3/ITB1-2006-09.slide.pdf

[3] 環境
 [3.1] Linux
 [3.2] gcc
 [3.3] C
[4] 期限:7月6日の早朝まで
[5] その他の制限:
1.スライド12の並べ替えプログラムの要点にそって作らなければなりません。
2.defineを使わなければなりません。

制限が多いのですが、どうか宜しくお願いします。


554デフォルトの名無しさん:2006/07/01(土) 06:31:24
早稲田でそれか・・・ちょっとびっくり。見なかったことにしよう。
555デフォルトの名無しさん:2006/07/01(土) 06:36:48
これはショボイなあ
556デフォルトの名無しさん:2006/07/01(土) 06:40:45
まぁ、単位数の少ない授業の課題だから、問題はない。
説明の仕方もやり方もそれぞれやし。詰まらんところで楽をしていると
その生徒が危ないのではないか?という要らん心配をしてもわしゃ困らんから良いのだが。
557デフォルトの名無しさん:2006/07/01(土) 11:15:56
[1] 授業単元: 情報処理U(C言語プログラミング)

[2] 問題文(含コード&リンク)
・三次元座標空間内で、(x,y,z)=(0,0,0),(1,0,0),(0,1,0),(0,0,1)の
四点を頂点とする角錐の体積を計算してください。
角錐の内部と外部の境界は、x+y+zです。角錐の内部であるための条件はx+y+z≦1

・モンテカルロシミュレーションによって値を予測します。x,y,zをそれぞれ
0から1までの乱数とすると、3次元空間内の点(x,y,z)は(0,0,0),(0,1,0),(1,1,0),(1,0,0)
(0,0,1),(0,1,1),(1,1,1),(1,0,1)を頂点とする立方体の内部を「均等に」分布します。
角錐内の点の数/点の全数=角錐の体積/立方体の体積

・体積は1/6になるはずですが、どれだけ近づきますか。

[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C

[4] 期限:2006年7月1日23:59まで

[5] その他の制限: 以前授業で作った円周率を求めるモンテカルロシミュレーションの
プログラム↓を修正して作成してください
558デフォルトの名無しさん:2006/07/01(土) 11:18:57
/* program: mcpi.c, モンテカルロ法による円周率の評価 */
#include <stdio.h>
#define LAMBDA 843314861L
#define RANCONST 453816693L
#define RANDOM_INIT_VALUE 198313L
#define RAN2_32 4294967296.0
#define LOOPCOUNT 10000
#define LOOPSTEP 1000
main()
{
int i, CircleCount=0;
float x, y, random(void);
for (i=1; i<=LOOPCOUNT; i++) {
x = random(); y = random();
if (x*x + y*y <= 1.0)
CircleCount++;
if (i % LOOPSTEP == 0)
printf("%7d times pi=%f\n",i, 4.0*CircleCount/(float)i);
}
}
float random(void)
{
static unsigned long x = RANDOM_INIT_VALUE;
x = LAMBDA*x + RANCONST;
return (float)x / RAN2_32;
}

経済学部の選択必修の課題なんですが数学苦手なんで意味わかりません。
ボスケテ(;´д⊂)
559デフォルトの名無しさん:2006/07/01(土) 11:20:58
経済学部なのにプログラミングやるの?
560デフォルトの名無しさん:2006/07/01(土) 11:38:29
>>557
#include <stdio.h>
#define LAMBDA 843314861L
#define RANCONST 453816693L
#define RANDOM_INIT_VALUE 198313L
#define RAN2_32 4294967296.0
#define LOOPCOUNT 100000
#define LOOPSTEP 10000
int main(){
int i, CircleCount=0;
float x, y, z, random(void);
for (i = 1; i <= LOOPCOUNT; i++) {
x = random(); y = random(); z = random();
if (x + y + z <= 1.0)CircleCount++;
if (i % LOOPSTEP == 0)printf("%7d times V=%f\n", i, CircleCount / (float)i);
}
return 0;
}

float random(){
static unsigned long x = RANDOM_INIT_VALUE;
x = LAMBDA * x + RANCONST;
return (float)x / RAN2_32;
}
561デフォルトの名無しさん:2006/07/01(土) 11:53:29
プログラムなんて今どき小学生でもやってるべ
562487:2006/07/01(土) 12:07:33
>>487をお願いできませんか・・・?
563デフォルトの名無しさん:2006/07/01(土) 12:09:49
土曜日の12:00までならもう無理じゃん
564536:2006/07/01(土) 12:42:30
皆さんどうもありがとうございました。
565デフォルトの名無しさん:2006/07/01(土) 13:45:36
>>554-555
最近こういう馬鹿が増えましたなぁ。
566デフォルトの名無しさん:2006/07/01(土) 13:49:01
>>565
最近こういう馬鹿が増えましたなぁ。
567デフォルトの名無しさん:2006/07/01(土) 13:51:53
>>565
これは酷いw
568デフォルトの名無しさん:2006/07/01(土) 13:53:46
ヒント:
554 -> 555:5分
566 -> 567:3分
569デフォルトの名無しさん:2006/07/01(土) 13:57:17
ヒント:学歴コンプレックス
570デフォルトの名無しさん:2006/07/01(土) 13:58:40
ヒント:swapの説明
571デフォルトの名無しさん:2006/07/01(土) 14:03:22
次からテンプレ入れたほうがいいんじゃね?
「高偏差値な学校の方は、学校名を隠して質問してください。
 回答者の反感を買うおそれがあります」
572デフォルトの名無しさん:2006/07/01(土) 14:04:16
毎年変わるもんでもない内容だから、一度ネタが出ると
次の年からは同じものを出せばバレバレだよ
573487:2006/07/01(土) 14:04:18
>>563
>>487には12:00までとありますが、今日中であればセーフなので、
どうかどなたかお願いいたします・・・
574デフォルトの名無しさん:2006/07/01(土) 14:10:34
C言語/C++言語の宿題を片付けます 65代目
http://pc8.2ch.net/test/read.cgi/tech/1147902222/
っつか、前スれで .ac ドメインで抽出してみ。
まぁ、ある程度ネタが揃ったら、その問題の答えを丸々貼り付ければ良い
学校を超えて全世界から答えがいただけるありがたいスレ、それがここさ
575デフォルトの名無しさん:2006/07/01(土) 14:17:21
>>535 同人です。って言ったらヲタクみたいになっちまったじゃねーかよこの野郎!
576デフォルトの名無しさん:2006/07/01(土) 14:48:06
>>487
2次元ポインタって何?
577487:2006/07/01(土) 14:59:09
>>576
adjacent[][]は
int **adjacent
と定義するらしいです。
578578:2006/07/01(土) 15:25:04
説明になってないだろと思いつつ487を見てきた。
487が2次元ポインタをわかってないじゃないかw
579578:2006/07/01(土) 15:26:31
スマソ。スルーしてくれ
580デフォルトの名無しさん:2006/07/01(土) 16:54:12
>>517
後半やる気が失せたのでバグがあるかもしれん。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2227.txt
581580:2006/07/01(土) 17:00:50
おおっと。
sscanfで"n = "が抜けてるところがあるから補ってくれ。
582デフォルトの名無しさん:2006/07/01(土) 17:06:39
[1] 授業単元: 自主学習
[2] 問題文(含コード&リンク): ttp://www.pref.fukushima.jp/pc-concours/common/2005yosen.pdf  の問題01
[3] 環境
 [3.1] OS: (WindowsXP
 [3.2] コンパイラ名とバージョン: BCC5,5
 [3.3] 言語: c++
[4] 期限:無期限
[5] その他の制限: c++を本格的に学び始めたのは今日から

お願いします。
583デフォルトの名無しさん:2006/07/01(土) 17:13:54
なんか面白いものがないもんですかね
584デフォルトの名無しさん:2006/07/01(土) 17:15:01
自主学習って何だよ?
585デフォルトの名無しさん:2006/07/01(土) 17:15:22
>>583
んじゃ指定した年月のカレンダーを表示するプログラムを作って。
デフォで固定されている祝日も表示されるとなお良い。
586デフォルトの名無しさん:2006/07/01(土) 17:30:08
つまらん
お前の話はつまらん
587デフォルトの名無しさん:2006/07/01(土) 17:31:30
おもしろい
お前の話はおもしろい
588デフォルトの名無しさん:2006/07/01(土) 17:36:55
>>583
>>582の問題18とかどうよ。
589デフォルトの名無しさん:2006/07/01(土) 17:39:58
>>583は自分が解ける問題=面白い、解けない問題=つまらない
ってことだから、レベルの低いこいつにとってはその問題ですらつまらない
チャレンジして解ける見込みのある奴は面白いかもしれんが
ありきたりのプログラムを作っても飽きてくるでしょう
590デフォルトの名無しさん:2006/07/01(土) 17:40:17
>>575-576
この流れにワロタ
591デフォルトの名無しさん:2006/07/01(土) 17:47:17
>>589
こいつ同じようなことばっか繰り返してるよな
592デフォルトの名無しさん:2006/07/01(土) 17:47:43
うーん、答えがわかっちゃうと後は作業なんだよなぁ。
593デフォルトの名無しさん:2006/07/01(土) 17:47:58
[1] 授業単元:ヒューマンインタフェース
[2] 問題文:自分で定義した立体図形の透視投影像を描き、これを印刷する。
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 7月4日
[5] その他の制限: 特にありませんがよろしくお願いします。

問題文が長かったので↓のところに貼り付けておきました。
めちゃめちゃムズくて出来ませんでした。よろしくお願いしますm(__)m
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.cgi?mode=thr&no=2124
ここのNo.2228の問題です。
めちゃめちゃムズくて出来ませんでした。
594デフォルトの名無しさん:2006/07/01(土) 17:49:21
de ja vu?
595デフォルトの名無しさん:2006/07/01(土) 17:51:55
>>591
こいつ同じようなことばっか繰り返してるよな
596デフォルトの名無しさん:2006/07/01(土) 17:52:46
粘着
597デフォルトの名無しさん:2006/07/01(土) 17:53:41
自分が気に入らない奴にとことん噛み付く厨房うぜぇ
くだらねぇボヤキしているくらいならソース書いて出せやボケ
598デフォルトの名無しさん:2006/07/01(土) 17:56:15
>>592
決まりきったアルゴリズム系とか数学的知識が絡むやつとか、
標準ライブラリ関数の再発明系とかな。
で、>>517のようなのをやってはみるのだが、途中で飽きちゃったりw
適度に面白みがあって、一時間以内で終わるものが俺の理想。
599デフォルトの名無しさん:2006/07/01(土) 18:01:36
>>598
ええ、そういうことです。まったくもって。
600デフォルトの名無しさん:2006/07/01(土) 18:05:56
>>599
まだやっているよ、この粘着厨房。
601デフォルトの名無しさん:2006/07/01(土) 18:12:32
>>600
お前が一番の粘着なんだが
602デフォルトの名無しさん:2006/07/01(土) 18:13:43
>>601
そうやっていちいち自分が気に食わない奴に噛み付いてくる
お前が一番の粘着なんだが?
いい加減うざい、能力が低い奴が自分より下の奴を見て取る態度だな。
お前はろくな学校に通ってなかった20代前半のガキだな
603デフォルトの名無しさん:2006/07/01(土) 18:15:59
>>602
Q.E.D.
604デフォルトの名無しさん:2006/07/01(土) 18:16:45
>>603
そうやって何かとレスしないと気が済まないんだよなw
いつまでもやってろ、カス
605デフォルトの名無しさん:2006/07/01(土) 18:17:13
ほっとけないスッドレ
606デフォルトの名無しさん:2006/07/01(土) 18:17:48
>>604
Q.E.D.
607デフォルトの名無しさん:2006/07/01(土) 18:21:17
>>604
まだやっているよ、この粘着厨房。
608デフォルトの名無しさん:2006/07/01(土) 18:23:44
自分を含めて、誰もが一番最後にレスをしないと気が済まない方々なのでした。
609デフォルトの名無しさん:2006/07/01(土) 18:31:06
また、いつもの彼ですか
610デフォルトの名無しさん:2006/07/01(土) 18:33:38
よっぽど自分が低学歴でバカだと気づかされたのが悔しかったようですね
そういう余裕のない奴って、態度ですぐにバレるから笑えるw
611デフォルトの名無しさん:2006/07/01(土) 18:35:24
>>610
まだやっているよ、この粘着厨房。
612デフォルトの名無しさん:2006/07/01(土) 18:38:43
>>611
低学歴が釣れましたwwwwwwwww
いつまでもやってろ、粘着はお前。オレは誰にも噛みついてないしwww
垂らした釣り針が厨房に噛みつかれて困ってるよぉ〜〜〜wwww
613デフォルトの名無しさん:2006/07/01(土) 18:39:04
ここは釣りスレなの?
614デフォルトの名無しさん:2006/07/01(土) 18:39:32
お気に入りの宿題がでない間は釣り・煽りスレです
615デフォルトの名無しさん:2006/07/01(土) 18:39:44
そっか
616デフォルトの名無しさん:2006/07/01(土) 18:40:17
617デフォルトの名無しさん:2006/07/01(土) 18:40:42
>>612
まだやっているよ、この粘着厨房。
618デフォルトの名無しさん:2006/07/01(土) 18:43:25
また、いつもの彼ですか
619デフォルトの名無しさん:2006/07/01(土) 18:45:14
彼はよくこんなことをするの?
620デフォルトの名無しさん:2006/07/01(土) 19:04:54
cのみでワイヤーフレームってできるの
621デフォルトの名無しさん:2006/07/01(土) 19:43:33
可能か不可能かで言えば可能じゃない?
622517:2006/07/01(土) 20:59:23
>>580
こんなに早くありがとうございます!!
ただ、すぐには動作確認できませんので、月曜に改めて報告させていただきます。
本当にありがとうございました!
623デフォルトの名無しさん:2006/07/01(土) 21:30:37
   λ,,,,,,λ ガオー!
  ∩`iWi´∩ λ,,,,λ グオー!
  ヽ |m| .ノ∩`iWi´∩
   |  ̄| ヽ |m| .ノ
   |   | |  |
   U⌒U  U⌒U
624デフォルトの名無しさん:2006/07/01(土) 22:37:15
(((( ;゚Д゚)))ガクガクブルブル
625デフォルトの名無しさん:2006/07/01(土) 23:07:35
誰か>>553に答えてやってよ
626557:2006/07/01(土) 23:46:53
>>560
遅レスですが、ありがとうございました!
マジ助かりました( ´∀`)
627デフォルトの名無しさん:2006/07/01(土) 23:47:02
>>553
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2229.txt
コードにコメントが必要なら、自分で書くように。
#俺も暇だよな
628627:2006/07/01(土) 23:49:26
なんかSTEPとか書いてる部分があるのでSIZEに変更してくれ。
#コンパイルしてないのがバレバレ
629デフォルトの名無しさん:2006/07/02(日) 00:37:48
630487:2006/07/02(日) 01:12:57
月曜日まででかまいませんので
どなたか>>487を・・・
631デフォルトの名無しさん:2006/07/02(日) 01:17:17
>>553
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2230.txt

頑ななまでにfor文を使わないっつー男らしさに惚れた
あとパワポには心の底から笑わせてもらった
632デフォルトの名無しさん:2006/07/02(日) 01:17:48
パワポじゃなくてPDFだった
633デフォルトの名無しさん:2006/07/02(日) 01:25:49
>>631
えっと、OSはLinuxなんですが・・・
634デフォルトの名無しさん:2006/07/02(日) 01:36:16
>>630
このスレの中の人は

出題者がテンプレに従ってないとやらない人が9割
数百行を超えそうな(GUIとか)ものはめんどくさいのでやらない人が8割
知的欲求を刺激されるものだけを解く人が7割
数学的な知識を要するものは解けない人が6割
解けないけどやれるだけやって貼る人が1割
貼られた解答に難癖をつけるだけの奴が数名

なのでこんだけ長い期間放置されてるなら今後も放置されるよ
635デフォルトの名無しさん:2006/07/02(日) 01:38:17
>>634
そういう解説をしたがる奴が1名

ってのが抜けてるぞ、おいw
636487:2006/07/02(日) 02:12:33
>>634
そうですか・・・
グラフの知識?とめんどくささが駄目なんですかね・・・
637デフォルトの名無しさん:2006/07/02(日) 02:16:34
いやいや、ありがちなアルゴリズムだから興味がわかないんだよ、きっと。
知的欲求が満たされないってやつ。
638デフォルトの名無しさん:2006/07/02(日) 02:22:30
日本語でアルゴリズムの説明をしてくれるなら、コードに落としてもいいよ。
639デフォルトの名無しさん:2006/07/02(日) 04:14:04
>>186
>>190
期日過ぎてても一応提出はできるんでお願いします
640デフォルトの名無しさん:2006/07/02(日) 04:16:41
641デフォルトの名無しさん:2006/07/02(日) 04:25:07
>>487
ダイクストラ法使った幅優先探索だったら最短経路が求まるのにな。
深さ優先探索だったら
グラフの頂点数をn としたら、最長 n までの経路を求めればいいんだから
・スタート地点からとりあえず n 歩進んでみる。
・途中に目的地がなかったらバックトラックする。
でいいんじゃないの?
一歩進む関数を作って再帰にして上の手続きができるようにすればいいと思うけど。
642デフォルトの名無しさん:2006/07/02(日) 04:56:23
>>640
そのページじゃ何も知らない人には無理ですよ・・・。
本屋に行って、Cのサンプル付のアルゴリズム本買ってきて、そのまま
丸写ししたほうが早いんじゃ・・・。
643デフォルトの名無しさん:2006/07/02(日) 05:03:46
多分この本にのってるよ。
ttp://www.cmagazine.jp/books/assyuku/
このページからサンプルプログラムがダウンロードできるんだけど、
元々のアルゴリズムがわからないから、目的のコードなのかどうか判断できない。
644デフォルトの名無しさん:2006/07/02(日) 05:07:21
645デフォルトの名無しさん:2006/07/02(日) 05:11:48
>>644
それ、
>この仕様は、LZ77 アルゴリズムとハフマン符号化を組み合わせた圧縮データの可逆圧縮データフォーマットを定義するもので、
だよ?
646デフォルトの名無しさん:2006/07/02(日) 05:18:25
>>644
まさか君、>>190じゃないだろうね?
そんな態度じゃ誰も解答しないと思うよ。
647デフォルトの名無しさん:2006/07/02(日) 05:23:25
グダグダ言ってるくらいならソースを出せ、この週末厨めが
648デフォルトの名無しさん:2006/07/02(日) 08:54:56
http://fhgi.2-d.jp/2-3.c.txt

【質問テンプレ】
[1] 授業単元:本による独学
[2] 問題文(含コード&リンク): http://fhgi.2-d.jp/2-3.c.txt
[4] 期限: 無期限

計算機科学の基礎的な質問かもしれませんがこのプログラム実行させると
『0-01111110-10000000000000000000000』といった出力を得られます
何故こうなるのかが分からないです

if (l%2 == 1) の1行に全てが詰まっているはずなのですが、
l(小文字のL)はを2で割っていくと余りは全て0になる気がするのですが

あとmemcpy()関数でなぜ型の違う値を代入しているのですか?
unsigned longの符号無し整数型にfloatの符号有り浮動小数点型を代入してるのが意味不明です


649デフォルトの名無しさん:2006/07/02(日) 09:37:28
人間が肉食動物に喰われてる写真とか、平気?
目が完全に逝っちゃってますが・・・。
http://up.mugitya.com/img/Lv.1_up42411.jpg

650その1 ◆f0jFPqgkWg :2006/07/02(日) 09:37:54
[1] 授業単元: プログラミング演習
[2] 問題文:SQLもどきのコマンドを介して、データの追加・読込・削除等を行うことが出来る簡易データベースシステムをCプログラムにより作成する。
通常のデータベースでは、データはファイルに格納され、適宜メモリ上にロードして読み書き等が成されるが、
本課題では、メモリ上で構造体及びポインタによってテーブルを作成し、これに対してデータの追加・読込・削除等を行う。
[3] 環境
 [3.1] OS: UNIX
 [3.2] コンパイラ名とバージョン: cc か gcc
 [3.3] 言語: C
[4] 期限: 2006年7月7日19:00まで
[5] その他の制限:
・各テーブルは、1つの テーブル定義レコード と0個以上の テーブル値レコード により、構成される。
・テーブル定義レコードは、テーブル名(文字列)、複数のフィールド名(文字列)、先頭のテーブル値レコードへのポインタから成る構造体であり、表の形式を規定するタイトル行に相当する。先頭のテーブル値レコードが存在しない場合は、ポインタはNULLとなる。
・テーブル値レコードは、各フィールドに対する値(文字列)と、次のテーブル値レコードへのポインタから成る構造体であり、表の各データ行に相当する。
・テーブル定義レコードも、テーブル値レコードも、必要に応じて動的にメモリ領域を確保し、不要になったら解放するものとする。

[必須基本機能]
・プログラム起動後はプロンプトが表示され、下記に示す必須コマンドを実行できること。
・フィールド名やフィールド値で扱う文字列は英数字に限定してよい。
651その2 ◆f0jFPqgkWg :2006/07/02(日) 09:39:04
[必須コマンド]
「create」…新たなテーブルを作成する。
  % create table テーブル名 (フィールド名1,フィールド名2,‥,フィールド名n)
  また、既存の2つのテーブル(tab1,tab2)から新たなテーブル(tab3)を作成することも出来るものとする。
  % create table テーブル名3 (tab1.フィールド名A = tab2.フィールド名B,tab●.フィールド名C,tab●.フィールド名D,‥)
  ここで、tab●.フィールド名○は、テーブル「tab●」のフィールド名「○」を示す。
  tab1.フィールド名A と tab2.フィールド名Bは両テーブルを関連付ける共通のフィールド名とし、tab3における主キーとなる。
「drop」…テーブルを削除する。
  %drop table テーブル名
「insert」…既存のテーブルに対して、テーブル値レコードを追加する。
  追加する場所は任意で構わない。
  なお、フィールド値1は主キーなので、重複追加はできない。
  % insert テーブル名 values (フィールド値1,フィールド値2,‥,フィールド値n)
「update」…テーブル値レコードを更新する。
  where以下の条件を満たすレコードについて、フィールド名A、フィールド名B、‥の値を更新する。
  % update テーブル名 set フィールド名A = フィールド値A,フィールド名B = フィールド値B, ‥ where フィールド名X = フィールド値X
「delete」…既存のテーブルから、テーブル値レコードを削除する。
  % delete from テーブル名 where フィールド名 = フィールド値
  この場合、「テーブル名」において「フィールド名」が「フィールド値」であるレコードが削除される。where以下を省略した場合には、全レコードを削除する。
652その3 ◆f0jFPqgkWg :2006/07/02(日) 09:39:41
「select」…テーブルデータを表示する。
  % select フィールド名A,フィールド名B,‥ from テーブル名 where フィールド名X = フィールド値X
  この場合、「テーブル名」において「フィールド名X」が「フィールド値」である全レコードのフィールド名A、フィールド名B、‥の一覧が表示される。
  where以下を省略した場合には、「テーブル名」における全てのレコードが表示対象となる。
  また、最終レコードの後に、表示レコード総数を表示するものとする。
  また、フィールド名Xを「*」とした場合には、全フィールドが全て表示されるものとする。
  % select * from テーブル名 where フィールド名X = フィールド値X
「sort」…指定したフィールド名について、レコードの並び替えを行う。並び替えは辞書順とし、ASCの場合は昇順、DSCの場合は降順とする。
  % sort テーブル名 by フィールド名 ASC
「d」…存在する全てのテーブル情報を表示する。
「h」…実装したコマンド、関数、諸機能の使い方が簡潔に表示される。
「q」…プログラムを終了する。

期間がが短くて、すぐ出来るようなプログラムではないですが、出来たところだけでも早めにUPして貰えると大変助かります。
653デフォルトの名無しさん:2006/07/02(日) 09:56:01
>>648
丸投げ以外は他所へどうぞ。
memcpy()は代入ではなく、ビットパターンのコピーを行なっている。
654デフォルトの名無しさん:2006/07/02(日) 10:16:57
[1] 授業単元: 理論演習
[2] 問題文:以下のプログラムについて、各自気になる点を指摘せよ
#include <stdio.h>
void process1(char *p);void process2(char *p);
int main(void){
char str[80];int i;
do {printf("MENU:\n1.Input characters by means of gets(), output themby means of putchar().");
printf("\n2.Input characters by means of getchar(), output themby means of puts().");
printf("\nPlease choose 1 or 2:");
scanf("%d%*c", &i);
switch (i) {
case 1:process1(str);break;
case 2: process2(str);break;
default:printf("Try again!\n");}
} while (i!=1 && i!=2);
return 0;}
void process1(char *p)
{int i=0;printf("Please input characters:");
gets(p);printf("You inputted the following:");
while (*p) { putchar(*p++);i++;}
printf("\nThe reversed characters is as follows:");
for ( ; i>=0; i--) putchar(*p--);
printf("\n");}
void process2(char *p){int i=0;
printf("Please input characters:");
do { *p++=getchar();i++;} while (*(p-1)!='\n');
*(p-1)='\0'; printf("You inputted the following:"); puts(p-i);
}

 [3.1] OS: linux[3.2] コンパイラ名とバージョン: cc か gcc [3.3] 言語: C [4] 期限: 2006年7/5[5] その他の制限:自分では気になる点がわかりません、指摘お願いします
655デフォルトの名無しさん:2006/07/02(日) 11:20:58
>>654
ざっと見た感じ。
・getsはオーバーフローの危険性から、使うな。
・ポインタの演算のしかたが気持ち悪い。PBase[pos]の形の方が個人的には好きだな。
・関数名をもうちょっとひねってくれ。
・個人的な趣味だが、whileではなくforで何とかなるところがそれなりにある。
656487:2006/07/02(日) 11:24:18
>>487の深さ優先探索(スタック)は

(1)グラフから点を1つ選択し、始点とする
 「探索済」ラベルをつける。連結成分数を1とする
(2)最も新しく「探索済」になった点を端点とする辺を選ぶ
(同様の辺がある場合は番号の小さい順)
(2-1)未探索の辺が存在する場合
 その中から1つ辺を選択⇒「探索済」とする
 もう一方の端点にラベルがついていなければ点に「探索済」ラベルをつける
(2-2)未探索の辺がない場合
 (2-2-1)ラベルの付いていない点が存在⇒その中から1つ選択
 ⇒「探索済」ラベルを付ける⇒連結成分数を「+1」
 (2-2-2)ラベルの付いていない点が無い⇒終了
(3)(2)を繰り返す
とのことらしいです。
657654:2006/07/02(日) 12:56:02
655さんありがとうございます
もしよかったら具体的にプログラム化してもらえませんか・・・?
658デフォルトの名無しさん:2006/07/02(日) 13:18:50
>>650
宿題だから、おもいっきり仕様を簡略化して、
・テーブル名は最大15文字
・フィールド名は最大15文字
・ひとつのテーブルの最大フィールド数は16個
・ひとつのフィールドの最大データ長は31文字
とかの制限を勝手に付けてもいいの?

# ちなみに、これ、作ります宣言じゃないから。
659デフォルトの名無しさん:2006/07/02(日) 14:07:08
>>646
違います
どうかお願いします
660658:2006/07/02(日) 15:07:35
>>650
* create table
* insert
* select
のみ実装。
最後のコメントから24時間以上音沙汰が無い場合は、飽きてしまった確率が高いので。。。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2231.txt
661デフォルトの名無しさん:2006/07/02(日) 16:03:04
>653?
662デフォルトの名無しさん:2006/07/02(日) 16:13:40
[1] 授業単元:情報処理講義
[2] 問題文:微少区間の面積は
dS = ( f(x(i)) + f(x(i+1)) ) dx / 2
であるので、積分区間[a,b]での積分値は、この区間を n 等分し、x(0) = a,
x(n) = b として、微少区間毎に区分積分を行うことにすれば、
S = ( (f(a)+f(b))/2 + f(x(1)) + f(x(2)) + ... + f(x(n-1)) ) dx
となる。

ex.3 f(x) = 1.0/(1.0+x*x) について、区間[0,1]の積分値を求めよ。
プログラム名:daikei.c
次回までに作成し、解が求まることを確認すること。
正解は 0.785398163 (pi/4)
[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン:cc
 [3.3] 言語:C
[4] 期限:2006年7月4日まで
[5] その他の制限:とくになし

よろしくおねがいします
663デフォルトの名無しさん:2006/07/02(日) 16:34:39
daikei.cはプログラム名じゃなくてソースコードのファイル名なんじゃないかと思うが
664662:2006/07/02(日) 16:38:37
>>663そうです。僕らがプログラムを保存するときのファイル名ですから、プログラムの中身には関係ありません
665デフォルトの名無しさん:2006/07/02(日) 16:40:39
>>661
スレ違い。
666デフォルトの名無しさん:2006/07/02(日) 16:50:54
>>662

#include <stdio.h>
#define STEP (0.000000001)
int main(){
double x;
double result=0.0;
for(x=0.0; x<1.0; x+=STEP){
result+=1.0/(1.0+x*x);
}
result/=1.0/STEP;
printf("%.9f", result);
return 0;
}

精度の問題で実行結果は 0.785398167 になる。
667デフォルトの名無しさん:2006/07/02(日) 16:52:54
正解に9桁の精度を要求してるのがちょっときついな。
668・∀・)っ-○◎● ◆toBASh.... :2006/07/02(日) 16:55:42
ループに小数を使うのはかなり違和感が
669666:2006/07/02(日) 16:57:29
俺もかなり違和感。だけど数学の定義にそってやるのがなるべく題意にそった答なんじゃないかと。

ってか俺悪魔の数字じゃね!?
670デフォルトの名無しさん:2006/07/02(日) 17:13:48
【質問テンプレ】
[1] 授業単元: オペレーティングシステム
[2] 問題文(含コード&リンク):
httpプロキシ(http_proxy)を作成せよ
・forkにより子プロセスを生成することでリクエストの並行処理をサポートすること
[3] 環境
 [3.1] OS: windowsXP,cygwin
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語:C言語
[4] 期限: ([2006年07月16日23:59まで]
[5] その他の制限: ファイル入出力、プロセス制御、パイプ生成に
関してはシステムコールを用いること。
671デフォルトの名無しさん:2006/07/02(日) 18:03:02
>>666
(f(a)+f(b))/2 を引かないとだめだよ。
forの条件も x<=1.0 でないと。
672デフォルトの名無しさん:2006/07/02(日) 18:04:06
[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク):

http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2233.txt
[3] 環境
 [3.1] OS: windows
 [3.2] コンパイラ名とバージョン:borland
 [3.3] 言語:C言語
[4] 期限: 明日
[5] その他の制限: 特にありません。よろしくお願いします。


673662:2006/07/02(日) 18:10:20
>>666コンパイルはできたようですが実行しても何も表示されません。
+xやresult+やresult/や%.9fという表記は自分の授業ではやらないので、そこをどう変えたらいいのですか。
%.9fを%lfにするのはわかりますが・・・
674デフォルトの名無しさん:2006/07/02(日) 18:21:52
[1] 授業単元: プログラミング言語
[2] 問題文:迷路の経路探索

1 迷路の形状を示すデータファイル名を引数とします.
2 迷路のサイズは10×10の固定とし,壁を1,通路を0,スタートを8,ゴールを9で与えます.
3 迷路の形状と経路が視覚的に分かるような出力をしなさい.

実行例
$ ./a.out maze.txt
**********
*G+++* * *
****+* *
* *++*** *
* *+** *
* ++* ***
**+** * *
* ++* * **
* *+++++S*
**********

データ ファイル: maze.txt
1 1 1 1 1 1 1 1 1 1
1 9 0 0 0 1 0 1 0 1
1 1 1 1 0 1 0 0 0 1
1 0 1 0 0 1 1 1 0 1
1 0 1 0 1 1 0 0 0 1
1 0 0 0 1 0 0 1 1 1
1 1 0 1 1 0 1 0 0 1
1 0 0 0 1 0 1 0 1 1
1 0 1 0 0 0 0 0 8 1
1 1 1 1 1 1 1 1 1 1
675674:2006/07/02(日) 18:23:44
ヒント
迷路は2次元配列にすると簡単.
経路の情報を双方向リンクで記述すると探索しやすくなります.

struct r_tag {
int x ; /* x座標 */
int y ; /* y座標 */
/* 方向とか... */
struct r_tag preg ; /* 一歩前 */
struct r_tag next ; /* 一歩先 */
} route ;

3] 環境
 [3.1] OS: Mac OS X
 [3.2] コンパイラ名とバージョン: gcc 3.3
 [3.3] 言語: C
[4] 期限: 7月4日
[5] その他の制限:ありません。

よろしくお願いします。
676ぴょん♂:2006/07/02(日) 18:26:24 BE:350310555-
どしたら いいびょん!?
エラ〜内容:
mapfile.hpp: In constructor `MapFile::MapFile()':
mapfile.hpp:28: error: expected identifier before '{' token
mapfile.hpp:28: error: expected `(' before '{' token
ソ〜ス:
class MapFile {
public:
MapFile(void) :
data(NULL),
#ifdef HAVE_MMAP
mmap_fd(-1)
#elif defined(_WIN32)
hFile(0), hFileMap(0)
#endif
{ }
~MapFile();
bool open(const char *file_name, unsigned long file_size);
inline gchar *begin(void) { return data; }
private:
char *data;
unsigned long size;
#ifdef HAVE_MMAP
int mmap_fd;
#elif defined(_WIN32)
HANDLE hFile;
HANDLE hFileMap;
#endif
};
677デフォルトの名無しさん:2006/07/02(日) 18:58:11
>>674
ゴールまでの道順も表示しろってことかな?
678デフォルトの名無しさん:2006/07/02(日) 19:00:09
>>186
やってみた。
乱数列は自分で作ってくれ。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2234.c
679デフォルトの名無しさん:2006/07/02(日) 21:02:31
>>670
プロキシサーバの機能は?
680674:2006/07/02(日) 21:04:37
>>677
はい。
スタートからゴールまでの道順を表示です。
681650 ◆f0jFPqgkWg :2006/07/02(日) 21:24:36
>>658さん、さっそく取り組んで貰えてありがとうございます。

>・テーブル名は最大15文字
>・フィールド名は最大15文字
>・ひとつのテーブルの最大フィールド数は16個
>・ひとつのフィールドの最大データ長は31文字

このくらいの制限であれば何の問題もないです。
682670:2006/07/02(日) 22:09:14
>>679
特に指定がないので最小限でよいと思います。
683デフォルトの名無しさん:2006/07/02(日) 22:37:17
>>682
最小限の機能とは、具体的に何と何?
684デフォルトの名無しさん:2006/07/02(日) 22:44:52
>>676
氏ねばいいと思うよ
685デフォルトの名無しさん :2006/07/02(日) 22:52:10
>>681

結構見てる人いたりするから、プログラムかぶって
落とされるっていうのは気をつけた方が良いと思うよ^^
686デフォルトの名無しさん:2006/07/02(日) 22:58:38
むしろ問題作ってるセンセがこのスレまで出張してきてお勉強教えてるなんてこともあるみたいだからねw
687662:2006/07/02(日) 22:59:19
>>686アッーーーーーーーーーー!!
688デフォルトの名無しさん:2006/07/02(日) 23:00:38
>>686
俺はTAやってるけど、俺が受け持ってる講義の問題なんて一つも見たことない。
689デフォルトの名無しさん:2006/07/02(日) 23:02:43
[1] 授業単元:言語論
[2] 問題文(含コード&リンク):
整数の数字の合計を計算するプログラムを書きなさい。
例えば2155の数字の合計は2+1+5+5で13です。
つまり2155とタイプしたとき13と出てくるプログラムであればよろしい。
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
 [3.3] 言語: C
[4] 期限: 火曜日

よろしくお願いします。
690デフォルトの名無しさん:2006/07/02(日) 23:08:09
全角はメンドイなぁ〜
691デフォルトの名無しさん:2006/07/02(日) 23:09:03
>>690
氏ね
692デフォルトの名無しさん:2006/07/02(日) 23:09:06
2155はめんどうだな。2155なら楽なのに
693689:2006/07/02(日) 23:10:08
半角です、すみません。
694デフォルトの名無しさん:2006/07/02(日) 23:10:09
Linuxってことは文字コードはEUCか
695・∀・)っ-○◎● ◆toBASh.... :2006/07/02(日) 23:11:45
それはアプリによるんじゃね?
696デフォルトの名無しさん:2006/07/02(日) 23:14:22
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):
浮動小数の計算ができる、ある種の電卓をつくる.電卓に与える指示は常に2つのパラメータからなり,
数 命令
という形式で与える.命令の種類は以下の通りである.
* S: 値を電卓にセットする
* E: 計算を終わる
* +: 電卓にある値と,与えた数を足し算して、その値をセット
* -: 上と同様に引き算をする
* *: 上と同様に掛け算をする
* /: 上と同様に割り算をする
0による割り算,未定義の命令を使用したときにはerrorを表示すること. (error表示のあと,プログラムは終了せず次の入力を待つ.)
終了時には「End of Calculations.」と表示すること.
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
 [3.3] 言語: C
[4] 期限: 7月3日午後10時まで
お願いします。
697670:2006/07/02(日) 23:16:09
>>682
自分で最小限の機能といいましたが、指定がないのでプログラムを組んで下さる方の判断に任せます。
698デフォルトの名無しさん:2006/07/02(日) 23:16:24
>>689
#include<stdio.h>
#include<stdlib.h>
int main(){
    char tmp[80];
    gets(tmp);
    printf("%d\n",strtol(tmp,NULL,47)%46);
    return 0;
}
699689:2006/07/02(日) 23:28:03
>>698
実行結果で、整数の合計が0になってしまうのですがどうしたらいいのでしょうか?
700デフォルトの名無しさん:2006/07/02(日) 23:33:49
>>699
んーなんでだろ。
原因わからんから真面目に実装してお茶を濁してみる。

#include<stdio.h>
#include<stdlib.h>
int main(){
    unsigned x=0,y;
    scanf("%u",&y);
    do x+=y%10;while(y/=10);
    printf("%u\n",x);
    return 0;
}
701689:2006/07/02(日) 23:40:10
>>700
実行できました!ありがとうございました。
702デフォルトの名無しさん:2006/07/02(日) 23:40:14
>>689
#include <stdio.h>
#include <string.h>

main() {
char str[100];
int i,n,tmp=0;
gets(str);
n=strlen(str);

for(i=0; i<n; i++)
tmp += str[i]-48;

printf("%d",tmp);
}
703689:2006/07/02(日) 23:41:50
>>702
ありがとうございます!
704デフォルトの名無しさん:2006/07/02(日) 23:45:24
>>702はちょっと冗談で書いてみたが、計算手順や考え方としては
>>700の方が良いでしょうねw
705デフォルトの名無しさん:2006/07/02(日) 23:49:24
>>700
man見たら、strtolのbaseは36までしか使えないみたい。
strtol(tmp,NULL,36)%35
にすれば良さそう。
9999が計算できなくなるけどw
706デフォルトの名無しさん:2006/07/02(日) 23:52:11
>>705
あー基数に制限があるのかー。残念。
ま、最低なコードだから書けなくても良いかw
707662:2006/07/03(月) 00:20:06
だれか>>662頼みます
708674:2006/07/03(月) 00:39:45
>>674もお願いします。
709デフォルトの名無しさん:2006/07/03(月) 00:44:10
>>707
#include <stdio.h>
#define N 10000
#define XS 0.0
#define XE 1.0
double f(double x) {return 1.0 / (1.0 + x*x);}
int main()
{
double x1, x2, s, dx = (XE - XS) / N;
int i;
s = 0.0;
for (i=0; i<N; i++) {
x1 = XS + i*dx;
x2 = x1 + dx;
s += f(x1) + f(x2);
}
s = s * dx / 2.0;
printf("ans = %12.9f\n", s);
return 0;
}
710658:2006/07/03(月) 00:52:16
>>681
ちょっとデータ構造間違っちゃてたけど、最後まで見えたから、火曜日の夜くらい
までには出来ると思うよ。多分最後まで飽きないと思う。
711デフォルトの名無しさん:2006/07/03(月) 01:00:38
[1] 授業単元:プログラミング1
[2] 問題文(含コード&リンク):
任意のファイルからテキストを読み出し,左から0で詰めた4桁の行番号を先頭に付加して表示するプログラムを作成しなさい.
一行の長さは最大255文字として仮定してよいものとする。ファイル名はプログラム実行後,
最初にユーザによって与えられるものとする.オープンが成功しない場合には, errorと表示し
プログラムの実行を中止すること.
実行例

[xxxxxx@C*LPC* ~/pp11]% ./lnum
hello.txt
0001: Hello world.
0002: This is test data.
[xxxxxx@C*LPC* ~/pp11]% ./lnum
*
error
[xxxxxx@C*LPC* ~/pp11]%

[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
 [3.3] 言語: C
[4] 期限: 今日中
よろしくお願いします
712デフォルトの名無しさん:2006/07/03(月) 01:06:53
>>711
#include<stdio.h>
int main(){
    int i=0;
    FILE*fp;
    char tmp[257];
    gets(tmp);
    fp = fopen(tmp,"r");
    if(!fp){printf("error\n");return 8;}
    while(fgets(tmp,sizeof tmp,fp))
        printf("%04d: %s",++i,tmp);
    return 0;
}
713696:2006/07/03(月) 01:11:02
どなたか696わかる方がいらっしゃればお願いします。
714デフォルトの名無しさん:2006/07/03(月) 01:11:08
return 8 ってなんやねんな気持ち悪い
715デフォルトの名無しさん:2006/07/03(月) 01:11:45
>712さん
711です。ありがとうございました。
716デフォルトの名無しさん:2006/07/03(月) 01:18:21
【質問テンプレ】
[1] 授業単元: 数値解析
[2] 問題文(含コード&リンク):ガウス法で連立方程式を解く際に ピボット選択する意味を考察せよ。
[3] 環境
 [3.1] OS: Windows)
 [3.2] コンパイラ名とバージョン:VC 6.0
 [3.3] 言語:どちらでも可
[4] 期限:2006/07/3 2:00まで
[5] その他の制限: なし
717デフォルトの名無しさん:2006/07/03(月) 01:18:31
>>713
ちょっと待ってて
718674:2006/07/03(月) 01:38:55
>>674
誰かお願いします。
ほんとにわからなくて困ってます。
719デフォルトの名無しさん:2006/07/03(月) 01:48:52
>>718
こういうのは確かint xxx(int x,int y)な関数を作って、上下左右に自分を呼び出して探索する。
これから書いてみます。
720662:2006/07/03(月) 02:04:40
>>709ありがとうございます。
721デフォルトの名無しさん:2006/07/03(月) 02:46:12
>>674
>>719じゃないけど、書いたんで。
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.cgi?mode=thr&no=31
のNo.2235(今なら一番下)。ファイルにしてアップするのが面倒だったんで。
visual関数内のコメントを次の行と入れ替えると探索した範囲を表示する。
722650 ◆f0jFPqgkWg :2006/07/03(月) 02:57:33
>>658さん、本当にありがとうございます。
こんなにも早く完成できるとは思ってもいませんでした。
お陰で〆切まで時間がちょっと出来たので、自分で理解できるように最善の努力をするつもりです。

あと一つお願いがあるのですが、>>685付近のレスが身内か教授の可能性がしてきたので、ちょっと怖いのです。
なので、アップローダーにUPせずに、mailでソースコードを添付して送って貰えると助かります。
大変なお手数をお掛けしますが、出来ればで良いのでお願いします。
723デフォルトの名無しさん:2006/07/03(月) 03:43:36
自分勝手すぎるぞ
身内の心配するなら最初から来るな
724デフォルトの名無しさん:2006/07/03(月) 03:47:08
>>723
ぐだぐだ言わずにソースを出せ!
725デフォルトの名無しさん:2006/07/03(月) 03:48:50
>>724
はあ?今までにかなりのソース出してきた俺にむかってなにいってんだ?
726・∀・)っ-○◎●新世紀ダンゴリオン ◆DanGorION6 :2006/07/03(月) 03:59:22
実績あるかないかなんて名無しで証明しようと思うほうが莫迦です
727デフォルトの名無しさん:2006/07/03(月) 04:02:15
>>725
バカじゃね?お前が出した証拠もなければ出したとしても
こんなところでは認められないし威厳もないよ?
ガキがいきがっているとしか思われないってことw
728デフォルトの名無しさん:2006/07/03(月) 04:08:15
証明は自分がわかってりゃそれでいいんだよ
雑魚は消えろ
729デフォルトの名無しさん:2006/07/03(月) 04:10:21
>>728
そうだよ?何当たり前、わかりきったこと言っていきがってんの?
わかってんならソースを出せよ、出さなきゃその証明すらできないしw
なんなら、コテハンでも名乗れば?
730デフォルトの名無しさん:2006/07/03(月) 04:11:25
>>729
文盲?あんた黙ってた方がいいよ
731デフォルトの名無しさん:2006/07/03(月) 04:12:54
>>730
必死だなw
お前は初心者や質問する場所で自分はできると思い込んでいるだけ
くだらねぇレスするくらいなら消えろ、クズ
732このスレの趣旨を分かってないバカ:2006/07/03(月) 04:13:38
725 名前:デフォルトの名無しさん 投稿日:2006/07/03(月) 03:48:50
>>724
はあ?今までにかなりのソース出してきた俺にむかってなにいってんだ?

728 名前:デフォルトの名無しさん 投稿日:2006/07/03(月) 04:08:15
証明は自分がわかってりゃそれでいいんだよ
雑魚は消えろ

730 名前:デフォルトの名無しさん 投稿日:2006/07/03(月) 04:11:25
>>729
文盲?あんた黙ってた方がいいよ
733デフォルトの名無しさん:2006/07/03(月) 04:14:21
>>731
あまり笑わせるなよ
こんな時間に腹かかえてわらったよ
734デフォルトの名無しさん:2006/07/03(月) 04:14:44
はあ?今までにかなりのソース出してきた俺にむかってなにいってんだ?
はあ?今までにかなりのソース出してきた俺にむかってなにいってんだ?
はあ?今までにかなりのソース出してきた俺にむかってなにいってんだ?
はあ?今までにかなりのソース出してきた俺にむかってなにいってんだ?
↑こいつ最高にアホ
735デフォルトの名無しさん:2006/07/03(月) 04:15:14
このスレの趣旨とやらをきかせてもらおうかwwww
736デフォルトの名無しさん:2006/07/03(月) 04:15:22
自演はそこまでだ
737デフォルトの名無しさん:2006/07/03(月) 04:16:03
>>735
>>1も読めない文盲?あんた黙ってた方がいいよ
738デフォルトの名無しさん:2006/07/03(月) 04:16:53
>>737
で?このスレの趣旨とやらをきかせてもらおうかwwwwwwwwwwww
739デフォルトの名無しさん:2006/07/03(月) 04:30:20
>>734
むしろオモロイから許すw
740デフォルトの名無しさん:2006/07/03(月) 04:34:14
>C/C++の宿題を片付けます
>気に入らない質問やその他や発言はスルーの方向で。
スレタイにも>>1にも書かれているのに理解できないとは
日本語が理解できない在日か・・・?
何しにこのスレに来てんだろうね、このバカは・・・
しかも、自分が誰かも分からない状況で、どんなソースを出したか示せず
権威を主張し始めているよ。そういう奴は井の中の蛙で終わるちっぽけな存在に過ぎん
741デフォルトの名無しさん:2006/07/03(月) 04:36:32
>>740
お前、劣ってるからといって、あまり妬くなよ
おまえのような下等な人間はそれなりに世の中で必要なんだよ
742デフォルトの名無しさん:2006/07/03(月) 04:53:06
また彼が来たのか?こんな時間から昼間にも書き込みか。
完全にニートだな。このスレに常駐して自分より劣っていると思う人間を見て安心したいのか?w
743デフォルトの名無しさん:2006/07/03(月) 04:57:41
>>742
彼って誰だ
まあその彼とやらと同一として気が済むならそれでいいんじゃないかな
久々の連休だ、もっと楽しませてくれ
744デフォルトの名無しさん:2006/07/03(月) 05:01:56
↑最後まで何か書かないと気が済まないキチガイ
745デフォルトの名無しさん:2006/07/03(月) 05:02:58
↑最後まで何か書かないと気が済まないキチガイ
746デフォルトの名無しさん:2006/07/03(月) 05:08:42
741 名前:デフォルトの名無しさん 投稿日:2006/07/03(月) 04:36:32
>>740
お前、劣ってるからといって、あまり妬くなよ
↑それはお前、そしておまえのような下等な人間はそれなりに世の中で必要なんだよ

最後まで何か自分の気に食わない意見を言う奴を叩かないと
気が済まない精神年齢の低いキチガイ↓↓↓↓
747デフォルトの名無しさん:2006/07/03(月) 05:10:15
え?オレ?
748デフォルトの名無しさん:2006/07/03(月) 05:10:32
>>746
あまり自分を責めるな
自殺するまえに精神科でも行けよ?
749デフォルトの名無しさん:2006/07/03(月) 05:17:01
あれ?まだ連休とかボケかましたニートが必死こいて
過去にくだらねぇソースを出した程度で自分が誰よりも立場が上だと勘違いして
素性の分からない名無し相手に罵倒してんの?恥ずかしいねぇ・・・
オレもソースは出しているけど、こんな場所で出される問題を答えたくらいじゃ
他の回答者に対してお前よりオレの方が優秀だなんていわないけどなぁ。
ソースを出してもいないのに、ここでバカみたく自分に権威があるみたいに
俺に向かって何を言っているなんていっても無駄って気づけよ・・・
750デフォルトの名無しさん:2006/07/03(月) 05:20:55
>>749
やあ、ニートさん
751719:2006/07/03(月) 05:21:40
>>674
できたー・・・ってもう解かれてる orz
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.cgi?mode=thr&no=31
No.2236に投稿した
10を定数にするの忘れてます
再帰なので>>721さんのよりメモリを使うかも
かわりに多少読みやすい
752751:2006/07/03(月) 05:25:33
>>751
最後から五行目の所
... ((argc != 1) ? ... じゃなくて ... ((argc > 2) ? ... だった
753719:2006/07/03(月) 05:46:52
>>751
何度もすまない
・最後から五行目の所は ... ((argc < 2) ? ... です
・readmap中の(i++)はiに置き換える
・で whileの閉じるところにi++をつけなおさないと動かない
・switch以下二行はなくていい
754デフォルトの名無しさん:2006/07/03(月) 06:13:35
おいおい、今日から月曜だぞ。なにやってんだw
755デフォルトの名無しさん:2006/07/03(月) 06:39:28
>>674
どう見ても同じ大学です


>>751
おかげで助かりました674じゃありませんがお礼を・・・
ありがとうございましたー
756デフォルトの名無しさん:2006/07/03(月) 07:58:50
TAとしては、ここにでてきたコードがそのまま提出されてきたら×に
せざるを得ないです(採点もやっているので)。
757デフォルトの名無しさん:2006/07/03(月) 08:04:09
またアイツか。
飽きもせずよくやるよ、全く。
758デフォルトの名無しさん:2006/07/03(月) 08:05:54
アップローダにソースをアップした場合は、直リンしましょう。
759674:2006/07/03(月) 09:06:00
>>719さん,>>721さん
ありがとうございます!助かりました!
760デフォルトの名無しさん:2006/07/03(月) 09:33:24
【授業単元】C言語 プログラミング
【環境】Visual Stdio.NET2003
【OS】Windows XP
【提出期限】7月4日
【課題内容】10バイトのメモリ容量を確保し、その領域に
文字列"Allocate"を代入せよ。
ただし確保した領域はプログラム終了前に開放すること
761デフォルトの名無しさん:2006/07/03(月) 09:42:56
「動的に」と書いてないからchar str[10]="Alloc(略
762デフォルトの名無しさん:2006/07/03(月) 11:00:19
【授業単元】C言語 プログラミング
【環境】Visual Stdio.NET2003
【OS】Windows XP
【提出期限】6月26日
【課題内容】10名の学生の視力が以下の表の通りだったとする。
このデータを構造体に格納し、
構造体単位で新規ファイル書き込むプログラムを作成せよ

学籍番号  1  2  3   4  5  6  7  8  9  10
右目視力 1.5 2.0 0.7 1.0 0.2 1.5 0.8 0.1 2.0 1.5
左目視力 1.5 1.0 0.5 0.7 0.5 1.0 0.7 0.2 1.5 2.0
763デフォルトの名無しさん:2006/07/03(月) 11:56:26
一つの新規ファイル?10個の新規ファイル?
764デフォルトの名無しさん:2006/07/03(月) 13:33:52
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):2つの配列a[i][j]とb[i][j]に数値を入力し,各要素の和を求めるプログラムを作ってください。
[3] 環境
 [3.1] OS: linux

 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: c
[4] 期限: 明日
[5] その他の制限:ナシ
765デフォルトの名無しさん:2006/07/03(月) 13:35:36
[1] 授業単元:情報処理基礎演習
[2] 問題文:氏名処理プログラム
      キーボードから姓、名を空白1文字で区切ってローマ字で入力(例えば"Yamada Taro")
      し、これに対して次のような4つの処理を行うプログラムを作成してください。
      1、姓と名を分けて表示(例えば、姓:Yamada 名:Taro)
      2、姓と名の文字数を表示(例えば、姓:6文字 名:4文字)
      3、姓と名を逆にして表示(例えば"Taro Yamada")
      4、イニシャルを表示(例えば、"T.Y.")

ヒント・注意
      1、入力される文字数は不定なので、配列の要素数は十分余裕のある数
        (例えば 100 個)で宣言してください。
      2、姓と名の区切りをどのように見つけるかがポイントです。
      3、姓名の入力用、姓用、名用にそれぞれ配列を用意すると
        効率的に処理できます。
      4、姓と名に空白が複数入っても処理できるプログラムにしてください。
      5、姓、名の先頭文字を大文字に自動修正するプログラムにしてください。
[3] 環境
 [3.1] OS:Windows XP
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:7月5日17時まで
766デフォルトの名無しさん:2006/07/03(月) 14:23:08
[1] 授業単元: プログラミング
[2] 問題文:階乗を計算するdoubleがたの関数を使い、1から10までの階乗を表示するプログラムを作成して
ください。因数を使わないで、外部変数を使って、main関数からユーザー関数に、1から10までの値を送ってください
[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限: 今日3時
[5] その他の制限:お願いします。私にはできません;;
767デフォルトの名無しさん:2006/07/03(月) 14:24:46
なぜわざわざマルチポストするのかね
768デフォルトの名無しさん:2006/07/03(月) 14:46:50
>>766
#include <stdio.h>
double kaijo(double*,int*);

int main() {
int i;
double sum=1;
for(i=1; i<=10; i++)
printf("%d! = %lf\n",i,kaijo(&sum,&i));
}

double kaijo(double* sum,int* i) {
return (*sum)*=(*i);
}
769デフォルトの名無しさん:2006/07/03(月) 14:50:56
>>766 すまそ、外部変数使ってなかったからこうなるか?
#include <stdio.h>
double kaijo(int);
double sum=1;
int main() {
int i;
for(i=1; i<=10; i++)
printf("%d! = %lf\n",i,kaijo(i));}
double kaijo(int x) {
return sum*=x;
}
770デフォルトの名無しさん:2006/07/03(月) 15:03:32
今日3時過ぎたーーーータイムアーーープ!
771デフォルトの名無しさん:2006/07/03(月) 15:17:06
>>765
#include <stdio.h>
#include <string.h>
#include <ctype.h>

int main(void)
{
char name1[20],name2[20];
scanf("%s%s",name1,name2);
printf("%s %s\n",name1,name2);
printf("姓 : %d文字\n名 : %d文字\n",strlen(name1),strlen(name2));
printf("%s %s\n",name2,name1);
printf("%c.%c\n",toupper(name1[0]),toupper(name2[0]));
return 0;
}
772デフォルトの名無しさん:2006/07/03(月) 15:36:55
>>762
これでいい?
つか、期限がおかしいし
6/26っていつの日だ?
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2237.c
773デフォルトの名無しさん:2006/07/03(月) 15:43:02
>>764おながいします
774デフォルトの名無しさん:2006/07/03(月) 15:54:06
>>764 kwsk
775487:2006/07/03(月) 15:55:15
>>487-488の問題を
>>656のアルゴリズムでお願いできませんか・・・?
776デフォルトの名無しさん:2006/07/03(月) 16:12:33
1] 授業単元: コンピュータ基礎
[2] 問題文(含コード&リンク):
1. プログラムの冒頭に float 型の配列 data が宣言されている。初期値が
設定されるが、最後の値は負になっている。
2. プログラムは配列 data の内容が始めて負になるまで順に出力し、その後に
平均値を出力して停止する。
3. data の内容が無い時、つまり data[0]<0 の時は何も出力せずに停止
する。
4. 異なるデータ列を処理したい場合、配列 data の初期化の文以外は変更せ
ずにプログラムが動作すること。


data が次の宣言の時、出力は以下のようになる。
宣言
float data[]={0.5, 1.5, 2.5, -1};
出力
0.50000
1.50000
2.50000
平均 1.50000
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 明日(4日)
[5] その他の制限:
777696:2006/07/03(月) 16:26:44
何度もすみません。696に書き込んだものです。
どなたかわかる方いらっしゃいますか?
特に昨日「ちょっと待ってて」と言って下さった方、今日の夜中まで待っていますので
お願いします。
778デフォルトの名無しさん:2006/07/03(月) 16:30:59
>>776
#include <stdio.h>

int main(){
int i;
float data[] = {0.5, 1.5, 2.5, -1}, sum = 0.0;
printf("出力\n");
for(i = 0; data[i] >= 0; i++){
printf("%.5f\n", data[i]);
sum += data[i];
}
if (i != 0) printf("平均 %.5f\n", sum / (float)i);
return 0;
}
779デフォルトの名無しさん:2006/07/03(月) 16:44:15
>>776
あ、私の出した問題だ
780デフォルトの名無しさん:2006/07/03(月) 16:44:18
最近催促する奴が増えたな。逆効果なのに。
781デフォルトの名無しさん:2006/07/03(月) 17:06:00
>>777
ちょっと待ってての人じゃないが、ほれ
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2238.c
782デフォルトの名無しさん:2006/07/03(月) 17:13:04
>>775
やってみる
$ path graph.txt 1 4
0->4: 0->1->4
出力はこんな感じでいいの?それとも片っ端から列挙?
783487:2006/07/03(月) 17:18:23
>>782
そんな感じ(前者)でお願いいたします。
784 ◆NeetJ30Le. :2006/07/03(月) 18:22:16
>>722
いや、まだ全然出来てないし。途中経過。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2240.txt
関係者が見てたら、それは不運ってことで。
おまけに、その書き込み見て、やる気大幅ダウンだし。
785 ◆NeetJ30Le. :2006/07/03(月) 18:27:07
このままフェードアウトするのもなんなので、見通しだけ書いとく。
update: find_record_set()して、そのデータを直接書き換えれば、updateしたことになる。
create table select: find_record_set()をごにょごにょすれば、なんとかなると思う。
sort: リスト構造のソートだからなんとかなるでしょう。
786696:2006/07/03(月) 18:32:14
>>781
ありがとうございます!
実行したとき始めに0.000000と出てしまうのと、
0 /
error
の後にまた前で計算した数字まで出てしまうのを消したいのですが、どうすればいいのですか?
787デフォルトの名無しさん:2006/07/03(月) 18:59:43
>>722
アッー!
788670:2006/07/03(月) 19:07:35
670に書き込んだものですが、この課題って簡単にできるものなのですか?
789デフォルトの名無しさん:2006/07/03(月) 19:24:29
>>786
printf("reg (ry の行をforループの最後へ
790デフォルトの名無しさん:2006/07/03(月) 19:31:58
>>788
ただ単にブラウザから受け取ったデータを、相手方にそのまま渡して、
相手から受け取ったデータを、そのままブラウザに戻すだけでいいなら
簡単(単なる中継機能のみ)。が、その方法でうまくいくかどうかは不明。
それがうまくいくなら、コンテンツキャッシュくらいなら、まぁまぁ簡単に
実装できる。
791デフォルトの名無しさん :2006/07/03(月) 19:53:01
>>722
|д゜)もう見てますよぉ〜

|彡サッ
792670:2006/07/03(月) 19:55:12
>>790
その機能だけでかまわないのでお願いできないでしょうか
793790:2006/07/03(月) 20:09:16
>>792
断る。squidの劣化版の再発明なんかしたくない。
794デフォルトの名無しさん:2006/07/03(月) 20:12:39
っつか、誰よ、学校に通報したの?ここで宿題を聞いて丸々書いた奴の単位が
危うくなってるしwwwww
795デフォルトの名無しさん:2006/07/03(月) 20:20:35
ぶははははははははは!!
796デフォルトの名無しさん:2006/07/03(月) 20:23:40
変数名と関数名、空白や空行のあけ具合くらいいじっとこうな。
797デフォルトの名無しさん:2006/07/03(月) 20:33:34
まぁ100行超えるようなレベルの奴は、採点する奴がここ見てれば、ちょっとした
改変くらいはすぐ見破られるだろうな。
構造を変えとく必要がある。ただ、それが出来るくらいな奴なら、ここに丸投げはせんだろうがな。
798デフォルトの名無しさん:2006/07/03(月) 20:41:17
ウェブマネー払いで宿題代行という小遣い稼ぎを思いついた。
>>650>>670レベルで1000円くらいで。
799デフォルトの名無しさん:2006/07/03(月) 20:58:42
>>798
既に出たネタをまた講義で使うだろうから、稼ぎにはなるかもしれんが
効率が悪いかな。俺は別のやり方で稼ぐつもりさ
800デフォルトの名無しさん:2006/07/03(月) 21:02:56
メールアドレス晒しとけば
親切な人がメールで送ってくれるかもな
801デフォルトの名無しさん:2006/07/03(月) 21:03:34
Vipperがすごい勢いで遊びに来て終了な気もす
802517:2006/07/03(月) 22:07:08
>>580
かなり遅くなってすみません。
今日、いただいたプログラムを動かしてみましたが、
何の問題もなく動作しました。
本当にありがとうございました。
803650 ◆f0jFPqgkWg :2006/07/03(月) 23:00:34
>>784さんを始め、このスレを見ている皆様、>>722のような自分勝手な行動をとってしまってすみませんでした。
期間が迫っているのと、似たようなプログラムだと落とされてしまうことから、自分の中で勝手に焦ってしまいました。
元はといえば、自分の勉強不足、努力不足が原因で、人に頼んでいるにも関わらず、立場を考えない不適切な発言をしてしまったことを、深く反省しています。
その結果、親切な回答者の親切心、やる気等を奪ってしまい、このスレの雰囲気まで悪い流れにしてしまったことを、後悔しております。

当分は、自分に対する質問以外は発言せず、ROMに徹することにします。
mailアドレスは、〆切までは念のため残しておいて、毎日確認するつもりですが、
このスレの為に作っただけのものなので、期間後は消去します。

最後になりますが、>>784さんを始めとするこのスレの住人の皆様、本当に申し訳ございませんでした。
804デフォルトの名無しさん:2006/07/03(月) 23:02:52
くだらない心配してる暇があったら最初から自力で作ればいいじゃん。
805デフォルトの名無しさん:2006/07/03(月) 23:11:28
んだんだ
無責任に丸投げすればいいよ
こっちも無責任に回答するから、単位落としても知らないよ・・・と。
806デフォルトの名無しさん:2006/07/03(月) 23:27:24
各辺が全て500以下であるようなピタゴラスの三整数を全て求めよ。
ただし、三重にネストしたforループを使う事。

#include<studio.h>

main()

  int x,y,z;

 for( z = 1, z <= 500 , z++ ){
  for( x = 1, x <= 500 , x++ ){
   for( y = 1, y <= 500 , y++){
    if( pow(z,2) == pow(x,2) + pow(y,2 ))
     printf("%dの二乗は%dと%dの二乗の和に等しい\n",z,x,y);}}}

 return0;



上記で合ってますか?
807デフォルトの名無しさん:2006/07/03(月) 23:32:23
>>806
あってるけど、三角形の条件を満たさなくなった場合に、すぐさまループをbreakするように
すれば、結果が出るのが速くなるかもしれない。
808デフォルトの名無しさん:2006/07/03(月) 23:32:29
>>806
良くはない
809デフォルトの名無しさん:2006/07/03(月) 23:45:46
>>806
powやsqrtを使うならmath.hも終われすれなく
810デフォルトの名無しさん :2006/07/03(月) 23:53:17
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2242.txt
このプログラムをコンパイルすると警告が発せられて実行ファイルが出来ないのですが
どうしてでしょうか?
ちなみにCygwinを使ってます。
811デフォルトの名無しさん:2006/07/03(月) 23:53:55
>>806を書き換えてやってみたけど、すさまじく時間が掛かるね・・・
812デフォルトの名無しさん:2006/07/03(月) 23:55:03
>>810
>>1も読めないのかお前は
813806:2006/07/03(月) 23:56:05
ご指摘サンクス〜
814デフォルトの名無しさん :2006/07/04(火) 00:26:02
[1] プログラム言語
[2] http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2242.txt
[3] 環境
 [3.1] OS: Windows(Cygwin)
 [3.2] gcc 3.4
 [3.3] 言語: c
[4] 期限: 2006年7月5日
[5] その他の制限: 特になし
$ gcc -o server server.c 
とコマンドに入力すると警告が発せられるのですが原因がわかりません。
どこがおかしいのでしょうか?
815デフォルトの名無しさん:2006/07/04(火) 00:31:59
>>814
>>1も読めないのかお前は
816デフォルトの名無しさん:2006/07/04(火) 00:49:36
>>814が読めないのは英語だと思うなあ・・・
817デフォルトの名無しさん:2006/07/04(火) 00:50:09
>>814に足りないのはヘッダかも
818デフォルトの名無しさん:2006/07/04(火) 00:54:20
>>806 よしよし、わしが高速化してやろう
#include <stdio.h>
#include <math.h>

main() {
int x,y,z;
int x2,z2;

for( z = 1; z <= 500 ; z++ ){
z2 = pow(z,2);
for( x = 1; x <= 500; x++ ){
x2 = pow(x,2);
if(x2 >= z2) break;
for( y = 1; y <= 500; y++){
if(z2 == x2 + pow(y,2))
printf("%dの二乗は%dと%dの二乗の和に等しい\n",z,x,y);}}}

return 0;
}
819デフォルトの名無しさん:2006/07/04(火) 00:59:09
警告内容は必ず貼ってね☆
820デフォルトの名無しさん:2006/07/04(火) 01:00:47
>>818って、さらに切り詰めれば500の半分250までの結果で
残りはxとyが逆になっただけだから、さらに計算量を減らせる罠
まぁ、これ以上は良いかw
821デフォルトの名無しさん:2006/07/04(火) 01:02:00
>>818
二乗くらいなら普通に掛け算すればずっと速くなる。
822デフォルトの名無しさん:2006/07/04(火) 01:13:38
>>821
???、yのループのif文の中の比較をするたびに、毎回3つの値を
計算してたんでは効率が悪いから、yのループの前に一度だけ計算して、
あとは数値を比較した方が明らかに処理速度は速くなるかと。
実際にやってみりゃ分かる。
823デフォルトの名無しさん:2006/07/04(火) 01:16:03
>>822
もう黙ってろ。
824デフォルトの名無しさん:2006/07/04(火) 01:22:04
>>823=>>821

821 名前:デフォルトの名無しさん 投稿日:2006/07/04(火) 01:02:00
>>818
二乗くらいなら普通に掛け算すればずっと速くなる。


二乗くらいなら普通に掛け算すればずっと速くなる。
二乗くらいなら普通に掛け算すればずっと速くなる。
二乗くらいなら普通に掛け算すればずっと速くなる。
二乗くらいなら普通に掛け算すればずっと速くなる。
二乗くらいなら普通に掛け算すればずっと速くなる。
二乗くらいなら普通に掛け算すればずっと速くなる。
825デフォルトの名無しさん:2006/07/04(火) 01:27:08 BE:40761937-#
さすがに、500回乗算するのと1回だけpow関数を呼ぶのでは後者の方が速いと思うなぁ。
826デフォルトの名無しさん:2006/07/04(火) 01:27:40
ポウ!!!

double pow(double x,double y);
827デフォルトの名無しさん:2006/07/04(火) 01:28:16
>>823
お前が黙ってろよ?w お前の理論じゃ効率の良さの追及は無理だから。
自称プロ?ソースを書いている俺に向かってでけぇ面するなっつった奴か?
if文の中で毎回無駄な計算が行われているところまで目がいかなかったか。
実際にソースを書いて実行結果を見て、処理時間を比較すりゃ明らかなのにな・・・
まぁ、お前が何を言いたかったか理解させたいなら、まずソースを書いて立証しろよ?

ちなみに、こっちで確認したみたけど
pow(x,2)をx*xと書き換えても速度は上がりませんでしたよ?
828デフォルトの名無しさん:2006/07/04(火) 01:28:54
>>825
分からせたかったらソースを書いて出せ、な?因数の意味を理解していなかった
日本語と数学がダメなトーマスさん?
829デフォルトの名無しさん:2006/07/04(火) 01:31:45
pow(x,2)をx*xに書き換えたら早くなったうちの環境はおかしいのかな
Borland C++ 5.5.1なんだけど

ちなみに>>821じゃないしよくわかってないで書き換えて試しただけ。
830デフォルトの名無しさん:2006/07/04(火) 01:33:53
おれもGCCで計ったけどX*Xのほうが早いよん

x*x : time1432
pow(x,2) : time5002

ちなみに全部double型に直しといた
831デフォルトの名無しさん:2006/07/04(火) 01:34:50
>>827
試した結果を出せ
832デフォルトの名無しさん:2006/07/04(火) 01:34:59
powは基数も指数も実数値をとれるようになってるからな
当然だ
833デフォルトの名無しさん:2006/07/04(火) 01:35:00
[1] 授業単元: 情報処理
[2] 問題文: 最初にデータ数Nを決め、N個数字を入れ、それを大きい順に並び替えるプログラム
[3] 環境
 [3.1] OS: Windows xp
 [3.2] コンパイラ名とバージョン:
 [3.3] 言語: C
[4] 期限:朝8時くらいまでで
[5] その他の制限: 特に無いです
834デフォルトの名無しさん:2006/07/04(火) 01:37:10
>>829-831
やれやれ、やっとこちらの誘導で釣れたかw
当然、結果なんて分かっているわ。やれば済む話だが。
>>823が偉そうだったんで気に食わないから一杯盛ってやったんだよw
言葉だけでどうにかしようだの、お前わかってないだのって態度は
俺はとことん叩くね。今後も覚悟しておいてちょうだいな、
初心者や質問者にわかってねーなお前としか言わずに罵倒しにくる誰かさんも含めて、ね。
835デフォルトの名無しさん:2006/07/04(火) 01:38:30
>>834
そんな話はいいから試した結果を出せ
836デフォルトの名無しさん:2006/07/04(火) 01:38:56
>>834
えーとやってみて結果が分かったから釣りですた・・・と。
837デフォルトの名無しさん:2006/07/04(火) 01:39:36
[1] 授業単元: プログラミング
[2] 問題文:テスト結果を保存したファイルをwebページからダウンロードします。
ファイルにはテスト結果の点数を表す数値が140個格納されています。テスト結果のうちを
秀、優、良、可、不可それぞれの個数を集計して、以下のように棒グラフにより
表示するプログラムshukei.cを作成しなさい。
ただし、秀、優、良、可、不可は次のように判定すること。
・秀:90〜100点
・優:80〜89点
・良:70〜79点
・可:60〜69点
・不可:0〜59点

また棒グラフは記号「*」の数が該当する生徒の人数を表すものとする。

実行例:(ただし、test.datの集計結果が正確に下の棒グラフのようになるとは限らない。)
./shukei<test.dat
集計結果は次のとうりです。
秀:*********
優:************
良:************************
可:*******************************
不可:****************
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: [2006年7月4日まで]
[5] その他の制限: 他スレでも聞いて、
score,const,cher,label,for,returnを使ったものだったのですがまだ習っていないので、
while,printf,scanf,if,elseを使った式でやってもらえないでしょうか?
よろしくお願いします。
838デフォルトの名無しさん:2006/07/04(火) 01:40:14 BE:93168768-#
>>833
#include<stdio.h>
#include<stdlib.h>
#define N 10
int cmp(const void* a, const void* b){return *(const char)b-*(const char)a;}
int main(void){char tmp[N+2];fgets(tmp,sizeof(tmp),stdin);qsort(tmp,N,sizeof(char)cmp);
puts(tmp);return 0;}
839デフォルトの名無しさん:2006/07/04(火) 01:41:20 BE:139752498-#
>>837
ファイルのフォーマットがわからんと手の出しようがない。
840デフォルトの名無しさん:2006/07/04(火) 01:41:27
>>837
テスト結果を保存したファイルは?
841デフォルトの名無しさん:2006/07/04(火) 01:42:02
このスレ相手をとことんバカにしようとする奴が釣れてオモスレー
いつまでも自分より下を見て安心していて下さいね♠
こっちは上を見てどんどん精進すっから♣
842デフォルトの名無しさん:2006/07/04(火) 01:42:03
>>833
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
void bsort(int* a, int n){
int i,j,max,tmp;
for(i=0; i<n-1; i++){
max = i;
for(j=i+1; j<n; j++)
if(a[max] < a[j])max = j;
if(i != max){
tmp = a[i];
a[i] = a[max];
a[max] = tmp;
}}}
intmain() {
srand((unsigned)time(NULL));
int n = 10;
int i;
int* a = (int*)malloc(sizeof(int)*n);
for(i=0; i<n; i++){
a[i] = rand();
printf("%d\n",a[i]);}
bsort(a,n);
putchar('\n');
for(i=0; i<n; i++)
printf("%d\n",a[i]);
free(a);
return 0;
}
843デフォルトの名無しさん:2006/07/04(火) 01:43:07
>>835
結果は既にお前のもとにも出ていると思うが?
わざわざpow使わんでもx*xにした方が速かったですけど何か?
まぁ、無駄な議論なんてもう黙ってろ。
844デフォルトの名無しさん:2006/07/04(火) 01:44:55
>>843
お前が無駄な議論始めようとしたんじゃないのか?
845デフォルトの名無しさん:2006/07/04(火) 01:46:17
くっだらねー話はお互いメアドでも交換して他所ではなしあってくれませんか?

つかいい加減ここID制にしてほしいな
846デフォルトの名無しさん:2006/07/04(火) 01:46:23 BE:11646623-#
>>842
それは「N個の数字」ではなくて「N個の数値」だと思うのココロ。
847デフォルトの名無しさん:2006/07/04(火) 01:46:41
逃げやがった
848デフォルトの名無しさん:2006/07/04(火) 02:01:17
>>837まで逃げられると困るんだけど・・・ ファイルの形式がわからないと解きようが・・・
849837:2006/07/04(火) 02:07:38
>>839
すいません!フォーマットというのをいまいち理解してません。
>>840
ファイルは大学のサイトからダウンロードするだけなので
形式はちょっとわからないです…
あと大学内でしかそのサイトを開けないので今はわからないんです。
すいません。
850デフォルトの名無しさん:2006/07/04(火) 02:10:12
>>849
では質問を却下します。
851デフォルトの名無しさん:2006/07/04(火) 02:10:49 BE:62112184-#
>>849
エスパーを探しに来たのなら他をあたれ。
852837:2006/07/04(火) 02:14:01
無理な質問でしたね…。
迷惑かけてすみませんでした。
853デフォルトの名無しさん:2006/07/04(火) 02:28:13
明日も早い
寝るか
854487:2006/07/04(火) 02:41:31
>>782
進行の方はいかがでしょうか?
遅くなってもかまいませんのでよろしくお願いいたします。
855デフォルトの名無しさん:2006/07/04(火) 03:11:24
>>678
アウトプットが・ばっかり並ぶのはなぜですかorz
856デフォルトの名無しさん:2006/07/04(火) 05:37:38
自力でできないなら素直に単位おとせばいいのに。
857 ◆NeetJ30Le. :2006/07/04(火) 06:39:26
>>837
#include <stdio.h>
int main()
{
FILE* fp;
char buf[128];
int score, i, j;
int grade[5] = {0};
char *title[5] = {"秀:", "優:", "良:", "可:", "不可:"};

fp = stdin;
while (fgets(buf, sizeof buf, fp) != NULL) {
score = atoi(buf);
if (score >= 90) grade[0]++;
else if (score >= 80) grade[1]++;
else if (score >= 70) grade[2]++;
else if (score >= 60) grade[3]++;
else grade[4]++;
}
i = 0;
while (i < 5) {
printf("%s", title[i]);
j = 0;
while (j < grade[i]) {
printf("*");
j++;
}
printf("\n");
i++;
}
return 0;
}
858 ◆NeetJ30Le. :2006/07/04(火) 06:41:45
fpは冗長だった orz
859デフォルトの名無しさん:2006/07/04(火) 06:50:52
>>814
void mainをint mainに変える。
860デフォルトの名無しさん:2006/07/04(火) 11:37:14
[1]情報科学演習
[2]次の問題を解け
問16
コマンドライン引数を逆から全て表示するプログラムの作成
以下の実行例になるようにしなさい

% ./a.out hello world x
number of arguments = 4
argument 3 = "x"
argument 2 = "world"
argument 1 = "hello"
argument 0 = "./a.out"
%
[3]Linux /gcc3.4 /C言語
[4]7月7日
861デフォルトの名無しさん:2006/07/04(火) 11:51:59 BE:77640858-#
>>860
#include<stdio.h>
int main(int argc, char* argv[]){printf("number of arguments = %d\n", argc);
while((--argc)>=0)printf("argument %d = \"%s\"\n",argc,argv[argc]);return 0;}
862デフォルトの名無しさん:2006/07/04(火) 11:58:45
助けて。。。
迷路の経路を探索するプログラムを作成しなさい.以下の要件を示します.
迷路の形状を示すデータファイル名を引数とします.
迷路のサイズは10×10の固定とし,壁を1,通路を0,スタートを8,ゴールを9で与えます.
迷路の形状と経路が視覚的に分かるような出力をしなさい.分かりやすい出力になるよう工夫すること.

struct r_tag {
int x ; /* x座標 */
int y ; /* y座標 */
/* 方向とか... */
struct r_tag preg ; /* 一歩前 */
struct r_tag next ; /* 一歩先 */
} route ;



データ ファイル: maze.txt
1 1 1 1 1 1 1 1 1 1
1 9 0 0 0 1 0 1 0 1
1 1 1 1 0 1 0 0 0 1
1 0 1 0 0 1 1 1 0 1
1 0 1 0 1 1 0 0 0 1
1 0 0 0 1 0 0 1 1 1
1 1 0 1 1 0 1 0 0 1
1 0 0 0 1 0 1 0 1 1
1 0 1 0 0 0 0 0 8 1
1 1 1 1 1 1 1 1 1 1
863デフォルトの名無しさん:2006/07/04(火) 12:01:14
864デフォルトの名無しさん:2006/07/04(火) 12:02:58
>>862
C言語の切り札 っていう参考書にそれの答えが載ってる
何年か前の情報処理技術者試験の問題だった。
865デフォルトの名無しさん:2006/07/04(火) 12:20:57
お願いします_| ̄|○

[1]授業単元:プログラミング実習
[2]問題文:scanfにより10個の整数をキー入力する。
一つ前に入力した値より大きい値の数の個数を求めるプログラムを作れ。
但し、scanfは2回以下しか使うことができない。
ヒント、直前に入力した値を保持する手段が必要。

実行例
整数を入力⇒256
整数を入力⇒189
整数を入力⇒667
整数を入力⇒328
整数を入力⇒467
整数を入力⇒980
整数を入力⇒533
整数を入力⇒315
整数を入力⇒889
整数を入力⇒662
前より小さな数が入力されたのは5回です。

[3]環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン: Visual Studio2003
 [3.3] 言語:C++
[4]期限:7月10日まで
866862:2006/07/04(火) 12:23:40
[1] 授業単元: プログラミング言語2
[2] 問題文(含コード&リンク):
[3] 環境
 [3.1] OS:MacOS10.3
 [3.2] コンパイラ名とバージョン: ターミナル使ってます
 [3.3] 言語: C言語
[4] 期限: 今日。。。
[5] その他の制限:ポインタまでやってあります。

>>864
今から買ってくるわ
867デフォルトの名無しさん:2006/07/04(火) 12:35:12
>>865
#include<stdio.h>
int main(){int i,b,n=-1,count=0;for(i=0;i<10;i++){b=n;
printf("整数を入力⇒");scanf("%d",&n);if(b<0)continue;if(b>n)count++;}
printf("前より小さな数が入力されたのは%d回です。\n",count);return 0;}

適当に作ってみた 反省はしてない。
868デフォルトの名無しさん:2006/07/04(火) 12:38:17
orz 適当にやりすぎた 無意味な命令文が・・・
869デフォルトの名無しさん:2006/07/04(火) 12:44:24
>>862
>>674-675 問題
>>721,751 解答
870デフォルトの名無しさん:2006/07/04(火) 13:18:00
迷路探索といえば、袋小路を再帰的に埋めていくってやり方もあったな
871デフォルトの名無しさん:2006/07/04(火) 13:32:55
もう左手壁につけて進めばいいじゃない
循環だけ検出してさ
872デフォルトの名無しさん:2006/07/04(火) 15:17:02
>>865 >>866
これらの問題って、モロに過去に同じものが出たよね・・・
同じ学校なのか?それとも時期が違うところを見て、同じネタを使っている
別の学校があるのか?どちらにせよ、来年もこの時期にこの問題を
ここで質問する奴が必ずいるだろうね。そろそろ出題内容と回答例をテンプレにまとめるべきか?
あるいは、同じ問題はつまらん、学校の指導者よ、もっとヒネりなさいヒネりなさいと催促するか?w
あるいは、それをネタにここで稼ぎをする奴が出るか?選択は自由だーーーー!
C言語 is freedom!C言語 is freedom!
けど、ここに書かれたソースを丸々提出すると、丸写ししたのがバレて単位が危うくなるで。
873デフォルトの名無しさん:2006/07/04(火) 15:48:05
夏だな
874デフォルトの名無しさん:2006/07/04(火) 15:59:47
まだ夏休みじゃないから、安心汁!前期終了の前にじゃんじゃん
レポート課題も出してちょ〜〜♪
オラっ、なんだかワクテカしてきたぞ!
875デフォルトの名無しさん:2006/07/04(火) 16:50:49
パソコン甲子園2005予選問題
問1
#include <stdio.h>
#include <math.h>
int main(void) {
float S,x,h;

scanf("%f",&x);
scanf("%f",&h);

S=sqrt((x*x/4)+(h*h));
S=(x*S*2)+(x*x);

printf("%f\n",S);
return 0;
}
876デフォルトの名無しさん:2006/07/04(火) 16:52:10
パソコン甲子園2005予選問題
問2
#include <stdio.h>

int main(void) {
int hh,mm,ss,sec;
scanf("%d",&hh);
scanf("%d",&mm);
scanf("%d",&ss);

sec = 7200 - (hh*3600) - (mm*60) - ss;
hh = sec / 3600;
mm = sec % 3600 / 60;
ss = sec % 3600 % 60;

printf ("%02d:%02d:%02d\n",hh,mm,ss);

sec = sec * 3;
hh = sec / 3600;
mm = sec % 3600 / 60;
ss = sec % 3600 % 60;

printf ("%02d:%02d:%02d\n",hh,mm,ss);

return 0;
}
877デフォルトの名無しさん:2006/07/04(火) 16:58:28
[1] 授業単元: ソフトウェア
[2] 問題文: すべての4桁の数のうち、下2桁の数の積が2の倍数であるものの合計を求めるプログラム
[3] 環境
 [3.1] OS: Windows xp
 [3.2] コンパイラ名とバージョン:
 [3.3] 言語: C++
[4] 期限:明日の昼ごろまで
[5] その他の制限: 特に無いです
878デフォルトの名無しさん:2006/07/04(火) 17:00:41
>>875-876
つチラシの裏
879デフォルトの名無しさん:2006/07/04(火) 17:02:29
>>877
これって下二桁の数の積を取る対象が不明なんだけど、
全ての4桁の数全部の積をとるの?
すると必ず2の倍数になるから答えは
9999*10000/2-999*1000/2 とかでいいのかな?
880デフォルトの名無しさん:2006/07/04(火) 17:09:22
読解力無いのもたいがいにせい
881デフォルトの名無しさん:2006/07/04(火) 17:11:48
すべての4桁の数のうち、下2桁の数の積が2の倍数であるものの合計
=
1000〜9999のうち、十の位が2の倍数か、一の位が2の倍数である数の合計
882デフォルトの名無しさん:2006/07/04(火) 17:12:23 BE:34937892-#
>>877
上2桁には00も許容するのか?
つーか上2桁のある意味が分からん。
883デフォルトの名無しさん:2006/07/04(火) 17:12:24
「0も含む」な
884デフォルトの名無しさん:2006/07/04(火) 17:13:57
>>881
それちょっと違う。
けど、どうでもいい糞問題。
885デフォルトの名無しさん:2006/07/04(火) 17:57:29
>>877
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2243.cpp
つまりこういうことか?念のために足される値の表示ありにしておいた
886デフォルトの名無しさん:2006/07/04(火) 18:12:00
っつか、whileでさらに無駄な計算が省けるか・・・まぁ良いやw
887デフォルトの名無しさん :2006/07/04(火) 19:31:46
to【質問テンプレ】
[1] 授業単元: プログラミング言語
[2]
[3] 環境
 [3.1] OS: Windows(Cygwin)
 [3.2] gcc 3.4
 [3.3] 言語: C
[4] 期限: ([2006年07月06日)
[5] その他の制限:特になし
あるプログラムをコンパイルしたら以下のようになったのですがどういう意味なのか分かりません。
$ make
gcc -Wall -g -I../lib/include -o httpproxy main.o proxy.o http.o -L../lib/lib
-lsock -ltoken -ldaemon
/usr/lib/gcc-lib/i686-pc-cygwin/3.3.3/../../../../i686-pc-cygwin/bin/
ld: cannot find -lsock
collect2: ld returned 1 exit status
make: ***[httpproxy] Error 1

どういうエラーなのでしょうか?
888デフォルトの名無しさん:2006/07/04(火) 19:54:20 BE:81522476-#
>>887
書いてあるとおり。
889デフォルトの名無しさん:2006/07/04(火) 20:20:08
[1] 授業単元:C++
[2] 問題文(含コード&リンク)
整数値aを入れると1+2+3+…+aを計算して返す関数(たとえば関数名sum)を作成し,これを呼び出しながら任意のaに対してその結果を画面に表示するプログラム(たとえばプログラム名funcdemo1.cpp)を作成、実行すること。以下の二つのタイプを作成すること!
1)sum()を値呼び出し型関数とした場合
2)sum()を参照呼び出し型関数とした場合


[3] 環境
 [3.1] OS: Windows xp
 [3.2] コンパイラ名とバージョン:
 [3.3] 言語: C/C++/どちらでも可
[4] 期限: 明日まで
890デフォルトの名無しさん:2006/07/04(火) 20:21:08
>>885
間抜け
891デフォルトの名無しさん:2006/07/04(火) 20:23:54
>>889
問題文に“!”を使うのも間抜けだが、適切な用語を使えないというのがもっと間抜け。
892デフォルトの名無しさん:2006/07/04(火) 20:32:40 BE:104814869-#
>>889
1)sum()を値呼び出し型関数とした場合
#include<stdio.h>
#include<stdlib.h>
int sum(int n){return n*(n+1)/2;}
int main(void){char tmp[100];while(1){printf("任意のa:");fgets(tmp,sizeof(tmp),stdin);
if(tmp[0]=='\n')break;printf("結果:%d\n",sum(atoi(tmp));}return 0;}

2)sum()を参照呼び出し型関数とした場合
#include<stdio.h>
#include<stdlib.h>
int sum(int& n){return n*(n+1)/2;}
int main(void){char tmp[100];while(1){printf("任意のa:");fgets(tmp,sizeof(tmp),stdin);
if(tmp[0]=='\n')break;printf("結果:%d\n",sum(atoi(tmp));}return 0;}
893デフォルトの名無しさん:2006/07/04(火) 20:36:00
>>885を絞ってみた
#include <iostream>
using namespace std;
main() {
int i,x,sum=0;
for(i=1011; i<=9998; i+=10) {
x = (i%100); // 下二桁を取得
if((x/10) % 2 == 0) // 10の位が偶数
sum+=(i-1)*9+45;
else // 10の位が奇数で1の位が偶数
sum+=(i-1)*4+20;}
cout << "\nsum : " << sum;
}
894デフォルトの名無しさん:2006/07/04(火) 20:40:45
ほんと間抜けだよな。
お前らの世界じゃ0が2の倍数らしいな。
895デフォルトの名無しさん:2006/07/04(火) 20:43:54
>>892
printfの閉じ括弧が足りないっす
896デフォルトの名無しさん:2006/07/04(火) 20:46:34
>>894
ああ、ほんと、100単位で0が混じってたw
897デフォルトの名無しさん:2006/07/04(火) 21:16:58
[1] 授業単元:プログラム設計
[2] 問題文(含コード&リンク):人間とコンピュータが対戦できる三目並べを製作せよ
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限: 7/6 正午まで
[5] その他の制限:特になし

以下のようなソースコードを書いたのですが(チェック用に無駄なfprintf文が入ってます)、
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2244.txt
コンパイルすると何故か1手目からコンピュータの手が入っていたり、
-Oオプションで最適化してコンパイルすると最初は正常であるものの手数がおかしくなって連続で手が打てたりするような状態になります。
皆目原因の見当がつかないのでここを頼ってみた次第です。
よろしくお願いします。
898デフォルトの名無しさん:2006/07/04(火) 21:27:21
>>894
整数 a によって整数 b が割り切れるとき、b は a の倍数であるという。
という定義から考えるに0は2の倍数と思うのだが。
899デフォルトの名無しさん:2006/07/04(火) 21:35:55
>>894
お前の世界じゃ0が2の倍数じゃないらしいな。
900デフォルトの名無しさん:2006/07/04(火) 21:39:25
>>877
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2245.cpp
うわっ、もうわけわかんね。とりあえず10の位が0になっていたのを除いてみたけど
0を入れるんだったらもっと簡単な式にできる罠
901デフォルトの名無しさん:2006/07/04(火) 21:46:18
っつか、0もおkなら単純に偶数のみの足し算をしろ
といった出題でええやん・・・やっぱ下二桁の積で0は抜かせってことじゃね?
902デフォルトの名無しさん:2006/07/04(火) 21:50:52
って、10の位が2だったら1の位が奇数でもええんやね・・・俺もうだめぽ
サッカーの試合まで寝るっすw
903837:2006/07/04(火) 21:55:40
>>857
ありがとうございます!
やっぱりあきらめきれなくてまたきちゃいました…
すみませんが、
while,printf,scanf,if,elseを使った式だけでできないものでしょうか?

FILE* fp;

char buf[128];

fp = stdin;

while (fgets(buf, sizeof buf, fp) != NULL) {

atoi(buf);

return 0;

↑このようなものを使ったことがないのでわからないんです…
注文がおおくてすみません!
長くなってもかまわないのでよろしくお願いします。




const,cher,label,for,return,
int grade[5] = {0};
904デフォルトの名無しさん:2006/07/04(火) 22:01:16
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2246.cpp
最後に下二桁の積が0でもおkな奴をうpして、今日はこれでジダンのごとく引退します
905デフォルトの名無しさん:2006/07/04(火) 22:03:07
>>904訂正、1000からやってへんかった orz
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2247.cpp
906デフォルトの名無しさん:2006/07/04(火) 22:10:22
>>897
どうでもいいけど気になったこと。

char input[20];

scanf("%s",&input); ←'&'イラネ

for文を使った初期化処理
→ memset(v,0,sizeof(v));で一発。

if(max == 4){ return 2; } else{ return 0; } みたいな処理
→ 条件演算子を使うと見やすい。 return (max == 4)? 2:0;
907 ◆NeetJ30Le. :2006/07/04(火) 22:13:15
>>903
#include <stdio.h>
int main()
{
int score;
int grade[5] = {0};
char *title[5] = {"秀:", "優:", "良:", "可:", "不可:"};
int i, j;

while (scanf("%d", &score) != EOF) {
if (score >= 90) grade[0]++;
else if (score >= 80) grade[1]++;
else if (score >= 70) grade[2]++;
else if (score >= 60) grade[3]++;
else grade[4]++;
}

i = 0;
while (i < 5) {
printf("%s", title[i]);
j = 0;
while (j < grade[i]) {
printf("*");
j++;
}
printf("\n");
i++;
}
}
908903:2006/07/04(火) 22:20:51
>>907
何度もすみません!ありがとうございます!
質問があります!
char *title[5] と grade[1]++; はどういう意味でしょうか?
909903:2006/07/04(火) 22:23:51
すみません。あと、
EOFとif文の後にgrade[0]++; をつけるのがよくわかりません…。
910デフォルトの名無しさん:2006/07/04(火) 22:24:04
char *title = "aaa" → titleはキャラのポインタ
char *title[5] = ... → titleはキャラのポインタの配列(要素数5)
grade[1]++ → grade[1] = grade[1] + 1と同じ。
911 ◆NeetJ30Le. :2006/07/04(火) 22:25:33
>>903
黙ってそのまま提出するか、それが嫌ならCの勉強をしてください。
912912:2006/07/04(火) 22:29:37
どうしてもわからないので質問させてください。
VC2005で以下のコードを入力して、実行すると結果がおかしいような気がする。
もし理由があれば教えてほしいのですが・・・

#include <stdio.h>
#include <time.h>

void main()
{
int i=1;
time_t t1,t2;
time(&t1);//表示前の秒数を格納

while(i<=5000){
printf("%d,",i++);
}
time(&t2);
printf("\ntime1=%ld\n",t1);//time_tはlong型なので%ld
printf("\ntime2=%ld\n",t2);//time_tはlong型なので%ld
printf_s(" %ld %ld ", t1 , t2 );//time_tはlong型なので%ld
printf("かかった時間は、%d秒です。\n",t2-t1);
}


・実行結果の最後
time1=1152019127

time2=1152019127
1152019127 0 かかった時間は、0秒です。
        ↑ここがなんで0なのかがわからないtime2の値が入ると思っていたのだけど。
913デフォルトの名無しさん:2006/07/04(火) 22:32:57
1152019127-1152019127=0
914デフォルトの名無しさん:2006/07/04(火) 22:34:49
>>912はコードも読めないのか
915912:2006/07/04(火) 22:34:55
0秒の左側の0のことです。
説明がおかしくてすみません。
916デフォルトの名無しさん:2006/07/04(火) 22:41:24
[1] 授業単元:オペレーティングシステム
[2] 問題文(含コード&リンク):
プログラム
step1: a=x+y
step2: b=z+1
step3: c=a-b
step4: w=c+1
に関し、以下のプログラムを完成させて、step1とstep2を並列実行させるプログラムを作成せよ。
但し、x,y,zはプロンプトに従って入力するとする。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2248.c
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C言語
[4] 期限:7/4 26:00まで

よろしくお願いします
917デフォルトの名無しさん:2006/07/04(火) 22:49:41
>>912
//time_tはlong型なので%ld
この前提がおかしい。VC2005ではtime_tは__int64型。
なので、

printf_s(" %lld %lld ", t1 , t2 );//time_tは__int64型なので%lld

こうしなければならない。
もっとも、環境依存を減らすための time_t なんだから、

printf(" %ld %ld ", (long)t1 , (long)t2 );

このように明示的にキャストするのがベター。
918917:2006/07/04(火) 22:51:35
もし「time_tはlong型」をお題目のように教えている教科書だったら糞なので窓から投げ捨てろ。
教授だったらテキトーに合わせた上で見限れ。
919912:2006/07/04(火) 22:53:15
>>917

ありがとうございます。
C言語初心者なもので・・・
助かりました!
920デフォルトの名無しさん:2006/07/04(火) 22:54:51
>>912
スレ違いだけど・・・
確かにやってみたら、0になるね。printfでも0が表示された。
VC6で試してみたら(printfで)、正しく表示された。
なんだろね?Visual Studio 2005スレか、C/C++室スレで聞いてみたら?
921903:2006/07/04(火) 22:55:21
>>910
ありがとうございます!
>>911
何度も付き合ってくださってありがとうございました!
もっと勉強したいと思います!
助かりました!本当にありがとうございました!
922920:2006/07/04(火) 22:55:44
書き込んでいる間に解答が orz
923デフォルトの名無しさん:2006/07/04(火) 22:58:24
[1] 授業単元:情報科学U
[2] 問題文(含コード&リンク):http://www.s.kyushu-u.ac.jp/~z6ty02in/TEXT/mokuji.html
ここの「11.ポインタと配列」の中の、「課題11(1/4)〜(4/4)」です
[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2006年7月7日(金)8:40まで
[5] その他の制限:

よろしくお願いします。
924デフォルトの名無しさん:2006/07/04(火) 23:02:27
>>916
もうちょっとしたら習うのかもしれないけど、その元プログラム、根本的に
おかしいから気をつけてね。
925デフォルトの名無しさん:2006/07/04(火) 23:09:31
>>924
何がおかしいんですか?
926デフォルトの名無しさん:2006/07/04(火) 23:11:42
>>925
exit(0)
927デフォルトの名無しさん:2006/07/04(火) 23:12:39
exit(0)とexit(1)ってどう違うの?
ど素人な質問で申し訳ない
928デフォルトの名無しさん:2006/07/04(火) 23:15:28
>>926
元がこんなソースだったので多分教授が間違えたのかも…
できれば>>916の問題よろしくお願いします。
929デフォルトの名無しさん:2006/07/04(火) 23:17:31
>>927
いや、そういう話じゃない。
どのようなカリキュラムで、どの時点で>>916が出てきたのかわからないけど、
正しいお作法としては、親プロセスは勝手に終了してはいけないってこと。
この先waitの話が出てこなかったら、この話を思い出してくれ。
930デフォルトの名無しさん:2006/07/04(火) 23:22:45
ん?あってんじゃないの?exit(0)してるのは子プロセスだよ。
931デフォルトの名無しさん:2006/07/04(火) 23:27:47
なんか最近、問題にケチつけたり、余計な講釈垂れる奴多いな。
そういうのいらないから。答えないんだったら、黙ってて。
932デフォルトの名無しさん:2006/07/04(火) 23:35:56
好きにさせておけばいいじゃん
なんとかは放置に限るんじゃなかったっけ
933デフォルトの名無しさん:2006/07/04(火) 23:37:43
荒らしを完全無視できる俺は神?
934デフォルトの名無しさん:2006/07/04(火) 23:43:01
>>933
そういうことを書いた時点で負け組。
935デフォルトの名無しさん:2006/07/04(火) 23:45:13
>>933
お前を完全無視できる俺は神?
936924:2006/07/04(火) 23:54:28
えっと、そういう話じゃなくて・・・。

step1を子プロセス1で、step2を子プロセス2で計算させて、
その結果を親プロセスでさらに計算するってことでしょ。(これが違うのか?)

だとしたら、子プロセスはなんらかの方法で親プロセスに結果を返さないと
いけないんだけど、子プロセス1はなにもせずにexit(0)で終了してるでしょ。
それがおかしいってこと。

exitで計算結果を返すという手もあるけど、exit(0)してるから、それも出来ない。

というわけで、俺には解答不能です。
937デフォルトの名無しさん:2006/07/05(水) 00:00:53
[1] 授業:プログラミング演習
[2] 問題文:
・100個のノードを生成する
・ノードに重みを適当に点ける(1〜100)
・任意のノードペアを選び、重みの和を取り、重みの和が100以上のノードペアにリンクを張る
・それぞれのノードの持つリンクの数を計算する
・リンクの数の分布
 (リンクが1つ・・・○○、リンクが2つ・・・○○、・・・みたいな)
[3] 環境:[Windows XP Borland C++ Compiler 5.5(BCC Developer) C言語
[4] 期限:早目がうれしいです
[5] その他の制限:講義自体が酷いので独学で進めていますがさっぱりです
938デフォルトの名無しさん:2006/07/05(水) 00:03:15
>>936
多分、件の教授は、スレッドと間違えたんだよw
939デフォルトの名無しさん:2006/07/05(水) 00:08:37
[1]プログラミングA
[2]問題文(含コード&リンク):次のアルファベットのキーワードを入力して計算する関数電卓プログラムを作成しなさい。
sin, cos, tan, arcsin, arccos, arctan, ln, log, exp, squr, rad, deg, end
[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン: VC 6.0
 [3.3] 言語:C++
[4]期限 7月6日
[5]特になし
どうぞよろしくお願いします。

940920:2006/07/05(水) 00:12:04
>>916
一応、exitで計算結果を返すバージョンのものを書いてみた。
なんで256で割ってるのかは、man wait。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2250.txt
941デフォルトの名無しさん:2006/07/05(水) 00:12:51
>>939
おいおい、それ、いつ出された問題だ?
942デフォルトの名無しさん:2006/07/05(水) 00:15:35
>>941
6月の中旬くらいです。
943デフォルトの名無しさん:2006/07/05(水) 00:16:27
>>942
丸投げするなら早めに投げようよ・・・
944デフォルトの名無しさん:2006/07/05(水) 00:19:25
>>942
こういうやついるいるw
945デフォルトの名無しさん:2006/07/05(水) 00:19:58
お願いします
【質問テンプレ】
[1] 授業単元:基本プログラミング
[2] 問題文(含コード&リンク): 角度(0度以上180度以下)と計算すべき項数を引数として、正弦値の値を近似する関数を宣言し、入力した角度に対し、指定した項数に対する近似値を出力するプログラムを作成せよ。
角度に0未満もしくは180より大きい数が入力されたときに終了する。
角度は、近似の関数内でラジアンに変換すること。出力はmain関数で行うこと。
(実行例)
Input degree(0<=degree<=180):30
Input n:5
sin30=0.5
Input degree(0<=degree<=180):30
Input n:1
sin30=0.523598
Input degree(0<=degree<=180):30
Input n:2
sin30=0.499674
Input degree(0<=degree<=180):45
Input n:10
sin30=0.707106
Input degree(0<=degree<=180):-1
[3] 環境
 [3.1] OS:UNIX
 [3.3] 言語:C++
[4] 期限:明後日
[5] その他の制限:if,for,whileなどまでやりました
946デフォルトの名無しさん:2006/07/05(水) 00:20:57
>>940
どうもありがとうごじあます
947デフォルトの名無しさん:2006/07/05(水) 00:23:19
>>940
俺、924だったorz
948デフォルトの名無しさん
>>939
endって何?