ぼるじょあがC/C++の ..
[2ch|▼Menu]
831:ぼるじょあ ◆yBEncckFOU
08/03/25 00:58:59
>>830
(・3・) エェー なんか処理内容見落としてるYO!

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

(imonths >2)
はどこいったんだYO!

832:デフォルトの名無しさん
08/03/25 01:06:36
妹なら俺のちんぽしゃぶってるが

833:デフォルトの名無しさん
08/03/25 23:19:05
>>831
忘れてました・・・ありがとうございますw

834:デフォルトの名無しさん
08/03/25 23:37:06
>>832
忘れてました・・・ありがとうございますw

835:デフォルトの名無しさん
08/04/03 01:55:14
1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:windowsXP
 [3.2] コンパイラ名とバージョン: visual studio 2005
 [3.3] 言語:C言語
[4] 期限:2008年4月4日
以前教えてもらった問題の続きで申し訳ないのですが
ヨロシクおねがいします。
[5] その他の制限:なし

836:デフォルトの名無しさん
08/04/03 02:18:43
>あとこのソースって前年度の総日数(365xyear-1)とかがぬけてますよね?
質問してるところのループだけじゃなくて、その前のループもわかってないじゃんw

837:デフォルトの名無しさん
08/04/03 08:15:45
で?

838:デフォルトの名無しさん
08/04/03 19:13:36
>>835
まずはインデントそろえろよw

839:839
08/04/12 16:12:38
[1] 授業単元:プログラム
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[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
08/04/12 18:01:36
(・3・) エェー 全然初心者用の問題じゃないお

841:ぼるじょあ ◆yBEncckFOU
08/04/13 14:31:03
>>839
(・3・) エェー 問題文の意味が分からないYO!

842:839
08/04/13 18:14:42
URLリンク(kansai2channeler.hp.infoseek.co.jp)
こんな感じにしたいです。たぶん説明が下手で、すいません。
どうかお力を貸してください。お願いします

843:839
08/04/14 13:00:50
期限を今日の8:00までと書いてますが期限を延ばしてもらったので、
どうぞ教えていただけないでしょうか

844:homoじょあ ◆5OLf4yFnuM
08/04/15 01:34:46
(・3・) エェー 期間が、明日明後日だと僕は無理だYO
          もっと余裕があるならやってもいいYO

845:デフォルトの名無しさん
08/04/15 12:05:41
期日が短くてすいません  orz
では>>842のプログラムをもっと簡単にはできないでしょうか?
お願いします

846:デフォルトの名無しさん
08/04/15 14:42:48
(・3・) エェー これの前後を参考にしてみるのはどうYO
スレリンク(tech板:731番)n

847:デフォルトの名無しさん
08/04/15 22:45:58
マルチポストして解決したんなら、こっちでも報告するのが筋だろ。

848:デフォルトの名無しさん
08/04/15 23:08:40
はい仰る通りですね、すいません。  orz
いいわけになりますが、やってもらったプログラムの理解とフローチャートを作ろうとしていたもの
ですから報告が遅れました。そして私の宿題を手伝っていただきありがとうございました。

849:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/04/18 00:13:28
>>850
ありがとうございます!助かりました〜。


852:デフォルトの名無しさん
08/04/21 08:24:26
1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:windowsXP
 [3.2] コンパイラ名とバージョン: visual studio 2005
 [3.3] 言語:C言語
[4] 期限:2008年4月22日
問題 このプログラムを利用して今年のカレンダーを表示させる
よろしくお願いします。
[5] その他の制限:なし

853:ぼるじょあ ◆yBEncckFOU
08/04/21 13:58:43
>>852
(・3・) エェー 元のプログラムが間違ってるYO!
          ツェラーの公式使えYO!

854:デフォルトの名無しさん
08/04/21 17:06:15
ツェラーの公式を使うことが、そんなに辛い(つぇらい)のかね?ん?

855:デフォルトの名無しさん
08/04/21 18:00:39
>>852
URLリンク(kansai2channeler.hp.infoseek.co.jp)
ツェラーの公式を使ったYO! っつか、曜日の配列に "日" が入ってなかったり
何の日数の合計だか分からんかったから、その辺は変更しちゃったYO!

856:デフォルトの名無しさん
08/04/27 14:24:51
[1] 授業単元: プログラミング実習
[2] 問題文(含コード&リンク):
再帰処理によって、作成した迷路空間を探索するプログラムを作成せよ。
指定された構造体を使用する既存のものの変更は認めないが、変数の追加等は可。
また戻りあり経路と戻りなし経路の両方を表示する
与えられたコードの一部 URLリンク(kansai2channeler.hp.infoseek.co.jp)
迷路データ URLリンク(kansai2channeler.hp.infoseek.co.jp)
* : 壁
0 : 通路
8 : 通路 & スタート
9 : 通路 & ゴール
迷路空間は,必ず長方形であることを前提とする.
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] borlandC++
 [3.3] C言語
[4] 期限: 4/28 13000まで
[5] その他の制限: 特になし
よろしくお願いします

857:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/04/27 20:10:45
>>857,>>858
共にマルチ

860:デフォルトの名無しさん
08/04/28 12:50:17
はわわ〜、ってネタが古いですぅ〜?

861:デフォルトの名無しさん
08/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
08/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:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/05/20 16:31:42
strcpy(p, p + 1)
これって未定義じゃねーの?

865:デフォルトの名無しさん
08/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] その他の制限:
文字列の長さを知る必要があるので工夫する.
ポインタに最初どこを向けさせて、どこまでいったら表示を終えるかを考えること。

よろしくお願いします。

866:863
08/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
08/05/20 17:57:22
アルエェー
ぼるじょあってまだいたのかYO!
健康なのかYO!

868:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/05/20 18:10:32
せめてscanf("%255s", str)にしようよ。

870: ◆g/ZMVdytmo
08/05/20 22:18:53
[1] 授業単元: C言語 for文
[2] 問題文(含コード&リンク): URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン: CygnusVer.2.02.1
 [3.3] 言語: C
[4] 期限: ([2008年5月22日17:00まで]
[5] その他の制限: 2問別々に組む。for文使用。
2問内包ですが、よろしくお願いします。

871:865
08/05/20 22:49:45
>>868

ありがとうございます!

872:ぼるじょあ ◆yBEncckFOU
08/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
08/05/21 00:12:59
ぼるじょあ氏超絶感謝!!
意外とシンプルワラタww

874:デフォルトの名無しさん
08/05/21 11:00:12
>>862
どうもありがとうございます。
どうやら条件があるみたいで「配列版」と「ポインタ版」 をつくり,それらの動作をテストするためのプログラムを作成する.
どの関数も,与えられた文字列に何らかの加工を施すものである「配列版」とは,関数内の文字列に対する処理を配列的表現を使って記述したものである.文字列sの中のある文字にアクセスする場合に,s[i]という表現を用いる.
「ポインタ版」とは,関数内の文字列に対する処理をポインタ使って記述したものである. 関数内には,全く配列的表現が現れないように書く.単に,配列版の s[i] を *(s+i) に置き換えるだけではダメで,ポインタ変数の値を変化させて文字列を走査するように記述する.
なんか面倒くさくて申し訳ないですが、よろしくお願いします。

875:デフォルトの名無しさん
08/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
08/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
08/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:デフォルトの名無しさん
08/05/21 11:41:23
>>877 乙です。助かりました!

879:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/05/22 16:55:15
>>879
スレリンク(tech板:455番),460

881:ぼろじょあ
08/05/24 06:03:58
(´3`) エェー でけねーYO!

882: ◆ob60wHXQlc
08/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
08/05/27 10:35:13
>>882
(・3・) エェー 問題の意味が分からないYO!

884:デフォルトの名無しさん
08/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
08/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
08/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
08/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
08/05/27 21:21:14
887 続き

the
same
so
it
can
polinated
and
produce
peppers?

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


ポイント


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

   例)Apple と apple



889:gra454
08/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
08/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:デフォルトの名無しさん
08/05/27 22:05:17
質問長いしうpロダ使えよ

892:ぼるじょあ ◆yBEncckFOU
08/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:デフォルトの名無しさん
08/05/28 00:15:53
[1] 授業単元: C言語 配列
[2] 問題文(含コード&リンク): URLリンク(kansai2channeler.hp.infoseek.co.jp) 環境
 [3.1] OS: WINDOWS XP
 [3.2] コンパイラ名とバージョン: Cl
 [3.3] 言語: C
[4] 期限: 2008年5月29日19:00
[5] その他の制限: 配列を使う事。
お願いします(><)

894:デフォルトの名無しさん
08/05/28 00:17:25
>>893
URLリンク(kansai2channeler.hp.infoseek.co.jp)
間違えたんで一応…

895: ◆hwfaJ.m7oQ
08/05/28 00:28:46
>>886
ありがとうございます。

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

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

と出てエンターキーをおしても何も作られませんが?


896:デフォルトの名無しさん
08/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(#)同じ文字・数字をつづけて入力できる

多いですがプログラミングコードを教えてください。
本当によろしくお願いします。


897:homoじょあ ◆5OLf4yFnuM
08/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:デフォルトの名無しさん
08/05/28 09:33:44
>>897
乙です。

899:デフォルトの名無しさん
08/05/28 09:43:03
[1] 授業単元: C
[2] 問題文: URLリンク(kansai2channeler.hp.infoseek.co.jp) 環境
 [3.1] OS: WINDOWS XP
 [3.2] コンパイラ名とバージョン: Cl
 [3.3] 言語: C
[4] 期限: 2008年5月29日19:00
[5] その他の制限: 配列を使用
よろしくお願いします

900: ◆ob60wHXQlc
08/05/28 09:57:39
>>883
100個の数字が入ったファイルが2つ用意されるので、
それを合わせて昇順にソートして、
新しいファイルに書き込むというものです。
ファイルはいっきに読み込まず、1レコードずつです。

よろしくお願いします。


901:デフォルトの名無しさん
08/05/28 10:09:06
>>899
URLリンク(kansai2channeler.hp.infoseek.co.jp)

902:デフォルトの名無しさん
08/05/28 10:12:33
[1] 授業単元: C
[2] 問題文: URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: Cygnus
 [3.3] 言語: C
[4] 期限: 今週
[5] その他の制限: 配列を使用
お願いします。。。

903:デフォルトの名無しさん
08/05/28 10:14:02
>>901
ありがとうございますっ

904:ぼるじょあ ◆yBEncckFOU
08/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:デフォルトの名無しさん
08/05/28 10:46:29
>>902
URLリンク(kansai2channeler.hp.infoseek.co.jp)

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



907:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/05/28 11:11:04
んなあほな、そこはエラーというエラーは起こらないはずだが・・・

909:ぼるじょあ ◆yBEncckFOU
08/05/28 11:15:12
「表示」 S-JIS 文字コードの場合、十六進数表記で 95 5C 8E A6
5C == '\\'

ってことでコンパイルオプションに以下を追加すればいいYO!
--input-charset=cp932 --exec-charset=cp932

910:デフォルトの名無しさん
08/05/28 11:17:13
俺も問題無し

911:デフォルトの名無しさん
08/05/28 11:27:09
すみませんが初心者なので>>909がよくわかりません。。。
具体的にはどうすればいいのでしょうか?
「表示」だけ削ればたしかに成功しますが…。

912:デフォルトの名無しさん
08/05/28 11:29:04
とりあえず、エラーじゃなくて警告だからスルーしておk

913:デフォルトの名無しさん
08/05/28 11:30:43
"表\示します" にすればいけるだろ

914:デフォルトの名無しさん
08/05/28 11:31:33
データ一覧を侮ヲします
とでました。orz

915:デフォルトの名無しさん
08/05/28 11:33:54
>>913
よっしゃあああああああああああああああああああああああ
できました!!皆様ありがとうございました!!!!

916:デフォルトの名無しさん
08/05/28 11:36:07
>>911
コンパイラする時にcmdで渡す引数に
--input-charset=cp932 --exec-charset=cp932
を追加するって意味
C:\Work>command --input-charset=cp932 --exec-charset=cp932

917:デフォルトの名無しさん
08/05/28 11:43:48
>>916
(´_ゝ`)フーン了解です。

918:デフォルトの名無しさん
08/05/28 11:43:58
まあ ソ系ダメ文字 でググれば原因はわかるはず

919:デフォルトの名無しさん
08/05/28 11:48:04
あぁ、あったなぁ・・・ソね。そーっすね。そうだね、そうなのか・・・そっかぁ・・

920:デフォルトの名無しさん
08/05/28 14:46:56
最小値の出し方はわかるんですけど、2番目に小さい値ってどうすれば出ますかね

921:デフォルトの名無しさん
08/05/28 14:47:52
最小の次、あるいはもう ソ ートして2番目ってことで

922:920
08/05/28 15:25:47
>>921
お早い解答有難うございます!
「ソーティング」で調べてやってみたらできました有難う御座いました。

923:デフォルトの名無しさん
08/05/28 15:37:00
さらに3番目、4番目、……、一番大きい値と知りたいとかならともかく
2番目を知りたいだけならわざわざソートするのは無駄が多い気がしなくもない

924:デフォルトの名無しさん
08/05/28 15:41:57
ソうやなぁ。まず一番最小の要素をチェキして、その要素以外で
次に最小のものをチェキ。並び替える必要はないが、基本選択法の
一部を用いれば・・・

925:デフォルトの名無しさん
08/05/28 15:50:14
比較と代入ってどっちが遅いんだっけ
とりあえずi386系

926:デフォルトの名無しさん
08/05/28 16:44:37
俺の超高速挿入はむっちゃ早いで?クイック挿入なんて目じゃねーぜ

927:デフォルトの名無しさん
08/05/28 18:21:22
口で語る前にソース書け

928:デフォルトの名無しさん
08/05/28 19:50:35
>>927
オマエガナー

929: ◆RbkvJVnu4Y
08/05/28 22:05:50
[1] 授業単元:
[2] 問題文:URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: xp
 [3.2] コンパイラ名とバージョン:VC 6.0
 [3.3] 言語: C
[4] 期限:緊急(最終期限:木曜深夜)
[5] その他の制限:習ってるのはポインタ、配列、関数の初歩程度です。
なのでレベルを合わせたプログラムを書いていただけると助かります

URLリンク(kansai2channeler.hp.infoseek.co.jp)
以上の解答をいただいたのですがやはりビットマスクはだめのようです
ビットマスクのとこを配列でやる。
takaraにいっぱい詰め込む必要はないそうです

自分で一日ねばってもできませんでした
どうかお願いしますm(_ _)m

930:デフォルトの名無しさん
08/05/28 23:16:09
要するに全部配列使ってやればいいんでしょ

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

もう出来たも同然

931:デフォルトの名無しさん
08/05/28 23:45:34
>>930
defineのビットマスクのとこにその配列を入れるってことですよね?
なんか実行できないのですが…
お手数かけますがプログラムを書いていただけませんか?

932:デフォルトの名無しさん
08/05/28 23:57:30
[1] 授業単元: C
[2] 問題文: URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: Cygnus
 [3.3] 言語: C
[4] 期限: 今週まで
[5] その他の制限:配列使用ですが、あまり複雑にならないほうが嬉しいです。

お願いします

933:デフォルトの名無しさん
08/05/29 00:33:13
>>931
適当に変えただけだjけど
これでいいんじゃねーの
URLリンク(kansai2channeler.hp.infoseek.co.jp)

934:デフォルトの名無しさん
08/05/29 00:57:39
>>933
解答していただき本当にありがとうございます
staticっていうのはまだ習ってないのですが簡単に書き直せませんか?

935:デフォルトの名無しさん
08/05/29 01:53:38
>>934
static外せばいいよ
どうせmain()は一回しか呼ばれて無いだろうし

936:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/05/29 02:16:08
乱数使ってジャンケンしろって問題なんですが相手(YOU)の入力を
乱数にするにはどうすれば良いのでしょうか?
>>936に書いてみましたが
IとYOUの両方とも入力しなければならないこととなっています。


938:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/05/29 15:39:48
Cで経路探索のA*のプログラムはできますでしょうか?

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

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

URLリンク(d.hatena.ne.jp)

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

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


[3] 環境
 [3.1] OS: (Windows)
 [3.2] 言語: (C++)
[4] 期限: 5/29

941:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/05/30 01:41:35
転載。期限切れだけど誰かやってあげて。

[1] 授業単元:Windous Programming
[2] 問題文(含コード&リンク):
限界まで新規ウィンドウを開き続けるプログラムを完成させなさい。ただし、
1.開くウィンドウの閉じるボタン(通常右上に配置される[x]ボタン)は無効にすること。
2.限界まで開いたら、開いたウィンドウを全て閉じてきちんと後始末すること。
3.開いたウィンドウ数をカウントしておき、最後に「あなたのマシンの窓力はxxxです。」
(xxxには数値が入る)とダイアログで表示して終了すること。
[3] 環境:WindowsXP, VC++, C++
[4] 期限: 昼までに
[5] その他の制限: 特になし


943:デフォルトの名無しさん
08/05/30 01:51:00
意味ワカンネ

944:デフォルトの名無しさん
08/05/30 13:24:29
>[1] 授業単元:Windous Programming
そんな単元あるなら見てみたいもんだ。

945:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/05/30 17:29:05
>>945
問題文省略して無い?
それじゃいくらなんでも適当すぎる

947:デフォルトの名無しさん
08/05/30 17:29:45
そもそも、キーブレイクとはなんなのだ。

948:945
08/05/30 17:42:38
これしか聞いてなかったので今質問してきます!!



949:デフォルトの名無しさん
08/05/30 18:20:13
>>945
スレリンク(tech板:174番)

950:デフォルトの名無しさん
08/05/30 18:21:19
[1]C
[2]放物線プログラム
 定数として重力加速度、初速度
 経過時間からX,Yをもとめる。
 経過時間0の場合は(X,Y)は(0,0)

951:デフォルトの名無しさん
08/05/30 18:26:16
>>950
スレリンク(tech板:180番)

嫌がらせ?

952:デフォルトの名無しさん
08/05/30 20:05:38
ま、ぼるじょあが何であるか理解できてないような板だから、期待してはいないけどね。

953:945
08/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
08/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] その他の制限: 初心者

このプログラムに付け加えたいです
URLリンク(kansai2channeler.hp.infoseek.co.jp)


955:デフォルトの名無しさん
08/05/31 00:49:15
前も質問してなかった?別スレで

956: ◆AfLWwW3FJ2
08/05/31 01:27:10
>>955

どこかに投稿した覚えありますが
見失ったのですいません
お願いします。

957:デフォルトの名無しさん
08/05/31 01:27:17
ひとついえることがある。
今の計算機ではshortは速度においても消費メモリにおいても
doubleとまったく変わらないケースがほとんど。

958:デフォルトの名無しさん
08/05/31 03:53:17
>>956
質問しておきながら見失ったんですか。。。
善良な誰かが大切な時間を費やして回答してくれたかもしれないのに、
それをいともたやすく踏みにじるんですね。
反吐が出ます。

959: ◆AfLWwW3FJ2
08/05/31 04:00:21
>>958
いえどこかにテキストをアップロードしただけで
質問はしてません。
一応すいません。ここはプログラムを教えあうところで
言い合いしたくないので。
質問がどんどん埋もれるので
954
の質問お願いします。

960:デフォルトの名無しさん
08/05/31 04:07:25
>>959
tolower使えばいいじゃん。
なんなの?

961:デフォルトの名無しさん
08/05/31 04:08:56
作ってもらって理解してないからそんな醜態晒すことになるんだよ
頼むから留年してよ

962:ぼるじょあ ◆yBEncckFOU
08/05/31 07:52:03
>>954
(・3・) エェー ただ一つの愛があれば救われるYO!

963:デフォルトの名無しさん
08/05/31 10:18:24
(・3・) 〜♪

964:デフォルトの名無しさん
08/05/31 14:17:45
>>962
誰がうまいことを言えとw

965:デフォルトの名無しさん
08/05/31 14:37:24
> ここはプログラムを教えあうところで言い合いしたくないので。
質問がどんどん埋もれるので954の質問お願いします。

これは笑ったwwwwww

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

wwwwww

967:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/05/31 16:39:52
>>959
> ここはプログラムを教えあうところで

いいえ。ぼるじょあがC/C++の宿題を片付けるところです。

969:デフォルトの名無しさん
08/05/31 16:54:58
>>968
質問がどんどん埋もれるので
954
の質問お願いします。

wwwwww

970:ぼるじょあ ◆yBEncckFOU
08/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
08/06/01 22:59:04
>>945
(っ´ 3 `)っ
URLリンク(kansai2channeler.hp.infoseek.co.jp)

972:デフォルトの名無しさん
08/06/01 23:48:15
>>971
本当に助かりました。m(__)m

973:デフォルトの名無しさん
08/06/02 15:35:43
質問がどんどん埋もれるので
954
の質問お願いします。

974:デフォルトの名無しさん
08/06/02 16:45:07
>>971の気持ち悪い人にやってもらいな

975:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/06/05 00:14:36
>>975
> プログラムの冒頭ですが、これで配列可変になるんでしょうか…?
C89はできません

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

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

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

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

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

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

ではまたいつか
URLリンク(www.borujoa.org)


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

4360日前に更新/401 KB
担当:undef