[
>>1 からついでに色々。]
・同じ講義を受けている人が既に同じ宿題を依頼してるかもしれなせん。
まずはスレを少しさかのぼって探してみてください。
それさえ出来ないシメジ野郎はバター焼きにして食っちまうぞ
・解答者は答える義務もないし、答えてもそれが正しいかどうかは保証しません。
もちろん、出題者先生の意図なんぞ知ったことではありません。
At your own riskで。
・態度が余りに悪いとすーぱーはかーがあなたの先生にチクるかもしれません。
・お礼ぐらいは言いましょう。
/******************************************** ** このスレはまだ未稼働です。 ** 前スレが埋まってから使いましょう。 ********************************************/
>まだ未稼働 そのうち「もう未稼動」になったり「まだ稼動」になったりするんでしょうか。
5 :
デフォルトの名無しさん :2006/06/04(日) 04:40:44
[1] 授業単元: Introduction to C/C++ Programming [2] 問題文(含コード&リンク): 1.Local variables a. are visible only in the scope in which they have been defined. b. are destroyed in the reverse order in which they are created. c. have their destructors invoked by the C++ subsystem when they leave scope. d. all of the above. 2.Which file open mode would be used to write data only to the end of an existing file? a. ios::app b. ios::in c. ios::out d. ios::trunc よろしくお願いします。
>>7 b,cってこんなのまで規定されていたっけ?
#include <iostream>
using namespace std;
class A {
private:
const char* s;
public:
A(char const* s):s(s) {cout << "A(" << s << ")" << endl;}
~A() {cout << "~A(" << s << ")" << endl;}
};
int main()
{
static A a("foo");
{
static A a("bar");
}
{
static A a("hoge");
}
}
9 :
デフォルトの名無しさん :2006/06/04(日) 16:34:55
>>6-7 ありがとうございます。
3.Which of the following is the best definition or example of the "principle of least privilege?"
a. Always separate classes into .h definition files and .cpp implementation files.
b. Use global variables to avoid access problems.
c. Grant access to only those clients who have a legitimate need for access.
d. Whenever possible, prefer composition over inheritance.
4.A StatusLabel
a. inherits from class StatusStrip
b. is a control with a StatusStrip control.
c. is a type of flair.
d. none of the above
5.When the code in a try block does not throw an exception, which of the following is false?
a. all the catch handlers immediately following the try block are skipped
b. execution resumes with the first line of code after the catch handlers
c. a default exception is thrown
d. none of the function calls within the try block threw an exception
お願いします。
>>9 あと何問あるんだ?
追加で張るのはなるべく止めて欲しい。
張るなら、全部まとめて張ってくれ。
12 :
デフォルトの名無しさん :2006/06/04(日) 17:07:56
ここって標準C/C++のみ?VC++の宿題はだめ?
[1] 授業単元:アルゴリズム論 [2] 問題文: 1方向線状リストを使って、スタックを実現せよ。 ただし、各記憶要素xは整数値をとるものとする。 関数として、push(x)、pop()、empty()、ならびに現在のスタック内容を 表示するためのshow()を用意する。 ヒント:1方向線状リストの先頭(左端)がスタックのトップを表すようにすると、 リスト末尾へのポインタが不要になる。 [3] 環境 [3.1] OS:Linux [3.2] コンパイラ(バージョン):gcc [3.3] 言語:C [4] 期限:6/7まで [5] その他の制限:無し どなたかご教授お願いします。
14 :
デフォルトの名無しさん :2006/06/04(日) 17:23:19
>>10 わかりました。残りいきます!
6. Int16, Int32, Double, and String
a. are executable C++ statements.
b. are examples of data types.
c. are compile error categories.
d. none of the above
7. To disable a menu item,
a. just delete the item.
b. set the Enabled property to false.
c. set the Enabled property to disabled.
d. remove the Enabled property.
8. With Visual C++ Forms Programming, the easiest way to present a dialog window to the user is to use
a. a MessageBox.
b. the cout object.
c. a data file.
d. inheritance.
9. The following method definition, private: Void adjustMargin( Int32 marginSize = 15 ) { . . . }
a. specifies a return type of Void.
b. is a method that can only be invoked within the scope of a method belonging to the same class.
c. is an example of how to specify a default argument value.
d. all of the above
15 :
デフォルトの名無しさん :2006/06/04(日) 17:24:39
続き 9. The following method definition, private: Void adjustMargin( Int32 marginSize = 15 ) { . . . } a. specifies a return type of Void. b. is a method that can only be invoked within the scope of a method belonging to the same class. c. is an example of how to specify a default argument value. d. all of the above 10. String::SubString a. extracts a portion of a string. b. specifies an inheritance relationship. c. is not supported by Visual C++. d. is an iostream operation. よろしくお願いします。
>>13 struct stack{int x; struct struct* next;};
struct stack* STACK=NULL;
void push(int x){struct stack* sp=STACK;while(!sp)sp=sp->next;
sp=(struct stack*)malloc(sizeof(struct stack));sp->x=x;sp->nextNULL;}
int pop(){int ret;struct stack* sp=STACK;struct stack* prev=NULL;
while(sp){prev=sp;sp=sp->next;}if(sp){ret=sp->x;prev->next=NULL;free(sp);return ret;}
return 0;}
void empty(){struct stack* sp=STACK;struct stack* next=NULL;
while(sp){next=sp->next;free(sp);sp=next;}}
void show(){struct stack* sp=STACK;while(sp){printf("%i\n",sp->x);sp=sp->next;}}
そんな変なタイトルでいいのか
>>2 も書いてないし
タイトルでグダグタ抜かすな
こっちでいいやん。頭悪いタイトルは嫌だわ。
固定名の入っているスレッドタイトルは削除対象となります。
タイトルがどうのこうのいってるバカがいるが、何か問題でもあるんか?
1年ぼうずの宿題です。 2つの数値を入力し、次に+,-,*,/を入力して、計算方法を決めて結果を出すというものなのですが、 yの値が途中で強制的に0になります。 #include <stdio.h> void main() { int x,y,z; char a; printf("2つの数値を入力せよ。\nx="); scanf("%d",&x); printf("y="); scanf("%d",&y); printf("+(和),-(差),*(積),/(商)のいずれかの記号を入力し、\n2つの値を演算方法を入力して決定せよ。\n演算方法は "); scanf("%s",&a); switch(a){ case 43: z=x+y; printf("%d + %d = %d \n",x,y,z); break; default: printf("該当する記号ではありません。\n"); break; } } 具体的に言うと、11行目の scanf("%s",&a); があるとyが0になりました。(これをはずすと正常にyの数値が継続される) どういうワケなんでしょうかこれって?
>>24 scanf()の使い方が間違っている。
あと、スレ違い。
>>25 すまんかった、次から無いように気をつける
>scanf("%s",&a); だからscanfなんか使うなと(ry
28 :
デフォルトの名無しさん :2006/06/05(月) 04:01:50
3.Which of the following is the best definition or example of the "principle of least privilege?" a. Always separate classes into .h definition files and .cpp implementation files. b. Use global variables to avoid access problems. c. Grant access to only those clients who have a legitimate need for access. d. Whenever possible, prefer composition over inheritance. 4.A StatusLabel a. inherits from class StatusStrip b. is a control with a StatusStrip control. c. is a type of flair. d. none of the above 5.When the code in a try block does not throw an exception, which of the following is false? a. all the catch handlers immediately following the try block are skipped b. execution resumes with the first line of code after the catch handlers c. a default exception is thrown d. none of the function calls within the try block threw an exception 誰かお願いします。
29 :
デフォルトの名無しさん :2006/06/05(月) 04:03:09
続きです。 6. Int16, Int32, Double, and String a. are executable C++ statements. b. are examples of data types. c. are compile error categories. d. none of the above 7. To disable a menu item, a. just delete the item. b. set the Enabled property to false. c. set the Enabled property to disabled. d. remove the Enabled property. 8. With Visual C++ Forms Programming, the easiest way to present a dialog window to the user is to use a. a MessageBox. b. the cout object. c. a data file. d. inheritance. 9. The following method definition, private: Void adjustMargin( Int32 marginSize = 15 ) { . . . } a. specifies a return type of Void. b. is a method that can only be invoked within the scope of a method belonging to the same class. c. is an example of how to specify a default argument value. d. all of the above
30 :
デフォルトの名無しさん :2006/06/05(月) 04:03:57
続きです。 6. Int16, Int32, Double, and String a. are executable C++ statements. b. are examples of data types. c. are compile error categories. d. none of the above 7. To disable a menu item, a. just delete the item. b. set the Enabled property to false. c. set the Enabled property to disabled. d. remove the Enabled property. 8. With Visual C++ Forms Programming, the easiest way to present a dialog window to the user is to use a. a MessageBox. b. the cout object. c. a data file. d. inheritance. 9. The following method definition, private: Void adjustMargin( Int32 marginSize = 15 ) { . . . } a. specifies a return type of Void. b. is a method that can only be invoked within the scope of a method belonging to the same class. c. is an example of how to specify a default argument value. d. all of the above
31 :
デフォルトの名無しさん :2006/06/05(月) 04:05:21
もう1つ続きです。 9. The following method definition, private: Void adjustMargin( Int32 marginSize = 15 ) { . . . } a. specifies a return type of Void. b. is a method that can only be invoked within the scope of a method belonging to the same class. c. is an example of how to specify a default argument value. d. all of the above 10. String::SubString a. extracts a portion of a string. b. specifies an inheritance relationship. c. is not supported by Visual C++. d. is an iostream operation. よろしくお願いします。
32 :
デフォルトの名無しさん :2006/06/05(月) 04:06:58
29と30は同じです。すいません。
,;r''"~ ̄^'ヽ, ./ ;ヽ l _,,,,,,,,_,;;;;i <いいぞ ベイべー! l l''|~___;;、_y__ lミ;l テンプレで依頼しない奴はクズだ! ゙l;| | `'",;_,i`'"|;i | テンプレで依頼する奴はよく訓練されたクズだ! ,r''i ヽ, '~rーj`c=/ ,/ ヽ ヽ`ー"/:: `ヽ / ゙ヽ  ̄、::::: ゙l, ホント このスレは地獄だぜ! フゥハハハーハァー |;/"⌒ヽ, \ ヽ: _l_ ri ri l l ヽr‐─ヽ_|_⊂////;`ゞ--―─-r| | / | ゙l゙l, l,|`゙゙゙''―ll___l,,l,|,iノ二二二二│`""""""""""""|二;;二二;;二二二i≡二三三l | ヽ ヽ _|_ _ "l ̄ ̄ ̄ ̄ ̄ ̄ |二;;二二;;二=''''''''''' ̄ノ /"ヽ 'j_/ヽヽ, ̄ ,,,/"''''''''''''⊃r‐l'二二二T ̄ ̄ ̄ [i゙''''''''''''''''"゙゙゙ ̄`" / ヽ ー──''''''""(;;) `゙,j" | | |
35 :
デフォルトの名無しさん :2006/06/05(月) 08:54:26
[1] プログラミング入門 [2]バブルソートのプログラムを作成し、実行結果とともに提出せよ(配列を使う) [3] 環境 [3.1] windowsXP [3.2] Microsoft Visual C++ 6.0 [3.3] C言語 [4] 期限: 2006年6月5日17:30までです。 [5] あまり高等ではない方法でお願いします!
36 :
デフォルトの名無しさん :2006/06/05(月) 09:55:19 BE:93168768-#
>>35 バブルソートに高等もクソもあるか。
#include<stdio.h>
#include<string.h>
void bubblesort(char** a,size_t n){size_t i,j;char* tmp;
for(i=0;i<n-1;i++)for(j=n-1;j>i;j--)
if(strcmp(a[j],a[j-1])<0){tmp=a[j];a[j]=a[j-1];a[j-1]=tmp;}}
あとは自分で。
>>36 高等なバブルって計算量減らした改良版のことじゃね?wwww
38 :
13 :2006/06/05(月) 14:46:58
39 :
前スレ973 :2006/06/05(月) 15:45:09
>>993 ありがとうございます。
コンパイルして実行したのですが、何を入力すればよいのでしょうか?
ファイルの読み込みは手動でしょうか?
1000いっちゃったので、すみません・・・
リダイレクト
41 :
デフォルトの名無しさん :2006/06/05(月) 22:20:16
[1] プログラミング入門 [2]【リスト,削除】 キーボードから整数を入力し, 0 以外の値の場合はリストの先頭に挿入し, 0 の場合は終了するプログラムを作成せよ. ただし,リスト中に同じ値が存在する場合は remove_node を用いて削除する. 整数入力毎にリストの中身を表示せよ. [3] 環境 [3.1] windowsXP [3.2] Microsoft Visual C++ 6.0 [3.3] C言語 [4] 期限:明日中 [5]できれば意味のわかりやすいプログラムをよろしくです。
>>42 ご自由に。
というかリストの定義はときかれて何を答えればいいのかすらもわからないぐらいこの課題の意味わかってないです。
申し訳ないです。
>>43 ご自由にでは解答できる人が居ないぞ。
授業では、「リスト」というものが、どのような形で紹介されていたのか、具体的に説明してよ。
ノードってあるぐらいだから… 自己参照型のやつじゃないの
リストの定義 struct node_tag { int value; struct node_tag *next; }; typedef struct node_tag node_t; これかな・・・
remove_nodeとやらのプロトタイプは? つーか、他に定義されているリスト操作関数はないのか?
スルーしろ。
すまん、スルーしてくれ
>>41 #include <stdio.h>
#include <stdlib.h>
struct node_tag
{ int value;
struct node_tag *next; };
typedef struct node_tag node_t;
node_t* pFirstNode = NULL;
void insert_node(node_t* pNode) {pNode->next = pFirstNode; pFirstNode = pNode;}
node_t* remove_node(node_t* pNode) { if(pFirstNode == pNode) {
pFirstNode = pNode->next; pNode->next = NULL; return pNode;
} else { node_t* pNode2 = pFirstNode;
while(pNode2 != NULL) { if(pNode2->next == pNode) {
pNode2->next = pNode->next; pNode->next = NULL; return pNode;
} pNode2 = pNode2->next; } return NULL;} }
node_t* find_node(int nValue) { node_t* pNode = pFirstNode;
while(pNode != NULL) { if(pNode->value == nValue) return pNode;
pNode = pNode->next; }return NULL; }
int main() { char sValue[1024]; int nValue; node_t* pNode;
while(fgets(sValue, 1024, stdin) != NULL) { nValue = atoi(sValue);
if(nValue == 0) break; pNode = find_node(nValue);
if(pNode == NULL) { node_t* pNode = malloc(sizeof(node_t));
if(pNode != NULL) { pNode->value = nValue; pNode->next = NULL;
insert_node(pNode); } } else {
remove_node(pNode); free(pNode); } pNode = pFirstNode;
while(pNode != NULL) { printf("%d,", pNode->value); pNode = pNode->next;
} printf("\n"); } pNode = pFirstNode;
while(pNode != NULL) { node_t* pNode2 = pNode->next; free(pNode);
pNode = pNode2; } return 0; }
[1] 授業単元:カプセル化・オーバーロード・コンストラクタ・デストラクタ [2] 問題文(含コード&リンク): 後述のプログラムを、以下のように変更する。 ・円柱の体積計算部分をカプセル化する(double clc_cylinder();の部分をプライベートにする?)。 ・円柱の体積計算プログラムを利用して、円錐、半球、球の体積を求める。 (円錐の体積;1/3πr*3、球の面積:4/3πr*3) ・各図形の体積を表示する(円柱の体積計算はカプセル化しているので、注意)。 ・4つの体積の比を以下の要領で表示する。 円錐:半球:円柱:球 [3] 環境 [3.1] OS:WindowsXP [3.2] コンパイラ名とバージョン:VC [3.3] 言語: C++ [4] 期限: 2006年6月8日まで カプセル化が上手くできなくて…。よろしくお願いします。
52 :
51 :2006/06/06(火) 00:04:03
これが元のプログラムです。 #include<iostream> #include<cmath> #define PI 3.141592 using namespace std; class volume{ double r; public: void print(double a); double clc_cylinder(); volume():r(0){}; volume(double a):r(a){}; }; void volume::print(double a){ cout<<"半径=高さとなる円柱の体積は,"<<a<<"です."<<endl; } double volume::clc_cylinder(){ return PI*pow(r,3); } int main(){ volume cyl(10); double y=cyl.clc_cylinder(); cyl.print(y); return 0; }
>>52 これが出題ソースだとしたら、出題者はOOPを最初から勉強し直すべきだ。
55 :
51 :2006/06/06(火) 01:22:46
>>53 >clcはcalculationの意味?
わかりません。問題そのまま書いただけなので…。
>clc_cylinderをprivateにしたらダメです。
先生がそう言ってたような気がしたんですが。
ひょっとしたら僕が意味を取り違えてるのかも知れません。
>球の体積をわざわざ円柱から求める意味がわかりません。
半径と高さが同じ設定のようなので、πr^3の部分が共通してるため…だと思います。
>体積の公式が全部違う気がするのは気のせい?
書き方間違えました。πr*3の部分がπr^3です。
>この問題と元のコードってまさか原文のままじゃないよね?
基本的には原文のままですが…。
「“円柱の体積計算プログラムを利用して”、円錐、半球、球の体積を求める」
というのが問題ですので、元の体積計算部分を利用したプログラムにしたいのですが…。
(そのために高さと半径が同じという設定にされてるんだと思います)
>半径と高さが同じ設定のようなので、πr^3の部分が共通してるため…だと思います。 いや、ちょっと待てw >基本的には原文のままですが…。 わかった。その教官のメールアドレスを晒すんだ。 メールタイトル:あんたの無能さについて
常識的に考えればこうなるはずだが… class circleobject{ protected: double radius; double height; double volume; virtual void calcVolume()=0; public: double getVolume(){return volume;}; void setRadius(double r){radius=r;calcVolume()} void setHeight(double h){height=h;calcVolume()}}; class cylinder : public circleobject{ virtual void calcVolume(){volume=PI*pow(radius,2)*height;};}; class sphere : public circleobject{ virtual void calcVolume(){volume=4*PI*pow(radius,2)*height/3.0;};}; class corn : public circleobject{ virtual void calcVolume(){volume=PI*pow(radius,2)*height/3.0;};};
volumeクラスの意味がわからん。表面積を計算するような場合は別クラスでするのか? どうしても作るのならinterfaceぽくするしかないような。 class volume{ public: virtual double calcVolume() = 0; }; class surface{ public: virtual double calcSurface() = 0; }; こうするぐらいならベースクラス作るよなー。 class solid{ public: virtual double calcVolume() = 0; virtual double calcSurface() = 0; };
>>57 やべ。
virtual void sphere::calcVolume(){volume=4*PI*pow(radius,3)/3.0;};
>>58 だよなー。
出題者は根本的にOOPを理解していない。
60 :
デフォルトの名無しさん :2006/06/06(火) 03:36:11
[1] 授業単元:プログラミング演習 [2] 問題文(含コード&リンク): 1個以上10個以内の整数を大きさ10の整数配列に入力するプログラムで、入力する整数の個数は最初に宣言する。 例えば3と4からなる2個の整数を入力するには”2 3 4” 次にvoid recorder(int*data,int num);を作成し*dataから始まるアドレスに、順におかれたnum個の整数を小さい順に並び替える機能を与える。 recoder()の中ではswapsmall()を有効に活用する。配列宣言以外はポインタを用いなさい。 recoder()を適用した後,配列の内容をスペース1つで区切って出力し、入力された数字を大きい順に表示するプログラムを作成しなさい。最後の数字の後ろに空白はおかない swapsmallについて void swapsmall(int*data,int num);と言う関数で、*dataから始まるアドレスに順におかれたnum個の整数のうち最小のものを先頭のもの と入れ換える機能を与える。ただし同一の値をもつ最小の整数が複数ある場合には、一番後方にあるデータと入れ換える。 この関数を使わなくても良い。 [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) [3.3] 言語: C [4] 期限: 今日の朝6時過ぎまで よろしくお願いします。
61 :
デフォルトの名無しさん :2006/06/06(火) 04:21:04
[1]授業単元:基礎プログラミング [2]問題文 (1)1~10の二乗値を配列に代入して表示しよう 1~10の2乗値を配列a[1]~a[10]に入れ、その値を表示するプログラムを 作成せよ。つまりa[1]は1、a[2]は4……、a[10]は100である。 (2) キーボードから20個の整数(正と負の両方)を入力し、負でない整数の総個数と 総和を求めるプログラムを作成せよ。 (3) 学生10人の某授業科目の成績を入力し、最高、最低と平均数を求めるプログラムを 作成せよ。 [3]環境 [3.1]OS:windowsXP [3.2]cygwin [3.3]言語:C言語 [4]期限:明日まで。 よろしくお願いします。
(いずれも#inc… は略 61-1) int main(void){ int a[11]={0},i; for(i=1;i<11;i++){a[i]=i*i;printf("%d ",a[i]);} return 0; } 61-2) int main(void){ int i,j,k=0,l=0; for(i=0;i<20;i++){ scanf("%d",&j); if(j>-1){k++;l+=j;/* 非負数の総和ならここ */} /* l+=j; 20個の総和ならここ*/ } printf("numbers more than 0: %d sum: %d",k,l); return 0; }
64 :
>>61 :2006/06/06(火) 05:04:42
#include "stdio.h" void prac1() { int i, a[11]; printf("①\n");for(i=1;i<=10;i++)a[i]=i*i; for(i=1;i<=10;i++)printf("%d ",a[i]); printf("\n"); } void prac2() { int i,a[20],sum=0,cnt=0; printf("② 整数を20個入力して下さい\n"); for(i=0;i<20;i++){ scanf("%d",&a[i]); if(a[i] >= 0 ){ cnt++; sum+=a[i]; } } printf("正数の総個数: %d 正数の総和: %d\n",cnt,sum); } void prac3() { int i,a[10],sum=0,cnt=0,max=0,min=100; printf("③ 10人の点数を入力して下さい\n"); for(i=0;i<10;i++){ scanf("%d",&a[i]); cnt++; sum+=a[i]; if(a[i] > max) max = a[i]; if(a[i] < min) min = a[i]; } printf("最高:%d点 最低: %d点 平均: %3.1f点\n",max,min,((float)sum/(float)cnt)); }
>>56 アドレスと内容を教えてくれれば送ってあげる(はぁと
>>65 この教官マジで有害。このスレに来ないような他の優秀な学生が気の毒だ。
>>51 遅レスなんだが、表面積の公式が体積公式になってる気がするんだが・・・
それと俺も間違ってるかも知れんが体積だのを計算する関数はstaticにしたほうがいいんじゃね?
例えば球に関してなら、球そのものが計算する訳じゃなく、球に対して計算する訳だから
後、上でも書かれてるように基底クラス(shapeとか)を作って
それに計算するメソッド持たせてオーバーロードした方がいいだろうな
てかそれほんとに教官が書いた文章か?
つか、マジで学校名と教官名晒しキボン。 その教官がクビにならないならそこの学生は取らないようにしないと。 ウソを覚えてる奴は何も知らない奴よりたちが悪い。
学生のレベルのそのレベル
>>67 >表面積の公式が体積公式になってる
「円錐、半球、球の体積を求める」って問題文から察するに、
球も体積を求めたかったのでは。つまり、「体積」を「面積」と書き間違えた。
>>70 やっぱそうだよなぁ。まぁ意図は分かるしいいんだが
根本的にOOPの意味が無いな
[1]授業単元:演習 [2]問題文(含コード&リンク): 西暦の年(year)を読み込み、その年がうるう年 であれば"閏年"、うるう年でないときは"平年"と 表示して下さい。うるう年とは、2月が29日の 年。基本は4年に一回(4で割り切れる年はうる う年)、それだと多すぎるので100年に1回は 平年とする(100で割り切れる年は平年)、そ れだと少なすぎるので400年に一回をうるう年 に戻す(400で割り切れる数はうるう年)。 この課題はif文一つで。 [3]環境 [3.1]OS:windowsXP [3.2]コンパイラ名とバージョン:gcc [3.3]言語:C [4]期限:明日 [5]その他の制限:
[1]授業単元:演習 [2]問題文(含コード&リンク): 西暦の年(year)を読み込み、その年がうるう年 であれば"閏年"、うるう年でないときは"平年"と 表示して下さい。うるう年とは、2月が29日の 年。基本は4年に一回(4で割り切れる年はうる う年)、それだと多すぎるので100年に1回は 平年とする(100で割り切れる年は平年)、そ れだと少なすぎるので400年に一回をうるう年 に戻す(400で割り切れる数はうるう年)。 [3]環境 [3.1]OS:windowsXP [3.2]コンパイラ名とバージョン:gcc [3.3]言語:C [4]期限:明日 [5]その他の制限:この課題はif文のネス トで。(論理和、論理 積は使わないで下さい 。)
[1]授業単元:演習 [2]問題文(含コード&リンク): 整数値(n)を読み込み、絶対値を表示して下さい。 -20の絶対値は、20。20の絶対値は、20。 [3]環境 [3.1]OS:windowsXP [3.2]コンパイラ名とバージョン:gcc [3.3]言語:C [4]期限:明日 [5]その他の制限:
>>うるう年野郎 全く同じ問題を前スレでみたぞ。
[1]授業単元:演習 [2]問題文(含コード&リンク): #include <stdio.h> int main(void) { int mark; char grade; printf("得点入力:"); scanf("%d", &mark); if(mark >= 85){ grade = 'A'; }else{ if(mark >= 70){ /* 70 <= mark && mark < 85 とする必要の無いことに注意*/
grade = 'B'; }else{ if(mark >= 60){ grade = 'C'; }else{ grade = 'D'; } } } printf("評価:%c\n", grade); return 0; } 上の例では評価Aから順に決めている。同じ処理を評価Dから 順に決めていくよう作成してください。 [3]環境 [3.1]OS:windowsXP [3.2]コンパイラ名とバージョン:gcc [3.3]言語:C [4]期限:明日 [5]その他の制限:
[1] 授業単元: プログラム演習 [2] 問題文(含コード&リンク): 0~99の間の整数乱数を15個発生させ、それらの数値から二分探索木を作成し、 トラバーサル(行きがけ順、通りがけ順、帰りがけ順)を求めるプログラムを作成せよ [3] 環境 [3.1] OS:Unix [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 6/8 よろしくお願いします。
[1]授業単元:演習 [2]問題文(含コード&リンク): 月(month)を読み込み、その月の日数を表示して下さい。 2月は28日とする。 if文で作ってください。 小の月(31日でない月)は、西向く士(ニシムクサムライ、2 4 6 9 11)。 [3]環境 [3.1]OS:windowsXP [3.2]コンパイラ名とバージョン:gcc [3.3]言語:C [4]期限:明日 [5]その他の制限:
閏年これで合ってる? #include <stdio.h> int main(void) { int a; while (1){ printf("year > "); scanf("%d",&a); if ((a%4)==0&&((a%4)%100)==0&&((a%4)%(100)%400)==0){ puts("閏年"); }else{ puts("ちげーよ馬鹿"); } } }
[1]授業単元:演習 [2]問題文(含コード&リンク): 1から99までの奇数を表示してください。 [3]環境 [3.1]OS:windowsXP [3.2]コンパイラ名とバージョン:gcc [3.3]言語:C [4]期限:明日 [5]その他の制限:
>>81 おkかな?コンパイルはできた。
if文のネストで作る奴もお願いします。
>>81 100で割り切れる年が平年になってないかも
>>77 #include <stdio.h>
int main(void){
int mark;
char grade;
printf("得点入力:");
scanf("%d", &mark);
if(mark < 60){grade = 'D';
}else{
if(mark < 70){ grade = 'C';
}else{
if(mark < 85){grade = 'B';
}else{grade = 'A';}}}
printf("評価:%c\n", grade);
return 0;}
[1] 授業単元: プログラミング通論 [2] 問題文(含コード&リンク): 与えられた文字列 s から、その各文字を項目とするリストを作成せよ。 ( struct node *initlist_with_string(char *s) の関数を定義して下さいませ。) #include <stdio.h> typedef char elementtype; struct node { elementtype element; struct node *next; }; /* 空リストの作成 */ stuct node *initlist() { struct node *n; n = (struct node*)malloc(sizeof(struct node)); n->next = 0; return n; } /* リストに節点を挿入 */ void insert(struct node *p, elementtype x) { struct node *n; n = (struct node*)malloc(sizeof(struct node)); n->element = x; n->next = p->next; p->next = n; }
88 :
87 :2006/06/07(水) 00:05:50
struct node *initlist_with_string(char *s) { /* この3つは使う感じで・・・ */ struct node *head; head = initlist(); insert(head, *s); } void print_list(struct node *p) { while (p->next) { printf("%c", p->next->elment); p = p->next; } printf("\n"); } char *chomp(char *s) { int n = strlen(s) - 1; if (s[n] == '\n') s[n] = '\0'; return s; } int main(void) { char buffer[80]; struct node *list; fgets(buffer, 80, stdin); list = initlist_with_string(chomp(buffer)); print_list(list); } [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C
>>87-88 struct node* initlist_with_string(char *s){struct node* head=initlist();
struct node* p=head;while(*s!='\0'){insert(p, *s);p=p->next;s++;}
return head;}
90 :
デフォルトの名無しさん :2006/06/07(水) 00:16:52
[1]授業単元:プログラミング演習 [2] 1!~53!を計算して右揃えで出力するプログラムを作れ。 プログラムはいくつかの関数に分割せよ。 [3.1]OS:unix [3.3]言語:C [4]期限:金曜 [5]その他の制限:
>>90 int factorial(int n)
{
if (n > 0)
return (n * factorial(n - 1));
else
return (1);
}
これあれば、簡単だろ。
1! = 1 2! = 2 3! = 6 4! = 24 5! = 120 こんな感じ
94 :
87 :2006/06/07(水) 00:31:49
>>89 どうもありがとうございます!m(_ _"m)ペコリ
リストの作成すらよく分からなかったのでとても助かりました
>>90 #include<stdio.h>
double fact(int n){return (n>0)?fact(n-1)*n:1;}
int main(void){int i;for(i=1;i<54;i++)printf("%2u = %70.0f\n",i,fact(i));return 0;}
そこでGMPですよ
98 :
デフォルトの名無しさん :2006/06/07(水) 00:47:53
>>74 こんな感じか?
#include <stdio.h>
int main(void)
{
int year;
printf("year > ");
scanf("%d",&year);
if (year % 4 == 0){
if (year % 100 != 0){
printf("\n閏年\n");
} else {
if (year % 400 == 0){
printf("\n閏年\n");
} else {
printf("\n平年\n");
}
}
} else {
printf("\n平年\n");
}
return (0);
}
99 :
90 :2006/06/07(水) 00:52:56
ヒントとしては階乗値を入れる配列を用意するらしいです。
そのヒントは守らなきゃいけないのかね?
101 :
デフォルトの名無しさん :2006/06/07(水) 00:58:32
102 :
90 :2006/06/07(水) 01:00:08
>>100 採点基準が書いてあるんですけど、配列をちゃんと使えてると書いてあるのでおそらく。
103 :
101 :2006/06/07(水) 01:00:48
>>104 #include されてるファイルを<cstdio>のようにc付けてinclude。
拡張子を.cppに。
106 :
101 :2006/06/07(水) 01:05:52
Firefoxじゃ見れん
>>106 #include<stdio.h>
#include<stdlib.h>
#define N 10
void bubblesort(int* a,size_t n){size_t i,j;int tmp;
for(i=0;i<n-1;i++)for(j=n-1;j>i;j--)
if(a[j]<a[j-1]){tmp=a[j];a[j]=a[j-1];a[j-1]=tmp;}}
int main(void){int i,n[N];char tmp[100];
for(i=0;i<N;i++){fgets(tmp,sizeof(tmp),stdin);n[i]=atoi(tmp);}bubblesort(n,N);
for(i=0;i<N;i++)printf("%i\n",n[i]);return 0;}
109 :
101 :2006/06/07(水) 01:29:40
>>108 すみません。制限は特にないと書きましたが、
stdlib.hは習っていないのと、void bubblesortも使ってはいけないことになってると思います…
if文、while文、for文あたりしか習ってないので、それでお願いします。お願いします。
>>109 >void bubblesortも使ってはいけないことになってると思います
アホか。bubblesortこそが目的の関数だろが。
111 :
101 :2006/06/07(水) 01:47:05
>>110 いえ…今までに習ったif,while,for,breakの範囲内で、
リンク先資料の「バブルソート(1/7)」から「バブルソート(7/7)」までの概念を利用して
プログラムせいということなんです。また明日考えてみますが、もうだめぽです
>>111 言ってる意味がわからん。
>「バブルソート(1/7)」から「バブルソート(7/7)」までの概念を利用してプログラム
したものがvoid bubblesortなんだが。
113 :
101 :2006/06/07(水) 01:59:49
>>112 えーと、授業では、Meado2でプログラムして、cygwinでgccでコンパイル・実行するんですが、
voidっていう命令文は習っていないです。
ただ
>>108 をよーく( ゚д゚)みるとなんだかわかるような気はしてくるんですが…
voidは命令文ではない
115 :
101 :2006/06/07(水) 02:07:55
108のの中身とにらめっこしながら頑張ってみます。ありがとうございました。
こういう書き方にして欲しかったんじゃないか? #include<stdio.h> #define N 10 int main(void){ int i,j,tmp,n[N]; char buf[100]; for(i=0;i<N;i++){ fgets(buf,sizeof(buf),stdin); sscanf(buf,"%d",&n[i]); } for(i=0;i<=N-2;i++){ for(j=N-1;i<j;j--){ if(n[j]<n[j-1]){ tmp=n[j]; n[j]=n[j-1]; n[j-1]=tmp; } } } for(i=0;i<N;i++)printf("%d\n",n[i]); return 0; }
そもそも「習ってないから使うな」の意味がわからん。 習ってないと何か問題でもあるんだろうか。
習ったことはさっぱり分かってないのに、習ってないということは分かるんだなw
119 :
デフォルトの名無しさん :2006/06/07(水) 03:51:14
[1] 授業単元: プログラム技法 [2] 問題文 1、あなたの夢をstrcpy関数で文字配列に代入し、表示しよう 文字列を入れる変数my_dreamを300文字まで代入できるように宣言し、変数my_dreamに あなたの夢を代入し表示せよ。つまりあなたの「夢」を、scanf関数でキーボードから読み込む必要はない。 例、野球選手になりたい サッカー選手になりたい など 2、英字文字列を入力し、中に文字'a'が入っていたら、そのすべてを削除した文字列を出力するプログラムを作成せよ。 3、出力にあるように文字列S2を文字列S1のn番目に挿入するプログラムを作成せよ。 出力例 S1:abcdefg S2:hijkl n:3 the output string is: abchijkldefg [3] 環境 [3.1] OS: WindowsXP [3.2] cygwin [3.3] 言語:C言語 [4]明日正午まで ではよろしくお願いいたします。
闇に隠れて生きる 俺たちゃ妖怪人間なのさ♪
>>79 をどなたかよろしくお願いします..orz
>>120 #include <stdio.h>
#include <string.h>
void print(char a[],char b[][8]);
int main(void){
char a[8]="aichi";
char b[10][8]={0};
int i,j,k;
k=strlen(a);
print(a,b);
for(i=0;i<k;i++){
printf("%s\n",b[i]);
}
return 0;
}
void print(char a[],char b[][8]){
int i,j,k;
k = strlen(a);
for(i=0;i<k;i++){
for(j=0;j<i;j++)b[i][j]=' ';
b[i][i]=a[i];
}
}
[1] プログラミング [2] 標準入力から文字を読み込んで特定の文字の連続たとえばowari を入力した場合終了するようなプログラムを作成 [3] 環境 [3.1] xp [3.2] gcc 3.4 [3.2]どちらでも可 [4] 今週中 よろしくお願いします!
>>125 #include <stdio.h>
#include <string.h>
void main(){
char str[250];
while(1){
scanf("%s", str);
if (strcmp(str, "owari") == 0) break;
}
}
>>120 #include <stdio.h>
#include <string.h>
void naname(char*, int);//宣言
int main(void){
char a[8]="aichi";
int i,j,k;
naname(a, strlen(a));//呼び出し
return 0;
}
void naname(char *s, int n){//関数
for(int i = 1; i <= n; i++, s++)printf("%*c\n", i, *s);
}
129 :
デフォルトの名無しさん :2006/06/07(水) 16:40:44
>>129 原文は長いので、かなりまとめています。
(1)単元名:プログラミングA (2)問題文: 次のアルファベットのキーワードを入力して計算する関数電卓プログラムを作成しなさい。 sin, cos, tan, arcsin, arccos, arctan, ln, log, exp, sqr, rad(入力データをラジアン単位にする), deg(入力データを度を単位とする), end(プログラムの終了) (3)環境:Win コンパイラ:Visual Studio 2003.net 言語:C (4)期限:6/9
[1] 授業単元: プログラミング演習 [2] 問題文(含コード&リンク): 10個の整数を入力し、最大値、最小値を表示し、 さらに、入力された10個の数字を小さい順に並び替えするプログラムを作成せよ。 [3] 環境 [3.1] OS: WindowsXP [3.2] コンパイラ名とバージョン: visual c++ 2005 [3.3] 言語: C++ [4] 期限:6月8日まで [5] その他の制限:習ったもの if for do while
>>131 アップロードできる大きさなら原文貼ってちょ。
135 :
デフォルトの名無しさん :2006/06/07(水) 17:18:17
>>135 ,137,138,140
どうもありがとうございました
[1] 授業単元:プログラミング演習1 [2] 問題文(含コード&リンク): 前スレ152の貯金プログラムを拡張して、額の表示の際に3桁ごとにコンマを入れる形式をとるようにせよ.下記例のようにどのような桁数でも桁数に応じてきちんと表示できるようにすること. 12円⇒12円 789012円⇒789,012円 1000001円⇒1,000,001円 1234567890円⇒1,234,567,890円 [3] 環境 [3.1] OS: (Windows [3.2] コンパイラ名とバージョン: Visual Studio.NET2003 [3.3] 言語: C++ [4] 期限: 6月9日まで [5] その他の制限: まだ初期で、if,for,whileまで習いました。 どうか、よろしくお願いします。
>>139 例とか書いてないんです。
自分でやって#include <math.h>をヘッダに持ってきて
double acos( double x );とかを使うんだと思うのだが、
先生の説明が意味不明でわからんのです。
>>143 sin rad 10
みたいな入力もあるのかなと思ってね
>>142 前スレというか、参考にするソースが分かるように参照した方が・・・
148 :
142 :2006/06/07(水) 18:32:19
149 :
104 :2006/06/07(水) 19:16:51
>>105 さん
お答えありがとうございます!
おっしゃる通りに直してみたのですが、
neu.obj : error LNK2001: 外部シンボル ""double __cdecl drand48(void)" (?drand48@@YANXZ)" は未解決です
Debug/neu.exe : fatal error LNK1120: 外部参照 1 が未解決です。
link.exe の実行エラー
というエラーが出てしまい、ビルド出来ませんでした。
コンパイルは問題ないのですが・・・。
何度もすみません、よろしければどなたかお願いします。
152 :
デフォルトの名無しさん :2006/06/07(水) 21:29:06
[1] 授業単元:プログラム実習Ⅰ [2] 問題文(含コード&リンク): 好きな文字列を入力する、その後に#を含むチェック文字列を入力し #に該当する部分が何かを出力させるプログラムの作成 (例) abcdeと入力、a#cと入力すると、結果は#=b aabccと入力、a#ccと入力すると、結果は#=b abcbadと入力、ab#baと入力すると、結果は#=c aabbccddと入力、b#aと入力すると、結果は該当なし [3.1] WindowsXP [3.2] gcc [3.3] C言語 [4] 期限:6月8日 お願いします
>>152 #include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char sLine1[1024];
char sLine2[1024];
char* p2;
char* p1;
gets(sLine1);
gets(sLine2);
p2 = strchr(sLine2, '#');
if(p2 != NULL) { *p2 = '\0'; p2++; }
else *p2 = (int)"ぬるぽ";
for(p1=sLine1 ; (p1=strstr(p1, sLine2)) != NULL && p1[p2-1-sLine2] != '\0' ;p1++) {
if(strstr(p1+(p2-sLine2), p2) == p1+(p2-sLine2)) {
printf("#=%c\n", p1[p2-1-sLine2]);
return 0;
}
}
printf("該当なし\n");
return 0;
}
154 :
デフォルトの名無しさん :2006/06/07(水) 22:29:17
155 :
デフォルトの名無しさん :2006/06/07(水) 22:35:47
a[1]~a[10]までの配列を ランダムに並び替えるプログラムを教えてください。 お願いします。
[1] プログラミング実習(C++) [2] #include<iostream> using namespace std; class Person{ int no; char name[20]; public: void Print(); }; void Person::Print(){ cout<<"学籍番号:"<<no<<endl; cout<<"氏 名:"<<name<<endl; } int main(void){ Person man; man.Print(); return 0; } 上記のプロフラムを以下のように変更せよ。 1:ディフォルトコンストラクタを記述する。 2:各メンバ変数の初期値を1つずつ引数として与えるコンストラクタを記述する。 3:メンバ変数両方の初期値を引数として与えるオブジェクト生成の記述を追加して実行する。 ・学籍番号の初期値を引数で与える場合:99999を与える。 ・名前の初期値を引数で与える場合:初期値1を与える。 ・学籍番号と名前の初期値を引数で与える場合:学籍番号に10000、名前に初期値2。 ・引数で与えない場合:学籍番号は0、名前はブランクとする。 [3.1] WindowsXP [3.2] VC [3.3] C++ [4] 期限:2006年3月6日まで よろしくお願いします。
【質問テンプレ】
[1] 授業単元:フーリエ解析
[2] 問題文(含コード&リンク):
次の関数に対し、高速フーリエ変換を行え。
ただしビットリバーサル操作は以下に示すものを用いるものとする。
f(t) =
0 (-T/2 <= t < -1)
1 (-1 <= t <= 1)
0 (1 < t <= T/2)
周期:任意 (勝手に決めていいようです。)
・ビットリバーサル操作 (N:サンプリング数)
pw2=log((float)N)/log(2.0);
rv[0]=0;
pr=1;
for (i=0;i<=pw2-1;++i) {
for (j=0;j<=pr-1;++j) {
rv[pr+j]=rv[j]+N/(2*pr);
}
pr=2*pr;
}
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2006年06月12日
[5] その他の制限:
データの出力は、サンプリングした値と(多分)離散フーリエ係数を見やすいように出力してくださいとのこと
#自分で調べたところ、参考になりそうな気がするモノ(Java)
#
http://www.gulf.or.jp/~damayan/algo/FFT.html
159 :
デフォルトの名無しさん :2006/06/07(水) 23:02:33
>>156 配列を使って右揃えに出力するのがよく分からなくて。
#include<stdio.h> /*
>>90 */
#define n (10000000)
void b(int *,int );
void q(int *,int);
int main(int argc,char **argv){
int p,d[10]={1,0};
/*d[0]=1;*/
for(p=1;p<54;p++){b(d,p);q(d,p);}
return 0;
}
void b(int *d,int p){/*積*/
int l,m=0;
for(l=0;l<10;l++){
d[l]=d[l]*p+m;m=d[l]/n;d[l]%=n;
}
}
void q(int *d,int p){/*表示*/
int b;
printf("%2d! = ",p);
for(b=9;b>=0;b--)printf("%07d",d[b]);
printf("\n");
}
>>156 ほんとにこの問題文で正しいとしたら、ポイントは再帰でも配列でもなく多倍長整数。
163 :
161 :2006/06/08(木) 00:41:11
>>90 >>93 に沿うよう修正
void q(int *d,int p){/*表示*/
int b=10;
printf("%2d! = ",p);
while(!d[--b])printf(" ");/*半角スペース7つ分*/
printf("%7d",d[b--]);
while(~b)printf("%07d",d[b--]);
printf("\n");
}
164 :
101 :2006/06/08(木) 00:42:48
遅ればせながら、ありがとうございました。
:1,$s/#&160/ /g
53!て70桁になるのか。 #include <stdio.h> int mul(int dac[],int len,int arg){ int i; for(i=0;i<len;++i) dac[i] *= arg; for(i=0;i<len-1;++i){ dac[i+1] += dac[i]/10; dac[i] %= 10; } return (dac[len-1] < 10); } void view(int buff[],int len){ int i; for(i=len-1;0<=i;--i) putchar('0'+buff[i]); putchar('\n'); } int main(){ int i,buf[70] = {1}; for(i=1;i<=53;++i){ if(!mul(buf,sizeof(buf)/sizeof(buf[0]),i)){ puts("error!"); return 1; } printf("%02d!=",i); view(buf,sizeof(buf)/sizeof(buf[0])); } return 0; }
167 :
デフォルトの名無しさん :2006/06/08(木) 01:43:52
[1] 授業単元: オペレーティングシステム [2] 問題文(含コード&リンク): C言語を用いて、子プロセスを生成して何らかの処理を行い、 ①親プロセスがビジーウェイトを用いて子プロセスの終了を待つプログラム ②ビジーウェイトをしないプログラム を書け。 [3] 環境 [3.1] OS: VineLinux3.2 [3.2] コンパイラ名とバージョン: gcc 3.3.2 [3.3] 言語: C [4] 期限: 2006年6月8日17時 [5] その他の制限: forkを少し習いましたが、それ以外は習っておりません。 よろしくお願いします。
168 :
152 :2006/06/08(木) 02:05:11
>>153 >else *p2 = (int)"ぬるぽ";
これはどういう意味ですか?
169 :
デフォルトの名無しさん :2006/06/08(木) 02:51:02
どなたかお願いします。 [1] 授業単元: 基本プログラミング [2] 問題文(含コード&リンク):入力された複数の0以上の整数値の平均値、最大値、最小値を求めるプログラムを2種類作成せよ。 1、入力する数値の個数がわかってない場合(入力が終わると負の値を入れて対応) 実行例 Input date:5 Input date:6 Input date:7 Input date:5 Input date:-1 ave=5.75 max=7 min=5 2、入力する数値の個数がわかっている場合(初めに、その個数をnに入力してから、その後にその個数分だけ数値を入力) 実行例 n=5 Input date:4 Input date:6 Input date:9 Input date:3 Input date:8 ave=6 max=9 min=3 [3] 環境 [3.1] OS:UNIX [3.3] 言語:C++ [4] 期限:明日 [5] while,do-whileまで習いました
#include<stdio.h> /*
>>169 12共通 */
/* (1 */
int main(void){
int s,x,i,n=0,d;
printf("Input date:");scanf("%d",&d);
if(d<0)return printf("no input\n");
x=i=s=d;n++;
do{
printf("Input date:");scanf("%d",&d);
if(d>=0){s+=d;if(x<d)x=d;if(i>d)i=d;n++;}
}while(d>=0);
return printf("ave=%f max=%d min=%d\n",(double)s/n,x,i);
}
/* (2 */
int main(void){
int s,x,i,d,n,j;
printf("n=");scanf("%d",&n);
if(n<=0)return printf("illegal number\n");
printf("Input date:");scanf("%d",&d);
x=i=s=d;
for(j=1;j<n;j++){
printf("Input date:");scanf("%d",&d);
s+=d;if(x<d)x=d;if(i>d)i=d;
}
return printf("ave=%f max=%d min=%d\n",(double)s/n,x,i);
}
>>169 このスレ初参戦でコード書いてみたけど、170さんに先を越されたw
そっか、コードを短くせんとあかんのやね。↓一応投稿。オーバーせんかな?
#include <stdio.h>
#include <stdlib.h>
// 引数は個数入力場合trueにする
void func( bool flag ){
int i, sum, max_num, value, max, min;
char buf[ 32 ];
if( flag ){
printf("n="); max_num = atoi( gets( buf ) );
}else{ max_num = 0; }
i = sum = 0;
while( true ){
if( max_num >= 1 && i >= max_num ) break;
printf("Input data:"); value = atoi( gets( buf ) );
if( max_num == 0 && value < 0 ) break;
if( i == 0 ){ max = value; min = value; }
sum += value;
if( max < value ) max = value;
if( min > value ) min = value;
i++;
}
if( i >= 1 ){ printf("ave=%3.2f max=%d min=%d\n", (float)sum/i, max, min ); }
}
int main( void ){
func( false );
func( true );
}
>>152 入力文字列に#が入っていない時にこのコードに来るので、ここは
else return;
で構わないと思われ。
>>157 3の意味が分からない。
2は引数がnoとnameの2つあるということ?
あと期限が分からない。
>>142 static変数とポインタ使ってしまったけど大丈夫かな。制限よく読んでなくてごめん。
#include <stdio.h>
#include <string.h>
char name[256] = {0}; int amount = 0;
char *money2str(int money){
int i,j;
static char str[64],str2[64];//整形用文字列バッファとカンマ付加後のバッファ
sprintf(str,"%d",amount);
for(i=strlen(str)-1,j=0;i>=0;i--){
str2[j] = str[i]; j++;
if(i>=1 && (j+1)%4==0){str2[j]=',';j++;}
}
str2[j]='\0';
//配列リバース
for(i=0;i<strlen(str2);i++){ str[strlen(str2)-i-1] = str2[i]; }
str[i]='\0';
return str;
}
void input(void){
float f;
printf("%sさん\n現在の貯金額は,%s円です. \n今回はいくら貯金しますか?(単位:千円):",name,money2str(amount));
scanf("%f",&f); amount += (int)(f*1000);
}
int main(){
printf("名前を入力してください:"); scanf("%s",name); input(); input(); input();
printf("%sさん.\n全部で%s円貯まりました.\nよくがんばりました.\n",name,money2str(amount));
return 0;
}
#include<stdio.h> # define MAX 8; int sub(int b, int n){ int i; for(i=1;i<n; i++){ b[0]+=b[i]; } } int main(void){ int n,i; int a[MAX]; printf("n="); scanf("%d",n); for(i=0;i<n;i++){ printf("a[%d]=",i); scanf("%d",a); } sub(a,n); printf("total=%d \n",a[0]); return 0; }
#include <stdio.h> #define MAX 8 int sub(int *b, int n){ int i; for(i=1;i<n; i++){ b[0]+=b[i]; } } int main(void){ int n,i,a[MAX]; printf("n="); scanf("%d",&n); for(i=0;i<n;i++){ printf("a[%d]=",i); scanf("%d",&a[i]); } sub(a,n); printf("total=%d \n",a[0]); return 0; }
178 :
デフォルトの名無しさん :2006/06/08(木) 06:43:56
>>169 は#include<iostream>から始まるやつなんですけど、それでも
>>170 、
>>171 さん達が書いたようなプログラムになるんですか?
>>178 標準関数が使えるかどうかの差と思う。
printfが使えなかったらcout、
scanfが使えなかったらcinで試してみ。
>>149 CをC++に変換といっても、全く同じコードで問題ないよ。
リンクエラーの原因はdrand48()が定義されていないため。
これは検索したところUNIX専用のランダム関数のようなので、VCでビルドするには
double drand48();
を消して
#define urand() ( drand48() * (Rhigh - Rlow) + Rlow )
を
#define urand() ( rand() * (Rhigh - Rlow) + Rlow )
に置き換えればいい。
181 :
デフォルトの名無しさん :2006/06/08(木) 07:21:51
>>179 そうですか…標準関数はわからないです ほんとに申し訳ないんですが、
>>169 のプログラムを最初が#include<iostream>のやつで書いてくれる人いましたらお願いします。
182 :
デフォルトの名無しさん :2006/06/08(木) 07:24:25
strstr()使ったらだめかな、かな?
>>182 「T2の先頭部分がT1の先頭部分に含まれるときは1を」
だとしたら表示例のABC BC yesは違うことになるけどいいの?
とりあえず「T2の文字列がT1の文字列に含まれてるかどうか」ということで作ってみた。
#include <stdio.h>
int chkmatch(char *t1, char *t2){
int i; bool find = false;
char *save1,*save2;
while( *t1 ){
if( *t1 == *t2 ){
save1 = t1;save2 = t2;find = true;
while( *t2 ){
if( *t1 != *t2 ){ find = false;break; }
t1++; t2++;
}
t1 = save1;t2 = save2;
if( find ) break;
}
t1++;
}
return find?1:0;
}
int main( void ){
char buf1[256],buf2[256];
gets(buf1);gets(buf2);
printf("%s",chkmatch(buf1,buf2) ? "yes":"no" );
return 0;
}
185 :
184 :2006/06/08(木) 08:17:58
C言語のようなのでboolはintに。trueは1に。falseは0にしてくらはい。
186 :
171 :2006/06/08(木) 08:27:25
標準関数とはprintfやscanfという関数だけど、これらを使ってはだめっていう制限あるの? なければ別にこれで問題ないと思う。 VCではiostreamだけでもprintfやscanfは使えたよ。
187 :
186 :2006/06/08(木) 08:29:24
>>180 #define urand() ( rand()/(double)RAND_MAX * (Rhigh - Rlow) + Rlow )
では?
193 :
180 :2006/06/08(木) 14:06:42
>>191 そか。そっちが正しい。ごめん。
drand48()は0.0以上1.0未満を返すみたいだね。
>>167 子プロセスはabcdeを表示。waitしない場合はコメントにある行を消す。
#include <stdio.h>
#include <sys/types.h>
#include <sys/wait.h>
void func(){
int i;pid_t pid;
pid = getpid();
for(i=0;i<5;i++){ sleep(1); printf("[%d]%c\n",pid,'a'+i); }
}
int main(){
pid_t p_pid,pid;
p_pid=getpid();
printf("[%d]start\n",p_pid);
switch(pid=fork()){
case 0:func();return 0;/* child */
case -1:perror("fork");break;
default:printf("[%d]child pid = %d\n",p_pid,pid);break;/* parent */
}
/* ↓waitしない場合はこれを消す */
pid=wait(0);
printf("[%d]pid = %d end\n",p_pid,pid);
printf("[%d]end\n",p_pid);
return 0;
}
なんだなんだー、難しい宿題ばっかだなぁ。いや、難しいんじゃない、答えるのが面倒なだけか。 もっと俺でもサクッと回答できる宿題を出してくれYO!
[1] 授業単元: プログラム演習 [2] 問題文(含コード&リンク): 標準入力から7個の数値を入力し、その後削除する数値を1つ入力して二分探索木のノードを削除するプログラム。 [3] 環境 [3.1] OS:Unix [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 明日 [5]その他の制限: 削除前と後の行きがけ順を表示させる。
>>195 難しいというか手間が掛かる割りに面白くない問題だろ?
枯れたアルゴリズムを書くだけとか。
[1] 授業単元: 数値解析 [2] 問題文 次式の積分を台形公式、シンプソンの1/3公式を用いて計算し、 精度につい て考察せよ。 f(x)=3x^2+3x+6 a=0 b=10 また、次式のx=1.0における微分値を、n=2、6、10の場合について求 め 精度について検討せよ。 y=3x^n+4x+5 [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gccです。バージョンは分かりません。 [3.3] 言語:C言語 [4] 期限: 11日までです。 [5] その他の制限:CとC++を少し学習しました。 宜しくお願いします。
シンプソンかぁ、なんか大学のときにやった覚えがある・・・もう忘れてるYA!w 明日はワールドカップ開催だなぁ。ここの面倒はしばらく見てやれんけど みんながんばってくれ!どうせ学校で習っているアルゴリズムなんざ 既に過去の人たちが発見して教科書に記して伝授しているわかりきったものに過ぎないから。 それをC言語で記述できない人は、C言語の扱い方そのものを理解してないってことだから やり直しー!
つーか、「精度について検討せよ」なんて抽象的な問題をどうしろと。
>>200 とりあえずプログラムを作ってやれば良いのかと。
考察とかは本人がやるでしょ
#include <stdio.h> #include <stdlib.h> #include <math.h> double func_y(double x){ return (3 * x * x + 3 * x + 6); } int main(void){ int i, j, n = 50; double *y; double xa = 0.0, xb = 10.0; double z = 0.0, h = 0.0, x, s, q; y = (double*)malloc(sizeof(double) * (n + 1));//配列確保 if(y == NULL){puts("Error"); return 1;} h = (xb - xa) / (double)n;//刻み計算 for(i = 0; i <= n; i++){ x = xa + h * (double)i;//関数値計算 y[i] = func_y(x); } for(i = 1; i < n; i++)z += 2.0 * y[i];//数値積分 s = h / 2.0 * (y[0] + z + y[n]); printf("Ans = %8.4lf\n", s);//表示 free(y); return 0; } とりあえず、台形公式おいておきますね
203 :
デフォルトの名無しさん :2006/06/08(木) 21:30:23
すみません、どなたか
>>159 をよろしくお願いいたします。
>>203 してない
データの削除はできてるけど、任意のデータを選んで削除する機能は実装されてない
見た感じはね
206 :
デフォルトの名無しさん :2006/06/08(木) 22:38:01
>>205 さん
そうですか、
もし差し支えなければ、そこの入力をお願いできませんでしょうか?
よろしくお願いします。
207 :
デフォルトの名無しさん :2006/06/08(木) 23:16:01
>>169 の1の問題をテキスト見て自分なりにやったら
int x,i,n,max,min,sum=0;
cout<<"Input date:";
cin>>x;
max=x;
min=x;
while(x>=0)
{
for(i=0;i<n;i++)
sum=sum+i
if(x>max)
max=x;
else if(x<min)
min=x;
cout<<"Input date:";
cin>>x;
}
cout<<"max="<<max<<"min="<<min<<"ave="<<static_cast<double>(sum)/n<<endl;
return 0;
}
となって最大、最小値は出力できるんですけど、平均値だけ数値がおかしくなってしまいます。どなたか手直しお願いします。
>>206 int cancel(char *id1){
int x, item, info1, count = 0;
struct item *previous, *key;
x = hash(id1);
key=table[x], previous=table[x];
item = search(id1);
if(item>1){
printf("%d item found. Input INFO to be canceld\n",item);
scanf("%d", &info1);
while((strcmp(id1, key->id) != 0 || info1 != key->info) && key->next != NULL)
{ previous = key; key = key->next; count++;}
if(count == 0) table[x] = key->next;
else previous->next = key->next;
printf("[%s,%d] canceld.\n",key->id,key->info);
free(key);
}
else if(item==1){
table[x] = NULL;
printf("[%s,%d] canceld.\n",key->id,key->info);
free(key);
}
return item;
}
指定されてお願いしますとかいわれたら
やるしかねーじゃねーかYO
多分、動作的には同じになったと思うけど
>>208 アホ。
>>207 落ち着こうぜ、あんたはsumに何を足しているんだ?
それが判ったら今度からは宿題スレで聞くんじゃないぞ。
211 :
デフォルトの名無しさん :2006/06/09(金) 00:03:49
sumをどうすればいいんですか?
213 :
デフォルトの名無しさん :2006/06/09(金) 00:23:28
sumにxを足しても数値が変なんですけど・・・
いい加減スレ違いだがね。
はじめまして よろしくおねがいします [1]単元名:ソフトウェア実験Ⅰ [2]問題文: 文字型配列に文字列を読み込み、 その文字列を文字型配列を指すポインタを使用し、 文字列中の大文字は小文字に、 小文字は大文字に変換するプログラムを作成せよ。 入力:TakeyaBu YakeTa 出力:tAKEYAbU yAKEtA このように結果が出力されるようにしなさい。 [3]環境 [3.1]OS:Linux [3.2]コンパイラ:gcc [3.3]言語:C [4]6・12まで
#include <stdio.h> #include <ctype.h> int main(){ char str[100], *p = str; printf("入力:"); gets(str); while(*p){ if (isupper(*p)){ *p = tolower(*p); } else if (islower(*p)){ *p = toupper(*p); } p++; } printf("出力:%s\n", str); return 0; }
217 :
デフォルトの名無しさん :2006/06/09(金) 15:06:38
[1] 授業単元: プログラム演習 [2] 問題文:20 個の自然数を要素とする1次元配列ar[20]={ 57, 563, 381, 239, 345, 821, 881, 979, 447, 461, 221, 683, 743, 379, 597, 149, 223, 127, 231, 159}に関し,①要素の順 番を変えずに表示させる.②降順(大から小)に表示させる.③素数のみを昇順(小 から大)に表示させる.④素数の和を表示させるプログラムを作成し,実行しなさ い.ただし,int 型のポインタ配列(例:int *par[20])を定義し,ar[20]内の数の順序 を変更するときは,ar[20]自体を全く変更させず,par[20]の要素を操作すること.ま た,par[20],ar[20]以外の配列を定義・使用することは認めない. [3] 環境 [3.1] OS: linux [3.2] gcc [3.3] 言語: C [4] 期限:2006/06/13 [5] よろしくおねがいします
>>217 1~4のプログラムは別々に、それとも1つのプログラムにして
1~4の入力で選択するとか?
廃墟
220 :
198 :2006/06/09(金) 17:16:19
>>202 ありがとうございます。
シンプソンの1/3公式と微分もお願いできないでしょうか。
お願いします。
#include <stdio.h> #include <stdlib.h> double func_y(double x){ return (3 * x * x + 3 * x + 6); } int main(void){ double *y; double xa=0.0, xb=10.0;//積分範囲 double z1=0.0, z2=0.0, h=0.0, x, s; int i, j, n=50; y=(double*)malloc(sizeof(double)*(n+1)); if(y==NULL) puts("Error"), exit(1); h=(xb-xa)/(double)n;//刻み計算 for(i=0;i<=n;i++){ x=xa+h*(double)i;//関数値計算 y[i]=func_y(x); } for(i=1;i<=n-1;i+=2) z1+=4.0*y[i];//数値積分 for(i=2;i<=n-2;i+=2) z2+=2.0*y[i]; s=(h/3.0)*(y[0]+z1+z2+y[n]); printf("Ans = %8.4lf\n", s);//表示 free(y); return 0; } じゃあ、シンプソンおいておきますね
[1] 授業単元: プログラミング通論 [2] 問題文(含コード&リンク): 文字列 s、f、t が与えられたとき、 文字列sの中で最初に現れるfをtに置き換えた文字列を返す 関数replace を作成せよ。 もし文字列fが見つからなかった場合は s を返すこととし、malloc を利用して実現すること。 関数の書き出しは、以下のようにすればよい。 char* replace(char *s, char *f, char *t) { char *q; q = (char*)malloc(sizeof(char)); } main関数において、p = replace("tractor", "act", "imot"); とすると、p は"trimotor"になる。 [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 6月12日
//
>>222 // 確保したメモリを返したり返さなかったりという仕様ってのが気に入らんが
char * replace(char * s, char * f, char * t)
{
char * q = (char *) malloc(strlen(s) - strlen(f) + strlen(t) + 1);
char * p = strstr(s, f);
if (p) {
sprintf(q, "%.*s%s%s", p - s, s, t, p + strlen(f));
return q;
}
return s;
}
224 :
222 :2006/06/09(金) 18:39:13
>>223 う~ん、結果が出力されないのですが・・・
int main(void) {
char *p;
p = replace("tractor", "act", "imot");
printf("%s\n", p);
return 0;
}
main関数をこのようにしたとき、実行結果として「trimotor」が出力されるような関数replaceを作成せよ。という意味だと思います
>>224 ちゃんとコピペした?
特にフォーマット文字列に注意。
" % . * s % s % s "
だぞ。
つーか、「結果が出力されない」じゃなくて、 何が出力されたのか書けよ。
printf("%s\n",replace("abcdefghijk","def","うほっ!")); こうすれば?
228 :
デフォルトの名無しさん :2006/06/09(金) 19:07:30
>>209 指定しているつもりではなかったのですが、
本当にありがとうございます、助かりました
試してみたけど>223-224をコピペしたらtrimotorが出たよ。
230 :
デフォルトの名無しさん :2006/06/09(金) 21:49:06
[1] 授業単元: 基礎プログラミング [2] 問題文(含コード&リンク): 6個の整数値をキーボードから読み込んで,読み込んだ順と逆に表示するプログラムを作成せよ. [実行結果] Data No.1: 29 Data No.2: 4 Data NO.3: 91 Data NO.4: 0 Data No.5: 21 Data No.6: 34 逆から並べ替えるよ! Data No.6: 34 Data No.5: 21 Data No.4: 0 Data No.3: 91 Data No.2: 4 Data No.1: 29 [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: Visual Stdio.net2003 [3.3] 言語: ++ [4] 期限: 6月12日 [5] その他の制限: どんな整数を入力しても逆から表示されるようにしてほしいです。 お願いします。
231 :
デフォルトの名無しさん :2006/06/09(金) 21:57:38
[1] 授業単元: プログラミング演習 [2] 問題文: 1年分の各月の平均気温を配列に格納し(プログラム内で初期値として与えてよい),各データとそれらの平均値,最大値,最小値を 表示するプログラムを作成せよ.なお,データは摂氏と華氏の双方で表示すること.ただし,格納するデータはどちらか一方のみ.(この問題では,平均値は整数でよい(切り捨て,切り上げ,四捨五入いずれも可).月平均気温は適当でよい.) [実行結果] =-=-=-=-=-=-=-==-=-=-=-=-=-=-=-= 2005年の月平均気温(摂氏,括弧内は華氏) =-=-=-=-=-=-=-==-=-=-=-=-=-=-=-= 1月:5(41) 2月:0(32) <省略> 12月:10(50) ----------- 平均:15(59) 最高:25(77) 最低:0(32) 以上 <参考1>摂氏→華氏変換式: F=(9/5)×C+32 ,ただしCは摂氏温度,Fは華氏温度 <参考2>最大値の求め方(概要) // maxが最大値を格納するための変数,MINはとりうる最小値 for(max=MIN,i=0;i<データの個数;i++) { i番目のデータがmaxより大きいならば,i番目のデータをmaxとする そうでなければ今のmaxの値を保つ } [3] 環境 [3.1] OS: WindowsXP [3.2] コンパイラ名とバージョン: VisualStdio2003 [3.3] 言語: C++[4] 期限: 6月15日5] その他の制限:配列のところ習っています。 よろしくお願いいたします
>>230 要素数が6個で固定されてるなら、入力と出力でforループのカウントをサカサマにすればいいんだけど、
やっぱりスタックを使うのが一番スマートかな。
>>230 #include<iostream>
using namespace std;
int main(){
int data[6];
for(int i=0;i<6;++i){
cout << "Data N"<<(i-2&~1?'o':'O')<<'.'<<i+1<<": ";
cin >> data[i];
}
cout << endl << "逆から並べ替えるよ!" << endl << endl;
for(int i=6;i-->0;)
cout << "Data No."<<i+1<<": "<<data[i]<<endl;
}
234 :
デフォルトの名無しさん :2006/06/09(金) 22:05:37
>>232 すいません。書き忘れました。forを使っていただきたいです。
>>230 を読むと質問者のレベルが良く分かるwww
236 :
デフォルトの名無しさん :2006/06/09(金) 22:19:59
>>233 難しすぎるんじゃないかwwこの質問者の頭じゃww
もっと簡単にいてあげないとwwww
>>233 iのスコープを外に出してwhileループにしてみるのはどう?
あと、'o'と'O'は、単に2とAND取ればいいんじゃないか?
#include<iostream>
using namespace std;
int main(){
const int SIZE=6;
int data[SIZE];
int i = 0;
while(i < SIZE){
cout << "Data N"<<(i&2?'O':'o')<<'.'<<i+1<<": ";
cin >> data[i++];
}
cout << endl << "逆から並べ替えるよ!" << endl << endl;
while(i--)
cout << "Data No."<<i+1<<": "<<data[i]<<endl;
}
endl使いすぎだから減らす方向で。 #include<iostream> using namespace std; int main(){ const int SIZE=6; int data[SIZE]; int i = 0; while(i < SIZE){ cout << "Data N"<<(i&2?'O':'o')<<'.'<<i+1<<": "; cin >> data[i++]; } cout <<"\n逆から並べ替えるよ!\n\n"; while(i--) cout << "Data No."<<i+1<<": "<<data[i]<<endl; }
239 :
デフォルトの名無しさん :2006/06/09(金) 22:32:46
coutの使い方が怪しいかも。型はとりあえずdoubleにしてみた。 #include <iostream> #define MAX 100 #define MIN -100 using namespace std; int main() { double data[12] = {-1, -5, 7, 10, 14, 18, 22, 23, 21, 17, 11, -3};//摂氏 double average, max, min; int i; average = 0; for (i = 0; i < 12; i++) average += data[i]; average /= 12; //平均(整数) for (max = MIN, i = 0; i < 12; i++) { if (max < data[i]) max = data[i]; } for (min = MAX, i = 0; i < 12; i++) { if (min > data[i]) min = data[i]; } for (i = 0; i < 12; i++) cout << i + 1 << "月:" << data[i] << " F:" << data[i] * 9 / 5 + 32 << endl; cout << "平均:" << average << " F:" << average * 9 / 5 + 32 << endl; cout << "最高:" << max << " F:" << max * 9 / 5 + 32 << endl; cout << "最低:" << min << " F:" << min * 9 / 5 + 32 << endl; return 0; }
240 :
デフォルトの名無しさん :2006/06/09(金) 22:34:37
>>237 endleとか#include<iostream> using namespace std; は習ってないです。
forとかscanfとかは習っています。
あとint xyz[6];みたいに置くみたいです
Cだろ、そr
>>240 それじゃぜんぜんC++じゃないじゃん。Cそのものじゃん。
言語 ++ なんて書いてあるから、てっきりC++的コーディングをするものだと思うじゃん。
(
>>230 は「言語」と「コンパイラ」の違いが分かってないんじゃないかな…)
>>235-256 なーるほど。
質問者が習っているものと、使っているコンパイラの区別がついてないのか。
はい、C。もういいだろ。 #include <stdio.h> #define MAX 6 int main() { int num[MAX]; int i; for (i = 0; i < MAX; i++) { printf("Data No.%d:", i + 1); scanf("%d", &num[i]); } printf("\n並びかえるよ!\n"); for (i = MAX - 1; i >= 0; i--) { printf("Data No.%d:%d\n", i + 1, num[i]); } return 0; }
Cか面倒だな。 #include<stdio.h> #define MAX 6 int main(){ int data[MAX],i; for(i=0;i<MAX;++i){ printf("Data N%c.%d: ",i&2?'O':'o',i+1); scanf("%d",&data[i]); } printf("\n逆から並べ替えるよ!\n\n"); for(;i--;) printf("Data No.%d: %d\n",i+1,data[i]); }
248 :
デフォルトの名無しさん :2006/06/09(金) 22:45:58
やっぱり'O':'o'は残すんだw
すごい凶悪な問題ですね。。。
ようやく
>>233 が
cout << "Data N"<<(i-2&~1?'o':'O')<<'.'<<i+1<<": ";
ってまわりくどく書いた理由に気づいたよ。まじめなのか皮肉なのかw
251 :
デフォルトの名無しさん :2006/06/09(金) 22:55:24
確かに、出題が例示の通りで、forループで、printfだとすると模範解答は
>>247 だな。凶悪w
252 :
デフォルトの名無しさん :2006/06/09(金) 23:19:12
[1] 授業単元: プログラミング入門 [2] 問題文(含コード&リンク):家族4人の貯金を管理するプログラムを作成せよ. 入力は誰の貯金かを数字で指定し,その後金額を入れる.人の指定時に-1を入力するまで入力を受け付け,それまでの総計を出力する.入力の単位は円,金額の表示法はこれまで自分が作ったものを使え. [実行結果] だれ?(婆さん:1、父さん:2、母さん:3、通信:4、入力終:-1):2 いくら?1280 だれ?(婆さん:1、父さん:2、母さん:3、通信:4、入力終:-1):1 いくら?11800 (省略) だれ?(婆さん:1、父さん:2、母さん:3、通信:4、入力終:-1):4 いくら?55000 だれ?(婆さん:1、父さん:2、母さん:3、通信:4、入力終:-1):-1 現在の貯金額 婆さん:21,000円 父さん:2,350円 母さん:3,410円 通信:67,253円 合計:93,995円 [3.1] OS: Windows [3.2] 環境:Visual Studio.NET2003 [3.3] 言語: C [4] 期限: 6月13日 よろしくおねがいします。考えたけど、よくわかりませんでした・・
利子の計算にサラミを仕込んどけば完璧。
>>252 >金額の表示法はこれまで自分が作ったものを使え
これまで作ったものってどんな感じよ?
てか質問の仕方がバカってマジで終わってるだろwww 日本語ができない。しかもプログラムもかけない これじゃあ、右脳も左脳も死んでんぞwwww
256 :
デフォルトの名無しさん :2006/06/09(金) 23:25:36
>>254 あ、その部分無視しといてください。消すの忘れてました
(´ー`)y-~~ 自分が何を聞きたいのかが分かっていない (´ー`)y-~~ 自分が何を聞いているのか分かっていない
分かっているのは分からないということだけだ
分かっていないということもきっと分かっていない。 分かっているのは「できない」ということだけ。
261 :
198 :2006/06/09(金) 23:36:39
>>221 コメントまで書いて頂き、非常に助かります。ありがとうございました。
申し訳ありませんが
y=3x^n+4x+5 のx=1.0における微分値を、n=2、6、10の場合について求
め 精度について検討せよ。
も教えて頂けないでしょうか。図々しくすみません。
あなたが空しく生きた今日は 昨日死んでいった者が あれほど生きたいと願った明日
263 :
デフォルトの名無しさん :2006/06/09(金) 23:37:00
ぷっwwwwww叩かれまくりwwwwwwwwwwwwwwww
精度の検討はスレ違いだと思うが。
初心者の俺から言わせてもらうと、 問題の日本語の意味が分かっているのにプログラムを書けないならもう違う学科に行ったほうがいいと思う 左脳が発達していないんだよ。大学変えな
>>252 誰もやらなさそうなのでやってみた。
#include <stdio.h>
int main(void)
{
int a[]={0,0,0,0},b,c;
while (1){
printf("だれ?(月:1、L:2、ワタリ:3、リューク:4、入力終:-1):");
scanf("%d",&b);
if (b==-1){
return 0;
}else if (b>0 && b<5){
printf("いくら?:");
scanf("%d",&c);
a[b-1]+=c;
}else{
printf("月:%d\nL:%d\nワタリ:%d\nリューク:%d\n",a[0],a[1],a[2],a[3]);
}
}
}
明らかにデスノ好きのprintf
267 :
デフォルトの名無しさん :2006/06/09(金) 23:49:20
#include <stdio.h> int main() { struct deposit { char *name; int amount;} dep[] = {{"婆さん",0},{"父さん",0},{"母さん",0},{"通信",0}}; int person, money; while(person = -1) { printf("\nだれ?("); while(++person < 4) printf("%s:%d、",dep[person].name,person + 1); printf("入力終:-1):"); scanf("%d",&person); if (person == -1) break; printf("いくら?"); scanf("%d",&money); dep[person - 1].amount += money; } printf("現在の貯金額\n"); while(++person < 4) printf("%s:%d円\n",dep[person].name,dep[person].amount); return 0; }
[1] 授業単元: アルゴリズム実習
[2] 問題文(含コード&リンク):
迷路ファイル(
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2020.txt )を読み込んで、スタート(S)から、ゴール(G)までの経路を縦型探索と横型探索で探索し、探索した経路を表示するプログラムを作成しなさい。ただし、以下の条件に従うこと。
迷路について
20x20の迷路のスタート(S)からゴール(G)までの経路を探索すること
迷路では、壁(*)の上は進めない
迷路では、上下左右の4方向のみ進める
経路が複数ある場合、そのうちの一つの経路を見つけて表示する
閉路がある場合でも正しく経路を発見できること
スタックによる縦型探索と、キューによる横型探索の2つのバージョンを作成すること
スタックとキューについて
配列を使って実装し、配列のサイズは20とすること
オーバーフローとアンダーフローをチェックすること
キューでは配列の最後まで使いきると、また先頭から使うこと
次の関数を作成、仕様すること
ファイルからを迷路情報を読み込む関数read_map
スタックのための関数push, pop
キューのための関数enqueue, dequeue
スタックを用いて縦型探索で迷路を探索する関数 maze_depth_first
キューを用いて横型探索で迷路を探索する関数 maze_bredth_first
経路を表示する関数 display_route
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ(バージョン):gcc
[3.3] 言語:C
[4] 期限:6/11まで
[5] その他の制限:無し
お願いします...
270 :
デフォルトの名無しさん :2006/06/10(土) 00:10:52
>>239 ありがとうございます。助かりました。
>>231 C言語の勉強もしているので、そちらの方のプログラムが分かる方お願いいたします
自分の無知を認めないとは最悪ですね。
>>1 によれば、気に入らない質問はスルーしていいらしいので、スルーしましょう。
273 :
デフォルトの名無しさん :2006/06/10(土) 00:40:00
>>272 さん。ありがとうございます。計算は・・確認しておきます(笑)
1)単元:情報科学実験Ⅳ 2)問題文:練習5-9 ポインタと文字列配列 str1に文字列を読み込み、 str1とstr2を指す二つのポインタを活用し、 str2に逆順に格納されるようにしましょう。 実行例は以下の通りになります。 入力文字:watashihakiringasukidesu 出力結果:usedikusagnirikahihsataw 3)環境:ヴァインリナックス、C言語、gcc 4)期日:6月13日 よろしくお願いします
[1] 授業単元:オペレーティングシステム [2] 問題文(含コード&リンク): 1)shellコマンド’echo’と同じ機能を持つ新コマンド’myecho’を作成せよ。 2)設定されている全環境変数を表示するプログラムを作成せよ。 3)’pwd’と同じ機能を持つ’mypwd’を作成せよ。 [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc バージョンは分かりません [3.3] 言語: C言語 [4] 期限: 6/10 午後10時まで [5] その他の制限: Linuxのviを使ってソースを書くこと よろしくお願いします。
276 :
デフォルトの名無しさん :2006/06/10(土) 01:06:52
viかよ
難しいなぁ。 Linux用のviってあるか? 今のディストリビューションだと大抵vimになってると思うんだが。
278 :
デフォルトの名無しさん :2006/06/10(土) 01:39:24
その他制限の方が厳しい問題始めてみたw
OSの機能を呼んでもいいっていうなら楽かも。 全部実装しる、ってのは厳しいなあ。
280 :
デフォルトの名無しさん :2006/06/10(土) 01:47:17
こんばんは。 実は実習関連の課題で、IPからtracertを用いて大量の経路を探索 しなくてはならないのですが、tracertは入出力が一対一しか 対応していません。 そこでC言語を用いてプログラム内からtracertを呼び出し、IPを tracertに渡し、tracertから帰ってきた値をファイルに格納する プログラムを作成したいのですが、どのような関数を利用すれば 良いのでしょうか? 当方の環境はwindowsで、C言語については一通り理解しています。 よろしくお願いします。
281 :
275 :2006/06/10(土) 02:06:02
参考になるか分かりませんが、演習の例題としてコマンド’ln’の作成ってのがあって [administrator@localhost enshu]$vi link.c #include <unistd.h> main(int argc, char *argv[]) { link(argv[1],argv[2]); } [administrator@localhost enshu]$gcc link.c [administrator@localhost enshu]$./a.out msg dummy [administrator@localhost enshu]$ls -i msg [administrator@localhost enshu]$ls -i dummy こんな感じに作っていくんだと思いますけど
>>280 Cを使うまでもない、というよりCでコーディングすると何か変更を加えたい時が面倒になる。
というより
>>1 に従ってない。こんな場合は適当な解答をしてみる。
#!/bin/perl
@iplist = `cat iplist.txt`;
foreach $ip (@iplist) {
$cmd = "tracert $ip >> log.txt";
system($cmd);
}
>>277 Debianはnvi。
まあ、出題者がviとvimの区別もできないDQNか、受講者の知識を考慮して
わざとviと書いたか、どちらかだろうな。
#include <stdio.h> int main(void){ extern char ** environ; char** p; for(p=environ; *p; p++) printf(">> %s\n", *p); return 0; }
[1]授業単元:プログラミング C言語 [2]実行環境コンパイラ:Visual Studio.NET2003 [3]OS:Windows XP [4]提出期限:6月12日0時 [5]次のプログラムを変更して任意の文字列を入力させ、その中の任意の位置の任意の数の文字を削除するプログラムを作成せよ。 【プログラム】 #include <stdio.h> #include <string.h> #define MAX_MOJI 100 int main(int argc, char* argv[]) {char bunsho[MAX_MOJI + 1]; char ins[80]; int pos; int bunlen; int inslen; int i; strcpy(bunsho, "To be to be ten made to be."); while (-1) {printf("文書データ:%s\n", bunsho); printf("挿入する位置:"); scanf("%d", &pos); printf("挿入する文字列:"); scanf("%s", ins); bunlen = strlen(bunsho); inslen = strlen(ins); if ((bunlen + inslen) > MAX_MOJI) {printf("これ以上挿入できません!"); break; }for (i = bunlen ; i >= pos; i--) {bunsho[i + inslen] = bunsho[i]; }for (i = 0; i < inslen; i++) {bunsho[pos + i] = ins[i]; }} return 0;}
>>285 ですが
実行結果は以下のようになります。
実行例:
文書データ: To be to be ten made to be.
削除する位置: 3
削除する文字数:2
文書データ: To to be ten made to be.
よろしくお願いいたします
>>285 これは・・・実行すると不正な処理でエラーが・・・
>>285 ですが
>>287 改行が多くて修正したからかな!?
プログラムをアップローダにUPすることができませんでした。
UPローダにプログラムそのままUPしたいんだが。
>>1 を使ったが接続できませんでした。
どうすればいいですか?
289 :
285 :2006/06/10(土) 09:51:20
>>288 あんさん、何をそのまま?まさか実行プログラムをうpしたなんてことないよね?
まぁ、もしexeでうpしたら、警戒する人は多いだろうけどw
ソースなら普通にテキスト形式のファイルならうpできるでしょ?
拡張子がc、cpp、txtとかで
>>289 それならおk。しかし・・・まぁ、危ないプログラムだこと。
whileループやな・・・何を押してプログラムを終了させるか、はっきりした方がええで。
知っている人はCtrl + C とかで終了させるけど、マニュアルのないプログラムはキツー。
292 :
285 :2006/06/10(土) 11:29:15
294 :
217 :2006/06/10(土) 12:26:25
>>218さん 1~4のプログラムは別々です どうかよろしくおねがいします(泣)
>>294 別ね。とりあえず今2番目まで終わって3番目で奮闘中。
まぁ、そんなに時間は掛からんだろうけど、13日までには十分時間があるからお待ちを。
297 :
294 :2006/06/10(土) 13:18:22
>>296 さん
ありがとうございます、感謝です><
#include <stdio.h> #include <stdlib.h> #include <math.h> int cmp(const void *a1, const void *a2){ const int *b1, *b2; b1 = *((const int**)a1), b2 = *((const int**)a2); return (*b2 - *b1);} int cmp2(const void *a1, const void *a2){ const int *b1, *b2; b1 = *((const int**)a1), b2 = *((const int**)a2); return (*b1 - *b2);} int prime(int n){ int i; if(n == 1)return 0;if(n == 2)return 1;if(n % 2 == 0)return 0; for(i = 3; i <= floor(sqrt((double)n)); i += 2)if(n % i == 0)return 0; return 1;} int main(){ int ar[20]={ 57, 563, 381, 239, 345, 821,881, 979, 447, 461,221, 683, 743, 379, 597, 149, 223, 127, 231, 159}; int *par[20];int i, n = sizeof(ar) / sizeof(ar[0]), s = 0; //そのまま表示 puts("そのまま");for(i = 0; i < n; i++)printf("ar[%d] = %d\n", i, ar[i]); //降順 puts("降順");for(i = 0; i < n; i++)par[i] = &ar[i];qsort(par, 20, sizeof(int*), cmp);for(i = 0; i < n; i++)printf("ar[%d] = %d\n", i, *par[i]); //素数昇順 puts("素数昇順");qsort(par, 20, sizeof(int*), cmp2);for(i = 0; i < n; i++)if(prime(*par[i]) == 1){printf("ar[%d] = %d\n", i, *par[i]);s += (*par[i]);} //素数和 puts("素数和");printf("s = %d\n", s); return 0;} しまった先客がいたようだ、それに全部一緒にしてしまったし
>>298 まぁ、別に良いんじゃね?使える方を選んでもらえば。
その辺は特に問題ないっしょ。ただ、相手側がどっちを選ぶかは・・・自由だーー!
ソース is freedom!ソース is freedom!
300 :
280 :2006/06/10(土) 14:14:51
>>282 ありがとうございます!
やっぱC言語よりPerlで書いたほうがいいですね!
「適当」な解答、とても役に立ちました。
301 :
285 :2006/06/10(土) 14:22:58
[1]授業単元:プログラミング C言語
[2]環境コンパイラ:Visual Studio.NET2003
[3]OS:Windows XP
[4]提出期限:6月13日
[5]問題内容
次のプログラムを変更して、降順にソートした後、昇順にデータを表示するプログラムを作成せよ。
1.ループカウンターを配列の末尾から0まで1ずつ減らして表示する方法。
2.スタックを使う方法
できれば別々に、1,2両方のプログラムをお願いします。
【プログラム】
http://www.uploda.org/uporg413542.txt.html できれば、アップローダにUPしといてもらえば助かります。
>>301 ぐほっ、すまぬ。
>>293 はスペースが入った文字列やら
いくつかやったら不具合が・・・ orz
305 :
デフォルトの名無しさん :2006/06/10(土) 14:45:30
オセロゲームの作成です長いプログラムですが、
与えられたサンプルがあります、それに足していけばよいそうなのですが
難しいので(int AI_move () {だけ追加すればよいそうですが)
どなたかよろしくお願いいたします。
[1] 授業単元: C言語
[2] 問題文(含コード&リンク): オセロゲームの戦略をプログラム
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2024.txt [3] 環境
[3.1] OS: Windows (cygwin)
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2006年6月15日00:00amまで
[5] その他の制限: 特になし
もし日本語でエラーがありましたら、英語に直したのをUPします。
改めてよろしくお願いいたします。
サーバ側で、readしたものをそのままwrite クライアント側では、writeしたあとread で作れるんじゃないの?
echoサーバープログラムなんて、webでソケットプログラミング検索すれば、そのまま載ってるだろ。
>>311 ありがとうございました。
これは、1.ループカウンターを配列の末尾から0まで1ずつ減らして表示する方法。
2.スタックを使う方法
どっちですか?
>>305 これって、AI_move関数を作ってコンピュータ対戦可能な
プログラムにしろ、っていうこと?
>>305 超低脳なAI(とはいえない)作ってみたw こんなんじゃやっぱだめ?
int AI_move () {
int result = 1; //reverse関数の戻り値を代入する変数
srand((unsigned int)time(NULL));
if ( current == BLACK ) {
printf("AI黒の手番です。\n");
}
else {
printf("AI白の手番です。\n");
}
while ( 1 ) {
fflush(stdin);
result = reverse(rand() % 8, rand() % 8);
if ( result != 0 ) {
break;
}
}
return result;
}
[1] 授業単元: 継承・ファイル入出力 [2] 問題文(含コード&リンク): 後述のプログラムを以下のように変更せよ。 ・studentクラスを継承して下宿生のクラスを作成する。 (下宿生クラスには、studentクラスに対して「帰省先住所」と「帰省先電話番号」の2つのメンバ変数を追加する) ・学生データ(下宿生と自宅生)をコンソール入力可能に変更する。 (下宿生・自宅生のどちらを入力するのか確認してから入力させる) ・入力されたデータをコンソールに入力する。 ・更に、入力されたデータをファイルにも出力する。 [3] 環境 [3.1] OS: WindowsXP [3.2] コンパイラ名とバージョン: VC 6.0 [3.3] 言語: C++ [4] 期限: 2006年6月15日まで [5] その他の制限: オーバライドは使用不可。 自力でやってみたいんですが、途中からワケわからなくなってきて・・。 よろしくお願いします。
317 :
316 :2006/06/10(土) 17:02:03
元のプログラム #include <iostream> #include <fstream> using namespace std; class student { int no; char name[14]; int age; char c_address[40]; char c_phone[14]; public: void input(); void print(); student():no(0),age(0){ strcpy(name,""); strcpy(c_address,""); strcpy(c_phone,""); }; student(int a, char* b, int c, char* d, char* e ){ no = a; strcpy(name,b); age = c; strcpy(c_address,d); strcpy(c_phone,e); }; };
318 :
316 :2006/06/10(土) 17:02:41
元のプログラム2(長かったので分けました) void student::print() { cout << "学籍番号:" << no <<endl; cout << "名前:" << name << endl; cout << "年齢:" << age << endl; cout << "住所:" << c_address << endl; cout << "電話番号:" << c_phone << endl; } int main() { ifstream infile; int i,j; student aa[100]; infile.open("infile.txt", ios::in |ios::binary); if (!infile){ cout << "ファイルをOPENできません"; return 1; } for (i=0; !infile.eof(); i++){ infile.read((char *) &aa[i], sizeof(student)); } infile.close(); for(int j=0; j<i-1;++j){ aa[j].print(); } return 0; }
>>316 >・学生データ(下宿生と自宅生)をコンソール入力可能に変更する。
> (下宿生・自宅生のどちらを入力するのか確認してから入力させる)
って書いてあってなんでファイルから入力しようとしているんだ?
>・入力されたデータをコンソールに入力する。
ってどういう意味だ? コンソールに出力とは違うの?
あと基本クラスの書き方がところどころおかしいな。
継承すんのにprintインターフェースがオーバーライド使用不可とか 出題者は狂ってるな。
322 :
デフォルトの名無しさん :2006/06/10(土) 17:57:36
>>313 そうです、コンピューター対戦です。
どうやら次週はクラスでトーナメント戦をするようです
>>315 ありがとうございます。まず動かないと何もできないのでw
プレイ時間の制限がないなら全手読みきればいいんじゃないか?
初心者ものなのですが、よろしくお願いします。 Visual C++ 2005を使い、 #include <windows.h> が書かれたソースファイルをビルドしようとしても上手くいきません。 どうすればビルドできるんでしょうか?
初心者ものなのですが、よろしくお願いします。 Visual C++ 2005を使い、 #include <windows.h> が書かれたソースファイルをビルドしようとしても上手くいきません。 どうすればビルドできるんでしょうか?
すみません、連書きしてしまいましたm(_ _)m
宿題なら
>>1 のテンプレに従って質問しろ。
宿題じゃないなら、失せろ。
>>327 すみません、スレ汚してしまいましたm(_ _)m
Visual C++ 2005 Express Editionじゃないんですか。 Express EditionはWin32 Platform SDKを入れないと windows.hは使えません。
>>329 ありがとうございます。
インストールしようと思います。
>>314 何度もすみません。ありがとうございました。
332 :
275 :2006/06/10(土) 19:42:37
どなたかできませんでしょうか?
>>275 /* (1) */
#include <stdio.h>
int main(int argc, char **argv){
if( --argc > 0 ) fputs(*++argv, stdout);
while(--argc > 0 ) printf(" %s", *++argv);
return 0;
}
/* (2) */
#include <stdio.h>
int main(int argc, char **argv, char **env){
while(*env) puts(*env++);
return 0;
}
/* (3) */
#include <stdio.h>
int main(int argc, char **argv, char **env){
do{
if(0 == memcmp("PWD", *env, 3)){ puts(*env+4); break;}
}while(*env++);
return 0;
}
(3)を微妙に訂正。 #include <stdio.h> #include <string.h> int main(int argc, char **argv, char **env){ while(*env){ if(0 == memcmp("PWD", *env, 3)){ puts((*env)+4); break;} env++; } return 0;
(3)、もう一回訂正。 #include <stdio.h> #include <string.h> int main(int argc, char **argv, char **env){ while(*env){ if(0 == memcmp("PWD=", *env, 4)){ puts((*env)+4); break;} env++; } return 0;
336 :
デフォルトの名無しさん :2006/06/10(土) 22:40:06
[1] 授業単元: プログラミング通論 [2] 問題文(含コード&リンク): 文字列 s、f、t が与えられたとき、 文字列sの中で最初に現れるfをtに置き換えた文字列を返す 関数replace を作成せよ。 もし文字列fが見つからなかった場合は s を返すこととし、malloc を利用して実現すること。 関数の書き出しは、以下のようにすればよい。 char* replace(char *s, char *f, char *t) { char *q; q = (char*)malloc(sizeof(char)); } main関数を以下のようにしたとき、実行結果として「terminator」が出力される。 int main(void) { char *p; p = replace("teractor", "act", "minat"); printf("%s\n", p); return 0; } [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 6月12日 [5] その他の制限:strlen関数やstrstr関数を用いずにお願いします。
嫌な関数仕様だな。
>>336 もはや突っ込む気が失せるほどの糞問題だな。
次スレのタイトルは ぱっと見て「糞だなぁ」と思うC/C++の宿題 くらいかな?
さすがプログラミング通。 科目名からして意味不明~。
342 :
336 :2006/06/10(土) 23:28:36
この問題が中間テストに出て、手書きで解かなければなりませんでした・・・ (解けなかった問題をレポートで提出されるよう言われました) 先生は生徒の点数が悪いため嘆いてました・・・なんて愚かな人間なのかと思いました。
愚かなのは自分じゃ…
ちょwww空気嫁。どう見ても愚かなのは問題の方だろw
つい先日、その課題を見てreplace()をでっち上げた記憶があるぞ。
頭の悪い、指導能力のない先生にぶち当たると最悪だな・・・ 俺は高校のとき、物理の先生が酷くて、うちのクラスの平均は10~20、最低は0点って奴も・・・
#include <stdio.h> #include <stdlib.h> #include <string.h> char* replace(char*s,char *f,char *t){ char *p; p=(char*)malloc(sizeof(char)); free(p); /* 使い様がないので開放 */ { int n,m,l,k; for (m=0;s[m];m++); /* m=sの長さ */ for (n=0;f[n];n++); /* n=fの長さ */ for (k=0;s[k];k++) { if (!strncmp(s+k,f,n)) { for (l=0;t[l];l++); /* l=tの長さ */ p=(char*)malloc(m-n+l+1); /* 文字数m-n+lに終端\0の容量を確保 */ strncpy(p,s,k); /*s前半コピー*/ strncpy(p+k,t,l); /*tコピー*/ strcpy(p+k+l,s+k+n); /*s後半コピー*/ return p; } } p=(char*)malloc(n+1); /* 文字数mに終端\0の容量を確保 */ strcpy(p,s); /* sコピー(仕様が微妙だが) */ return p; } }
世の中うまくいくことばかりあるわけじゃない 無理難題を言われてもやらなきゃいけないこともあるのよね
349 :
275 :2006/06/10(土) 23:42:46
要するに
>>336 の問題は、strlenとstrstrを自分で作れ、
といいたいんじゃないのか?文字列操作関連の関数を自分で作ることは
それなりに学習効果はあるカモ。
ただ、
>関数の書き出しは、以下のようにすればよい。
>char* replace(char *s, char *f, char *t) {
>char *q;
>q = (char*)malloc(sizeof(char));
これはひどくない?最後の一行はせめて
q = (char*)malloc(sizeof(char) * n); /* nは自然数 */
とか書いて欲しい。
Cならmallocの戻り値をキャストする必要はない、とか、
C++なら確かにキャストは必要だけどmallocじゃなくてnewを使うべき、
とかそういうことはたぶん言ってはいけないのでしょう・・・
>>348 訂正
< p=(char*)malloc(n+1); /* 文字数mに終端\0の容量を確保 */
> p=(char*)malloc(m+1); /* 文字数mに終端\0の容量を確保 */
それ以前に、sizeof(char)なんて書くのは論外だ。
まぁまぁ、それもsizeofについて知るためだと思って・・・良いかとw
ちょ、ちょっとまて。
>>336 のreplace関数で、mallocで確保した
領域はいつ解放するの?replace関数呼び出し元がfreeするとか、OSが勝手に
解放してくれるのを期待!とか、教官はそういうことがいいたいのか?
どっちにしてもおかしいだろう。
その辺で「sを返す」の表現が微妙なんだよね。 sそのものを返してしまったらfreeするかしないかの判定が面倒になる。
そういうことまで言及すると、なぜか減点される。
357 :
336 :2006/06/10(土) 23:58:30
テスト範囲はポインタのところなんですが、freeは習ってないですね・・・ むしろmallocの必要性が分からないです。アドレスを返すって習いました
ぐぐれ
なるべくポインタっぽくならないように書いたのに
馬鹿教官のC言語にはガベージコレクタが実装されているんだよ。
その設計ならmallocは必要だろうが、そもそも設計からしておかしいよな あくまで書き込み先バッファは呼び出し元が何らかの形で確保した上で サイズと共に出力先として関数に渡すべき
>>360 ×馬鹿教官のC言語には
○馬鹿教官の頭の中では
>>361 まあstrdupの変形だと思えばこの仕様自体はありだろう。
C++のnewとかわらないし、API仕様としてはむしろ一般的でしょ。 開放手段を明示するのは前提だけど。
>>364 ファクトリメソッドのように確実に確保されて返ってくるならともかく、
場合によってはmallocされますとかありえないだろ。
用法を想定して常識的な解釈をすれば、 常にコピーして返せという意味だと捉えたが。
>>363-364 それはそうだが、敢えてこの用途もそうするのがベターとは到底思えないんだが
こうするのは一般的でしょ。 適切な領域サイズを計算するのには結局全てを知る必要があるから。 これが例えばs/act/minat/g みたいな動作をするものだったらもうかなり予測不可能だよね。 int replace(char *dest,const char* pat,const char* rep,int n); みたいに確保したサイズをnで渡して実際に必要なサイズを返すパターンもあるけど。
369 :
198 :2006/06/11(日) 01:12:07
>>264 すみません。
精度の検討は自分で考えますので、微分のプログラムを教えていただけないでしょうか?
replace()なんだからs/hoge/hage/gが普通じゃないか? こういう動作をするなら例えば冗長だが copy_with_replace()とかの方がいいような希ガス
371 :
275 :2006/06/11(日) 01:42:25
もうひとつ宿題、同じ形態です 問題文(含コード&リンク): 1)関数’read()’及び’write()’を用いて、端末入力を端末出力にコピーするプログラムを作成せよ。 ただし、ファイル記述子fdは、read->fd=0、write->fd=1であり、バッファサイズは512とせよ。 2)あるファイルを監視して、何か変更があるたびにそのファイルの先頭から 表示するようなwatchfileというプログラムを作成せよ。 ヒント: for(;;){ /* 無限ループ */ star(argv[1],&sbuf); if(・・・・・){ /* ファイルの状態を検査して変わっていれば */ while((n=read(fd,buf,1024))>0) write(1,buf,n); /* 1024バイト単位に、readバイト数がゼロになるまで読んで出力 */ } sleep(10); /* 10秒待機 */ } 期限: 6/12 午後10時まで お願いします。
/* (1) */ int main(argc,argv) int argc; char **argv; { int n; char buf[512]; while ((n=read(0,buf,512))>0) write(1,buf,n); }
>>371 への回答 (
>>372 も)
/* (2) */
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
int main(argc,argv)
int argc;
char **argv;
{
int n,fd;
char buf[1024];
struct stat st;
time_t mt;
stat(argv[1],&st);
mt=st.st_mtime;
for (;;) {
stat(argv[1],&st);
if (mt!=st.st_mtime) {
mt=st.st_mtime;
fd=open(argv[1],O_RDONLY);
while((n=read(fd,buf,1024))>0)
write(1,buf,n); /* 1024バイト単位に、readバイト数がゼロになるまで読んで出力 */
close(fd);
}
sleep(10);
}
}
>>336-341 例えば、こんな風に使えば使えなくもないかも。
char* p=replace(s, f, t);
if (p!=s) {/*チカンされました*/}else{/*チカンされてません*/}
>>374 #define BECKY "shiri"
char *p=replace(BECKY,"kaban","sawaru");
if (p!=BECKY) {/*チカンしてないのに*/}else{/*チカンされてません*/}
なんてのが処理系によってはあるな。
確実に冤罪を回避するにはやはりチカンしてないときはぬるぽを返すのが常道。 が、それが聞き入れられない(戻り値をチェックしない)ほどトンチキな奴が呼び出し側 だったりすると人生終わる。
377 :
275 :2006/06/11(日) 03:41:54
>>373 ほんとありがとうございます、助かりました
378 :
デフォルトの名無しさん :2006/06/11(日) 05:48:30
キーボードから数行のテキストを読み込み、 その中に含まれるアルファベットの出現回数、 その中に含まれる一文字単語、二文字単語、三文字単語...の出現回数、 その中に含まれる各単語の出現回数、 これらを分析し、出力せよ。 例:「To be,or not to be:that is the question:」 a:1、b:2、c:0、d:0 ... 1文字:0回 2文字:6回 3文字:2回 ... to:2回 be:2回 or:1回 ...のようになる。 Hint:strtok関数で各単語ごとに区切ってから考えると良い。 という宿題が出ました。助けてください。
[1] 授業単元: C言語プログラミング [2] 問題文 キーボードから100点満点のテストの点数を入力し(-1で終了)、 10点ごとの人数を int型の配列 count[11]に数えるプログラムを作成せよ。 テストは100点満点とし、それ以外の入力はエラーとして無視する。 ただし -1 はデータの終了を表すものとする。 点数の入力が終了したら、度数分布を画面に出力して終了する。 【出力の例】 0 - 9 0人 10 - 19 1人 20 - 29 0人 30 - 39 1人 40 - 49 0人 50 - 59 2人 60 - 69 4人 70 - 79 5人 80 - 89 8人 90 - 99 3人 100 0人 【ヒント】 点数 0~ 9の人数 ‥ count[0] 点数10~19の人数 ‥ count[1] 点数20~29の人数 ‥ count[2] とそれぞれ順に格納される。 つまり入力された点数を10で割った値が、添字となる。 [3] 環境 [3.1] OS: Windows [3.2] Microsoft Visual C++ .NET [3.3] 言語: C [4] 期限: ([2006年6月13日12:00まで] [5] forなどループ、配列を習っている最中です
#include <stdio.h> int main(){ int i, n, count[11] = {0}; while(1){ scanf("%d", &n); if(n<0) break; count[n/10]++; } for(i=0;i<10;i++) printf("%d - %d %d人\n",i*10,i*10+9,count[i]); printf("100 %d人\n",count[10]); return 0; }
|ω・`) どなたか
>>158 もお願いします。。。
383 :
デフォルトの名無しさん :2006/06/11(日) 16:19:24
例えばx(整数)が負のとき~するという文を、if文などを使わないで 書くにはどうしたら良いのでしょうか? また、xを符号付2進数で表し、そのMSBを求めることはできますか?
ここは例え話をするところではありません。
[1] 授業単元: [1] 授業単元:Cプログラミング [2] 問題文(含コード&リンク): ピボット選択付きLU分解のCプログラムを作成せよ。 [3] 環境 [3.1] OS: WindowsXP pro [3.2] コンパイラ名とバージョン: Visual Stidio.NET 2003 [3.3] 言語: C [4] 期限: 2006年6月11日24:00まで [5] その他の制限: 特になし ガウスの消去法のピボット選択のプログラムは見つけたんですが、LU分解のものは見つかりませんでした。 通常のLU分解と、その他の条件(ここには書かなかった)はできたんですが、ピボットの部分選択で四苦八苦してます。 LU分解のアルゴリズム部分のプログラムだけで結構ですので、ご享受お願いします。
>>383 適切なスレで質問するなら答えてあげる。
[1] 授業単元:構造体 [2] 問題文: 2次元平面内の2点の座標をx座標とy座標を交互にキーボードから入力し, その2点間の中点の座標を表示するプログラムを作成しなさい. このとき,点の座標は構造体で表すものとし, 構造体の名前を point_t,構造体のメンバを, 1. x座標の値は double型 とし,名前を x とする 2. y座標の値は double型 とし,名前を y とする とする. [3] 環境 [3.1] OS:XP [3.2] コンパイラ名とバージョン:よくわかりません [3.3] 言語:C [4] 期限:2006年6月11日まで [5] その他の制限:関数、ポインタ、文字列は習いました コンパイラのバージョンはよくわからないです、すいません。 gccとemacsのコマンドを使っています
[1] 授業単元:オペレーティングシステム [2] 問題文(含コード&リンク): dateとgrepを組み合わせて、引数として与えた時刻になったときに ’wake up!’と表示するプログラムを作成せよ。 [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C言語 [4] 期限: 今日午後11時まで お願いします
389 :
デフォルトの名無しさん :2006/06/11(日) 18:45:53
[1] 授業単元:構造体 [2] 問題文:・構造体で、最大4桁入力の計算機を作成しなさい。 ・演算子は優先順位を考慮し、ゼロで割った場合はエラーになること。 ・数字の間に空白が入力されるとエラーになること。 ・数字、演算子、=、空白のみで、その他が入力されるとエラーになること。 [3] 環境 [3.1] OS:WINDOWS [3.2] コンパイラ名とバージョン:よくわかりません [3.3] 言語:C [4] 期限:2006年6月16日まで [5] その他の制限:特になし
>>388 #include <stdio.h>
#include <stdlib.h>
int main(int argc, char **argv){
char command[256];
if( argc <= 1 ) return 0;
sprintf(command, "date | grep '\\w\\+ \\w\\+ \\w\\+ %s' > NUL", argv[1]);
while(0 != system(command) ) sleep(1);
puts("wake up!");
return 0;
}
[1] 授業単元:プログラミング [2] 問題文(含コード&リンク): 数nを入力しnの階乗を計算し次のように表示するプログラムを作りなさい [3] 環境 [3.1] OS: WindowsXP SP2 [3.2] コンパイラ名とバージョン: Visual Stidio.NET 2003 [3.3] 言語: C [4] 期限:来週まで [5] その他の制限: 特になし for next文を使うことは分かったんですが そこから先に進めません、ご教授お願いします。
>>391 >次のように表示するプログラム
次のようにって部分が分からんけど、階乗なら楽勝じゃね?
n を入力したら、後は for文にnから順に値をデクリメントして掛けていけば良いし。
【質問テンプレ】 [1] 授業単元: [2] 問題文(含コード&リンク):1+1/2^2+1/3^2+..........+1/n^2 が3を超えるときのnの値を求めよ。 [3] 環境 [3.1] OS: WindowsXP SP2 [3.2] コンパイラ名とバージョン: UltraC [3.3] 言語: C [4] 期限: 明日の午後2時まで よろしくお願いします。
>>391 これをmainから呼び出して
int kaijo(int a)
{
if (a>0){
return kaijo(a-1)*a;
}else{
return 1;
}
}
>>393 #include <stdio.h>
int main(void)
{
int n;
double sum = 0;
for( n = 1 ; sum <= 3.0 ; n++ ) sum += 1.0 / (n * n);
printf("%d\n", n);
return 0;
}
そのときのsumの値は…
>>387 結果の表示桁数がわからんけどとりあえず%3.3fで
#include "stdio.h"
typedef struct point_t
{
double x;
double y;
}point_t;
int main()
{
point_tpt[3];
printf("中点計算\n");
printf(,(カンマ)区切りで座標を入力して下さい\n);
// scanfでのdoubleは%lf
printf("点1の座標 x,y=");
scanf("%lf,%lf",&pt[0].x,&pt[0].y);
printf("点2の座標 x,y=");
scanf("%lf,%lf",&pt[1].x,&pt[1].y);
pt[2].x = (pt[0].x+pt[1].x) / 2 ;
pt[2].y = (pt[0].y+pt[1].y) / 2 ;
// printfでのdoubleは%f
printf("中点(x,y)=(%3.3f,%3.3f)",pt[2].x , pt[2].y);
return 0;
}
>>400 おお、&演算子があることを忘れてた
C/C++言語はまだまだ慣れないなぁ orz
計算式もそちらのほうがシンプルだったかぁ
それにしてもC言語は書式指定を設定するのが本当に面倒だと思った
>>392 ,394.396,399
ご親切にありがとうございます。
助かりました。
405 :
385 :2006/06/11(日) 21:19:54
四苦八苦したところ、なんとかできたようです。 部分選択できてるかどうかは、ピボット選択してできた行列の対角成分が 各行で一番大きな値になってればいいんですよね? 一応そうできてたので、あってると思うんですが・・・
申し訳ありません。どなたか
>>269 をお願いします・・・m(__)m
[1] 授業単元: 数値計算特論 [2] 問題文(含コード&リンク): 差分法を用いて、障害物の存在する流れを求める プログラムを組み、その流れの流線図、速度ベクトル図、 等圧線図を示せ。 [3] 環境 [3.1] OS: Win2k SP4 [3.2] コンパイラ名とバージョン: Visual C++ 2005 [3.3] 言語: C言語 [4] 期限: 6月16日 [5] その他の制限: 特になし ______________ _____ | | ___| |_____ このような管内流れを求めるプログラムです。 よろしくお願いします。
>269 迷路ファイルが読み込めないよ
どなたか
>>305 をもう少しAIっぽくしていただけないでしょうか
>>315 さんには失礼かもしれませんが、大変感謝しています
410 :
ケロ :2006/06/11(日) 23:41:09
[1] 授業単元: 計算物理学 [2] 問題文(含コード&リンク): 1/√(π)exp(-x^2) 中央値0 偏差1 の正規分布表をあたえる。 [-1.1]および[-2.2]の範囲に存在する確立はいくらか? で台形法で解けと…。 [3] 環境 [3.1] OS: Windowsxp [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C/C++/どちらでも可 [4] 期限: H18年6月13日まで [5] その他の制限: なし お願いします(T_T)
>>410 1/√(π)exp(-x^2) 中央値0 偏差1 の正規分布表とやらは?
412 :
デフォルトの名無しさん :2006/06/12(月) 01:12:32
それじゃ出題ミスだな。担当に文句いえよ。
414 :
京大生www :2006/06/12(月) 01:18:50
Cです。 環境はどこまでいえばいいか分かりませんが、コンパイラはbcc32 テキストファイルのa.textが abc def ghi だとします。 char *hako[3]; で定義した配列ポインタを使って *(hako+0) = abc *(hako+1) = def *(hako+2) = ghi というかんじでファイルから配列にコピーしたいのですが、どうすればいいのでしょうか? 大至急応答お願いします。
>>413 N(0,1)の標準正規分布のことを言ってると思われ。
だから与えてないんだろ。
>>410 C的に書けば N(0,1) = exp(-pow(x, 2)/2) / sqrt(2)
の間違いだと思うんだがどうよ?
(expの指数部が違う)
>>414 これでいい?
後、
>>1 ぐらい嫁!
#include <stdio.h>
int main(void)
{
char *hako[3];
FILE *fp;
if ((fp=fopen("a.text","r"))==NULL){
perror("error! ");
return -1;
}
fscanf(fp,"%s",hako);
fscanf(fp,"%s",hako+1);
fscanf(fp,"%s",hako+2);
printf("*(hako+0)=%s\n*(hako+1)=%s\n*(hako+2)=%s\n",hako,hako+1,hako+2);
fclose(fp);
return 0;
}
417 :
おながいします :2006/06/12(月) 01:30:50
1] 授業単元:Cプログラミング [2] 問題文(含コード&リンク): アルゴリズムで3以上n以下の素数の個数を計算して表示させるプログラムを書きなさい。 [3] 環境 [3.1] OS: WindowsXP [3.2] コンパイラ名とバージョン: Visual Stidio C++ 6.0 [3.3] 言語: C [4] 期限: 2006年6月12日8:00まで [5] その他の制限: 特になし 早急にお願いします!
>>417 どのアルゴリズムで?
>>415 あぁ、正規分布の確率密度関数か
そういやそんなのも習ったな
422 :
京大生www :2006/06/12(月) 01:36:51
文字数を多くしたらばぐったけど
423 :
京大生www :2006/06/12(月) 01:37:28
424 :
京大生www :2006/06/12(月) 01:40:22
>>416 でa.txtを
abcc
def
ghi
としたらおかしな結果を得ました。
なぜでしょう
>>423 見たくないなら見なくてもよろし。
きっとおまえさんのためになるとおもって書いたんだけどな。
念のため言っておくと、純粋な.LHAアーカイブだし、中身はソースファイルとテキストファイルだけだ。
まあ好きにしれ。
ハイ次の方どうぞー
428 :
京大生www :2006/06/12(月) 01:42:51
仕様範囲とは?
京大生なのにウィルス検索ソフトも持ってないのかよ 京大生ならウィルス検索ソフトぐらい自作しろよ
430 :
京大生www :2006/06/12(月) 01:43:39
勇気をもってDLした。よも
>>422 自分で仕様を
>テキストファイルのa.textが
>abc
>def
>ghi
>だとします。
>char *hako[3];
>で定義した配列ポインタを使って
と入力文字数と配列サイズを固定した条件出してるくせに
勝手に仕様を変えてほざくなボケが。
433 :
京大生www :2006/06/12(月) 01:46:57
char *を使いたい理由は 例えばchar hako[10]としてしまうと必ず10バイト使われてしまうけどポインタなら・・・ 実験したプログラム↓ #include <stdio.h> int main (void) { int i; char *subject[3] = {"math", "phisics", "chemistry"}; for (i=0; i<=2; i++) { printf("%s\n", *(subject+i)); printf("%d\n", sizeof(*(subject+i)) ); } putchar('\n'); for (i=0; i<=2; i++) { printf("%s\n", *subject+i); printf("%d\n", sizeof(*subject+i) ); } return 0; } 一応ポインタに対する軽い裏づけはとったつもりなのに失敗したわけで
434 :
京大生www :2006/06/12(月) 01:48:16
なんでおれをいじめるんだ;; わかんないからきいてるだけなのに;;
つここは宿題スレ
>>432 が回答貼ったので篩貼るのは止めとくが、それ前にも見たなwwww
439 :
京大生www :2006/06/12(月) 01:51:12
別に宿題じゃなくても聞いてもいいじゃんか。 くそ、プログラムわかんねえ。才能ないのかな
そもそもchar*hoge[N]って、配列ポインタじゃなくてポインタの配列だろ 変数宣言もまともに読み取れんのか?
動的に配列確保すればいいだけじゃないか
442 :
421 :2006/06/12(月) 01:55:50
>>433 ま、名前欄が反感買ってるんじゃまいか?それはいいとして。
>>433 で提示されたプログラムは、文字列がハードコーディングされている。
ということは、コンパイル時に変数への文字列の代入が決定される。
char *hoge = "str";
という表現は、コンパイル時に領域を決定できるから問題無い。
(hogeは 文字列"str"の先頭のポインタ)
が、
>>414 で示した条件はファイルからの読み込みだ。
これでは、コンパイル時に文字列用の領域を決定できない。
仮に、
char *huga;
とした場合、sizeof (char *)分の領域しか確保されない。
ということは、これに文字列を代入することは不可能だ。
なので、通常コンパイル時に確定できない文字列を読み込む時は、あらかじめ
文字列の上限値を設定して領域(charの配列)を確保するか、
あるいは何らかの方法で文字列長を決定し、malloc(動的なメモリ確保関数)の戻り値を保存し、
strcpy等で文字列を「コピー」しなければならないんだ。
ざっと書いたが、分かったかな?
443 :
京大生www :2006/06/12(月) 01:56:55
それは↑に書いたプログラムで裏づけをとってある。 char *subject[3] = {"math", "phisics", "chemistry"}; としたらちゃんと代入できてるのだから、出来ないはずがない なぜ一番最初に渡されたプログラムがテキストを変えるとバグるのか理解出来ない
一分遅かったな
445 :
・∀・)っ-○◎● ◆toBASh.... :2006/06/12(月) 02:00:05
なにこの京都大学産業学部
char* ポインタ名= "文字列"; という文における=が、どこでも使えるような代入文の=じゃなくて 「コンパイラが文字数を数えて特別に準備してくれる特殊な初期化記法」 であることがわかってない奴が多いな。
448 :
デフォルトの名無しさん :2006/06/12(月) 02:02:31
>>442 つまり
>>416 のプログラムにおける
char *hako[3];
の3は3バイトの3なのか?じゃないとテキストを変えてばぐった説明がつかない。
おれは
char *subject[3] = {"math", "phisics", "chemistry"};
と書いてそれぞれに文字列の代入をして成功している。
同じ形なのに[]の中の意味が変わるというのか?
そんなバカなことはあるまい。
はぁああああああああああ!!!!!!!!!!!!!
>>446 そんな基本事項が分かってない奴なんているのか?
>>442 ,446を読め、それと、いい加減スレ違いなんで質問スレ池
後、状況の違うものを比較しても何にもならん
>>443 >としたらちゃんと代入できてるのだから、出来ないはずがない
「ちゃんと」じゃないかも知れないとは思わなかったのか。
char *subject[3] = {"math", "phisics", "chemistry"};
としておいて、テキストを
mathematics
philosophy
biochemistry
にしても「ちゃんと」代入できるのかね?
452 :
・∀・)っ-○◎● ◆toBASh.... :2006/06/12(月) 02:08:10
453 :
京大生www :2006/06/12(月) 02:09:03
わかた。 気合入れて今作ってるプログラムを完成させてやるお。 Special Thanks 2ちゃんねらプログラム板て書いておいてやるから安心汁wwww
454 :
デフォルトの名無しさん :2006/06/12(月) 02:10:11
>>453 いつから京大はこんな無能が入れるようになったんだ?
ばかだ大学でも逝けよ。
本当にお前ごときが京大生ならさっさと
除籍してほしいと切に希(こいねが)うよ。
まかり間違っても、弁護士や公務員その他社会に影響力のある
職務につかないでね。極めて迷惑だから。
456 :
421 :2006/06/12(月) 02:14:25
>>448 もう眠いから、適当に頑張ってくれ。
Google先生に「C言語 文字列 ポインタ」などとして聞いてみるんだな。
ちなみに、最後に言っておくと、
char *hoge{N];
-> (char *)型のポインタのN個の配列
-> hoge[n] は (char *)型のポインタを表す
-> こいつに文字列を代入できると豪語するなら、
-> #include <string.h>して、
-> for(int i=0; i<N; i++)
-> strcpy(&hoge[i], "hogehoge");
-> とでもしれ。
char hoge[N][STRLEN];
-> (char *)型の配列N個に、それぞれchar[STRLEN]の先頭のポインタを格納した配列と考える。
-> すなわち、N*STRLENの二次元配列
-> 上で示した「動かないであろう」forループを試してみるがよい。
京都産業大学とかだったりして
458 :
・∀・)っ-○◎● ◆toBASh.... :2006/06/12(月) 02:15:45
でも、わけわからんもんよ。 阪大院に行った香具師が俺に基本情報の突破法聞いてきたりwww んなもんいまさら受けんなよwww
459 :
・∀・)っ-○◎● ◆toBASh.... :2006/06/12(月) 02:16:32
京大ってもっとすごいこと勉強してるとオモタ でも、ヒューマンインターフェースとかやるのか…いいなぁ…
うちには応募してこないとは思うけど京大もBL入りかな。
>>446 それじゃcharへのポインタの初期値に文字列の先頭アドレスを設定しているだけでしょ。
ちょwww京大でもBL入り むやみやたらに、学校名晒すもんじゃないね
>>461 いや、あんさんの職場こそBL入り企業なんでは?w
どこの大学でも入学時は「拡張子?なにそれ?」とか言うのが大半 まぁそろそろマ板行った方がいい
まさかぁ、時代が違うだろw 今時そんなもの知らずにいること自体、時代遅れ。 俺が大学んときゃまだWin98が出てなかった頃だったし パソコンを持っている生徒もほとんどおらんかったが 自分は工房のときから使ってたから操作は余裕だったが
467 :
・∀・)っ-○◎● ◆toBASh.... :2006/06/12(月) 02:28:40
こういうのが林晴彦あたりの厨本に騙されて独りよがりなコード書くようになるんだなとオモタ
大学の入学祝いに、初めてパソコンを買ってもらった人がいるんですよぉ~ なぁ~~にぃ~~!?やっちまったな! 男は黙って! 電卓! 男は黙って! 電卓! あはっ、単純な計算しかできないよ
469 :
デフォルトの名無しさん :2006/06/12(月) 02:31:23
>>410 をお願いします。
fortran向けの出題で、Cでやってもいいって言ってたからおかしいのかな?
>>469 某スレのFORTRANプログラム丸写しで良ければw
#include <stdio.h>
#include <math.h>
#define PI 3.14159265
double fx(double x) { return exp(-x * x) / sqrt(PI);}
void Daikeihou(double a, double b) {
int n, j, k;
double x, h, s;
int NJUN[] = {10, 50, 100};
printf("Sekibun for 1/sqr(PI)*exp(-x*x) a = %5.2f, b= %5.2f\n", a, b);
for (k=0; k<3; k++) {
n = NJUN[k];
h = (b - a) / n;
s = (fx(a) + fx(b)) / 2.0;
for (j=1; j<n; j++) {
x = a + h * j;
s += fx(x);
}
s *= h;
printf("Bunkatsu = %d, Menseki = %f\n", NJUN[k], s);
}
}
int main() {
Daikeihou(-1.0, 1.0);
Daikeihou(-2.0, 2.0);
return 0;
}
472 :
デフォルトの名無しさん :2006/06/12(月) 07:15:32
[1] 授業単元: C++演習 [2] 問題文(含コード&リンク):32から126までの95個の整数を一元配列に格納するものとする。 これらの整数値を文字型にキャストし、10列の表形式で出力するプログラムを作成しなさい 。 なおcout<<(char)code[i]<<ch;というような形式の分をプログラムにいれること。 注:文字型は10進文字コード32から126までの文字にすること。 [3] 環境 [3.1] OS: WindowsXP [3.2] コンパイラ名とバージョン: Borland C++Compiler 5.5 [3.3] 言語: C++ [4] 期限:明日 [5] その他の制限: 反復処理の章で出された課題です。 朝早くから申し訳ありません。お願いします。
[1] 授業単元:プログラミング [2] 問題文(含コード&リンク):1+1/2i+1/3i+1/4i+..............................+1/niが3を超えるときのnの値は? [3] 環境 [3.1] OS: WindowsXP [3.2] コンパイラ名とバージョン: UltraC [3.3] 言語: C [4] 期限: 6/16まで 一応記しておくと、 i は階乗という意味です。分かってたらごめんなさい。 よろしくお願いします。
iで階乗とわかる奴がいるんだろうか
>>474 > i は階乗という意味です。
分かっていないのはお前だろw
ていうか自分が何を計算しようとしているのか分かってるのか?
i ! 似てると思ったけど全然違うなw コンパイラといい、ネタでしょう
478 :
デフォルトの名無しさん :2006/06/12(月) 08:12:46
>>473 472です。携帯から失礼します。帰宅したら確認します。ありがとうございましたm(__)m
>>474 e^xをx=0の周りでマクローリン展開すると…
>>479 インタプリタな上にOutーof-Rangeのチェックまでしてくれるのか
こんなので学習したらデバッグ方法も知らないような馬鹿が量産されるだけだろ
>>482 言語とデバッグ方法を同時に学ぶ必要もないだろ。
UltraC・・・あこがれる
時間と分と秒を入力として、秒に換算し 換算結果を出力とする関数を作成 ただし 入力の分と秒はともに0-60とし、それ以外が入力された場合はエラーとして 戻り値をー1で返す。正常終了の場合は戻り値を0とする また、この関数を確認するためのmain関数も作成すること ポインタがさっぱりわかりません…
0近傍でのテーラー展開がマクローリン展開じゃなかったか?
#include<stdio.h> #define DATE1990 /*マクロ定義1*/ #define DATE1995 /*マクロ定義2*/ void main(void) { float price,total =0.0; scanf("%f",&price); /*価格をとりこむ*/ #if DATE==1990 total = 0.03* price +price ; printf("Tax(3%%) Total %.0f\n",total); /*画面に表示*/ #else if DATE==1995 total = 0.05* price +price ; printf("Tax(5%%) Total %.0f\n",total); /*画面に表示*/ #endif } これをどうやればシンボルが定義されているかどうかを判定することによって、 処理内容を変更できるようになりますか?
すいません トリップ忘れてました
【授業単元】C言語 プログラミング
【環境】Visual Stdio.NET2003
【OS】Windows XP
【提出期限】6月19日
【課題内容】
>>487 >>490 です
よろしくおねがいします
[授業単元]プログラミング [言語]C言語 [提出日]6月17日 [環境]Visual Stdio.NET2003 [OS]Windows XP [問題]5名分3教科のテスト結果が5×3の配列にはいってるとき 各教科毎に点数の高い順に並び替えた配列を入力する関数と main関数を作成せよ {2次元配列のポインタ渡し} 英語77,75,65,50,30 数学92,80,69,65,40 国語90,90,80,50,45 よろしくお願いします
>>491 即レスありがとうございます
8行目の #if を #ifdef にかえればいいということでしょうか?
>>495 そう、大体こんな感じ
#ifdef DATE1990
...
#elif defined(DATE1995)
...
#endif
[授業単元]プログラミング [言語]C言語 [提出日]6月17日 [環境]Visual Stdio.NET2003 [OS]Windows XP [問題]球の半径を入力とし、算出した球の体積と 表面積を出力とする関数を作成せよ。ただし、半径0以下の値が 入力された場合はエラーとし、戻り値ー1で返すこと。 正常終了の場合は戻り値を0とする。 また、この関数を確認するためのmain関数も作成すること。 円周率は3.1415926536とし、半径Rの球の体積V、 表面積Sを求める式は次の通りである。 {ポインタ渡しによる関数呼び出し} V=4/3πR^3 S=4πR^2 例答:半径10.0 体積4188.79 表面積1256.64 できる方がいましたらよろしくお願いします
500 :
デフォルトの名無しさん :2006/06/12(月) 12:10:30
>>493 #include <iostream>
using namespace std;
int main(){
int h , m , s;
int mts = (m * 60);
int hts = (h * 60 * 60);
loop1:
cout << "時間を入力してください>\n";
cin >> h;
if( (h >= 1) && (h < 24) ){
goto loop2;
}
else {cout << "modorichi-1\n";
goto loop1;
}
501 :
デフォルトの名無しさん :2006/06/12(月) 12:11:43
>>493 つづき
loop2:
cout << "分を入力してください>\n";
cin >> m;
if(m < 60){goto loop3;
}
else {cout << "modorichi-1\n";
goto loop2;
}
loop3:
cout << "秒を入力してください>\n";
cin >> s;
if(s < 60){
goto end;
}
else {cout << "modorichi-1\n";
goto loop3;
}
end:
cout << "入力された時間を秒に換算すると" << (mts + hts + s) << "秒です";
return 0;
}
502 :
500 :2006/06/12(月) 12:19:01
プログラムの書き方なんて分からないので適当に書いてみました。 なんか数字以外の文字を入力すると動作がおかしくなるので気をつけてください。 それでは失礼します。
504 :
デフォルトの名無しさん :2006/06/12(月) 12:26:04
>>266 現在の貯金額を表示するにはどうしたら
いいですか?
>>504 5以上の数値を入力すりゃ出るが・・・それはソースを見れば分かるんでは?
自分で仕様を変えるくらいはできるでしょ?
レス見りゃ何も出来ない無能だってわかるじゃん。
まぁ、スレのタイトルからして、何も分からん丸投げの奴が多いのは分かるが・・・ 自分で試すチャレンジ精神もないクズしか質問してこないのか? せめてソースを見て理解するくらいの気持ちは欲しいもんだな
依頼者にコピペ以上の何かを期待するのはスレ違い。
509 :
その1 :2006/06/12(月) 13:17:03
[1] 授業単元: 情報処理演習 [2] 問題文(含コード&リンク):二分探索でデータを見つけるプログラムを作 成し,実行せよ.ただし,以下の仕様を満たすものとする. <仕様> 1.対象とするデータ構造は, struct SportsClub kaiin[] = { 555, "Yuki TERADA", 222, "Kaho KANO", 789, "Yuko FUKUDOME", 444, "Seiko ANDO", 456, "Mai YUKAWA", 666, "Kyoko KAMIDOHZONO", 123, "Yuasa OKADA", 777, "Aya SAKATA", 111, "Yua SAITOU", 333, "Noriko KIJIMA", 569, "Shihori YOKOHARI", 689, "Chieko NOGUCHI", 345, "Ikuko OURA", 994, "Airi TAKASAKI", 103, "Mizuna INOUE", 888, "Yuna SATONAKA" }; と初期化すること.また,この構造体は, struct SportsClub { int id_num; char name[80]; };と定義すること.
510 :
その2 :2006/06/12(月) 13:17:37
2.最初に,1のデータ構造をファイルoriginal_kaiin.dat(ASCII 型式)に保存 する.次に,クイックソートで上記データ構造を会員番号(id_num)にしたがっ て昇順に並べ替えるとともに,その結果をsorted_kaiin.dat(ASCII 型式)に保 存する.ただし,クイックソートは,標準ライブラリ関数を用いず,各自作成 すること. 3.sorted_kaiin.dat を構造体配列kaiin2[KAIIN_NUM]に読み込み,これを二分 探索に用いる.ただし,本課題の場合,KAIIN_NUM は16 である. 4.二分探索は,会員番号を打ち込めば,該当する氏名を表示させるものとす る.また,会員一名分の情報を表示させた後,終了・続行の希望を使用者に質 問させ,回答を基にその後動作を決定させること. <入出力例> Please input ID#: 123 ID#:123 Name:Yuasa OKADA Continue? y/n: y←続けるとき,y を打ち込む Please input ID#: 0 Not found! Continue? y/n: y Please input ID#: 345 ID#:345 Name:Ikuko OURA Continue? y/n: n←これで終了 [3] 環境 [3.1] OS: linux red hat [3.2] コンパイラ名:gcc [3.3] 言語: C+ [4] 期限:6/20 [5] その他の制限:ながながと問題文を書いてすみませんどうかおねがいしますorz
もう授業も最後の方でポインタを使いたい時期なんだよ・・・ って、まだ新学期が始まったばかりだがw
514 :
デフォルトの名無しさん :2006/06/12(月) 14:08:39
>>499 知らない単語がいっぱいあるので
ちゃんと調べてレポート書こうと思います
トーナメントが実際あったら結果は報告します
ありがとうございました
>>487 の戻り値が、換算する関数のものなのか、mainのものなのかはっきりせんね。
換算する関数に不適切な値を引き渡した場合に -1 を戻すなら、結果は-1秒って表示するわけ?
もしそうだったら、正常な値を引き渡した場合、秒数を返り値にするとなれば、
換算する関数の正常終了時には 0 しか返って計算結果が出せないのだがw
変数の定義をグローバルにすれば良いけど、もっと出題の条件をはっきりしてもらいたい。
516 :
デフォルトの名無しさん :2006/06/12(月) 14:50:49
[1] 授業単元:宿題 [2] 問題文 正の整数を読み込み、その整数が素数かどうかを調べる プログラムを作成せよ。 [3] 環境 [3.1] OS:windows XP [3.2] gccでした。 [3.3] 言語: C言語なんですが違いがわかりません><おそらくCの方かと。。 [4] 期限:今日中でお願いします(_ _*) [5] その他の制限:専門学校に通う1年生なんですヶど。。 いきなりプログラミングの問題が出題されてしまぃ、 友達と共に凄く困ってます(;~;)どなたか優しぃ方お願ぃします(┰_┰)∩
まずはおっぱいうpしろ
#include <stdio.h> int main(){ printf("****入力値が素数かどうか調べるプログラムだよ!***\n"); printf("正の整数を入力してね : "); getchar(); printf("調べました(^_^)。\n"); return 0; }
521 :
516 :2006/06/12(月) 15:09:51
やっぱ女口調だと食いつきが違うな(笑) チェリー諸君thanks!
522 :
名無し :2006/06/12(月) 15:12:43
内容:
[1] 授業単元: c言語 演習
[2] 問題文(含コード&リンク):
選択整列法のプログラム 6.2.c に関し,内側の反復の中で
変数 min が更新される回数の
平均が O(N log N) であることを証明せよ。
注:入力にはN 個の相異なる値のすべての順列 (permutation) が等確率で
現れるとして,この平均を考えよ。
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン:gcc 3.3.2
[3.3] 言語: c言語
[4] 期限: 期限外でもいちお評価はひくくなりますが受け取ってくれるそうなんですが、期限は今日の夜0:00までです。↓
プログラム6.2.cというのは、以下のページにあります.このプログラムは、6.1.cと
組み合わせることでコンパイルできます。どうかおねがいします。
http://kk.kake.info.waseda.ac.jp/ads06/0530/0530-ch6.html
>>520 √n以上を調べるのは初心者とか以前の問題かと。中学生未満。
>>523 またお前かw それじゃ√nにしたソースを提出してみ。
お前のあの長々としたものじゃなくて、もっとシンプルのでな。
だいたい、それを求める場合 math.h と sqrt を使うだろ?
最初にヘッダについてや関数についてそこまで習っているかどうか・・・
[1] プログラミング [2] 標準入力から文字を読み込んで特定の文字の連続たとえばowari を入力した場合終了するようなプログラムを作成 [3] 環境 [3.1] xp [3.2] gcc 3.4 [3.2]C [4] できればすぐがいいです。 よろしくお願いします!
あと、前にも言ったけど、1~nまでの素数を求めるのではなく 入力された値が素数かどうか?だぜ?
>>526 だから、√(入力された値)までの間に約数がなければ入力された値自体が素数。
そんなのは中学生でも知ってる。
>>527 別に。習ってないなりの範囲内でやってやったまでだよ。
初心を忘れるべからず。まさに今のあんたにゃ相応しいかもな。
無駄なものを取り込むようになったら、何が必要かもわかりづらくなるぜ。
ソースはすっきりしてた方が良いだろ。初心者向けには、ね。
まぁ、お互いの考え方について議論しても意味はない。結果を出せるソースがありゃ良いだけだしな。
自分がもっと上を行っているって見せつけたいなら、こんな場所で
ソースを理解できない奴を相手にするよりも、もっと玄人が集まる場所に顔を出してみては?
>>525 #include <stdio.h>
#include <string.h>
int main(void)
{
char a[50];
while (1){
gets(a);
if (strcmp(a,"end")==0){
return 0;
}
}
}
>>528 だからそのソースを出してくれって言っているんだが?
何度も言わないぞ。1~nまでの素数を求めるんじゃない。
入力された値が素数かどうか?だぜ?
>>525 #include<stdio.h>
#include<stdlib.h>
int main(void){char tmp[100]={'\0'};while(strcmp(tmp,"owari"))fgets(tmp,sizeof(tmp),stdin);return 0;}
>>529 「√nまでしか調べない」のどこがどう無駄なんだ?
本当に中学生未満なのか?
535 :
525 :2006/06/12(月) 15:25:00
>>530 回答していただいたのに申し訳ないのですが
getcharを用いた解答を作っていただけますか?
ちっちっち、 ?# さんよ、いくらあんたがシャウトしようと 理解できない厨房相手に理解させるソースを提示することは無理。 相手が英語しか理解できないのに、日本語で難しい理論を言っても無駄だぜ? だったら簡単な英語でも意図が伝わる内容を簡略に示すべきだね。 それがロークォリティ
理解するかどうかなんてどうでもいいことなわけで。 バカに配慮する必要はないし。
その相手をバカにする目的でここにきているのがバレバレな態度がうぜぇって言ってんだが? 君に無意味なでしゃばりは良いとしても、間違いを提示していない者に対して 自分の方がもっと上だぜーーーーはっはー といわんばかりの煽りは止めてもらいたい。 所詮相手は初心者。シンプルなソースから理解させてもなんら問題はないだろ。
バカがバカにされるのは当たり前だろ。 それがウザいのはお前がバカだから。 バカにされるのが嫌なら来るなよ。 >間違いを提示していない者に対して nが素数かどうかを調べるのに√n以上の約数を当たるのは明らかに「間違い」だ。 >所詮相手は初心者。シンプルなソースから理解させてもなんら問題はないだろ。 ここは「理解させる」のが目的のスレではない。
相手が理解するかなどどうでもいいというのはその通り。 問題なのは、ソースの単純さを犠牲にして効率を上げるのを 無条件に善と信じこんだ挙げ句、それを他人にまで強制する態度。
>>540 >間違い
はい、出ました、自分勝手な判断基準。適切と不適切の違いも分からんのね。
だからソースを示せば話は早いってアレほど言っているのに、未だにあんたは
入力された値が素数かを√nを使ったソースを出していないわけだがw
>>541 ソースの単純さがどこで犠牲にされてると?
ループの最大値がnから√nになると単純じゃなくなるのかね?
>nが素数かどうかを調べるのに√n以上の約数を当たるのは明らかに「間違い」だ。 どうやら日本語の使いかたが平均的な人とずいぶん違うようですね。 迷惑なので余り発言しないでください。
>>543 <math.h>のinclude
sqrtの呼び出し
sqrtの結果を入れる変数を用意して、初期化。
元のコードが短いだけに、これは十分複雑さを加えてると言えるだろ。
>>543 少なくともお前の示したソースは無駄に長い。
あれだって計算で求める素数の羅列だろ?明らかにお前の方が無駄じゃん。
>>546 宿題丸投げするクズの理解だの経験だのなど配慮したい奴こそ余所へ行け。
>>547 その程度で「複雑だ」と思うような奴はプログラム以前の問題。
それこそ中学生未満。
>>548 「長さ」と「複雑さ」の区別が付かないバカですか?
>>550 おまえの頭には「複雑なコード」と「複雑でないコード」の二つしかないのか?
もともと必要なかった関数呼び出しが増えている時点で複雑さが増えたのは自明。
すまん、性帝トーマス氏の会社って何?就職先のBLに入れておきたいのだが。 少なくとも低レベルな学生向けには、だがw あと、何度も言わないぞ。お前の提示しているソースは 入力された値までの素数を表示するんであって、入力した値が素数かを判別していない。 それからやたらと中学生中学生って言うけど、お前はプログラム言語は良いとしても コミュニケーションランゲージまではまともに理解していないみたいだな。 二度といわんぞ。ここは宿題を丸投げしたって自分も言っているのに 何でお前の主張をする場になってんだ?それこそ本末転倒。失せろ、自己主張が強いだけの 無駄な人間めw お前のソースを採用する初心者がどうとか関係ない。単にお前の主張がうざい。 論より証拠、お前のソースを書き換えて、入力された数値までの素数を求めるんじゃなくて 入力した数値が素数かを判別するプログラムにしてから出直した方が良いよ。 前に依頼した人のだって、お前のソースは問題の意図を外してたんだしw
>>552 >もともと必要なかった
という前提自体が間違い。必要な物が欠けていただけ。
>>553 >入力された値までの素数を表示するんであって、入力した値が素数かを判別していない。
IsPrimenumberという関数が何をしているかわかりまちゅか~?
>>555 俺はわかっているが、お前のソースが入力した値が素数かを判別する
という意図を無視していることには変わりはないんだがw
557 :
518 :2006/06/12(月) 15:56:05
これは酷いスレですね。
>>554 つまらん屁理屈をこねるのは止めてくれ。
sqrtを呼ばないで正しい結果を返すソースがあるのは事実だろ?
コンパイル不可で目的を果たしていない
>>532 をどうにかしてくれませんか・・・?
560 :
デフォルトの名無しさん :2006/06/12(月) 15:57:05
「各自が読み込んだ文字をファイルに格納するプログラムせよ。ただし、低レベル の入出力のシステムコールを使うこと。」 って問題でたんだけど、誰かわかりますかね?
>>556 「入力した値が素数かを判別する」という仕様を満たした関数が含まれているので、
「入力した値が素数かを判別するプログラムを作れ」という要件は成立している。
main関数の機能は特に要件に含まれていないからな。
>>558 中学生レベルの数学を無視した実装をバカにしてるだけ。
つーか、たかが素数判定でそこまで盛り上がるおまいらに乾杯。
>>563 答えになってない。
単純化のために中学生レベルの数学を使わないという判断を尊重しろと言ってんだよ。
別にさぁ、sqrtを使うなって言ってんじゃないんだから良いだろ? sqrtを使わない初歩的なやり方の提示に対して、ちょっと悪質な難癖をつけすぎ。 自分の主張がそれで覆されたり否定されるわけでもないだろ? 中学生中学生ってうるさい。既に素数の求め方は知っているんだよ。 問題はC言語でそれを実行するには、どういう手段があるか? 相手への配慮を踏み潰すような悪質な意見は止めたまえ。
>>565 じゃあ訂正。
中学生レベルの数学を無視したくらいで単純化されてると思ってるようなバカを
バカにしてるだけ。
>>566 必要のない配慮を踏みつぶしても何の問題も無かろう。
>>567 関数呼び出し一個の省略だって単純化は単純化だ。
これが理解できないなら救いようがないな。
>>568 >必要のない配慮
それがお前の勝手な判断基準だっつってんだよ、いい加減うざい。
お前のは勝手すぎる悪質な嫌がらせ。通報するよ?
>>569 「関数呼び出しを省略すると単純になる」という妄想はどこから沸いたのかね?
>>571 わかった。理解できないならしなくていい。
その代わり、「sqrtの呼び出しの省略を単純化とみなす立場がある」ことを尊重してくれ。
効率が良い悪いは、同じ環境で実行した際の、実行時間の速さで競ったら? 少なくとも、素数かどうかの判別を無視した、入力した値までの素数を 無駄に表示する方が、算出する時間以外に表示する時間も掛かって無駄だって分かるから。 少なくとも他人のソースにケチをつけるスレじゃない。 それがわかっていない性帝トーマス氏の方が理解されないだろ。 自分がすべてみたいな、自己中の方が必要ない。 所詮丸投げのスレだって理解しているなら、後は質問者がどっちを選ぶかは自由じゃん。 その自由すら自分勝手な意見で踏み潰してんじゃん。気づけって。
>>572 「必要」とは言っていない。お前が必要ないと勝手に判断しただけ。
そのお前の判断基準における「不要」という意見を押し付けるなって言ってんだが?
お前の無駄なソースの方が質問者にとっては必要とされないと思うけど?
あと、何度も言わせるな。質問したものの意図を無視した結果こそ不要。
お前のは判別じゃなくて入力した値までの素数の表示するプログラムだったろ?
確かに素数を導き出すアルゴリズムはあれど、結果が問題の意図を無視している。
今来 なんか盛り上がってるな お前らそんなに暇何?
以後、自己主張しかせず、問題の意図、必要とされる結果の表示ができないのに 他人を否定しかしない人は放置で。質問した人は、自分で結果を見て選んで下さい。 所詮、丸投げに答えるだけのスレですからw
579 :
デフォルトの名無しさん :2006/06/12(月) 16:23:10
5×5の魔方陣教えて下さい
>>575 >お前の無駄なソースの方が質問者にとっては必要とされないと思うけど?
何度も言うが、質問者が必要としているかどうかなんて問題ではない。
>お前のは判別じゃなくて入力した値までの素数の表示するプログラムだったろ?
判別はIsPrimenumberがやっている。IsPrimenumberだってプログラムだろ。
「入力した値までの素数の表示」が必要なければmainをそのように書き換えればいい
だけの話。mainの仕様は与えられていないんだからそこまで面倒見る必要はない。
NG推奨ワード : ?#
>>575 >「必要」とは言っていない。お前が必要ないと勝手に判断しただけ。
必要である根拠がないなら不要だな。
誰も「必要」とは言ってませんよ?まだ理解していないみたいだな・・・ 自分の意見を相手の意見の否定に使うから悪い。 逆に相手を否定して自分を肯定するから余計に理解されない。
不要とする根拠を示せw もう本当に相手にせんぞ。 推奨NGワード : ?#
ことの始まりはトーマスが人のソースにケチつけたことのようだが これであってる?
>>584 必要でないなら「不要」と判断しても何の問題もないって事だろ。
不要と判断して問題があるならその根拠を。
>>585 バカに配慮してもバカじゃない人が不幸になるだけなのでバカに配慮する必要はない。
>>586 そう、まさに
>>523 これ。自分勝手な判断基準における初心者という基準まで持ち出したし。
中学生で平方根を習えど、C言語でそれを使うには・・・ってところまで配慮しなくても良いという
まさに自分勝手。そして配慮しろとは誰も言っていないのに、配慮する「必要がないから」
と言い出す始末。まさに自分勝手。配慮した覚えがなくても、シンプルな方を選んで問題なし。
残念、俺のブラウザにはNGワードは付いてないよ(´・ω・`)
もう帰れよ200ポイント。
>>590 2ch専用ブラウザを使ったら?俺はもうNGに指定したから
後は何をほざこうが知ったこっちゃないけどな。
>>588 「バカに配慮してもバカじゃない人が不幸になるだけ」という根拠は?
だから「配慮した」覚えすらないのに、sqrtを使わないことを勝手に 初心者に配慮していると勘違いしているとも気づいてないわけでw
>>589 math.h使えないなら平方根の計算も自分で実装すればいい。
これも高校生レベル。第5項くらいまでやれば素数判定に必要な精度には充分。
double tinysqrt(double n){double x=n;int i;for(i=0;i<5;i++)x=(x+n/x)/2;return x;}
>>593 バカに配慮してもバカが治るわけではないから、配慮の分だけバカでない人にしわ寄せが行く。
ありがと
>>589 プログラムの良し悪しなんざ、所詮は効率
俺が選ぶとしたら、トーマスのなんだけどね…
だけど、人のソースにケチつける必要はないし、自分の考えを押し付ける必要もないとオモタ
そろそろボロが出始めたな。そんな複雑な計算を入れるくらいなら sqrt使った方がマシだよw
「配慮の分だけバカでない人にしわ寄せが行く」という根拠は?
工学っていうか情報系の人間に根拠とかきいちゃらめぇ
>>598 まぁ、算出に掛かる時間を考慮したら、俺が出したものなんてアホなほど無駄だと分かっているけどねw
丸投げする人相手に、適当にやっているんだが、アソコまでしつこく「中学生以下」とか
難癖をつけられるとは思わなかったよw
別に俺が中学生レベルってわけじゃないんだけど、ちょっとカチンッとくるね。
どうせ、判別に使う数値なんて、何百万、何十億といった値の大きいもんじゃないだろうから
初歩的にあの程度で、って書いたまでだが・・・
1] 授業単元:C言語 プログラミング [2] 問題文(含コード&リンク): 1) 与えられた2×2正方行列の固有値を計算するプログラムを作成せよ。 2) 与えられた3×3正方行列の固有値を計算するプログラムを作成せよ。 3) さらに、与えられた正方行列の次数がいくつでもよいようにするにはどうしたらよいか? [3] 環境 [3.1] OS: WindowsXP [3.2] コンパイラ名とバージョン: Borland C++Compiler [3.3] 言語: C言語 [4] 期限: 6月20日まで sqrtを使ってシコシコと作ってたんですがうまくいきません、というか数学関数の使い方すらよくわかりません。 どうか、よろしくお願いします。
[1] 授業単元: C++基礎 [2] 問題文(含コード&リンク): n!=1*2*…n-1*nと定義する。 n!>32000となる最小のnと、その時のn!の値を算出するプログラムをwhile文を用いて作成せよ。 [3] 環境 [3.1] OS: WindowsXP [3.2] コンパイラ名とバージョン:Visual Stdio2005 [3.3] 言語: C++ [4] 期限:今日中です…。 [5] その他の制限: 特にありません。 いきなりですが、宜しくお願いしますm(_ _)m
>>599 だからsqrt使ったわけだが。
math.hもsqrtも習って無くても「平方根を使わない」理由にはならないことを示しただけ。
何度も言うが素数判定に平方根が必要なのは中学生レベル。
o-o、 ('A`) メガネメガネ ノ ノ)_
>>604 #include<stdio.h>
int main(){
int n = 1, a = n;
do{
n++;
a *= n;
}while(a <= 32000);
printf("n = %d n! = %d", n, a);
}
空気を読まないでゴメンネ
>>607 アルゴリズムにケチはつけぬが、C++だしdo whileじゃなくてwhileっぽいし・・・
っつーわけで俺もw
>>604 #include <iostream>
using namespace std;
int main() {
int i=1,x=1;
while(x<32000) {
x*=++i;
}
printf("32000を超えるのは %d\!\n", i);
printf("%d\! = %d",i,x);
return 0;
}
って、printfを使ったままだった、すまそ orz
俺もお前もバカだな…
>>600 バカに配慮してもバカは治らない。
配慮する側はバカではないので、バカでない人の労力が無駄になる。
>>604 んじゃ書き直しw
#include <iostream>
using namespace std;
int main() {
int i=1,x=1;
while(x<32000)
x*=++i;
cout << "32000 を超えるのは " << i << "\!\n";
cout << i << "\! = " << x;
return 0;
}
, -‐―‐‐-、 / , ヽ_ , l ,| |/ハヽゝ_ゞソ ~ 0 - _ | (| | -‐ ‐-| |´___ ` | |. lハl| | ''' ヮ''ノN | | おちつこうね~ | | {|.つ[_]とl} | | (.二二ん/⌒l⌒l二二二.) / ̄ ̄ ̄ ̄  ̄ ̄ ̄ ̄ {__|) ̄ ̄ ヽ、 lニニニニニニニニニニニニニニニl
根拠とは事実のことである
感嘆符にエスケープは要らないだろ
「バカに配慮してもバカは治らない」の根拠は? 「バカでない人の労力が無駄になる」の根拠は?
根拠なんてない、自分の思い込みでしょ。 分からない奴には少しでも分かるような指導が必要。 分からない奴を分からないまま放置すると、とんでもないアホが社会に出てくるから 犯罪とか絶えないんだよ。自暴自棄で他人を巻き込む奴は別として。
何で?何で?って聞かれると辛いよなぁ
>>607 >>608 >>612 早い回答、本当にありがとうございます。
do-whileはこの問題と同じ授業で習っているのでそれでも大丈夫だと思います。
ただ心配なのが担任の先生がチャネラー(と思われる)でこのスレを見てるかもしれないということです…。
トリップに担任の苗字書きました(もし先生見てるなら大目に見てくださいw)
>>618 ダナ。だから論より証拠なんだが、きゃつは書き換えたソースは提示しなかった・・・
>>616 バカが治った実績が存在しないから。無い物は証明できないのでこれ以上は悪魔の証明。
無論「バカが治った実例」を挙げてくれれば撤回する。
>>617 >分からない奴には少しでも分かるような指導が必要。
少なくとも、宿題を丸投げしない奴には指導が必要だが、宿題を丸投げするクズは
分かろうとする気がないので指導するだけ無駄。
その「指導」すらした覚えはないんだがw 幼稚なソースでも結果が導ければおkだろ? そこを理解していないのがあんたなんだよw 丸投げって分かってて、自分のものしか押し付けないだけでなく 他人のソースを否定しかしないからダメなんじゃん。それは 質問者への態度とか関係なく、ご自身の人間性じゃね?
>>620 お前もしつこいな。mainだけ書き換えりゃいいだろが。
int main(void){char tmp[100];int n;fgets(tmp,sizeof(tmp),stdin);n=atoi(tmp);
puts(IsPrimenumber(n)?"素数":"素数じゃない");return 0;}
>>623 間違いを積極的に否定すると何か問題でも?
>>619 まぁ、そのくらいのありきたりな計算を求めるプログラムなんて
似たようなものがいくつもあるから。自分なりのやり方で書き直すとかしとけばおk。
628 :
デフォルトの名無しさん :2006/06/12(月) 17:30:09
[1] 授業単元: プログラミング [2] 問題文(含コード&リンク): 9×9の2次元配列を用意し座標に見立てる,ゴール座標を1ヵ所設定し,ゴール以外の座標には,ゴールからの距離の2乗を計算して入れる. キーボードから座標を入力し,ゴール以外の場合は,配列に格納してあるゴールからの距離の2乗の値を表示する. ゴールの座標が入力されたら,入力回数と,得点を表示する.得点は,1回目100点,2回目80点,3回目60点,4回目40点,5回目20点,6回目以降0点とする(今回は正解するまで続ける.) ただし,配列は, int dist[9][9]; とする.(要素は81個しか持ってはいけない.) なお,ゴールの座標は自由に決めてよい. [実行結果] 座標を入力してください(X Y): 3 5 距離 20 です. 座標を入力してください(X Y): 8 6 距離 2 です. 座標を入力してください(X Y): 7 7 !!! 3 回目で大当たり!!! 得点は,60点です [3] 環境 [3.1] OS: (Windows [3.2] VisualStdio.net2003 [3.3] 言語: C [4] 期限: 6月16日 [5] その他の制限: よろしくお願いします
見てるとこれだから技術系はなんて言われるのも分かる気がする 一部の人間の所為で…
>>628 なんか、以前、求める値が予想値より上か下かの問題を出した奴の
応用っぽい内容だが・・・
>>618 まあな。だが自分の論がどれだけ客観的であるかを確認する一つの方法だ。
>>621 「実績が存在しなければ何故ありえないといえるのか?」
コロンブスを例にとるまでもなく、過去に実績が無い事と実際に不可能な事とは別に考えないと。
>>629 まあ、
>>574 みたいに正論が言えるやつもいるよ。
>>626 なるほど。勉強にもなるので書き直してみます。
アドバイス、ありがとうございます。
>>631 「あり得ない」なんて主張してないだろ。
「実績がないから不要」と言ってるだけだ。
634 :
627 :2006/06/12(月) 17:57:55
ていうかお前ら、俺が作ったやつに反応してくれよ! 俺が頑張った時間はなんだったんだよ。 初めてソース晒してどんな反応来るかドキドキしてた俺が馬鹿みたいだろ。
他の問題のときにまた来なさい 今はそういう状況じゃないから
つうか宿題の答えとして適切な範囲に「ループは√nまで」だとか
「あらかじめ素数を入力して判定を加速する」とか
そういうものは含まれないと思うんだけど、どうよ?
そういうことが自力でできるやつはボーナス点でもあげればいいが(俺ならあげる)、
ここに駆け込んでる時点でそんな資格はないしなぁ。
>>634 27は素数じゃない!
>>634 素数テーブルを27までしか持たない意味が分からない。
たったそれだけなら無い方がマシ。√とかそれ以前の問題。
どこまで持てばいいってモノでもないだろう。 なんなんだお前。目的履き違えてないか。
>>638 素数をテーブルで持つ場合は入力の範囲に依存するに決まってるだろ。
>>628 # include <stdio.h>
void init_dist(int (*dist)[9])
{
int i, j;
for(i = 0; i < 9; i++)
for(j = 0; j < 9; j++)
dist[i][j] = (i-2) * (i-2) + (j-6) * (j-6);
}
int main(void)
{
int dist[9][9];
int i;
init_dist(dist);
for(i = 0;; i++)
{
int x, y;
printf("座標を入力してください(X Y): ");
scanf("%d%d", &x, &y);
if(dist[x][y])
printf("距離 %d です.\n", dist[x][y]);
else
{
printf("!!! %d 回目で大当たり!!!\n得点は%d点です\n", i + 1, i >= 6 ? 0 : 100 - i * 20);
return 0;
}
}
}
ζ _,,.旦_ ∧,,.∧ ./ ・ω・ヽ ./・ω・ ヽ l l ζl l `'ー---‐´ 旦`'ー---‐'′ ~ただいま休憩中~
643 :
デフォルトの名無しさん :2006/06/12(月) 18:22:33
>>641 ありがとうございます。ホントに感謝してます!!
どなたか
>>603 に答えていただけるとうれしいのですが…
647 :
デフォルトの名無しさん :2006/06/12(月) 18:44:18
ちうか、数式の中に答えがあったのか。2,6とな?
>>603 まんどくせ。
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#define ep (0.000001)
double sign(double x){return (x>0)?1.0:(x<0)?(-1.0):0;}
int main(void){int n,i,j,k,l;size_t size;char tmp[100];
double **r,r1,r2,r3,**v,rp,rm,am,w,c,s,v1,v2;
printf("行列の次数:");fgets(tmp, sizeof(tmp), stdin);n=atoi(tmp);
size=sizeof(double)*n*n;r=(double**)malloc(size);v=(double**)malloc(size);
for(i=0;i<n;i++)for(j=0;j<n;j++){printf("(%i,%i)=",i,j);
fgets(tmp,sizeof(tmp),stdin);r[i][j]=atof(tmp);}
for(i=0;i<n;i++){for(j=0;j<n;j++)v[i][j]=0;v[i][i]=1;}
while(1){am=(double)INT_MIN;for(i=1;i<n;i++)for(j=0;j<i;j++)if(fabs(r[i][j])>am)
{am=fabs(r[i][j]);k=i;l=j;}if (am<ep) break;r1=r[k][l];r2=r[k][k];
r3=r[l][l];rp=(r2+r3)/2;rm=(r2-r3)/2;w=sqrt(pow(r1,2)+pow(rm,2));
c=sqrt((1+fabs(rm)/w)/2);s=((rm==0.0)?-1:(-sign(rm)*r1/w))/(c*2);
for(i=0;i<n;i++){r2=r[i][k];r3=r[i][l];r[i][k]=r[k][i]=r2*c-r3*s;
r[i][l]=r[l][i]=r2*s+r3*c;v1=v[i][k];v2=v[i][l];
v[i][k]=v1*c-v2*s;v[i][l]=v1*s+v2*c;}
w=rm*(fabs(rm)/w)-r1*(fabs(rm)/w);r[k][k]=rp+w;r[l][l]=rp-w;
r[k][l]=0;r[l][k]=0;}printf("固有値 ");for(i=0;i<n;i++)printf("%f ",r[i][i]);
putchar('\n');return 0;}
650 :
◆Hu5kXyhYsw :2006/06/12(月) 19:08:51
[1] 授業単元:プログラミング演習 [2] 問題文:小学校のあるクラスの成績処理を行うプログラムseiseki.cを作成せよ。 (1)生徒1人に対し、生徒番号(整数)、生徒氏名(10文字以内の文字列)、国語、算 数、理科、社会の得点(整数)をメンバとしてもつ構造体タグStudentData を定義せよ。 (2)seiseki.cにおいて、生徒数を実行時に入力して構造体配列を動的 割当てをできるようにしたseiseki2.cを作成せよ。 ・(1)+(2)+各教科の平均を求めるプログラムを作成せよ。 [3] 環境 OS:UNIX 言語:C [4] 期限:2006年6月13日17:00まで] よろしくお願いします
ぽまいら、今日はもう勉強や仕事を切り上げて、ワールドカップの日本戦を見るノジャーーー!
>>628 は結局、9x9の2次元配列を作る意味があるんだろうか?
もしかして、単に答えの座標に当たる配列要素に1を入れて
残りは外れってことで0を入れるようにしろとか指定はなかったんだろうか?
>>652 >ゴール以外の座標には,ゴールからの距離の2乗を計算して入れる.
>>654 あっ、なるほど。つまらぬ質問ですんまそ。
656 :
デフォルトの名無しさん :2006/06/12(月) 20:25:05
[1] 授業単元:プログラミング [2] 問題文(含コード&リンク):1から10までの整数の積と和を求め、その結果を 表示するプログラムをfor()文を使用して書け。 [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 明日 [5] その他の制限: 問題文の通りです。
#include <stdio.h> main(){ int a, b[] = { 55, 5050}; for(a = 0; a < 2; a++) printf("%d\n",b[a]); }
#include <stdio.h> int main(){ int i, data[] = {1*2*3*4*5*6*7*8*9*10,1+2+3+4+5+6+7+8+9+10}; for(i=0;i<sizeof(data)/sizeof(data[0]);i++) printf("%d\n",data[i]); return 0; }
#include <stdio.h> void main() { int i, sum1=0, sum2=1; for(i=1;i<=10;i++) { sum1+=i; sum2*=i; } printf("和は%d、積は%d\n", sum1, sum2); }
>>656 #include <stdio.h>
#define x 10
int main() {
int i,seki=1,wa=0;
for(i=1; i<=x; i++) {
seki*=i;
wa+=i;
}
printf("1 ~ %d の積 : %d / 和 : %d \n",x,seki,wa);
}
素数なら (n/2)+1 まで調べりゃいいんじゃないの? √n までにしろとは言わないけど、nまで調べるのはいくらなんでも無駄じゃないか
sum2にワラタ
5050って1~100までの和じゃね?
>>656 #include<stdio.h>
void worldcup(int x);
int main(void)
{
int x;
printf("グリングリーン。\n");
printf("古時計>");
scanf("%d",&x);
worldcup(x);
return 0;
}
void worldcup(int x)
{
int i,wa,seki;
wa = 0;
seki = 1;
for(i=1;i<=x;i++)
{
wa += i;
seki *= i;
}
printf("小力love%d秋山love%d",wa,seki);
}
>>662 高々定数倍の高速化に興味はない、などと言ってみるテスト。
[1] 授業単元: C++実習 [2] 問題文(含コード&リンク): 次のようなおみくじを考える。0から9までの数字を実行のたびにランダムに発生させ、0から3を中吉、4から6を小吉、7から8を大吉、9を凶とする。 運悪く凶を引いてしまった時は「一度だけ」再びおみくじを引くか否かを選択できるようなプログラムを作成せよ。 ただし、運勢の判定にはswitch文を用いること。また出来ればsrandも使うこと。 [3] 環境 [3.1] OS: WindowsXP [3.2] Visual Studio 2005 [3.3] 言語: C++ [4] 期限: 明日の朝までに [5] その他の制限: 特にありません。 夜分に申し訳ありませんがよろしくお願いします…。
計算量の基礎教育もうけてないトーマスとかってのが居るのココ??
>>669 rand()の出力範囲。
そもそもC++でやるひつようあんの?
%2にしろよ
>>671 自分はかなりヘタレなのであまり分からないんですが、
srandはプログラム実行の度に乱数系列を変えるために使えといわれました…。
>>560 低水準入出力関数でググレばすぐ見つかる…はず
ガンダムシードか。
>>677 確かにそうですね…。う~ん、どうすれば良いんだろう…。
#include <iostream> #include <ctime> #include <cstdlib> int main(){ srand((unsigned)time(NULL)); int kuji, busy = 1; char ch; while(busy){ busy = 0; kuji = rand() % 10; switch(kuji){ case 0: case 1: case 2: case 3: std::cout << "中吉"; break; case 4: case 5: case 6: std::cout << "小吉"; break; case 7: case 8: std::cout<<"大吉"; break; case 9: std::cout<<"凶\n"; std::cout<<"もう一度やる?(Yes: Y)"; } std::cout<<std::endl; if(kuji == 9){std::cin>>ch; if(ch == 'Y')busy = 1;} } return 0; } こんな感じかしら?
修正した方がいいところあるけど動けばいい。 あとは使いやすいように改変すりゃいいよ、サッカー見るんでノシ。
685 :
aho :2006/06/12(月) 22:51:21
くだらない質問かもしれませんがお願いします!! Cで入力した文字列を逆順にして出力する書き方を教えてください。 string.h をインクルードして、strlenを使うみたいです。 それから、今ポインタをやっているところです。||
>1をよく読んでからまた来てね
おぉ・・・すげえ・・・大学入学して少ししか習ってない俺からすると何やってるかわかんね・・・
辛うじて
>>656 が分かるくらいだ・・・
>>656 #include<stdio.h>
double fact(double n){return (n>1)?n*fact(n-1):1;}
int main(void){int n=10,s=n*(n+1)/2,m=fact(n);for(;;)printf("和:%i 積%i\n",s,m);return 0;}
つまんねーっつーか、今度は嫌がらせかよ。そろそろ通報した方が良いな。 完全に悪質、悪意がある行為だな。人を馬鹿にするにも程がある。
ん、どした
>>688 階乗をO(n)のメモリで計算するのは中学レベルの数学を無視した間違った方法だと思わないか?
基準を中学レベルに合わせなくても・・・w
693 :
デフォルトの名無しさん :2006/06/12(月) 23:30:24
[1] 授業単元:プログラミング演習 [2] 問題文(含コード&リンク):最初にキーボードから線分の本数(以下 n とする)を入力し,次にキーボードからn本の線分を入力した後,線分の長さの長い順に出力するプログラムを作成しなさい. 扱う線分の本数は最大で6本とし,本数を指定するとき,不適切な本数(1から6までの整数以外)が指定された場合, "error"を表示し,プログラムを終了すること. また,長さが同じ線分があった場合は,先に入力したものを先に表示すること. [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) [3.3] 言語: C [4] 期限: 明日(なるべく早くおねがいします) よろしくお願いします。
%i ……
697 :
693 :2006/06/12(月) 23:41:27
>>696 例えばこのような感じです 4 3.0 4.0 5.0 6.0 3.0 4.0 5.0 5.0 0.0 1.0 2.0 5.0 3.0 4.0 3.0 7.0 (0.00,1.00)-(2.00,5.00) (3.00,4.00)-(3.00,7.00) (3.00,4.00)-(5.00,6.00) (3.00,4.00)-(5.00,5.00)
>>683 ありがとうございます。自分でこれを元にアレコレいじくってみます。
本当にありがとうございました!!
サッカーなんて見るんじゃなかったw
700 :
デフォルトの名無しさん :2006/06/12(月) 23:59:43
いい加減シュートは枠の中を狙おうぜ。
基本だろ?
日本が
>>628 の問題やったら0点になりそう。
704 :
693 :2006/06/13(火) 00:20:53
[1] 授業単元:プログラミング演習 [2] 問題文(含コード&リンク):最初にキーボードから線分の本数(以下 n とする)を入力し,次にキーボードからn本の線分を入力した後,線分の長さの長い順に出力するプログラムを作成しなさい. 扱う線分の本数は最大で6本とし,本数を指定するとき,不適切な本数(1から6までの整数以外)が指定された場合, "error"を表示し,プログラムを終了すること. また,長さが同じ線分があった場合は,先に入力したものを先に表示すること. 線分の表現方法↓ 4 3.0 4.0 5.0 6.0 3.0 4.0 5.0 5.0 0.0 1.0 2.0 5.0 3.0 4.0 3.0 7.0 (0.00,1.00)-(2.00,5.00) (3.00,4.00)-(3.00,7.00) (3.00,4.00)-(5.00,6.00) (3.00,4.00)-(5.00,5.00) [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: なるべく早くおねがいします 先ほどの書き込みにぬけている部分があったので、もう1度かきました。なんども すみませんが、よろしくお願いします。
問題がつまらんとやる気せんな。 最近宿題丸投げが多くないか?
少しは参考書に目を向けて、理解する頭を持ってもらいたいもんだな。 初歩的なものなら答えられるが、あまりにも複雑で、問題を十分理解しなきゃならないような 面倒なものだと、食いつく人が少ない。 既に無意味な議論がされたが、定石をまとめたサイトが欲しいところ。 素数を求めるアルゴリズムなんざ、わかりきっているしな。 乱数を求めるとか、項目をいくつか作ってまとめたいところだ。
まぁ宿題なんてそんなもんだろ ここに来てるヤツラは資格さえとれればよくてプログラムなんてできなくてもいい そんなヤツラだ
資格っつーか、単位ね。まぁ、理解してなくても問題に答えられさえすりゃそれでおkだもんな。 ただ、プログラムの授業の最後って、自由課題になる場合が多いかと・・・
今更何言ってんだか
すべてが何をいまさらだな
そのいまさらがいつまでも引きずってんじゃんw 少なくとも素数でアソコまでバカみたく、素数の求め方ではなく ソースを出した人間の素性にまで話が行き過ぎるのはどうかとw 要するにここのスレの住人の人間性の問題だな。 たかが分かりきったプログラムができるくらいで、できない奴に対してでけぇ面。 そういう奴は、未知なるものへの探究心がない惰性の人生しか歩めないんだろうけど・・・
×資格 ○単位
以下、中学生レベルの数学すらできないバカの遠吠えをお楽しみください ↓↓↓↓↓↓
たかが分かりきったプログラムができるくらいで、天狗になってるトーマヌまだいだんでつか?
スレ違いはお帰りください
いざとなったらトーマスの家にミサイルをぶち込んでやればいい。 宿題スレは強い
711=バカの遠吠え
なんかヤケに伸びてるなと思ったら。 ま、どうでもいいじゃん、とオモタ。 所詮丸投げスレだ。丸投げスレの本質を見失っちゃいかんね。 一つだけトーマス氏と、それに関りたがる人達へ申し上げておきます。 トーマス氏の発言とそれに係る発言にさらさら興味は無いのですが、 ここは丸投げスレですから、議論を持ちたいなら、他のスレ、ないしは他所でお願いしますね。 一言で表せば、一連の発言は「スレ違い」ですよ。
>>693 =704
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
typedef struct { double x0, y0, x1, y1, length; } line_t;
int main(void)
{
line_t line[6];
char str[1024];
int n, i, j;
/* 本数の入力 */
fgets(str, 1023, stdin);
if( !(str[0] >= '1' && str[0] <= '6' && (str[1] == '\n' || str[1] == '\0')) ) {
fprintf(stderr, "error\n");
return 0;
}
/* 線分の入力 */
for( i = 0, n = atoi(str) ; i < n ; i++ ) {
double dx, dy;
scanf("%lf %lf %lf %lf", &line[i].x0, &line[i].y0, &line[i].x1, &line[i].y1);
dx = line[i].x0 - line[i].x1; dy = line[i].y0 - line[i].y1;
line[i].length = sqrt(dx * dx + dy * dy);
}
/* 並べ替え(バブルソート) */
for( j = n - 1 ; j > 0 ; j-- ) for( i = 0 ; i < j ; i++ )
if( line[i].length < line[i + 1].length ) {
line_t tmp = line[i]; line[i] = line[i + 1]; line[i + 1] = tmp;
}
/* 表示 */
for( i = 0 ; i < n ; i++ ) printf("(%.2f,%.2f)-(%.2f,%.2f)\n", line[i].x0, line[i].y0, line[i].x1, line[i].y1);
return 0;
}
>>653 改行とかは自分で訂正して。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(int argc, char* argv[])
{
int a;/* 1つ目のコイン */
int b;/* 2つ目のコイン */
int n;/* 実験回数 */
int omote;/* 両方表が出た回数 */
double ans;/* 表が出た確率 */
int i;/* ループカウンタ */
/* 乱数のタネを初期化する */
srand(clock());
/* 実験回数を入力する */
printf("実験回数:");
scanf("%d", &n);
/* サイコロを振る模擬実験 */
same = 0;
for (i = 0; i < n; i++) {
/* 乱数から表かどうかを得る */
a = rand() & (1 << 12); /* 13ビット目を使って判定 */
b = rand() & (1 << 28); /* 29ビット目を使って判定 */
/* 両方表が出た回数をカウントする */
if (a && b) { omote++; }
}
/* 実験結果を表示する */
ans = (double)omote / (double)n;
printf("両者表が出た確率:%f\n", ans);
return 0;
}
721 :
デフォルトの名無しさん :2006/06/13(火) 02:05:46
722 :
693 :2006/06/13(火) 02:05:51
>>719 本当にありがとうございます。一度これで実行してみます!
さて、このスレが良い具合に賑わってきたところで √を使った素数を求めるプログラムマダー?(チンチンAA略)
724 :
693 :2006/06/13(火) 02:34:19
>>719 プログラム途中に出てくるsqrtとは何のことでしょうか??
俺ならこう書く int isPrime(int n) { int i; if( n == 2 ) return 1; /* 素数 */ if( n < 2 || (n & 1) == 0 ) return 0; /* 素数ではない */ for( i = 3 ; i * i <= n ; i += 2 ) { if( n % i == 0 ) return 0; /* 素数ではない */ } return 1; /* 素数 */ }
729 :
デフォルトの名無しさん :2006/06/13(火) 02:53:20
>>471 ありがとうございます!できました。あとよかったらコレ↓教えて欲しいんですが・・
「2枚目にプログラムリスト
3枚目に結果(hを2~3個変えて)を書く(手書きでよい)」
hを変えるっていうのはどういうことでしょうか?あと実行したのを印刷はできますか?
[1] 授業単元:計算機プログラミング [2] 問題文(含コード&リンク): x,y,z,w を、要素数 n の int 配列とする。 x[i] + y[j] + z[k] + w[l] = 0 をみたす添え字 i,j,k,l の組み合わせの個数を求める 効率的なプログラムを書け。 [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc 3.4 [3.3] 言語: C [4] 期限: 6/13 23:59 [5] その他の制限: O(n^4) より効率的な解法をお願いします。 末尾再帰を利用せよ(?) よろしくお願いします。
[1] 授業単元:個人課題 [2] 問題文(含コード&リンク): unsigned a(unsigned x) {x = (x & 0x5) << 1 | (x & 0xA) >> 1;return x;} これを利用して文字や文字列を目的通りに交換するコードを作る [3] 環境 [3.1] OS: W [3.2] コンパイラ名とバージョン: BCC5 [3.3] 言語: C [4] 期限:3週間
>>730 x,y,z,w の配列の中身( x[0] から x[n-1])は何をいれるんじゃ?
単純に ix + jy + kz + lw = 0を解くのを作れってこと?
1. x+y のあらゆる可能性を列挙する O(n^2) 2. z+w のあらゆる可能性を列挙する O(n^2) 3. それぞれソートする O(n^2 log n) 4. x+y は大きい順、 z+w は小さい順に見て行き、合計が 0 になる部分を数える (双方で同じ数が複数出て来た時は個数同士を掛けて加算することに注意) O(n^2) とかで良いかしら?プログラムは誰かよろしく!
>>732 日本語も読めないアフォですか?
とりあえず O(n^2 log n) のアルゴリズムは思いついたけど眠いので実装は明日。
735 :
732 :2006/06/13(火) 03:36:31
>>734 ごめん、素だから。
え、だって、
・x, y, z, w は 要素数 n の配列
・x[i] + y[j] + z[k] + w[l] = 0
・上式を満足する添え字 i, j, k, l を求める
-> 配列の中身(数値)分からなきゃ無理じゃね?
っていう自分の情け無い思考。誰か助けて。
736 :
730 :2006/06/13(火) 03:48:14
>732 すいません。 x[0]~x[n-1] には、何か数字が入っています。 x[0] = 1, x[1] = 2 y[0] = 1, y[1] = -1 z[0] = -3, z[1] = 0 w[0] = 4, w[1] = 3 の場合 x[i] + y[j] + w[k] + z[l] は 16 通りの値をとりうるわけですが、 和が 0 となる添え字の組み合わせは、(i, j, k, l) = (0, 1, 0, 1) の 1 通りとなります。 この組み合わせの個数を O(n^4) より効率よく求めたいのです。
737 :
732 :2006/06/13(火) 03:50:50
>>736 了解しますた。
といっても自分が良いのを思いつくとは限らないけど。
738 :
730 :2006/06/13(火) 03:51:26
>733 なるほど! x+y と z+w の二つに分ければいいのですね。 やはり、x+y の取りうる値を全て列挙 (O(n^2)) しないとダメですか?
一気に問題増えたな@@;
>>735 int ZeroCount(int x[], int y[], int z[], int w[], int n);
みたいな関数を実装しろって話でしょ。関数が呼び出された時点で配列の中身は分かってる事になる。
>・上式を満足する添え字 i, j, k, l を求める
i, j, k, lを具体的に求めるんじゃなくて、その組み合わせの数を求めるだけ。
741 :
732 :2006/06/13(火) 04:00:56
>>740 自分が一番引っかかってたのは、
「え?初期化されてないの?なになに、乱数でも生成しる!ってこと?どうなのそこ」
っていうことだったんだよね。
組み合わせの数を求めるってのもわかってたしさ。
(どのみち、i, j, k, lは求めなければならん)
743 :
742 :2006/06/13(火) 06:08:19
どうもダメみたいだ。 網羅されていないみたい。 定義値を小さくして 0 1 x: -1 0 y: 3 2 z: 1 1 w: -3 1 x[0]+y[0]+z[1]+w[0] = -1+3+1-3 1 通り というのが出たが、この場合(0,0,1,0) の他に(0,1,1,0) も解になる。 だから2通りが正しいのだが、後者を得てない。
744 :
742 :2006/06/13(火) 06:15:34
なんとなくバグが見えた。 多分、 int get_answer(pair_array_info_t *a, pair_array_info_t *b, int n); の、ai, bi を両側から逆方向へ進めるところの判定、 if(bi > 0 && b->pii[bi].sum_of_pair == b->pii[bi-1].sum_of_pair) bi--; else ai++; がまずいんだな・・・。
745 :
742 :2006/06/13(火) 06:26:56
なんだ、 >>(双方で同じ数が複数出て来た時は個数同士を掛けて加算することに注意) これ実装してないからか・・・。 ちなみに、数を数えるだけなら、index保存しておく必要ないからもっと簡単になります。 全パターンを表示させようとしたために複雑化させちゃいました。 直すのめんどくさくなったので、俺は逃げる。ノシ
746 :
733 :2006/06/13(火) 09:45:08
>>745 >>733 3.5 それぞれの列に対して、同じ値の個数を数えて重複を取り除く。
つまり(値, 個数) という列を考える。 O(n^2)
という前処理をするといいかも。
748 :
デフォルトの名無しさん :2006/06/13(火) 10:36:45
[1] 授業単元: 基礎プログラミング [2] 問題文(含コード&リンク): 1,gets文とputs文を用いて1行づつ入力し、1行づつ表示するプログラムを作る。なお、入力の終わりは、ctrl+dとする。 2、入力した数字が配列中にあるかどうか調べ、見つかれば○、見つからなければ×を表示せよ。なお、検索はゼロを入力するまで続ける。また、配列中に5つの数字5 31 19 71 43を初期値として設定せよ。 3、つぎのプログラムの数値入力、合計計算、合計と平均の表示を関数にせよ。変数はすべてグローバル変数にせよ。すなわち、関数の中で変数を宣言しないこと。 #include<stdio.h> void main(){ //変数と配列の宣言 int i,n,sum,tab[100]; //数値入力 printf("何個数字を入力しますか?"); scanf("%d",&n); printf("指定数の数字を入力してください\n"); for(i=0;i<n;i++) scanf("%d",&tab[i]); //合計計算 sum=0;for(i=0;i<n;i++) sum+=tab[i]; //合計と平均の表示 printf("個数=%d 合計=%d 平均=%5.1f\n",n,sum,sum/(float)n); }
749 :
デフォルトの名無しさん :2006/06/13(火) 10:40:40
4、昇順にソートされている整数配列{0,2,5,8,12,15,23,35,60,65}から、二分探索法を 用いてキーボードから入力された整数を見つけ、その整数の添字(配列における順番)を出力するプログラム を作成せよ。 実行例1: input data:37 the input number 37 is not in the array 実行例2: input data:23 the number of the input data is:6 [4]期限 今日の13時まで、よろしくお願いします。
もうすぐ11時(ニヤニヤ)
1.Ctrl+Dは 4 だからそれで条件つければいい。 2.for文で添え字を回して配列と変数とを比較する。 3.void datainput() void wa() void hyouji()を宣言して適当にやってくれ int datainput(int n)とかやっても同じ。 3とか教官糞ですね。
例えば列挙型で、要素が2つしかなかった場合、割り当てられる領域はもちろん1ビットだけで、無駄に割り当てられてるって事はないですよね? 要素に値を設定しない限り。
enum == int
>>749 釣りじゃないなら、そんな宿題出す講義は取らない方がいいよ。
>>752 コンパイラ次第。intの実装もあればcharの実装もある。
755 :
748 :2006/06/13(火) 11:18:15
ぽまいら、はやくソースを・・・
>>753 >>754 どうもありがとうううううううううううううううううううううううuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
757 :
デフォルトの名無しさん :2006/06/13(火) 11:29:50
まだ時間はありますけど、どうか509、510をおねがいしますorz
759 :
758 :2006/06/13(火) 11:47:13
1] 授業単元: 卒研関連 [2] ニューラルネットワークのバックプロパゲーションアルゴリズムを C++で組め [3] 環境 [3.1] OS: Windows [3.2] VC++ 6.0 [3.3] 言語: C++ 丸投げすみません。 よろしくお願いします。
>>761 っつか、その総和を求める変な関数まで使わなきゃならんの?
そんなことするなら配列を作る意味ないっす・・・
Ctrl + D (Windowsなら Ctrl + Z) で EOF を認識する部分が・・・
>>767 あ、ごめん。
無意識にCtrl-Cしてたw
なんか興味本位でこのスレ覗いてみたんだが、 最近の宿題って面倒そうなのが多いのな。 問題読むだけで疲れた('A`)
>>769 そこまで面倒さは感じないが、課題出してる教官の頭の悪さ
は伝わった。俺んときは生粋のパソオタみたいな教官だったが
教える側が低レベルはやばいよなー
プログラムったって、結局は汎用電子計算機の仕組みの根本 0と1の組み合わせとそれをうまく論理回路で処理する原理に基づいているわけだから それと数学の基本的な知識がないようなヘタレ指導者は 単にソースや結果をただの文字列としか感じ取ってないのかもね・・・
a[10]={1,8,10,6,9,7,5,3,2,4}というデータを小さい方から順に並べ替えて配列b[10]に入れて画面に出力するプログ ラムを作成せよ。(ソーティングに関してはどの手法を用いても良い) 丸投げですがよろしくお願いします
課題: 深さ優先探索と幅優先探索を用いてグラフ探索を行うプログラム"dfs.c"と"wfs.c"を作成せよ。 深さ優先探索はデータ構造としてスタックを、幅優先探索はデータ構造としてキューを利用せよ(再帰方法は認めない)。 以下は対象となるグラフデータを隣接行列で表現したものである。 int maze[16][16]={ {0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {1, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 0, 0, 0}, {0, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0}, {0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0}, {1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0}, {0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0}, {0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1}, {0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0} } 期限は明日までです、どうかお願いします。
#include "stdafx.h" #define num_subjects 4 #define num_test 3 int _tmain(int argc, _TCHAR* argv[]) { static int score[num_subjects][num_test] = {{35,50,65},{75,70,82},{46,83,62},{25,18,53}}; int j,k,n; int sum; double average; char c; printf(" test1 test2 test3 sum average \n"); printf("============================================\n"); for (j=0;j<num_subjects;j++){ sum = 0; for(k=0;k<num_test;k++){ sum = sum+score[j][k]; printf("%8d",score[j][k]); } average = sum/num_test; printf("%8d %8.2f \n",sum,average); } printf("input enter key to quit program");scanf("%c",&c); return 0; } この表示に加えて最終行のところにtest1, test2, test3 の合計と平均を表示するプログラムを作成しなさい 期限は今日の午後五時です。よろしくお願いします
>>1 のテンプレに従わないものにはレス不要。スルーでよろ。
>>774 まぁ、これもなんか気持ち悪い・・・無駄ってわけじゃないが C/C++ にするなら
"stdafx.h" とか _tmain とか _TCHAR とか、書き換えてもおkやな?
>>774 っつか、各行のsum(合計)、おかしいよね・・・
>>778 // 追加
printf("============================================\n");
for(k=0; k<num_test; k++) {
sum = 0;
for(j=0; j<num_subjects; j++) {
sum += score[j][k];
}
printf("%6d",sum);
sum /= num_subjects;
printf("%5d %5.2f \n",test_sum,average);
}
return 0;
まちがい送信すまそ
何かとオモタがな・・・ まぁ、averageをdoubleで宣言しているなら、結果を求める計算にも average = (double)sum/(double)num_test; average = (double)test_sum/(double)num_test; くらいはせんと、小数以下を表示する意味もあまりないな・・・
fopenで指定されたテキストファイルを開いて、その内容を構造体に格納したいのです。 テキストファイルは 単語\n 単語\n 略 という感じで延々と単語が序列されています。 それを構造体のメンバchar *tangoに入れたいのですが while ((fgets(a[i].tan,80,fp)) != NULL){ 略 } という感じではうまく動いてくれませぬ('A') ちなみに構造体宣言は static struct info{ char *tan; } a[10000]; です。 fgetsの構文が違うのでしょうか?
784 :
デフォルトの名無しさん :2006/06/13(火) 16:22:52
↑すいませんorz (×)それを構造体のメンバchar *tangoに入れたいのですが (○)それを構造体のメンバchar *tanに入れたいのですが 修正です('A')
>>783 俺もそれに疑問を抱いたが、とりあえずaをbに丸々コピーして
bを並び替えておkじゃね?もしかして、本当は並び替えの前と後の比較で使うとか?w
787 :
デフォルトの名無しさん :2006/06/13(火) 16:25:06
>>782 配列の実態とは?アホですいません。
構造体宣言時にa[10000]だけではだめということでしょうか?
>>787 tanはポインタであって、実際に文字列を格納する実体が無いでしょ?
宣言するなら
char tan[80];
にしないと。
789 :
733 :2006/06/13(火) 16:32:14
今、期限が迫っている課題ってどれなんだろう。 期限がどうでもいい課題がいっぱい投稿されたので、 誰か整理してくれると助かる。
790 :
787 :2006/06/13(火) 16:40:56
むぅ('A')・・・ たとえば、指定されたテキストファイル内容を構造体に一度格納し表示する、というプログラムであれば static struct info{ char tango[20]; } a[1000]; while ((fgets(a[i].tango,80,fp)) != NULL){ printf("%s",a[i].tango); i++; } こんな感じではだめなのでしょうか? 何度やってもbus error OTL
792 :
787 :2006/06/13(火) 16:53:35
ふと配列にfgetsでもろに文字列代入できるわけないんじゃ、と思いました。俺乙。 ぐぅ・・・
>>792 static struct info{
char tango[80];
} a[1000];
int main(void)
{
FILE *fp;
int i=0;
fp=fopen("Test.txt","r");
while ((fgets(a[i].tango,80,fp)) != NULL){
printf("%s",a[i].tango);
i++;
}
fclose(fp);
return 0;
}
で問題無く動いたワケだが
794 :
787 :2006/06/13(火) 17:00:10
Σ('A')! ちょっとためしてきます。ありがとうございます。
cだと文字列代入はないよ
796 :
787 :2006/06/13(火) 17:20:50
できました!動きますたw 課題はレコード型ソートなのでポインタ交換やらあるのでもうちょっとがむばります。 しかし、メンバは普通のchar tango[80]という配列宣言なのに、fgetsなので直接代入はできるのでしょうか? できないとおもって*tango とかにしてたのですが('A')
>>796 ついこないだ同じような問題に躓いていた奴がいた。
やっぱりわかってない人多いなぁ。
>>442 ,446,456
そもそも、代入していない
ポインタなら文字列を代入するのでなくて参照するのですよね? 798さんの言うように、構造体メンバのchar tangoにはfgetsでも代入はされていないのでしょうか?
800 :
797 :2006/06/13(火) 17:34:31
798は読んで、797は読んでくれないのか。シクシク…
Σ(A')もちろん読ませていただきました。 京大生wwwさんと同じ勘違いをしている悪寒?なのでいまグーグル先生で検索してまふ。
>>798 はfgetsは代入する命令じゃなくて、格納する命令ってことをいってるんじゃ…
>>446 の主張は変だろ。
ポインタ名 = "文字列"; は初期化だろうが代入だろうがいつでもできる。
それを言うなら、配列のほうだ。
804 :
797 :2006/06/13(火) 18:13:00
805 :
797 :2006/06/13(火) 18:14:46
806 :
797 :2006/06/13(火) 18:17:27
更に連投スマン、 27行目に printf("--- ptr = \"foobar\";"); って入れておいてくれ。 orz
[1] 授業単元:ソフトウェア 工学 [2] 問題文(含コード&リンク): 円周率をプログラムで求める。 [3] 環境 [3.1] OS:winXP [3.2] コンパイラ名とバージョン: ビジュアルスタジオ [3.3] 言語: c++ [4] 期限: 2006/6/15 [5] その他の制限:下のようなプログラムで円周率を求めたいのですがうまくいきません。 やりたいことは積分によって面積を求めその出た値に4を掛けると円周率が出せるというものです。 →ルートは1-xにかかっています。∫(0から1までの範囲)√(1-x)^2 * 4 = 円周率 #include<math.h> #include<stdio.h> double func(double x) { if(x < 1.0000) return (sqrt((1 - x) * (1 - x)) + func(x + 0.001)); else return(1); } int main(void) { printf("%f", (double)func(0) * 4); return(0); } プログラムを作ってみましたがうまくいきません。 詳しい方お願いいたします。
その式あってるん?
明らかに違うな。^2とか
1 π := 4・∫√(1-x*x) dx 0 の式の事なら微分式だからfor文じゃ無理
811 :
810 :2006/06/13(火) 18:45:49
積分だった
お得意のモンテカルロじゃないんだな
double T,N;T = 10,N = 5; double t,dt; int i; dt = 2 * T / N; for(i=0;i<=N;i++) { t=-T + i * dt; }
>>807 >√(1-x)^2
=(1-x)なわけだが。
こたえは2だ
817 :
810 :2006/06/13(火) 18:50:24
>>807 double func(double x)
{
if (x < 1.0)
return ( sqrt( 1.0 - x * x ) + func( x + 0.0001 ) );
else
return ( 0.0 );
}
int main(void)
{
printf("%lf", (double)func(0) * 4.0 / 10000.0 );
return(0);
}
積分と微分を間違ったお詫びだ
皆さんありがとうございます。
すいません。(1-x^2)でした。
>>817 ありがとうございます。早速やってみましたがちゃんと動作しません。
頭には#include <stdio.h> #include <math.h>でOKでしょうか?
なあ、c++じゃないのか?
はいC++でやってます。
おとなしく816見りゃいいのに。 全然違うことやってることくらいはわかるだろw
積分勉強しなおせ。
皆さんすみません。何とかできました。 どうやらCPUのせいでprintf("%lf", (double)func(0) * 4.0 / 10000.0 ); の部分の10000までの数値をdouble型で表示出来ないのが原因のようです。 桁を減らしたら出来ました。 ところでprintf("%lf", (double)func(0) * 4.0 / 10000.0 ); の部分でなぜ10000で割っているのでしょうか。 ご教示お願いいたします。
%lfなんか使わずに%gを使えばいいんだよ。
>>825 ありがとうございます。積分はやったのですが余り深く学校でも取り扱っていなかったので
これを機に勉強したいと思います。
>>826 テキストファイルにする根性があるのなら
このぐらいの問題は楽勝だ。がんばれ
>>828 (A´・ω・)2時間考えましたがわからないんですよ お願いしますよ
1個目、直すとこだけ a[4]=12; temp=a[0]; for(i=0;i<4;i++) a[i]=a[i + 1]; a[i + 1]=temp; for([ 0 ];i<5;i++) printf("%d\n",a[i]);
for(i =0 ありゃ
この問題って教官が作った穴埋めかい?
文字数数え #include<stdio.h> void main() { char moji[]= "aiueo kakikukeko sasisuseso" ; int len=0; while(moji[len]) len++; printf("この文字列%s\n",moji); printf("の文字数は%d個です。\n",len); }
>>832 ,835
ありがとうございますm(_ _m)
>>834 宿題として出されただけなので誰が作ったかはわからないです
残り どなたかお願いしますm(_ _m)
>>832 間違ってるよ…
a[ i] = tmp
>>838 ちゃんと聞いてるんですけどねぇ・・・ どんどん進むので最初のころは
ほぼ完璧にわかってたんですけど。まぁこれを参考にさせてもらって
もっと勉強してみます。ありがとうございました。
841 :
315 :2006/06/13(火) 22:01:46
やたら遅いレス。
>>305 >>409 もう見てないかな?それとも誰かいい答え出したかな。
>>315 よりはAIっぽいのを作ってみた。
int AI_move () {
int result = 1; //reverse関数の戻り値を代入する変数
int i, j, temp, Ti, Tj,chk;
temp = 0;
if ( current == BLACK ) printf("AI黒の手番です。\n");
else printf("AI白の手番です。\n");
for (i = 0; i < 8; i++) {
for (j = 0; j < 8; j++) {
chk = isReversible(i, j);
if (chk != 0, temp < count) {
temp = count;
Ti = i;
Tj = j;
}
}
}
result = reverse(Ti, Tj);
return result;
}
あとisReversible関数の、int count = 0; // ひっくり返る石の個数を数える
を、count = 0; に変更した。ローカル変数とグローバル変数で、同じ名前は
ひどいよ。しばらく気づかなかった。この問題、グローバル変数がやたら多いし、質が悪いね。
今回の修正は、要するに8 * 8をすべて洗い出し、一番色が変わる場所を探している、ただそれだけ。
もっとましなのにしたければオセロの定石集が必要ですね。
あ、あと、盤面数8*8以外には対応していません。ま、簡単に直せますが。
[1]授業単元:演習 [2]問題文(含コード&リンク): 出席率(attend)と試験の得点(test)を読み込み、2つの条件を満たす場合 ”合格”と表示し、満たさない場合”不合格”と表示してください。2つの条件は以下の通り。 ①出席率が70以上、②試験得点が60以上。 この課題はif文のネストで、 を #include<stdio.h> int main(void){ int attend, test; printf( "input attend test: " ); scanf( "%d %d", &attend, &test ); if ( attend >= 70 ) if ( test >= 60 ) printf( "合格\n" ); else printf( "不合格\n" ); else printf( "不合格\n" ); } とするとコンパイルエラーになります 何故でしょうか? [3]環境 [3.1]OS:windowsXP [3.2]コンパイラ名とバージョン:gcc [3.3]言語:C [4]期限:明日 [5]その他の制限:
とりあえず囲んでみれば
#include<stdio.h> int main(void){ int attend, test; printf( "input attend test: " ); scanf( "%d %d", &attend, &test ); if ( attend >= 70 && test >= 60 ) printf( "合格\n" ); else printf( "不合格\n" ); }
[1]授業単元:プログラミング演習
[2]問題文:
>>773 [3]環境:
[3.1]OS:LINUX
[3.2]コンパイラ名とバージョン:gcc
[3.3]言語:C
[4]期限:明日の午前中まで
[5]その他の制限:再帰の不使用
度々申し訳ありません、
>>773 です。
こちらの書き込み方がルールに沿っておらず、スレ汚しをしてしまったので
恥を忍んで再度ここに書かせていただけたらと存じます。
どなたかお力添えよろしくお願いします。
[1]授業単元:演習 [2]問題文(含コード&リンク): 月(month)を読み込み、範囲チェックをして下さい。月が1~12の範囲なら、"正しい月" 、1~12意外なら"誤った月"と表示してください。 [3]環境 [3.1]OS:windowsXP [3.2]コンパイラ名とバージョン:gcc [3.3]言語:C [4]期限:明日 [5]その他の制限:論理積演算子(&&)、 論理和演算子(||)を使わないで下さい。 ヘッダint month; は使わないで下さい。
>>844 警告 W8070 ex065.c 11: 関数は値を返すべき(関数 main )
ってでるけどなんなんでしょう?
実行できたけど
return 0
[1]授業単元:演習 [2]問題文(含コード&リンク): 整数値(n)を読み込み、絶対値を表示して下さい。 -20の絶対値は、20。20の絶対値は、20。 [3]環境 [3.1]OS:windowsXP [3.2]コンパイラ名とバージョン:gcc [3.3]言語:C [4]期限:明日 [5]その他の制限:
>>847 C99に対応していないヘタレコンパイラの勘違い警告。
関数の最後にreturn 0;でも加えると良いんじゃないの。
ボーランドだと通る。 gccとか使ったことないから知らんが void main (void)にしたら?
[1]授業単元:演習 [2]問題文(含コード&リンク): 西暦の年(year)を読み込み、その年がうるう年 であれば"閏年"、うるう年でないときは"平年"と 表示して下さい。うるう年とは、2月が29日の 年。基本は4年に一回(4で割り切れる年はうる う年)、それだと多すぎるので100年に1回は 平年とする(100で割り切れる年は平年)、そ れだと少なすぎるので400年に一回をうるう年 に戻す(400で割り切れる数はうるう年)。 この課題はif文のネス トで。(論理和、論理 積は使わないで下さい 。) [3]環境 [3.1]OS:windowsXP [3.2]コンパイラ名とバージョン:gcc [3.3]言語:C [4]期限:明日 [5]その他の制限: この課題はif文のネストで。(論理和、論理 積は使わないで下さい。)
854 :
852 :2006/06/13(火) 22:24:32
へぇ~w気づかんかった。 カープ負けたし寝る。
>>855 課題の文章そのままですが解りづらいですよね
[1]授業単元:演習 [2]問題文(含コード&リンク): 月(month)を読み込み、その月の日数を表示して下さい。 2月は28日とする。 if文で作ってください。 小の月(31日でない月)は、西向く士(ニシムクサムライ、2 4 6 9 11)。 [3]環境 [3.1]OS:windowsXP [3.2]コンパイラ名とバージョン:gcc [3.3]言語:C [4]期限:明日 [5]その他の制限:
[1]授業単元:演習 [2]問題文(含コード&リンク): 月(month)を読み込み、範囲チェックをして下さい。月が1~12の範囲なら、"正しい月" 、1~12意外なら"誤った月"と表示してください。 論理演算子を使ってください。 [3]環境 [3.1]OS:windowsXP [3.2]コンパイラ名とバージョン:gcc [3.3]言語:C [4]期限:明日 [5]その他の制限:
>>858 丸投げスレでこういうことを言うのもバカらしいというか、ナンセンスなんだが
それくらい自分でできるやろ・・・入力された数値を if 文と条件指定を使って
判別すりゃええがな・・・
前に見たことがある、過去スレにあるだろ
>>858 scanf("%d", month);
if (month>=1) && (month<=12) {
printf("正しい月")
} else {
printf("誤った月")
}
int main()
{
#if FOR_858 || FOR_857 //
>>858 >>857 int month;
scanf("%d", & month);
#endif
#if FOR_858 //
>>858 printf("%s月\n", month >= 1 && month <= 12 ? "正しい" : "誤った");
#elif FOR_857 //
>>857 int day = 31;
if (month == 2) {
day = 28;
} else if (month == 4 || month == 6 || month == 9 || month == 11) {
day = 30;
}
printf("%d\n", day);
#elif FOR_849 //
>>849 int n;
scanf("%d", & n);
printf("%d\n", n < 0 ? -n : n);
#endif
return 0;
}
>>849 #include <stdio.h>
#include <math.h>
#define ABS(n) (n) >= 0 ? (n) : (n) * (-1)
int main(){
printf("%d %d\n", abs(-20), abs(20));
printf("%d %d", ABS(-20), ABS(20));
return 0;
}
>>863 コンパイルに失敗したました。
>>865 #include <math.h> は使わないで下さい
867 :
デフォルトの名無しさん :2006/06/13(火) 23:02:28
[1] 授業単元:情報科学Ⅱ
[2] 問題文:n! を計算する float 型の関数 fact(int n),
x の n 乗を計算するfloat 型の関数 beki(float x, int n) を定義し,
正の整数 n,0 以上 1 以下の実数 p,0 以上 n 以下の整数 m を読み込んで,
http://www.vipper.org/vip275102.jpgを計算して表示するプログラムを作れ .
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2006年6月16日(金)8:40まで
[5] その他の制限:標準ライブラリは使ってはいけないです。
よろしくおねがいします
869 :
デフォルトの名無しさん :2006/06/13(火) 23:05:02
>>863 よくそういう分かりきったエラーを残すもんだとw
初心者すぎて入出力がライブラリだと思ってないだけだろ
873 :
867 :2006/06/13(火) 23:08:45
>>870 答えの数値だけを表示、かと。私も、手書きでうpろだ使ったくらいですから。
874 :
869 :2006/06/13(火) 23:10:17
補足です。 B=20-2 C=6*1 D=B/C A=5+D このデータが入ったtxtデータでの 動作を確認しています。
意味不明、標準ライブラリを調べてからきてください
>>873
876 :
867 :2006/06/13(火) 23:15:27
標準ライブラリを使っていいです。すいません。
[1]授業単元:プログラミング演習 [2]問題文(含コード&リンク): n次元ベクトルvとwのユークリッド距離の2乗をdouble変数で返す以下のような関数を作成する。 nは最大20とする。vとwの保持には長さ20のdoubleの1次元配列v[],w[]を予め定義し、その一部分を使用する。 n次正方行列Aとn次元ベクトルvの積Avを求め、結果を配列wにいれる以下のような関数を作成する。 nは最大20とする。Aの保持には20×20のdoubleの2次元配列を予め定義し、その一部分を使用する。vの保持には 長さ20のdoubleの1次元配列v[]を予め定義し、その一部分を使用する。 ・乱数rand()を適当に用いて「推移確率行列A」を発生させる ・n次元の単位ベクトル(u1,u2,・・・un)それぞれについて、それを初期ベクトルx0として以下を実行したときの収束先を出力する x[k+1]=Ax[k] また、収束までの反復数も出力する。 収束判定はx[k+1]とx[k]のユークリッド距離の2乗をdouble変数で表したものが、0.0と区別出来なくなった時を収束とする。 nとして10を用いたとき、生成された行列、各初期ベクトルに対する結果のベクトルと収束までの反復回数を出力せよ。 [3]環境 [3.1]OS:WindowsXP [3.2]コンパイラ名とバージョン:gcc [3.3]言語:C [4]期限:明後日 [5]その他の制限: お願い致します。
878 :
867 :2006/06/13(火) 23:23:47
やっぱり標準ライブラリは使わずにプログラムしないといけないようです。 授業ではヘッダーは#include<stdio.h>しかつかってないです。
>>878 stdio.hは標準ライブラリの一つなわけだが
うん、標準ライブラリだよね
>>878 stdio.hは標準入出力ライブラリで勿論標準ライブラリの一部だよ。
stdio.h以外の標準ライブラリを使わずにとか表現すれば良いんじゃない?
>>878 #include<stdio.h>の時点で標準ライブラリ使ってんじゃん
>>869 これ二分木使うまでもなく、一行入力されるごとに、B→C→D→A と計算していけば答出ちゃうじゃん。
わざわざ右辺を文字列で保存していくのか? 無意味じゃね?
>>884 二分木の学習なんで、わざわざこうしている
そうです。今回は木を構成して、出来上がったか
どうかを表示できればいいみたいです。
お願いします。
886 :
867 :2006/06/13(火) 23:32:47
>stdio.h以外の標準ライブラリを使わずにとか表現すれば良いんじゃない?
そうです。そのとおりです。これでよろしくおねがいします。
>>883 待ち伏せしてくれる人たちに感謝。
>>867 組み合わせ、乗数の関数くらい自分で解け
#include<stdio.h>
関数定義
int main(void)
{
int x,n;
scanf("%d,%d",&x,&n);
関数使用
return 0;
}
以下関数の中身
#include <stdio.h> float fact(int n){ float r; if(n < 2)r = 1; else r = fact(n - 1) * n; return r; } float beki(float x, int n){ float r = 1.0; for(int i = 0; i < n; i++)r *= x; return r; } float kumi(int n, int r){ return (fact(n) / (fact(n - r) * fact(r))); } float func(int n, double p, int m){ float r = 0.0; for(int k = 0; k < m; k++)r += kumi(n, k) * beki(p, k) * beki(1 - p, n - k); return r; } int main(){ printf("%f", func(10, 0.5, 9)); }
[1]授業単元:演習 [2]問題文(含コード&リンク): 月(month)を読み込み、範囲チェックをして下さい。月が1~12の範囲なら、"正しい月" 、1~12意外なら"誤った月"と表示してください。 [3]環境 [3.1]OS:windowsXP [3.2]コンパイラ名とバージョン:gcc [3.3]言語:C [4]期限:明日 [5]その他の制限: 論理和演算子を使わないで下さい。 stdio.h以外の標準ライブラリを使わないで下さい。
[1]授業単元:演習 [2]問題文(含コード&リンク): 出席率(attend)と試験の得点(test)を読み込み、2つの条件を満たす場合 ”合格”と表示し、満たさない場合”不合格”と表示してください。2つの条件は以下の通り。 ①出席率が70以上、②試験得点が60以上。 この課題はif文一つで。 [3]環境 [3.1]OS:windowsXP [3.2]コンパイラ名とバージョン:gcc [3.3]言語:C [4]期限:明日 [5]その他の制限: stdio.h以外の標準ライブラリを使わないで下さい。
うっざー@@; よほどアホが集まってる学校なんだな
>>889 #include <stdio.h>
int main() {
int x;
printf("Input Number > ");
scanf("%d",&x);
if(x>=1 && x<=12) printf("正しい月\n");
else printf("誤った月\n");
return 0;
}
はいはい、次次
>>853 #include<stdio.h>
int main(void){int year;printf("year input >");scanf("%d", &year);
if ((year % 4) == 0)if ((year % 100) != 0)printf("閏年\n");else
if ((year % 400) == 0)printf("閏年\n");else printf("平年\n");else
printf("平年\n"); return 0;}
>>890 #include <stdio.h>
int main() {
int attend,test;
printf("出席率 > ");
scanf("%d",&attend);
printf("試験得点 > ");
scanf("%d",&test);
if(attend >= 70 && test >= 60) printf("合格\n");
else printf("不合格\n");
return 0;
}
はいはい、専門学校生はこの程度のことも自力でやれないんだね
>>894 >論理和演算子
はぁ?積しか使ってませんが?
[1]授業単元:演習 [2]問題文(含コード&リンク): 九九の表を表示して下さい。 1 2 3 4 5 6 7 8 9 2 4 6 8 10 12 14 16 18 .................................................................. 9 18 27 36 45 54 63 72 81 [3]環境 [3.1]OS:windowsXP [3.2]コンパイラ名とバージョン:gcc [3.3]言語:C [4]期限:明日 [5]その他の制限:
内容的にWikiなんて必要無いんだが、 これだけあると、Wikiが欲しくなる。
>>899 だったらx>=0のさらにレベル下げしたところにx<=12をつければ?
elseは放置しておいても問題ないだろ。そこまでできないとなると
中学生以下だぞ、って性帝トーマス氏に言われる前に相手にされんなw
ブラックリストに入れるから、どこの学校か教えてくれない?
>>897 #include <stdio.h>
int main(void){
int i,j;
for (i=1;i<10;i++){
for (j=1;j<10;j++){
printf(" %2d",i*j);
}
puts("");
}
return 0;
}
>>897 #include <stdio.h>
int main(void)
{
int i, j;
for (i=1; i<=9; i++) {
for (j=1; j<=9; j++)
printf("%2d ", i*j);
printf("\n");
}
return 0;
}
論理演算子禁止とか・・・・ 余計に意味がわからないだけだと思うが・・・
じょうよすいっちぶんかな
ちうか、AND使えないと、1つの条件が通っても 2つめで合わないならそのときの対処もしなきゃならん面倒が増えるな・・・ さらに、その下に1つめが合わないときの対処も・・・なんっつー無駄なことを教える学校だw
>>889 #include<stdio.h>
int main(void)
{
int num;
printf("数値を入力してください : ");
scanf("%d",&num);
switch(num){
case 1 : printf("正しい月\n"); break;
case 2 : printf("正しい月\n"); break;
case 3 : printf("正しい月\n"); break;
case 4 : printf("正しい月\n"); break;
case 5 : printf("正しい月\n"); break;
case 6 : printf("正しい月\n"); break;
case 7 : printf("正しい月\n"); break;
case 8 : printf("正しい月\n"); break;
case 9 : printf("正しい月\n"); break;
case 10 : printf("正しい月\n"); break;
case 11 : printf("正しい月\n"); break;
case 12 : printf("正しい月\n"); break;
default : printf("誤った月\n"); break;
}
return 0;
}
間違ってても知らないぞ♥
静まり返った後に、妙なタイミングで蒸し返すのもどうかとw
つーかアホ問題出す教官の実名晒せよ。徹底的にバカにするから。
一個一個やらなくても
学校名晒してほしいな
913 :
■■■質問■■■ :2006/06/14(水) 01:13:09
[1] 授業単元: プログラミング演習 [2] 問題文(含コード&リンク): でたらめに10個の正の整数値を入力するとき、n番目に入力した数が、 n+1番目に入力した値より大きい場合を数えて、何回あったかを表示する。 ■例 3,5,2,8,9,5,1,4,7,5 4回 [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:2006年6月14日深夜 [5] その他の制限:特にありません、宜しくお願い致します。
意味分からん
#include <stdio.h> int main(){ int i, a[10], cnt = 0; for(i = 0; i < 10; i++)scanf("%d", &a[i]); for(i = 0; i < 9; i++)if(a[i] > a[i + 1])cnt++; printf("%d回", cnt); return 0; } 確かめてないけど
いや、どう考えても答えの導けない問題っつーか 例に出ている結果の意味も分からんよ・・・
>>913 #include<stdio.h>
#include<stdlib.h>
int main(void){int i,n,c=0,prev=INT_MAX;char tmp[100];for(i=0;i<10;i++)
{fgets(tmp,sizeof(tmp),stdin);n=atoi(tmp);if(n>prev)++c;prev=n;}printf("%i回\n",c);return 0;}
>>918 だぁ~~ら、いつもそうだけど、お主のソース、コンパイルできねーっつーのっw
逆か。ほんならこれで。 prev=-INT_MAX; if(n<prev)++c;
>>913 最初の数字から数えてみた
#include <stdio.h>
int main(void){
int a[10],i,count=0;
for (i=0;i<10;i++){
scanf("%d",&a[i]);
if (i!=0 && a[i]>a[0]){
count++;
}
}
printf("%d個\n",count);
}
>>919 ん?一発で通ったぞ。コンパイラは何使ってるんだ?
>>919 じゃないけど
BCCだとINT_MAXが未定義のシンボル
925 :
■■■質問■■■ :2006/06/14(水) 01:30:07
>>916 問題はアフォだと思うが、意味は分かるだろ。
トーマスにもお礼言わなきゃ つか、トーマスの1回多く数えてない?
>>924 bccはINT_MAX定義されてねえのか…
今気付いたんだけど, JaneDoeViewの"ここからツリー化"って便利だな。 いや、それだけなんだが。
930 :
■■■質問■■■ :2006/06/14(水) 01:35:43
>>922 さん済みません!
ありがとうございます。
>>924 Borland C++ Builder 6 Personalのだけど.
includes\_lim.h
51: #define INT_MIN LONG_MIN /* minimum signed int value */
52: #define INT_MAX LONG_MAX /* maximum signed int value */
53: #define UINT_MAX ULONG_MAX /* maximum unsigned int value */
limits.hをインクルードすればOK.
>>927 ん?仕方がないから実行してみたが、
>■例 3,5,2,8,9,5,1,4,7,5 4回
この通りになったぞ。
>>934 こうマシンガンのごとく宿題が発射されると、
そうでもしないとやってらんね。(もっといい方法があるのかもしれないけど)
>>926 要するに入力された値を数列にして、先頭から順に次の要素の数値と比較して
値が大きくなる場合の回数を出すってことね。
940 :
■■■質問■■■ :2006/06/14(水) 01:42:44
性帝トーマスさん済みません><; あわてて書き込みしてしまいました。 ありがとうございます!
INT_MINを使ってないね
っつーーーーかぁ、√使った素数を求めるプログラムのソースマダー?(チソチソAA略)
>>928 そもそも仕様で(limits.h以外で)定義しとけと規定されてない物なんだから
limits.hのインクルード無しでは使えなくても当然だろ
>>840 大小比較回数とは大小交換回数のことか?
あとクイックソートの比較は配列の真ん中の値で比較するんだぞ、boundの値が違ってい
るぞ
#include <stdio.h>#include <stdlib.h>#define NMAX 10000
#define swap(a,b){int t=(a);(a)=(b);(b)=t;}static int count = 0;
void print(int *array,int N){int i;for(i = 0; i < N; i++){
printf("array[%d] = %d ", i, array[i]);}printf("大小交換回数=%10d\n", count);}
void quicksort(int *array,int lower,int upper){int l = lower;int u = upper;
int bound = array[(lower + upper) / 2];while(l<=u){while(array[l]<bound) l++;
while(array[u]>bound) u--;if (l <= u){count++;swap(array[l],array[u]);l++;
u--;}}if (lower < u) quicksort(array,lower,u);if (l < upper)
quicksort(array,l,upper);}
int main(void){int i = 0;int array[NMAX];while(1){if (i >= NMAX)break;array[i]
= (int)rand();i++;}quicksort(array, 0, NMAX - 1);print(array, NMAX);return 0;}
947 :
デフォルトの名無しさん :2006/06/14(水) 02:02:08
C言語をやろうと思い導入しました ですがうまくいきません ------ ビルド開始: プロジェクト: C, 構成: Debug Win32 ------ コンパイルしています... Cプラス.cpp .\Cプラス.cpp(4) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません ビルドログは "file://d:\My document\Visual Studio 2005\Projects\C\C\Debug\BuildLog.htm" に保存されました。 C - エラー 1、警告 0 ========== ビルド: 0 正常終了、1 失敗、0 更新、0 スキップ ========== となってエラーになります
951 :
921 :2006/06/14(水) 02:07:39
>>946 ハァ?もういっかいクイックソート勉強しなおしてこい。
クイックソートは任意のピボット(普通は要素の先頭)と比較して、小さいか、大きいかで分けるのを、
再帰的に行なうソート手法だ。
2分検索か何かと勘違いしていないか?
952 :
俺ってやさしい :2006/06/14(水) 03:59:59
>>947 そのエラー内容を見せられてどうしろと言うの。
「残念だね」って言えば良いの?
とりあえず、拡張子は.cにしよう。
次に、何の関数が戻り値無しでintと仮定されてるのかがわからない。
簡単なのコンソールアプリの例、下記。
#include <stdio.h>
int func(int n);//関数宣言
int main(argc, *argv[])
{
int a = 10;
printf("%d\n",a);//10と表示される
a = func(a);
printf("%d\n",a);//20と表示される
return 0;
}
int func(int n)//関数定義
{
return n+n;
}
組み込みとかだとずっとmain内と関数で電源を切るまで(ログオフかな?)
処理を継続させるためにvoid main(void)にして戻り値無しにするらしい。
953 :
俺ってやさしい :2006/06/14(水) 04:00:54
あーあ、main(int argc, char *argv[]) に訂正ね
956 :
921 :2006/06/14(水) 07:00:10
ここは Visual C++ も受け付けてるん?専用スレの方がイクネ?
>>961 あっちだと間違いなくこっちに誘導されるね。
それにしても、WinXPにVC6かぁ。滅多にない組み合わせだな。
67代目
↓ちょっと、あんた、クイックイッとすぐにクイックソートのソースを書いてみてよ
ちょっとデフラグしてくる 髪に祈っててくれ
どうか禿げませんように。
デフラグオワタ\(^o^)/いい感じ♪
970 :
デフォルトの名無しさん :2006/06/14(水) 13:21:53
>>841 いえ、ここは勉強になるのでよく来てます
まだ見ていました。
質が悪いというのは同感w
講義でもたいした説明はありませんでしたし、
C言語初心者クラスなのに、、、
それはともあれ
どうもありがとうございました
参考にさせていただきます
もっと良い感じ、スッキリする方法があるよ。フォーマット・・・ いや、なんでもない。外付けHDDにでもデータを移して システム(OS)を稼動させるディスクを空けやすくしておくと良いYO!
へーあっそ、
すいません、このソースどうしてもコンパイル出来ないんですが… #include <stdio.h> #include <stdlib.h> main(int argc,char **argv) {FILE*fp; charbuffer[20]; inti; intc; if(argc !=2)exit(0); if(NULL==(fp=fopen(argv[1],"r"))) { puts("\aFILEOPEN ERROR.\n"); exit(-1); } for(i=0;i<0x7fff;++i) { gets(buffer); if((buffer[0]=='e') || (buffer[0]=='E'))break; c=fgetc(fp); printf(" No. %08d\n",i); printf(" ===> characterdata id : %c\n",c); printf(" ===>_ptr is : %08lx\n", fp->_ptr); printf(" ===>*_ptr is : %02x\n", *fp->_ptr); printf(" ===>_cnt is : %04x\n", fp->_cnt); printf(" ===>_base is : %08lx\n", fp->_base); printf(" ===>*_base is : %02x\n",*fp->_base); printf(" ===>*_flag is : %02x\n", fp->_flag); printf(" ===>*_file is : %02x\n\n", fp->_file); } fclose(fp); }
>>974 全角スペースが入っているわ、int で宣言するときに変数に指定している文字とintを
くっつけているわ、ボロボロだな。それ以外のコンパイルエラーは中身の問題。
978 :
974 :2006/06/14(水) 15:32:51
>>975 >>976 いや、そのボロボロなのはコピペ時に改行制限に引っ掛かって
やむなくあちこち打ち直した事によるものなのです
こちらが疑問視しているのはそれらを訂正した後に出てくるエラーの
問題で、_ptrがメンバーでない云々と出てきてばかりで解決出来ず
悩んでいるのはそこなのです
このソースはアスキー刊「実習C言語」からのものです
図書館から勉強用に借りてきたのですが版が1990年刊のものと古く、
内容的にも現在のCの規格と合わざる所があるかもしれませんが
とりあえずはこれで勉強していたわけです
で、このソースにぶつかったらコンパイル出来なくてつまづいたと
そう言う事です
どこか訂正すればコンパイル出来るのでは、今はそう思うのですが
そこはどうでしょうか
>>978 標準ではFILEが何かは規定されていない。
そのコードはFILEが構造体で、_ptr, _cnt, _base, _flag, _fileというメンバを持っていることを前提にしているから
そうでない環境でエラーになるのは当然。
981 :
974 :2006/06/14(水) 15:53:00
ああ、そうでしたか そうなりますとおかしいのは本の側と言う事になりますね 実はこのソースを載せたページの辺りを読んでもろくな説明がなく、 そしてそのまま次へ進んでしまっているんですよ コンパイル出来なくて当然ですね どうやらあれは糞本だったようです 現在刊行されている同書はその辺り補足していろいろ書かれているかも 知れませんが、今手元にある本は理解には役に立たないものと言えそうですね 大体これで納得出来ました ありがとうございます
↑ おっかしいなー、こちらが持っているのは 1990年刊で三田典玄が著者なんですよね 同じ本なのはわかるけど何かの事情で変わったのかな??
>新装版
985 :
762 :2006/06/14(水) 16:23:53
>>763 遅いレスでごめんなさい。
是非ソースを頂きたいです。
図々しいですが、よろしくお願いします。
>>977 過去スレ一覧に引っかからないと何度言ったら理解できるんだ?
>>986 過去スレ一覧に引っかからないと何か問題でもあるのか?
どうせ誰も過去スレなんか見ないだろが。
>>988 いや、そもそも。
・スレタイが微妙に異なる
・今からじゃスレの版数が合わない
の2点で却下だ。
使う理由は無い、いずれdat落ちするんだから放っておけば良い。
>>981 > そうなりますとおかしいのは本の側と言う事になりますね
おかしいのではなく、環境依存であると言う事。
>>986 ここのスレもいずれ消滅するし、
>>977 に書かれている過去ログもここの
>>1 の過去ログも
次スレに移行してしまえば特に意味はない。
だからここで最後の最後まで質問する人を残さず
すぐに誘導した方が良いし、消化しきれていないスレに誘導してもなんら問題ないよ。
FILEの中身に依存するのは十分おかしいと思うが。
>>989 スレタイが微妙に異なると何か問題でもあるのか?
版数がずれてると何か問題でもあるのか?
どうせ誰も過去ログ見ないんだからタイトルの微妙な違いだの版数だのを気にしても
意味がない。
>>996 元々イレギュラーに建ったスレなんざ利用するまでもない、というポリシーに基づくまで。
>>998 2chには「出された物は残さず食べる」というグローバルポリシーがあるわけだが。
C++皆でガンバって考えましょうね
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。