ぼるじょあがC/C++の宿題を片づけますYO! 68代目at TECH
ぼるじょあがC/C++の宿題を片づけますYO! 68代目 - 暇つぶし2ch597:デフォルトの名無しさん
07/11/20 18:52:08
すいまんせん。マルチになってしまうのですが
時間がないのでこちらでできたらおねがいします。
[1] アルゴリズムとデータ構造
[2] URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] Windows
 [3.2] Visual Studio 2005
 [3.3] C
[4] 期限: 11月20日

598:ぼるじょあ ◆hZ8e4Wjqvw
07/11/20 18:55:29
>>597
(・3・) エェー 6 の部分しか変更しちゃダメなら無理だYO!
          gets について調べてみるといいYO!

599:597
07/11/20 19:30:36
>>598
6の部分しか変更しちゃいけないのは問2です。
問3はfgets使用OKです。
おねがいしますペコシ

600:homoじょあ ◆5OLf4yFnuM
07/11/20 20:58:27
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(void)
{
char buff[1002];
char *data[10000];
int kosu, i, j;

kosu = 0;

while(fgets(buff, sizeof(buff), stdin) != NULL)
{
if(strlen(buff) > 1000){
puts("入力が1000バイトを超えています");
for (i=0; i<kosu; i++)free(data[i]);
return 0;
}
else if(kosu >= 10000){
puts("入力は10000個までです");
for (i=0; i<kosu; i++)free(data[i]);
return 0;
}
data[kosu] = (char *) malloc( strlen(buff)+1 );
strcpy(data[kosu], buff);
kosu = kosu + 1;
}


601:homoじょあ ◆5OLf4yFnuM
07/11/20 21:00:24
/* ソート */
for(i=0; i<kosu-1; i++){
for(j=i; j<kosu-1; j++){
if(strcmp(data[i], data[j+1]) > 0){
char *swap;
swap = data[i];
data[i] = data[j+1];
data[j+1] = swap;
}
}
}

for (i=0; i<kosu; i++)
free(data[i]);

return 0;
}

602:デフォルトの名無しさん
07/11/20 22:20:16
>>600,601
凄い助かりました!
ありがとうございます。

603:デフォルトの名無しさん
07/11/22 01:44:37
[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク):
今a.txt,b.txt,c.txt,d.txt,e.txtというファイルがある。(これらのファイルを<1>)
それぞれのファイルには「a」「b」「c」「d」「e」とかかれている。
また,A.txt,B.txt,C.txt,D.txt,E.txtというファイルがある(これらのファイルを<2>)
それぞれのファイルには「A」「B」「C」「D」「E」とかかれている。
<1>のファイルと<2>のファイルを読み込んでその中身を
aA
aB
aC
aD
aE
bA
bB
という風に表示せよ。つまり25行になります。
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C言語
[4] 期限:2007/11/22 24:00まで
[5] その他の制限:fscanfで読み込んでほしいんですが

まあ自分が作りたいのは5個のファイルと別の5個のファイルを
最初の5個のうちの1つのファイルに対して別の5個のファイルをつかって5つの
値を出すみたいな。で25個の値が出したいんです。


604:ぼるじょあ ◆hZ8e4Wjqvw
07/11/22 02:36:49
>>603
(・3・) エェー これでいいのかYO!
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define NELEMS(arr) (sizeof(arr)/sizeof(arr[0]))
char **get_list(char *fname_list[], int fname_num){
int i;
char **ret, buf[100+1];
FILE *fp;
ret=malloc(sizeof(*ret)*fname_num);
for(i=0;i<fname_num;i++){
fp=fopen(fname_list[i], "r");
if(fp==NULL || fscanf(fp, "%100s", buf)!=1){fclose(fp);free(ret);return NULL;}
ret[i]=strdup(buf);
fclose(fp);
}
return ret;
}
int main(void){
char *one[]={"a.txt", "b.txt", "c.txt", "d.txt", "e.txt"};
char *two[]={"A.txt", "B.txt", "C.txt", "D.txt", "E.txt"};
char **buf_one, **buf_two;
int i, j;
buf_one=get_list(one, NELEMS(one));
buf_two=get_list(two, NELEMS(two));
if(buf_one==NULL || buf_two==NULL) return 1;
for(i=0;i<NELEMS(one);i++)
for(j=0;j<NELEMS(two);j++)
printf("%s%s\n", buf_one[i], buf_two[j]);
return 0;
}

605:デフォルトの名無しさん
07/11/22 02:49:10
>>603
a.txt と A.txt が私のPCでは作れなかったんだけどやってみました。
意図は不明ですが仕様はこれで満たしているはず

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

int main(void)
{
char *fname[2][5] = {
{"a.txt","b.txt","c.txt","d.txt","e.txt"},
{"1.txt","2.txt","3.txt","4.txt","5.txt"}, };
FILE *fp;
char ch[2];
int cnt = 0, idx = 0;

for (cnt=0; cnt<sizeof(fname[0])/sizeof(fname[0][0]); ++cnt)
{
for (idx=0; idx<sizeof(fname)/sizeof(fname[0]); ++idx)
{
if ((fp = fopen(fname[idx][cnt], "r")) == NULL) exit(1);
fscanf(fp, "%c", &ch[idx]);
fclose(fp);
}
printf("%c%c\n",ch[0], ch[1]);
}
return 0;
}


606:605
07/11/22 02:51:19
被ったしよくみたら全然違いました。すみませんでしたm(_ _)m

607:デフォルトの名無しさん
07/11/22 08:47:28
>604
ありがとう

608:デフォルトの名無しさん
07/11/23 23:30:46
[1] 授業単元:確率論
[2] 問題文(含コード&リンク):


この図のような状態遷移をして
URLリンク(kossie.net)
最終的にendにきたときの状態確率を出したいんですけど。
この下のプログラムは小数で計算しています。概要に付いても
説明しています。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
この状態確率を対数で計算して、上のプログラムでの値といっしょになるよう
にしたいんですけど。

logの加算には場合わけが必要で、そのプログラムは作りました。
URLリンク(kansai2channeler.hp.infoseek.co.jp)

logの計算途中で-infとかnanとかでてくるので
それを調べるためにprintf文大量に使ってますけど みにくかったら消してください。

小数計算は0*0.5で0になるからいいですけどlogはそうはいかないですから。
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: c
[4] 期限: 24日まで
[5] その他の制限: 特になし

609:デフォルトの名無しさん
07/11/24 07:42:36
ほかで質問しましたが解答がないので、まじでお願いします!!
[1] 授業単元: システム解析

[2] 問題文(含コード&リンク):2変数非線形連立方程式の解を求めるnewton-rapson法のプログラムを作成し以下の問題を解け
①x^2+y^2-8=0 と x+y=0 で初期点(x(x0),y(y0))∈[-4,-4]×[4,4]を10000個とり、初期点に対する収束値の関係を2次元で図示する。
収束値の関係の座標を出すこと。

②x^3-3xy^2-8=0 と x^3-3x^2y=0 で初期点(x(x0),y(y0))∈[-1/2,-1/2]×[1/2,1/2]を10000個以上(百万個程度を推奨する)とり、初期点に対する収束値の関係を2次元で図示する。
収束値の関係の座標を出すこと。


[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: ([2007年11月25日23:00まで]
[5]その他:^は累乗を示します。たとえば、x*x=x^2です。
2問ありますが、一問だけでもといていただけると助かります。2変数ということで手も足もでません、、、
よろしくお願いします。


610:デフォルトの名無しさん
07/11/24 15:47:30
[1] 授業単元: プログラミング演習

[2] 問題文
CD-Rは1枚~10枚で1枚が100円、11枚から100枚で1枚が90円、101枚以上で1枚が70円とする。枚数nに対する金額を計算するプログラムを作成しなさい。終了時にはCtrl+Z(Enter)と入力する

[3] 環境
 [3.1] OS:Windows
 [3.3] 言語:C

[4] 期限: 11/30
[5] その他の制限: 特になしです。お願いします。

611:デフォルトの名無しさん
07/11/24 19:16:03
>>610
#include <stdio.h>
#include <conio.h>

int main(void)
{
int num, price;

printf("CDの購入枚数を入力してください->");
scanf("%d", &num);

if(num < 0) return 1;
else if(num < 11) price = num * 100;
else if(num < 101) price = num * 90;
else price = num * 70;

printf("合計金額は %d 円です。\n", price);
_getch();

return 0;
}

612:デフォルトの名無しさん
07/11/24 19:22:48
>>610
これ、10枚買うときは 11 枚買って一枚捨てるとか、
79枚買うときは 101枚買って 22枚捨てるとかやるの?

613:612
07/11/24 20:55:23
>>610
ということで作ってみた
#include <stdio.h>
int main(void){
int price[]={100,90,70,-1};
int number[]={1,11,101,-1};
int i,ret,pr,minpr,num,index,sute,s;
for(;;){
ret=scanf("%d",&num);
if(ret==EOF){break;}
if(ret!=1){scanf("%*c");fprintf(stderr,"入力エラー\n");continue;}
for(i=0;number[i]!=-1;i++){
if(num>number[i]){pr=num*price[i];s=0;}
else{pr=number[i]*price[i];s=number[i]-num;}
if(i==0 || pr < minpr){index=i;minpr=pr;sute=s;}
}
if(sute==0){printf("%d 円\n",minpr);}
else{printf("%d 円で %d 枚買って、 %d 枚捨てて下さい\n",minpr,number[index],sute);}
}
}


614:デフォルトの名無しさん
07/11/24 21:53:13
>>611->>613 
大変ありがとうございます。
>>612
そういう作業は必要ないと思います。

615:デフォルトの名無しさん
07/12/01 13:07:17
1] 授業単元:プログラミング言語
[2] 問題文
  キーボードから実数を5個入力し、その入力データのうち3つのデータから実数の
  平均値を求める。
  求める平均は最初のデータから3個分、次のデータから3個分および3番目の
  データから3個分の計3種類とする。 
  平均をするプログラムは関数化すること引数で値を渡すようにすること。
  入力データ 1、1 1、2 1、3 1、4 1、5  
[3] 環境
 [3.1] OS: windows xp
 [3.2] コンパイラ名とバージョン: 特に指定なし
 [3.3] 言語: C
[4] 期限: 12月3日 18時
[5] その他の制限: 特になし




616:homoじょあ ◆5OLf4yFnuM
07/12/01 18:09:32
>>615
#include <stdio.h>

double average(double a, double b, double c){
return (a + b + c)/3.0;
}

int main(void){
double input[5];
int i;
for(i=0; i<5; i++){
printf("%dつ目->", i+1);
scanf("%lf", &input[i]);
}
for(i=0; i<3; i++)printf("%d-%d:%f\n", i+1, i+3, average(input[i],input[i+1],input[i+2]));
return 0;
}


617:デフォルトの名無しさん
07/12/01 18:38:10
615ですが、ありがとうございます。

618:デフォルトの名無しさん
07/12/02 03:35:37
あげ

619:デフォルトの名無しさん
07/12/02 06:37:09

■最近流行りのSM系サイトを知っていますか?

それは「SMプレイをすること」を最終目的とした人達が集まる出会い系サイトのことです。
普通の出会い系サイトと一味違った、熱い出会いが全国各地で繰り広げられています。

《ブログ SM系サイトが会える訳》
URLリンク(smsite.blog123.fc2.com)

ブログでは管理人一押しのSM系サイトを紹介しています。
是非ご利用下さい。

620:デフォルトの名無しさん
07/12/02 11:54:57
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):西暦y年m日d日の前の日と次の日の日付を求めてセットする関数
Lv1:大小の月はなし(各月の日数は30日、閏年なし(一年は360日)
Lv2:大小の月あり(30日の月と31日の月を考慮する。
Lv3:大小の月あり(30日の月と31日の月を考慮する。)閏年あり
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名:gcc
 [3.3] 言語: C
[4] 期限: 12月6日
[5] その他の制限: ポインタまで習ってます。

621:デフォルトの名無しさん
07/12/02 13:56:18
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
数字を十五個入力し、その中から五番目に大きい数値を求める
[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン:Visual Studio.NET
 [3.3] 言語:C
[4] 期限:12月2日 24:00]
[5] その他の制限:
forとifを使ったものでお願いします

622:homoじょあ ◆5OLf4yFnuM
07/12/02 14:16:48
>>620
(・3・) エェー プロトタイプ宣言希望
          y,m,dの3つを引数で受けるのはわかるけど
          前の日と次の日の格納をどうするのか不明だYO
          まさか引数9個ですKA?

623:homoじょあ ◆5OLf4yFnuM
07/12/02 14:27:07
>>621
#include <stdio.h>

int main(void){
int input[15], i, k;
for(i=0; i<15; i++)scanf("%d", &input[i]);
for(i=0; i<5; i++){
for(k=i+1; k<15; k++){
if(input[i] < input[k]){
int swap = input[i];
input[i] = input[k];
input[k] = swap;
}
}
}
printf("五番目に大きい数値:%d\n", input[48]);
return 0;
}

(・3・) エェー 並べ替えて5番目見てるだけだがYO
          もしかして、 例えば9 9 9 9 9 9 9 9 9 9 8 7 6 5 4って入力されたら
          答えは5になる?

624:デフォルトの名無しさん
07/12/02 14:28:54
ちょ、48w

625:homoじょあ ◆5OLf4yFnuM
07/12/02 14:37:00
>>624
(@3@) エェー マジか!

626:620
07/12/02 16:02:28
>>622

void yesterday(int*y,int*m,int*d){/* */}
void tomorrow(int*y,int*m,intd){/* */}

プログラミング苦手なのでよくわからないですが
こうかかれてました。

627:デフォルトの名無しさん
07/12/02 16:55:41
void yesterday(int*y,int*m,int*d)
{
struct tm tmp = {0, 0, 0, *d - 1, *m - 1, *y};
mktime(& tmp);
*y = tmp.tm_year;
*m = tmp.tm_mon + 1;
*d = tmp.tm_mday;
}
void tomorrow(int*y,int*m,intd)
{
struct tm tmp = {0, 0, 0, *d + 1, *m - 1, *y};
mktime(& tmp);
*y = tmp.tm_year;
*m = tmp.tm_mon + 1;
*d = tmp.tm_mday;
}


628:デフォルトの名無しさん
07/12/02 18:52:38
1] 授業単元:C言語
[2] 問題文:次のデータに対して0≦x≦1.4の範囲で、台形公式により面積を求めよ。
      データ URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:
 [3.3] 言語: C
[4] 期限: 2007年12月3日まで
[5] その他の制限:1.入力はテキストファイルからやると楽
         2.出力はディスプレイ上でOK
お願いします。

629:デフォルトの名無しさん
07/12/02 20:23:34
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):長いので。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
こいつの(i)です。
[3] 環境
 [3.1] OS: vineLinux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 明日提出なんでできれば今日のうちにお願いします
[5] その他の制限: 特になしでいいと思います。
自分なりに書いてみたソース
URLリンク(kansai2channeler.hp.infoseek.co.jp)
繰り返しがうまくできません。
よろしくお願いします。


630:homoじょあ ◆5OLf4yFnuM
07/12/02 23:32:28
>>628
(・3・) エェー で、どんな式?

631:628
07/12/02 23:45:11
なんとか自力でできました。
homoじょあさん レスしてくれてありがとうございます。

632:homoじょあ ◆5OLf4yFnuM
07/12/02 23:50:08
(・3・) アルェー そりはよかったですYO

633:デフォルトの名無しさん
07/12/03 00:01:17
[1] 授業単元:プログラミング実習
[2] 問題文(含コード&リンク):
URLリンク(kansai2channeler.hp.infoseek.co.jp)  この問題内の「動的な多次元配列の手法」の1~3は
URLリンク(kansai2channeler.hp.infoseek.co.jp)  ←にあります
課題1は何とかなりました→ URLリンク(kansai2channeler.hp.infoseek.co.jp) です
これを改良して課題2,3へ行くので、上げさしていただきました           
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: bcc32
 [3.3] 言語: C言語です
[4] 期限: 金曜日までです
[5] その他の制限: 特にありません

宜しくお願いします

634:homoじょあ ◆5OLf4yFnuM
07/12/03 00:33:08
>>629
(・3・) エェー めんどいから1ファイルにしちゃったYO
          適当に分けてNE

URLリンク(kansai2channeler.hp.infoseek.co.jp)

635:629
07/12/03 01:03:25
>>634
あざっす。と言いたいけどレベルたけえw
これ提出したら絶対怪しまれる
でも制限なしとか書いちゃったの自分なんで
あとは自力でがんばります


636:デフォルトの名無しさん
07/12/05 10:51:31
[1] 授業単元:C言語
[2] 問題文
まず、次のメンバを持つ構造体をtypedef宣言を使用し、data型として準備しなさい。
ただし、typedef宣言において構造体タグ名は省略しなさい。
char型の配列変数id(配列サイズ:8)、int型の変数n
main関数では、このdata型の変数personを宣言し、そのメンバidを 012345、nを25として初期化する。
続いて、実行結果に示すように「学籍番号・・・の現在の得点:」とともにpersonのメンバidとnを表示した後、personをadd_num関数に渡す。
さらにadd_num関数から戻る値をpersonに格納し、「学籍番号・・・の総合得点:」とともにpersonのメンバidとnを表示するプログラムを作成しなさい。
ただし、add_num関数は、data型の構造体person2に受取った内容を格納し、「今回の得点は60点満点で何点ですか?」の質問とともにキーボードによりint型変数cに得点を入力した後、person2のメンバnにcの値を加算し、person2の内容を返すように作成しなさい。

[3] 環境
 [3.1] OS: Windows XP
 [3.2] visual studio 2005
 [3.3] 言語: C
[4] 期限: 12月6日9:30

実行結果例
学籍番号012345の現在の得点:25
今回の得点は60点満点で何点ですか?
45
学籍番号012345の総合得点:70


よろしくお願いします


637:デフォルトの名無しさん
07/12/05 10:54:34
[1] 授業単元:C言語
[2] 問題文
まず、次のメンバを持つ構造体をtypedef宣言を使用し、data型として準備しなさい。
ただし、typedef宣言において構造体タグ名は省略しなさい。
char型の配列変数id(配列サイズ:8)、int型の変数n
main関数では、このdata型の配列変数personを配列サイズ5で宣言する。
続いて、person[0]、person[1]、person[3]、person[3]、person[5]の順にこれらの内容を一つずつadd_num関数に渡し、その都度add_num関数から戻る内容をperson[0]、person[2]・・・に格納する。
その後、5つのperson[i]のメンバidとnを「学籍番号・・・の得点」として表示するプログラムを作成しなさい。
ただし、add_num関数は、data型の構造体person2に受取った内容を格納し、「学籍番号7桁を入力してください。」の質問とともにキーボードによりperson2のメンバidに学籍番号を入力、
また、「今回の得点は何点ですか?」の質問とともにキーボードによりperson2のメンバnに得点を入力し、person2の内容を返すように作成しなさい。

[3] 環境
 [3.1] OS: Windows XP
 [3.2] visual studio 2005
 [3.3] 言語: C
[4] 期限: 12月6日9:30

実行結果例

学籍番号7桁を入力してください。
0123456
今回の得点は何点ですか?
70
学籍番号7桁を入力してください。
0124680
今回の得点は何点ですか?
80
学籍番号0123456の得点:70
学籍番号0124680の得点:80

よろしくお願いします

638:デフォルトの名無しさん
07/12/05 18:11:43
[1] 授業単元:C言語
[2] 問題文
int型の値を変数bで受け取り、次の演算を行ってbの値を返すadd_num関数を作成しなさい。
[add_num関数内の処理]
「今回の得点は60点満点で何点ですか?」と画面表示した後、キーボードからint型変数cに値を入力する。
続いて、変数bにcの値を加算し、bの値を返す。
次に、main関数でint型変数nを値25で初期化し、nの値を「現在の得点:」とともに表示した後、add_num関数にnの値を渡す。そしてadd_num関数が返した値を再び変数nに格納し、nの値を「総合得点:」とともに右のように表示するプログラムを作成しなさい。

[3] 環境
 [3.1] OS: Windows XP
 [3.2] visual studio 2005
 [3.3] 言語: C
[4] 期限: 12月6日9:30

実行結果例
現在の得点:25
今回の得点は60点満点で何点ですか?
(48)
総合得点:73
()はキーボード入力


639:デフォルトの名無しさん
07/12/05 18:15:09
[1] 授業単元:C言語
[2] 問題文
まず、次のメンバを持つ構造体をtypedef宣言を使用し、data型として準備しなさい。
ただし、typedef宣言において構造体タグ名は省略しなさい。
char型の配列変数id(配列サイズ:8)、int型の変数n
main関数では、このdata型の変数personを宣言し、そのメンバidを 012345、nを25として初期化する。
続いて、実行結果に示すように「学籍番号・・・の現在の得点:」とともにpersonのメンバidとnを表示した後、personのメンバnのみの値をadd_num関数に渡す。
さらにadd_num関数から戻る値をpersonのメンバnに格納し、「学籍番号・・・の総合得点:」とともにpersonのメンバidとnを右のように表示するプログラムを作成しなさい。
ただし、add_num関数は、int型の変数bに受取った値を格納し、「今回の得点は60点満点で何点ですか?」の質問とともにキーボードによりint型変数cに得点を入力した後、変数bにcの値を加算し、bの値を返すように作成しなさい。
[3] 環境
 [3.1] OS: Windows XP
 [3.2] visual studio 2005
 [3.3] 言語: C
[4] 期限: 12月6日9:30
実行結果例
学籍番号012345の現在の得点:25
今回の得点は60点満点で何点ですか?
(45)
学籍番号012345の総合得点:70
()はキーボード入力

よろしくお願いします

640:デフォルトの名無しさん
07/12/08 13:48:01
1] プログラミング基礎
[2]• 3×3の2次元配列を用意する.これは外部変
数とする.
• キーボードから任意の実数を9個入力し,順番
に配列にいれる.([0][0]->[0][1]->[0][2]->....)
• その入力データから3×3の配列の縦と横のそ
れぞれの平均(実数)を求め,画面に表示する.
なお,平均を求めるプログラムは関数化するこ
と.(引数は使わないように)
• 入力データ
– 1.1 1.2 1.3 1.4 1.5 ・・・・
[3] 環境
 [3.1] Windows
 [3.2] コマンドプロンプト 秀丸
 [3.3]言語 C
[4]期限 月曜日18:00
[5] よろしくお願いします。


641:デフォルトの名無しさん
07/12/08 14:33:50
[1] 授業単元: コンピュータープログラミング

[2] 問題文
1日目はn円、2日目はn*2円、と前日の倍額を貯金したら何日で1000万円を超えるか?貯金の合計金額は?を計算するプログラムを作成しなさい。ただし、利子は考えないものとする。

[3] 環境
 [3.1] OS:Windows
 [3.3] 言語:C

[4] 期限: 12/14
[5] その他の制限: 可能ならホワイル文使用でお願いします。




642:デフォルトの名無しさん
07/12/08 19:51:24
>>640 出来たYO~
URLリンク(kansai2channeler.hp.infoseek.co.jp)

>>641 longで十分だけどunsigned longにしてみたYO ~
#include<stdio.h>
int main(void){
    unsigned long int n,d;
    d=1;
    printf("1日目の金額:");
    scanf("%d", &n);
    while(n < 100000000){
        n=2*n;
        d=d+1;
    }
    printf("%d日で1000万円を超えます\n",d);
    printf("%d日目の金額%u円",d,n);
    return 0;
    

643:デフォルトの名無しさん
07/12/10 20:44:24
[1] 授業単元: C++
[2] 問題文:以下のような、クラスphdataを作成せよ
・身長(cm)と体重(kg)を格納する変数をもつ
・コンストラクタで、各変数に値を格納させる
・オブジェクトを浮動小数点数に変換した際には、BMI値を返すようにする
そしてmain()関数で、簡単な動作確認を行うこと。

※BMI = 体重(kg) / [身長(m)×身長(m)]
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン:Visual Studio 2005
 [3.3] 言語:C++
[4] 期限: 12/20
[5] その他の制限: なし

644:デフォルトの名無しさん
07/12/10 21:38:24

内容:
[1] 授業単元:c++基礎
[2] 問題文
  1: 1000以下の素数をかぞえるプログラムを作り
     そのプログラムについて実行時間をTIME、timeのそれぞれ方法で測定しなさい。
     ただし、TIME、timeの精度はそれぞれ1桁、2桁とする。また、そのプログラムをコンパイルしたコマンドを用い、
     サンプルプログラムに手を加えてはいけない。つまり、この評価ではプログラムをメモリに読み込む時間も含まれる。
     2つの方法の実行時間を比較し、どちらが早いか答えよ
  2:second.exeの応答時間を測定せよ。なお、有効数字は2桁とする
  3:起動時間を有効数字2桁まで測定するプログラムを作り、1で作ったプログラムの一部(外側のfor文全体)の起動時間を測定せよ
    
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン: Visual Studio 2003
 [3.3] 言語:C++
[4] 期限:[2007年12月12日23:59まで]


645:homoじょあ ◆5OLf4yFnuM
07/12/10 22:13:26
>>643
#include <iostream>
using namespace std;

class phdata{
private:
double height, weight;
public:
phdata(double height, double weight);
operator double();
};

phdata::phdata(double height, double weight){
this->height = height;
this->weight = weight;
}

phdata::operator double(){
return weight*10000/(height*height);
}

int main(){
phdata data(172.5, 75.4);
cout << "BMI:" << (double)data << endl;
return 0;
}


646:homoじょあ ◆5OLf4yFnuM
07/12/10 22:18:24
(・3・) エェー TIMEとtimeって知らないYO
          サンプルてなんだYO

647:664
07/12/11 00:16:39
すいません・・
いろいろとぬけてました
TIME=TIMEコマンド
time=time関数
サンプルプログラム=1000以下の素数を数えるプログラムです

申し訳ございません



648:664
07/12/11 01:31:02
すいません・・あとひとつ
second.exeってのは
@echo off
second.exe
FOR /L %%I IN (1,1,10000) DO A.exe >NUL
second.exe
PAUSE



649:デフォルトの名無しさん
07/12/11 07:56:25
>>645
助かりました、ありがとうございます

650:デフォルトの名無しさん
07/12/11 16:31:53
符号無し整数を左右にシフトした値が、2のべき乗での乗算や除算と等しくなることを確認するプログラムを作成せよ


誰か助けて

651:デフォルトの名無しさん
07/12/11 19:45:52
hoge1 = x >> 1;
hoge2 = x << 1;
hoge3 = x * 2;
hoge4 = x / 2;

hoge1から4をprintfで確認してみてはどうだろう。
xはunsigned int型変数で値は適当で構わない。

652:デフォルトの名無しさん
07/12/11 20:14:14
>>650
たまたまサンプルしたものが一致するだけじゃ「確認」って言わないんだろうな。
やっぱ0から計算できる限界までシフトと乗算、除算が一致することを
全部調べるんだろうね。

653:デフォルトの名無しさん
07/12/12 09:59:40
#include <stdio.h>
#include <limits.h>
int main(void){
  unsigned int i=0;
  while(1){
    if((i<<1)!=(i*2)){
      printf("%uで乗算と左シフトが異なる。\n",i);
      break;
    }
    if((i>>1)!=(i/2)){
      printf("%uで除算と右シフトが異なる。\n",i);
      break;
    }
    if(i==UINT_MAX){
      printf("%uまで同じだと確認した。\n",i);
      break;
    }
    ++i;
  }
  return 0;
}

654:homoじょあ ◆5OLf4yFnuM
07/12/12 22:26:26
>>647-648
(・3・) エェー さっぱりわからないごめんNE

655:デフォルトの名無しさん
07/12/13 13:31:45
[1] 授業単元:C
[2] 問題文):①「ファイル名を受け取って,ファイルが読み込みモードでオープンできれば1を返し,オープンできなければ0を返す」関数 FileExist を作成する.
コマンドラインから入力されたファイルの存在を,関数 FileExist を利用して確認する.
ファイルが存在すればファイルの中身をそのまま表示するプログラムを完成しなさい.
②以下のプログラムをもとにして,次の仕様を満たすプログラムを完成しなさい.
コマンドラインからファイル名を受け取って,読取りモードでオープンすることによりそのファイルの存在を確認する.
シークする位置とシークするバイト数を受け取って,その位置の文字のASCIIコード(10 進数)を表示する.
[3] 環境
 [3.1] OS: Windows 
[3.2] コンパイラ名とバージョン: 任意
 [3.3] 言語: C
[4] 期限: 2007年12月d14日16:00まで
[5] その他の制限: 特になし

656:デフォルトの名無しさん
07/12/13 13:33:59
#include <stdio.h>
#include <stdlib.h>
??????? /* FileExist 関数の定義 */
int main(???????){
FILE *fp;
int ch;
     if (???????){
printf("There is no FILE NAME. \n");
exit(1);}
if (???????) { /* FileExistを利用 */
fp = ???????
while(???????){
putchar(ch);}
???????
}else {
printf("FILE OPEN error. \n");}
return 0;
}
???????
{
FILE *fp;
    if (???????) {
return 0; }
???????
return 1; }



657:デフォルトの名無しさん
07/12/13 13:35:28
#include <stdio.h>
#include <stdlib.h>
int main(???????){
FILE *fp;
long pos;
int i,j;
if (???????) {
printf("USAGE: %s \n", ???????);
exit(1);}
if (???????){
printf("FILE OPEN error: %s \n", ???????);
exit(1);
}else {
printf("Input seek NO. :");
scanf("%ld", &pos);
printf("Input seek BYTES:");
scanf("%d", &j);
         for (i=0; i < j; i++){
if (???????){
printf("seek ERROR. ");
exit(1);}
printf("%d byte: %d \n", i, ???????);}
??????? /* ファイルのクローズ */
}return 0;
}


658:デフォルトの名無しさん
07/12/13 13:36:21
655,656,657の回答お願いします

659:デフォルトの名無しさん
07/12/13 15:49:19
>>656
URLリンク(kansai2channeler.hp.infoseek.co.jp)
>>657
URLリンク(kansai2channeler.hp.infoseek.co.jp)

660:デフォルトの名無しさん
07/12/13 16:09:14
659の人回答サンクス!

661:いときん
07/12/14 16:09:12
よろしくおねがいします。

URLリンク(kansai2channeler.hp.infoseek.co.jp)

96です。

662:いときん
07/12/14 20:36:53
上の補足です。

プログラミングのここをこうしたらもっとうまくいくよ、とかあったら、
訂正もよろしくおねがいします。

もうすこしかえられるとおもうので..

663:デフォルトの名無しさん
07/12/15 09:10:16
661,662です。

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

664:デフォルトの名無しさん
07/12/15 14:54:18
[1] 授業単元:プログラミング
[2] 問題文:n個の数データをキーボードから入力し、最大値と最小値を求めるプログラムを作成しなさい
 [3.1] WindowsXP
 [3.2] コンパイラ名とバージョン: fujitu workbench v4.0L10
 [3.3] 言語: C C++
[4] 期限: 12/21
[5] その他の制限:なし

665:デフォルトの名無しさん
07/12/15 19:05:41
プログラミング基礎
[2]• ファイルから数値データを読み込み,その数値の平均をファイルに書き込むプログラ
ムを作成する
• 数値データは全部で100行(ファイルには実際に100 行以上存在している)
ファイル名: kadai.datとする

• 平均を書き込むファイル名はheikin.dat とする.平均はすべてのデータ(600個)の平
均とする
[3] 環境
 [3.1] Windows
 [3.2] コマンドプロンプト 秀丸
 [3.3]C
[4] 12月17日18時
[5]665のファイルを埋める形式です。よろしくお願いします

666:デフォルトの名無しさん
07/12/15 19:09:06
すみません665のファイルです
include "stdio.h"
/* file_read 関数は【】内を記述する */
double file_read( void )
{
【 】
int i, j;
double data[600];
double heikin;
【 】
for( i=0 ; i<600 ; i+=6 )
{
for( j=0 ; j<6 ; j++ )
【 】
}
for( i=0, heikin=0.0 ; i<600 ; i++ )
{
heikin += data[i];
}

heikin /= 600.0;
printf("heikin -> %lf\n",heikin);
【 】
return heikin;
}

/* file_write 関数の中身を全部記述すること */
void file_write( double heikin )
{
/* ここの中身を記述する */
}


667:デフォルトの名無しさん
07/12/15 19:37:46
URLリンク(viptv.atspace.com)

668:homoじょあ ◆5OLf4yFnuM
07/12/15 21:18:16
>>664
#include <iostream>
#include <vector>
using namespace std;

int main(){
vector<int> data;
while(true){
int num;
cout << "数値を入力:";
cin >> num;
if(num < 0)break;
data.push_back(num);
}
sort(data.begin(), data.end());
cout << "最大:" << data[data.size()-1] << endl;
cout << "最小:" << data[0] << endl;
}

669:デフォルトの名無しさん
07/12/16 19:04:59
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク): URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
 [3.2] コンパイラ名とバージョン: bcc32
 [3.3] 言語: C
[4] 期限: 2007/12/18
[5] その他の制限: 構造体を使う


670:homoじょあ ◆5OLf4yFnuM
07/12/16 20:24:48
>>665
(・3・) エェー 結局100行なのか600行なのかわからんぜYO
          サンプルの読み込みファイルはないかYO
          あと、ソース内によくわからない2重ループがあるんだけど説明ないかNA?

671:homoじょあ ◆5OLf4yFnuM
07/12/16 20:26:06
>>669
(・3・) エェー 構造体の定義どこだお?

672:デフォルトの名無しさん
07/12/16 22:29:40
>>671

struct sdate{
int year;
int month;
int day;
};


673:デフォルトの名無しさん
07/12/17 15:46:26
[1] 授業単元:C
[2] 問題文: 問①以下のプログラムをもとにして,標準入力から受け取った文字を 「2進数表示したもの」と「その補数」を表示するプログラムを作成しなさい.
ビット演算子を用いてプログラムを作成すること.
問②以下のプログラムをもとに,標準入力から0以上の整数を 1 つ受け取り (scanf を用いて整数を符号無し整数型 unsigned 型の変数に読み込む), 8で割った余りを計算するプログラムを作りなさい.
ビット演算子を用いてプログラムを作成すること.
[3] 環境
 [3.1] OS:Windows xp
 [3.2] コンパイラ名とバージョン:任意
 [3.3] 言語: C
[4] 期限: ([2007年12月19日15:00まで]
[5] その他の制限:特になし

674:デフォルトの名無しさん
07/12/17 15:47:11
問①
#include <stdio.h>
#include <stdlib.h>

void printBinary(char);

int main(void)
{
char ch;

printf("Input character: ");
scanf("%c", &ch);
printBinary(???????);
printBinary(???????);

return 0;
}


void printBinary(char x)
{
int i;

for (i= ???????; ???????; i--) {
???????
}
putchar('\n');
}


675:デフォルトの名無しさん
07/12/17 15:49:48
問②
#include <stdio.h>
#include <stdlib.h>
void printBinary2(unsigned);
int shou8(unsigned);int main(void)
{
unsigned n;
printf("Input non-negative integer: ");
scanf("%d", &n);
printBinary2(???????);
printBinary2(???????);
printf("%d %% 8 = %d", n, shou8(n));
return 0;
}void printBinary2(unsigned x){
int i;
for (i = ???????; ???????; i--) {
???????}
putchar('\n');}
int shou8(unsigned x)
{int i, j=1, sum=0;
for (i = ???????; ???????; i++) {
if( ??????? ){
??????? }
j *= 2;
}return(sum);}


676:デフォルトの名無しさん
07/12/17 15:50:32
673 674 675です
回答お願いします

677:homoじょあ ◆5OLf4yFnuM
07/12/18 00:22:29
>>672
(・3・) エェー 関数だけ作ってみた
int preceedp(struct sdate d1, struct sdate d2){
if(d1.year < d2.year){
return 1;
}else if(d1.year == d2.year){
if(d1.month < d2.month){
return 1;
}else if(d1.month == d2.month){
if(d1.day < d2.day){
return 1;
}
}
}
return 0;
}

int succeedp(struct sdate d1, struct sdate d2){
return preceedp(d2, d1);
}

int samedayp(struct sdate d1, struct sdate d2){
if(d1.year == d2.year && d1.month == d2.month && d1.day == d2.day)return 1;
return 0;
}

int compdate(struct sdate d1, struct sdate d2){
if(samedayp(d1, d2))return 0;
if(preceedp(d1, d2))return 1;
return -1;
}

678:homoじょあ ◆5OLf4yFnuM
07/12/18 22:27:24
>>673
void printBinary(char x){
int i;
for(i=8; i>0; i--){
(128 & x) ? putchar('1') : putchar('0');
x = x << 1;
}
putchar('\n');
}

(・3・)1の補数なら引数に「~ch」を渡せばいいお
    2の補数なら引数に「~ch+1」を渡せばいいお

679:homoじょあ ◆5OLf4yFnuM
07/12/18 22:33:53
>>673
(・3・) エェー 時間ないから②はダメぽ

int shou8(unsigned x){
return x - (x >> 3) * 8;
}

680:homoじょあ ◆5OLf4yFnuM
07/12/18 22:34:32
(・3・) エェー 全くビット演算の意味ないよNE

681:homoじょあ ◆5OLf4yFnuM
07/12/18 22:40:35
>>673
(・3・) エェー さすがに酷いから作り直した
          今週の営業は終了致しましたYO
int shou8(unsigned x){
int i, j=1, sum=0;
for (i=0; i<3; i++) {
if( j & x ){
sum += j;
}
j *= 2;
}
return(sum);
}

682:デフォルトの名無しさん
07/12/21 14:57:21
tanθの値を-360<=θ<=360の範囲で1°刻みにプログラムを作成すること。
ただし、tanは、自分で作った関数の中でのみ使用でき、θの値は
mainの中で決定し、関数へと受け渡すこと。
プログラムの中身
-360,○○○
-359,○○○
   ・
   ・
   ・
360, ○○○

このプログラムをお願いします。

683:デフォルトの名無しさん
07/12/21 21:54:20
#include <stdio.h>
#include <math.h>

//円周率(double型の有効桁数までのつもり)
#define PAI (3.141592651389793)

double mytan(double dig)
{
if(fmod(dig+90,180)==0)//ex. 90,270...
{
//求められない
return HUGE_VAL;
}
return tan(dig*PAI/180);
}

int main(void)
{
int dig;
double val;
for(dig=-360;dig<=360;dig++)
{
val=mytan(dig);
printf("%+3d ",dig);
if(val==HUGE_VAL)
printf("エラー");
else
printf("%lf",val);
printf("\n");
}
return 0;
}

684:デフォルトの名無しさん
07/12/21 22:36:47
穴でも掘るのか?

685:デフォルトの名無しさん
07/12/22 00:53:15
中学1年のころの英語の授業の記憶より
"カナダは大きい国です。"を英訳
(正)Canada is a big country.
(誤)Canada is a dig country.

686:デフォルトの名無しさん
07/12/25 13:58:30
[1] 授業単元:C
[2] 問題文(含コード&リンク):A:0からある数値(NUM) までの合計を表示するプログラムを,以下の手順で作りなさい.B:課題A で作成したプログラムを修正して,NUM の値を変化させるプログラムを作成する
[3] 環境
 [3.1] OS: (Windows 
[3.2] コンパイラ名とバージョン: 任意
 [3.3] 言語: C
[4] 期限: ([2008年1月9日まで] [5] その他の制限:

687:デフォルトの名無しさん
07/12/25 14:01:07
問A
ヘッダファイル kadai09a.h を作成し,NUM と関数hyoujiを定義する.
-------------------------------------------------------------
#define NUM 5
extern void hyouji(int, int);
-------------------------------------------------------------
以下のプログラムをもとに,
main関数の部分をソースファイル kadai09a.c に,関数 hyouji の部分をソースファイル kadai09a1.c に分割する.
-------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
void hyouji(int, int);
int main(void)
{
int i, n;
int sum = 0;
printf("Input non-negative integer: ");
scanf("%d", &n);
for (i = 1; i <= n; i++) {
sum += i;}
hyouji(n, sum);
return 0;
}
void hyouji(int k, int m)
{
printf("The sum of 0 to %d : %d\n", k, m);
}
-------------------------------------------------------------
作成した kadai09a.c, kadai09a1.c, kadai09a.h をコンパイルして実行する.

688:デフォルトの名無しさん
07/12/25 14:03:04
ヘッダファイル kadai09b.h を作成し,NUM と関数hyouji と関数sum を定義する.
ただし,NUM は,「マクロNUM が定義されていなければ,NUM=5 」と定義する.
-------------------------------------------------------------
#define NUM 5
extern void hyouji(int, int);
extern int sum(void);
-------------------------------------------------------------
main関数の部分を,ソースファイル kadai09b.c で定義する.
-------------------------------------------------------------
#include <stdio.h> /* おまじない */
#include <stdlib.h> /* おまじない */
int sum(void);
void hyouji(int, int);
int main(void)
{
hyouji(NUM, sum());
return 0;
}
-------------------------------------------------------------
関数sum を,ソースファイル kadai09b1.c で定義する.
-------------------------------------------------------------

#include <stdio.h>
#include <stdlib.h>
int sum(void) {
int i, souwa=0;
for (i = 1; i <= NUM; i++) {
souwa += i;}
}
-------------------------------------------------------------
ここで示したサンプルプログラムでは動かないので,必要最小限の修正をしてプログラムを完成すること

689:デフォルトの名無しさん
07/12/25 15:12:43
【質問テンプレ】
[1] 授業単元:Cプログラミング実習
[2] 問題文(含コード&リンク): VC 6.0の環境で電卓の作成。
(1).加算を行う電卓の作成。(後に四則演算に対応させる)
(2).エディットボックスに数値を入力し演算を行う。
(3).エディットボックスにプラス「+」、マイナス「-」、
スペース「' '」を入力されても演算可能にする。

(補足)
C言語の初心者です。
今、VC 6.0の環境で電卓を作っています。
エディットボックスに数値を入力して計算させるプログラムなのですが
エディットボックスにスペースを入力されても計算出来るようにしたいのですが解りません。
NULL文字をチェックすればよいのか、それとも「isspece」の関数を使って空白文字を
調べればよいか解りません。プラス「+」、マイナス「-」の符合が入力されても
計算出来るようには行えたのですが、どうしても空白(スペース)を入力された場合が、
うまくいきません。以下は作成途中のソースコードです。ここに付け加えるような
コードで教えていただけると助かります。ご指導お願いします。

[3] 環境
 [3.1] OS: Windows XP
 [3.2] コンパイラ名とバージョン:VC 6.0
 [3.3] 言語: C,C++
[4] 期限: 2007年12月25日
[5] その他の制限:クラス使用不可

690:デフォルトの名無しさん
07/12/25 15:14:49
>> 689の作成中のコードです。宜しくお願いします。

// OnButton1() /////////////////////////////////////////////////////////////////////
void CKasanDlg::OnButton1()
{
adding();

char num1[128],num3[128];
int i,length=strlen(&num1[0]);
int numk,numl=0;

m_num3.GetLine( 0, num3 );
numk = sscanf( num3, "%d", &numl );

for( i=0; i<length; i++ ){
isdigit( (int) num1[i] );
}

if(( numk == -1 )){
MessageBox("数値を入力してください。"); // メッセージボックス
}
}


691:デフォルトの名無しさん
07/12/25 19:57:46
>>687
//kadai09a.h
#define NUM 5
void hyouji(int,int);
//kadai09.c
#include "kadai09a.h"
#include <stdio.h>
//#include <stdlib.h>//いらなくね?
int main(void)
{
//mainの内容を記述します。
}
//kadai09a1.c
#include <stdio.h>
void hyouji(int k,int m)
{
printf("The sum of 0 to %d : %d\n", k, m);
}

コンパイラの使い方は誰かに聞け

692:691
07/12/25 20:02:06
すまん。問題よく読んでなかった。
kadai09a.cだけ変えてくれ。

#include "kadai09.c"
int main(void)
{
int i,;
int sum = 0;
for (i = 1; i <= NUM; i++)sum += i;
hyouji(n, sum);
return 0;
}

693:デフォルトの名無しさん
07/12/25 20:09:00
>>688
//kadai09b.h
#ifndef NUM
#define NUM (5)
#endif
void hyouji(int,int);
int sum(void);
//kadai09b.c
#include "kadai09b.h"
int main(void)
{
hyouji(NUM,sum());
return 0;
}
//kadai09b1.c
//NUMを変えるのならここで定義すること
//#define NUM (100)
#include "kadai09b.h"
int sum(void)
{
int souwa=0;
for (i = 1; i <= NUM; i++)souwa+=i;
return souwa
}

694:デフォルトの名無しさん
07/12/26 02:14:56
別スレで答えてもらえなかったので、ここで頼みたいのですが・・
C++
Linux

#include <stdio.h>
#include <math.h>
int x,y;
{
mi(x,y,a);
}

mi(x,y,a)
int x,y;
float a;
{
}
return
}

ルーチンワーク内で、mi(x,y,a)という、
(x,y)にa倍の「み」という文字を表示するコマンドをつくりたいのですが
どうやってつくればよいでしょうか?
1倍の「み」は横幅縦幅ともに50くらいとしておねがいします。
できればforなどの基礎構文で

695:デフォルトの名無しさん
07/12/26 07:33:29
>>694
情報量が少な過ぎ。用件をきっちり書くか、ちゃんとしたサンプルを提示してくれ。

696:デフォルトの名無しさん
07/12/26 12:58:48
>>695
宿題で、「み」という文字をウインドウにアニメーション的に表示する
プログラムをつくる(これしか言われてないです・・)というのがでたので、
mi(x,y,a)というコマンドを用意したいのですが、どうすればいいかわからなくて。
最近やっと、for文をつかったアニメーションのつくりかたを習ったばかりという
レベルです。

697:デフォルトの名無しさん
07/12/26 13:06:49
for文をつかったアニメーションのつくりかたって何だ

698:デフォルトの名無しさん
07/12/26 14:38:31
>>697
えと、
for(i=0;i<=100;i++)
{
x=10*i,y=100-10*i
ginit();
mi(x,y);
draw();getchar();
}
という感じなのですが、一般的じゃないんですか?

699:デフォルトの名無しさん
07/12/26 18:57:00
必要そうな関数を使い方なども含めて全部説明してくれ。
この質問はMS-DOSユーザに対して、Windowsのプログラム作ってくれってなぐらいに厳しいぞ。

700:デフォルトの名無しさん
07/12/27 03:59:41
静止画からの(複数)顔検出率95%以上のプログラムをください(><)

701:デフォルトの名無しさん
07/12/27 05:01:48
>>699
ginit()    window画面を出す
line(x1,y1,x2,y2)   (x1,y1)と(x2y2)を結ぶ線分を描く
circle(x,y,r) (x,y)を中心とする半径rの円を書く
くらいしか使えないのですが、これで「み」をかけますかね?

702:デフォルトの名無しさん
07/12/27 10:55:16
lineでベクトル的に書く

703:デフォルトの名無しさん
07/12/27 17:10:06
取り敢えずこんなもんかな。
--
static int conv(int xy, int a, int oxy, int dxy) {return xy + (oxy + dxy) * a;}
void mi(int x, int y, int a)
{
const int ox = 0;
const int oy = -50;
static const struct point {
int x;
int y;
} points[] = {
{10, 0}, {20, 0}, {10, 50}, {0, 40}, {10, 30}, {50, 30},
{-1, -1}, {40, 20}, {40, 50}, {-1, -1},
};
for (int ic = 0; ic < sizeof(points) / sizeof(* points); ++ic) {
if (points[ic].x >= 0 && points[ic + 1].x >= 0) {
line(conv(x, a, ox, points[ic].x), conv(y, a, oy, points[ic].y),
conv(x, a, ox, points[ic + 1].x), conv(y, a, oy, points[ic + 1].y));
}
}
}

int main()
{
mi(100, 100, 2);
return 0;
}

704:デフォルトの名無しさん
08/01/02 15:09:08
ぼるじょあさんあけおめ

705:ぼるじょあ ◆yBEncckFOU
08/01/02 15:24:56
(・3・) 新年明けましておめでとうございます
     本年もご愛顧の程よろしくお願いしますYO!

706:デフォルトの名無しさん
08/01/07 15:46:41
[1] 授業単元:C
[2] 問題文 URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: Windows 
[3.2] コンパイラ名とバージョン: 任意
 [3.3] 言語: C
[4] 期限: 2007年1月8日16:00まで
[5] その他の制限: 特になし


707:デフォルトの名無しさん
08/01/07 15:51:04



708:デフォルトの名無しさん
08/01/07 15:52:47
>>706続き
URLリンク(kansai2channeler.hp.infoseek.co.jp)
問題2つあって長文ですが回答お願いします

709:homoじょあ ◆5OLf4yFnuM
08/01/07 19:39:04
(・3・) エェー あけましておめでとうございまSU
          本年もよろしくお願い致しますYO


>>706
(・3・) エェー 新年1発目だYO
URLリンク(kansai2channeler.hp.infoseek.co.jp)

710:デフォルトの名無しさん
08/01/09 02:41:39
>>156
自己満足な上にc++だけど。

URLリンク(blog38.fc2.com)

711:名無し
08/01/09 21:24:21
[1] 授業単元: プログラム
[2] 問題文:複数の整数の平均・分散を求めるプログラムを作成せよ。ただし、平均・分散ともに
小数点第3位以下を切り捨て、小数第2位まで求めるものとする
 入力に関して
キーボードからまず、入力する整数の個数を入力し(最大でも100とする)改行する
次に指定した数の整数をスペース1つずつ開けて1行で入力するものとする
この時、入力を促す文字等は表示しないこと
 出力に関して
1行目に平均(+改行)、2行目に分散(+改行)を数値のみ出力する。
指定した数値・改行以外の文字等の出力は一切行わない事
[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン:わかりません
 [3.3] 言語: C
[4] 期限: 2008年1月10日10:00まで
[5] その他の制限: 特になし
よろしくおねがいします


712:名無し
08/01/09 22:05:32
[1] 授業単元: プログラム
[2] 問題文:複数の数値に対する最大公約数を求める関数を作成し、それを利用するプログラムを作成せよ
関数は下記の通り
int gcm(int*in,int num)
in  入力値が格納された配列のポインタ
num  入力値の数
戻り値 入力値の最大公約数

入力に関して、キーボードから、入力値をスペース1つ開けて1行で入力する
この時、入力を促す文字等は表示しないこと

出力に関して、結果+改行のみ出力。指定した数値・改行以外の文字等出力は行わない
[3] 環境
 [1] OS:XP
 [2] コンパイラ名とバージョン:わかりません
 [3] 言語: C
[4] 期限: 2008年1月10日10:00まで
[5] その他の制限: 特になし
またまたおねがいします。


713:デフォルトの名無しさん
08/01/09 22:30:25
>>711
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

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

double StandardDeviation(int count,int data[])
{
double av,variance;
int i;
variance=0;
av=Average(count,data);
for(i=0;i<count;i++)variance+=((data[i]-av)*(data[i]-av));
variance/=count;
return sqrt(variance);
}


714:デフォルトの名無しさん
08/01/09 22:31:13
int main(void)
{
char buf[1024],*szStrPtr;
int i,count,data[100];
gets(buf);
count=atoi(buf);
if(count>100){printf("最大で100までゆうただろうが!\n");return 1;}
szStrPtr=buf;
gets(buf);
for(i=0;i<count;i++)
{
char *endptr;
data[i]=strtol(szStrPtr,&endptr,10);
if((*endptr)=='\0' && i!=(count-1)){printf("きちんと入力できてないでー\n");return 1;}
szStrPtr=endptr+1;
}
printf("%.2f\n%.2f\n",floor(Average(count,data)*100)/100,floor(StandardDeviation(count,data)*100)/100);
return 0;
}

715:ぼるじょあ ◆yBEncckFOU
08/01/09 22:37:37
>>711
(・3・) エェー やっとでけたYO!
#include<stdio.h>
#include<math.h>

int main(void)
{
int i, value_num, value;
double total=0.0, total_2=0.0, ave, dev;

scanf("%d", &value_num);
if(value_num<=0) return 1;

for(i=0;i<value_num;i++)
{
scanf("%d", &value);
total+=value;
total_2+=value*value;
}
ave=total/value_num;
dev=(total_2-total*ave)/value_num;
printf("%.2f\n", floor(ave*100)/100);
printf("%.2f\n", floor(dev*100)/100);

return 0;
}

716:名無し
08/01/09 22:37:52
>713、714さん
ありがとうございます。助かりました。

717:名無し
08/01/09 22:44:39
>715さん
ありがとうございます

718:ぼるじょあ ◆yBEncckFOU
08/01/09 23:06:48
>>712
#include<stdio.h>
#include<stdlib.h>

int gcd(int *in, int num){
int a, b, c, i;

if(num<=0) return -1;
b=in[0];
for(i=1;i<num;i++){
a=in[i];
if(b<=0) return -1;
while((c=a%b)) a=b,b=c;
}
return b;
}

int main(void){
int *data=NULL, datanum=0;
char buf[20+1];

for(;;){
fscanf(stdin, "%*[ ]");
if(fscanf(stdin, "%1[\n]", buf)==1) break;
if(fscanf(stdin, "%20[0-9]", buf)!=1) return 1;
data=realloc(data, sizeof(*data)*(datanum+1));
data[datanum++]=atoi(buf);
}
printf("%d\n", gcd(data, datanum));
free(data);
return 0;
}

719:デフォルトの名無しさん
08/01/10 22:33:56
[1] 授業単元: プログラミング入門
[2] 問題文: URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:UNIX
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C言語
[4] 期限:明日まで
[5] その他の制限:特になし
よろしくお願いします。


720:デフォルトの名無しさん
08/01/10 23:09:50
>>719
ソートが気に食わなかったら書き換えて
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>

int main(int argc,char *argv[])
{
char buf[1024];char *ptr;
if(argc<=1){puts("コマンドライン例\n% printchar u\n% printchar l\n% printchar r\n% printchar s");return 0;}
gets(buf);
switch(tolower(*(argv[1])))
{
case 'u':
for(ptr=buf;*ptr;ptr++)*ptr=toupper(*ptr);
break;
case 'l':
for(ptr=buf;*ptr;ptr++)*ptr=tolower(*ptr);
break;
case 'r':
for(ptr=buf;*ptr;ptr++)*ptr=(islower(*ptr)?toupper(*ptr):tolower(*ptr));
break;
case 's':
qsort(buf,strlen(buf),1,(int(*)(const void *,const void *))strcmp);
break;
default:puts("コマンドライン例\n% printchar u\n% printchar l\n% printchar r\n% printchar s");return 0;
}
puts(buf);
return 0;
}

721:デフォルトの名無しさん
08/01/12 14:08:37
ごみじょあ

722:デフォルトの名無しさん
08/01/12 15:28:07
[1] 授業単元:C言語
[2] 問題文:構造体としてT1時T1分T1秒とT2時T2分T2秒をキーボードから入力し、
経過時間を求め、表示するプログラムを作成しなさい。但し、秒は実数型とする
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:fujitsu workbench
 [3.3] 言語:C
[4] 期限:1月16日16:00
[5] その他の制限:T1=7時25分12.33秒 T2=12時3分27.55秒.時間は24時間60分60秒で
それ以上はNGで安全装置を働かせる


723:デフォルトの名無しさん
08/01/12 16:05:17
マルチすんなボケ

724:デフォルトの名無しさん
08/01/17 21:49:34
[1] 授業単元:CプログラミングⅠ
[2] 問題文(含コード&リンク): URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:分かりません
 [3.3] 言語:C++
[4] 期限:1月18日 00:00
[5] その他の制限:特にありません.
よろしくお願いいたします.

725:デフォルトの名無しさん
08/01/17 22:52:44
くそじょあ

726:デフォルトの名無しさん
08/01/17 23:16:12
>>724
こんなあんばいでどう?
テストしてないけど。

//穴1
typedef struct _Animal
{
int id;
char name[23];
int show[5];
int show_sum;
int show_prev;
int show_disp_total;
}Animal;

//穴2
for(i=0;i<n;i++)
{
s[i].show_sum=0;
for(j=0;j<5;j++)s[i].show_sum+=s[i].show[j];
s[i].show_disp_total=s[i].show_sum+s[i].show_prev;
tmp_total+=s[i].show_disp_total;
}

727:デフォルトの名無しさん
08/01/17 23:38:51
>>726
おかげさまでエラーもなく実行することができました!
本当に感謝します,ありがとうございました!

728:デフォルトの名無しさん
08/01/18 22:05:06
[1] 授業単元:CプログラミングⅠ
[2] 問題文(含コード&リンク): URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:分かりません
 [3.3] 言語:C++
[4] 期限:2008年1月19日 09:00
[5] その他の制限:特にありません
よろしくお願いします!


729:デフォルトの名無しさん
08/01/18 23:07:26
マルチばっかりじゃないか・・・

730:デフォルトの名無しさん
08/01/19 04:31:01
>>728
URLリンク(kansai2channeler.hp.infoseek.co.jp)

731:デフォルトの名無しさん
08/01/19 08:09:40
>>730
ありがとうございました!

732:デフォルトの名無しさん
08/01/20 14:08:43
学校の課題でC++のクラスについての問題が出たのですが、まず以下のような
データファイルを用意した上で、そこからデータを読み出して、別ファイルに
標準体重の人の血液型と名前を出力するというものなんです。ファイルの読み出しまでは分かるのです
がその後が分かりません。アドバイスお願いします。

*標準体重・・・指数k(平均体重÷(平均身長ー100)を設定し、各々(身長ー100)*kの理想体重に対して97~103%の間に入っていること。


<データファイル>
一行目   人数
二行目以降 名前 血液型 身長 体重



733:デフォルトの名無しさん
08/01/20 16:46:50
テンプレ嫁

734:デフォルトの名無しさん
08/01/20 23:00:29
1] 授業単元: プログラミング
[2] 問題文: URLリンク(sasa.cis.ibaraki.ac.jp) の必須課題1と2
[3] 環境
 [3.1] OS:UNIX
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C言語
[4] 期限:2008/01/21まで
[5] その他の制限 二重ポインタを使わないで
         非再帰でお願いします

735:デフォルトの名無しさん
08/01/20 23:14:23
>>734
PDFはやめて。

736:デフォルトの名無しさん
08/01/21 00:43:00
Cプログラマ必須テキスト!

URLリンク(mori.eco.to)

737:デフォルトの名無しさん
08/01/21 01:26:20
 何度目だ?Cプログラマ必須テキスト!

738:デフォルトの名無しさん
08/01/21 16:00:55
v

問7
キーボードから実数を一つ入力
させ、それを x に代入する。

x ≦ 100 のとき「A」、
100 < x ≦ 350 のとき「B」、
350 < x ≦ 600 のとき「C」、
600 < x     のとき「D」

と表示するプログラム
@
わかんないです。
C言語プログラミング
、C-pad?? lcpad使ってます。


739:デフォルトの名無しさん
08/01/21 16:05:03
[1] C言語
[3] [3.1] OS: Windows XP
  [3.2] コンパイラ名とバージョン: わかりません
  [3.3] 言語: C言語
[4] 期限: 1月24日木曜日
[2] 問題文(含コード&リンク):
問2
4個の変数
  a 整数
  b 実数
  c 精度の高い実数
  d 文字
を宣言し、それぞれに適当なデータを代入する。
そして次のように画面表示するプログラム
a の値は ... です
b の値は ... です
c の値は ... です
d の値は ... です

問3
37から229までの整数を加算しその結果を表示するプログラム

お願いします!!

740:デフォルトの名無しさん
08/01/21 16:06:14
続きです。
問4
x = 0 から出発し、x の値を0.001 づつ増加させることを繰り返し、 
x^2 + 7x - 1 の値が初めて正となった時点で繰り返しを終了し、
そのときのx の値を表示するプログラム

問5
キーボードから整数を入力させその数を x に代入する。
x が 100 より大きいとき、
「入力した数は 100 より大きい」と表示し、x が 100 以下のとき、
「入力した数は 100 以下です」と表示するプログラム

問6
キーボードからアルファベット
を1文字入力させ、それが
「a」のとき、「a です」
「b」のとき、「b です」
「c」のとき、「c です」
「d」のとき、「d です」
「e」のとき、「e です」
と表示し、それ以外のとき「a,b,c,d,e 以外の文字」と表示するプログラム


741:デフォルトの名無しさん
08/01/21 16:06:45
問7
キーボードから実数を一つ入力させ、それを x に代入する。
x ≦ 100 のとき「A」、
100 < x ≦ 350 のとき「B」、
350 < x ≦ 600 のとき「C」、
600 < x     のとき「D」と表示するプログラム

問8
1 + 4 + 9 + 16 + ・・・と加えて行き、
和が初めて 10000を超えたとき、
その和の値、および最後に加えた数を求めて表示するプログラム

問9
次に書かれた数の総和を求め、結果を表示するプログラム:
1
1+2
1+2+3
1+2+3+4
 ・
 ・
 ・
1+2+3+4+5+・・・+ 10

問10
縦 100m、横 120mのグランドがある。
縦横それぞれ同じ長さ x だけ長くして面積が 13000㎡ となるようにしたい。
x を少数点以下1桁までの精度で求めるプログラム。

こんな感じです。お願いします!!




742:デフォルトの名無しさん
08/01/21 16:13:20
一問くらいやれよ

743:デフォルトの名無しさん
08/01/21 18:23:25
問10だけ
なぜこれで答えがでるかは自分で考えてくれ。

#include<stdio.h>
#include<math.h>

int main(void)
{
double x,temp;
temp=-110+10*sqrt(131.0);//二次方程式:x~2+220x-1000=0…(x>0)の解を代入
x=floor(temp*10+0.5)/10;//解の少数第2位で四捨五入
printf("約%.1f[m]伸ばせばよいぞ、雑種。\n",x);
return 0;
}

744:デフォルトの名無しさん
08/01/21 20:27:07
>>739
問2
#include<stdio.h>
int main(void)
{
    int a; /* 整数 */
    float b; /* 実数 */
    double c; /* 精度の高い実数 */
    char d; /* 文字 */
    a = 2008;
    b = 3.14159;
    c = 1.60217733E-19;
    d = 'A';
    printf("a の値は %d です\n", a);
    printf("a の値は %f です\n", b);
    printf("a の値は %G です\n", c);
    printf("a の値は %c です\n", d);
    return 0;
}

745:デフォルトの名無しさん
08/01/21 20:36:30
>>739
問3
#include<stdio.h>
int main(void)
{
    int i, sum = 0;
    for(i = 37; i<=229; i++){
        sum+=i;
    }
    printf("37から229までの整数の合計は%d\n",sum);
    return 0;
}

問4
#include<stdio.h>
int main(void)
{
    double x = 0;
    while( x*x + 7*x - 1 < 0){
        x+=0.001;
    }
    printf("x = %g\n",x);
    return 0;
}

746:デフォルトの名無しさん
08/01/21 20:51:37
>>740
問5
#include<stdio.h>
int main(void)
{
    int x;
    printf("整数を入力して下さい:");
    scanf("%d", &x);
    if(x > 100){
        printf("入力した数は 100 より大きい\n");
    }else{
        printf("入力した数は 100 以下です\n");
    }
    return 0;
}

747:デフォルトの名無しさん
08/01/21 20:52:30
>>740
問6
#include<stdio.h>
int main(void){
    char x;
    printf("1文字入力して下さい : ");
    scanf("%c", &x);
    if(x == 'a'){
        printf("a です\n");
    }else if(x == 'b'){
        printf("b です\n");
    }else if(x == 'c'){
        printf("c です\n");
    }else if(x == 'd'){
        printf("d です\n");
    }else if(x == 'e'){
        printf("e です\n");
    }else{
        printf("a,b,c,d,e 以外の文字\n");
    }
    return 0;
}

748:デフォルトの名無しさん
08/01/21 20:54:33
>>741
問7
#include<stdio.h>
int main(void){
    double x;
    printf("実数を入力して下さい。: ");
    scanf("%lf", &x);
    if(x <= 100){
        printf("A\n");
    }else if(x <= 350){
        printf("B\n");
    }else if(x <= 600){
        printf("C\n");
    }else{
        printf("D\n");
    }
    return 0;
}

749:名無し
08/01/21 21:10:09
[1] 授業単元: Cプログラミング
[2] 問題文(含コード&リンク): 円周率を求めるプログラムを作成せよ。
1.rand()関数を用いて0~1のx座標、y座標を生成する。
2.原点との距離を求め、座標が半径1の円内かどうか調べ、円内である場合、円外である場合をそれぞれカウントする。
3.以上を指定回数分繰り返し、半径1の円内である確率がπ/4であることからπを求める。

・入力に関して、キーボードから繰り返し回数を入力する。(上限はint型の最大値(実際には最大値を入れると膨大な時間がかかるので
テストは1分程度で終了する値でよい)
・出力に関して、結果(求めた円周率)のみを浮動小数点(double型を%1f)で出力(+改行)

[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン:わからないです
 [3.3] 言語: C
[4] 期限: 2008年1月23日12:00まで
[5] その他の制限:StudyCを使ってます。よろしくお願いします

750:デフォルトの名無しさん
08/01/21 21:16:05
>>741
問8
#include<stdio.h>
int main(void){
    int i=1,sum=0,x;
    while(sum < 10000){
        x = i*i;
        sum+=x;
        i++;
    }
    printf("和 = %d、最後に加えた数 = %d\n",sum,x);
    return 0;
}

751:デフォルトの名無しさん
08/01/21 21:26:39
>>741
問9
#include<stdio.h>
int main(void){
    int i,j,sum;
    for(i = 1;i <=10; i++){
        sum =0;
        for(j=1; j<= i;j++){
            if(j>1){
                    printf("+");
            }
            printf("%d", j);
            sum+=j;
        }
        printf("=%d\n",sum);
    }
    return 0;
}

752:デフォルトの名無しさん
08/01/21 21:51:55
>>749
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<math.h>

int main(void)
{
    int i,n,f;
    double x,y,r,pi;
    srand(time(NULL));
    
    printf("繰り返し回数を入力:");
    scanf("%d",&n);
    f=0;
    for(i=0;i<n;i++){
        x=(double)rand()/RAND_MAX;
        y=(double)rand()/RAND_MAX;
        r=sqrt(x*x+y*y);
        if(r<=1){ f++; }
    }
    pi = (double)f/n*4;
    printf("%1f\n",pi);
    return 0;
}

753:名無し
08/01/21 23:24:04
[1] 授業単元: Cプログラミング
[2] 問題文(含コード&リンク): 英文の文字列を入力した場合、文字数・単語数・文章数を求めるプログラムを作成せよ。
英文中の特殊文字は(, . ! ?)のみとする。単語の間には1つ以上(2つ以上でも可)のスペースが入るものとする。
文章の最後には必ず. ! ?のどれかが単独で使われる。
,や. ! ?の後に入る可能性があるが前にはスペースは入らないものとする。省略につかう.は今回ないものとする。

入力に関して:キーボードから、文字列を1行で入力する
出力に関して:文字数・単語数・文章数をそれぞれスペース1つあけて1行で出力(+改行)

[3] 環境
 [3.1] OS:XP
 [3.2] コンパイラ名とバージョン:わからないです
 [3.3] 言語: C++
[4] 期限: 2008年1月23日12:00まで
[5] その他の制限:StudyCを使ってます。よろしくお願いします。


754:名無し
08/01/21 23:30:50
>>752さん

749の問題を書き込んだものですがRAND_MAXのところがエラー表示されます。
申し訳ありませんがもう一度確認してもらってよろしいでしょうか。

755:デフォルトの名無しさん
08/01/21 23:56:35
>>754
URLリンク(www.orchid.co.jp)

756:デフォルトの名無しさん
08/01/22 00:24:46
2つの整数を入力して、その2つの整数の最大公約数と、
最小公倍数を求めるプログラムを作りなさい。

このプログラムをお願いします。


757:デフォルトの名無しさん
08/01/22 00:47:11
>>756
マルチは死ね

758:デフォルトの名無しさん
08/01/22 01:07:51
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):

1からNまでの和を求めよ。
1からNの総和を求める関数をint wa(int N)として定義せよ。
(注)WIN32コンソールアプリケーションで、Nの値をキーボードより入力。

#include <stdio.h>

int wa(N);
{
int i, sum = 0;
for(int i=1, i<=N, i++) Sum+=i;
}

int main(void)
{

}

※ これを参考に作成するのですが、イマイチ分かりません
[3] 環境
 [3.1] OS: (Windows)
 [3.2] コンパイラ名とバージョン: (".NET 2003")
 [3.3] 言語: (C++)
期限は特にありませんので、宜しくお願いします。

759:デフォルトの名無しさん
08/01/22 01:19:25
#include <stdio.h>

int wa(int N);
{
int i, sum = 0;
for(int i=1, i<=N, i++) Sum+=i;
}

int main(void)
{
int n;
scanf("%d",&n);
printf("%d\n",wa(n));
return 0;
}


760:デフォルトの名無しさん
08/01/22 01:50:09
>>759
ありがとうございます。
しかし、.NET 2003環境で

#include <stdafx.h>
#include <stdio.h>

int wa(int N);
{
int i, sum = 0;
for(int i=1, i<=N, i++) Sum+=i;
}

int main(void)
{
int n;
scanf("%d",&n);
printf("%d\n",wa(n));
return 0;
}
このようなエラーが出てしまします。
error C2447: '{' : 対応する関数ヘッダーがありません。旧形式の仮引数リストの可能性があります。

{の対応は間違っているようには見えないのですがうまくいきません。

761:デフォルトの名無しさん
08/01/22 01:56:32
for文は for(int i=1, i<=N, i++) じゃなくて
for(int i=1; i<=N; i++) こうだろう

Sumもなんでか大文字になってるし、
wa関数に return sum; もない

762:デフォルトの名無しさん
08/01/22 02:12:15
>>761
ありがとうございます。
for文ご指摘のとうりでした
直して見たのですが、やはり

error C2447: '{' : 対応する関数ヘッダーがありません。旧形式の仮引数リストの可能性があります。

とでてしまいます。>< お時間ありましたらもう少しおつきあい下さいませ。

#include <stdafx.h>
#include <stdio.h>

int wa(int N);
{
int i, sum = 0;
for(int i=1; i<=N; i++) sum+=i;
return sum;
}


int main(void)
{
int n;
scanf("%d",&n);
printf("%d\n",wa(n));
return 0;
}


763:デフォルトの名無しさん
08/01/22 03:47:25
int wa(int N);  ←なにこのセミコロンw

764:ラッセン沖縄
08/01/22 09:42:41
[1]授業単元 プログラミングB
[2]問題文 次の仕様を満たし、入力例の通りにして実行でき、更に、出力例の通りに出力されるようなCプログラムを作成せよ。(出力の空白や桁数にも留意せよ。)


 仕様 三角形の底辺と高さ入力し、その面積を求める。

 入力例    Z:\>(kadai)
 (カッコ内を 底辺=(3.0)
   入力する)高さ=(4.5)


出力例* ----+----|----+----|----+----|----+----|----+----|
底辺=3.000, 高さ=4.500
面積=6.7500

(*目盛りは桁を示すためのもの。プログラムで出力するのではない。)


よろしくお願いします。

765:デフォルトの名無しさん
08/01/22 10:06:11
>>763
あ、ほんとだ!
ありがとうございます。コンパイル成功しました。
でも、動かない。。
プロンプト起動後に数値入力→Enter
すると終了してしまいます><

#include <stdafx.h>
#include <stdio.h>


int wa(int N)
{
int i, sum = 0;
for(int i=1; i<=N; i++) sum+=i;
return sum;
}


int main(void)
{
int n;
scanf("%d",&n);
printf("%d\n",wa(n));
return 0;
}


766:デフォルトの名無しさん
08/01/22 13:47:11
>>756
#include<stdio.h>
main(){
int a,b,x,y,gcd,lcm;
printf("1つ目の整数を入力して下さい:"); scanf("%d", &x);
printf("2つ目の整数を入力して下さい:"); scanf("%d", &y);
if(x>y){a = x; b = y;}
else{a = y; b = x;}
while(b > 0){gcd = a%b; a = b; b = gcd;}
gcd = a; lcm = x*y/gcd;
printf("%dと%dの最大公約数は%d、最小公倍数は%d\n", x, y, gcd, lcm);
}

767:デフォルトの名無しさん
08/01/22 15:09:47
>743,744,745,746,747,748,750,751
ありがとうございます。
あの、問6の問題なんですが、
switchの構文で作ってもらうことできますか?

768:デフォルトの名無しさん
08/01/22 15:14:28
問6
#include<stdio.h>
int main(void){
    char x;
    printf("1文字入力して下さい : ");
    scanf("%c", &x);
    switch(x){
    case 'a':
    case 'b':
    case 'c':
    case 'd':
    case 'e':
        printf("%c です\n", x);
        break;
    default:
        printf("a,b,c,d,e 以外の文字\n");
    }
    return 0;
}

769:デフォルトの名無しさん
08/01/22 15:17:11
>>768
ありがとうございます。
すごく助かりました。

770:デフォルトの名無しさん
08/01/23 00:37:23
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:1/24
[5] その他の制限:

771:デフォルトの名無しさん
08/01/23 00:53:51
>>765
それは正常に動いてる。 処理が終わったから窓を閉じただけ。
実行後も見たいなら、ファイル名を指定して実行から cmd と打てば
コマンドラインが出るから、そこに実行ファイルドラッグするなりして
再度実行してみればいいと思うよ

772:名無し
08/01/23 01:17:06
[1] 授業単元: Cプログラミング
[2] 問題文(含コード&リンク):
(1)複数の整数を降順(大きい順)にソートするプログラムを作成せよ


入力に関して:キーボードから、入力する整数の個数を入力(最大で10とする)し、次に指定した数の整数をスペース1つ開けて1行で入力するものとする。
このとき、入力を促す文字は表示しないこと。

出力に関して:ソートした整数をスペース1つのみあけて1行で出力する(+改行)。
指定した数値・改行以外の出力は一切行わない事。
久々のROに戸惑い中@緋月とーま の発言:
(2)数値を表示して最大値の回答をチェックするプログラムを作成せよ

 入力1に関して:キーボードからまず、表示する整数の個数を入力(最大で10とする)する。
この時、入力を促す文字は表示しないこと。
 出力1に関して:rand()関数を用いて0~100までのランダムな整数を、入力1の数だけ生成して表示する。
指定した数値・改行以外の出力は一切行わない事。

 入力2に関して:続いてキーボードから、表示された数値のうち最大のものを選び(間違えても構わない)その数値を入力する
このとき、入力を促す文字は表示しないこと。
 出力2に関して:入力2の値が正解なら1を、間違っていれば0を出力する(+改行)。
指定した数値・改行以外の出力は一切行わない事。
[3] 環境
 [3.1] OS:XP
 [3.2] コンパイラ名とバージョン:わからないです
 [3.3] 言語: C
[4] 期限: 2008年1月24日10:30まで
[5] その他の制限:StudyCを使ってます。2問あるんですが、よろしくお願いいたします。


773:デフォルトの名無しさん
08/01/23 11:40:10
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク): 2次方程式 ax^2 + bx + c = 0について、a,b,cをキーボードから入力して解を求めるプログラムを作成せよ。
a=0を入力を入力するまでは繰り返し計算を行うようにする
平方根の計算も必要です

[3] 環境
 [3.1] OS: windowsXP [3.2] コンパイラ名とバージョン:VC2005
 [3.3] 言語: C++
[4] 期限: 今週中におねがいします。できれば早く。

初歩的ですいません。

774:デフォルトの名無しさん
08/01/23 12:48:38
>>773
そんなの機械系学科の俺でも習ったぞ?

775:デフォルトの名無しさん
08/01/23 12:48:44
>久々のROに戸惑い中@緋月とーま の発言:
うーむ……

776:デフォルトの名無しさん
08/01/23 16:52:17
>>772
>久々のROに戸惑い中@緋月とーま の発言

ここがよくわからん。もう少しくやしく。

777:名無し
08/01/23 18:31:07
776さん>>久々のROに戸惑い中@緋月とーま の発言
これはもうムシしてください。へんな文章入れて申し訳ないです。

778:デフォルトの名無しさん
08/01/23 18:58:15
>>773
#include <iostream>
#include <math.h>
using namespace std;
int main(void)
{
double a,b,c,d;
cout << "a=";cin >> a;
cout << "b=";cin >> b;
cout << "c=";cin >> c;
d=b*b-4*a*c;
if(d==0)
{
double x;
x=-b/(2*a);
cout << "x=" << x << endl;
}
else if(d>0)
{
double x1,x2;
x1=(-b+sqrt(d))/(2*a);x2=(-d-sqrt(d))/(2*a);
cout << "x1=" << x1 << "\nx2=" << x2 << endl;
}
else
{
double xa,xb;
xa=-d/(2*a);xb=sqrt(-d)/(2*a);
cout << "x1=" << xa << "+" << xb << "i\nx2=" << xa << "-" << xb << "i" << endl;
}
}

779:デフォルトの名無しさん
08/01/23 19:18:59
久々のROに戸惑い中@緋月とーま の発言:

780:デフォルトの名無しさん
08/01/23 21:40:24
タコじょあ

781:ぼるじょあ ◆yBEncckFOU
08/01/23 21:59:54
>>770

#include<stdio.h>
#define num 10/* (・3・)エェー 等号とセミコロンはいらないYO */
int i;
double data[num]={ 173.8,168.2,180.3,166.0,189.7,167.4,159.8,170.5,167.5,167.4};/* (・3・)エェー セミコロン付いてないYO */

int main(void)
{
for(i=1;i<=num;i++){
int max=i,j;/* (・3・)エェー 変数maxとjが宣言されて無いYO */
for(j=i+1;j<=num;j++)/*最大の要素の場所を捜す*/
if (data[max]<data[j])max=j;
data[i]=data[max];data[max]=data[i];/*入れ換え*/
}
for(i=1;i<=num;i++)printf("%7.1f ",data[i]);
return 0;
}

782:ひかり ◆d0B/bjbQYo
08/01/23 22:25:04
#include<stdio.h>
#define num (10)//セミコロンとかいらん
double data[num]={ 173.8,168.2,180.3,166.0,189.7,167.4,159.8,170.5,167.5,167.4};/*セミコロン付けな*/
int main(void)
{
int i,j,max;/*変数宣言しとけ*/
double temp;/*入れ替え時に使用*/
for(i=0;i<=num-1;i++)/*配列の添え字は[0]から[num-1]まで*/
{
max=i;
for(j=i;j<=num-1;j++)/*[i]から[num-1]まで*/
if (data[max]<data[j])max=j;
temp=data[i];/*tempを利用する*/
data[i]=data[max];
data[max]=temp;/*tempから書き込む*/
}
for(i=0;i<=num-1;i++)printf("%7.1f ",data[i]);/*配列の添え字は[0]から[num-1]まで*/
puts("");/*最後、改行するためになんとなく*/
return 0;
}

783:デフォルトの名無しさん
08/01/23 23:09:48
[1] 授業単元: programming1
[2] 問題文(含コード&リンク): URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: Unix
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: C
[4] 期限: 2008年1月24日21:00まで
[5] その他の制限: 特にありません

よろしくお願いします。




784:デフォルトの名無しさん
08/01/23 23:23:25
>>781>>782
ありがとうございます!

785:デフォルトの名無しさん
08/01/23 23:48:46
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:1/26
[5] その他の制限:なし

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

786:homoじょあ ◆5OLf4yFnuM
08/01/24 00:42:23
>>772
#include <stdio.h>

int main(void){
int n, num[10], i, k;
scanf("%d", &n);
if(n > 10)return 0;
for(i=0; i<n; i++)scanf("%d", &num[i]);)
for(i=0; i<n-1; i++){
for(k=i+1; k<n; k++){
if(num[i] < num[k]){
int swap = num[i];
num[i] = num[k];
num[k] = swap;
}
}
}
for(i=0; i<n; i++)printf("%d ", num[i]);
printf("\n");
return 0;
}


787:homoじょあ ◆5OLf4yFnuM
08/01/24 00:43:29
>>772
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(void){
int n, in, max = -1, i;
scanf("%d", &n);
if(n > 10)return 0;
srand((unsigned)time(NULL));
for(i=0; i<n; i++){
int tmp = rand()%101;
if(max < tmp)max = tmp;
printf("%d ", tmp);
}
printf("\n");
scanf("%d", &in);
printf("%d\n", (in == max));

return 0;
}


788:デフォルトの名無しさん
08/01/24 21:30:25
[1] 授業単元: C言語
[2] 問題文
間違った日付が入力された場合、再入力させる仕様にする
[3] 環境
 [3.1] OS: Windows XP
 [3.2] コンパイラ名とバージョン: VC2005
[3.3] 言語: C
[4] 期限:1月27日まで
[5] その他の制限: ここに書いてあるのはプログラムの一部です
#include<stdio.h>

int main() {

int year,months,day;
int sum,i;
int m_array[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
char*week[7] = {"日","月","火","水","木","金","土"};

sum =0;
printf ("input (e.g. ****/**/**)\n>>");
scanf ("%d/%d/%d",&year,&months,&day

if ((imonths >2) && ((iyear % 4 == 0) && ((iyear % 100 !=0) || (iyear % 400 == 0)))) {
sum++;
}

for (i =0; i < imonths-1; i++) {
sum += m_array[i];
}
おそらくprintf scanf あたりを変えてwhile文とかbreakを使うと思うのですが・・
ヨロシクお願いします。

789:デフォルトの名無しさん
08/01/24 21:41:19
そんなのも分からないのに良くポインタ扱えるな

790:デフォルトの名無しさん
08/01/24 21:58:12
自分で作ったわけではありませんから

791:791
08/01/24 22:13:51
>>788
そんな変な手の加え方してコンパイル通せるのか?

#include<stdio.h>

int main() {

int year,months,day;
int sum,i;
int m_array[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
char*week[7] = {"日","月","火","水","木","金","土"};

sum =0;
do{
printf ("input (e.g. ****/**/**)\n>>");
scanf ("%d/%d/%d",&year,&months,&day);
if(year%4==0 && year%100!=0 || year%400==0)
m_array[1]=29;
else
m_array[1]=28;
}while(months<1 || months>12 || day<1 || day>m_array[months-1]);

for (i =0; i < imonths-1; i++) {
sum += m_array[i];
}

792:デフォルトの名無しさん
08/01/25 02:48:04
>>785
~ ヘッダのinclude 省略 ~
int main(void){
 char line[18+1]={0}, buf[16+1]={0}, *p;
 int i, num, tmp;
 printf("Input Number (ex. B0000000001111011 or D123 ) ===>");
 fgets(line, 18+1, stdin);
 p = strchr(line, '\n');
 if(p != NULL) *p = '\0';
 switch(line[0]){
  case 'B':
   if(strlen(line) != 17) return 1;
   for(i=16, tmp=1, num=0; i > 0; i--, tmp*=2) if(line[i] == '1') num += tmp;
   if(line[1] == '1') num -= 65536;
   printf("%s ===> D%6d\n", line, num);
   break;
  case 'D':
   num = atoi(&line[1]);
   if(num < -32768 || num > 32767) return 1;
   if(num < 0) num += 65536;
   for(i=15; i >= 0 && num != 0; i--, num/=2){
    if( num%2 == 0) buf[i] = '0';
    else buf[i] = '1';
   }
   for(; i >= 0; i--) buf[i] = '0';
   printf("D%6s ===> B%s\n", &(line[1]), buf);
   break;
 }
 return 0;
}

793:デフォルトの名無しさん
08/01/25 21:40:23
蛆じょあ

794: ◆t0OD42fqHw
08/01/26 16:55:04
[1] 授業単元: C++
[2] 問題文(: vectorクラスを利用して、int型を格納する動的配列を生成せよ
まず1~20までの間の奇数を格納せよ。
それから、追加で 21~40までの間の奇数を格納せよ
そして、11~30までの間の奇数を格納している要素を削除せよ
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン:Visual Studio 2005
 [3.3] 言語:C++
[4] 期限: [無期限]
[5] その他の制限: なし

795:デフォルトの名無しさん
08/01/26 17:13:05
#include <vector>
#include <algorithm>
#include <cstdio>

static void bar(int val) {printf("%d\n", val);}

int main()
{
std::vector<int> foo;
for (int ic = 1; ic <= 20; ic += 2) {
foo.push_back(ic);
}
for (int ic = 21; ic <= 40; ic += 2) {
foo.push_back(ic);
}
for (int ic = 11; ic <= 30; ic += 2) {
foo.erase(remove(foo.begin(), foo.end(), ic), foo.end());
}
std::for_each(foo.begin(), foo.end(), bar);
return 0;
}

796:デフォルトの名無しさん
08/01/27 14:43:59
[1] 授業単元:プログラミングⅡ
[2] 問題文(含コード&リンク):与えられたデータ(data1.txt
)に対して季節調整を行うプログラムを作成しなさい。
<調整法>
i年目、j月のデータを aij とする。
月平均 Mj
月平均の平均 M
調整のための指数 Sj = Mj / M
調整結果 aij / Sj
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン: Visual Studio 2005
 [3.3] 言語:C++
[4] 期限:2月3日
[5] その他の制限: 特にありません。

よろしくお願いします。

797:デフォルトの名無しさん
08/01/27 16:27:32
>>796
data1.txtがどんな物か分からないとやりようが無いYO
data1.txtをうpしてクレYO
調整結果は画面に表示すれば良いのかな?

798: ◆DSpH.2sBBQ
08/01/27 19:43:32
[1] 授業単元: C++
[2] 問題文
格子状(一辺20mのブロック×縦横10ブロック)の道を、人が4m/sで移動し
任意の座標(通路上に自由に指定可)にある複数の障害物とのそれぞれの距離を、各分岐点で表示しなさい。
スタートは左下の点、ゴールは一番右上の点とする。人が通る道順も自由に指定可。
障害物の上を通る場合は人の速度を1m/sとし、ゴールに到着するまでにかかった総時間も表示しなさい。

[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン:Visual Studio 2005
 [3.3] 言語:C++
[4] 期限: とても急いでます(>_<)
[5] その他の制限: なし


本当に切羽詰ってます!ぼるじょあさん、宜しくお願い致します!!

799:#
08/01/27 20:31:30
>>797
すいません。貼り付け忘れてました。

データ(12カ月×5年)
40.0 37.7 51.8 45.9 45.2 45.4 62.0 40.8 42.1 49.1 51.5 93.4
42.6 39.5 53.4 47.6 47.0 47.5 63.5 42.2 42.9 51.1 51.8 94.7
43.3 39.8 53.6 48.5 48.3 47.5 65.9 42.8 43.7 53.2 52.9 97.0
44.9 42.3 55.0 50.7 48.6 48.9 68.8 43.3 46.2 54.2 54.6 100.5
47.5 42.8 57.7 52.6 51.0 50.9 71.4 45.0 47.3 56.8 56.7 102.7

調整結果は、画面に表示させてください。よろしくお願いします。


800:デフォルトの名無しさん
08/01/27 21:59:00
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
 2つの正の整数値a,bの最大公約数を出力するプログラムを
 ユークリッドの互除法というアルゴリズムを用いて作成したい。
 以下のプログラムの****部分に適切な処理をいれて,プログラムを完成させなさい。

#include <stdio.h>
int main( void )
{
 int a, b;    /* 変数の宣言 */
 int m, n;
 scanf( "%d,%d", &a, &b );/* 2つの正の整数値を入力する */
 m=  a ;
 n=  b ;
 while(m **** n){   /* ユークリッドの互除法を適用 */
  if( m > n )
   m =  *****    ;
  else
   n =  ****     ;

[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
 [3.3] 言語: C言語
[4] 期限: [2008年1月28日12:00まで]
[5] その他の制限: 特になし

よろしくお願いします。

801:デフォルトの名無しさん
08/01/28 03:38:20
全部あれかよwなさけねえ

802:デフォルトの名無しさん
08/01/28 20:27:53
>>796
こんなので良いかな?
URLリンク(kansai2channeler.hp.infoseek.co.jp)

803:デフォルトの名無しさん
08/01/31 16:31:13
[1]授業単元:C言語
[2]問題文:単純なソートアルゴリズム(バブル・選択・挿入)のどれか1つと、クイックソートアルゴリズムを計算量を比較するプログラムを作る。
 *自分はバブルソートを選択しました。
[3]環境
 [3.1]OS:(Windows XP)
[3.2]Ultara-C pro version 2.1
[3.3]言語:c言語
[4]期限:2008年2月1日 AM2:00まで
[5]その他制限:特になし

プログラムが長かったのでろだにアップしています。URLは下記に貼り付けています。
2008/01/30(Wed) 17:02 No.5941 が自分の書き込みです。

URLリンク(kansai2channeler.hp.infoseek.co.jp)

よろしくお願いします。

804:デフォルトの名無しさん
08/01/31 18:39:47
[1] 授業単元: C言語
[2] 問題文(含コード&リンク):フロッピードライブのディスクイメージを作成せよ
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: Borland C++
 [3.3] 言語:C
[4] 期限: 2008/02/05に提出
[5] その他の制限:
基本的なことはできます。RAW Readをやらせたいんだと思うので、標準ライブラリ以外はダメです。
ioctrlを使うんだと思うんですが・・・。
すみません。資料へのリンクだけでもいいのでお願いします。

805:デフォルトの名無しさん
08/01/31 19:16:23
>>804
・ディスクイメージを作成せよ
・RAW Readをやらせたい
・ioctrlを使う
相互に矛盾しているとは思わんかね。

806:804
08/01/31 19:43:51
>>805
そうなんですか・・・?
FDイメージを作成するためにFDをFATでのReadではなく、RAW Readをしなければならない。
RAW Readをするためには・・・と思って調べていくとioctrlがそれっぽいかなぁというところまでは行ったつもりだったんですけど、違うんですか?


807:デフォルトの名無しさん
08/01/31 21:40:57
>>802
はい、ありがとうございます。使わせていただきます。

808:デフォルトの名無しさん
08/01/31 22:35:54
[1] 授業単元:C言語
[2] 問題文(含コード&リンク): 線形探索/二分探索 の2つの方法での計算時間の違いをC言語実装によって
定量的に示す。
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン:Microsoft Visual C++ 2005 Express Edition もしくはUltara-C pro version 2.1
 [3.3] 言語: Cのみ
[4] 期限: ([2008年2月1日AM:6:00まで
[5] その他の制限: 特に無いです。

よろしくお願いします

809:デフォルトの名無しさん
08/02/01 02:28:34
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):手の平の2値画像(URLリンク(www2.uploda.org)):手領域は255、背景は0 を使って
・手領域の面積 SS
・手領域の重心位置 (Mg,Ng)
・手領域の外接長方形 (RI,RJ) (RM,RN)
を計算して表示するプログラムを作成しなさい。
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン: Visual Studio 2005
 [3.3] 言語: Cのみ
[4] 期限: 2008年2月4日まで
[5] その他の制限:なし

よろしくお願いします。

810:デフォルトの名無しさん
08/02/01 19:08:22
>>804
Windows環境でBorlandC++を使っていいならAPIでいいやん。

CreateFile
 引数:\\.\C:\


で検索してみ。

811:モダン
08/02/01 19:14:16
[1] 授業単元:C言語
[2] 問題文 優先順位つき四則演算(小数点付き)
例 261.5*(2.3+7.9)+6.3/3.0=
を計算して表示するプログラムを作成しなさい。
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン: Visual Studio 2005
 [3.3] 言語: C++のみ
[4] 期限: 2008年2月5日まで
[5] その他の制限:特にありません

812:デフォルトの名無しさん
08/02/01 19:36:28
マルチ死ね

813:デフォルトの名無しさん
08/02/05 15:20:05
セリオも死ね

814:デフォルトの名無しさん
08/02/14 07:59:39
>>811
URLリンク(kansai2channeler.hp.infoseek.co.jp)

815:デフォルトの名無しさん
08/02/14 13:33:29
[1] 授業単元:プログラミング
[2] 問題文:URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン: VC2005
 [3.3] 言語:C
[4] 期限:2月17日
[5] その他の制限:特にありません。

よろしくお願いします。


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