ぼるじょあがC/C++の宿題を片づけますYO! 68代目

このエントリーをはてなブックマークに追加
796デフォルトの名無しさん
[1] 授業単元:プログラミングU
[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デフォルトの名無しさん:2008/01/27(日) 16:27:32
>>796
data1.txtがどんな物か分からないとやりようが無いYO
data1.txtをうpしてクレYO
調整結果は画面に表示すれば良いのかな?
798 ◆DSpH.2sBBQ :2008/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#:2008/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デフォルトの名無しさん:2008/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デフォルトの名無しさん:2008/01/28(月) 03:38:20
全部あれかよwなさけねえ
802デフォルトの名無しさん:2008/01/28(月) 20:27:53
803デフォルトの名無しさん:2008/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 が自分の書き込みです。

http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm

よろしくお願いします。
804デフォルトの名無しさん:2008/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デフォルトの名無しさん:2008/01/31(木) 19:16:23
>>804
・ディスクイメージを作成せよ
・RAW Readをやらせたい
・ioctrlを使う
相互に矛盾しているとは思わんかね。
806804:2008/01/31(木) 19:43:51
>>805
そうなんですか・・・?
FDイメージを作成するためにFDをFATでのReadではなく、RAW Readをしなければならない。
RAW Readをするためには・・・と思って調べていくとioctrlがそれっぽいかなぁというところまでは行ったつもりだったんですけど、違うんですか?
807デフォルトの名無しさん:2008/01/31(木) 21:40:57
>>802
はい、ありがとうございます。使わせていただきます。
808デフォルトの名無しさん:2008/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デフォルトの名無しさん:2008/02/01(金) 02:28:34
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):手の平の2値画像(http://www2.uploda.org/uporg1226336.pgm):手領域は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デフォルトの名無しさん:2008/02/01(金) 19:08:22
>>804
Windows環境でBorlandC++を使っていいならAPIでいいやん。

CreateFile
 引数:\\.\C:\


で検索してみ。
811モダン:2008/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デフォルトの名無しさん:2008/02/01(金) 19:36:28
マルチ死ね
813デフォルトの名無しさん:2008/02/05(火) 15:20:05
セリオも死ね
814デフォルトの名無しさん:2008/02/14(木) 07:59:39
815デフォルトの名無しさん:2008/02/14(木) 13:33:29
[1] 授業単元:プログラミング
[2] 問題文:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6053.txt
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン: VC2005
 [3.3] 言語:C
[4] 期限:2月17日
[5] その他の制限:特にありません。

よろしくお願いします。
816デフォルトの名無しさん:2008/02/15(金) 10:56:45
817デフォルトの名無しさん:2008/02/16(土) 16:21:16
>>816
ありがとうございます。
818デフォルトの名無しさん:2008/03/03(月) 13:16:38
[1] 授業単元:プログラミング
[2] 問題文:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6114.txt
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン: VC2005
 [3.3] 言語:C
[4] 期限:3月3日 15:00(15:15分学校へ)
[5] その他の制限:特にありません。
819ぼるじょあ ◆yBEncckFOU :2008/03/05(水) 00:52:34
>>818
(・3・) エェー (いろんな意味で)ねーYO!
820ぼるじょあ ◆yBEncckFOU :2008/03/17(月) 15:14:40
(・3・) エェー Fizz-Buzz 問題解いてみるYO!

問題:
1から100までの数をプリントするプログラムを書け。
ただし3の倍数のときは数の代わりに「Fizz」と、5の倍数のときは「Buzz」とプリントし、
3と5両方の倍数の場合には「FizzBuzz」とプリントすること。

#include <stdio.h>

int main(void){
int i;

for(i=1;i<=100;i++){
if(i%3==0 && i%5==0) printf("FizzBuzz\n");
else if(i%3==0) printf("Fizz\n");
else if(i%5==0) printf("Buzz\n");
else printf("%d\n", i);
}

return 0;
}
821ぼるじょあ ◆yBEncckFOU :2008/03/17(月) 15:20:09
>>820 の別解
#include <stdio.h>

int main(void){
int i;
char *print_format[]={"%d\n", "Fizz\n", "Buzz\n", "FizzBuzz\n"};

for(i=1;i<=100;i++){
printf(print_format[!(i%3)+(!(i%5))*2], i);
}

return 0;
}
822デフォルトの名無しさん:2008/03/17(月) 22:27:32
>>820-821
ナベアツオツ
823デフォルトの名無しさん:2008/03/18(火) 09:24:13
本家が荒れているのでこちらをage!
宿題をやってもらいたい人かもーん!!
824デフォルトの名無しさん:2008/03/19(水) 00:46:24
今の時期に宿題が出るとは思えませんが、お暇ならこの問題をどうぞ
3^(1,000,000,000,000,000)MOD23を計算せよ。
825デフォルトの名無しさん:2008/03/19(水) 00:58:33
3と23の最小公倍数ってどうやって算出すればいいんですか?
826デフォルトの名無しさん:2008/03/19(水) 01:08:27
>>825
3と23を掛けた後、最大公約数で割る。

827デフォルトの名無しさん:2008/03/19(水) 01:24:32
#include <stdio.h>
#include <math.h>

int main(void)
{
int i, amari = 3;

for(i = 0; i < 15; i++)
{
amari = int(pow((double)amari, 10.0)) % 23;
}
printf("%d", amari);
return 0;
}
828デフォルトの名無しさん:2008/03/19(水) 12:34:54
#include <stdio.h>
int main(void)
{
const int a = 3, b = 23;
int i = b;
while (i % a != 0) i += b;
printf("%d\n", i);
return 0;
}
829ぼるじょあ ◆yBEncckFOU :2008/03/24(月) 06:50:44
>>824
(・3・) エェー 出遅れたYO!
          >>827 は有効桁数を超える可能性があるYO!
          (3**10 も 8**10 も 2**31 以上じゃないから大丈夫だけど)

#include<stdio.h>

int main(void){
int i, j;
int result=1, mul=3;

for(j=0;j<15;j++){
for(i=0;i<10;i++) result=(result*mul)%23;
mul=result;
}
printf("%d\n", result);

return 0;
}
830デフォルトの名無しさん:2008/03/25(火) 00:53:01
1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6172.txt
[3] 環境
 [3.1] OS:windowsXP
 [3.2] コンパイラ名とバージョン: visual studio 2005
 [3.3] 言語:C言語
[4] 期限:2008年3月25日午後1時
他スレでも聞いてみたのですが結局不合格となってしまいました
よろしくお願いします。
[5] その他の制限:なし
831ぼるじょあ ◆yBEncckFOU :2008/03/25(火) 00:58:59
>>830
(・3・) エェー なんか処理内容見落としてるYO!

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

(imonths >2)
はどこいったんだYO!
832デフォルトの名無しさん:2008/03/25(火) 01:06:36
妹なら俺のちんぽしゃぶってるが
833デフォルトの名無しさん:2008/03/25(火) 23:19:05
>>831
忘れてました・・・ありがとうございますw
834デフォルトの名無しさん:2008/03/25(火) 23:37:06
>>832
忘れてました・・・ありがとうございますw
835デフォルトの名無しさん:2008/04/03(木) 01:55:14
1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6191.txt
[3] 環境
 [3.1] OS:windowsXP
 [3.2] コンパイラ名とバージョン: visual studio 2005
 [3.3] 言語:C言語
[4] 期限:2008年4月4日
以前教えてもらった問題の続きで申し訳ないのですが
ヨロシクおねがいします。
[5] その他の制限:なし
836デフォルトの名無しさん:2008/04/03(木) 02:18:43
>あとこのソースって前年度の総日数(365xyear-1)とかがぬけてますよね?
質問してるところのループだけじゃなくて、その前のループもわかってないじゃんw
837デフォルトの名無しさん:2008/04/03(木) 08:15:45
で?
838デフォルトの名無しさん:2008/04/03(木) 19:13:36
>>835
まずはインデントそろえろよw
839839:2008/04/12(土) 16:12:38
[1] 授業単元:プログラム
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6223.txt
[3] 環境
 [3.1] OS:Windows XP
 [3.2] コンパイラ名とバージョン:visual studio 2003
 [3.3] 言語: C言語
[4] 期限:2008年4月14日8:00
[5] その他の制限:C言語入門書をやったぐらいの初心者ですので
なるべく簡単にしてくれるとありがたいです.

どうぞよろしくお願いします  orz
840ぼるじょあ ◆yBEncckFOU :2008/04/12(土) 18:01:36
(・3・) エェー 全然初心者用の問題じゃないお
841ぼるじょあ ◆yBEncckFOU :2008/04/13(日) 14:31:03
>>839
(・3・) エェー 問題文の意味が分からないYO!
842839:2008/04/13(日) 18:14:42
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6236.txt
こんな感じにしたいです。たぶん説明が下手で、すいません。
どうかお力を貸してください。お願いします
843839:2008/04/14(月) 13:00:50
期限を今日の8:00までと書いてますが期限を延ばしてもらったので、
どうぞ教えていただけないでしょうか
844homoじょあ ◆5OLf4yFnuM :2008/04/15(火) 01:34:46
(・3・) エェー 期間が、明日明後日だと僕は無理だYO
          もっと余裕があるならやってもいいYO
845デフォルトの名無しさん:2008/04/15(火) 12:05:41
期日が短くてすいません  orz
では>>842のプログラムをもっと簡単にはできないでしょうか?
お願いします
846デフォルトの名無しさん:2008/04/15(火) 14:42:48
(・3・) エェー これの前後を参考にしてみるのはどうYO
http://pc11.2ch.net/test/read.cgi/tech/1202135539/731n
847デフォルトの名無しさん:2008/04/15(火) 22:45:58
マルチポストして解決したんなら、こっちでも報告するのが筋だろ。
848デフォルトの名無しさん:2008/04/15(火) 23:08:40
はい仰る通りですね、すいません。  orz
いいわけになりますが、やってもらったプログラムの理解とフローチャートを作ろうとしていたもの
ですから報告が遅れました。そして私の宿題を手伝っていただきありがとうございました。
849デフォルトの名無しさん:2008/04/17(木) 21:06:36
[1] 授業単元: プログラム入門
[2] 問題文(含コード&リンク): 整数aにデータを6つ入力し、偶数、奇数の個数を求めよ
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン: visual studio 2005
 [3.3] 言語: C
[4] 期限: 2008年4月18日12:00まで
[5] その他の制限: 初心者レベルです、Whileやfor、一次元配列までしか・・・

よろしくお願いします。


850デフォルトの名無しさん:2008/04/17(木) 21:24:51
#include <stdio.h>

int main(void)
{
int data[6], i, kisuu=0, guusuu=0;

for(i=0;i<6;i++)
{
printf("%d番目のデータを入力してください:",i);
scanf("%d",&data[i]);
}
for(i=0;i<6;i++)
{
if(data[i]%2==1)kisuu++;
else guusuu++;
}
printf("奇数は%d個、偶数は%d個です",kisuu,guusuu);
return 0;
}
851デフォルトの名無しさん:2008/04/18(金) 00:13:28
>>850
ありがとうございます!助かりました〜。
852デフォルトの名無しさん:2008/04/21(月) 08:24:26
1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6294.txt
[3] 環境
 [3.1] OS:windowsXP
 [3.2] コンパイラ名とバージョン: visual studio 2005
 [3.3] 言語:C言語
[4] 期限:2008年4月22日
問題 このプログラムを利用して今年のカレンダーを表示させる
よろしくお願いします。
[5] その他の制限:なし
853ぼるじょあ ◆yBEncckFOU :2008/04/21(月) 13:58:43
>>852
(・3・) エェー 元のプログラムが間違ってるYO!
          ツェラーの公式使えYO!
854デフォルトの名無しさん:2008/04/21(月) 17:06:15
ツェラーの公式を使うことが、そんなに辛い(つぇらい)のかね?ん?
855デフォルトの名無しさん:2008/04/21(月) 18:00:39
>>852
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6295.c
ツェラーの公式を使ったYO! っつか、曜日の配列に "日" が入ってなかったり
何の日数の合計だか分からんかったから、その辺は変更しちゃったYO!
856デフォルトの名無しさん:2008/04/27(日) 14:24:51
[1] 授業単元: プログラミング実習
[2] 問題文(含コード&リンク):
再帰処理によって、作成した迷路空間を探索するプログラムを作成せよ。
指定された構造体を使用する既存のものの変更は認めないが、変数の追加等は可。
また戻りあり経路と戻りなし経路の両方を表示する
与えられたコードの一部 http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6357.txt
迷路データ http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6358.txt
* : 壁
0 : 通路
8 : 通路 & スタート
9 : 通路 & ゴール
迷路空間は,必ず長方形であることを前提とする.
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] borlandC++
 [3.3] C言語
[4] 期限: 4/28 13000まで
[5] その他の制限: 特になし
よろしくお願いします
857デフォルトの名無しさん:2008/04/27(日) 18:53:51
[1] 授業単元:データ構造とアルゴリズム
[2] 問題文(含コード&リンク):体育館問題を列挙で解け。

・入力・・・最初に部活の数 n (0 <= n <= 100)が与えられる。
si(部活の活動開始時間),fi(部活の活動終了時間)の順に n 個の整数の組が与えられる。 (0 <= si <= 9999, 1 <= fi <= 10000, si < fi)

・出力・・・活動可能な部活の最大数を出力

Sample Input
n = 5
si fi
0 5
13 20
15 27
4 10
25 30

Sample Output 3

[3] 環境
 [3.1] OS: WindowsXP
 [3.2] Borland C++
 [3.3] 言語:C++
[4] 期限: [2008年5月2日17:00まで]
[5] その他の制限:特にありません

よろしくお願いしますm(_ _)m
858デフォルトの名無しさん:2008/04/27(日) 19:53:14
[1] 授業単元:プログラミング実験(ソフト開発)
[2] 問題文(含コード&リンク):
下記の機能を持つ原始的なペイントソフトの作成をせよ。最低でも1.2は必須の機能である。

1.直線の描画
左ボタンを押しながらマウスを移動させ、左ボタンを離すと、左ボタンを押した座標から離した座標までの直線を描画する。
この際、移動最中の過程を消すためのXORペンを使用する。moveto,linetoという関数を用いる。

2.ラバーバンド
右ボタンを押しながらマウスを移動すると、右ボタンを押した座標とマウスの現座標を頂点とする矩形を描写する。

3.ハイライト
描いた直線の先端にマウスカーソルを合わせると、端点が強調される。

4.右ドラッグ選択
描いた直線をラバーバンドで囲み、右クリックを離すと、ラバーバンド内の直線の端点が強調される。

[3] 環境
 [3.1] OS:Windows XP
 [3.2] Visual C++ 2005(or2008) Express Edition
 [3.3] 言語:C++
[4] 期限: 2008年5月4日まで
[5] その他の制限:Windowsフォームアプリケーションで作成。

1.2の機能を持つものであれば十分すぎるほど十分です。
ぜひお力添えしていただければと思います。よろしくお願いします。
859デフォルトの名無しさん:2008/04/27(日) 20:10:45
>>857,>>858
共にマルチ
860デフォルトの名無しさん:2008/04/28(月) 12:50:17
はわわ〜、ってネタが古いですぅ〜?
861デフォルトの名無しさん:2008/05/20(火) 14:01:27
[1] 授業単元: C言語
[2] 問題文:文字列s1の中から文字列s2に含まれる文字を取り除く.関数の戻り値は文字列s1(の先頭を指すポインタ値).

テストプログラムでは,文字列s2は固定でも構わない.しかし,関数の仕様としては,s1とs2の両方を引数にする.できるならば,s2もキーボードから入力できるようにする.

s1: "This is a pen."
s2: "sp."

s1: "Thi i a en"

[3] 環境
 [3.1] OS:LINUX
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語:C
[4] 期限: 2008/05/026に提出
C言語全然分からなくて困ってます。どうかよろしくお願いします。
862ぼるじょあ ◆yBEncckFOU :2008/05/20(火) 14:12:04
>>861
(・3・) エェー 久々だYO!

#include <stdio.h>

unsigned char *hoge(unsigned char *s1, const unsigned char *s2){
int i, j, remove_flag[256]={0};

for(i=0;s2[i];i++) remove_flag[s2[i]]=1;
for(i=j=0;s1[i];i++) if(!remove_flag[s1[i]]) s1[j++]=s1[i];
s1[j]='\0';
return s1;
}

int main(void){
char s1[1024]="", s2[1024]="sp.";

fgets(s1, sizeof(s1), stdin);
puts(s1);
hoge(s1, s2);
puts(s1);

return 0;
}
863デフォルトの名無しさん:2008/05/20(火) 14:17:26
#include <stdio.h>
#include <string.h>
// s1にs2[some]が存在したら詰めると言う横着アルゴリズム。
// s1[some]がs2中に存在したら詰めると言う戦略のほうが無難かと思われる。
static void removeChars(char * s1, const char * s2)
{
for (const char * s2p = s2; * s2p != '\0'; ++s2p)
for (char * p; (p = strchr(s1, * s2p)) != NULL; strcpy(p, p + 1)) ;
}
// 以下はテスト用サンプル。提出に当たっては適当に修正されたし。
int main(int argc, char ** argv)
{
removeChars(argv[1], argv[2]);
puts(argv[1]);
return 0;
}
864デフォルトの名無しさん:2008/05/20(火) 16:31:42
strcpy(p, p + 1)
これって未定義じゃねーの?
865デフォルトの名無しさん:2008/05/20(火) 16:47:06
【質問テンプレ】
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):
キーボードから文字列を入力し、それを逆順に表示するプログラムを作成せよ。
表示には必ずポインタを用いること。

[3] 環境
 [3.1] OS: (Windows xp
 [3.2] コンパイラ名とバージョン: Cl
 [3.3] 言語: C言語
[4] 期限:2008年5月22日hh:17時
[5] その他の制限:
文字列の長さを知る必要があるので工夫する.
ポインタに最初どこを向けさせて、どこまでいったら表示を終えるかを考えること。

よろしくお願いします。
866863:2008/05/20(火) 17:00:13
// >864の指摘も尤もなので、修正した。
// ついでに、s1[some]がs2中に存在したらコピー元をずらして、毎回一文字だけコピーする戦略に。
// これって、中のwhileの行を取り除いてp = s1をp = s2にしたらstrcpy()だ。
//
static void removeChars(char * s1, const char * s2)
{
char * p = s1;
do {
while (* p != '\0' && strchr(s2, * p)) ++p;
* s1++ = * p;
} while (* p++ != '\0');
}
867マイク ◆yrBrqfF1Ew :2008/05/20(火) 17:57:22
アルエェー
ぼるじょあってまだいたのかYO!
健康なのかYO!
868デフォルトの名無しさん:2008/05/20(火) 18:04:52
>>865
#include <stdio.h>

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

scanf("%s", str);

for(p=str; *p; p++);

while(p-->str) putchar(*p);

return 0;
}
869デフォルトの名無しさん:2008/05/20(火) 18:10:32
せめてscanf("%255s", str)にしようよ。
870 ◆g/ZMVdytmo :2008/05/20(火) 22:18:53
[1] 授業単元: C言語 for文
[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6623.txt
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン: CygnusVer.2.02.1
 [3.3] 言語: C
[4] 期限: ([2008年5月22日17:00まで]
[5] その他の制限: 2問別々に組む。for文使用。
2問内包ですが、よろしくお願いします。
871865:2008/05/20(火) 22:49:45
>>868

ありがとうございます!
872ぼるじょあ ◆yBEncckFOU :2008/05/20(火) 23:57:49
>>870
(・3・) エェー でけたYO!
#include<stdio.h>

int main(void){
int i, j, n;

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

for(i=0;i<n;i++){
for(j=0;j<n-i;j++) printf("*");
printf("\n");
}
return 0;
}

#include<stdio.h>

int main(void){
int i, j, n;

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

for(i=0;i<n;i++){
for(j=0;j<n-1-i;j++) printf(" ");
for(j=0;j<=i;j++) printf("*");
printf("\n");
}
return 0;
}
873 ◆g/ZMVdytmo :2008/05/21(水) 00:12:59
ぼるじょあ氏超絶感謝!!
意外とシンプルワラタww
874デフォルトの名無しさん:2008/05/21(水) 11:00:12
>>862
どうもありがとうございます。
どうやら条件があるみたいで「配列版」と「ポインタ版」 をつくり,それらの動作をテストするためのプログラムを作成する.
どの関数も,与えられた文字列に何らかの加工を施すものである「配列版」とは,関数内の文字列に対する処理を配列的表現を使って記述したものである.文字列sの中のある文字にアクセスする場合に,s[i]という表現を用いる.
「ポインタ版」とは,関数内の文字列に対する処理をポインタ使って記述したものである. 関数内には,全く配列的表現が現れないように書く.単に,配列版の s[i] を *(s+i) に置き換えるだけではダメで,ポインタ変数の値を変化させて文字列を走査するように記述する.
なんか面倒くさくて申し訳ないですが、よろしくお願いします。
875デフォルトの名無しさん:2008/05/21(水) 11:26:33
[1] 授業単元: C言語 for
[2] 問題文(含コード&リンク): 整数の個数を読み込み、その個数分の整数を
読み込み、読み込んだ整数の最大値を求めるプログラムを作れ。

整数の個数: 3
No.1: 6
No.2: 3
No.3: 4
最大値は 6 です
[3] 環境
 [3.1] OS: WINDOWS XP
 [3.2] コンパイラ名とバージョン: Cl
 [3.3] 言語: C
[4] 期限: 2008年5月21日19:00
[5] その他の制限: for文を使う事。

お願いしますm(__)m
876ぼるじょあ ◆yBEncckFOU :2008/05/21(水) 11:29:57
>>874
(・3・) エェー そういうことは先に言えYO!
#include <stdio.h>
#include <string.h>

unsigned char *hoge(unsigned char *s1, const unsigned char *s2){
char *src, *dest;

for(src=dest=s1;*src;src++){
if(!strchr(s2, *src)) *dest++=*src;
}
*dest='\0';
return s1;
}

int main(void){
char s1[1024]="", s2[1024]="sp.";

fgets(s1, sizeof(s1), stdin);
puts(s1);
hoge(s1, s2);
puts(s1);

return 0;
}
877ぼるじょあ ◆yBEncckFOU :2008/05/21(水) 11:34:22
>>875
(・3・) エェー でけたYO!
#include <stdio.h>

int main(void){
int i, value_num, value, maximum_value=12345;

printf("整数の個数: ");
scanf("%d", &value_num);

for(i=0;i<value_num;i++){
printf("No.%d: ", i+1);
scanf("%d", &value);
if(i==0 || value>maximum_value) maximum_value=value;
}
printf("最大値は %d です\n", maximum_value);

return 0;
}
878デフォルトの名無しさん:2008/05/21(水) 11:41:23
>>877 乙です。助かりました!
879デフォルトの名無しさん:2008/05/22(木) 14:49:36
【質問テンプレ】
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク)
身長 150 cm から 170 cm までの標準体重(BMI法で計算)によるの対応を
表示するプログラムを for 文を使って作成せよ。
標準体重は小数点以下を1桁だけ表示すること。


[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:特になし
[5] その他の制限:特になし
880デフォルトの名無しさん:2008/05/22(木) 16:55:15
881ぼろじょあ:2008/05/24(土) 06:03:58
(´3`) エェー でけねーYO!
882 ◆ob60wHXQlc :2008/05/26(月) 23:12:53
[1] C言語
[2] 後から用意される2つのファイルがマージできるプログラムをつくる。
  ファイルのサイズは最大で1000バイト。
  unsigned shortを使う。
  昇順。
[3] 環境
 [3.1] Windows
 [3.2] visual studio
 [3.3] C
[4] 5月27日のお昼まで。
[5] C言語始めて3週間です。

お願いします。

883ぼるじょあ ◆yBEncckFOU :2008/05/27(火) 10:35:13
>>882
(・3・) エェー 問題の意味が分からないYO!
884デフォルトの名無しさん:2008/05/27(火) 13:15:08
[1] 授業単元: C言語
[2] 問題
文字列sの文字の順を逆に置き換える.
関数の戻り値は文字列s(の先頭を指すポインタ値).
s: "This is a pen."

s: ".nep a si sihT"
[3] 環境
 [3.1] OS:LINUX
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語:C
>876いつもありがとうございます。
助かります。
追加で問題だされました。
配列版のほうは自力でできましたがポインタ版のほうは無理でした。
よろしくお願いします。
885ぼるじょあ ◆yBEncckFOU :2008/05/27(火) 18:03:04
>>884
(・3・) エェー 配列版とかポインタ版とか省略すんなYO!
          過去ログ読み直さないと意味分からんYO!
#include<stdio.h>

char *reverse(char *s){
char *p, *q, t;

for(p=q=s;*q;q++);
for(q--;p<q;p++,q--) t=*p,*p=*q,*q=t;
return s;
}

int main(void){
char s[]="This is a pen.";

puts(s);
puts(reverse(s));
return 0;
}
886 ◆Anhlv1kDvE :2008/05/27(火) 21:17:24
【質問テンプレ】
[1] 授業単元: C言語
[2] 問題文(含コード&リンク):
コマンドプロンプトで実行して
”ファイル名は?”
と聞いてきてテキストファイルのフルパス(場所)を入力してエンターキーで次は
”作成先は?”
と聞いてきてフルパス(場所)を入力してエンターキーで終わり、

英文のかかれたテキストファイルから全英単語を重複なく順番に新しいテキストファイル(以下、”NEWテキスト”と呼ぶ)に書き込み保存するプログラミングです。


実際の内容の結果は次のようになる。


-------------------英文.txt-------------------------------

I was wondering if my plant needs friends, do I need to get more of the same plant so it can get polinated and produce peppers?


続く
887 ◆Anhlv1kDvE :2008/05/27(火) 21:20:15
886 続き1
------------------new英文.txt(プログラムによって新規作成)------------------------------

I
was
wondering
if
my
plant
needs
friends,
do
need
to
get
more
of
888"gra454:2008/05/27(火) 21:21:14
887 続き

the
same
so
it
can
polinated
and
produce
peppers?

-------------------------------------------------


ポイント


(1)
NEWテキストの重複チェックは同じ単語でも大文字と小文字ひとつでも違えば書き込みはOKとする(プログラムが楽なよう)

   例)Apple と apple

889gra454:2008/05/27(火) 21:22:15
888 続き

では違うものとしNEWテキストに書き込みされる。また同じ単語でも記号が含まれていても違う単語と判断し、記号付きのままNEWテキストに書き込む。

   例)get! と get

つまり小文字、大文字を区別して一致し、さらに文字数も一致しないと重複とみなされない。
(できるならnew英文.txtは記号を削除して英数字の大文字と小文字のみにしたい。その場合上の例は重複となる)
(2)
Windowsで動作すること。NEWテキストのファイル名は毎回入力しないでいいように、英文のテキストファイルのファイル名の先頭に"new" をつけたものでいい。

   例)英文.txt → new英文.txt

[3] 環境
 [3.1] OS: Windows XP
 [3.2] コンパイラ名とバージョン: Visual C++ 2005
 [3.3] 言語: どちらでも可
[4] 期限: ([2008年6月2日まで]
[5] その他の制限: 初心者です
890ぼるじょあ ◆yBEncckFOU :2008/05/27(火) 21:36:09
>>886
(・3・) エェー ほらYO!
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
typedef struct tag_list_t{
int num;
char **wordlist;
}list_t;
int list_add(list_t *list, char *word){
int i;
for(i=0;i<list->num;i++) if(strcmp(list->wordlist[i], word)==0) return 0;
list->wordlist=realloc(list->wordlist, sizeof(char*)*(list->num+1));
list->wordlist[list->num]=strdup(word);
list->num+=1;
return 1;
}
int main(void){
list_t list={0, NULL};
char fname_in[FILENAME_MAX], fname_out[FILENAME_MAX], word[255+1];
FILE *fp_in, *fp_out;
printf("”ファイル名は?”");
scanf("%s", fname_in);
printf("”作成先は?”");
scanf("%s", fname_out);
if((fp_in=fopen(fname_in, "r"))==NULL) return 1;
if((fp_out=fopen(fname_out, "w"))==NULL) return 2;
while(fscanf(fp_in, "%255s", word)==1) if(list_add(&list, word)) fprintf(fp_out, "%s\n", word);
fclose(fp_in);
fclose(fp_out);
return 0;
}
891デフォルトの名無しさん:2008/05/27(火) 22:05:17
質問長いしうpロダ使えよ
892ぼるじょあ ◆yBEncckFOU :2008/05/27(火) 22:19:22
>>889
(・3・) エェー 記号削除版だYO!
while(fscanf(fp_in, "%255s", word)==1) if(list_add(&list, word)) fprintf(fp_out, "%s\n", word);

while(fscanf(fp_in, "%255[A-Za-z]%*[^A-Za-z]", word)==1) if(list_add(&list, word)) fprintf(fp_out, "%s\n", word);
893デフォルトの名無しさん:2008/05/28(水) 00:15:53
[1] 授業単元: C言語 配列
[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6691.txt[3] 環境
 [3.1] OS: WINDOWS XP
 [3.2] コンパイラ名とバージョン: Cl
 [3.3] 言語: C
[4] 期限: 2008年5月29日19:00
[5] その他の制限: 配列を使う事。
お願いします(><)
894デフォルトの名無しさん:2008/05/28(水) 00:17:25
895 ◆hwfaJ.m7oQ :2008/05/28(水) 00:28:46
>>886
ありがとうございます。

実行すると(記号未削除版)

ファイル名は? 1.txt
作成先は? C:\
続行するには何かキーを押してください . . .

と出てエンターキーをおしても何も作られませんが?
896デフォルトの名無しさん:2008/05/28(水) 00:40:57
ヴィジュアルベーシック2005
携帯プログラミング
テキストボックス1に文字が出る
ボタン12個
ボタン1(1)
ボタン2(2、A,B,C)
ボタン3(3、D,E,F)
・・・
ボタン9(9、W,X,Y,Z)
ボタン10(*)入力画面を初期化
ボタン11(0)
ボタン12(#)同じ文字・数字をつづけて入力できる

多いですがプログラミングコードを教えてください。
本当によろしくお願いします。
897homoじょあ ◆5OLf4yFnuM :2008/05/28(水) 06:49:27
>>893
#include <stdio.h>

int main(void){
int score[20], range[5] = {0}, input, i = 0, k;

while(i < 20){
printf("[No.%2d]の成績を入力して下さい: ", i+1);
scanf("%d", &input);
if(input >= 1 && input <= 5){
score[i] = input;
range[input -1]++;
i++;
}
}
puts("*** 成績分布 ***");
for(i=0; i<5; i++){
printf("評価[%d] (%2d人) ", i+1, range[i]);
for(k=0; k<range[i]; k++){
if(k != 0 && k%5 == 0) putchar(' ');
putchar('*');
}
puts("");
}
return 0;
}
898デフォルトの名無しさん:2008/05/28(水) 09:33:44
>>897
乙です。
899デフォルトの名無しさん:2008/05/28(水) 09:43:03
[1] 授業単元: C
[2] 問題文: http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6691.txt[3] 環境
 [3.1] OS: WINDOWS XP
 [3.2] コンパイラ名とバージョン: Cl
 [3.3] 言語: C
[4] 期限: 2008年5月29日19:00
[5] その他の制限: 配列を使用
よろしくお願いします
900 ◆ob60wHXQlc :2008/05/28(水) 09:57:39
>>883
100個の数字が入ったファイルが2つ用意されるので、
それを合わせて昇順にソートして、
新しいファイルに書き込むというものです。
ファイルはいっきに読み込まず、1レコードずつです。

よろしくお願いします。
901デフォルトの名無しさん:2008/05/28(水) 10:09:06
902デフォルトの名無しさん:2008/05/28(水) 10:12:33
[1] 授業単元: C
[2] 問題文: http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6689.txt
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: Cygnus
 [3.3] 言語: C
[4] 期限: 今週
[5] その他の制限: 配列を使用
お願いします。。。
903デフォルトの名無しさん:2008/05/28(水) 10:14:02
>>901
ありがとうございますっ
904ぼるじょあ ◆yBEncckFOU :2008/05/28(水) 10:31:25
>>882
(・3・) エェー こんなもん?
#include<stdio.h>
#include<stdlib.h>
#define DATA_NUM_MAX (100*2)

int compare(const unsigned short *a, const unsigned short *b){
if(*a>*b) return 1;
if(*a<*b) return -1;
return 0;
}
int main(int argc, char *argv[]){
FILE *fp_in, *fp_out;
unsigned short data[DATA_NUM_MAX];
int i, data_num=0;

if(argc!=4){
printf("Usage: ./a.out filename[in] filename[in] filename[out]\n");
return 0;
}
for(i=0;i<2;i++){
if((fp_in=fopen(argv[i+1], "r"))==NULL) return 1;
for(;data_num<DATA_NUM_MAX;data_num++)
if(fscanf(fp_in, "%hu", &data[data_num])!=1) break;
fclose(fp_in);
}
qsort(data, data_num, sizeof(data[0]), (int (*)(const void *,const void *))compare);
if((fp_out=fopen(argv[3], "w"))==NULL) return 2;
for(i=0;i<data_num;i++) fprintf(fp_out, "%hu\n", data[i]);

return 0;
}
905デフォルトの名無しさん:2008/05/28(水) 10:46:29
906 ◆ob60wHXQlc :2008/05/28(水) 11:01:50
>>883
ありがとうございます!!!!!!!
ちなみに、入ってる数字の数は不明だったとして、
ファイル1とファイル2の名前は相手に入力させ、
freadとfwriteを使ってファイル3に書き込み、
それをソートして1レコードずつ出力する。
っていうのはできたりするんでしょうか‥。
長くてすいません‥。

907デフォルトの名無しさん:2008/05/28(水) 11:08:15
>>905
ありがとうございます。
しかし、コンパイルしたら(haii1.cで保存)
haii1.c: In function `main':
haii1.c:14: warning: unknown escape sequence: `\' followed by char code 0x8e
となってしまいました…。
該当部分のprintf("\nデータ一覧を表示します\n");を削ったら成功したんですがどうすればいいんでしょう?
908デフォルトの名無しさん:2008/05/28(水) 11:11:04
んなあほな、そこはエラーというエラーは起こらないはずだが・・・
909ぼるじょあ ◆yBEncckFOU :2008/05/28(水) 11:15:12
「表示」 S-JIS 文字コードの場合、十六進数表記で 95 5C 8E A6
5C == '\\'

ってことでコンパイルオプションに以下を追加すればいいYO!
--input-charset=cp932 --exec-charset=cp932
910デフォルトの名無しさん:2008/05/28(水) 11:17:13
俺も問題無し
911デフォルトの名無しさん:2008/05/28(水) 11:27:09
すみませんが初心者なので>>909がよくわかりません。。。
具体的にはどうすればいいのでしょうか?
「表示」だけ削ればたしかに成功しますが…。
912デフォルトの名無しさん:2008/05/28(水) 11:29:04
とりあえず、エラーじゃなくて警告だからスルーしておk
913デフォルトの名無しさん:2008/05/28(水) 11:30:43
"表\示します" にすればいけるだろ
914デフォルトの名無しさん:2008/05/28(水) 11:31:33
データ一覧を侮ヲします
とでました。orz
915デフォルトの名無しさん:2008/05/28(水) 11:33:54
>>913
よっしゃあああああああああああああああああああああああ
できました!!皆様ありがとうございました!!!!
916デフォルトの名無しさん:2008/05/28(水) 11:36:07
>>911
コンパイラする時にcmdで渡す引数に
--input-charset=cp932 --exec-charset=cp932
を追加するって意味
C:\Work>command --input-charset=cp932 --exec-charset=cp932
917デフォルトの名無しさん:2008/05/28(水) 11:43:48
>>916
(´_ゝ`)フーン了解です。
918デフォルトの名無しさん:2008/05/28(水) 11:43:58
まあ ソ系ダメ文字 でググれば原因はわかるはず
919デフォルトの名無しさん:2008/05/28(水) 11:48:04
あぁ、あったなぁ・・・ソね。そーっすね。そうだね、そうなのか・・・そっかぁ・・
920デフォルトの名無しさん:2008/05/28(水) 14:46:56
最小値の出し方はわかるんですけど、2番目に小さい値ってどうすれば出ますかね
921デフォルトの名無しさん:2008/05/28(水) 14:47:52
最小の次、あるいはもう ソ ートして2番目ってことで
922920:2008/05/28(水) 15:25:47
>>921
お早い解答有難うございます!
「ソーティング」で調べてやってみたらできました有難う御座いました。
923デフォルトの名無しさん:2008/05/28(水) 15:37:00
さらに3番目、4番目、……、一番大きい値と知りたいとかならともかく
2番目を知りたいだけならわざわざソートするのは無駄が多い気がしなくもない
924デフォルトの名無しさん:2008/05/28(水) 15:41:57
ソうやなぁ。まず一番最小の要素をチェキして、その要素以外で
次に最小のものをチェキ。並び替える必要はないが、基本選択法の
一部を用いれば・・・
925デフォルトの名無しさん:2008/05/28(水) 15:50:14
比較と代入ってどっちが遅いんだっけ
とりあえずi386系
926デフォルトの名無しさん:2008/05/28(水) 16:44:37
俺の超高速挿入はむっちゃ早いで?クイック挿入なんて目じゃねーぜ
927デフォルトの名無しさん:2008/05/28(水) 18:21:22
口で語る前にソース書け
928デフォルトの名無しさん:2008/05/28(水) 19:50:35
>>927
オマエガナー
929 ◆RbkvJVnu4Y :2008/05/28(水) 22:05:50
[1] 授業単元:
[2] 問題文:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6697.txt
[3] 環境
 [3.1] OS: xp
 [3.2] コンパイラ名とバージョン:VC 6.0
 [3.3] 言語: C
[4] 期限:緊急(最終期限:木曜深夜)
[5] その他の制限:習ってるのはポインタ、配列、関数の初歩程度です。
なのでレベルを合わせたプログラムを書いていただけると助かります

http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6692.txt
以上の解答をいただいたのですがやはりビットマスクはだめのようです
ビットマスクのとこを配列でやる。
takaraにいっぱい詰め込む必要はないそうです

自分で一日ねばってもできませんでした
どうかお願いしますm(_ _)m
930デフォルトの名無しさん:2008/05/28(水) 23:16:09
要するに全部配列使ってやればいいんでしょ

int takara[SIZE][SIZE];/*宝が入ってれば1 無ければ0*/
int hide[SIZE][SIZE];/*既にオープンされている=1 されていない=0*/
int around[SIZE][SIZE];/*周囲の宝の数*/

もう出来たも同然
931デフォルトの名無しさん:2008/05/28(水) 23:45:34
>>930
defineのビットマスクのとこにその配列を入れるってことですよね?
なんか実行できないのですが…
お手数かけますがプログラムを書いていただけませんか?
932デフォルトの名無しさん:2008/05/28(水) 23:57:30
[1] 授業単元: C
[2] 問題文: http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6706.txt
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: Cygnus
 [3.3] 言語: C
[4] 期限: 今週まで
[5] その他の制限:配列使用ですが、あまり複雑にならないほうが嬉しいです。

お願いします
933デフォルトの名無しさん:2008/05/29(木) 00:33:13
>>931
適当に変えただけだjけど
これでいいんじゃねーの
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6707.txt
934デフォルトの名無しさん:2008/05/29(木) 00:57:39
>>933
解答していただき本当にありがとうございます
staticっていうのはまだ習ってないのですが簡単に書き直せませんか?
935デフォルトの名無しさん:2008/05/29(木) 01:53:38
>>934
static外せばいいよ
どうせmain()は一回しか呼ばれて無いだろうし
936デフォルトの名無しさん:2008/05/29(木) 02:14:40
#include <stdio.h>
#include <stdlib.h>

main(){
int I, YOU;

srand(time(NULL));
I=rand()%3+1;
YOU=rand()%3+1;

printf("my choice=");
scanf("%d",&I);

printf("your choice=");
scanf("%d",&YOU);


if(I==0){
if(YOU==0){
printf("引き分け\n");}

if(YOU==1){ printf("勝ち\n");}
if(YOU==2){ printf("負け\n");} }

else if(I==1){
if(YOU==0){ printf("負け\n");}
if(YOU==1){ printf("引き分け\n");}
if(YOU==2){ printf("勝ち\n");} }
else{
if(YOU==0){ printf("勝ち\n");}
if(YOU==1){ printf("負け\n");}
    if(YOU==2){ printf("引き分け\n");} }}
937デフォルトの名無しさん:2008/05/29(木) 02:16:08
乱数使ってジャンケンしろって問題なんですが相手(YOU)の入力を
乱数にするにはどうすれば良いのでしょうか?
>>936に書いてみましたが
IとYOUの両方とも入力しなければならないこととなっています。
938デフォルトの名無しさん:2008/05/29(木) 02:40:10
あ、出来ました。
IとYOUってのがちょっと分かりにくいですがw

main(){
int I, YOU;

srand(time(NULL));

YOU=rand()%3+1;

printf("my choice=");
scanf("%d",&I);

printf("your choice=%d\n",YOU);
printf("%d,%d\n",I,YOU);
939デフォルトの名無しさん:2008/05/29(木) 15:39:48
Cで経路探索のA*のプログラムはできますでしょうか?

他言語ならあるのですがcのみないのです・・・

一応c++の擬似コードのりんくを貼っておきます・・・・

http://d.hatena.ne.jp/octech/20070712
940デフォルトの名無しさん:2008/05/29(木) 16:39:16
[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク):

西暦年を引数に取り、閏年かどうか判定する
関数 is_leap_year() を用いて、
開始年と終了年を入れると、開始年、終了年およびその間の年に
閏年が何個あるか数えるプログラムを作成せよ。


[3] 環境
 [3.1] OS: (Windows)
 [3.2] 言語: (C++)
[4] 期限: 5/29
941デフォルトの名無しさん:2008/05/29(木) 23:10:09
#include <stdio.h>
int is_leap_year(int year){return((((year) % 4) == 0) && (((year) % 100) != 0) || (((year) % 400) == 0));}
int main(void){
int count=0;
int i,a,b;
scanf("%d %d",&a,&b);
for(i=a;i<=b;i++){
if(is_leap_year(i))
count++;
}
printf("%d",count);
return 0;
}
942デフォルトの名無しさん:2008/05/30(金) 01:41:35
転載。期限切れだけど誰かやってあげて。

[1] 授業単元:Windous Programming
[2] 問題文(含コード&リンク):
限界まで新規ウィンドウを開き続けるプログラムを完成させなさい。ただし、
1.開くウィンドウの閉じるボタン(通常右上に配置される[x]ボタン)は無効にすること。
2.限界まで開いたら、開いたウィンドウを全て閉じてきちんと後始末すること。
3.開いたウィンドウ数をカウントしておき、最後に「あなたのマシンの窓力はxxxです。」
(xxxには数値が入る)とダイアログで表示して終了すること。
[3] 環境:WindowsXP, VC++, C++
[4] 期限: 昼までに
[5] その他の制限: 特になし
943デフォルトの名無しさん:2008/05/30(金) 01:51:00
意味ワカンネ
944デフォルトの名無しさん:2008/05/30(金) 13:24:29
>[1] 授業単元:Windous Programming
そんな単元あるなら見てみたいもんだ。
945デフォルトの名無しさん:2008/05/30(金) 16:49:35
[1]C言語
[2]組・名前・国語の点数・算数の点数が入った構造体がある。
もし組が同じなら、国語の点数を足していって、
1組ごとの合計をファイルに出力して、また次の組も。(算数も同様に。)
[3] 環境
 [3.1]Windows
 [3.2]visual studio
 [3.3]C
[4]5月31日12:00
[5]キーブレイクというのをやらせたいみたいです。
946デフォルトの名無しさん:2008/05/30(金) 17:29:05
>>945
問題文省略して無い?
それじゃいくらなんでも適当すぎる
947デフォルトの名無しさん:2008/05/30(金) 17:29:45
そもそも、キーブレイクとはなんなのだ。
948945:2008/05/30(金) 17:42:38
これしか聞いてなかったので今質問してきます!!

949デフォルトの名無しさん:2008/05/30(金) 18:20:13
950デフォルトの名無しさん:2008/05/30(金) 18:21:19
[1]C
[2]放物線プログラム
 定数として重力加速度、初速度
 経過時間からX,Yをもとめる。
 経過時間0の場合は(X,Y)は(0,0)
951デフォルトの名無しさん:2008/05/30(金) 18:26:16
952デフォルトの名無しさん:2008/05/30(金) 20:05:38
ま、ぼるじょあが何であるか理解できてないような板だから、期待してはいないけどね。
953945:2008/05/30(金) 21:09:46
大事なとこが抜けてました。。

成績データレコード
struct PERSONAL_REC
{
unsigned char number; (クラス番号)
unsigned char reserve[3]; (予備)
unsigned char name[80];
short kokugo;
short sansuu;
};

成績集計レコード
struct CLASS_REC
{
unsigned char number; (クラス番号)
unsigned char reserve[3]; (予備)
short kokugo;
short sansuu;
};

を使うということです!
お願いします。
954 ◆AfLWwW3FJ2 :2008/05/31(土) 00:12:40
[2] 問題文(含コード&リンク): テキストに
[3] Visual C++ 2005
 [3.1] OS: Windows XP
 [3.2] Visual C++ 2005
 [3.3] 言語: どちらでも可
[4] 期限: 2008年6月2日
[5] その他の制限: 初心者

このプログラムに付け加えたいです
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6748.txt
955デフォルトの名無しさん:2008/05/31(土) 00:49:15
前も質問してなかった?別スレで
956 ◆AfLWwW3FJ2 :2008/05/31(土) 01:27:10
>>955

どこかに投稿した覚えありますが
見失ったのですいません
お願いします。
957デフォルトの名無しさん:2008/05/31(土) 01:27:17
ひとついえることがある。
今の計算機ではshortは速度においても消費メモリにおいても
doubleとまったく変わらないケースがほとんど。
958デフォルトの名無しさん:2008/05/31(土) 03:53:17
>>956
質問しておきながら見失ったんですか。。。
善良な誰かが大切な時間を費やして回答してくれたかもしれないのに、
それをいともたやすく踏みにじるんですね。
反吐が出ます。
959 ◆AfLWwW3FJ2 :2008/05/31(土) 04:00:21
>>958
いえどこかにテキストをアップロードしただけで
質問はしてません。
一応すいません。ここはプログラムを教えあうところで
言い合いしたくないので。
質問がどんどん埋もれるので
954
の質問お願いします。
960デフォルトの名無しさん:2008/05/31(土) 04:07:25
>>959
tolower使えばいいじゃん。
なんなの?
961デフォルトの名無しさん:2008/05/31(土) 04:08:56
作ってもらって理解してないからそんな醜態晒すことになるんだよ
頼むから留年してよ
962ぼるじょあ ◆yBEncckFOU :2008/05/31(土) 07:52:03
>>954
(・3・) エェー ただ一つの愛があれば救われるYO!
963デフォルトの名無しさん:2008/05/31(土) 10:18:24
(・3・) 〜♪
964デフォルトの名無しさん:2008/05/31(土) 14:17:45
>>962
誰がうまいことを言えとw
965デフォルトの名無しさん:2008/05/31(土) 14:37:24
> ここはプログラムを教えあうところで言い合いしたくないので。
質問がどんどん埋もれるので954の質問お願いします。

これは笑ったwwwwww
966デフォルトの名無しさん:2008/05/31(土) 15:12:26
>>965
一応すいません。ここはプログラムを教えあうところで
言い合いしたくないので。
質問がどんどん埋もれるので
954
の質問お願いします。

wwwwww
967デフォルトの名無しさん:2008/05/31(土) 15:43:51
[1] 授業単元:
[2] 問題文(含コード&リンク):
  分子と分母をint型で入力すると、その小数値を表示するプログラムを作成せよ。
  なお、循環する場合は"[ ]"で括る事。
  例:
  分子:1
  分母:3
  値:0.[3]
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)
  C
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
  2008/6/1 23:00
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
  桁数があまりにも多くなる場合、任意で打ち切ってよい。
  ただしその場合は閉じ括弧は表示しないこと。
968デフォルトの名無しさん:2008/05/31(土) 16:39:52
>>959
> ここはプログラムを教えあうところで

いいえ。ぼるじょあがC/C++の宿題を片付けるところです。
969デフォルトの名無しさん:2008/05/31(土) 16:54:58
>>968
質問がどんどん埋もれるので
954
の質問お願いします。

wwwwww
970ぼるじょあ ◆yBEncckFOU :2008/05/31(土) 18:37:39
>>967
(・3・) エェー 結構面倒だったYO!
#include<stdio.h>

#define BUF_SIZE 2048

int main(void){
int bunsi, bunbo, c, i, is_inf=0;
int mod[BUF_SIZE];
char result[BUF_SIZE];

scanf("%d %d", &bunsi, &bunbo);
printf("%d.", bunsi/bunbo);
bunsi%=bunbo;
for(c=0;(mod[c]=bunsi%bunbo) && c<BUF_SIZE && !is_inf;c++){
result[c]=bunsi*10/bunbo+'0';
for(i=0;i<c;i++){
if(mod[c]==mod[i]){
is_inf=1;
break;
}
}
bunsi=(bunsi*10)%bunbo;
}
if(is_inf) printf("%.*s[%.*s]\n", i, result, c-1-i, result+i);
else printf("%.*s\n", c, result);

return 0;
}
971側近中の側近 ◆0351148456 :2008/06/01(日) 22:59:04
972デフォルトの名無しさん:2008/06/01(日) 23:48:15
>>971
本当に助かりました。m(__)m
973デフォルトの名無しさん:2008/06/02(月) 15:35:43
質問がどんどん埋もれるので
954
の質問お願いします。
974デフォルトの名無しさん:2008/06/02(月) 16:45:07
>>971の気持ち悪い人にやってもらいな
975デフォルトの名無しさん:2008/06/05(木) 00:04:25
[1] 授業単元:プログラミング演習1
[2] 問題文(含コード&リンク):
m ×m 行列を入力し和と積を求め、結果を行列の形で表示させる
プログラムの作成。但し、入力した行列も表示。

<表示例>
1 2
3 4
[3] 環境
 [3.1] OS:WinXP/linux
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等):VC++/gcc
 [3.3] 言語:C言語
[4] 期限:2008/06/06
[5] その他の制限: stdio.h、入力はscanf関数、出力はprintf関数、配列で

プログラムの冒頭ですが、これで配列可変になるんでしょうか…?
int m,i,j;/*要素、カウント用変数宣言*/
printf("行列数を入力");
scanf("%d",&m);
int a[m]=0;
int b[m]=0;


976デフォルトの名無しさん:2008/06/05(木) 00:14:36
>>975
> プログラムの冒頭ですが、これで配列可変になるんでしょうか…?
C89はできません
977デフォルトの名無しさん:2008/06/05(木) 00:15:58
[1] 授業単元:
[2] 問題文: ポインタを使った循環リストを実装せよ.リストの表示、ノード
の挿入,削除を行う関数を作ること.なお,リストのノードNode は以下のよ
うに定義されている.
typedef struct { // data type
int no;
char name[10];
} Data;
typedef struct __node { // node definition
Data data;
struct __node *next;
} Node;
実行例:
(0) Insert a Node (1) Delete a Node (2)View the List (3) exit : 0
Please input the data.
No.: 1
Name: Lu
(0) Insert a Node (1) Delete a Node (2)View the List (3) exit :
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:BorlandC++
 [3.3] 言語:C
[4] 期限:6月5日16:00
[5] その他の制限:一応構造体まで習っているので、初歩的な知識程度だと思われます

よろしくお願いします
978デフォルトの名無しさん:2008/06/05(木) 01:13:25
2008/06/01
こんにちは 管理人です
2003年から運営しているこのサイトですが
もはや掲示板やブログの類は機能せず、
唯のアップローダーサイトになってしまっているという現実と
本スレの酷い衰退具合と、運営費の問題と
そして私の受験という様々な要因から
今までも事実上の閉鎖状態ではありましたが
今日をもちまして正式な閉鎖とさせて頂きます。

何故かアップローダーとしては多少名が知れているらしく、
毎日何方かが利用して下さってたのですが 申し訳ありません。

ここについては基本的に弄ることなく残しておこうとは思いますが、
XREAの有料アカウントが解除されると同時に容量制限により
過去ログは殆ど飛んでしまうと思われます。(11月に切れます)
過去ログが飛んでしまえばもはや何も無い空のサイトですが、
せめてAAデータベースや1001変更の纏めは残しておきます。

borujoa.orgとpcqa.orgのドメインに関しての処理は未定です
今後どこかで流用するかもしれません。

右に表示されているメッセのアカウントは現在でも使用しており、
これからも使用する予定なので
過去ログがどうしても必要だ、等何か連絡がありましたらお気軽にどうぞ。

中1から始まったゆとりの暇つぶしに今までお付き合い頂き、
本当にありがとうございました。
ぼるじょあ文化が絶えないことを祈っております。

ではまたいつか
http://www.borujoa.org/
979デフォルトの名無しさん:2008/06/05(木) 01:17:02
VS2008のVC++を使っているのですが
インテリセンスの表示をデフォルトのCtrl+Spaceではなくて VBのように何も押さなくても
リアルタイムに表示するようにしたい場合はどうすればいいでしょうか?
980デフォルトの名無しさん:2008/06/05(木) 02:58:54
981デフォルトの名無しさん:2008/06/05(木) 13:07:25
C言語のリスト構造によるスタック・キューそれぞれについて、
要素数を管理する変数を用意して追加・削除の際に更新する方法で、
格納されている要素数を取得することの利点・欠点がわかりません。
又は、スタック・キューの全要素を追査して現要素数を調べて要素数を
取得する方法の利点・欠点でも構いません。
どなたか宜しくお願いします。
982デフォルトの名無しさん:2008/06/05(木) 13:14:56
>>981
要素数を得るときの計算量がO(1)かO(n)かの違いでいいんでね?
983デフォルトの名無しさん:2008/06/05(木) 13:18:46
>>981
別途変数を用意すると要素数を知るのが速くなるが、その分メモリを多く消費する
984デフォルトの名無しさん:2008/06/05(木) 17:02:16
[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク):

A=1を何倍ずつしていくと50回目に1,000,000を越えるか?


[3] 環境
 [3.1] OS: (Windows)
 [3.2] 言語: (C++)
[4] 期限: 6月6日

似た問題もわかりませんが、これ一問を質問させていただきます。
よろしくお願いします。
985デフォルトの名無しさん:2008/06/05(木) 17:55:19
1.32
986デフォルトの名無しさん:2008/06/05(木) 19:43:34
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):
2次元配列(hai[10][10])を用いる。
各マスには予め1または2がランダムで入力されている。

100マスの中で、1と2のサイズを計測せよ。
なお、境界は存在せず、トーラス状とする。

例)
1,1,1
2,1,1
1,1,1
であれば、
1:8
2:1

1,1,1
2,1,2
1,2,1
であれば、
1:6(トーラス状であるため、左下と右下も一つの塊と見る)
2:2(トーラス状であるため、中段の左右は一つの塊と見る),1


[3] 環境
 [3.1] 言語: どちらでも可
[4] 期限: 6月10日


解決の糸口が見つかりません。
どうかよろしくお願いします。
987デフォルトの名無しさん:2008/06/05(木) 20:10:41
トーラスじゃない場合はできる?
988デフォルトの名無しさん:2008/06/05(木) 20:14:25
多次元配列を利用して、5人の3教科(国語・数学・英語)の最高点を出すソースと、平均点を出すソースをそれぞれ別々に教えていただけませんか?
989デフォルトの名無しさん:2008/06/05(木) 20:21:05
>>987
できてないです。
990デフォルトの名無しさん:2008/06/05(木) 21:01:42
>>984
(・3・)エェー この倍数って実数でしょ?
    2倍ずつしてっても1000000超えるYO!
991デフォルトの名無しさん:2008/06/05(木) 21:03:08
と言うより単にlog2(1000000)のような気が・・・・
992デフォルトの名無しさん:2008/06/05(木) 21:05:41
じゃなかった
不等式
logx(1000000) >= 50
を解けばいいのか
993デフォルトの名無しさん:2008/06/05(木) 21:07:53
1000000^(1/50)<x<1000000^(1/49)
994デフォルトの名無しさん:2008/06/05(木) 21:24:51
誰かニュートン法でも二分法でもいいから解いてやってくれ
995デフォルトの名無しさん:2008/06/05(木) 22:28:40
>>986
解決しました。

心優しい方ありがとう。
996ぼるじょあ ◆yBEncckFOU
>>984
(・3・) エェー >>993がズバリ答えだYO! (表示している数値は10^-5まで有効だYO!)
#include<stdio.h>
#include<math.h>
int main(void){
printf("%.6f<x<%.6f\n", pow(1000000., 1./50), pow(1000000., 1./49));
return 0;
}