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

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他や発言はスルーの方向で。

【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
・問題文は、出題されたまま全文を書いてください。
・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう.
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。

【質問テンプレ】
[1] 授業単元:
[2] 問題文(含コード&リンク):()
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)

【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
【C 関数検索 man on WWW】 http://www.linux.or.jp/JM/index.html
【過去ログ検索】        http://chomework.sakura.ne.jp/
【wiki】               http://www23.atwiki.jp/homework/

【前スレ】C/C++の宿題を片付けます 108代目
http://pc11.2ch.net/test/read.cgi/tech/1211980711/
2デフォルトの名無しさん:2008/06/08(日) 19:14:28
[1] 授業単元:
Cプログラミング
[2] 問題文(含コード&リンク):()
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6835.txt
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
linux
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
gcc
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)

[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
明日まで
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
スレが変わったのでもう一度書き込ませていただきます。
明日までなのでどうにかよろしくお願いします。。
3デフォルトの名無しさん:2008/06/08(日) 20:08:35
[1]プログラミング
[2]問題文
int型整数の四乗値を返す関数、int pow4(int x)を作る。
ただし関数sqrを利用すること。
[3-1]windows
[3-2]gcc
[3-3]C言語
[4]明後日まで。
よろしくお願いいたします。
4デフォルトの名無しさん:2008/06/08(日) 20:09:51
>>3
>関数sqr
ここ詳しく
5デフォルトの名無しさん:2008/06/08(日) 20:18:31
[1] 授業単元:Cプログラミング入門
[2] 問題文:間隔1の碁盤目状に格子点が並んでいます。
外径R+1、幅1の円環に含まれる格子点の数nを求めるプログラムを作成しなさい。
なお、格子点が円環の境界上にあった場合、外側境界上の点は含め、内側境界上の点は含めない。
以下に半径R=2の場合を示します。
ttp://upp.sakura.ne.jp/src/upp18015.png
全部で16個の格子点が円環に含まれます。
半径が少ない場合の例をあげておきます。
(R,n)=(0,4),(1,8),(2,16),(3,20),(4,32)
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名:gcc
 [3.3] 言語:C
[4] 期限:[2008年6月10日まで]
[5] その他の制限:まだ大した勉強はしていません。
6デフォルトの名無しさん:2008/06/08(日) 20:19:04
>>3
#include <stdio.h>
int sqr(int x) {
return x * x;
}
int pow4(int x) {
return sqr(sqr(x));
}
int main(void) {
int n;
scanf("%d", &n);
printf("%d\n", pow4(n));
return 0;
}
7デフォルトの名無しさん:2008/06/08(日) 20:21:29
>>4
問題文には、二乗値を返すという問題の際にsqrという関数を使ったんですが、この四乗値を返すという問題でもsqrを使えと書いてるんですよね。
8デフォルトの名無しさん:2008/06/08(日) 20:31:17
>>5
#include<stdio.h>
#include<math.h>
#define EPS (1e-10)
long internal_point(double r){
int x, y;
long count=0;

for(x=0;x<=r;x++){
y=sqrt(r*r-x*x+EPS);
if(x==0) count+=2*y+1;
else count+=(2*y+1)*2;
}
return count;
}

int main(void){
int R=2;
printf("%ld\n", internal_point(R+1)-internal_point(R));
return 0;
}
9デフォルトの名無しさん:2008/06/08(日) 20:33:28
>>7
int pow4(int x){ return sqr(x)*sqr(x); }
10デフォルトの名無しさん:2008/06/08(日) 20:33:38
>>8
ありがとうございました。
11デフォルトの名無しさん:2008/06/08(日) 20:35:07
>>6
#include <stdio.h>

#define R 2

int main()
{
int x, y;
unsigned n = 0;
for(x = -(R + 1); x <= R + 1; ++x)
for(y = -(R + 1); y <= R + 1; ++y)
{
unsigned r = x * x + y * y;
if(R * R < r && r <= (R + 1) * (R + 1)) ++n;
}
printf("%d\n", n);
return 0;
}

浮動小数点数つかうなんて正気の沙汰と思えねえ
12デフォルトの名無しさん:2008/06/08(日) 20:45:55
Rが整数だとは?
13デフォルトの名無しさん:2008/06/08(日) 20:50:20
>>11
それだと実行時間が半端ねえよ
R=10000 の時
>>8 1[msec]
>>11 625[msec]
145 ◆3kDaM44dXs :2008/06/08(日) 21:10:06
>>8
すいません、これだと
R=2のときのものしかできないので、
Rを打ち込んでそのときのnを求めるプログラムがほしいのですが…

>>12
整数です。
15デフォルトの名無しさん:2008/06/08(日) 21:30:10
>>14
#include<stdio.h>
#include<math.h>
#define EPS (1e-10)
long internal_point(double r){
int x, y;
long count=0;

for(x=0;x<=r;x++){
y=sqrt(r*r-x*x+EPS);
if(x==0) count+=2*y+1;
else count+=(2*y+1)*2;
}
return count;
}

int main(void){
int R=2, n;

printf("Input R : ");
scanf("%d", &R);
n=internal_point(R+1)-internal_point(R);
printf("%d\n", n);
return 0;
}
165 ◆3kDaM44dXs :2008/06/08(日) 21:35:35
>>15
ありがとうございました。
17デフォルトの名無しさん:2008/06/08(日) 21:47:23
格子点の表示はしなくていいの?
185 ◆3kDaM44dXs :2008/06/08(日) 21:48:32
>>17
格子点の数nだけでよいです。
ありがとうございます。
19デフォルトの名無しさん:2008/06/08(日) 22:03:53
[1] 授業単元:コンピュータグラフィックス
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6826.txt


[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:VisualC++6.0
 [3.3] 言語: C++
[4] 期限:明日の昼までにお願いします。
[5] その他の制限:元の図をもとに、できるだけ簡単にお願いします。
20デフォルトの名無しさん:2008/06/08(日) 22:04:20
[1] 授業単元:コンピュータ入門
[2] 問題文(含コード&リンク):
たてa,よこbの長方形から半径cの円をできるだけ多く取りなさい
出力:円は何個できましたか?
    長方形の何パーセント使いましたか?
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン:わかりません
 [3.3] 言語: C
[4] 期限:明日中
[5] その他の制限:できるだけ簡単に
お願いします
21前スレ765:2008/06/08(日) 22:06:33
[1] 授業単元:オペレーティングシステム
[2] 問題文(含コード&リンク):forkによる子プロセスの生成

子プロセスを2つ生成して、それぞれに、fork1, fork2 のプログ
ラムを実行させるようなプログラムを作成しなさい。

///fork1.c///
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6800.txt

///fork2.c///
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6801.txt

[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:6月11日

fork1とfork2は外部プログラムとして呼びます。
よろしくお願いします。



22デフォルトの名無しさん:2008/06/08(日) 23:16:23
[1] 授業単元:アルゴリズム論
[2] 問題文(含コード&リンク):()
安定結婚問題を解くプログラムを実装し実行せよ。
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C
[4] 期限: 6/9(月)の13時まで
[5] その他の制限:
過去ログ106を基に組み立ててみたのですが、どうも安定な組合わせが
うまく出力できません。どうかよろしくお願いします> <

http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6838.txt
23デフォルトの名無しさん:2008/06/09(月) 00:14:47
>>20
#include<stdio.h>

int main(void){
int a,b,c,count=0,menseki=0;
double circle=0,amari=0;

printf ("縦:");
scanf("%d",&a);
printf ("横:");
scanf("%d",&b);
printf ("円の半径:");
scanf("%d",&c);

menseki = a*b;
circle = c*c*3.14;
count = menseki/circle;
amari = (menseki-(circle*count))/menseki;

printf ( "%d個 余り%4.2f%%\n",count,(amari*100));
}

間違えたこれ円の個数じゃなくて、ただ面積引いてるだけだ
長方形から円を引くって難しいな…俺も知りたいから誰か答えて
24デフォルトの名無しさん:2008/06/09(月) 01:08:42
>>20
問題文は以上ですか?
その問題文ですべてなら
円はほぼ無限個でき、長方形のほぼ100%を使うことができます。
25デフォルトの名無しさん:2008/06/09(月) 01:12:45
できるわけねーだろ
26デフォルトの名無しさん:2008/06/09(月) 01:13:06
>>24
わかりにくくてすみません
長方形を円でくりぬいていき何個円ができるかという感じでお願いします

>>23
考えてくださってありがとうございます
27 ◆nOwZY.WgD2 :2008/06/09(月) 03:35:22
[1] 授業単元:Cプログラミング入門
[2] 問題文:文字列を入力し、その長さ(入力した文字数)を求めよ
[例]文字列を入力して下さい:abcde fghijkl mn
  文字の長さ:16
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名:VC++6.0
 [3.3] 言語:C
[4] 期限:6月10日まで
[5] その他の制限:標準関数を使わずにお願いします。
28デフォルトの名無しさん:2008/06/09(月) 03:44:47
>>27
#include <stdio.h>

int main(void){
char str[64];
int nlen;
scanf("%s", str);
for (nlen = 0; str[nlen]; nlen++);
printf("文字列の長さ:%d", nlen);

return 0;
}
29デフォルトの名無しさん:2008/06/09(月) 03:45:38
ゴメン、scanfはスペースで区切っちゃうんだった
30 ◆nOwZY.WgD2 :2008/06/09(月) 04:00:14
>>28
ありがとうございます!
こうやってみるとめっちゃ簡単ですね(;><)
31デフォルトの名無しさん:2008/06/09(月) 04:09:27
gets使ってもいいなら
scanf("%s", str);
 ↓
gets(str);
にしといてください
32デフォルトの名無しさん:2008/06/09(月) 04:49:08
#include <stdio.h>

int main(void)
{
int i, ch;

printf("文字列を入力して下さい:");
for(i=0; (ch=getchar())!='\n'; i++);

printf("文字の長さ:%d\n", i);

return 0;
}
33デフォルトの名無しさん:2008/06/09(月) 05:29:30
#include <stdio.h>

int main(void)
{
int i, ch;

printf("文字列を入力して下さい:");
for(i=0; (ch=getchar())!='\n' && ch!=EOF; i++);

printf("文字の長さ:%d\n", i);

return 0;
}
34デフォルトの名無しさん:2008/06/09(月) 10:22:30
>>20
ようするにクッキーの生地(長方形)から型(円)を何個とれるか、てこと?
3520:2008/06/09(月) 10:44:00
>>34
そうです
36デフォルトの名無しさん:2008/06/09(月) 12:33:25
>>21
外部プログラムとして動かすのにforkなの?
3720:2008/06/09(月) 12:38:46
どなたか20の解答お願いします!!
38デフォルトの名無しさん:2008/06/09(月) 12:53:25
>>37
難しいです
解法plz
39デフォルトの名無しさん:2008/06/09(月) 13:18:42
むずいね。
しかも今日中か。
40デフォルトの名無しさん:2008/06/09(月) 13:21:42
しかもこれがコンピュータ入門すか。
前回の課題とかせっかくだから載せてもらえる?
できれば作成したソースも。
41デフォルトの名無しさん:2008/06/09(月) 13:25:31
>>20
とりあえず a<b ならそれなりの解が出るソースコード
解法plz
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int pattern1(double a, double b, double c){
int x, y;
y=(a-2*c)/(sqrt(3.)*c)+1;
x=b/(2*c);
return x*y-y/2;
}
int pattern2(double a, double b, double c){
int x, y;
y=a/(2*c);
x=b/(2*c);
return x*y;
}
int main(int argc, char *argv[]){
double a=20., b=30., c=3.;
int num, maximum;
switch(argc){
case 4: c=atof(argv[3]);
case 3: b=atof(argv[2]);
case 2: a=atof(argv[1]);
}
maximum=pattern1(a, b, c);
num=pattern2(a, b, c);
if(num>maximum) maximum=num;
printf("円の数:%d 使用率:%.3f%%\n", maximum, (c*c*M_PI*maximum)/(a*b)*100);
return 0;
}
4241:2008/06/09(月) 13:44:20
>>20
>>41 の訂正
return x*y-y/2;

return x*y-((b-x*2*c<c)?y/2:0);
43デフォルトの名無しさん:2008/06/09(月) 13:47:56
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):
abbcという問題の中にabがあればそのabをxyzに置き換えるプログラムをつくりなさい、です。
また、なかった場合は問題をそのまま出力するようにしなさい、です。
問題と単語は自分で適当に入力するようにプログラムするようにしなさい、です。
どうぞよろしくお願いします。
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: (2008年6月12日まで
[5] その他の制限: ポインタ変数を習ってまもないです
44デフォルトの名無しさん:2008/06/09(月) 14:00:10
>>43
#include<stdio.h>
#include<string.h>

void replace(char dest[], const char src[], const char modify[], const char org[]){
const char *p;
int org_len;

org_len==strlen(org);
while((p=strstr(src, org))){
dest+=sprintf(dest, "%.*s%s", p-src, src, modify);
src+=p-src+org_len;
}
sprintf(dest, "%s", src);
}
int main(void){
char *src="abbc", *org="ab", *modify="xyz";
char dest[1024];

puts(src);
replace(dest, src, modify, org);
puts(dest);

return 0;
}
45デフォルトの名無しさん:2008/06/09(月) 14:01:03
>>44 の == を = に訂正しておいて
46デフォルトの名無しさん:2008/06/09(月) 14:52:14
ここのスレって、意外と勉強になる、、、、
47デフォルトの名無しさん:2008/06/09(月) 14:53:51
>>46
ここも一緒に見てると、C言語に詳しい人があれこれ討論して
て知らないことも詳しくでてきたりするのでいいよ。
C言語なら俺に聞け(入門篇) Part 29
http://pc11.2ch.net/test/read.cgi/tech/1212329099/
48デフォルトの名無しさん:2008/06/09(月) 15:22:34
>>44
ありがとうございます。
あと、聞きたいのですが、xyzに置き換えるのはそのままでアルファベットを任意でprintf,scanfして行う場合は
どのようにプログラムを書いたらいいのでしょうか?
49デフォルトの名無しさん:2008/06/09(月) 16:38:39
[1] 授業単元:Cプログラミング
[2] 問題文:
入力した文字からキャラクターを作成し、名前とパラメーターを表示。
入力した文字によってパラメーターが変化する。
例)・生命力 = 入力した文字コードの合計
  ・攻撃力 = 入力した偶数番目文字コードの合計
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名:VC++6.0
 [3.3] 言語:C
[4] 期限:6月13日まで
[5] その他の制限:文字列操作を習ったばかりです。
            例にある生命力、攻撃力の場合のプログラムをお願いします。
50デフォルトの名無しさん:2008/06/09(月) 16:44:54
リナックスの問題で
1+(1+2)+(1+2+3)+(1+2+3+・・・+n)
二重ループを用いて書いてください。
よろしくお願いします
51デフォルトの名無しさん:2008/06/09(月) 16:46:22
>>49

#include <stdio.h>
#include <string.h>
int main(void) {
char name[1024];
int code = 0;
int hp = 0, at = 0;
int i = 0;
gets(name);
for (i = 0; i < strlen(name); i++) {
code = name[i];
hp += code;
if (i % 2 == 0) {
at += code;
}
}
printf("名前:%s 生命力:%d 攻撃力:%d\n", name, hp, at);
return 0;
}

間違ってたら自分で治してね☆
52デフォルトの名無しさん:2008/06/09(月) 17:15:12
>>51
無事エラーも出ず、例のとおり実行できました。
ありがとうございます。
53デフォルトの名無しさん:2008/06/09(月) 17:22:15
>>50
#include <stdio.h>

int main(void)
{
int i, j, n, sum = 0;

scanf("%d", &n);

for(i=1; i<=3; i++) for(j=1; j<=i; j++) sum += j;
for(i=1; i<=n; i++) sum += i;

printf("%d", sum);

return 0;
}
54デフォルトの名無しさん:2008/06/09(月) 17:33:09

1 + (1 + 2) + (1 + 2 + 3) + ・・・ + (1 + 2 + 3 + ・・・・ + n)
55デフォルトの名無しさん:2008/06/09(月) 17:47:37
[1] 授業単元:グラフ理論2
[2] 問題文:
ノード数100、平均リンク数4の、 ランダムネットワークを生成。
各ノードには予め1or-1の値をランダムで割り振る。
このネットワーク全体の熱量を求めるプログラムを考えよ。

*注意1
Ni(ノードi)とNj(ノードj)、
熱量=Ni*Nj
上記の式を全リンクで計算し、結果を足し上げていく。
すなわち、接続しているノード同士が同じ値だと全体の熱量は増していく。
*注意2
ランダムネットワークとは、リンク数とリンク先がランダムに選択されたネットワークのことで、今回は分断されてないネットワークを利用すること。
[3] 環境
 [3.1] 言語:C
[4] 期限:6月11日まで

以上、よろしくお願いします。
56 :2008/06/09(月) 19:31:20
内容:
[1] 授業単元: c言語
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6830.txt
[3] 環境
 [3.1] OS:Windows vista
 [3.2] コンパイラ名とバージョン:
 [3.3] 言語: c
[4] 期限: ([yyyy年mm月dd日hh:mmまで] 今週中に
[5] その他の制限:問題文の部分に書いてます。
57デフォルトの名無しさん:2008/06/09(月) 20:13:55
>>50
int main(void){
int i=0;
int total=0;
int n=0;
scanf("%d",&n);
for(i=1;i<=n;i++){
total+=1+i*i/2;
}
return 0;
}

え?二重ループ?
無駄はない方がいいよ
58デフォルトの名無しさん:2008/06/09(月) 20:18:12
ん、計算順序おかしいや

total+=(1+i)*i/2;

だね


ついでに
printf("%d",total);
も足しといて
59デフォルトの名無しさん:2008/06/09(月) 20:26:21
問題の指定を守らないのは回答する資格ないから
60デフォルトの名無しさん:2008/06/09(月) 20:53:40
>>20
は壮大な釣りだよ。最密充填はそれほど簡単な問題ではない。
ここ数百年かけてかなり解けるようになってはいるけどね。
多数の数学者の頭脳を持ってしても手こずっている問題だと
推して知るべし。
6155:2008/06/09(月) 20:56:21
失礼しました。
再度お願いいたします。

[1] 授業単元:グラフ理論2
[2] 問題文:
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6843.txt
[3] 環境
 [3.1] 言語:C
[4] 期限:6月11日まで
62デフォルトの名無しさん:2008/06/09(月) 21:20:35
>>60
そこまで大仰なものでもないだろ
63デフォルトの名無しさん:2008/06/09(月) 21:24:52
長方形に円をつめるだけなら簡単。
64デフォルトの名無しさん:2008/06/09(月) 21:28:25
>>56
vistaでの日本語文字コードって何だっけ?
Shift-jis と仮定してよいなら、

int c;
while ((c = getchar()) != EOF) {
if (c & 0x80) {
putchar(c); c = getchar;
}
else if (islower(c)) c = toupper(c);
else if (isupper(c)) c = tolower(c);
putchar(c);
}
65デフォルトの名無しさん:2008/06/09(月) 21:29:35
>>60
最適解を求めることができればそれはとてもすごいことだということは
分かるが、自分の思いつく範囲で可能な限りたくさん、というのを
試しているのだと思うよ。

a b がともに2*cよりも大きい
→円は1個でき、(c*c*PI)*100/(a*b) パーセント
という、とても稚拙なものであっても、とりあえず要求は満たされてるんだよ

ということで、>>20にはがんばってもらいたい。
66デフォルトの名無しさん:2008/06/09(月) 21:31:21
getchar; -> getchar(); orz
67デフォルトの名無しさん:2008/06/09(月) 21:34:39
[1] 授業単元:
Cプログラミング
[2] 問題文(含コード&リンク):()
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6846.txt
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
linux
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
gcc
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)

[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
今日中
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
明日以降でも提出はできるのですが、一応期限は今日までなのでよろしくお願いします。
68デフォルトの名無しさん:2008/06/09(月) 21:35:55
>>67
たぶん前スレとかによく似たのがあるよ。
今日中ってのもアレな話だけど、がんばれ。
69デフォルトの名無しさん:2008/06/09(月) 21:40:52
誰も見ていないし更新もされていないだろうwikiにスタック載ってるなw
70デフォルトの名無しさん:2008/06/09(月) 22:07:40
>>41
ありがとうございます!
71デフォルトの名無しさん:2008/06/09(月) 22:08:54
[1] 授業単元:
Cプログラミング
[2] 問題文(含コード&リンク):()
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6847.txt
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
Windows
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
ChSciTE
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)

[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
今日中
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
ファイル読み込み、書き込み
72デフォルトの名無しさん:2008/06/09(月) 22:15:12
>>68
前スレっていうと自分の頼んだ課題かもしれません。前スレでも依頼したので・・
長くて面倒そうだからやってもらえないのかもしれませんが、どうにかよろしくお願いします。。
73デフォルトの名無しさん:2008/06/09(月) 22:32:55
>>71ですが、
コンパイラはBorlandCでもいいです。
74デフォルトの名無しさん:2008/06/09(月) 22:43:09
>>72
http://pc11.2ch.net/test/read.cgi/tech/1211980711/866
この人?なら回答してくれてない?
既に依頼済みならあらためてアップロードしてる意味がちょっと
分からないです。しかも必要な内容削られてるし。。。なぜ。。
75デフォルトの名無しさん:2008/06/09(月) 22:45:27
>>74
その通りです。
1つ目の課題はやってもらったのですが、
もう一つの課題が残っていまして・・それが>>67なのです。。
7674:2008/06/09(月) 22:45:59
ちゃんと動いたって報告してるしやっぱり違う人でしょかー。
例題のソースからもコメントがばっさり抜かれてるし、どういうことだろう。
7767:2008/06/09(月) 22:46:15
ちなみに・・長すぎると読むのが面倒かなと思って、短く削ってアップロードし直しました。
78デフォルトの名無しさん:2008/06/09(月) 22:53:22
>短く削って
何を削っていいか判断できるぐらいなら宿題も自分で解けるだろw
7967:2008/06/09(月) 22:58:26
>>78
プログラミング上級者のここのスレの方達だと、例題のコメントや余計な制約は邪魔なだけかなと思って削らせていただきました。
何分実力不足なので、私自身の力では無理です。。力を貸して下さい
80デフォルトの名無しさん:2008/06/09(月) 22:59:57
[1]プログラミング
[2]問題文
画面に「こんにちは」と表示して改行する、void hello(void)関数を作る。
[3-1]windows
[3-2]gcc
[3-3]C言語
[4]明後日まで。
よろしくお願いいたします。
81デフォルトの名無しさん:2008/06/09(月) 23:01:19
>>80
void hello(void)
{
printf("こんにちわ\n");
return;
}
82デフォルトの名無しさん:2008/06/09(月) 23:04:05
>>79
上級者(ってなんだ?)になればコメントが不要になるか?
→必要
制約を無視していいか?
→よくない

ということなんで、素直に
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6813.txt
の課題2をお願いしますって言っとけばよかったのに。
むやみにアップロードして資源を使うこともないよ。
8367:2008/06/09(月) 23:06:06
>>82
そうですね、すいません。余計なことをしてしまいました。。
これからは気をつけます。
84デフォルトの名無しさん:2008/06/10(火) 00:31:55
>>59
回答するつもりも無いならレスする必要(ry
こうですか?わかりません><


この言い方古いのかな
85デフォルトの名無しさん:2008/06/10(火) 00:33:55
>>84
っつーか2重ループの回答あがってるし、
どうでもいい
8621:2008/06/10(火) 01:56:32
>>36
確認しましたが、特に指定はないとのことです…
曖昧な返答で申し訳ありません。どうかよろしくお願いします。

87デフォルトの名無しさん:2008/06/10(火) 01:58:16
制約を守らないのにループを残した>>57はなんだ?
どうせならこうするがね。

int main(void){
int n=0;
scanf("%d",&n);
printf("%d\n", n*(n+1)*(n+2)/6);
return 0;
}
88デフォルトの名無しさん:2008/06/10(火) 02:01:11
>>19お願いします。できれば今日中に・・・
89デフォルトの名無しさん:2008/06/10(火) 02:09:47
>>86
forkを使って、fork1.c fork2.cそれぞれから生成される実行体を
外部プロセスとして呼び出すのですか?
という意図の質問をしてしまったのであれば、前回の課題を実力で
解答したのではないことがばれたかと。
理解しなかったっしょ。もったいない。
90デフォルトの名無しさん:2008/06/10(火) 02:42:29
>>88
アフィン変換とかでぐぐってみればどうだろう。
91デフォルトの名無しさん:2008/06/10(火) 03:28:18
[1] 授業単元:
C言語入門
[2] 問題文(含コード&リンク):
二つの整数値を入力したら最大公約数を表示してくれるやつ作れ
[3] 環境
 [3.1] OS:
 windows
 [3.2]
 borland c++ 5.5.1
 [3.3] 言語:
 C

自分で作ってみたのですがうまく動きません
どこが間違ってるんでしょうか?

#include <stdio.h>

int main (void)
{
int x,y,z=0,i=1;

printf("二つの整数を「,」で区切って入力してください:");
scanf("%d,%d",&x,&y);

while(i==1){
if(x>y) z=x-y;
if(x<y) z=y-x;
else break;
}
printf("最大公約数は%d\n",z);
return 0;
}
92デフォルトの名無しさん:2008/06/10(火) 03:50:48
>>91です
意味ないかもしれませんが
正解に近づいたかもしれないので貼ってみます

#include <stdio.h>

int main (void)
{
int x,y,a,b;

printf("二つの整数を「,」で区切って入力してください:");
scanf("%d,%d",&x,&y);

a=x;
b=y;

while(a!=b){
if(a>b) a=a-b;
if(a<b) a=b-a;
}
printf("%d%dの最大公約数は%d\n",x,y,a);
return 0;
}
93デフォルトの名無しさん:2008/06/10(火) 03:52:44

[1] 授業単元:
C言語
[2] 問題文(含コード&リンク):()
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6849.txt
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
Windows
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
Microsoft Visual Studio 2008
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)
C
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
明日
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
無し

お願いします。
94デフォルトの名無しさん:2008/06/10(火) 04:12:00
#include <stdio.h>

int main(void)
{
int i, j, count[11] = {0}, n;

while(1) {
scanf("%d", &n);
if(n==-1) break;
if(0<=n && n <= 100) count[n/10]++;
}

for(i=0; i<10; i++) {
printf("%3d -%3d %d人 ", i*10, i*10 + 9, count[i]);
for(j=0; j<count[i]; j++) putchar('*');
putchar('\n');
}
printf("100      %d人 ", count[10]);
for(j=0; j<count[10]; j++) putchar('*');
putchar('\n');

return 0;
}
95デフォルトの名無しさん:2008/06/10(火) 04:16:28
>>92
#include <stdio.h>

int main (void)
{
   printf("二つの整数を「,」で区切って入力してください:");
   scanf("%d,%d",&x,&y);
   int a,i;
   if (x>y) {
      for (i=1;i<=y;i++) {
         if (y%i == 0) {
            if (x%i == 0) a = i;
         }
      }
   } else {
      for (i=1;i<=x;i++) {
         if (x%i == 0) {
            if (y%i == 0) a = i;
         }
      }
   }
   printf("%d%dの最大公約数は%d\n",x,y,a);
   return 0;
}
96デフォルトの名無しさん:2008/06/10(火) 04:19:57
>>93
発展
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(void)
{
int i, j, count[11] = {0}, n;

srand(time(NULL));

while(1) {
n = rand() % 102 - 1;
if(n==-1) break;
count[n/10]++;
}

for(i=0; i<10; i++) {
printf("%3d -%3d %3d人 ", i*10, i*10 + 9, count[i]);
for(j=0; j<count[i]; j++) putchar('*');
putchar('\n');
}
printf("100      %3d人 ", count[10]);
for(j=0; j<count[10]; j++) putchar('*');
putchar('\n');
return 0;
}

97デフォルトの名無しさん:2008/06/10(火) 04:43:15
>>95
ありがとうございます
98デフォルトの名無しさん:2008/06/10(火) 04:55:23
while(a!=b) {
while(a > b) a -= b;
a = a + b;
b = a - b;
a = a - b;
}
99デフォルトの名無しさん:2008/06/10(火) 04:56:26
>>92
,で区切る意味が全く分からない
再帰を使わずに作ると

#include <stdio.h>
int gcd(int a, int b);
int main(void){
int x, y, z;
scanf("%d", &x);
scanf("%d", &y);
z = gcd(x, y);
printf("%d\n", z);
}

int gcd(int a, int b){
int c;
while (b > 0){
c = a % b;
a = b;
b = c;
}
return a;
}
10022:2008/06/10(火) 05:12:14
結構プログラムを書き換えましたが、以前さっぱりです・・・
いつでもいいので、どうかよろしくお願いします。

ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6850.txt
101デフォルトの名無しさん:2008/06/10(火) 05:43:56
>>21
#include <sys/types.h>
#include <sys/wait.h>
#include <stdio.h>
#include <unistd.h>
int main(void) { pid_t c[2], p; int s;
switch (c[0] = fork()) { case -1: perror("fork"); break;
case 0: execlp("./fork1", "fork1", NULL); perror("fork1"); _exit(1); /* NOTREACHED */
default: break; }
switch (c[1] = fork()) { case -1: perror("fork"); break;
case 0: execlp("./fork2", "fork2", NULL); perror("fork2"); _exit(1); /* NOTREACHED */
default: break; }
while (c[0] != -1 || c[1] != -1) { int i;
if ((p=wait(&s)) == -1) { perror("wait"); break; }
else for (i = 0; i < 2; i++) if (p==c[i]) {
if (WIFEXITED(s)) printf("fork%c exit(%d)\n", i+1, WEXITSTATUS(s));
else if(WIFSIGNALED(s)) printf("fork%c killed(%d)\n", i+1, WTERMSIG(s));
c[i]=-1;break; }
if (i==2) {fprintf(stderr, "?\n"); break;}}
return 0; }
102101:2008/06/10(火) 05:45:59
どうして 「backslash n」が消えるんだ???
103デフォルトの名無しさん:2008/06/10(火) 05:57:44
>>102
ソースを貼るのには適さないんだし、行が多い場合はテキストファイルを
ここ用のロダにあげなよw
104デフォルトの名無しさん:2008/06/10(火) 10:17:36
学科の出席簿作成。
15人分の学生を表示し、入力により内容を変動させる。
表示順番:出席表
<入力>学生番号0〜14
<入力>曜日番号0〜6
<入力>時限番号0〜3
<入力>出欠番号0〜1
<入力>学生番号0〜14の時に99を入力するとプログラム終了。
105デフォルトの名無しさん:2008/06/10(火) 10:17:59
ここまでは自力でできた。
#include <stdio.h>

int main()
{
int gakusei,youbi,jigen,syukketsu;

printf("学生Noを入力してください----");
scanf("%d", &gakusei);
printf("曜日番号を入力してください----");
scanf("%d", &youbi);
printf("時限番号を入力してください----");
scanf("%d", &jigen);
printf("出欠番号を入力してください----");
scanf("%d", &syukketsu);

if(gakusei=99){
printf("学生番号は99以外の数字を入力してください。\n");
}
if(gakusei>=0||gakusei<=14 || youbi>=0||youbi<=6 || jigen>=0||jigen<=3 || syukketsu>=0||syukketsu<=1){
printf("学生No%d\n",gakusei);
printf("月曜日\n");
printf("時限番号%d\n",jigen);
printf("出欠番号%d\n",syukketsu);
}else{
printf("エラーです\n");
}
return 0;
}
106デフォルトの名無しさん:2008/06/10(火) 12:05:18
>>101
forkしてexecか。なる。
出題者じゃないが勉強になった。
107デフォルトの名無しさん:2008/06/10(火) 12:20:46
そういう事柄に関しては
小耳に挟んだ
ということと
勉強になったということは
根本的に違うということは区別しようね。
108デフォルトの名無しさん:2008/06/10(火) 12:28:22
それにして、インデントがないと、ソースが読みにくい(><)
109デフォルトの名無しさん:2008/06/10(火) 12:33:35
まあ手元ソース書く場合はメモ帳とか使うんだろうからせめて
TAB1個->全角スペース3個とかで置換かけてから投下しようよw
それがあれならアップローダーにあげるとかさ・・・
110デフォルトの名無しさん:2008/06/10(火) 12:33:57
>>5の問題の補足なんですが

円の中心に原点をおくと、格子点はi,jを整数として座標(i,j)で表される。(i,j)が円環に含まれる場合に1,含まれない場合に0を返却する関数
is_inrarge(double r, int i, int j)
を作成し、これを用いて、半径Rをキー入力することでn(R)を表示するプログラムを作成しなさい。

とのことなのでこれを踏まえてもう一度この問題の解答をお願いします。
111デフォルトの名無しさん:2008/06/10(火) 12:53:24
>>109
全角はねーよw
112デフォルトの名無しさん:2008/06/10(火) 13:05:53
[1] 授業単元: C++
[2] 問題文キーボードから2以上の整数を入力し、その数が素数であるかどうかを判断するコードを記述せよ。
ただし入力される数値が2以上でない場合、繰り返し入力を求めること。[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: (gcc 3.4 )
 [3.3] 言語: C++
([[4] 期限:今日の5時mで
[5] その他の制限:なし
113デフォルトの名無しさん:2008/06/10(火) 13:07:32
>>110
#include <stdio.h>

int is_inrange(double r, int i, int j)
{
return r * r >= i * i + j * j;
}

int main(void)
{
int i, j, r, count = 0;

scanf("%d", &r);

for(i=-(r+1); i<=r+1; i++) {
for(j=-(r+1); j<=r+1; j++) {
if(is_inrange(r+1, i, j)&&!is_inrange(r, i, j)) count++;
}
}

printf("%d", count);

return 0;
}
114デフォルトの名無しさん:2008/06/10(火) 13:08:44
そういうオープンな問題が出るわきゃないだろ
出した講師か教師が糞
2^2^1024-1が素数かも判定しなきゃならなくなる罠
115ルート:2008/06/10(火) 13:11:11
[1] 授業単元: プログラミング C言語
[2] 問題文(含コード&リンク): 【課題】
                BMPファイルを読み込み、以下の処理を行って下さい。

                @2値化(白黒画像) 閾値は指定できること
                Aディザ法による2値化
                B誤差拡散法による2値化
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: VC++
 [3.3] 言語: C
[4] 期限: 〜6月13日0:00
[5] その他の制限: 無い
116デフォルトの名無しさん:2008/06/10(火) 13:12:25
なんか、ここを見てるとプログラミングを嫌いにさせたいのか
と思うような出題内容が多いよな。

まあIT業界は悲惨なので学生時代に嫌いにさせておいて
就職口から外す講師の親心なのかもしれないけどw

ってそれはねーかw
117デフォルトの名無しさん:2008/06/10(火) 13:18:15
口だけクンががんばってるなw
118デフォルトの名無しさん:2008/06/10(火) 13:19:34
@
[1] 授業単元: C++
[2] 問題文 キーボードから2以上の整数を入力し、その数が素数であるかどうかを判断するコードを記述せよ。
ただし入力される数値が2以上でない場合、繰り返し入力を求めること。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: C++
[4] 期限: 6月10日
[5] その他の制限: なし
A
[1] 授業単元: C++
[2] 問題文 直角三角形の表示を行うフローチャートは左下が直角の直角三角形を表示するプログラムであった。直角が左上側、右上側、右下側の三角形を表示するプログラムをそれぞれ作成せよ。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: C++
[4] 期限: 6月17日
[5] その他の制限: なし

お願いします。
119デフォルトの名無しさん:2008/06/10(火) 13:24:22
書くだけクンが大きなこと言えるのかなw
120デフォルトの名無しさん:2008/06/10(火) 13:24:34
>>112
#include <iostream>

int main(void)
{
int n, flag = 1;

do {
std::cout << "2以上の整数を入力してください:";
std::cin >> n;
}while(n < 2);

for(int i = 2; i*i<=n; i+=2) {
if(n % i == 0) {
flag = 0;
break;
}
}


std::cout << n << "は素数" << (flag ? "です" : "ではありません") << std::endl;
}
121デフォルトの名無しさん:2008/06/10(火) 13:32:01
2以上の素数を入力して下さい 15
15は素数です
122デフォルトの名無しさん:2008/06/10(火) 13:32:56
ミスった
i+=2 → i++
123デフォルトの名無しさん:2008/06/10(火) 13:33:47
>>118
#include <iostream>

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

std::cin >> n;

//左上
for(i=n; i>0; i--) {
for(j=i; j>0; j--) std::cout << '*';
std::cout << std::endl;
}
//右下
for(i = 0; i<n; i++) {
for(j=1; j < n - i; j++) std::cout << ' ';
for(j=0; j<=i; j++) std::cout << '*';
std::cout << std::endl;
}

//右上
for(i=0; i<n; i++) {
for(j=0; j<i; j++) std::cout << ' ';
for(j=n; j>i; j--) std::cout << '*';
std::cout << std::endl;
}
}
124デフォルトの名無しさん:2008/06/10(火) 13:44:20
2以上の素数を入力して下さい:2
2は素数ではありません
125デフォルトの名無しさん:2008/06/10(火) 13:50:00
>>124
バカ発見
126デフォルトの名無しさん:2008/06/10(火) 14:02:11
[1] 授業単元: プログラミング C言語
[2] 問題文(含コード&リンク)課題:ファイル"test.txt"から文字列を読み込み、並びを逆にしてファイル"sample.txt"に出力するプログラムを作成せよ。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン:Microsoft Visual Studio 2005
 [3.3] 言語: C
[4] 期限: 〜6月11日11:00
[5] その他の制限: ポインタを使う
127110:2008/06/10(火) 14:10:22
>>113ありがとうございます
128デフォルトの名無しさん:2008/06/10(火) 14:15:28
>>126
#include <stdio.h>
void f(FILE *in, FILE *out)
{
int ch = fgetc(in);
if(ch==EOF) return;
f(in, out);
fputc(ch, out);
}

int main(void)
{
FILE *f_in, *f_out;

if((f_in=fopen("test.txt", "r"))==NULL) return 0;
if((f_out=fopen("sample.txt", "w"))==NULL) return 0;

f(f_in, f_out);

fclose(f_in);
fclose(f_out);

return 0;
}
129デフォルトの名無しさん:2008/06/10(火) 14:31:41
>>128
正しく実行できません。
130デフォルトの名無しさん:2008/06/10(火) 14:37:33
>>126
int main(void) {
FILE* in;
FILE* out;
int c;
char ss[1024];
int i = 0;
in = fopen("test.txt", "r");
if (in == NULL) {
return -1;
}
out = fopen("sample.txt", "w");
if (out == NULL) {
return -1;
}
while ((c = fgetc(in)) != EOF) {
ss[i] = c;
i++;
}
ss[i] = '\0';
i--;
while (i >= 0) {
fputc(ss[i], out);
i--;
}
fclose(in);
fclose(out);
return 0;
}

適当すぎたorz
131130:2008/06/10(火) 14:39:26
おかしかったら自分でなんとかして。
結構、初心者向けに書いたつもりなので
13220:2008/06/10(火) 15:38:13
>>41>>41
int pattern1(double a, double b, double c){
int x, y;
y=(a-2*c)/(sqrt(3.)*c)+1;
x=b/(2*c);
return x*y-((b-x*2*c<c)?y/2:0);;
}
すみませんがここの処理が何をやってるのかわからないのですが
説明していただけませんか?
133デフォルトの名無しさん:2008/06/10(火) 15:38:36
[1] 授業単元:
Cプログラミング
[2] 問題文(含コード&リンク):()
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6813.txt
の課題2をお願いします
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
linux
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
gcc
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)

[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
明後日
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
特にありません
134デフォルトの名無しさん:2008/06/10(火) 15:41:55
[1] 授業単元:プログラミング入門
[2] 問題文(含コード&リンク):小さい順の友愛数ペア10組を探し出すプログラムをつくれ。
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:VC 6.0
 [3.3] 言語:C++
[4] 期限:2008年6月17日14:40まで
[5] その他の制限:for,while,if文ぐらいしか習ってません。
  main関数のみでお願いします。
  参考プログラム:約数の和の計算
#include <stdio.h>

void main()
{
int m; /* 整数 */
int n; /* 1〜m まで繰り返す */
int s; /* 約数の和(累計) */

scanf("%d", &m); /* キーボードから整数を読み込む */

s = 0; /* s の内容をクリア */
for (n = 1; n <= m; n++) { /* 1〜m まで繰り返す */
if (m % n == 0) /* 約数の判定 */
s += n; /* 約数であれば s に足す */
}

printf("整数%dの約数の和は%dです。\n", m, s); /* 約数の和の画面表示 */
}

よろしくお願いします。

135デフォルトの名無しさん:2008/06/10(火) 15:48:26
[1] 授業単元: C++
[2] 問題文次々に入力される値を合計する処理である。
変数dtにデータを入力する処理を繰り返し行い、
入力終了後その合計sumと平均aveを出力する。
なお、入力データは正の整数とし、
入力するデータがなくなったら、
終わりの印として負の値を入力する。
【ヒント】
平均の計算は、合計÷入力回数。
入力回数も変数を用意して数える。

[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: (gcc 3.4 )
 [3.3] 言語: (C++)
[4] 期限: ([2008年06月24日午後5時までまで] )
[5] その他の制限:なし
136ルート:2008/06/10(火) 16:02:29
>>115 よろしくおねがいします
137デフォルトの名無しさん:2008/06/10(火) 16:02:34
[1] 授業単元: C++
[2] 問題文 次の処理を行うプログラムを作成しなさい。

キーボードから入力した2進数を
10進数に変換して出力する。
ただし,入力が2進数でなかった場合
エラーメッセージを出力して最初からやりなおす。


【実行例】
2進数を入力してください 10101
21

2進数を入力してください 12345
エラー(2進数ではありません)


[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: (gcc 3.4 )
 [3.3] 言語: (C++)
[4] 期限: ([2008年06月24日午後5時までまで] )
[5] その他の制限:なし
お願いします
13821:2008/06/10(火) 16:07:41
>>101
ありがとうございました。
来週テストということもあり、前回のプログラムも含めて復習してみます。
本当にありがとうございました。
139デフォルトの名無しさん:2008/06/10(火) 16:18:36
>>135
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(void) {

char input[1024];
int temp = 0;
int dt = 0;
int count = 0;

gets(input);
while ((temp = atoi(input)) >= 0) {
count++;
dt += temp;
gets(input);
}

printf("合計:%d\n", dt);
printf("平均:%d\n", dt / count);

return 0;
}
140デフォルトの名無しさん:2008/06/10(火) 17:26:47
[1]データ構造(C言語)
[2]以下のようなstudent構造体の配列をプログラム内に定義しておく。

struct student{
int num;
char name[20];
int score;
};
struct student St[]={{3, "鈴木三郎", 86}, {1, "山田一郎", 75}, {14, "高橋十四子", 93}, {2, "田中二子", 68}};

このデータをfprintf()を用いてファイルに出力するプログラムを作成せよ。またcatコマンドなどにより出力し、内容が正しいことを確認せよ。
[3]OS Linux
言語 C
[4]10日18時
[5]なし


おねがいします。
141デフォルトの名無しさん:2008/06/10(火) 17:33:54
>>134
#include <stdio.h>

int f(int n)
{
int i, s = 0;
for(i=1; i<=n/2; i++) if(n % i == 0) s += i;
return s;
}

int main(void)
{
int i, j, cnt = 0;

for(i=1; cnt < 10; i++) {
j = f(i);
if(j > i && i == f(j)) {
printf("%d, %d\n", i, j);
cnt++;
}
}

return 0;
}
142デフォルトの名無しさん:2008/06/10(火) 17:43:09
>>137
#include <iostream>

using namespace std;

int main()
{
int i, n = 0;
char buff[256], *p;
while(1) {
cout << "2進数を入力してください ";
cin >> buff;
for(p=buff; *p; p++) if(*p!='0' && *p!='1') break;
if(!*p) break;
cout << "エラー(2進数ではありません)" << endl;
}

for(p=buff; *p; p++) n = n * 2 + *p - '0';

cout << n << endl;
}
143デフォルトの名無しさん:2008/06/10(火) 17:44:02
>>140
struct student {
int num;
char name[20];
int score;
};
int main(void) {
FILE* fp = fopen("aaa.txt", "w");
int i = 0;
struct student St[]={{3, "鈴木三郎", 86}, {1, "山田一郎", 75}, {14, "高橋十四子", 93}, {2, "田中二子", 68}};
struct student st;
if (fp == NULL) {
return -1;
}
for (; i < 4; i++) {
strcpy(st.name, St[i].name);
st.num = St[i].num;
st.score = St[i].score;
fprintf(fp, "番号:%d 氏名:%s スコア:%d\n", st.num, st.name, st.score);
}
fclose(fp);
return 0;
}
Cで動くかしらんけど。
144デフォルトの名無しさん:2008/06/10(火) 17:44:25
>>133
一応動くけど初心者なので責任は取れない

暇な人は添削を m( __ __ )m

http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6851.txt
145デフォルトの名無しさん:2008/06/10(火) 17:50:27
あ、include載せ忘れてる。

ま、いっか。
それくらい自分でなんとなしてくれ。
146デフォルトの名無しさん:2008/06/10(火) 18:15:56
>>141
main関数のみでお願いします。
せっかくやってもらった立場でそうと言いにくい
>>134に代わって御願いします
147デフォルトの名無しさん:2008/06/10(火) 18:40:06
>>144
ほんとありがたいです。ありがとうございました!
148デフォルトの名無しさん:2008/06/10(火) 19:11:37
>>134
#include <stdio.h>

int main(void)
{
int i, j, cnt = 0, m, n;

for(i=1; cnt < 10; i++) {
n = 0;
for(j=1; j<=i/2; j++) if(i % j == 0) n += j;

if(n > i) {
m = 0;
for(j=1; j<=n/2; j++) if(n%j ==0) m += j;
if(m == i) {
cnt++;
printf("%d, %d\n", i, n);
}
}
}

return 0;
}
149デフォルトの名無しさん:2008/06/10(火) 19:34:18
>>148 様
ありがとうございます
150デフォルトの名無しさん:2008/06/10(火) 19:44:13
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
1.2の補数を用いて負の数も扱えるように拡張せよ.
2.2つの2進数の差を求めるプログラムを作成せよ.
3.任意の(変数や定数で指定した)桁数の2進数を扱えるようにせよ.
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:VC 6.0
 [3.3] 言語:C++
[4] 期限:2008年06月11日まで
[5] その他の制限:このプログラムを基にお願いします。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/clip.gif
151デフォルトの名無しさん:2008/06/10(火) 19:44:42
>>150
ワロタw
152デフォルトの名無しさん:2008/06/10(火) 19:45:31
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
1.2の補数を用いて負の数も扱えるように拡張せよ.
2.2つの2進数の差を求めるプログラムを作成せよ.
3.任意の(変数や定数で指定した)桁数の2進数を扱えるようにせよ.
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:VC 6.0
 [3.3] 言語:C++
[4] 期限:2008年06月11日まで
[5] その他の制限:このプログラムを基にお願いします。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6853.txt
153デフォルトの名無しさん:2008/06/10(火) 19:45:35
盛大な釣りですね
154デフォルトの名無しさん:2008/06/10(火) 19:49:42
[1]プログラミング
[2]問題文
警報をno回鳴らす関数void alart(int no)をメイン文も含め作る。
[3-1]windows
[3-2]gcc
[3-3]C言語
[4]明後日まで。
よろしくお願いいたします。
155デフォルトの名無しさん:2008/06/10(火) 20:12:43
>>150 >>152 です

すみません><
156Ctrl+Gがどうしようもないや:2008/06/10(火) 20:16:15
void alart(int no);
int main(void){
int no=0;
alart(no);
return 0;
}

void alart(int no){
if(no);
system("echo 数字を入力してください");
system("set /p no=");
system("for /l in (1,1,%no%) do echo ^G");
system("set no=");
}
157デフォルトの名無しさん:2008/06/10(火) 20:31:48
[1] 授業単元:プログラミング演習

[2] 問題: http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6854.txt
 [3.1] OS: WindowsXp
 [3.2] コンパイラ名とバージョン:visualstdio 2008
 [3.3] 言語:C++
[4] 期限:6月13日
[5] その他の制限:なし。

   よろしくお願いします.
158scanfの戻り値に自信なし:2008/06/10(火) 20:47:52
>>154
#include <stdio.h>
void alart(int no);
int main(void){
int ret=0;
int no=0;
printf("数字を入力して下さい");
scanf("%d",&no);
if(ret){
puts("数字っつったろぼけ");
return 1;
}
alart(no);
return 0;
}
void alart(int no){
int i=0;
for(i=0;i<no;i++){
printf("\a");
}
}
159デフォルトの名無しさん:2008/06/10(火) 20:51:19
自信ないのに意味不明なコード書くのはバカ
160デフォルトの名無しさん:2008/06/10(火) 20:52:08
コード書かないのはバカですね
分かります
161デフォルトの名無しさん:2008/06/10(火) 20:54:17
man よめよ
162158:2008/06/10(火) 20:56:36
やべぇ
否定し忘れてる!!
if(!ret){


>>159
あ?しねよ
scanfの戻り値なんか見たことないだろ
163デフォルトの名無しさん:2008/06/10(火) 20:58:43
私のためにケンカしないで><
164デフォルトの名無しさん:2008/06/10(火) 21:01:18
/*ここまで俺の自演*/
165デフォルトの名無しさん:2008/06/10(火) 21:07:16
[1] 授業単元: プログラミング C言語
[2] 問題文(含コード&リンク)課題:
      ファイル"test.txt"から文字列を読み込み、並びを逆にしてファイル"sample.txt"に出力するプログラムを作成せよ。
[3] 環境
コンパイラ名とバージョン:Microsoft Visual Studio 2005
言語: C
[4] 期限: 〜6月11日
[5] その他の制限: ポインタを使う
166デフォルトの名無しさん:2008/06/10(火) 21:08:22
>>165
ファイルポインタじゃ、ダメだった?
167デフォルトの名無しさん:2008/06/10(火) 21:11:41
ここは、使えないPGを育成するスレですか?


といてもらって、お礼もいわんとは
168デフォルトの名無しさん:2008/06/10(火) 21:14:55
>>167
あえて言おう

ここは2ちゃんねる



久しぶりに言った
169デフォルトの名無しさん:2008/06/10(火) 21:16:33
同じ質問を再度行う場合も非常に見にくいことが多い。
前回依頼時へのポインタを示してくれればそこからいろいろたどれるのに。

具体的には>>165>>126へ貼ってくれさえいればダメだったらしい
回答であるところの>>130がすぐ見れたわけだ。

もう少し考えていただければと思う。
170デフォルトの名無しさん:2008/06/10(火) 21:17:15
釣られてどうする
171デフォルトの名無しさん:2008/06/10(火) 21:17:53
>>166
ファイルポインタは大丈夫みたいなんですが、
while ((c = getc(in)) != EOF)
などが上手く動作しないみたいで困ってます。
172デフォルトの名無しさん:2008/06/10(火) 21:19:45
>>171
>while ((c = getc(in)) != EOF)
        ~~~~~
fgetcじゃなくて?
173デフォルトの名無しさん:2008/06/10(火) 21:19:54
>>169
次からそうします。
失礼しました。
174デフォルトの名無しさん:2008/06/10(火) 21:20:10
質問者は名前欄にレス番号を記入すべきだとも思う。
175デフォルトの名無しさん:2008/06/10(火) 21:26:29
>>172
fgetcです。
文字列の書き込みや出力の部分がとんで動作しているみたぃです。
176デフォルトの名無しさん:2008/06/10(火) 21:33:15
>>157
気づけば大元のソースが見る影もなくなっていた

ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6855.cpp
177デフォルトの名無しさん:2008/06/10(火) 21:33:34
test.txtの置き場所間違ってないか?
178157:2008/06/10(火) 21:37:51
>>176

ありがとうございます。
179デフォルトの名無しさん:2008/06/10(火) 22:02:06
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):()
文字列を逆向きに表示する関数void printrev(char[]);を定義せよ.テキストファイルの最初の1行を逆向きにして表示するプログラムを作成せよ.
出力例:
bash-3.2$ ./rev1 < rev1.c
>h.oidts< edulcni#

ヒント:
・文字列を逆向きに表示する関数を定義する
・繰り返し文 while ((c = getchar()) != EOF) {...} で,改行記号まで配列に文字を順番に代入する
・改行記号が来たら break
・できあがった文字の配列に終端文字\0を入れて文字列にする
・文字列を逆向きに表示する関数を使って表示する
[3] 環境
 [3.1] OS:Linux
 [3.2] gcc (すみません、詳しいことはよくわかりません;)
 [3.3] C言語
[4] 期限:前期中
[5] その他の制限:なし。

よろしくお願いします。
180デフォルトの名無しさん:2008/06/10(火) 22:27:58
さぁ、逆さ文字をコマンドプロンプトに表示できる勇者は現れるか?
バナーならなんとかできるか?
181デフォルトの名無しさん:2008/06/10(火) 22:35:56
#include <stdio.h>
#include <string.h>
int main(void) {
int i, j;
char buf[81], *p;
fgets(buf, sizeof buf, stdin);
if (p = index(buf, '\n')) *p = '\0';
for (i = 0, j = strlen(buf) - 1; i < j; i++, j--) {
int t;
t = buf[i]; buf[i] = buf[j]; buf[j] = t;
}
fputs(buf, stdout);
fputs("\n", stdout);
return 0;
}
182デフォルトの名無しさん:2008/06/10(火) 22:38:48
毎度のことで申し訳ありません。7行目の' 'と13行目の" "の中身はbackslash nです。
183デフォルトの名無しさん:2008/06/10(火) 22:42:06
ちゃんと\見えてるわけだが、お前は何を使って見てるんだ。
184デフォルトの名無しさん:2008/06/10(火) 22:44:22
>>183
>>180
>>174
>>167
こいつバカじゃね?いい加減うぜぇな。無駄口叩く奴って
本当に役に立たないクズだよなw
185デフォルトの名無しさん:2008/06/10(火) 22:45:19
>>184
おまえもな
186デフォルトの名無しさん:2008/06/10(火) 22:45:37
74です。
187181:2008/06/10(火) 22:48:41
あ、問題文全然読んでませんでした。誰か函数化してください。
188デフォルトの名無しさん:2008/06/10(火) 23:02:10
>>185
はぁ?バカは四の五の言ってねーでソース書けよw
そのレスに反論するのは、指摘された本人だろ?
他は黙ってソース書いてんだよ、ボケが
189デフォルトの名無しさん:2008/06/10(火) 23:03:20
>>162
>>160
これもうぜーなぁ。バカは口閉じてろよ、あっキーボードを打つ指を
休めているか、タイピングできないように切断しとけば?w
190デフォルトの名無しさん:2008/06/10(火) 23:10:10
>>184
おまいさんが酉つけてガンガン回答してくれたら納得しとくわ。
191デフォルトの名無しさん:2008/06/10(火) 23:17:36
>>189
僕ちゃんは、宿題を教えてもらえなかったのかな?
192デフォルトの名無しさん:2008/06/10(火) 23:26:47
逆にたとえば俺が酉つけてたら回答も提言もそして暴言も割と
あるわけだが、それはそれでちょっとやだなあ
193デフォルトの名無しさん:2008/06/10(火) 23:57:39
コテや酉つきの回答者のウザさは異常
194デフォルトの名無しさん:2008/06/11(水) 00:09:45
>>179

#include <stdio.h>

void printrev(char str[])
{
char *p = str;
while(*p) p++;
while(p-- > str) putchar(*p);
}

int main(void)
{
int i = 0, c;
char str[256];

while((c = getchar())!=EOF) {
str[i++] = c;
if(c=='\n') break;
}
str[i] = '\0';

printrev(str);

return 0;
}
195デフォルトの名無しさん:2008/06/11(水) 00:30:24
>>165
の問題を教えてください
196デフォルトの名無しさん:2008/06/11(水) 00:32:41
>>193
そんなこと関係なくウザイ奴は一生ウザイ。
言動や行動に性格、人間性が露呈していることに気づかず
指摘されると指摘してきた奴を執拗に罵倒して自分を正当化できると
勘違いしているから、その他の周りからも嫌われているって気づいてないんだよ
197デフォルトの名無しさん:2008/06/11(水) 00:39:56
>>196
自己紹介乙w
198179:2008/06/11(水) 00:42:39
>>194
回答ありがとうございます!
ただ、
7行目の while(p-- > str)
13行目の char str[256];

の意味がよくわからないのですが、よかったら説明いただけないでしょうか。
199デフォルトの名無しさん:2008/06/11(水) 00:44:04
>>195
128や130のどこが気に入らないのか具体的に。
もしかして一行文字列読み込む度にそれを逆順にするとか?
200デフォルトの名無しさん:2008/06/11(水) 00:47:49
[1] 授業単元:ソフトウェア演習2
[2]問題文・コード
リンク http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.cgi
[3] 環境
 [3.1] OS: Windows vista
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語:C
[4] 期限: 2008年6月12日14:30まで
[5] その他の制限:標準ライブラリに関しての制限はありませんが、一応malloc以外は使わない方針です。一方向連結リストの削除、挿入がこの単元の狙いなので双方向リストは使えません。

よろしくお願いします。
201デフォルトの名無しさん:2008/06/11(水) 00:50:50
>>198
char str[256]は単に配列。
strは変数名で特別な意味があるわけじゃない。

while(p-- > str) は
while(p > str) {
p--;
と同じこと。
pは最初文字列終端の'\0'のアドレスになってるからそこから一文字分前に移動する。
そこから順番に一文字ずつ前に移動して表示、
最後はp[0](元の文字列の先頭)を表示してループから抜ける。
202デフォルトの名無しさん:2008/06/11(水) 00:57:57
>>199
すいません少し待ってください。
203200:2008/06/11(水) 00:58:35
すいません。リンクこっちに替えときます。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6857.txt
204デフォルトの名無しさん:2008/06/11(水) 00:58:43
193 名前:デフォルトの名無しさん 投稿日:2008/06/10(火) 23:57:39
コテや酉つきの回答者のウザさは異常
↑いちいち自分の不満をたらたら漏らす、場違い野郎がうざいんだが。
自己紹介って返す奴は、自分の素性をどんぴしゃで当てられて
必死になっているのを隠さずにはいられないくらい動揺している証拠。
205デフォルトの名無しさん:2008/06/11(水) 00:59:04
>>165
#include<stdio.h>
#include<stdlib.h>
#define SRC_FILE "test.txt"
#define DST_FILE "sample.txt"
int main()
{
FILE *fs, *fd;
long size, i;
char *buf;
if((fs = fopen(SRC_FILE, "r")) == NULL) {
perror(SRC_FILE);
return 1;
}
if((fd = fopen(DST_FILE, "w")) == NULL) {
fclose(fs);
perror(DST_FILE);
return 1;
}
fseek(fs, 0, SEEK_END);
size = ftell(fs);
fseek(fs, 0, SEEK_SET);
buf = malloc(size);
size = fread(buf, 1, size, fs);
for(i = size - 1; i >= 0; i --)
fputc(buf[i], fd);
free(buf);
fclose(fd);
fclose(fs);
return 0;
}
206デフォルトの名無しさん:2008/06/11(水) 01:47:30
>>205
GJ。ちと自分なりに突っ込み。
int main(void)
fseek(fs, 0L, SEEK_END); < 特に必要ないがlong型ということで
fseek(fs, 0L, SEEK_SET); < 0ではあるが後ろにLを
buf = (char*)malloc(size * sizeof(char)); < キャストと念のために型のサイズを

余談だが、1文字2バイトの全角文字には非対応やね。質問者はどこまで
要求しているのかはっきりせぬが。
207デフォルトの名無しさん:2008/06/11(水) 01:49:24
型変換あるんだから蛇足だろ
208デフォルトの名無しさん:2008/06/11(水) 02:08:29
>>128
>>130
>>199
>>205
わかりました。 ありがとうございました。
209デフォルトの名無しさん:2008/06/11(水) 02:10:22
>>207
知ったか無知を露呈しなくて良いぞ、ろくにソースも書かずに
無駄口を叩くバカは。ちなみに、蛇足でもないから。
たまたま問題の無い例を用いて否定すると、墓穴掘るぞ。
210デフォルトの名無しさん:2008/06/11(水) 02:27:28
他人のソースにいらんもんを付け足すほうがアホだろ。
211デフォルトの名無しさん:2008/06/11(水) 02:46:39
テキストファイルであると暗黙的に仮定されてる。
バイナリファイルとしての逆順とはやはり微妙に違うよな
元ファイルの最初の行が改行されてると、出力ファイルは先頭が空行になるのは何だかな....で、ちょっと書いてみた
ygguB .kcehC rorrE oN tfarD//
srotcarahc 5904 revo erom evah ton od "txt.tset" fo senil hcae demussA//
>h.oidts< edulcni#
{)(niam tni
;s*,]6904[fub rahc;tuo*,ni* ELIF
;)"w","txt.elpmas"(nepof=tuo;)"r" ,"txt.tset" (nepof=ni
;0=]0[fub
{))ni(foef!(elihw
{) )ni,5904,]1[fub&)*rahc((stegf=s (fi
{)s*(elihw
;kaerb) )31==s*(||)01==s*( (fi
;++s
}
;--s)s*(fi
};))--s(*,"c%",tuo(ftnirpf{)s*(elihw
;)"n¥",tuo(ftnirpf
esle}
;kaerb
}
;)tuo(esolcf;)ni(esolcf
;0 nruter
}
212デフォルトの名無しさん:2008/06/11(水) 02:47:43
>>210
動いているものには触るなっていうタイプですか?
リファクタリングとか理解できない人に多いよね。
213デフォルトの名無しさん:2008/06/11(水) 03:18:40
>>206
sizeof(char)が必ず1でも、省略すべきではない
http://pc11.2ch.net/test/read.cgi/tech/1187521586/

ぜひ止まったこのスレを盛り上げてくれw
214デフォルトの名無しさん:2008/06/11(水) 05:25:00
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
1!〜53!の階乗値を右揃えで出力せよ。
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 明日正午まで
[5] その他の制限: 各機能(計算処理や出力等)毎に関数に分ける事。

助けてください。お願いします。
215デフォルトの名無しさん:2008/06/11(水) 05:40:49
>>214
ほらよ。どうやれば省略しているところを作れるかは自分で考えな。
#include <stdio.h>
char *f[] = {
"1",
"2",
"6",
/* 47 行省略 */
"1551118753287382280224243016469303211063259720016986112000000000000",
"80658175170943878571660636856403766975289505440883277824000000000000",
"4274883284060025564298013753389399649690343788366813724672000000000000",
};
int
main()
{
int i;
for (i = 0; i < 53; i++) {
printf("%70s\n", f[i]);
}
return 0;
}
216デフォルトの名無しさん:2008/06/11(水) 05:59:16
217デフォルトの名無しさん:2008/06/11(水) 07:09:27
暇すぎるw
218デフォルトの名無しさん:2008/06/11(水) 07:39:51
>>214
#include <stdio.h>

int main(void)
{
    int i, j, figure = 0, fac[53][128] = {0};

    fac[0][0] = 1;

    for(i=1; i<53; i++) {
        for(j=0; j<=figure; j++) {
            fac[i][j] += fac[i-1][j] * (i + 1);
            if(fac[i][j] >= 10) {
                fac[i][j+1] += fac[i][j] / 10;
                fac[i][j] %= 10;
                if(j==figure) figure++;
            }
        }
    }

    for(i=0; i<53; i++) {
        for(j=figure; fac[i][j]==0; j--) putchar(' ');
        for(; j>=0; j--) printf("%d", fac[i][j]);
        putchar('\n');
    }

    return 0;
}
219ルート:2008/06/11(水) 10:19:05
>>115 おねがいしますm(__)m
220デフォルトの名無しさん:2008/06/11(水) 10:35:07
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
3より大きく、入力された上限の数未満の全ての自然数かつ非素数について、3で割り切れるものは無視し、3で割った余りが1のものは加算し、余りが2のものは減算して合計を求めよ

次のように表示する. Input Upper Limit: 11 [Enter]
Answer is: 6

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

お願いします><
221デフォルトの名無しさん:2008/06/11(水) 13:28:31
[1]プログラミング基礎
[2]
#include <stdio.h>
int main(void)
{
FILE *file;
file = fopen("test.txt","w");
fclose(file);
return 0;
}
このプログラムを実行すると、test.txtという名前のファイルが作成される。
では、text.txtはどこに作成されるか答えよ。

[3-1]windows
[3-2]gcc
[3-3]C言語
[4]今日中
[5]結構ユーモラスで意地悪な問題が好きな先生なので
何かしらのひっかけがあるかもしれません

よろしくお願いします
222デフォルトの名無しさん:2008/06/11(水) 13:28:56
223ルート:2008/06/11(水) 13:40:05
>>222 ありがとうございます
224デフォルトの名無しさん:2008/06/11(水) 14:38:06
[1] C言語実習
[2] test.txtから文字列を読み込み、
  大文字だけを画面に表示するプログラムを作成せよ。
[3]
 [3.1] Windows
 [3.2] cisual stadio .NET2003
 [3.3] 言語:C
[4] 期限:今日中

全くの初心者なので、なるべく簡単なコードで
お願いします。
225デフォルトの名無しさん:2008/06/11(水) 15:08:07
>>220
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int i, j, n, sum = 0;
char *sieve;

printf("Input Upper Limit:");
scanf("%d", &n);

sieve = malloc(sizeof(int) * n);
for(i=0; i<n; i++) sieve[i] = 0;
for(i=4; i<n; i+=2) sieve[i] = 1;
for(i=3; i * i <= n; i+=2) {
if(!sieve[i]) {
for(j=i*i; j<n; j+=i) sieve[j] = 1;
}
}

for(i=4; i<n; i+=3) if(sieve[i]) sum += i;
for(i=5; i<n; i+=3) if(sieve[i]) sum -= i;

printf("Answer is : %d\n", sum);
free(sieve);
return 0;
}
226デフォルトの名無しさん:2008/06/11(水) 15:11:50
>>224
#include <stdio.h>
int main(void)
{
int ch;
FILE *fp;

if((fp=fopen("test.txt", "r"))==NULL) return 0;

while((ch=fgetc(fp))!=EOF) if('A'<=ch && ch <='Z') putchar(ch);

fclose(fp);

return 0;
}
227デフォルトの名無しさん:2008/06/11(水) 15:14:02
>>221
カレントディレクトリ
228デフォルトの名無しさん:2008/06/11(水) 15:47:47
>>152 です。
締め切り近いのでもう一度張らしてもらいました。
すみませんが、よろしくお願いします。

[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
1.2の補数を用いて負の数も扱えるように拡張せよ.
2.2つの2進数の差を求めるプログラムを作成せよ.
3.任意の(変数や定数で指定した)桁数の2進数を扱えるようにせよ.
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:VC 6.0
 [3.3] 言語:C++
[4] 期限:2008年06月11日まで
[5] その他の制限:このプログラムを基にお願いします。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6853.txt
229224です:2008/06/11(水) 16:00:00
>>226
ありがとうございます
230デフォルトの名無しさん:2008/06/11(水) 16:32:44
[1] 授業単元:コンピュータプログラミング
[2] 問題文(含コード&リンク):
次のプログラムは整数x,yを読み込み、その
和、差、積、商、剰余を出力するプログラム
である。このプログラムでは共通変数を用い
関数間の値の受渡しをしているが、これを全
て引数で値の受渡しをするように変更せよ。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6860.txt
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2008年06月11日まで
[5] その他の制限:このプログラムを基にお願いします。

よろしくお願いします
231デフォルトの名無しさん:2008/06/11(水) 16:42:47
【質問テンプレ】
[1] 授業単元:C言語演習1
[2] 問題文

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

上記をもとに親プロセスがキーボードから入力した行をパイプで
子プロセスに標準出力ファイルとして送り、子プロセスは標準入力から受けとってスクリーンに
エコーバックするようなプログラムを作れ。
ヒント:dup2(fd[1],fileno(stdout)), fgets(line, MAXLINE, stdin), fputs(....)

(親) (子)
キーボード-->| stdin stdout| ---> |stdin stdout|---->ディスプレ

[3] 環境
 [3.1] OS: (Linux)
 [3.2] コンパイラ名とバージョン: (gcc )
 [3.3] 言語: (C言語)
[4] 期限: (6月16日)
[5] その他の制限:上記のURLのプログラムを元によろしくお願いします。

よろしくおねがいします


232デフォルトの名無しさん:2008/06/11(水) 17:22:25
>>230
#include <stdio.h>
void readdata(int *x, int *y) {
printf("input integers (x y): ");
scanf("%d%d", x, y);
}
void calculate(int x, int y, int *wa, int *sa, int *seki, int *sho, int *joyo)
{
*wa = x + y;
*sa = x - y;
*seki = x * y;
*sho = x / y;
*joyo = x % y;
}
void printresult(int x, int y, int wa, int sa, int seki, int sho, int joyo) {
printf("%d + %d = %d\n", x, y, wa);
printf("%d - %d = %d\n", x, y, sa);
printf("%d * %d = %d\n", x, y, seki);
printf("%d / %d = %d\n", x, y, sho);
printf("%d %% %d = %d\n", x, y, joyo); /* '%'の出力*/
}
int main(void)
{
int x, y, wa, sa, seki, sho, joyo;
readdata(&x, &y);
calculate(x, y, &wa, &sa, &seki, &sho, &joyo);
printresult(x, y, wa, sa, seki, sho, joyo);
return 0;
}
233デフォルトの名無しさん:2008/06/11(水) 17:38:15
032>>
>h.oidts< edulcni#
{ )y* tni ,x* tni(ataddaer diov
;)" :)y x( sregetni tupni"(ftnirp
;)y ,x ,"d%d%"(fnacs
}
)oyoj* tni ,ohs* tni ,ikes* tni ,as* tni ,aw* tni ,y tni ,x tni(etaluclac diov
{
;y + x = aw*
;y - x = as*
;y * x = ikes*
;y / x = ohs*
;y % x = oyoj*
}
{ )oyoj tni ,ohs tni ,ikes tni ,as tni ,aw tni ,y tni ,x tni(tlusertnirp diov
;)aw ,y ,x ,"n¥d% = d% + d%"(ftnirp
;)as ,y ,x ,"n¥d% = d% - d%"(ftnirp
;)ikes ,y ,x ,"n¥d% = d% * d%"(ftnirp
;)ohs ,y ,x ,"n¥d% = d% / d%"(ftnirp
/*ヘ熔称〓'%' */ ;)oyoj ,y ,x ,"n¥d% = d% %% d%"(ftnirp
}
)diov(niam tni
{
;oyoj ,ohs ,ikes ,as ,aw ,y ,x tni
;)y& ,x&(ataddaer
;)oyoj& ,ohs& ,ikes& ,as& ,aw& ,y ,x(etaluclac
;)oyoj ,ohs ,ikes ,as ,aw ,y ,x(tlusertnirp
;0 nruter
}
234デフォルトの名無しさん:2008/06/11(水) 17:38:20
初めまして。

[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
テキストファイルに保存された改行で区切られた整数を読み込んで、
その平均値を計算し、結果をファイルに保存することのできるプログラムを作成せよ。
データ数は最大1000個まで計算できるようにする。

[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:C
 [3.3] 言語:C言語
[4] 期限:2008年06月12日まで

さっぱりわかりませんでした。宜しくお願いします。
235デフォルトの名無しさん:2008/06/11(水) 17:43:14
1] 授業単元: 計算機システム
[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6861.txt

上記を元に,システムコールalarm とpause を使用してsleep コマンドと同等の働きをするコマンドmysleep を
作って下さい.
Ctrl-c(Interrupt)、Ctrl-z(Suspend) に反応しないようにしてください.途中終了はCtrl-Y=(Quit)
のみとし,“User quit” といったメッセージと残り時間を表示させてください.
• ヒント: 対処すべきシグナルは4 種類,SIGINT,SIGTSTP,SIGALRM,SIGQUIT です.
[3] 環境
 [3.1] Linux
 [3.2] gcc
 [3.3] c
[4] 期限: 6月11日中
[5] その他の制限: 上のtxtを元にしていただけたら、他は特にありません。

どうかよろしくお願いします。
236デフォルトの名無しさん:2008/06/11(水) 18:02:15
>>232ありがとうございます
237デフォルトの名無しさん:2008/06/11(水) 18:11:00
238デフォルトの名無しさん:2008/06/11(水) 18:11:34
>>237 は取り消し。早とちりしとった・・・
239デフォルトの名無しさん:2008/06/11(水) 18:13:05
[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク):()
クイックソートにより配列をソートするプログラムを作れ
http://www2.uploda.org/uporg1474868.txt.html
ネットを参考に書いたのですが、中途半端にしかソートされません
どこが違うのか指摘お願いします
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 2008/6/3まで
[5] その他の制限: とくになし
240デフォルトの名無しさん:2008/06/11(水) 18:13:52
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6862.txt
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2008年06月12日18:00
[5] その他の制限:ポインタまで学習済み
241デフォルトの名無しさん:2008/06/11(水) 18:19:03
242デフォルトの名無しさん:2008/06/11(水) 18:19:19
>>234
#include<stdio.h>

int main(void){
char *filename="data.txt";
FILE *fp;
int i, data;
double average=0.0;

if(!(fp=fopen(filename, "r"))) return 1;
for(i=1;i<=1000;i++){
if(fscanf(fp, "%d", &data)!=1) break;
average=(average*(i-1)+data)/i;
}
printf("%f\n", average);

return 0;
}
243デフォルトの名無しさん:2008/06/11(水) 18:21:16
[1] 授業単元:プログラム実習
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6866.txt
[3] 環境
 [3.1] OS:windowsXP
 [3.2] コンパイラ名とバージョン: VC6.0
 [3.3] 言語: C++
[4] 期限:なし
[5] その他の制限:なし

問題文はソースの上に記しています
244デフォルトの名無しさん:2008/06/11(水) 18:22:29
>>242
一々平均計算しなおすのはどうかと思うぜ。
245デフォルトの名無しさん:2008/06/11(水) 19:09:48
【質問テンプレ】
[1] 授業単元:情報ネットワーク論
[2] 問題文(含コード&リンク):
基数変換プログラムを作成しなさい。
「元:2〜16進数(選択)→変換先:2〜16進数(選択)」
という基数の指定ができるようにすること
[3] 環境
 [3.1] OS:Window
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:6月19日まで
[5] その他の制限:基数変換を行う関数や外部プログラム等を用いてはいけない

プログラミング類はやらないと言われていたのに出てしまいお手上げです
よろしくお願いします
246デフォルトの名無しさん:2008/06/11(水) 19:15:57
>>240
1.
#include <stdio.h>

int chkmatch(char *t1, char *t2)
{
while(*t2) if(*t1++!=*t2++) return 0;
return 1;
}

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

scanf("%s", t1);
scanf("%s", t2);

for(p=t1; *p; p++) if(chkmatch(p, t2)) break;

printf("%s", *p ? "yes" : "no");

return 0;
}
247デフォルトの名無しさん:2008/06/11(水) 19:18:07
>>240
2.
#include <stdio.h>
int chkmatch(char *t1, char *t2){
while(*t2) if(*t1++!=*t2++) return 0;
return 1;
}
char *findstr(char *t1, char *t2){
while(*t1) {
if(chkmatch(t1, t2)==1) return t1;
t1++;
}
return NULL;
}
int main(void){
char *p, *q, *tag, t1[256], t2[256];
scanf("%s%s", t1, t2);
p = t1;
while(*p) {
tag = findstr(p, t2);
if(tag == NULL) {
while(*p++) putchar(' ');
break;
}
while(p!=tag) {
putchar(' ');
p++;
}
for(q=t2; *q; q++, p++) putchar('^');
}
return 0;
}
248デフォルトの名無しさん:2008/06/11(水) 19:20:39
>>240
3.
#include <stdio.h>

void swapmax(int *data, int num)
{
int temp, i, max_indx = 0;

for(i=1; i<num; i++) if(data[i] > data[max_indx]) max_indx = i;

temp = data[0];
data[0] = data[max_indx];
data[max_indx] = temp;
}

int main(void)
{
int data[10], i, n;

scanf("%d", &n);

for(i=0; i<n; i++) scanf("%d", data + i);

swapmax(data, n);

for(i=0; i<n-1; i++) printf("%d ", data[i]);
printf("%d", data[i]);

return 0;
}
249デフォルトの名無しさん:2008/06/11(水) 19:56:19
250デフォルトの名無しさん:2008/06/11(水) 20:02:48
>>245
文字列を整数に
int my_strtol(char* str, int base) {
int l, val;
l = 0;
while (*str) {
if (*str >= '0' && *str <= '9') {
val = *str - '0';
}
else if (*str >= 'A' && *str <= 'F') {
val = *str - 'A' + 10;
}
else if (*str >= 'a' && *str <= 'f') {
val = *str - 'a' + 10;
}
// 16進数以外の文字が出たらそれまでの数値を返す
else {
return l;
}
// 基数以上の数値が出たらそれまでの数値を返す
if (val >= base) {
return l;
}
l *= base;
l += val;
str++;
}
return l;
}
251デフォルトの名無しさん:2008/06/11(水) 20:03:54
>>245
整数を文字列に
int my_ltostr(int l, int base, char *str, int len) {
int val, mod, i;
val = l;
i = 0;
// 桁数を求める
while (val) {
val /= base;
i++;
}
// 文字数オーバー
if (i > len) {
return -1;
}
str[i + 1] = '\0';
for (; i >= 0; i--) {
mod = l % base;
if (mod >=0 && mod <= 9) {
str[i] = mod + '0';
}
else if (mod >= 10 && mod <= 15) {
str[i] = mod - 10 + 'A';
}
l /= base;
}
return 0;
}
252デフォルトの名無しさん:2008/06/11(水) 20:07:08
うpロダ使え
253デフォルトの名無しさん:2008/06/11(水) 21:28:14
【質問テンプレ】
[1] 授業単元:自習
[2] 問題文(含コード&リンク):
グレースケール化した画像の0〜3次までのモーメントMpqを求めたいです。
Mpq = ΣΣ((x-xx)^p)*((y-yy)^q)*f(x,y)
xx = M10/M00 = ΣΣx*f(x,y) / ΣΣf(x,y)
yy = M01/M00 = ΣΣy*f(x,y)/ ΣΣf(x,y)

数式の記述はこちらのほうが見やすかったです
http://mikilab.doshisha.ac.jp/dia/research/person/shuto/research/0605/tokutyo.html

[3] 環境
 [3.1] OS: CentOS5.0
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限:6/14
[5] その他の制限: 特になし
使っている画像の種類はpgmです。
よろしくお願いいたします。
254デフォルトの名無しさん:2008/06/11(水) 21:35:30
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):int a[4]={30,15,60,5}を昇降に並び替える。(ポインタ使用)
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 6月11日11:00まで
[5] その他の制限: ポインタ・再帰まで学習済み。

関数部分でif文で左右を比較し、whileかfor文を用いて繰り返すことはわかったのですが、どう書いていいかわかりません。お願いします。
255デフォルトの名無しさん:2008/06/11(水) 21:37:40
>>245
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6868.c
10進数をn進数に変換するのみ。10進数以外は適当に
一度10進数にしてから変換し直す仕組みでも作って下さい ><;
256デフォルトの名無しさん:2008/06/11(水) 21:46:44
>>254
#include <stdio.h>
#include <stdlib.h>

static int cmp(const void*a, const void*b) {
return *(int*)a < *(int*)b ? -1: *(int*)a > *(int*)b ? 1 : 0;
}

int main(void) {
int a[4] = {30, 15, 60, 5};
qsort(a, sizeof a/sizeof *a, sizeof *a, (int(*)(const void*, const void*))cmp);
return 0;
}
257デフォルトの名無しさん:2008/06/11(水) 21:51:11
1] 授業単元:C言語
[2] 問題文(含コード&リンク):西暦yy年mm月dd日と(文字には1から12の数字が入る)入力するとその日の昨日の日付と明日の日付
を出力するプログラムをつくれ
ただし閏年については以下のプログラムを使うこと

int isleap(int year)
{
return (year % 4 == 0 && year % 100 != 0 || year % 400 = 0);
}



[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語:C
[4] 期限: 来週まで
[5] その他の制限: swich文は使わない方向でお願いします
258デフォルトの名無しさん:2008/06/11(水) 21:52:03
>>256
できました

ありがとうございました。
259デフォルトの名無しさん:2008/06/11(水) 21:52:13
[1] 授業単元: 画像処理
[2] 問題文(含コード&リンク)課題:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6869.txt
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン:Microsoft Visual Studio 2005
 [3.3] 言語: C
[4] 期限: 6月13日
[5] その他の制限: 特に無し

初歩的なことかも知れませんが
どうかよろしくお願いします
260257:2008/06/11(水) 21:54:11
間違えました……
閏年については以下のプログラムを使うこと→うるう年は以下の関数で判定すること
261デフォルトの名無しさん:2008/06/11(水) 22:15:21
[1] 授業単元:C言語入門
[2] 問題文:
「キーボードから異なる実数を3つ入力し、大きい順に3つの値を
表示させるプログラム」をswitch文を用いて作成せよ。

「キーボードから数値を1つ入力し、実数か整数か自然数か判定し、
当てはまるものすべてを表示するプログラムを作成しなさい」

[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C
[4] 期限: 明朝7:00まで
お願い致します。
262デフォルトの名無しさん:2008/06/11(水) 22:40:53
>>261 適当
#include<stdio.h>
int main()
{
double a[3], t;
int i, j;
for(i = 0; i < 3; i ++)
scanf("%lf", a+i);
for(i = 0; i < 3; i ++)
for(j = i + 1; j < 3; j ++)
if(a[i] < a[j]) {
t = a[i]; a[i] = a[j]; a[j] = t;
}
for(i = 0; i < 3; i ++)
printf("%g\n", a[i]);
return 0;
}
-----------------------------------
#include<stdio.h>
#include<math.h>
int main()
{
double a, b;
scanf("%lf", &a);
printf("%gは実数です。\n", a);
if(modf(a, &b) == 0) {
printf("%gは整数です。\n", a);
if(b > 0.5)
printf("%gは自然数です。\n", a);
}
return 0;
}
263デフォルトの名無しさん:2008/06/11(水) 22:43:54
マジでうpロダ使え・・・
264デフォルトの名無しさん:2008/06/11(水) 22:50:24
>>261
携帯からなんで1のヒントだけ
switch((a>b)+(b>c)*2+(c>a)*4)
265デフォルトの名無しさん:2008/06/11(水) 22:55:45
266デフォルトの名無しさん:2008/06/11(水) 22:59:53
>>260 >>257
return (year % 4 == 0 && year % 100 != 0 || year % 400 = 0);
明らかに括弧の位置と、 year%400 == 0 の部分が間違っているんで訂正
267261:2008/06/11(水) 23:21:54
>>264
switchの中がそんな事に・・・どうなるのか見当がつかないです
268デフォルトの名無しさん:2008/06/11(水) 23:30:22
>>259
画像処理のことはあまりわからんので、ちょっと質問。
・グレースケールの画像を使うと書いてあるが、読み込んだRGBの値がバラバラの場合、輝度はRGBの平均値でおk?
・ヒストグラムの形式は何でもいい?例えば、N=8だったらこんな感じ?
0: *****
32: ************
64: *******
96: ********************
128: ***************************
160: ***************
192: ****
224: **
269デフォルトの名無しさん:2008/06/11(水) 23:41:30
[1] 授業単元:プログラミング基礎
[2] 5人の学生の3教科(国語・数学・英語)の点数を2次元配列を用いて次の二つ
   の処理を実行するプログラムを作成せよ
  @科目別の最高点を求める
  A各学生の平均点を求める
[3] 環境
 [3.1] OS:Windows vista
 [3.2] コンパイラ名とバージョン: borland5.5.1
 [3.3] 言語:C
[4] 期限: 2008年6月12日中
[5] その他の制限: 特になし

よろしくお願いします
270デフォルトの名無しさん:2008/06/11(水) 23:56:27
>>268
自分がいまいちわかってないので自信がないのですが
グレースケール画像の各成分の輝度値を量子化する以外は
平均値をとるなどの指示はないです。
ヒストグラムの方は後でエクセルで処理をするので
値をテキストファイルに保存できればいいです。
271デフォルトの名無しさん:2008/06/12(木) 00:05:02
>>253
pgm形式、rawとascii、2つのモードがあるですが。両方対応ですか?
272257:2008/06/12(木) 00:13:26
>>265 >>266
こんなに早くしてくれるとは
マジで助かりました
ありがとうございます
273デフォルトの名無しさん:2008/06/12(木) 00:43:55
>>269
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6872.txt
エラーチェックもしてないし
終了もしてないけどおやすみなさい。
274デフォルトの名無しさん:2008/06/12(木) 00:48:23
>>228
勘違いしていたのでもう一度書き込みします。

[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
1.0/1による8桁の2つの2進数入力に対して,それらの和を2進数表現で求め,その2進数表現を出力せよ.
このとき,2ビットの論理和,論理積,排他的論理和を求める関数,および,これらを用いて2進数1桁の加算を行う全加算器の機能を関数で実現すること.
なお,確認を容易にするため,入力と出力の各2進数に対する10進数表現も出力すること.
さらに2の補数を用いて負の数も扱えるように拡張せよ.
2.2つの2進数の差を求めるプログラムを作成せよ.
3.任意の(変数や定数で指定した)桁数の2進数を扱えるようにせよ.
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:VC 6.0
 [3.3] 言語:C++
[4] 期限:2008年06月11日まで
[5] その他の制限:1については 2の補数を用いて負の数も扱えるように拡張する前までは作ることができたのでうpしておきます。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6853.txt

よろしくお願いします。
275デフォルトの名無しさん:2008/06/12(木) 00:54:05
レスが遅れて申し訳ございません
前スレの
http://pc11.2ch.net/test/read.cgi/tech/1211980711/753-756
有り難う御座いました
勉強させて頂きます
276デフォルトの名無しさん:2008/06/12(木) 01:15:08
>>274 です。
[4] 期限:2008年06月12日までですが最終16日まで大丈夫です。
277デフォルトの名無しさん:2008/06/12(木) 02:02:12
えっ?クソアッー!は両方一致、すなわち a==b のとき 0 を返し
一致しない場合は 1 を返せばおk、だったかと。
278デフォルトの名無しさん:2008/06/12(木) 02:23:07
>>239
流れてたんであげなおします
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6873.txt
よろしくお願いします
279デフォルトの名無しさん:2008/06/12(木) 02:34:38
>>259,270
Dll_BMP_C.h とかいうファイルがないので動くかどうかわからんが
とりあえずExcelで読めるようCSVで出力するようにした
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6875.txt
280デフォルトの名無しさん:2008/06/12(木) 02:57:18
>>239
釣りっぽい気もするけど、とりあえずtyuuouの後半が間違ってんじゃん
281デフォルトの名無しさん:2008/06/12(木) 03:19:27
>>274
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6876.c

> さらに2の補数を用いて負の数も扱えるように拡張せよ.
先頭の桁が1なら負にするようにしてあるけど、それは
10進数に変換するときの計算結果でやってます。

> 2.2つの2進数の差を求めるプログラムを作成せよ.
これはやってない。
282デフォルトの名無しさん:2008/06/12(木) 03:20:20
>>281 あぁ、あと free してなかった、すまそ。
283デフォルトの名無しさん:2008/06/12(木) 03:21:38
[1] 授業単元:C言語基礎
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6877.txt
[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン:VC6.0
 [3.3] 言語:C++
[4] 期限:
[5] その他の制限:問題文上部に記載

よろしくお願いします
284デフォルトの名無しさん:2008/06/12(木) 03:34:27
>>283
問題文上部を理解することのなんと困難なことか!
285デフォルトの名無しさん:2008/06/12(木) 03:39:28
[1] 授業単元:プログラミング技術
[2] 問題文(含コード&リンク):
文字列を反転させて表示するプログラムを作成せよ。
ここでの”反転”とは例えば”Program”という文字列を入力したら
”margorP”と出力するものである。
(実行例)
文字列を入力せよ:Program
反転した文字列:margorP

単純な配列の並び替えでOKです、文字の長さを調べるstrlenの使用可。
ただし終端文字をどのように扱うかは注意。
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C言語
[4] 期限:本日6/12 午後1時までにお願いします。

当方strlenで文字列カウントして、その後どうすれば文字列を反転させられるのかが分かりません。
286デフォルトの名無しさん:2008/06/12(木) 03:43:03
>>283
どうすりゃいいの
input()をメンバ関数で持っていいの?
287デフォルトの名無しさん:2008/06/12(木) 03:45:08
いいよ!
288デフォルトの名無しさん:2008/06/12(木) 03:46:39
289デフォルトの名無しさん:2008/06/12(木) 03:50:45
>>279
参考にさせてもらってどうにかできました!
本当にありがとうございます〜
助かりました
290デフォルトの名無しさん:2008/06/12(木) 04:13:27
>>288
???
strlenも使ってないし、分からない関数だらけでC言語なんでしょうか?
291デフォルトの名無しさん:2008/06/12(木) 04:20:10
#include <stdio.h>

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

printf("文字列を入力せよ:");
scanf("%s", str);

for(p=str; *p; p++);
printf("反転した文字列:");
while(p-- > str) putchar(*p);

return 0;
}
292デフォルトの名無しさん:2008/06/12(木) 04:20:23
>>210
> いらんもんを付け足すほうがアホだろ。
勝手にお前が要らんって思っているだけで、本当は必要なものだよw
バーカ、gdgd知ったか無知を晒す前にこのスレに来るな、来ても
発言せずにROMってろ、クズ
293デフォルトの名無しさん:2008/06/12(木) 04:22:10
>>285
#include <stdio.h>
#include <string.h>

int main(void)
{
char buf[80], t;
int i, len;

printf("文字列を入力せよ:");
gets(buf);

len = strlen(buf);
for (i = 0; i < len / 2; i++)
t = buf[i], buf[i] = buf[len - i - 1], buf[len - i - 1] = t;

printf("反転した文字列:%s\n", buf);

return 0;
}
294デフォルトの名無しさん:2008/06/12(木) 04:25:18
Cには暗黙の型変換があるからキャストする必要はない。
sizeof(char)は1であるので省略可能。

どちらもあってもなくても問題はない。
295デフォルトの名無しさん:2008/06/12(木) 04:25:32
>>210
ソースも書かない、知ったような口を聞いているお前が言うと笑えるw
296デフォルトの名無しさん:2008/06/12(木) 04:27:20
>>294
> どちらもあってもなくても問題はない。
ダウト。適切か不適切か、考えたら普通はそんなことは言わない。
そもそも、char型が単に1バイトだから、たまたま都合よく通っただけ。
本来あれを正式な場所でやった場合、不適切とされ、どんな言い訳をしても
知らなかったと駄目だしをされるだけだよ。これだから ド素人 は口を閉じてろって
言われるんだよw
297デフォルトの名無しさん:2008/06/12(木) 04:29:20
>>291
ありがとうございます、ただ*pがどういう意味なのか分からなかったです。

>>293
こちらもありがとうございます、これなら当方にもちゃんと分かります。
とても参考になります。
298デフォルトの名無しさん:2008/06/12(木) 04:29:21
>>294
キャストの場所を勘違いしていないか?にしても、mallocの前に
記述していないのは大減点。おまけに、そこじゃなくて
fseekの0Lについてでは?これについても問題はなかったにしろ
どちらも問題が無かっただけで、コードとしては完全に不適切。
だから要らん口出しはしない方が、自分が無知、バカだと露呈せずに済むよw
299デフォルトの名無しさん:2008/06/12(木) 04:29:34
このスレにどうぞ
sizeof(char)が必ず1でも、省略すべきではない
http://pc11.2ch.net/test/read.cgi/tech/1187521586/
300デフォルトの名無しさん:2008/06/12(木) 04:33:43
関数へ与える値が、型を宣言した変数の識別子ではなく
定数という点で、long型の変数に引き渡すことになっているため
ほとんどの資料には後ろにLを記述しているものが見られるよ。
中には書いてないものもあるが、符号無しでUをつけるように
いくら暗黙のキャストがあろうが、適切なコードに対して

蛇足

なんて知ったかぶるからバカにされるんだよ。そんな知ったかが
適切な記述を蛇足って言うなら、そいつは本当に必要なものに対しても
蛇足と思い込んでいるだろうね。これだから視野の狭い奴は相手にならねー
301デフォルトの名無しさん:2008/06/12(木) 04:35:05
なんでこんな時間に蒸し返してまで顔真っ赤なんだろ
302デフォルトの名無しさん:2008/06/12(木) 04:49:44
>>281 様。ありがとうございます。
303デフォルトの名無しさん:2008/06/12(木) 04:57:59
蛇足でもないのにアホとか、発言したがために無知を晒したアホが
言うと笑えねーな・・・少なくとも>>210はプログラマには向いてない。
些細なことでイラついて、ムッキーポッポーで、業界に入っても
淘汰されて下手すりゃ排除されるよ。あぁ恐ろしや恐ろしや。
304デフォルトの名無しさん:2008/06/12(木) 05:01:09
さすがにpowに渡すからってループ変数をdoubleにしたキチガイは言うことが違うw
305デフォルトの名無しさん:2008/06/12(木) 05:20:06
ループ変数がdoubleでも小数点以下を使わなければ
桁落ち誤差が累積する事はない
306デフォルトの名無しさん:2008/06/12(木) 05:26:52
円の中心に原点をおくと、格子点はi,jを整数として座標(i,j)で表される。(i,j)が円環に含まれる場合に1,含まれない場合に0を返却する関数
is_inrarge(double r, int i, int j)
を作成し
というところまでを自分でr、i、jを入力する方法でやって
#include <stdio.h>
#include<math.h>
#include<stdlib.h>
int main(void)
{
int r,i,j;
printf("r,i,j =");
scanf("%d,%d,%d", &r,&i,&j);
printf("%d,%d,%d \n",r,i,j);
inrange();
return 0;
}
int inrange(double r,int i, int j)

{
double o,p,q;
o=r*r;
p=(i*i+j*j);
q=(r+1)*(r+1);
if (q >= p && p>o){
printf("1");
}else{
printf("0");
}
}
ここまでやって5時間かけてもどうにもうまくいきません。
vista vc05ですけど関係ないような気もします。
誰か教えてください。
307デフォルトの名無しさん:2008/06/12(木) 05:29:11
途中の↓はどうにも行かなくて確認で入れてみたら
代入した直後の数字とは別の数字が出ます。
printf("%d,%d,%d \n",r,i,j);
わけがわかりません
308デフォルトの名無しさん:2008/06/12(木) 05:39:07
>>307
//inrange()
としてもう一度確かめてみそ
309デフォルトの名無しさん:2008/06/12(木) 05:42:14
[1] 授業単元: プログラミング技術V
[2] 問題文(含コード&リンク):
任意の文字列を配列に読み込み、その中に出てくる特定の文字列を指定した文字列に置き換えるプログラムを作成せよ。
(実行例)
文字列を入力せよ : kadai no teisyutukigen ha mamore
置き換え元を入力せよ : kadai
置き換え後を入力せよ : report
結果 : report no teisyutukigen ha mamore

[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: cygwin gcc
 [3.3] 言語: C言語
[4] 期限: 本日午後2時までにお願いします。
[5] その他の制限: 空白ごと読み込む方法はgetchar命令、もしくはfgets命令を用いるとよい。
310デフォルトの名無しさん:2008/06/12(木) 05:58:41
>>305
pow関数にdouble渡してカウンタにしてたってーのは知らないけど
情報落ちも考慮するとdoubleは異常
311デフォルトの名無しさん:2008/06/12(木) 06:01:42
>>309
入力:111
置き換え元:11
置き換え後:aa

結果:aa1
結果:1aa
どっち?
312デフォルトの名無しさん:2008/06/12(木) 06:02:22
double d=(double)10000000000000,e=(double)0.0;

while( e<d )
e+=(double)1.0;

このコードは停止するか?
313デフォルトの名無しさん:2008/06/12(木) 06:06:23
>>311
最初に見つかった方をするようにお願いします。
結果:aa1
314デフォルトの名無しさん:2008/06/12(木) 06:45:29
>>304
お前が相当な馬鹿だということが分かった・・・っつか、お前の言っていることって
言わなきゃ良いことばかりだよ?かなりあほだな・・・進路を変えろ、基地外
315デフォルトの名無しさん:2008/06/12(木) 06:47:54
ttp://www.bohyoh.com/CandCPP/C/Library/pow.html
double pow(double x, double y);

知った無知の基地外は、自分基準で相手を罵倒することに
専念するだけだから困る。しっかりと資料を提示するなり
見れば無駄口を叩くこともなかっただろうに。
適切な取り扱いを知らない奴は、こういった業界では
絶対に通用しない。
316デフォルトの名無しさん:2008/06/12(木) 06:54:33
[1]授業単元:プログラミング基礎論
[2]ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6878.txt
[3]環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:borland c++5.5
[4] 期限:来週の月曜日
[5] その他の制限:関数まで習いました
ぜんぜんわからないのでよろしくお願いします
317デフォルトの名無しさん:2008/06/12(木) 07:33:40
>>306
入力するとき,で区切って入力してないってオチじゃない?
318デフォルトの名無しさん:2008/06/12(木) 07:40:04
>>316
#include <stdio.h>
int my_tolower(int ch)
{
if('A'<=ch && ch<='Z') ch += ('a' - 'A');
return ch;
}
int main(void)
{
char str[256];
int i, len;

scanf("%s", str);
for(len=0; str[len]; len++);
printf("文字列の長さ:%d\n", len);

for(i=0; i<len; i++) str[i] = my_tolower(str[i]);
printf("大文字を小文字に変換した文字列:%s\n", str);

for(i=0; i<len / 2; i++) if(str[i]!=str[len-1-i]) break;

if(i==len/2) printf("回文です\n");
else printf("回文ではありません\n");

return 0;
}
319デフォルトの名無しさん:2008/06/12(木) 08:01:11
>>309
文字列を複製する関数:strcpy(str1,str2,n)
文字列の長さを返すかんすう:strlen(str1)
文字列をn文字比較する関数:strncmp(str1,str2,n)
文字列str2をstr1のあとの連結する関数:strcat(str1,str2)
を使うなど、このレベルでプログラムを組んでいただけると助かります。
320デフォルトの名無しさん:2008/06/12(木) 08:32:23
[1] 授業単元:アルゴリズム
[2] 問題文(含コード&リンク):
PNMという画像フォーマットを用いるとprint文で文字コードを出力することで
画像が作成できる。
(説明例:http://a-gamyl.hp.infoseek.co.jp/Clang/pnm_read.html
これを用いて任意の画像を作成する。2次元の配列変数x,y座標を持つ平面に見立てて
画像を構成することが可能である。例えば画像の大きさ256x256の大きさとして
中央の(128,128)の場所に赤い点をひとつだけ打つには以下のようなプログラムになる。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6879.txt
以下のように直接出力してみよう。
$ cc en5-3.c
$ ./a.out > test.ppm
出来上がったtest.ppmというファイルをファイルブラウザで開いてみると
中央に赤い点が打たれているのが分かる。どのようなデータが書き込まれているかは
プログラムの最後のfor文を見ていただきたい。
(課題)
・sin派を描いた画像を作成するプログラムに変更せよ。
・円を描いた画像を作成するプログラムに変更せよ。
・うずまきを描いた画像を作成するプログラムに変更せよ。
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C言語
[4] 期限:無理を承知で後日6/12 午後2時までにお願いします。
321デフォルトの名無しさん:2008/06/12(木) 09:03:24
>>206
の老婆心
つまり、処理系によって、ちゃんと解釈してくれないよ
という忠告は
小さな親切余計なお世話
というのが>>207
で女々しい口喧嘩を繰り返すと。

要するにだ、207がちゃんとキャストをするなりしてコードを書いて
206がそれをハンディコンパイルすればそれで済む話
(できれば207がコードを実行すれば尚良い)
322デフォルトの名無しさん:2008/06/12(木) 09:08:45
>処理系によって、ちゃんと解釈してくれないよ
Cの規格読み直せw
323デフォルトの名無しさん:2008/06/12(木) 09:20:41
×小さな親切余計なお世話
○小さな親切大きなお世話
324デフォルトの名無しさん:2008/06/12(木) 09:23:04
このスレレベルの「案件」では自分のコンパイラで動作確認さえ取ってさえいれば
いいんじゃないのか?(自分のコンパイラで動作確認もとってないのにソース上げるのは論外だけど)

どんな処理系でも動作するポータビリティなんて要求されてないし、
仮に要求してきたにせよ宿題丸投げの要求なんて無視していい
というか、そんなウィルスコードここに貼るな。
325デフォルトの名無しさん:2008/06/12(木) 10:24:27
>>324
だからといってなコードは削ればいいという思想もウィルス
326デフォルトの名無しさん:2008/06/12(木) 10:29:39
>>318
ありがとうございました!
327デフォルトの名無しさん:2008/06/12(木) 10:36:54
このスレとしては
×自分のコンパイラ
○テンプレ[3]で指定されている環境

まぁ適当に書いてもだいたい通るから大丈夫だけど
328デフォルトの名無しさん:2008/06/12(木) 10:46:12
205は適当でも処理系依存でもなくきちんと規格に準拠したコードなのになw
329デフォルトの名無しさん:2008/06/12(木) 10:54:15
ソースコード読むのは人間だろ
解析するのがコンパイラ
330デフォルトの名無しさん:2008/06/12(木) 13:25:47
>>306
なんだ、まだ5時間しか考えてないのか、というのはヤボですかね。
331デフォルトの名無しさん:2008/06/12(木) 14:21:05
>>328
>>205
char *buf;
buf = malloc(size);
int main()

332デフォルトの名無しさん:2008/06/12(木) 14:23:17
あーあ・・
333デフォルトの名無しさん:2008/06/12(木) 14:26:55
ttp://www.bohyoh.com/CandCPP/FAQ/FAQ00042.html
ttp://www.bohyoh.com/CandCPP/FAQ/FAQ00042.html
とりわけ「準拠」というなら、何に?ANSI、ISO準拠なら
int mainについても蛇足とは言わない指摘がされるぞ。
だから無知は黙ってろって言われるんだよw
何に対して、何を元に指摘されているかわかってないんだろ。
資料を読んでから意見しろ。ルールブックも読まない奴が
勝手に自分ルールでそれは要らないよ、従っている人に
蛇足だよ、無駄だよなんて言っても通じない。
334デフォルトの名無しさん:2008/06/12(木) 14:45:23
C#は取り扱っていませんか?
335デフォルトの名無しさん:2008/06/12(木) 14:47:03
>>334
スレはあるようだけど過疎ってるなw

C#,C#の宿題片付けます。
http://pc11.2ch.net/test/read.cgi/tech/1197620454/
336デフォルトの名無しさん:2008/06/12(木) 15:01:03
>>335
誘導ありがとうございます。
31に書き込んだのでどなたかよろしくお願いします
337デフォルトの名無しさん:2008/06/12(木) 16:32:57
[1] 授業単元:
Cプログラミング
[2] 問題文(含コード&リンク):()
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6881.txt
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
linux
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
gcc
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)

[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
6月16日
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
特にありません。よろしくお願いします。
338デフォルトの名無しさん:2008/06/12(木) 16:47:02
>>337
int main(void){
QUEUE_TYPE x;

initQueue();

while(1) {
printf("整数を入力して下さい:\n");
scanf("%d",&x);
if (x<0) break;
if(x % 2) {
printf("dequeue() %d : ",dequeue());
printQueue();
}
else {
enqueue(x);
printf("enqueue(%d) : ",x);
printQueue();
}
}

while(!chkEmpty()){
printf("dequeue() %d : ",dequeue());
printQueue();
}

return 0;
}
339デフォルトの名無しさん:2008/06/12(木) 16:53:10
>>338
すばやい回答ありがとうございました!
340デフォルトの名無しさん:2008/06/12(木) 16:56:53
[1] 授業単元:
Cプログラミング
[2] 問題文(含コード&リンク):()
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6883.txt
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
linux
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
gcc
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)

[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
6月16日まで
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
>>337の続きの課題なのですが・・
よろしくお願いします
341デフォルトの名無しさん:2008/06/12(木) 17:16:43
while(1) {
printf("整数を入力して下さい:\n");
scanf("%d",&x);
if (x<0) break;
if(x % 2) {
dequeue(&Q);
printQueue(&Q);
}
else {
enqueue(x, &Q);
printf("enqueue(%d) : ", x);
printQueue(&Q);
}
}
342デフォルトの名無しさん:2008/06/12(木) 17:23:16
>>341
ありがとうございます。

しかし、
負の数字-100を入力した場合に、実行例に在るとおりに
dequeue します: キューの中 [ 20 30 ]
dequeue します: キューの中 [ 30 ]
dequeue します: キューの中 [ ]
空状態のためデキューできません。

と表示されないのと、奇数の数字35等を入力した場合にdequeue しますという文字が表示されません。
それとやはり、デキューされた値を表示するのは難しいのでしょうか?
343デフォルトの名無しさん:2008/06/12(木) 17:37:10
if(x % 2) {
dequeue(&Q);
printQueue(&Q);
}

if(x % 2) {
dequeue(&Q);
printf("dequeue します: ");
printQueue(&Q);
}


q=Q.front;以下はそのまま使ってる?
344デフォルトの名無しさん:2008/06/12(木) 17:47:19
>>343
すいません、q=Q.front;以下も一緒に消してしまっていました。
負の数の時のも無事いけました!
デキューされた値を表示するのは無理でしょうか?
345デフォルトの名無しさん:2008/06/12(木) 17:54:28
dequeue()関数をいじっていいなら337のみたいに返り値でdequeueしたのを戻せばいいんだけど。
346デフォルトの名無しさん:2008/06/12(木) 17:55:56
void dequeueを↓に変更

int dequeue(struct queue *Q){ /* デキューする関数 dequeue の定義 */
struct cell *q; /* キューの先頭(デキューされるセル)を指す*q の宣言 */
int x;
if(Q->front == NULL) { /* Q->front がNULL(キューが空状態)であれば */
printf("空状態のためデキューできません。\n"); /* 左記のメッセージを画面に表示して */
exit(1); /* プログラムを終了 */
}
else { /* Q->front がNULL(キューが空状態)でなければ */
q=Q->front; /* ポインタ変数*q はキューの先頭を指す */
x=q->element;
Q->front = (Q->front)->next; /* キューの先頭(Q->front)を置き換える */
free(q); /* デキューされたセルのメモリを解放 */
}
if(Q->front == NULL){ /* Q->front がNULL(キューが空状態)であれば */
Q->rear = NULL; /* キューの初期化 */
}
return x;
}

あとmain()内の
dequeue(&Q);
printf("dequeue します: ");

printf("dequeue() %d : ",dequeue(&Q));
にすればいけると思う
347デフォルトの名無しさん:2008/06/12(木) 17:56:53
あれ、dequeueを変えない方が良かったか?
348デフォルトの名無しさん:2008/06/12(木) 17:57:33
>>250-251
>>255
ありがとうございます。助かりました
349デフォルトの名無しさん:2008/06/12(木) 17:59:56
>>347
いいんじゃね?
main()を変えてって指定があるのは337の問題の方だけだし
350デフォルトの名無しさん:2008/06/12(木) 18:09:16
>>346
ありがとうございました!見事に動作しました
351340:2008/06/12(木) 18:17:57
何度もすいません、>>337と同じ内容を実施するプログラムと書いてあるので、
>偶数(0 を含む)である場合は、その整数をエンキューする。キューがフル状態である場合には、
>その整数をエンキューせず、『enqueue : フル状態のためエンキューできません。』と表示した後、プログラムを終了する。
の部分も付け加えなければいけないと思うのですが、
この部分はどうすればよいのでしょうか?
恐らくmain以外もいじくってよいと思います。。
よろしくお願いします
352309:2008/06/12(木) 18:24:29
まだ、待ってます。
期限は過ぎてますが、遅れてでもいいので提出したいです。
>>309
>>319
353デフォルトの名無しさん:2008/06/12(木) 18:28:17
>>351
>>340の場合は、要素が入る度にmallocでqueueのサイズを増やしてるから、
キューがフルである状態というのがそもそもない。
だからその部分は必要ないはず。
まあ、もしもそれを分かっていて、mallocするメモリが存在しなかった場合の話をしているなら、
enqueue内の

p=(struct cell *)malloc(sizeof(struct cell)); /* エンキューするセルを指すポインタ変数*p の獲得 */

if((p=(struct cell *)malloc(sizeof(struct cell)))==NULL){
printf("enqueue : フル状態のためエンキューできません。\n");
exit(1);
}
とすればおk
354340:2008/06/12(木) 18:30:09
>>353
なるほど、そうなのですか!無知な発言申し訳ないです。
本当に助かりました
355デフォルトの名無しさん:2008/06/12(木) 21:37:58
[1] 授業単元:プログラミング実習
[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6886.txt
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン:bcc
 [3.3] 言語: C
[4] 期限:明日中
[5] その他の制限:
1http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6884.c
2-1http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6885.c
自分で作れた所までです。
2-2はよくわかりませんでした
お願いします

[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン:bcc
 [3.3] 言語: C
[4] 期限:明日中
[5] その他の制限:
お願いします
356デフォルトの名無しさん:2008/06/12(木) 22:18:12
[1] 授業単元:C言語
[2] 問題文http://http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6888.txt
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン:VC 6.0
 [3.3] 言語: C
[4] 期限: 6月15日日曜日(早いと助かります)
[5] その他の制限:できるだけ簡単に
お願いします
357デフォルトの名無しさん:2008/06/12(木) 22:19:55
[1] 授業単元:C言語
[2] 問題文http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6888.txt
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン:VC 6.0
 [3.3] 言語: C
[4] 期限: 6月15日日曜日(早いと助かります)
[5] その他の制限:できるだけ簡単に
お願いします
358デフォルトの名無しさん:2008/06/13(金) 00:16:39
>>278をおねがいします
359デフォルトの名無しさん:2008/06/13(金) 00:18:43
>>352
どれがわかんないの?
int main(void)
{
//文字列入力

//置き換えられる文字入力
//その文字列が最初に入力した文章ないにあるかチェック
//無いときの処理

//置き換える文字列入力

//置き換え前文字列表示

//置き換え処理

//置き換え後文字列表示

return(0);
}
360デフォルトの名無しさん:2008/06/13(金) 01:21:21
[1] 授業単元:C++プログラミング
[2] 3つの整数を入力し、入力値を昇順に入れ替える処理を作成する。
  ソート処理は関数を使って作成し、処理結果は関数の外で行う。
  ソート関数は引数がポインタ、参照の2種類の関数をオーバーロードで作成する

 出力イメージ:
  "整数を3つ入力しなさい"
  "入力した値は15,1,12"
  "昇順に並び替えると1,12,15"
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:bcc
 [3.3] 言語:C++
[4] 期限:6月14日
[5] その他の制限:どうぞ宜しくお願いします
361309:2008/06/13(金) 01:22:57
>>359
・指定した文字列が含まれているか判定
・無いときの処理
・置き換え方
特に置き換える際は、どうやって文字を置き換えているのかさっぱり分からないです。

自分で分からないものを煮詰めても、まったくす進まないので、丸投げで全部作っていただきたく思います。
362デフォルトの名無しさん:2008/06/13(金) 01:26:13
>>309
#include <stdio.h>
#include <string.h>
#define BUFF_SIZE 1024
void ex(char *dest, char *src,char *a,char *b){
    while(*src!='\0'){
        if(strncmp(src,a,strlen(a))==0){
            strncpy(dest,b,strlen(b));
            src+=strlen(a);
            dest+=strlen(b);
        }
        else
            *dest++=*src++;
    }
    *dest='\0';
}
int main( void )
{
    char buf[BUFF_SIZE],src[BUFF_SIZE],dest[BUFF_SIZE],a[BUFF_SIZE],b[BUFF_SIZE];
    printf("文字列を入力せよ : ");
    fgets(buf,BUFF_SIZE,stdin);
    sscanf(buf,"%[^\n]",src);
    printf("置き換え元を入力せよ : ");
    fgets(buf,BUFF_SIZE,stdin);
    sscanf(buf,"%[^\n]",a);
    printf("置き換え後を入力せよ : ");
    fgets(buf,BUFF_SIZE,stdin);
    sscanf(buf,"%[^\n]",b);
    ex(dest,src,a,b);
    printf("結果 : %s\n",dest);
    return 0;
}
363362:2008/06/13(金) 01:30:54
fgetsに引っ付いてくる改行文字除去するのにもっとスマートなやり方があるかもしれんが
優秀な方がつっこんでくれるに期待して

一応>>311の通りに置きかえ
364デフォルトの名無しさん:2008/06/13(金) 01:36:46
\nの置き換えなら
if((p=strchar(buf, '\n'))!=NULL) *p = '\0';
ってやるのが一般的か?
365デフォルトの名無しさん:2008/06/13(金) 01:37:45
strcharじゃなくてstrchrだな
366デフォルトの名無しさん:2008/06/13(金) 02:52:16
[1] 授業単元:C言語
[2] コマンドラインから数字の文字列を入力して、
  unsigned intの範囲外の値が入力された場合は
  エラー文を返す。それ以外は入力値を標準出力する。

  例) 入力 → 出力
  例1) "4294967295" → 4294967295
  例2) "4294967296" → 入力値が範囲外です。
[3] 環境
 [3.1] OS:Ubuntu
 [3.2] コンパイラ名とバージョン:gcc4
 [3.3] 言語:C
[4] 期限:6月15日
[5] その他の制限:特にありません。isdigit()は使うと思います。

よろしくお願いいたします。
367デフォルトの名無しさん:2008/06/13(金) 03:05:53
[1] 授業単元: プログラミング実験
[2] http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm 6889
[3] 環境
 [3.1] OS windows
 [3.2] コンパイラ名とバージョン: Visual studio2005
 [3.3] 言語: C
[4] 期限 本日13時まで
[5] その他の制限:特になし

よろしくお願いします
368デフォルトの名無しさん:2008/06/13(金) 03:08:52
>>358
>>280をスルーしたからスルーされてるのかなー?
369デフォルトの名無しさん:2008/06/13(金) 03:10:02
sum1 += (the[i] - mea1[i]) * (the[i] - mea1[i]);
sum2 += (the[i] - mea2[i]) * (the[i] - mea2[i]);
370デフォルトの名無しさん:2008/06/13(金) 03:11:20
[1] 授業単元: プログラミング実験
[2] http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm 6889
[3] 環境
 [3.1] OS windows
 [3.2] コンパイラ名とバージョン: Visual studio2005
 [3.3] 言語: C
[4] 期限 本日13時まで
[5] その他の制限:特になし

よろしくお願いします
371デフォルトの名無しさん:2008/06/13(金) 03:12:30
>>366
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char **argv)
{
unsigned int u = ~0;
double d;
if(argc!=2) return 0;
d = atof(argv[1]);
if(d - u > 0) printf("入力値が範囲外です。\n");
else printf("%u", (unsigned int)d);

return 0;
}
372デフォルトの名無しさん:2008/06/13(金) 03:12:32
2重投稿すみませんorz
373デフォルトの名無しさん:2008/06/13(金) 03:13:47
>>361

> 文字列をn文字比較する関数:strncmp(str1,str2,n)
を使ってくれといっているのに
> ・指定した文字列が含まれているか判定
が分からないとは。

自分が分からないものを他人に作ってもらって分かったふりして
提出する程度の人だからしょうがないけど。
374デフォルトの名無しさん:2008/06/13(金) 03:22:47
>>369
解決しました
ありがとうございました
375366:2008/06/13(金) 03:29:05
>>371
早速ありがとうございます。
ただ以下の箇所でSIGSEGVが発生してしまいます。
 d = atof(argv[1]);
376366:2008/06/13(金) 03:32:44
char *argvとしていました。申し訳ありません。
377366:2008/06/13(金) 03:38:31
>>371
0未満の値を入力すると大きな値が出力されてしまいます。
例) -1 → 4294967295
378デフォルトの名無しさん:2008/06/13(金) 03:49:43
>>377
符号無しが範囲だから、0未満は範囲外として良いん?
379366:2008/06/13(金) 03:56:17
>>378
0〜4294967295以外はエラーという事でお願いします。
こんな感じでしょうか?

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

int main(int argc, char **argv)
{
unsigned int u = ~0;
double d;
if(argc!=2) return 0;
d = atof(argv[1]);
if(d - u > 0) printf("入力値が範囲外です。\n");
else if(d < 0) printf("入力値が範囲外です。\n");
else printf("%u", (unsigned int)d);

return 0;
}
380デフォルトの名無しさん:2008/06/13(金) 04:00:55
if(d - u > 0 || d < 0) とすると一つにまとめられるよ
381デフォルトの名無しさん:2008/06/13(金) 04:01:39
あと小数点を入れられた時はどうすんの?その辺りも教えて
382デフォルトの名無しさん:2008/06/13(金) 04:09:29
っつか、int型って時点で小数点以下は無視かと。
範囲って言うと・・・どうなん?>質問者
まぁ、切り落としちゃえば良い話だろうけど
383デフォルトの名無しさん:2008/06/13(金) 04:14:20
>>381
>>382
ここでは小数を想定していないので、
「不正な形式です。」と表示させたいです。
文字列が0〜9の数字で構成されているかチェックする必要が
ありそうです。
384デフォルトの名無しさん:2008/06/13(金) 04:17:03
エラーの種類は最初に確定しとかないと後出しで条件つけるなって怒られるよ
385デフォルトの名無しさん:2008/06/13(金) 04:34:29
ほっほっほ、麻呂がクソースを書くでおじゃるから、待ってたもう
386デフォルトの名無しさん:2008/06/13(金) 04:36:41
入力された文字列が正しい範囲のC言語の意味での符号無し整数を
表しているかどうかは、次の方法を取るべきであろう。
まず、文字に不正な文字が含まれていないか検査する。
これは文字列を先頭からスキャンし、不正な('0'~'9'以外の)文字が
含まれているか否かをチェックし、検出された場合は、エラー出力
して終了する。
4294967295は10桁なので、スキャンが終わった段階で、長さ
??以上あった場合はエラーとしたいが、それは間違いである。
先頭に?が何個継続しているかで、文字列の長さが100あっても
正しく範囲にあるかも知れない。
最初に?ではない文字が出た位置を記憶(これを実質開始位置とする)し、
文字終端の位置と比較して、差を取り、??桁より大きい場合はこの時点
でエラー出力して終了して良い。
以降文字列の開始点が上記実質開始位置であるとして考える。
文字列の長さが?桁未満の場合は、正常終了できる。
??桁の時が問題であり、先頭の文字が?以下の時は正常数量
?以上の時はエラー終了とする。
?桁目を見て、?以下の場合は正常終了、?以上の時はエラー終了する。
?桁目を見て、?以下の場合は正常終了、?以上の時はエラー終了する。
以降同様の処理を1桁目まで書く。
387デフォルトの名無しさん:2008/06/13(金) 04:41:08
>>366
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6890.c
麻呂のクソースを喰らうでおま〜
388デフォルトの名無しさん:2008/06/13(金) 04:43:11
しまった、flgの設定が不適切だったでおじゃる、ちと直してくるでおまる
389デフォルトの名無しさん:2008/06/13(金) 04:47:12
390デフォルトの名無しさん:2008/06/13(金) 04:50:34
>>389
間違ってる
391デフォルトの名無しさん:2008/06/13(金) 05:18:31
>>366
strtoulを使い、エラーチェックすれば簡単。
if (先頭が数字でない || *endがNULでない || errnoがERANGE && 結果がULONG_MAX) 不正な形式です。
longがunsigned intの大きさが異なるなら、これにさらにチェックを加えれば良い。

ライブラリ関数を使わないのであれば、
unsigned int r, s; int i;
for (r = 0, i = 0; s = r * 10 + argv[1][i] - '0'; i++, r = s)
if (r > s || argv[1][i]が数字でない) 不正な形式です。
かな。こちらは自信なし。
392デフォルトの名無しさん:2008/06/13(金) 05:20:14
不等号の向きが逆だお。
393デフォルトの名無しさん:2008/06/13(金) 05:37:32
>>390
アッーーー!って、見つけちゃったあなた、罰ゲームとして修正しておまっ
394デフォルトの名無しさん:2008/06/13(金) 05:40:44
どこが間違ってるか分からないなら素直に教えてくださいって言えよ。
395デフォルトの名無しさん:2008/06/13(金) 05:59:48
>>394
またお前か・・・態度でバレバレ。桁が同じだったときの
各桁の大小の評価のところだろ。面倒だから後はあんたがやっとけw
396デフォルトの名無しさん:2008/06/13(金) 06:05:37
教えてくださいって言えよ。
教えてくださいって 教えてくださいって 言えよ。 言えよ。

これはハマるぜ、この程度のことでここまで偉そうに出来るやつって
日ごろ相当つまらないことで恩着せがましい態度で嫌われてんぞw
397デフォルトの名無しさん:2008/06/13(金) 06:09:10
どこが間違っているか分かっているなら素直に答えてやるよっておっしゃってぇ〜
398デフォルトの名無しさん:2008/06/13(金) 06:24:19
ミスったら自分で修正しないか?
399デフォルトの名無しさん:2008/06/13(金) 06:24:25
アルェー、結果がおかしかったから間違っているとだけ言ったけど
本当はコードのどこが間違っているか分かってなかったのかYO!
400デフォルトの名無しさん:2008/06/13(金) 06:25:04
1時間かけてようやく分かった癖にw
401デフォルトの名無しさん:2008/06/13(金) 06:25:25
>>398
> どこが間違ってるか分からないなら素直に教えてくださいって言えよ。
って指摘したら指摘した奴が率先して口先だけじゃないってことを
証明するためにも、修正しないか?ウホッ?
402デフォルトの名無しさん:2008/06/13(金) 06:30:05
ミス指摘されて逆ギレってみっともなさすぎるな
403デフォルトの名無しさん:2008/06/13(金) 06:59:32
>>400
> 1時間かけてようやく分かった癖にw
そもそも、ソースを書いた本人じゃないし、俺はw
指摘した奴が詳細を把握してないのに、何言ってんだお前?w
どうせ数日前に現れた蛇足野郎だろ?w
あれを蛇足なんて言う程度の低さだから、どうせ口先だけだろ。
404デフォルトの名無しさん:2008/06/13(金) 07:07:05
一体誰と戦ってるんだw
405デフォルトの名無しさん:2008/06/13(金) 07:29:16
漢は黙ってソースうp
406デフォルトの名無しさん:2008/06/13(金) 07:36:14
ここで空気読めない俺がミスを指摘
if(argv[1][i] < uim[i]) break;
を追加するだけ。
407デフォルトの名無しさん:2008/06/13(金) 09:12:35
>>366
もうこんなのでいいんじゃないか?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 0〜9の文字以外の表現だと不正な値になる unsigned int のパーサ
unsigned int parse(const char *str){
  unsigned int u=0;
  for(; str!='\0'; str++){ u+=u*10+(*str-'0'); }
  return u;
}
int main(int c, char **a){
  unsigned int u = parse(a[1]);
  char us[11];
  sprintf(us, "%u", u);
  if(strcmp(us, a[1])!=0) printf("unsigned int の範囲外です");
  else printf("%u", u);
}
408デフォルトの名無しさん:2008/06/13(金) 09:24:25
なにそのコード、ふざけてるの?
409デフォルトの名無しさん:2008/06/13(金) 09:45:08
>>317
まじだあああああああ
ありがとうございます(つд⊂)エーン
410デフォルトの名無しさん:2008/06/13(金) 09:55:33
(つд・)∩チラッ
411デフォルトの名無しさん:2008/06/13(金) 09:59:29
>>407
実行してから貼れよ
>for(; str!='\0'; str++){ u+=u*10+(*str-'0'); }
いくらなんでもこれはひどすぎだろ
412デフォルトの名無しさん:2008/06/13(金) 10:27:07
>>368
すいません、見落としてました
ピボットのとり方が変わってもソート結果が変わることはないので、
原因はほかにあると思うんですがよろしくお願いします
413デフォルトの名無しさん:2008/06/13(金) 12:11:33
>>408
ふざけてはないと思う。よく見れば単なるタイプミス
*が抜けてて+が余計についてる。
for(;str !='¥0'...→for(;*str !='¥0'...
u+=u*10...→u=u*10...

貼る時に、インデント付けようと、コピペじゃなく
ブラウザのtextareaに直接タイプしたんじゃなかろうか(想像)

ただし実行して確かめてみたコードだとしても、
>>366の要求をほぼ満たしてるとは言い切れないと思う。
>>366は、>>407のコードを修正して実行出来たのかな?
41455:2008/06/13(金) 14:51:43
[1] 授業単元:グラフ理論2
[2] 問題文:
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6843.txt
[3] 環境
 [3.1] 言語:C

スルーだったので、少しばかり自分でやってみました。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6893.txt
初心者の自分にはこの程度が限界です。
ヘルプをお願いいたします。
415デフォルトの名無しさん:2008/06/13(金) 14:55:00
416デフォルトの名無しさん:2008/06/13(金) 15:03:42
>>408 コードを書かないくせに、相変わらず茶化しだけの屑か
417デフォルトの名無しさん:2008/06/13(金) 15:06:44
コードを読めるだけましじゃね?
418デフォルトの名無しさん:2008/06/13(金) 15:14:45
コードを読めなくても文句は言える
コードを書くまで信用するな
419デフォルトの名無しさん:2008/06/13(金) 15:16:10
そうそう、結果で判断すりゃそれまで。指摘するなら具体的にどこが?
言わないと、かなり印象が悪いぞ。例え間違っているのがわかっていても
何でお前はそれを指摘したか?逆に言い返されると、お前がわかってないだの
茶化すから余計に悪い。
420デフォルトの名無しさん:2008/06/13(金) 15:18:00
>>415
小数点を入力したときがおかしい
421デフォルトの名無しさん:2008/06/13(金) 15:25:23
>>415
手持ちのgccでチェックしたが、
[Suma]:~ Asagiri$ ./6894 4199999999
4199999999
[Suma]:~ Asagiri$ ./6894 4200000000
範囲外です。

となった
422デフォルトの名無しさん:2008/06/13(金) 15:42:28
423デフォルトの名無しさん:2008/06/13(金) 15:49:33
>>421
>415はstrcmp()の戻り値の仕様を誤解しているらしい。
424デフォルトの名無しさん:2008/06/13(金) 15:49:46
>>415
strcmp の返り値に注意
425デフォルトの名無しさん:2008/06/13(金) 15:52:52
ttp://www.bohyoh.com/CandCPP/C/Library/strcmp.html
> 等しければ0、s1がs2より大きければ正の整数値、
> s1がs2より小さければ負の整数値を返す。
426デフォルトの名無しさん:2008/06/13(金) 15:55:23
>>423
否strcmpの仕様がおかしい。1,-1,0のいずれかを返すべき
427デフォルトの名無しさん:2008/06/13(金) 15:58:38
標準関数の仕様にケチをつけるか・・・だから駄目なんだよ、お前はw
428デフォルトの名無しさん:2008/06/13(金) 15:58:46
文字同士の差を直接返すほうが、差の正負で1と-1にするより単純だから
429デフォルトの名無しさん:2008/06/13(金) 16:12:04
>>426
バーカ
ISO/IEC 9899:1999を読んでから言え
430デフォルトの名無しさん:2008/06/13(金) 16:12:56
>>425
そこの実現例、nはどっから湧いてきたんだ?
431デフォルトの名無しさん:2008/06/13(金) 16:40:42
>>430
確かに、実装例はおかしいね・・・サイト管理者に聞いてみw
432デフォルトの名無しさん:2008/06/13(金) 16:43:06
>>430
そう思って strncmp のとこも見に行ったw
433デフォルトの名無しさん:2008/06/13(金) 16:50:14
柴田望洋さんって日本人の中ではまともな本を書く人なんだが
こういう間違いを犯す事もあるんだな
434デフォルトの名無しさん:2008/06/13(金) 16:57:13
しょっちゅうだろ。
435デフォルトの名無しさん:2008/06/13(金) 16:58:04
難しいコトする時は誰でも気を付けるけど
簡単なことは気が抜けちゃうんだよ
436デフォルトの名無しさん:2008/06/13(金) 17:02:04
日本語でおkな出版物はどこにでもあるさ。
映像コンテンツに於いても、映画ではあまりそういうことはないが
アニメなんて日本語でおk日本語でおkなものも少なくないw
437デフォルトの名無しさん:2008/06/13(金) 17:46:24
[1] C
[2] 問[1] 1^1+2^2+3^3+4^4+……99^99を1000で割った値を求めよ。
  問[2] 1から20までの数すべてで割り切れる最小の正整数を求めよ。
[3] 環境
 [3.1]  LINUX
 [3.3] C
[4]6月16日
[5]なし
2問も書いて厚かましいかもしれませんが
よろしくお願いします
438デフォルトの名無しさん:2008/06/13(金) 18:19:22
>>437 とりあえず問1だけ
#include <stdio.h>
unsigned int f(unsigned int a,unsigned int b,unsigned int m)
{
    /* a^b (mod m) */
    unsigned int x=1;
    while(b!=0){
        if(b%2==0){
            a=(a*a)%m;
            b=b/2;
            
        }
        else{
            x=(x*a)%m;
            b=b-1;
        }
    }
    return x;
}
int main( void )
{
    int i;
    int answer=0;
    for(i=1;i<=99;i++)
        answer=(answer+f(i,i,1000))%1000;
    printf("1^1+2^2+3^3+...+99^99≡%d (mod 1000)",answer);
    return 0;
}
実行結果:1^1+2^2+3^3+...+99^99≡920 (mod 1000)
a^b ( mod m)の値を返す関数の引数やら色々unsigned int になってるけど
気に入らなかったらこのくらいの計算ならintに変えても大丈夫だろう
というか、答えあってるのかな・・・これ
439デフォルトの名無しさん:2008/06/13(金) 18:20:59
> 1000で割った値を求めよ。
440デフォルトの名無しさん:2008/06/13(金) 18:22:05
うはwつって来るわorz
441デフォルトの名無しさん:2008/06/13(金) 18:24:08
[1] 授業単元:
[2] 問題文:
構造体配列で名前と背丈適当に入れて、1番背の高い人表示するプログラムを作成せよ。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6898.txt

[3] 環境 OS:WindowsC言語

その他:
関数list srchmaxtall内の maxt.name = (p + i)->name;の行でのエラーが出てしまい困っています。
maxt.name = (p + i)->name;この行を消すとエラーが消え、実行されるのでこの行がどこか間違っていると思うのですが
文字列の格納の仕方がどこか間違ってますか?

お願いします、誰か教えて下さい。

442デフォルトの名無しさん:2008/06/13(金) 18:33:56
>>441
文字列には代入できない。エラーが出た時は常にエラーメッセージをちゃんと読むこと。

strcpy(maxt.name,(p + i)->name);
443デフォルトの名無しさん:2008/06/13(金) 18:34:53
>>437
問[2]
#include <stdio.h>

int gcm(int a, int b) { return a % b ? gcm(b, a%b) : b; }

int main(void)
{
int i, n = 1;

for(i=2; i<=20; i++) if(n % i) n *= i / gcm(n, i);

printf("%d", n);

return 0;
}
444デフォルトの名無しさん:2008/06/13(金) 19:00:40
>>442
ありがとうございます!助かりました!

大学の講義でstrcpyは習った事がなかったのですが
この関数以外で簡単に記述する方法があれば教えて下さい

445デフォルトの名無しさん:2008/06/13(金) 19:03:54
>>443 結果のさらに半分でおk
446デフォルトの名無しさん:2008/06/13(金) 19:07:02
[Fuga]:~ Miyabi$ ./443
232792560
232792560 % 2=0
232792560 % 3=0
232792560 % 4=0
232792560 % 5=0
232792560 % 6=0
232792560 % 7=0
232792560 % 8=0
232792560 % 9=0
232792560 % 10=0
232792560 % 11=0
232792560 % 12=0
232792560 % 13=0
232792560 % 14=0
232792560 % 15=0
232792560 % 16=0
232792560 % 17=0
232792560 % 18=0
232792560 % 19=0
232792560 % 20=0

検算コード入れてみた。すげー。あってるじゃん。検算コード入りソース↓
447デフォルトの名無しさん:2008/06/13(金) 19:07:51
#include <stdio.h>
#define int long long
int gcm(int a, int b) { return a % b ? gcm(b, a%b) : b; }
#undef int
int main(void)
#define int long long
{
int i, n = 1;

for(i=2; i<=20; i++) if(n % i) n *= i / gcm(n, i);

printf("%lld¥n", n);
/*チェック*/
for(i=2;i<=20;i++)
printf("%lld % %% lld=%lld¥n",n ,i,n %i);
return 0;
}
448デフォルトの名無しさん:2008/06/13(金) 19:07:52
>253です。
>251さん
raw形式です。気にかけてくださって有難うございます。
449デフォルトの名無しさん:2008/06/13(金) 19:24:14
>>445
nを2で割って447のチェック試してみろ
450デフォルトの名無しさん:2008/06/13(金) 20:17:47
>>437
問1を適当にといてみたら答えがオーバーフローしたw
451デフォルトの名無しさん:2008/06/13(金) 20:25:42
>>55,414
とりあえず作ってみた
出力の仕様がよくわからんので適当になおしてくれ
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6899.c
452デフォルトの名無しさん:2008/06/13(金) 20:34:32
>>437
1^1+2^2+....+99^99=(恐らく)
371115746176445351701210713361941528546861949073514542015172437236580034634746971244943788132460150776779198800002366059871900041784732217539059306483834977865973576751345853385981719448969027641920

だから1000で割った値は、下3桁を000にしたものが答
ソースはC++だから無意味なんで省略
こういった問題はC/C++の問題としては余りにも不適当。検算のしようがないじゃん。
誰だこんな宿題出したの?

この結果で見る限り
>>438で使われてる式は合ってるな (ま、当然と言えば当然だが)
453デフォルトの名無しさん:2008/06/13(金) 20:39:12
多分余りで>>438みたいな答えを期待したんじゃないかと思うんだが
454デフォルトの名無しさん:2008/06/13(金) 20:41:44
>>443
ユークリッドの互除法を使ってるのは分かるんですが
そのプログラムにより何故目的の数値が出てくるのか分からないんですが…
できれば詳しく教えてもらえませんか?本当にすいません
455デフォルトの名無しさん:2008/06/13(金) 20:43:38
>>454
数学板の質問箱にでも逝って1,2,3,4,5,6,7,8,9,10,...,20の最小公倍数を求める方法を
聞いてくるのが最善かと
456デフォルトの名無しさん:2008/06/13(金) 20:47:24
1と2の最小公倍数を求める
1と2の最小公倍数と3の最小公倍数を求める
1〜3の最小公倍数と4の最小公倍数を求める


1〜19の最小公倍数と20の最小公倍数を求める
457デフォルトの名無しさん:2008/06/13(金) 20:48:22
>>438
ありがとうございます
>>452
今日の実技試験でこの問題が出されました
問題にはヒントとしてオーバーフーロー起こすからどうとかこうとか書いてました
458デフォルトの名無しさん:2008/06/13(金) 20:48:31
>>444
構造体はそのままコピーできる
つまり

maxt.tall = (p + i)->tall;
strcpy(maxt.name, (p + i)->name);

じゃなくて

maxt=p[i];

でいい
459デフォルトの名無しさん:2008/06/13(金) 20:54:56
>>457
本当に1000で割った値?余りじゃなくて?
460デフォルトの名無しさん:2008/06/13(金) 20:56:47
>>459
先ほどプリント見たら
余りでした…すいません…
461デフォルトの名無しさん:2008/06/13(金) 20:58:51
そんなの あ(ん)まり ダッーーーー!
462デフォルトの名無しさん:2008/06/13(金) 21:05:49
#include <stdio.h>

int main(void)
{
int i, j, rt = 0;

for(i=1; i<=99; i++) {
int r = 1;
for(j=0; j<i; j++) r = (r * i) % 1000;
rt += r;
if(rt >= 1000) rt -= 1000;
}

printf("%d\n", rt);

return 0;
}
463デフォルトの名無しさん:2008/06/13(金) 21:24:08
>>462
ありがとうございます
464デフォルトの名無しさん:2008/06/13(金) 22:19:10
>>437
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6900.c
まっ、麻呂もクソースを提示するでおじゃ〜
465デフォルトの名無しさん:2008/06/13(金) 22:58:24
1] 授業単元:C言語応用
[2] 問題文:コマンドラインに指定されたディレクトリのファイルに変更があったら、そのファイルをコンソールに
出力するプログラムを作りなさい。(出力:時刻、ファイル名、(新規作成/削除/内容変更/アクセス))
[3] 環境 OS:gcc Linux
[4]言語: C
[5]その他:
system関数などの子プロセスを作成をさせたりすることはしてはならないそうです。
466465:2008/06/13(金) 22:59:21
すみません。期限は、再来週の水曜日までだそうです。
467デフォルトの名無しさん:2008/06/13(金) 23:05:59
>>465
変更があったらって、何をもとに判断するん?
468デフォルトの名無しさん:2008/06/13(金) 23:27:13
[1] 授業単元:プログラム
[2] 問題文 以下を逆ポーランド記法を使って答えを求めるプログラムを作成せよ
        char a[] = "123+*45+*"
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン:VC 6.0
 [3.3] 言語: C
[4] 期限:14日まで
[5] その他の制限:関数、配列、などを習いました
よろしくお願いします
469デフォルトの名無しさん:2008/06/13(金) 23:41:36
大変遅くなりましたが、>>362-363さんありがとうございます。
今日一日、友人と考えていたのですが、置き換えた文字列が別の文字に化けたりで
結局完成しませんでした。
なので>>362さんのコードを是非使わせていただきます。ありがとうございます。
470デフォルトの名無しさん:2008/06/14(土) 00:17:58
>>465
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6901.c
とりあえず指定したディレクトリの中身と
中にあるファイルのファイル名、作成、更新、アクセス時間を表示する
部分は作っておいたでおじゃる。
時間に関してはプロパティの時間の値をもとに ctime を用いて表示しているでおまる。

あとは、適当に、何をもとに変更したか条件をつけて作り変えるでござるよ。
471デフォルトの名無しさん:2008/06/14(土) 00:44:42
[1] 授業単元: プログラミング言語
[2] 問題文(含コード&リンク):
1,文字列に母音(a,i,u,e,o)が何個含まれているかをint型数値として返すような関数VowelNumber()を作成せよ。
また,この関数を使用して,キーボードから入力された文字列に
母音が何個含まれているかを表示するプログラムを作成せよ。


2,
(1)
ある自然数に対して,その自然数の約数は何個かを関数値として返すような
関数FactorQuantity()を作成せよ。
例として20の場合は{1,2,4,5,10,20}なので個数は6となる。
(2)
ある自然数Nの約数の個数が2個だけ(1とNだけ)の場合,Nは素数である。
そこで(1)の関数FactorQuantity()を利用してNが素数がどうかを判定し,
Nが素数なら1を返し,素数でなければ0を返す関数Prime()を作成せよ。
(3)
(2)の関数Prime()を用いて次のプログラムを作成せよ。
2つの自然数a,bを入力させ(a<bとする),a以上b以下の素数を全て表示するプログラムを作成せよ。
※ソースファイルは1つのファイルにまとめよ。
[3] 環境
 [3.1] OS:Linux
 [3.3] 言語:C
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
いままで習ったのは、printf,scanf,ループ文,if文,配列,strcat,strcpy,strlen,stricmp,strcmpなどです。まだポインタは習っていません。
解説も少し加えてくれるとありがたいです。
よろしくお願いします。
472デフォルトの名無しさん:2008/06/14(土) 00:56:23
>>471
2.
#include <stdio.h>

int FactorQuantity(int n)
{
int i, ret = 1;
for(i=1; i<=n/2; i++) if(n % i == 0) ret++;
return ret;
}

int Prime(int n)
{
return FactorQuantity(n) == 2;
}

int main(void)
{
int i, a, b;

scanf("%d%d", &a, &b);

for(i=a; i<=b; i++) if(Prime(i)) printf("%d ", i);

return 0;
}
473デフォルトの名無しさん:2008/06/14(土) 00:58:39
っつか、マジで。見づらいからうpロダ使えって
474デフォルトの名無しさん:2008/06/14(土) 01:08:01
>>472
ありがとうございました
明日実行してみます
475デフォルトの名無しさん:2008/06/14(土) 01:24:38
476デフォルトの名無しさん:2008/06/14(土) 01:26:29
>>473
自治厨いね
477デフォルトの名無しさん:2008/06/14(土) 01:28:12
>>471
もう出てるけどやっちゃたので
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6903.txt
解りやすいコードだと思うから解説なしで
478デフォルトの名無しさん:2008/06/14(土) 01:28:48
>>476
いちいち反論するお前みたいなバカがうざい
空気読め、引きこもり
479デフォルトの名無しさん:2008/06/14(土) 01:30:17
>>472 = >>476
> 自治厨いね
日本語でおk。ここに書き込むのに、{} の位置やら無駄に改行をして
ウザイのが自分だと気づかない痛い自己中だろ・・・
480デフォルトの名無しさん:2008/06/14(土) 01:31:44
>>464
麻呂さんありがとうございます
481デフォルトの名無しさん:2008/06/14(土) 01:43:57
自治でも何でもないだろ・・・まぁ、理解力の無い奴は
身勝手な行動をとるし、そのせいで放置されるんだろうね・・・
言っても聞かない基地外は、スルー、放置が一番だしな。
どうせ面倒臭いだの、他の奴に先を越されるのが嫌だから
少しでも早くって、必死に書き込んでいるんだろうけどさ・・・
何か言われると、俺に命令するな!だろ。しかも、罵倒レスをし返す。
孤立した引きこもりが取るお決まりのパターンだな。
だから集団社会の中に入れないんだよ。
頼むから秋葉原で暴れるなよ。昼と夜が逆転した自己中さん。
482デフォルトの名無しさん:2008/06/14(土) 01:50:32
複数レスにわたる長いプログラムであればうpろだ使えってのはわかるが、
1レスで収まる範囲くらい許して欲しいところ
正直うpろだ使うのが面倒なときもある
483デフォルトの名無しさん:2008/06/14(土) 01:51:53
7行に収まるなら直接書いていいよ
484デフォルトの名無しさん:2008/06/14(土) 01:56:30
>>479
いね = 去ね
高校出てれば当然習ってるはずの言葉。
485デフォルトの名無しさん:2008/06/14(土) 01:57:39
>>481
毎日毎日よくそこまで暴れられるなw
486デフォルトの名無しさん:2008/06/14(土) 01:59:02
>>483
>>481はアウトですか?
487デフォルトの名無しさん:2008/06/14(土) 02:00:46
473が余計なこと書かなきゃ荒れないのにな。
いつもうpロダ使えっていっては反論されて大暴れ。
488デフォルトの名無しさん:2008/06/14(土) 02:06:17
>>485 オマエモナー。
>>487 自己紹介乙。いつもうpロダ使えって注意されてファビョっているのがお前か・・・
>>484 ますます日本語でおk。どこの高校だよ、お前は?w
489デフォルトの名無しさん:2008/06/14(土) 02:09:40
古文で習うはずなんだが
490デフォルトの名無しさん:2008/06/14(土) 02:10:11
平成時代に古文を使うってどれだけKYだよ
491デフォルトの名無しさん:2008/06/14(土) 02:10:18
>>475
いろいろとひどいコードだなw
492デフォルトの名無しさん:2008/06/14(土) 02:10:38
ttp://dic.yahoo.co.jp/dsearch?p=%E5%8E%BB%E3%81%AC&enc=UTF-8&stype=0&dtype=0&dname=0ss
現代において、現代語ではなく古典に出てくる言葉でコミュニケーションをとるなんて
流行ですか?w ますます日本語でおk、だな。時代によっては日本だって
大きく社会情勢も文化も違うし。あっ、近代を理解できない時代遅れか、すまねーな。
PCも性能も、随分変わっちまったしな。まぁ、うpロダも使えない時代遅れは
いつまでもコードを直接書いて、他人の迷惑を無視してなさい。
知らないところでウザがられてるから。
493デフォルトの名無しさん:2008/06/14(土) 02:12:21
基礎的な教養に欠けてる人間が何言ってもムダw
494デフォルトの名無しさん:2008/06/14(土) 02:13:31
>>492
>2 (動ナ四)
>〔補説〕 1 の四段化。近世中期以降の語
>[1] (関西地方で)立ち去る。帰る。
495デフォルトの名無しさん:2008/06/14(土) 02:15:52
日本語でおkが最近のお気に入りみたいだけど、どんだけ流行に遅れてんだよ
496デフォルトの名無しさん:2008/06/14(土) 02:19:25
人格障害者だな
華麗にスルーしようぜ
どうせこいつ第二の加藤君だから
497デフォルトの名無しさん:2008/06/14(土) 02:26:18
ttp://dic.yahoo.co.jp/dsearch?enc=UTF-8&p=%E3%81%84%E3%81%AC&dtype=0&dname=0na&stype=1&pagenum=1&index=01316901127800
ttp://dic.yahoo.co.jp/dsearch?enc=UTF-8&p=%E3%81%84%E3%81%AC%E3%82%8B&stype=1&dtype=0
現代語でおk。現代において古典から用いる奴って、何がしたいんだ?
まぁ、最近じゃ文系でもプログラミングやってんの?俺の通ってた大学は
もともと外語学から発展した大学で、コンピュータだらけの学校だったが
文系でも一般教育の科目でコンピュータを扱う授業はあったが・・・
498デフォルトの名無しさん:2008/06/14(土) 02:28:14
499デフォルトの名無しさん:2008/06/14(土) 02:30:31
>>497
> ◆ナ変は現在関西方言で用いられる。また、近世中期以降、四段化して用いられるようにもなった。
500デフォルトの名無しさん:2008/06/14(土) 02:32:10
>>497
大学名教えてw
教えてくれなかったら脳内大学とみなす
501デフォルトの名無しさん:2008/06/14(土) 02:34:39
いねを知らなかった馬鹿が入れる大学なんてないだろ
502465:2008/06/14(土) 02:35:24
>>467
初期状態はすべて新規作成という設定だそうです。つまり起動したら対象のディレクトリのファイルを新規作成
という状態で出力しなければなりません。
プリントを確認したら、フォルダーの中のファイルは10000個以内に制限されるそうですがサブフォルダー
を任意の階層まで含むことはあり得るそうです。
明示されていないので、対象フォルダー以外のフォルダーへの書き込みアクセスは可能なようですが、
この点来週にでも確認したいと思ってます。

>>470
定期的にls -laをsystem()し、一時ファイル(対象ディレクトリ外)にリダイレクト出力し、
直近の同種ファイルリストとの差分で、出力しようかと思いましたが、system()やfork()が使用禁止らしいので
ls -laに相当するものを作らなければならないことは確実でしたが、参考になりました。
ありがとうございます。けれど、残念ながら回答にはなっていない感じです。
503デフォルトの名無しさん:2008/06/14(土) 02:36:32
おじゃるの時は現代語だのなんだの突っ込みなかったのに
いねくらいで荒れるなよ
504デフォルトの名無しさん:2008/06/14(土) 02:37:09
おじゃる本人だしw
505デフォルトの名無しさん:2008/06/14(土) 02:37:37
ttp://www.kobekko.com/modules/xwords/entry.php?entryID=82
ttp://contest.thinkquest.jp/tqj2001/40555/doushi2.htm
ttp://en.wiktionary.org/wiki/%E5%8E%BB%E3%81%AC

あぁ、なんだ、関西人か?それとも、本当に古代人?化石になっても
なおこの世に未練を残した、貴族文化の時代の方々ですか?
最近の再生医療もすごいけど、古人を残す保存技術もあったんですかっ!?
ググってもろくなページが検出されねーや。ツマンネッ
506468:2008/06/14(土) 02:37:59
>>498
作っていただきありがとうございます
できればポインタを使わずに作っていただきたいのですが
あとまだ初心者なので簡単にお願いします
507デフォルトの名無しさん:2008/06/14(土) 02:38:30
必死でググってる姿が微笑ましい。
508デフォルトの名無しさん:2008/06/14(土) 02:40:37
>>501
いねを知っている程度でそこまで詰まらないことが言えるなんて
大学に入学したことがない、かなりレベルの低い知識しかもってないんだw
っつかね、もうお前みたいなことを言い出したら負けだよ。くだらねぇ。
この世に全知全能な奴だけが大学に入学しているわけでもないし、
プログラミングをやっているわけでもない。しかし、なんで知らなかったってことになってるの???
辞書も引いたことがない奴が入れる学校すらないだろうねw
ちゃんと出典を見たか?タイピングミスを無理やりフォローして必死になっている
ようにしか思えんな。みっともないから止めとけ。関西人
509498:2008/06/14(土) 02:40:45
>> 498
あー、スマン
最初にスタックをchar型で作ってたから

/* スタック初期化 */
memset( stack, 0, STACK_SIZE );



/* スタック初期化 */
memset( stack, 0, sizeof(int) * STACK_SIZE );

に直してくれ
510デフォルトの名無しさん:2008/06/14(土) 02:40:50
自分に知識が不足してるのに、他人が間違ってると思い込んでバカにするから引っ込みがつかなくなるんだよ。
511468:2008/06/14(土) 02:41:20
>>498
#include <string.h>
あとこれもなしでできませんか?
はじめて見るので…
512デフォルトの名無しさん:2008/06/14(土) 02:42:03
>>507
> 必死で
にーーーほーーーんーーーーごーーーーでーーーー おkw
どっちが必死なんだよ、フォローにもならねー古典野郎w
お前はプログラミングなんてやってねーで、古事記でも読んでろや。
現代語を知らない方が痛す
513デフォルトの名無しさん:2008/06/14(土) 02:44:48
痛すなんて現代語ありませんよ?
514デフォルトの名無しさん:2008/06/14(土) 02:46:20
515514:2008/06/14(土) 02:48:42
>>498
0割エラーも判定してないし、コメントもないし、
pushもpopも関数化してないけど
516デフォルトの名無しさん:2008/06/14(土) 02:51:07
こんなスレで古典で出た言葉を使って、知らなさそうな奴に対して
強がっている場違い、うpロダすら使えない奴が必死すぎて笑え・・・ない・・・
そんなの知らなくても大学に入学できるが、自分は知っていて
敢えてタイピングミスだと茶化してみたら、詰まらないフォローをしててワラタw
素直に認めたら?タイピングミスだって。ほんっと、現代語でおkな時代遅れか・・・
スレタイ読める?読めない?空気読める?読めない?
ttp://jp.youtube.com/watch?v=RIL28wqOQGA

お前ってさぁ〜〜〜、数学の授業中に歴史の話でもしてんの?
場違い野郎ってほんっとKYだよな。ぜってー社会じゃ成功しないタイプ。
むしろ、そういう詰まらないことを持ち出して、他人を罵倒、非難するから
余計に周りから無視されて、孤立が原因で失敗するんだろ?
だいたい、こんな時間にこのスレで必死になって、ソースも書かずに
罵倒レスとな?(麻呂風に)
もはや大学にすら入学できなかった奴の妬み、僻みだな。哀れ、チーン。
517デフォルトの名無しさん:2008/06/14(土) 02:51:58
>>477
str[i] == 'a' が2個あるぞw
518デフォルトの名無しさん:2008/06/14(土) 02:52:40
>>516
で、お前どこの大学なの?
519デフォルトの名無しさん:2008/06/14(土) 02:52:45
3行とは言わないからせめて7行にまとめて
520デフォルトの名無しさん:2008/06/14(土) 02:53:30
>>518
脳内に決まってるだろw
521498:2008/06/14(土) 02:54:19
>>468
>>511
…逆ポーランド記法で、俺の技量じゃ、これ以上簡単にならん…
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6906.txt
522デフォルトの名無しさん:2008/06/14(土) 02:54:54
>自分は知っていて敢えてタイピングミスだと茶化してみたら
相変わらず完全に論破されると後釣り宣言ですか。
全然進歩してないね。
523デフォルトの名無しさん:2008/06/14(土) 02:57:22
>>516
あれ?
君の敵は472じゃなかったの?
ソース書いてるじゃん。
524デフォルトの名無しさん:2008/06/14(土) 02:58:47
>だいたい、こんな時間にこのスレで必死になって、ソースも書かずに罵倒レスとな?
>もはや大学にすら入学できなかった奴の妬み、僻みだな。

なんでこいつ追い詰められると自己紹介しちゃうんだろうな。
525デフォルトの名無しさん:2008/06/14(土) 03:00:00
>>521
どうもです!!
まだ時間があるので自分でもねばってみます
526デフォルトの名無しさん:2008/06/14(土) 03:02:52
IDの出ない板で煽りあい止めれ
527デフォルトの名無しさん:2008/06/14(土) 03:09:39
自分が解けない問題が出ると質問者でなく回答者が荒れる
何だか末期的なスレでつね
528デフォルトの名無しさん:2008/06/14(土) 03:12:04
>>525
えー俺のクソースしかと?
529デフォルトの名無しさん:2008/06/14(土) 03:14:41
古典で使われていた 去ぬ を知っているだけで、ここまで
得意気になれる恥ずかしい香具師・・・こんな時間にコーヒーを
ディスプレイに吹いちまったじゃねーかよw
知らなかったと勘違いした奴を、勝手な自分基準で蔑む、貶す必死さ・・・
もう終わってるよ・・・。こんなスレで、自分以下の人間を見て安心してんだろ?
頼むから、秋葉原以外の歩行者天国で暴れるなよ。警備は強化されているだろうけど。

ちなみに、自分、高校生のときは10段階評価で平均8.0以上、3年間ほとんど9.0以上で
成績優秀者だったんで、センター試験なんぞ屁でもないものは受けずに
自己推薦で卒業する前の年には、入学する大学は決まってましたから。
理系の学科を専攻、大学生時代も、秀、優ばかりの成績優秀でしたが、何か?
国語の試験もあったけど、去ぬはたまたま試験に出なかったけど、知ってましたが何か?

スレが流れちゃうんで、この辺で。コード書けよ、古典で勝負しようとしないでw
530デフォルトの名無しさん:2008/06/14(土) 03:20:17
>>529
どこの高校なんだ?
どこの大学かもまだ訊いてないけどさ。

通知簿の成績なんてその学校の中での相対評価に過ぎないんだから、
学校のレベルが分からんことには9.0とか優とかいっても何の意味も成さないよ。
531デフォルトの名無しさん:2008/06/14(土) 03:20:21
鏡見てみたら?
お前の書き込みが一番口汚く他人を罵ってるよ。
532デフォルトの名無しさん:2008/06/14(土) 03:21:37
531は529当てね、わかるとは思うけど
533じゃあ和むソースコードをひとつ:2008/06/14(土) 03:22:51
#include<stdio.h>
int
main
(
void
)
{
printf
(
"H"
"E"
"L"
"L"
"O"
"!"
"W"
"O"
"R"
"L"
"D"
"!"
)
;
return
(
0
)
;
}
534デフォルトの名無しさん:2008/06/14(土) 03:24:37
return(0)はお勧めできない
535デフォルトの名無しさん:2008/06/14(土) 03:58:39
>>445
バカが他人にケチつけるのは一億年はえーよw
536デフォルトの名無しさん:2008/06/14(土) 04:00:27
明らかに間違っていると分かっているレスに、何を今さら
亀レスで蒸し返してんだ・・・やべぇ、こいつ歩行者天国に向かうぞ。
誰か阻止してやってくれ。
537デフォルトの名無しさん:2008/06/14(土) 04:00:54
古典、おk
これらをNGワードに加えればすべておk
と、今までROMってた自分が言ってみるテスト
538デフォルトの名無しさん:2008/06/14(土) 04:04:21
>>536
あれあれ?
自分は平気で一日前のを蒸し返すのに、他人には許さないの?
まさか445本人でしたか?
そりゃ恥ずかしくて思わずそう言いたくなるのも分かるよw
539デフォルトの名無しさん:2008/06/14(土) 04:14:49
>>475
ループの外にbuff[i] = '\0'があるのに、breakする前にもあるのはムダ。
あとVolumeNumber関数間違ってる。
540デフォルトの名無しさん:2008/06/14(土) 04:23:22
Volumeってw
Vowelだぞ、よく見ろw
541231:2008/06/14(土) 04:35:06
>>231 を
どなたかお願い致します。
542デフォルトの名無しさん:2008/06/14(土) 05:04:13
>>517
本当だw
>>471は直しておいてね
543デフォルトの名無しさん:2008/06/14(土) 05:36:21
なんか、前にこのスレで自分の間違いを指摘された基地外が
ここぞといわんばかりに、自分に対して意見をした奴とは別の奴に
噛み付いているよな・・・キモイ。見えない敵と戦う奴って、恥ずかしいなw
544デフォルトの名無しさん:2008/06/14(土) 05:40:04
知ったか無知が 蛇足 って言った後、蛇足ではないことを
資料を提示されて言い返されたのがよっぽど悔しかったんだな・・・
545デフォルトの名無しさん:2008/06/14(土) 05:46:06
発作はおさまったか?
壁のうちならいいけど、人は殴るなよw
546デフォルトの名無しさん:2008/06/14(土) 05:53:03
行数制限内で完結するならソース書いてよし。
>>1にも長い時だけうpろだ使えと書いてあるし。
547デフォルトの名無しさん:2008/06/14(土) 05:54:37
>>543
そんなことどうでもいいから早く大学名とついでに高校名を教えろよw
脳内だから言えませんか〜〜〜w
548デフォルトの名無しさん:2008/06/14(土) 05:59:33
>>210 >>207 < こいつが必死こいてファビョってます、放置よろ
549デフォルトの名無しさん:2008/06/14(土) 06:01:53
早く大学名教えろよw
550デフォルトの名無しさん:2008/06/14(土) 06:04:39
なんか、朝まで必死だなぁ。ちちまわされたいんか、ワレ?
551デフォルトの名無しさん:2008/06/14(土) 06:10:01
ちちまわすは現代語ではありません
552デフォルトの名無しさん:2008/06/14(土) 06:20:24
俺は乳を回すほうがいいなあ
553デフォルトの名無しさん:2008/06/14(土) 06:43:00
>>465
cont =1;
SIGINTを受けたらcontが0になるようハンドラーを仕込んでおく。
fts(3)で対象ディレクトリを開く。
while (cont) {
fts_children(3) でプレインファイルのリストを作成。
前回のリストと比較し、
増えたものは新規作成、
消滅したものは削除、
fts_statp->st_mtimeが変わっていたら内容変更、
fts_statp->atimeが変わっていたらアクセス。
前回のリストを破棄。
今回のリストを前回のリストとして記憶。
(次回のfts_children(3)の呼び出しで今回のリストは破壊されるので注意)
何秒かスリープ。
}
後始末。

でどうかな。
554デフォルトの名無しさん:2008/06/14(土) 07:14:37
>>493
人間性が崩れているお前が言うなよ・・・
しっかし、去ぬだけでここまで煽れるお前らに脱帽だぜ。
よっぽど暇な奴がこのスレに常駐してんだな。
555デフォルトの名無しさん:2008/06/14(土) 07:16:31
>>491
具体的にどこがダメか、指摘くらいしたら?口先だけの坊や。
556デフォルトの名無しさん:2008/06/14(土) 07:21:35
5時間も前のレスに反応するなよw
557デフォルトの名無しさん:2008/06/14(土) 07:27:00
バカの癖にプライドだけは高いから困りもんだな。
いやバカだからこそか?
558デフォルトの名無しさん:2008/06/14(土) 07:29:13
>>554
煽られるのは自分が原因だってわかってないの?
559デフォルトの名無しさん:2008/06/14(土) 07:36:26
>>555
そういう書き方が荒れるもとだろ。
560553:2008/06/14(土) 07:46:02
ごめんなさい。
561デフォルトの名無しさん:2008/06/14(土) 07:53:07
何か言われると相手を威圧しようと、言い返さないと気が済まない一言居士。
もはや人格どころか人生が狂ってるな、こいつら。だからこんな場所にいても
まともなソースが書けねーんだよw
562デフォルトの名無しさん:2008/06/14(土) 08:24:18
>>231
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<sys/types.h>
#include<sys/wait.h>
#define MAXLINE 1024
int main(int argc, char *argv[]){
int fd[2];
char line[MAXLINE];
pid_t pid;
if (pipe(fd)<0) exit(1);
if ((pid=fork())>0) { /*parent process */
close(fd[0]);
dup2(fd[1],fileno(stdout));
close(fd[1]);
fgets(line, MAXLINE, stdin);
fputs(line, stdout);
fflush(stdout);
wait(NULL);
exit(0);
} else{ /*child process */
close(fd[1]);
dup2(fd[0],fileno(stdin));
close(fd[0]);
fgets(line, MAXLINE, stdin);
fputs(line, stdout);
exit(0);
}
}
563465:2008/06/14(土) 09:19:16
>>553
>>560

そういう方向性ですね。取り敢えずありがとうございます。
問題は2つのファイル情報リストファイル(新旧)の
突き合わせ処理ですね。何かめんどくさそうというか、
やり方を間違えると、激重になってしまう悪寒です
564デフォルトの名無しさん:2008/06/14(土) 10:05:12

[1] 授業単元:プログラミング演習
[2] classを使って行列式を計算する物を作る
  足し算、行列同士の掛け算、スカラー倍できるもの

[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:VisualC++6.0
 [3.3] 言語: C++
[4] 期限:6月16日、13時まで
565デフォルトの名無しさん:2008/06/14(土) 13:49:08
行列式 -> 行列の式?
566デフォルトの名無しさん:2008/06/14(土) 14:03:31
>>565
あほかw
567デフォルトの名無しさん:2008/06/14(土) 14:06:02
2次なら簡単そうだけど、行列式としか書いてないからなぁ
568デフォルトの名無しさん:2008/06/14(土) 14:09:43
>>567
この際、効率性は考えないとして、
小行列式展開すれば簡単だろ。
569デフォルトの名無しさん:2008/06/14(土) 15:39:36
[1] 授業単元:アルゴリズムとデータ構造
[2] 問題文:動的配列を使ってヒープを実現せよ。ただし、各記憶要素xは整数値をとるものとする。
関数として、空のヒープを生成するcreate(),要素xを挿入するinsert(int x),
最小値を削除してその値を返すdeletmain(),ヒープが空かどうかを判定するempty(),
現在のヒープ内容全体を表示するshow()を用意する。
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: C
[4] 期限: 2008年6月28日まで
[5] その他の制限: ポインタはできるだけ使用しないでください
よろしくお願いします。
570デフォルトの名無しさん:2008/06/14(土) 16:39:57
>>278
期限過ぎてますが提出は出来るのでお願いします
571デフォルトの名無しさん:2008/06/14(土) 16:46:49
>>570
そのソースを修正するの?一からでもいいの?
572デフォルトの名無しさん:2008/06/14(土) 17:36:33
>>570
insert_sortのj--を分離、それからquickの最後の再帰を
quick(first,first_p);
quick(first_p+1,last);
にすりゃ動くだろ。
ついでにtyuuouとか余分な細かいとことかも直しとけよ。
573デフォルトの名無しさん:2008/06/14(土) 18:10:22
>>567
説明不足ですいません
二次の行列式を計算するやつです
574デフォルトの名無しさん:2008/06/14(土) 18:41:57
2x2限定でよかったってことか?
しねよ
575デフォルトの名無しさん:2008/06/14(土) 18:46:12
>>551
ttp://ja.wikipedia.org/wiki/%E5%A4%A7%E5%88%86%E5%BC%81
現代語だよ?秘密のケンミンSHOWで紹介されてたが
576デフォルトの名無しさん:2008/06/14(土) 18:51:29
>>574
またお前か、今度はタイピングミスはしなかったかw
577デフォルトの名無しさん:2008/06/14(土) 18:54:49
>>576
とっとといね
578デフォルトの名無しさん:2008/06/14(土) 19:09:27
>>576
お前さんはコードかかないのか?
579デフォルトの名無しさん:2008/06/14(土) 19:12:34
>>564
ホントに「行列式(ttp://ja.wikipedia.org/wiki/%E8%A1%8C%E5%88%97%E5%BC%8F)」を計算するのでいいのね?
580デフォルトの名無しさん:2008/06/14(土) 19:17:57
>>472 = >>476
> 自治厨いね
581デフォルトの名無しさん:2008/06/14(土) 19:40:31
>>357をお願いします!!
582デフォルトの名無しさん:2008/06/14(土) 19:42:48
482 名前:デフォルトの名無しさん 投稿日:2008/06/14(土) 01:50:32
複数レスにわたる長いプログラムであればうpろだ使えってのはわかるが、
1レスで収まる範囲くらい許して欲しいところ
正直うpろだ使うのが面倒なときもある
583デフォルトの名無しさん:2008/06/14(土) 19:53:12
なんでそこまでアップローダーにこだわるんだろうな?
質問者でもないんだから他人のコードなんて見る必要ないじゃん。
584デフォルトの名無しさん:2008/06/14(土) 20:42:11
×アップローダにこだわる
○このスレの流れを懸念している
585デフォルトの名無しさん:2008/06/14(土) 20:48:16
一々罵倒する方が流れ悪くなる。
586デフォルトの名無しさん:2008/06/14(土) 21:53:06
587デフォルトの名無しさん:2008/06/15(日) 00:41:11
>>539
> あとVolumeNumber関数間違ってる。
1行目の指摘はともかく、2行目の指摘は
言うからにはどこが間違っているか、具体的に。できるなら訂正も。
指摘無しに間違っているとだけ言うのは論外。
ちなみに、母音の数をカウントした結果はあっているようだが?

>>546
> 長い時だけ
だけ なんて限定はしていないよ。便利って記述はあるが?

にしても、なんで使えって言われているのかわかってないだろ。
質問者がではなく、回答する側だってスレをスクロールさせてみているし
やたらとソースをはりつけられてもスレが長くなってしまうことで、
答えたとしても質問者も回答レスを見つけるのに手間が掛かっているようだが?
答えたのに、まだ答えてもらってませんって催促するわ、回答者に
確認したレスはしないわで、かなり荒れてんだろ?だから質問、回答のレスが
増えたことも考えて、ここに直接書き込むのを自重してうpロダ使ったらどうだ?
って催促もあるんだよ。命令だの指図だの、自己中な考えじゃ
世の中うまく渡っていけないよ。例えルールが無くてもマナーってものは存在する。
引きこもってないで、外に出てみろ。特に人が集まる都心なんて、ちょっとしたことでも
自分勝手や周りに迷惑が掛かることは、監視員に注意されるよ。それで切れて
監視員に罵声を浴びせている映像が放送されてたけどなw
588デフォルトの名無しさん:2008/06/15(日) 01:09:04
>>502
クソースを活用して必要な情報をファイルに吐いて、次回起動時は
そのファイルと、現在の情報を比較して結果を出力、また情報を
吐いとく、でいいんじゃなくて?

> 直近の同種ファイルリストとの差分で、出力しようかと思いましたが
> ls -laに相当するものを作らなければならないことは確実でしたが
この辺見る限りだとクソースの部分があれば解決っぽく思えたのにな。

あと、クソクソ言ってごめんな>おじゃるまる
589デフォルトの名無しさん:2008/06/15(日) 01:13:53
母音の数をカウントした結果が合ってるとか言ってるが
最後にaiueo以外の文字で終わる文字列含めばおかしい事がすぐ分かる
strをインクリメントした結果がNULLの時、strchrは文字列最後のNULLも含んで探索するからカウントが1足されてる

while( *str++ ) {
if( strchr(boin,(int)*str) ) cnt++;
}

while( *str ) {
if( strchr(boin,(int)*str) ) cnt++;
str++;
}
590デフォルトの名無しさん:2008/06/15(日) 03:33:48
>>357
>>581

平均40回以下のトライには、ちょっとなってないけど…
後は自分でAIルーチンを詰めてくれ

http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6909.txt
591デフォルトの名無しさん:2008/06/15(日) 04:21:38
>>587
質問者が聞いてきたならともかく、他人の宿題を答えてやろうっていうやつが自分で
間違いをみつけられないのは論外。
592デフォルトの名無しさん:2008/06/15(日) 05:21:58
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):

要素数 nScores=13 の配列 scores[]={65,0,95,0,0,79,82,0,84,94,86,90,0} から0を除去して、
要素数 nScores=8 の配列 scores[]={65,95,79,82,84,94,86,90} を
求める関数 RemoveZeroElements(array,n) を書きなさい。

main() では次の実行文により、0を除去した配列の要素数を求めて、
ファイルに nScoresscores[] を書き出すこと。

nScores = RemoveZeroElements(scores,nScores);

[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン:VisualC++6.0
 [3.3] 言語:C++
[4] 期限: 6月16日まで
[5] その他の制限:配列、関数などは習いました。

よろしくお願いします。
593320:2008/06/15(日) 05:35:24
>>320
どなたかお願いします。

for文で描画しているようなので、for文を書き換えれば出来ると思うのですが
sin波や円を描くためのmath関数を使うのが、自分には難しくて出来ません。

期限は6/19(木曜日)でお願いします。
594デフォルトの名無しさん:2008/06/15(日) 05:53:50
int RemoveZeroElements(int *array, int n)
{
int i, j;
for(i=j=0; i<n; i++) if(array[i]) array[j++] = array[i];
return j;
}
595デフォルトの名無しさん:2008/06/15(日) 06:45:26
↑と等価だか検証してみそ
int RemoveZeroElements(int *array, int n){
int i=0,j=n;
for(; i<n-1; i++) if(array[i]==0) array[i] = array[i+1] else j=i;
return j+1;
}
596デフォルトの名無しさん:2008/06/15(日) 06:47:20
for(; i<n-1; i++) if(array[i]==0) array[i] = array[i+1] ,array[i+1]=0 ;else j=i;
597デフォルトの名無しさん:2008/06/15(日) 06:47:51
+1とか-1とか微調整に使用するのは

小 細 工
598デフォルトの名無しさん:2008/06/15(日) 07:14:29
>>595,596
お前はここに書き込む資格ないよ
599デフォルトの名無しさん:2008/06/15(日) 07:36:45
>>598
処理の速度は度外視して、ローカル変数をi以外使わないで等価なものが書けるかな?
変数が自由に使える世界ばかりじゃないんだよ。勿論再帰は論外
600デフォルトの名無しさん:2008/06/15(日) 07:43:12
>>593
期限までまだ時間があるのでヒントだけ:
最初のfor文はクリアしてるだけ。
描画してるのはその直後の
data[0] [128] [128] = 255; /*最大値255, 最小値0*/
の所だよ。ここをfor文で囲う必要があるかな。
601デフォルトの名無しさん:2008/06/15(日) 07:55:11
>>599
題意を全く満たしてないクソと等価なもの書いてどうすんだよw
602デフォルトの名無しさん:2008/06/15(日) 08:04:13
>>594がクソというわけか
603デフォルトの名無しさん:2008/06/15(日) 08:07:12
クソはどう見ても595と596だろ。
見ただけじゃ理解できないほど脳みそ腐ってるんなら実行してから物言えよw
604デフォルトの名無しさん:2008/06/15(日) 08:18:29
じゃクソじゃない>>594と等価なローカル変数がiだけのコード書いて皆
605デフォルトの名無しさん:2008/06/15(日) 08:40:34
そもそもなんで変数iだけなんて条件つけてんの?
595と596もj使ってるのに
606デフォルトの名無しさん:2008/06/15(日) 08:42:03
もうこれでいいじゃん
int CountZeroElements(int *array, int n){
  int c;
  for(c=0; n>=0; n--) c+=(array[n]!=0);
  return c;
}
607デフォルトの名無しさん:2008/06/15(日) 08:42:59
>>606
int CountZeroElements(int *array, int n){ 
  for(int c=0; n>=0; c+=(array[n--]!=0)) ; 
  return c; 
608デフォルトの名無しさん:2008/06/15(日) 08:43:37
問題文も読めない盲は引っ込んでろよ
609デフォルトの名無しさん:2008/06/15(日) 08:47:41
>>592
C++知らないからCで

int CountZeroElements(int *array, int n){  
  for(int c=0; n>=0; c+=(array[n--]!=0)) ;  
  return c;  
}  

int * RemoveZeroElements(const int * array, int n){
    int i, c, *ret, len;
    len=CountZeroElements(array, n);
    ret=(int*)malloc(sizeof(int)*len);
    for(i=c=0; i<n; i++)
        if(array[i]!=0) ret[c++]=array[i];
    return ret;
}
610デフォルトの名無しさん:2008/06/15(日) 08:48:21
for (i = 0; i < n; ) {
if (array[i] == 0) {
for (--n; i < n; i++) array[i] = array[i + 1];
i = 0;
}
else i++;
}
return n;
611デフォルトの名無しさん:2008/06/15(日) 08:49:55
>>605
クソな595,596が使っているからこそ、ローカル変数を1つだけに
したコードを考えて欲しいんだナ
612デフォルトの名無しさん:2008/06/15(日) 08:53:20
変数一つにすることにどんな意味がある?
>>610は一つになってるけど>>594よりムダが多いだろ
613デフォルトの名無しさん:2008/06/15(日) 08:55:57
int RemoveZeroElements(int *const array, const int n){
int i;

??????????????????

}
この条件ではどーだ?
614デフォルトの名無しさん:2008/06/15(日) 08:56:07
// 学生向けのコード
int RemoveZeroElements(int* array, int n)
{
int len = 0; // 戻り値に使う配列の長さを格納する変数
int* work = new int[n]; // 作業用領域を確保

// 0を除去した配列を作業用領域に作り、配列の長さを求める
for(int i = 0; i != n; ++i)
{
if(array[i] != 0)
{
work[len++] = array[i];
}
}
// 作業用の配列から、引数で与えられた配列に、内容をコピーする。
for(int i = 0; i != len; ++i)
{
array[i] = work[i];
}

delete [] work; // 作業用領域の後始末
return len;
}
615デフォルトの名無しさん:2008/06/15(日) 08:56:33
くそコードかいた595=596が話をそらそうとして必死だなw
616デフォルトの名無しさん:2008/06/15(日) 09:10:39
[1] 授業単元:プログラミング基礎
[2] 問題文:
自然数nを入力し、nの階乗(1×2×…×n)を計算し、
10進数で表示するプログラムを作りなさい。ただし、n<10000程度までは正しく動くようにすること。
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2008年6月27日まで
[5] その他の制限:いまポインタについて習っている所です
617デフォルトの名無しさん:2008/06/15(日) 09:15:57
>>616
>>218を参考にしな。
618デフォルトの名無しさん:2008/06/15(日) 09:40:43
>>616
#include <stdio.h>
#define N 1000000
int main(void)
{
int i, j, n, fig = 0;
int a[1000] = {0}, temp[1000] ={0};

scanf("%d", &n);
a[0] = 1;

for(i=2; i<=n; i++) {
for(j=0; j<=fig; j++) temp[j] = a[j] * i;
for(j=0; j<=fig; j++) {
if(temp[j] / N) {
a[j] = temp[j] % N;
if(j==fig) fig++;
temp[j+1] += temp[j] / N;
}
else a[j] = temp[j];
}
}

printf("%d", a[fig]);
for(i=fig-1; i>=0; i--) printf("%06d", a[i]);

return 0;
}
619592:2008/06/15(日) 09:59:02
コードありがとうございます。

若干流れが荒れてしまって申し訳ない。。。
620デフォルトの名無しさん:2008/06/15(日) 10:10:08
>>617-618
ありがとうございました。
621デフォルトの名無しさん:2008/06/15(日) 10:11:02
594と610と614以外は参考にしちゃ駄目だから
622デフォルトの名無しさん:2008/06/15(日) 10:17:28
>>620
いまどきは滅多にないと思うけど、618は環境によっては正しく動かない可能性あるから。
623デフォルトの名無しさん:2008/06/15(日) 10:21:18
IT業界関連社会人を目指す学生向けの回答はこっち
>>614はパソコン愛好会のお遊び勉強会向けのコードで大学の宿題じゃNG
効率はやや悪いが、
1.何を書き換えるかが把握しやすい。
2.ローカル変数をstaticにしている(必要もなくautoにしない)
3.newで許可無く勝手に変数を作っていない
という点に相違がある。こういうのが非常に大事になってくる。
int RemoveZeroElements(int *array, int n){
static int i,j;
for(i=0;i<n;i++){
if(array[i]==0){
for(j=i+1;j<n;j++){//後ろに0でない項があれば、それと交換する
if(array[j]){array[i]=array[j];array[j]=0;break;}
}//for
}//if
}//for
for(i=0;i<n;i++)
if(array[i]==0)
return i+1;
}
624623:2008/06/15(日) 10:24:17
return n;が抜けてたから追加しといて
625デフォルトの名無しさん:2008/06/15(日) 10:29:00
>>623
>return i+1;
>return i+1;
>return i+1;
>return i+1;
626デフォルトの名無しさん:2008/06/15(日) 10:30:43
>>623
なんだこのクソコードw
627デフォルトの名無しさん:2008/06/15(日) 11:23:48
カウンタ用の変数をプログラム全体の実行終了までメモリ上に保持しとくとか・・・。
実行環境はメモリ余りまくりのWindowsXPだというのに・・・。
バカなの?
628デフォルトの名無しさん:2008/06/15(日) 11:42:17
再帰とか普通禁止されてる業務用コードは、リエントラントである
ことなんて要求されないから、ローカル変数をautoに統一だなんて
DOSとかの貧弱なメモリ環境のコード書いてた時の戒律だぜw

実行環境はメモリ余りまくりのWindowsXPだというのに・・・。
それをやらないのってひょっとして

バカなの?
629デフォルトの名無しさん:2008/06/15(日) 11:57:23
わざわざ似た文面で返すところを見ると、よっぽど悔しかった模様。
630デフォルトの名無しさん:2008/06/15(日) 12:00:31
>>623
すいません、実行すると配列の最後に0が入っちゃうんですけど。
配列の長さも9になってしまいます。
631デフォルトの名無しさん:2008/06/15(日) 12:16:42
628は627をわかりやすく補足しただけだろ
632デフォルトの名無しさん:2008/06/15(日) 12:20:30
>>320
>>593
誰もやらない理由って言うかさ、問題文と提示コードの内容が違うからじゃね
提示コードで処理してる data[3][Y_SIZE][X_SIZE]ってさ、明らかにPNMフォーマットじゃ無い
しかし問題文はPNMフォーマットを利用って書いてある
意味不明だよ、提示コードも良く分らずに君が書いたのか?
633デフォルトの名無しさん:2008/06/15(日) 12:22:59
スレッドセーフを意識しないのが最近の流行なんだ?
よし、俺も関数内static変数バンバン使うぜ!
634デフォルトの名無しさん:2008/06/15(日) 12:46:15
635デフォルトの名無しさん:2008/06/15(日) 13:07:10
636デフォルトの名無しさん:2008/06/15(日) 13:09:47
>>632
8行目のPS3をP3にし、
21行目の%dの後ろにスペースを一個追加すれば、
ppmを吐くようになる。
637デフォルトの名無しさん:2008/06/15(日) 13:16:15
その上で、16行目を以下の4行で置き換えればとりあえずsinカーブを書くようになるよ。
for (x = 0; x < X_SIZE; x++) {
y = 256 / 6.28 * sin(x / 256.0 * 6.28) + 128;
data[0][y][x] = 255;
}
638デフォルトの名無しさん:2008/06/15(日) 13:17:08
連投すまん、
#include <math.h>
も忘れずに。
639デフォルトの名無しさん:2008/06/15(日) 13:30:50
円を角煮は、パラメトリック表示した円の式を使うのが楽。
(ただし、あまり美しくはかけない。)
double t;
for (t = 0; t < 6.28; t += 0.01) {
x = 128 * cos(t);
y = 128 * sin(t);
data[0][y][x] = 255;
}
ぐらいでどうかな。
渦巻きは、半径(ここでは128)をtにあわせて変化させてやれば良い。
640デフォルトの名無しさん:2008/06/15(日) 13:37:50
不動小数点数をループカウンタに使うなよ。
横着しないでpiから計算すれ。
641デフォルトの名無しさん:2008/06/15(日) 13:39:04
>>640
それぐらいは許容範囲にしてやれw
642デフォルトの名無しさん:2008/06/15(日) 14:28:14
1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6912.txt
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: VC6.0
 [3.3] 言語: C++
[4] 期限: 2008/6/17
[5] その他の制限:問題文の制限のみ

なんだかもう頭の中がごちゃごちゃになってきました
御教授お願いしますorz
643デフォルトの名無しさん:2008/06/15(日) 14:52:12
>>642
#include<stdio.h>
int main()
{
int a[10], i, *pa, *pb;
for(i = 0; i < 10; i ++)
a[i] = i;
pa = a; /* a と &a[0] のどちらでも可 */
printf("a[0]=%d\n", pa[0]); /* pa[0] と *pa のどちらでも可 */
printf("a[4]=%d\n", pa[4]); /* pa[4] と *(pa+4) のどちらでも可 */
pb = a+5; /* a+5 と &a[5] のどちらでも可 */
printf("*(pb-2)=%d\n", *(pb-2)); /* *(pb-2) と pb[-2] のどちらでも可 */
return 0;
}
644 ◆bVi8L9tS1c :2008/06/15(日) 18:29:50
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6913.txt
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: VC6.0
 [3.3] 言語: C
[4] 期限: 本日24時まで
[5] その他の制限:出来るだけ簡素に

すいません、よろしくお願いします
645デフォルトの名無しさん:2008/06/15(日) 18:37:20
>>644
#include <stdio.h>
int char2int(const char *s);
int main(void){
char s[]="123";
int t;
t = char2int(s);
printf("文字列: %s \n", s);
printf("数値: %d \n", t);
return 0;
}
int char2int(const char *s){
int n = 0;
while(*s)
n = n * 10 + (*s++ - '0');
return n;
}
646デフォルトの名無しさん:2008/06/15(日) 18:38:36
>>644
#include <stdio.h>
#include <stdlib.h>
int char2int(char const *s);
int main(void){
char s[]="123";
int t = char2int(s);
printf("文字列: %s\n", s);
printf("数値: %d\n", t);
return 0;
}
int char2int(char const *s){
return atoi(s);
}
647 ◆nOwZY.WgD2 :2008/06/15(日) 19:45:02
[1] 授業単元:基礎プログラミング
[2] 問題文:
(1) char*pstrというchar型のアドレスを宣言して、256バイトのメモリ領域を割り当てます。
割り当てたメモリ領域に以下のような文字を入れ、表示させなさい。

I'll finish this book today.

(2) (1)で割り当てたメモリ領域を512バイトに拡張しなさい。

[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ:VC 6.0
 [3.3] 言語:C
[4] 期限: 今日中でお願いします。
[5] その他の制限: malloc関数を使ってください。
648デフォルトの名無しさん:2008/06/15(日) 19:47:08
reallocは使用可能?
649 ◆bVi8L9tS1c :2008/06/15(日) 19:47:15
>>645-646
ありがとうございました
650 ◆nOwZY.WgD2 :2008/06/15(日) 19:48:17
すみません書き忘れてました。
(2)はrealloc使用OKです。
651デフォルトの名無しさん:2008/06/15(日) 19:53:43
>>647
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void) {
char *pstr;
pstr = malloc(256);
strcpy(pstr, "I'll finish this book today.");
fputs(pstr, stdout);
pstr = realloc(pstr, 512);
return 0;
}
エラーチェックは省略。
652231:2008/06/15(日) 19:56:47
>>562
ありがとうございました!
653デフォルトの名無しさん:2008/06/15(日) 20:18:54
654デフォルトの名無しさん:2008/06/15(日) 20:59:58
>>651
freeつける癖つけましょう
655デフォルトの名無しさん:2008/06/15(日) 21:04:29
昔、あるfjで、exitの前に
freeすべきかどうかで
大論争があったね。
656デフォルトの名無しさん:2008/06/15(日) 21:12:49
[1] 授業単元:プログラミング演習
[2] 問題文:
次をポーランド記法を用いて計算し、標準出力に出力せよ。
* + 3.2 1.6 - 8 / 9.1 0.2

[3] 環境
 [3.1] OS:WindowsVista64
 [3.2] コンパイラ:bcc32
 [3.3] 言語:C
[4] 期限: 今日中でお願いします。
[5] その他の制限: ありません。
657デフォルトの名無しさん:2008/06/15(日) 21:33:10
[1] 授業単元:
C言語
[2] 問題文(含コード&リンク):()
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6917.txt
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6918.txt
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
Windows
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
Microsoft Visual Studio 2008
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)
C
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
明後日
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
二つあります。両方お願いします。
658デフォルトの名無しさん:2008/06/15(日) 22:05:10
659デフォルトの名無しさん:2008/06/15(日) 22:11:29
>>658
ありがとうございます。
660デフォルトの名無しさん:2008/06/15(日) 22:12:38
[1] 授業単元:
[2] 問題文(含コード&リンク):
CSVファイル内のレコードをスペース区切りで入力した文字列でアンド検索せよ
(「あいう けこ」と入力すると「あいうえお,かきくけこ,さしすせそ」というレコードがヒットする)
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン: VC 6.0
 [3.3] 言語: C
[4] 期限: 明日まで
[5] その他の制限: ライブラリはなしで

一つの文字列での検索は出来るのですが、複数のときにどうしたらいいのかわかりません…。
今書いているソース↓

FILE *fp= fopen(IN_FILE, "r");
char buff[256]; //CSVファイルのデータ用
char srch[256]; //検索ワード用
gets(srch); //検索するワードの取得
int i = 0; //行数。その後の編集や削除処理でデータを特定するために使用
int line = 0; //ヒットした行数
while(fgets(buff, 256, fp) != NULL)
{
++i;
if(strstr(buff, srch) != NULL)
{
printf("%d%s", i,buff);
++line;
}
}
fclose(fp);
661デフォルトの名無しさん:2008/06/15(日) 22:31:12
662デフォルトの名無しさん:2008/06/15(日) 22:38:26
>>660
入力された文字列をスペース区切りで複数の文字列に分割する
分割した文字列ごとに検索する
663デフォルトの名無しさん:2008/06/15(日) 22:44:22
>>657
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6921.c
問題018 単純交換法 配列は乱数で決定しているんで、適当に
自分で入力する形式に変更してたもう
664デフォルトの名無しさん:2008/06/15(日) 22:45:15
665デフォルトの名無しさん:2008/06/15(日) 22:47:57
>>663 は間違えた・・・
666デフォルトの名無しさん:2008/06/15(日) 22:52:34
667デフォルトの名無しさん:2008/06/15(日) 22:57:49
ソートネタ大人気だな
668デフォルトの名無しさん:2008/06/15(日) 22:59:12
そーっと しておいてくれ・・・
669デフォルトの名無しさん:2008/06/15(日) 23:09:04
ありがとうございます。
670657:2008/06/15(日) 23:14:34
>>669
名前忘れました>>657です。
671 :2008/06/16(月) 00:14:46
672デフォルトの名無しさん:2008/06/16(月) 01:02:14
>>623 がいるからIT(笑)って言われるんだよ
673デフォルトの名無しさん:2008/06/16(月) 01:09:29
>>462
掘り返してすいません
何故さきに余りを求めて足して最後に1000以上なら1000を引くのかがわかりません
どうしてその考えにいたるのかが分かりません
できれば詳しく説明して欲しいのですがよろしいでしょうか?
674デフォルトの名無しさん:2008/06/16(月) 01:11:56
[1] 授業単元:C言語入門
[2] 問題文:二次方程式 ax2+bx+c=0に適当なa,b,cを与えて
      もし実数解をもつならば 解を計算して表示し、
      虚数解であれば「実数解をもちません」と表示
      するような、プログラム if-else文を使って作成せよ
[3] 環境
 [3.1] OS: (WindowsXPです
 [3.3] 言語: (Cになります。
[4] 期限: ([2008年6月16日10:00まで] になります(´;ω;`)

よろしくお願いいたします。。
675デフォルトの名無しさん:2008/06/16(月) 01:21:01
#include <stdio.h>
#include <math.h>

int main(void)
{
double a, b, c, d;

scanf("%lf%lf%lf", &a, &b, &c);

d = b * b - 4 * a * c;

if(d < 0) printf("実数解をもちません\n");
else if(d > 0) printf("%f, %f\n", (-b + sqrt(d))/ (2*a), (-b-sqrt(d)) / (2*a));
else printf("%lf\n", -b / (2 * a));

return 0;
}
676デフォルトの名無しさん:2008/06/16(月) 01:22:01
>>675
っ a==0
677デフォルトの名無しさん:2008/06/16(月) 01:22:07
>>673
> 何故さきに余りを求めて足して
まともに計算したら巨大な数になって、intもlongも超えちゃう。
最終的に下3桁を求めればいいのだから、
乗算と加算だけなら下3桁の範囲だけで計算していれば十分。
合同式とかいうんだっけ?あまり詳しくないけど。

> 1000以上なら1000を引くのか
rtは2000未満なので、余りを求めているのと同じ。
678デフォルトの名無しさん:2008/06/16(月) 01:27:33
>>673
1 + 4 + 27 + 256 において、10で割った余りを求めることにしよう。

1^1 と 2^2 は10を越えていないんでそのままでおk。この時点で余りの合計は5。

3^3は27で10を越え、10で割った余りの7のみを残しておk。5+7=12、
ここで合計も10を越えたから10で割った余りの部分を残して2。

4*4 = 16 は10で割った余りの6のみ残して、次は
本来は16*4 = 64 だが、前の6に4を掛けて24で4のみ残しておk、さらにもう一度
本来は64*4 = 256 だが、前の4に4を掛けて16で6のみでおk
2+6 = 8で、答えはあっているじゃろう。
そうやって、10で割った余りの部分だけを残してべき乗を継続しても成り立つのが分かる。
679デフォルトの名無しさん:2008/06/16(月) 01:33:32
#include <stdio.h>
#define MAX 4
#define MOD 10
int main(void) {
int i, j, rt = 0;
for(i=1; i<=MAX; i++) { int r = 1;
for(j=0; j<i; j++) r = (r * i) % MOD;
rt += r;
if(rt >= MOD) rt%=MOD; } printf("%d\n", rt);
return 0; }

ちょいと拝借して、このソースの MAX 、 MOD を適当に変えてみ。
理屈が成り立つことが分かるから。
680デフォルトの名無しさん:2008/06/16(月) 01:33:50
>>676
>二次方程式
681 ◆nOwZY.WgD2 :2008/06/16(月) 01:35:35
>>651
error C2440: '=' : 'void *' から 'char' に変換できません。
1> この変換が可能なコンテキストはありません。
って出るんですけどどうしたらいいでしょうか
682デフォルトの名無しさん:2008/06/16(月) 01:53:09
>>655
単に strdup() を無神経に使っていることに噛み付いただけなんですけれど‥‥‥。
683デフォルトの名無しさん:2008/06/16(月) 02:17:03
>>681
明示的にキャスト汁
pstr=malloc(256); →pstr=(char *)malloc(256);
pstr=realloc(pstr,512); →pstr=(char *)realloc(pstr,512);
684デフォルトの名無しさん:2008/06/16(月) 02:19:57
>>681
エラーメッセージのコピペかソースコードのコピペで失敗してるんじゃない?
685デフォルトの名無しさん:2008/06/16(月) 02:20:47
C++だとvoid*を他のポインタ型に代入するときに明示的なキャスト必要なんだっけ?
686デフォルトの名無しさん:2008/06/16(月) 02:20:58
>>681
C++ 扱いでコンパイルしてませんか?
687デフォルトの名無しさん:2008/06/16(月) 02:47:08
[1] 授業単元:C言語入門
[2] 問題文:ある2つの実数aとbを入力し、aの数が3で割り切れる、
      または、bの数が2で割り切れる場合のみに、それらの
      四則演算を行い、その結果を表示するプログラムを作成せよ
[3] 環境
 [3.1] OS: WindowsXP
 [3.3] 言語: C
[4] 期限: 今日中にお願いしたいです。。

よろしくお願いします。
688デフォルトの名無しさん:2008/06/16(月) 02:50:03
>>687
整数ではなくて実数?
実数なら必ず2で割り切れるという扱いでおk?
689 ◆nOwZY.WgD2 :2008/06/16(月) 02:53:04
>>683
それでできました、ありがとうございます><b
690デフォルトの名無しさん:2008/06/16(月) 03:14:05
>>688
はい、実数で、
2で割り切れる扱いでお願いいたします(*´д`*)
691デフォルトの名無しさん:2008/06/16(月) 03:27:09
>>687
#include<stdio.h>
#include<stdlib.h>
#include<ctype.h>

int main(void){
char buf[256];
int i, chk, bufindex;
double a, b;

printf("Input a : ");
scanf("%255s", buf);
if(sscanf(buf, "%lf%n", &a, &bufindex)<1) return 1;
for(i=0,chk=0;i<bufindex;i++) if(isdigit(buf[i])) chk+=buf[i]-'0';
if(chk%3!=0) return 2;

printf("Input b : ");
if(scanf("%lf", &b)<1) return 3;

printf("a+b=%f+%f=%f\n", a, b, a+b);
printf("a-b=%f-%f=%f\n", a, b, a-b);
printf("a*b=%f*%f=%f\n", a, b, a*b);
if(b) printf("a/b=%f/%f=%f\n", a, b, a/b);

return 0;
}
692デフォルトの名無しさん:2008/06/16(月) 05:24:04
>>691
それでは「aの数」、「bの数」をどう解釈しても題意を満たさないのでは?
693デフォルトの名無しさん:2008/06/16(月) 05:25:29
>>572
ありがとうございます!
助かりました
今日提出しにいこうと思います
694デフォルトの名無しさん:2008/06/16(月) 05:58:25
[1] 授業単元: 入門
[2] 問題文(含コード&リンク):
1.
{C1}=(a11 a12){b1}
{C2}=(a21 a22){b2}
↑は行列の積です。
C=A・bの形でA,bはfloat型
これを求めるプログラムの計算です。
2.
{d1}=(a11 a12)n乗{b1}
{d2}=(a21 a22){b2}
↑は1と同じ行列の積ですが、Aのところがn乗となっています。
わかりにくくて申し訳ないですが、お願いします。
[3] 環境
 [3.1] OS: vista 
 [3.3] 言語:C
[4] 期限: できるだけはやくほしいです
[5] その他の制限: まだ、3ヶ月ほど習っただけでやったことがあるのは
演算と型、if、switch、do、while、for、配列、関数ぐらいです。
695デフォルトの名無しさん:2008/06/16(月) 06:01:23
[1] 授業単元:
C言語
[2] 問題文(含コード&リンク):()
ポゴソートについて調査し、それを実演するプログラムを書け。
データ数N=10000の場合について、整数の一様乱数の整数配列を作成してから
それをポゴソートし、結果がソートされているかをプログラムでチェックする。
配列を作成した時点からソートが完了した時点までにかかった時間をミリ秒単位で測定し、
処理にかかった時間を出力せよ。10回実行し、かかった時間を表にし、平均時間も計算し、
プログラムコードと共に提出せよ。
[3] 環境
 [3.1] OS: linux
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
GCC
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)
C
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
本日中
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
乱数は起動の度に異なるようにすること。乱数配列の出力、整列済み乱数配列の出力は不要とのことです。
696デフォルトの名無しさん:2008/06/16(月) 06:16:46
ボゴソートなら知ってるがポゴソートは知らないな
697デフォルトの名無しさん:2008/06/16(月) 06:22:04
意味は通じているのにいちいち誤字を指摘するか。
格の低い男だな。
698デフォルトの名無しさん:2008/06/16(月) 06:22:24
データ数10000のボゴソートなんて正気じゃねえなw
699デフォルトの名無しさん:2008/06/16(月) 06:25:37
ttp://ja.wikipedia.org/wiki/%E3%83%9C%E3%82%B4%E3%82%BD%E3%83%BC%E3%83%88
これは酷い。こんなのは授業の一部で、効率の悪い例としてさらっと話して
生徒は聞き流す程度で終わらせてしまえば良いものを、敢えて課題にするとは・・・
嫌がらせか?
700デフォルトの名無しさん:2008/06/16(月) 06:27:47
ボゴソート

int check(int *a, int size)
{
int i;
for(i=1; i<size; i++) if(a[i] < a[i-1]) return 0;
return 1;
}

void bogo_sort(int *a, int size)
{
int i, j, temp;
do {
for(i=1; i<size; i++) {
j = rand() / (RAND_MAX + 1.0) * (i + 1);
temp = a[j];
a[j] = a[i];
a[i] = temp;
}
}while(!check(a, size));
}
701デフォルトの名無しさん:2008/06/16(月) 06:56:02
嫌らしい難問だナ まともとは思えないのでスルーがよろしいかと
(一様乱数とはほど遠い線形合同法を使ったCのライブラリ乱数で
N=10000もの順列を一様に生成すること自体至難の技なのだが)
702691:2008/06/16(月) 09:25:54
>>687
>>691 は無かったことにして
703デフォルトの名無しさん:2008/06/16(月) 09:47:52
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):プログラムを、共振周波数を固定しCを変化させるプログラムに変更せよ
問題
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6925.c
complex.txt
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6926.txt
complex.h
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6927.txt
[3] 環境
 [3.1] OS: Windows XP
 [3.2] コンパイラ名とバージョン: Visual C++(よくわかりません)
 [3.3] 言語: C
[4] 期限: 2008/06/12 10:30
[5] その他の制限: RLC共振回路の問題です。先生に聞いてもよくわかりませんでした。
RとLを固定してやるそうです。急ぎです。よろしくおねがいします。
704デフォルトの名無しさん:2008/06/16(月) 10:30:56
無保証。自己責任で参考にしてね
void main(void)
{
complex zin, ai;
double v=10.,l=13.92e-3,c=0.01591e-6,pi=3.14159;
double r,fr,f,q,w,x,za,aiabs;

r=5;
// fr=1./(2.*pi*sqrt(l*c));
// q=2*pi*fr*l/r;
// printf("R=%lf fr=%lf Q=%lf¥n¥n",r,fr,q);
printf("C(Farad) L(Henry) freq.(Hz) I(ampare) Zin(ohm)¥n");
// for(f=9000.;f<=11000.;f+=25.){
f=9000.0;
for(c=1.0E-8;c<1.0;c*=1.001){
w=2.*pi*f;
x=w*l-1./(w*c);
zin=cmplx(r,x);
za=cabso(&zin);
ai=cmplx(v,0.0);
ai=cdiv(&ai,&zin);
aiabs=cabso(&ai);
printf("C=%12.2lf l=%f f=%12.2lf %14.4lE %15.5lE¥n",c,l,f,aiabs,za);
}
getchar();
return ;
}
705 ◆rR6EHrq.2w :2008/06/16(月) 13:38:07
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):下記のプログラムを参考にし、f(x)=2cos(x)-x/8=0の数値解を求めるプログラムを作成せよ
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6928.txt
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン: VC6.0
 [3.3] 言語: C
[4] 期限: 2008/06/16 14:30
[5] その他の制限:出来る限り簡単なものでお願いします
706デフォルトの名無しさん:2008/06/16(月) 14:32:39
>>705
問題のタイプが全然違うので、参考(マウスで選択して、キーボードからちょこちょこっと入力)にして解くことは
期待できないね。
この問題を出した奴はよほどのバカだ。まだ>>695を出したアホのほうがマシ
まともに相手せず、「氏んだほうがいいよ」と白紙のレポートなりメールなり出すのが吉かと
707デフォルトの名無しさん:2008/06/16(月) 15:11:57
>>705
微分を知っていれば10秒ほどでできるよ。
f()の中身をreturn 2 * cos(x) - x / 8.;にしてdf()の中身をreturn -2 * sin(x) - 1 / 8.;にするだけだ。
708デフォルトの名無しさん:2008/06/16(月) 17:10:40
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):(http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6929.txt
上記のソースコードをキューを使い幅優先探索するプログラムに変更せよ。
[3] 環境
 [3.1] Linux
 [3.2] gcc
 [3.3] 言語:C
[4] 期限:明後日まで
709デフォルトの名無しさん:2008/06/16(月) 17:58:40
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):クイックソートでは、値が等しい要素 の位置を入力された順に
保つことができない。この問題を解
710デフォルトの名無しさん:2008/06/16(月) 18:01:55
すいません、なんか切れてしまったのでもう一度・・・

[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):クイックソートでは、値が等しい要素 の位置を入力された順に
保つことができない。この問題を解
711デフォルトの名無しさん:2008/06/16(月) 18:02:21
学習能力のない香具師だな。
712デフォルトの名無しさん:2008/06/16(月) 18:14:25
>>710
>クイックソートでは、値が等しい要素 の位置を入力された順に
>保つことができない。
そのような事実は無い
713デフォルトの名無しさん:2008/06/16(月) 18:15:26
は?
クイックソートが安定ソートじゃないのは常識だろ
714デフォルトの名無しさん:2008/06/16(月) 18:21:44
じゃ使わなきゃいいだろ
715デフォルトの名無しさん:2008/06/16(月) 18:25:09
>>712=714か? だとしたらとんでもない間抜けだな。
716デフォルトの名無しさん:2008/06/16(月) 18:28:56
>>714
そうだね
>>709,710は諦めたのかな
717デフォルトの名無しさん:2008/06/16(月) 18:43:42
>>715
すぐ下のレスで完全否定される間抜けさからして、>>706も同一かもよ
718デフォルトの名無しさん:2008/06/16(月) 18:56:33
[1] 授業単元:プログラミング実習問題
[2] 問題文:『階上の計算』
n=1〜12に対して、n!を計算して出力する。
ただし、n!=1*2*3*・・・・*(n-1)*nである。
なお、再帰法を用いてもよい。

[3] 環境
 [3.1] OS:vista
 [3.2] コンパイラ名:visual studio 2005
 [3.3] 言語:C
[4] 期限:[2008年6月18日まで]
[5] その他の制限:まだ大した勉強はしていません、すいません。
         多分C言語検定3級程度の実力くらいしかないです。
719デフォルトの名無しさん:2008/06/16(月) 18:56:37
マイナスの初期値与えたら暴走するようなプログラムを10秒で作って出来たと
思ってる>>707だろよ
720デフォルトの名無しさん:2008/06/16(月) 18:58:30
721デフォルトの名無しさん:2008/06/16(月) 19:33:41
>>718
#include <stdio.h>

int fac(int n)
{
int ret = 1;
while(n) ret *= n--;
return ret;
}

int main(void)
{
printf("%d", fac(12));
return 0;
}
722デフォルトの名無しさん:2008/06/16(月) 19:37:12
釣れますか?
723デフォルトの名無しさん:2008/06/16(月) 19:41:39
int main(void)
{
  int i;
  for(i=1; i<=12; i++) printf("%d\n", fac(i));
  return 0;
}
724デフォルトの名無しさん:2008/06/16(月) 19:44:06
725703:2008/06/16(月) 19:47:49
>>704
ありがとうございます
どなたか>>703お願いします
726デフォルトの名無しさん:2008/06/16(月) 19:54:56
>>724
unsigned int にしてるのに%dってw
727デフォルトの名無しさん:2008/06/16(月) 19:58:47
728デフォルトの名無しさん:2008/06/16(月) 20:02:30
つまりすごいバカなことをいってる>>712 = >>724でいいのかな?
729デフォルトの名無しさん:2008/06/16(月) 20:05:21
730703:2008/06/16(月) 20:11:04
すみません自己解決しました
731デフォルトの名無しさん:2008/06/16(月) 20:30:22
>>704は無意味だったね
732デフォルトの名無しさん:2008/06/16(月) 20:30:30
ホント無駄に荒れるスレだな

だがそれがいい
733デフォルトの名無しさん:2008/06/16(月) 20:40:21
734デフォルトの名無しさん:2008/06/16(月) 21:23:12
[1] 授業単元:認識
[2] 問題文:
http://a-draw.com/uploader/src/up1643.zip.html
このファイルをダウンロードしてもらって解凍してもらいたいんです。
prog.cのファイルを実行してセグメンテーションエラーをとってほしいんです
けど。

[3] 環境
 [3.1] OS:linux
 [3.3] 言語:C
[4] 期限:[2008年6月17日まで]
[5] その他の制限:fread,fseekの使いかたはあっています。
for文{printf文で配列の中身を表示しています.
735デフォルトの名無しさん:2008/06/16(月) 21:23:50
宝船いいよ
736デフォルトの名無しさん:2008/06/16(月) 22:38:53
[1]データベース
[2]問題文
リストの追加機能を作る。(他にも編集やら削除やら機能をつけなきゃならないけど、追加たけでお願いします)
キーボードから1と入力されたら、画面に
name:(aaa)
age:(57)
mail:(aa@bb)カッコ内はこちら側が入力。
上記3つを入力した後、下のように表示させる。
1:aaa:57:aa@bb
[3-1]windows
[3-2]gcc
[3-3]C言語
[4]明後日まで。
よろしくお願いいたします。
737デフォルトの名無しさん:2008/06/16(月) 23:03:49
[1] 授業単元:
C研究
[2] 問題文(含コード&リンク):()
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6935.txt
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
Windows
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
Microsoft Visual Studio 2008
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)
C++
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
6月21日
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)

お願いします。
738デフォルトの名無しさん:2008/06/17(火) 00:21:19
>>736
やり直し
739デフォルトの名無しさん:2008/06/17(火) 00:25:37
>>719
三角関数をニュートン法で収束させるんだから、初期値の与え方によっては発散するのは常識。
負の値でも、-1辺りを入れれば収束するんじゃないか? 逆に正の値でも大きな値を入れたら発散しそうな希ガス。
せめてその位の確認してからけちつけたら?
740デフォルトの名無しさん:2008/06/17(火) 00:27:40
1] 授業単元:C++入門
[2] 問題文(含コード&リンク):ジャンケンゲームを作る。
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン: borland c++ 5.5.1
 [3.3] 言語: C++
[4] 期限: 6月18日まで
[5] その他の制限:入力、出力、クラス、コンストラクタ、if文くらいまで

よろしくお願いします。
741デフォルトの名無しさん:2008/06/17(火) 00:39:39
>>740
自分でやる気ないのにVIPで聞くんだな
742デフォルトの名無しさん:2008/06/17(火) 03:00:36
>>740

VCで作ったから、ビルダーでコンパイル出来るか知らん

http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6936.txt
743デフォルトの名無しさん:2008/06/17(火) 03:39:31
>>739
発散する初期値より大きいところに収束初期値がありますね。x=0で発散します。
すべての解を求める方法としてはこういう問題は不適当です。
744デフォルトの名無しさん:2008/06/17(火) 04:38:08
[1]プログラミング
[2]scanf関数を用いて入力された秒数を
「○秒=○時間○分○秒」の形にして表示するプログラムを作成しなさい
ただし、自作関数を一つ使いなさい
[3.1]windows
[3.2]gcc
[3.3]c
[4]明日まで

スレ違いだったら申し訳ありません
とりあえず自分で作ってみたのですが↓
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6937.txt
sub関数の中をもうちょっとすっきりさせることってできますか?
printf関数を二つも使ったりwhile文使ったりしなくてもできそうな気がして・・・
745デフォルトの名無しさん:2008/06/17(火) 04:48:32
[1] 授業単元: 言語と計算 C++
[2] 問題文(含コード&リンク):
SA面体のサイコロがNA個のA組と、SB面体のサイコロがNB個のB組があるとする。
(SAとSBの範囲は2〜1000、NAとNBの範囲は1〜100000)
それぞれの組でサイコロを振った時、
 1.A組がB組の出目を超える(>)確率
 2.A組がB組の出目以上になる(>=)確率
それぞれを求める関数を作り、
 a.計算結果(%表記、小数点以下6桁まで)
 b.計算に要した時間
を標準出力に書き出せ。
[3] 環境:C++
[4] 期限:18日正午まで
[5] その他の制限:とくに無し
746デフォルトの名無しさん:2008/06/17(火) 04:53:23
>>745に書き漏らしがありました。
結果を表示するのは
 SA=2, SB=3, NA=6, NA=6の時
 SA=1000, SB=500, NA=50000, NB=100000の時
の2つだけでOKです。
747デフォルトの名無しさん:2008/06/17(火) 05:03:07
748デフォルトの名無しさん:2008/06/17(火) 05:06:06
>>747
ありがとうございます
749デフォルトの名無しさん:2008/06/17(火) 05:09:12
/* クソースその2 */
#include <stdio.h>
int total_sec;
int sec;
int min;
int hr;

void InputSec(void){
printf("秒数を整数で入力してください :");
scanf("%d", &total_sec);}

void CalcHMS(void){
hr = total_sec / 3600;
min = total_sec / 60 % 60;
sec = total_sec % 60;}

void PrintHMS(void){
printf("%d秒は%d時間%d分%d秒です\n", total_sec, hr, min, sec);}

int main(void){
InputSec();
CalcHMS();
PrintHMS();
return 0;}
750デフォルトの名無しさん:2008/06/17(火) 05:14:55
うわっ、くせぇくせぇ、●ンコの臭いがプンプンすんぜっ
おまけにそんなものを直接書き込むKY、こりゃ真性の(ry
751デフォルトの名無しさん:2008/06/17(火) 05:16:53
>>750
さっさと死ね
752デフォルトの名無しさん:2008/06/17(火) 05:17:55
でっ、でたーーー、タイピングミスで「いね」と書いたあと
ファビョって必死になって、古文で使われている用法を
知らないの?って噛み付いてた粘着バカw
753デフォルトの名無しさん:2008/06/17(火) 05:23:28
>>749
別に糞には見えないんだが。
754昼と夜が逆転した役立たず:2008/06/17(火) 05:25:03
476 名前:デフォルトの名無しさん 投稿日:2008/06/14(土) 01:26:29
>>473
自治厨いね

484 名前:デフォルトの名無しさん 投稿日:2008/06/14(土) 01:56:30
>>479
いね = 去ね
高校出てれば当然習ってるはずの言葉。

487 名前:デフォルトの名無しさん 投稿日:2008/06/14(土) 02:00:46
473が余計なこと書かなきゃ荒れないのにな。
いつもうpロダ使えっていっては反論されて大暴れ。

↑うpロダ使えと言われては反論して罵倒レス。
自分に対して何か言ってくる奴がいると、そいつに対しては
とことん罵倒、威圧しないと気が済まない精神異常者?
755デフォルトの名無しさん:2008/06/17(火) 05:27:01
> 【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
コードが長くなけりゃアップローダー使わなくて良いのがこのスレのルールだと言う事を
理解出来てないバカが居るな。
756デフォルトの名無しさん:2008/06/17(火) 05:34:20
きちがいだから触っちゃだめだ
757デフォルトの名無しさん:2008/06/17(火) 05:36:08
でもさ、宿題お願いするのにわざわざ手伝ってもらう人にカラム調整させるのか?
その辺だけでもTABとかが削除されない方法を選ぶだろ・・・・
758デフォルトの名無しさん:2008/06/17(火) 05:48:46
へー、カラム調整されてないように見える環境もあるんだ。
俺の環境だと半角スペースはそのまま残って見える。
759デフォルトの名無しさん:2008/06/17(火) 05:54:24
ブラウザ次第じゃね?
760デフォルトの名無しさん:2008/06/17(火) 08:55:24
[1] 授業単元:C言語
[2] 問題文http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6888.txt
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン:VC 6.0
 [3.3] 言語: C
[4] 期限: 6月23日月曜日(早いと助かります)
[5] その他の制限:できるだけ簡単に
お願いします
761デフォルトの名無しさん:2008/06/17(火) 09:07:32
>>760
検索程度しろ、前のに回答が上がってるだろ
762デフォルトの名無しさん:2008/06/17(火) 09:36:28
学科の出席簿作成。
15人分の学生を表示し、入力により内容を変動させる。

表示順番:
出席表
<入力>学生番号0〜14
<入力>曜日番号0〜6
<入力>時限番号0〜3
<入力>出欠番号0〜1
<入力>学生番号0〜14の時に99を入力するとプログラム終了。

/* stdio.h をインクルード */
int main(void)
{
  /* 必要な変数を宣言し、出席簿の初期値を設定 */

  /* 学生番号を入力から一時変数に取り込み、それが妥当な値である間、以下の処理を繰り返す */
  {
    /* 曜日を入力から一時変数に取り込み、もし妥当な値でなければエラーメッセージを表示して continue する */
    /* 時限を入力から一時変数に取り込み、もし以下略 */
    /* 出欠を入力から以下略 */
    /* 入力された一時変数の値を出席簿に反映する */
    /* 出席簿の現在の内容を表示する */
  }

  return 0;
}
763デフォルトの名無しさん:2008/06/17(火) 09:54:28
[1]授業単元: C言語
[2] 問題文:BMP画像を読み込んで画面に出力するプログラムを作成
[3] 環境:
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン: borland c++ 5.5.1
[3.3] 言語:Cのみ
[4] 期限:18日午前8時まで
[5] その他の制限:とくに無し


764デフォルトの名無しさん:2008/06/17(火) 09:54:32
問04(最終問題)
テキストサウンドノベルを作成する事。
キー入力でメッセージを表示し、途中で選択しを含める。(最大3つまで)
画面をスクロールさせることは禁止。ページ切り替えは、画面全消去で対処する事。
テキスト行数は、最低50行から最大100行までとする。
画面全消去方法は、先生に聞くこと。
765デフォルトの名無しさん:2008/06/17(火) 09:56:38
>>763
問答無用でマルチワロタ
766デフォルトの名無しさん:2008/06/17(火) 14:22:16
[1] 授業単元: C言語実習
[2] 問題文:任意の文字列から任意の文字列を操作する。
 例:「kokoha dokoda」
@任意の文字列を検索し、削除する
 例:「ko」を削除する
   →「ha doda」

A任意の文字列を検索し、長い文字列と置換する
 例:「ko」を「max」に置換する
   →「maxmaxha domaxda」


[3] 環境
 [3.1] OS:Windows xp
 [3.2] vc++ 2008
 [3.3] 言語: C
[4] 期限:無期限
[5] その他の制限:<stdio.h> <string.h>を使用できます。

1文字を検索して削除なら出来るのですが、2文字になるとどう処理していいか
わかりませんorz
767デフォルトの名無しさん:2008/06/17(火) 15:00:16
[1] 授業単元: C++
[2] 問題文(含コード&リンク):
2008年は閏年(うるうどし)である。
現在の暦において閏年は,
地球が太陽の周りを公転する周期が,
約365.24日であることに由来する調整法である。
閏年でない年は平年という。

キーボードから西暦を入力し
入力された年が閏年かどうか判定する
プログラムを作成しなさい。

[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C++
[4] 期限: 6月27日
[5] その他の制限:
3つの条件によって,うるう年か平年か決まるが,論理演算子を使って,双分岐型1つにまとめる
768デフォルトの名無しさん:2008/06/17(火) 15:02:03
[1] 授業単元: C++
[2] 問題文(含コード&リンク):
今年(2008年)はオリンピックイヤー
(オリンピック開催年)である。
8月8日から24日までにかけて,中国の北京で
夏季オリンピック第29回大会が開かれる。

次の説明はオリンピックの開催年についての説明である。
キーボードから変数year に入力された年号について,
開催された年に第何回大会が開催(中止)されたか
画面に表示するプログラムを作成しなさい。
またオリンピックイヤーでない場合は、
画面にその旨メッセージを出力すること。

【説明】
・1896年の第1回大会以来、4 年に1 度開催されている。
・1916年の第6回大会,1940年の第12回大会,1944年の第13回大会は
 世界大戦の影響で中止された。ただし中止の場合も回数は数える。
・1906年には,近代オリンピック制定10周年記念大会が開催された。
 ただし特別大会のため,回数には数えない。
・次回は2012年、第30回大会がロンドンで開催予定。

[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C++
[4] 期限: 6月27日
[5] その他の制限:
第1回大会の年は,1986年。式にしなくてもよい。中止された年にも対応してください。
769デフォルトの名無しさん:2008/06/17(火) 16:22:58
>>767
#include <iostream>

int isleapyear(int y){
int i = y / 100;
return !(y == i * 100 ? i & 3 : y & 3);
}

int main(){
int n;
using namespace std;
cout << "input:";
cin >> n;
cout << ((isleapyear(n))?"閏年":"平年") << endl;
return 0;
}
770デフォルトの名無しさん:2008/06/17(火) 16:26:30
>>768
現在までの夏季能美なら、若干のifで可能。
ただし、拡張(冬季を追加、今後の夏季など)に柔軟に対応するためには、
開催年テーブルを持った方がいい。
771デフォルトの名無しさん:2008/06/17(火) 16:35:35
まったく同じ問題がわずかな時期をずれて出題されるってどういうことなんだろう?
772デフォルトの名無しさん:2008/06/17(火) 16:53:22
何をいまさら、どうでも良いことを。こんなの数年前から普通にあったし。
あとな、批判されるのが嫌だとか、間違ったソースをこのスレに残したくなかったら
うpロダ使え、新入り初心者めが
773デフォルトの名無しさん:2008/06/17(火) 17:07:14
>>766
strstr( )使え
774デフォルトの名無しさん:2008/06/17(火) 17:12:12
>>772
お前の指示とか受けないよ
俺の好きなようにやらせてもらう
だってここは2ちゃんねるだもの
775デフォルトの名無しさん:2008/06/17(火) 17:14:12
>>677
>>678
>>679
みなさん本当にありがとうございます
分かりました!
776デフォルトの名無しさん:2008/06/17(火) 17:23:16
いちいち言い返さないと気が済まず、しかも指図だって、もう
この新入り馬鹿は頭がいかれてんだろ。実社会じゃ
周りの空気が読めずに、自分勝手な行動をして孤立したタイプだろw
777デフォルトの名無しさん:2008/06/17(火) 17:25:02
このスレはもう数年前からあったわけだが、必ず新学期を期に
KYな基地外が現れるよな。どうせそれ以前に、質問して
答えてもらったからって、恩返しのつもりなんだろうけど
汚い素人未満のソースを長々と自己満足でこのスレに
残されても、他の回答者、質問者に迷惑なんだが。
778デフォルトの名無しさん:2008/06/17(火) 17:32:28
お前以外にキチ外はいねーよw
779デフォルトの名無しさん:2008/06/17(火) 17:34:25
で、プロである貴方は一体どういうつもりで布教しているんだい?
780デフォルトの名無しさん:2008/06/17(火) 17:37:38
777をとり損ねた
781デフォルトの名無しさん:2008/06/17(火) 17:45:16
[1]授業単元: 中級プログラミング

[2] 問題文:クラスを作成して行列式を計算しろ。
行列Aの内容を自分で指定できるようにする。
実行画面で何行何列にするか、各要素の値をいくつにするかを決められるようにする。
それを使ってA+A, A*A, n(スカラー)*A, Aの逆行列, Aの転置行列を求める。

[3] 環境:
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:Visual C++6.0
[3.3] 言語:C++
[4] 期限:19日

よろしくお願いします。

782デフォルトの名無しさん:2008/06/17(火) 17:52:38
[1] 授業単元:C++実習
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6939.txt
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン: VC6.0
 [3.3] 言語:C++
[4] 期限:
[5] その他の制限: テキストに記載
783デフォルトの名無しさん:2008/06/17(火) 17:55:28
行列式を正方行列以外に定義するなんて、完全に上級を超えたキティちゃんの領域だw
C++の練習問題としては余りにも不適当。出した教師はまともじゃないから
スルーでおK
784デフォルトの名無しさん:2008/06/17(火) 18:01:41
>>782
独習C++?
785デフォルトの名無しさん:2008/06/17(火) 18:40:22
>>783
お前みたいな基地外はこのスレには要らない
786デフォルトの名無しさん:2008/06/17(火) 18:48:26
>>783
正方行列以外に対応するのはそれほどまでに難しいことなの?
787760:2008/06/17(火) 18:59:38
>>590
>>761
#if AI_PLAYER
#else
#endif
enum
構造体
などを習っていないので使ってないプログラムをお願いしたいのですが
できるだけ簡単にお願いします
788デフォルトの名無しさん:2008/06/17(火) 19:00:04
上級を超えた領域にいらっしゃるあなたにはきっと出来る!
789デフォルトの名無しさん:2008/06/17(火) 19:01:01
[1] 授業単元: c言語
[2] 問題文(含コード&リンク):ある整数(2以上)を入力し
自分自身を除く最大の約数を返す、関数を含むプログラムを作れ。
例えば12を入力すると6が返る。5を入力すると1が返る。
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:visual studio 2005
 [3.3] 言語: C
[4] 期限:今日中
[5] その他の制限: 特になし
おねがいします
790デフォルトの名無しさん:2008/06/17(火) 19:01:53
[1] 授業単元:Cプログラミング
[2] 問題文(含コード&リンク):while文を用いて求めよ
 一、1から100までの整数の和を表示
 二、1から100までの奇数の和を表示
 三、1≦n≦50の任意の整数を入力し、nからn+50までの整数の和を表示
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C言語
[4] 期限:2008年06月18日が終わるまで
[5] その他の制限:while文でお願いします。
791デフォルトの名無しさん:2008/06/17(火) 19:02:17
てか正方行列じゃなきゃ、A*Aはできないし
792デフォルトの名無しさん:2008/06/17(火) 19:07:28
>>789
#include <stdio.h>

int f(int n)
{
int i;
for(i=n/2; i>1; i--) if(n % i == 0) return i;
return 1;
}

int main(void)
{
int n;

do {
printf("2以上の整数を入力してください:");
scanf("%d", &n);
}while(n < 2);

printf("%dの自分自身を除く最大の約数は%d\n", n, f(n));

return 0;
}
793デフォルトの名無しさん:2008/06/17(火) 19:07:44
とりあえず>>783は行列式でぐぐれ
そしてもう一度>>781を読むんだ
794デフォルトの名無しさん:2008/06/17(火) 19:09:18
まともな教師は、あいまいな仕様の問題は出さないな
795デフォルトの名無しさん:2008/06/17(火) 19:14:58
>>790
#include <stdio.h>
int main(void)
{
int i, sum, n;

sum = 0;
i = 1;
while(i<=100) sum += i++;
printf("1から100までの整数の和:%d\n", sum);

sum = 0;
i = 1;
while(i<=100) {
sum += i;
i += 2;
}
printf("1から100までの奇数の和:%d\n", sum);
do{
printf("1≦n≦50の任意の整数を入力:");
scanf("%d", &n);
}while(n<1 || n >50);
i=0;
sum=0;
while(i<=50) sum += n + i++;
printf("%d から %dまでの整数の和:%d\n", n, n+50, sum);

return 0;
}
796デフォルトの名無しさん:2008/06/17(火) 19:16:24
行、列を個別に指定できるようにすべきかどうかはさておき、
正方行列ではない場合に、積、逆行列、転置行列は出力しない、
もしくは計算できない旨のメッセージを出力すればいいわけでしょ?
>>781が何を指してキティだといっているのかさっぱりわからん
797デフォルトの名無しさん:2008/06/17(火) 19:16:51
常識的に考えれば正方行列の問題にしか見えないのに、
何行何列の表記だけで正方じゃないと決めつけるなんてw
798デフォルトの名無しさん:2008/06/17(火) 19:19:20
プログラミングの世界での鉄則
自分たちの世界の常識は、他所では通用するとは限らない

これだけは覚えておけ
799デフォルトの名無しさん:2008/06/17(火) 19:21:52
>>792
ありがとうございました!!
800デフォルトの名無しさん:2008/06/17(火) 19:24:14
うpロダ使えという言動に激しく噛み付いてくる基地外の特徴

やたらと バカ 死ね いね(去ね) お前には従わないよ(誰にだよ?)
といった、とにかく何かと筋の通った販路はせず、お前が気に食わないと
罵倒レスをして反発をしないと気が済まない、集団社会に溶け込めない
孤立した自分勝手。相手に何かちょっとしたことでも指摘されるとファビョる。

前にもいたよな、蛇足とか言って、結局標準ライブラリの資料を提示されて
自分が無知だと晒した奴も。おまけに、自分が思ったことはすべて正しいということで
自分勝手な基準でキティとか言い出すし。お前くらいだぞ、基地外罵倒レスで
相手を威圧しているのは。だからKYって言われるんだよ。
801デフォルトの名無しさん:2008/06/17(火) 19:24:52
正方行列から話をそらしたいんですね、わかります
802デフォルトの名無しさん:2008/06/17(火) 19:24:59
>>797
とてもそうは見えないよ。たとえばn行n列などと書かれてるなら別だけど。

だから、正方行列以外も指定できるのだろうか?と解釈した人は、
行える処理だけ行うようなコードに仕上げればよく、
正方行列のみと解釈した人は次数を1つのみ入力させるようにすればよい。

まあ、以下が守られてなさそうな気はしてるんだけどね。
> ・問題文は、出題されたまま全文を書いてください。
803デフォルトの名無しさん:2008/06/17(火) 19:25:05
>>796
自乗と逆行列はともかく、転置は任意の型の行列に定義されるだろ
804デフォルトの名無しさん:2008/06/17(火) 19:26:20
>>802
一行目に行列式を計算しろって書いてあって正方行列の問題だと思えないの?
805デフォルトの名無しさん:2008/06/17(火) 19:26:40
>>803
ごめんね、行列計算よく知らなくて適当にぐぐった知識で書いたんだ。ごめんね。
806デフォルトの名無しさん:2008/06/17(火) 19:27:16
>>804
足し算とスカラー倍はできるんでないの?これは行列式じゃないの?
807デフォルトの名無しさん:2008/06/17(火) 19:28:20
>>806
バカはだまってろw
808デフォルトの名無しさん:2008/06/17(火) 19:28:44
なんかちょっと前にも似た流れがあった気がするんだが、
「行列式」を「行列の式」の意味で使ってる奴がいるよな。
質問者にも野次馬にも。

一様連続を一様に連続だとか思ってるみたいな。
809デフォルトの名無しさん:2008/06/17(火) 19:29:53
>>706
> まともに相手せず、「氏んだほうがいいよ」と白紙のレポートなりメールなり出すのが吉かと
> 「氏んだほうがいいよ」と
> 白紙のレポートなりメールなり出すのが吉かと

きっちっがっいって 分かりやすいよなぁ〜〜おいっw
810デフォルトの名無しさん:2008/06/17(火) 19:32:12
行列式知らなきゃバカなのか?
言葉の端で判断するのには問題があるかもしれんが、
プログラマとしては全く信頼出来ない人間であるような気がしてならないな。
行列式知っていると、プログラマとしては信頼出来ないというものでは勿論ないが。
811デフォルトの名無しさん:2008/06/17(火) 19:32:28
正方行列から話をそらしたいんですね、わかります
812デフォルトの名無しさん:2008/06/17(火) 19:35:39
>>810
行列式は高校レベルの知識だってもはおいといても、
知らないことに対して適当なことを言うのはダメだろ。
わからないとこでもいい加減なコード書きそうでプログラマとして全く信頼できない。
813デフォルトの名無しさん:2008/06/17(火) 19:36:24
別に行列式がどうとかどうでも良いし

やる気があるならソース中に、明記されて無かったけれど
このように解釈してやりました、とでもコメント入れてあげるか
条件をきっちりさせてくれなり言うかすれば良いし

その気がないなら放って置けば良いじゃない
814デフォルトの名無しさん:2008/06/17(火) 19:40:14
あーもしかして今って高校で行列式とか教えてない?
それでも大学の一年生で習うと思うけど、どうなんだ?
815デフォルトの名無しさん:2008/06/17(火) 19:40:22
行列式を計算する問題で行列式がどうでも良いってw
816デフォルトの名無しさん:2008/06/17(火) 19:42:29
817デフォルトの名無しさん:2008/06/17(火) 19:42:46
そうじゃなくて、知らないなら口を出さない
知ってて尚且つやってあげる気があるならそうすればいいって意味だよ
行列式一つとってどうこう言ってるんじゃない

一番性質が悪いのはただ馬鹿にすることだろ
818デフォルトの名無しさん:2008/06/17(火) 19:44:20
知らないのに口を出したあげく引っ込みつかなくなってるのがお前だろw
819デフォルトの名無しさん:2008/06/17(火) 19:45:08
とりあえず先生に謝れ。そうすれば丸く収まる。
820デフォルトの名無しさん:2008/06/17(火) 19:46:02
枝葉の部分はスルーしてさっさとソース献上しやがれ。
821デフォルトの名無しさん:2008/06/17(火) 19:46:20
証明する方法は無いけど別の人です
あと誰かを擁護する気とか一切ありません
流れを見ててあんまりいいと思わなかったので口を出しました

変なこと言ってすまんかった
822デフォルトの名無しさん:2008/06/17(火) 19:52:21
毎回毎回、質問者が放置するから荒れるんだよなあ。
823デフォルトの名無しさん:2008/06/17(火) 19:53:11
C言語は数学研究向けの言語じゃないからね。システム記述がメインストリームだよ。
数学の研究用の言語は、FORTRANとかだろ?
問題意識は別のところにおいたほうがいいよ。
行列式知らなくても、Cプログラマーとして信頼出来る人は幾らでもいるし。
824デフォルトの名無しさん:2008/06/17(火) 19:55:35
いい具合に荒れてきました!とりあえずここでお決まりのレスを。
ソースでなくても良いから、もうお前らの長文発言にも うpロダ使えw
825デフォルトの名無しさん:2008/06/17(火) 19:57:51
行列式知らない人間なんて人間として信用できん
826デフォルトの名無しさん:2008/06/17(火) 19:58:40
>>823
知らないことと、知らないことに適当に口を挟んでくるのとでは全く違うんだが。
827デフォルトの名無しさん:2008/06/17(火) 19:58:54
ああそう
828デフォルトの名無しさん:2008/06/17(火) 19:59:58
825は明らかにCプログラマ=数学至上主義だという意識を植え付けようとするプロパガンダ
829デフォルトの名無しさん:2008/06/17(火) 20:02:19
>>355お願いします
830デフォルトの名無しさん:2008/06/17(火) 20:03:03
線形代数やらないで計算機って勉強できるの?
831デフォルトの名無しさん:2008/06/17(火) 20:06:18
[1] 授業単元:グラフ理論
[2] 問題文(含コード&リンク):最短経路長の計算を全てのノード対でし、表にしなさい
[3] 環境
 [3.1] OS: 基本Windowsですが、Linuxでも大ジョブです
 [3.2] コンパイラ名とバージョン: Borland C++ 5.5.1
 [3.3] 言語: どちらでも可
[4] 期限: 今週中には出来て欲しいです
[5] その他の制限: 無制限です


ソースは掲示板に張るにはちょっと長いのでこちらに
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6940.c
ちなみに読み込むネットワークデータが必要なので、そちらも
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6941.txt

単純に最短経路長の計算をループさせればいいのかと思ったんですが
エラーが出てしまって、なんともできない状況になってしまいました
最短経路長の計算を最初から最後までしてくれるようにしてくれるだけでも結構です
最短経路長の出力を利用して表にするくらいなら自分で出来そうですので・・・

宜しく御願いします。Orz
832デフォルトの名無しさん:2008/06/17(火) 20:10:18
>>831 
ちなみに、このソースは自分でココとココ、と指定してその最短経路長を計算してくれます
それをノード0番から10番あるわけですので、
0-1、0-2、0-3、0-4・・・7-10、8-9、8-10、9-10みたいな感じにやってもらえると幸いです
833790:2008/06/17(火) 20:10:20
>>795
ありがとうございますた!
834デフォルトの名無しさん:2008/06/17(火) 20:15:42
オッス、オラおじゃる。大学は理系に進んだのに、行列なんてさっぱりでおじゃ〜
そんな麻呂でもクソースは書けるでおじゃるよ?
835デフォルトの名無しさん:2008/06/17(火) 20:18:55
それはプログラマーではなくコーダー。
836デフォルトの名無しさん:2008/06/17(火) 20:27:28
[1] 情報技術
[2] http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6942.txt
[3] XP:C++
[4] 08年06月22日
お願いします
837デフォルトの名無しさん:2008/06/17(火) 20:32:03
だいたいさぁ、何のプログラムを作るかで必要な知識は違ってくる。
まず最低限必要なのは、当然言語の仕様。そして実装されている
コンピュータの基本的な部分、仕様、構造。メモリのアドレス、
32ビット、デジタルデータが0と1の組み合わせで、それを複雑に
オナペットしていることをまず知るべきだ。コードのみを見て
わぁ〜数値計算の結果が立った、結果が立ったって
ハイジみたいに喜んでも、なんだかなぁ〜ってなるぞw
838デフォルトの名無しさん:2008/06/17(火) 20:33:58
[1] 授業単元:数値解析
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6943.zip
[3] 環境
 [3.1] OS: Windows XP
 [3.2] コンパイラ名とバージョン:Visual Studio.NET 2003
 [3.3] 言語: C,C++どちらでも可
[4] 期限:今週の土曜まで
[5] その他の制限:問題文が意味がわからんすぎてぐぐっても全然理解できん・・
誰か助けて! これ出さないと判定Xになって単位落とす事になる\(^o^)/
839デフォルトの名無しさん:2008/06/17(火) 20:47:32
数表の形式は?
840デフォルトの名無しさん:2008/06/17(火) 20:50:17
>>838
すまん、底辺大学卒の俺でも、予備知識無しで普通に解けそうな感じだったんだが。
841デフォルトの名無しさん:2008/06/17(火) 20:51:41
>>840
底辺とか、自分を低く見せてるだけやろぉ〜、ほんま、ぶっちゃけて、実は、
本当のところ、ランクCどころじゃない、BかAの大卒なんでしょ〜?またまたぁ〜
謙遜せんでもよかろうに。このこのっ、憎いねぇ〜。Fランク大学中退なめんなw
842838 :2008/06/17(火) 20:52:52
>>840
俺まったく、プログラミングやったことなぃんょ
そもそも学科が全然違ってて・・
選択であったからとってみたら意味わからんすぎたぜ
解けるなら教えてくれるとありがたい・・単位が危ないんだ。
843デフォルトの名無しさん:2008/06/17(火) 20:54:29
んじゃ、問題文の意味は分かるけどどういうコードにしたらいいかが分からんのでないの?
問題文が意味が分からんすぎてって書いてるからこういうレスがつく。
844デフォルトの名無しさん:2008/06/17(火) 20:55:32
プログラミングの課題としてこれが出題される事はなかろ。
この1個前の課題および回答をあげてみ?
845デフォルトの名無しさん:2008/06/17(火) 21:03:43
>>838
数表は横並びにxとyが並んでるものと仮定
#include <stdio.h>
#define N 100
int main(void)
{
double xn[N], yn[N], x, y;
int i, cnt;
FILE *fp;

if((fp=fopen("data.txt", "r"))==NULL) return 0;

for(i=0; fscanf(fp, "%lf%lf", xn + i, yn + i)==2; i++);
cnt = i;

scanf("%lf", &x);

if(x < xn[0] || xn[cnt-1] <= x) return 0;

for(i=0; xn[i] < x; i++);

y = (yn[i+1] - yn[i]) * (x - xn[i]) / (xn[i+1] - xn[i]) + yn[i];

printf("y = %f\n", y);

return 0;
}
846デフォルトの名無しさん:2008/06/17(火) 21:05:31
847838 :2008/06/17(火) 21:06:15
>>843
もう問題文から答えまでわかんねーょ
コードってなんだょ!

>>844
一個前のは答えがまだ教えられてないから
ちょっと前のだが、こんな感じ
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6944.txt

ニュートン法の解き方とか二分法とかが課題だったな
それも答え教えられてないけどwww
848デフォルトの名無しさん:2008/06/17(火) 21:06:30
>>841
すまん、嘘ついた。俺もFラン中退だ。
849デフォルトの名無しさん:2008/06/17(火) 21:06:35
[1] 授業単元:システムソフトウェア
[2] 問題文

連結リストを用いてキュー(queue)を以下の仕様に従って実装しなさい.

連結リストの初期化(0~99のランダムな整数を入れる),表示を行う関数を,「list_init.c」に実装しなさい.
連結リストを初期化する関数をlist_create(), 連結リストに格納されている整数を表示する関数をlist_disp()としなさい.
連結リストのノードの総数はキーボードから入力されるものとする.
キュー(連結リスト)の値の格納をenqueue(),値の取り出しをdequeue(),値の検索をsearch()として,「list_op.c」に実装しなさい.
list_init.c, list_op.cから動的ライブラリ(共有ライブラリ)libdata_s.soを作成しなさい.
main関数を含むコードを「test_list.c」として作成し,libdata_s.soを用いてコンパイルしなさい.
実行形式のファイル名は「test_list」とする.
ただし,libdata_s.soの関数は,dlfcn.hに含まれている関数と,関数ポインタを用いて呼び出しを行うこと.
作成したプログラムは以下の動作を行う.
1:キーボードからキューのノードの総数を受け取る
2:初期化したキューの内容を表示する.
3:キーボードからのコマンド待ち状態になる.コマンドは,0を入力するとenqueue, 1を入力するとdequeue, 2を入力すると値のsearchを行い,それ以外の数字を入力するとプログラムが終了する.
4:2., 3.を繰り返す

[3] 環境
 [3.1] OS:linux
 [3.2] gcc
 [3.3] 言語:C
[4] 期限:明後日
おねがいします
850デフォルトの名無しさん:2008/06/17(火) 21:07:40
              合計
  50 49 48 47 46 ***
  45 44 43 42 41 ***
  40 39 38 37 36 ***
  35 34 33 32 31 :
  30 29 28 27 26 :
  25 24 23 22 21 :
  20 19 18 17 16 :
  15 14 13 12 11 :
  10 9 8 7 6 :
   5 4 3 2 1
合計 *** *** *** *** ***

を表すプログラムってどの様に書けますか?一次元配列を使うということですが・・・
851デフォルトの名無しさん:2008/06/17(火) 21:08:37
つ int i; for(i=1; i<=3; i++) putchar('*');
852760:2008/06/17(火) 21:08:56
できればすぐお願いします
20から30回で宝8個みつかるようお願いします
853デフォルトの名無しさん:2008/06/17(火) 21:13:25
>>847
ああ、つまり、ここに頼ったはいいけど自分の身についてないから
どんどん被害が大きくなってるってわけね。
いつかしっぺ返しくらう前にちょっとずつ理解しような。
ソースコードはでき次第うpする
854838 :2008/06/17(火) 21:14:52
>>845
FILE *fp;

if((fp=fopen("data.txt", "r"))==NULL) return 0;

がよくわからないんだが データテキストを呼び出すのか?
そのファイルを何処に置けばいいかもわからん・・
855838 :2008/06/17(火) 21:17:20
>>853
そうだ・・まったくもって勉強してない成果がここで発揮されたぜ
ぅん・・これ以降は自分で出来る様にがんばるょ。
頼む!今のところ出来そうにない!
856デフォルトの名無しさん:2008/06/17(火) 21:24:55
>>831 たぶんできましたんでやらんでいいです

おさわがせしました
857デフォルトの名無しさん:2008/06/17(火) 21:52:02
>>760
改良してやろうと思ったけど…

問題内容、問題コードどれを取っても、お前が言ってる条件に当てはまらないだろ
だいたいポインタ使って関数渡しの値代入してるのに、構造体習ってないから使うな?
しねよ



お前が知らないだけだろ、その問題
858デフォルトの名無しさん:2008/06/17(火) 21:53:53
>>857
> しねよ
また使ってるよ、基地外
859デフォルトの名無しさん:2008/06/17(火) 22:04:18
>>858
> 基地外
また使ってるよ、しねよ
860766:2008/06/17(火) 22:06:50
>>773
ご助言ありがとうございます。

しかしうまくプログラムが組めないorz
861デフォルトの名無しさん:2008/06/17(火) 22:15:31
プログラムは組み物じゃないな

編み物

彼氏にマフラー編んだげてるの
862デフォルトの名無しさん:2008/06/17(火) 22:26:06
>>850
#include <stdio.h>
int main(){
int a,b,z,i=0,d=0;
int c=50;
//1行目から10行目
printf("\t\t\t\t\t\t合計\n");
for(a=0; a<10; a++){
for(b=0; b<5; b++){
i += c;
printf("\t%d",c);
c--;
}
printf("\t%d",i);
printf("\n");
i=0;
}
//11行目
printf("合計");
for(a=5; a>0; a--){
for(b=0; b<10; b++){
c += a+5*b;
}
printf("\t%d",c);
d += c;
c=0;

}
printf("\t%d",d);
}
863デフォルトの名無しさん:2008/06/17(火) 22:26:58
>>857
まあ落ち着け。
>>590の回答に対して構造体とか#ifとか使うなって条件つけたんだよ。
条件の後出しがひどく迷惑であることを痛感する展開ではあるんだが。
864デフォルトの名無しさん:2008/06/17(火) 22:46:31
>>862
ありがとうございます!!

ちなみに、これを関数で表せという問題も一緒に出されているのですが全く分かりません。。。
865デフォルトの名無しさん:2008/06/17(火) 22:58:15
void disp(){
//>>862
}
int main(){
disp();
return 0;
}
866デフォルトの名無しさん:2008/06/17(火) 23:01:50
>>865
ほんとGJ!!!

助かりました@@;
867デフォルトの名無しさん:2008/06/17(火) 23:19:30
868デフォルトの名無しさん:2008/06/17(火) 23:25:29
宝探しのやつ、takaraとかの盤面が周り1マス分大目に取ってあるとよかったのになあ。。。
とぼやきつつ、ぼちぼち。
869デフォルトの名無しさん:2008/06/17(火) 23:34:10
[1] 授業単元:C言語プログラミング
[2] 問題文(含コード&リンク):()
文字列aから文字bを取り除く。下までできたのですが。。。


#include<stdio.h>
char a,b;
void main()
{
scanf("%d\n",a);
scanf("%d\n",b);
printf("%d",a,b);
return 0;
}

/* squeeze sからcをすべて取り除く */
void squeeze(char s[], int c)
{
int i,j;
for(i=j=0; s[i] !='\0'; i++)
if(s[i] !=c)
s[j++]=s[i];
s[j]='\n';
}

[3] 環境
 [3.1] OS:XP
 [3.2] よくわかりません。ボーランド?
 [3.3] 言語: C言語
[4] 期限:明日中に。
870デフォルトの名無しさん:2008/06/17(火) 23:34:14
>>867
おお、ありがとうございmす。
これを元に勉強させてもらいます。
871760:2008/06/17(火) 23:53:34
お願いできないでしょうか?問題変更で20から30回で
構造体使ってもいいのでおねがいします!
872デフォルトの名無しさん:2008/06/18(水) 00:05:34
>>760
>>871
ちょっと待ってろw
しかし、人間がやっても20回くらいかかるぞ?
問題のレベルの割に、お前さんのレベルが低すぎる気が…
873デフォルトの名無しさん:2008/06/18(水) 01:27:57
[1] 授業単元: C++
[2] 問題文(含コード&リンク):
#include <stdio.h>

main()
{
int ch;

while(( ch=getchar()) != EOF) {
printf("%02x", ch);
}
}

このプログラムだけでは非常に長くなるので、'\n'を検出したら,出力にも改行文字を埋めたい。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C++
874デフォルトの名無しさん:2008/06/18(水) 01:32:38
>>872
お願いします
875デフォルトの名無しさん:2008/06/18(水) 01:54:20
#include <stdio.h>  printf("%02x", ch);
なのに C++ とは、どんな授業をしてるでおじゃるか?
876デフォルトの名無しさん:2008/06/18(水) 02:01:16
>>873
if(ch='\n'){
    cout << endl;
}
877デフォルトの名無しさん:2008/06/18(水) 03:09:31
>>657さんの問題を
main関数のみで作っていただけないでしょうか?
878デフォルトの名無しさん:2008/06/18(水) 03:25:04
[1] 授業[1] 授業単元:オペレーティングシステム
[2] 問題文:mallocを用い、下記のプログラムを完成させて、次の仕様を満たすプログラムを作成せよ。
 ・キーボードから可変数の英数字の行を読み込む
 ・最初に行数を入力させる
 ・1行の長さは最大256文字
 ・全入力が終了したところで、全入力行をまとめて出力する
#include <stdio.h>
#define MAX_LINE 256
main(){
char *p;
int n, i;
scanf(“%d”, &n);
p = --------------------;
for (i = 0; i < n; i++) {
scanf(“%s”, p + MAX_LINE * i);}
------------------------;}
[3] 環境
 [3.1] OS:Linux
 [3.2] gcc
 [3.3] 言語:C
[4] 期限:明日まで
点線の部分の変更のみです。
よろしくお願いします。
879760:2008/06/18(水) 03:25:40
20回から30回のプログラムを
今日朝9時までにお願いできないでしょうか
できそうにないんで…
880デフォルトの名無しさん:2008/06/18(水) 03:35:52
>>878
p = malloc(MAX_LINE * n);

for(i = 0; i < n; i++) { printf("%s\n", p + MAX_LINE * i); }
881414:2008/06/18(水) 06:02:08
>>451
亀ですいません。
作成いただきありがとうございました。
882デフォルトの名無しさん:2008/06/18(水) 06:04:25
>>760
>>879

お前、ふざけてるのか?偽者の釣りか?
8/100の宝探し全てを20回から30回でって…人間がやってもなかなか出来ないぞ…

http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6946.txt
883デフォルトの名無しさん:2008/06/18(水) 06:09:05
問題のレベルと依頼者のレベルが余りにもかけ離れてる場合
よく他人に頼んで、提出できるよなっていつも思う
あんまり無いのかも知れんが、内容に関して質問が来たらどうするつもりだろ?
884デフォルトの名無しさん:2008/06/18(水) 06:12:30
まぁ〜〜〜た今さらなことを、独り言のようにてめぇが勝手に思っている疑問を
わざわざ書き込むか、一言居士め。どうでも良いだろ、そんなの。
このスレの趣旨がわかってない新入りだろ、しねだのほざくガキって?
もしそれで高卒以上の年齢だとしたら、かなり精神レベルが低いぞ、こいつ。
885デフォルトの名無しさん:2008/06/18(水) 06:15:13
>>883
んなこと俺らが心配することでも何でもない。>>1読め。
886デフォルトの名無しさん:2008/06/18(水) 08:56:25
>>879
何で今朝なんだ?期限とちがうじゃん。
887デフォルトの名無しさん:2008/06/18(水) 09:03:42
>>885
つまりレベルがかけ離れていて気に入らない質問はスルーしとけばいいのか
888デフォルトの名無しさん:2008/06/18(水) 09:13:30
>>866>>865なんかで本当に大丈夫なのだろうか
889デフォルトの名無しさん:2008/06/18(水) 09:47:38
レベルなんぞ気にしているくらいなら、とことん初心者レベルに戻るべし。
本当にコードから○ンコのに臭いがぷんぷんと漂ってきそうな
麻呂のクソースを目指すでおじゃる!
890デフォルトの名無しさん:2008/06/18(水) 09:58:47
初心者レベルの宿題しか解けないだけだろw
891デフォルトの名無しさん:2008/06/18(水) 10:25:09
[1] 授業単元: 情報実験
[2] 問題文(含コード&リンク):
クイックソートでは、値が等しい要素の位置を入力された順に保つことができない。
この問題を解決するプログラムを作成せよ。
ただし、以下の解決方法を用いよ。
•配列をリストに変換
•三つのリストを作る
ー枢軸より大きい要素のリスト
ー枢軸より小さい要素のリスト
ー枢軸より等しい要素のリスト
•三つのリストを統合する

[3] 環境
 [3.1] OS: Mac OS X
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限:できれば今日まで
よろしくお願いします
892デフォルトの名無しさん:2008/06/18(水) 10:48:59
難し過ぎ
893877:2008/06/18(水) 11:19:28
>>877出来る方いませんか?
894デフォルトの名無しさん:2008/06/18(水) 11:51:35
在庫管理のプログラムを作りなさいっていう宿題なのですけれども
よろしくお願いします。

1.クラス設計
データ定義:100件分(とりあえずの値としておく)
商品コード int(0〜999)
在庫数   int
登録商品数 int(新規商品を入庫するたびに+1される)

商品マスター:予め数件分を定数として定義しておく(-1がストッパー)
(例) int master[ ]={1,3,5,10,11,12,100,200,900,-1};

メンバー関数:
・コンストラクタ:保持している商品数をクリアする。
・データ設定関数:int  add(int 商品コード、 int 入庫数)
  商品マスターチェックNGなら戻り値にエラーを設定する。
  チェックOKならデータ部に登録し、在庫数を加算、登録商品数を+1する

・在庫数取得関数:int get(int 商品コード)
  商品コードが登録されていれば現在の在庫数を戻り値に返す。
  登録されていない(入庫されていない)場合は-1を返す。

c++でお願いします。
895デフォルトの名無しさん:2008/06/18(水) 13:11:58
>>894
本当にこれが全文ですか?
896デフォルトの名無しさん:2008/06/18(水) 14:50:01
そうなんじゃない?
在庫管理プログラムとして十分ではないけれど、題意を満たすソースは書けるでしょ。
作成されるものはチープかもしれないけど、それが課題というものかと。
897デフォルトの名無しさん:2008/06/18(水) 14:57:05
ここのおじゃぱ様なら楽勝だよw
http://pc11.2ch.net/test/read.cgi/prog/1210981817/
898 ◆DuoCt8/SKk :2008/06/18(水) 15:31:31
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6947.txt
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:Visual C++ 6.0
 [3.3] 言語:C言語
[4] 期限:2008年6月20日
[5] その他の制限:構造体,ポインタまで
どなたかよろしくお願いします.
899デフォルトの名無しさん:2008/06/18(水) 15:31:59
商品コード int(0〜999)とか商品マスターとかはいいとして
データ定義とか商品マスターチェックNGとか微妙に粒度と日本語がゴチャゴチャな気がする

>  商品コードが登録されていれば現在の在庫数を戻り値に返す。 
>  登録されていない(入庫されていない)場合は-1を返す。
商品コードの登録って実際はどういう動作なのかわからん.
どうも在庫数を増やすだけじゃなさそうだが.









まぁ作ったけど.
900894:2008/06/18(水) 15:43:53
たしかにゴチャゴチャですよね;
知識ないのに余計よくわからなくて此処で聞いてみました。

>>899さん上げてもらえますか?


901デフォルトの名無しさん:2008/06/18(水) 15:56:29
const int CODE_NOT_FOUND = -1;
const int MASTER_ERROR = -1;
const int MASTER_SUCCESS = 0;
static int master[] = {1, 2, 3, 4, 5, CODE_NOT_FOUND};
static int checkCode(int code){
  for(int i = 0; master[i] != CODE_NOT_FOUND; i++) if(code == master[i]) return code;
  return CODE_NOT_FOUND;
}
class Manager{
  private:
  int *merchandise;
  public:
  Manager(){
    merchandise = new int[100];
    for(int i=0; i<100; merchandise[i++] = 0);
  }
  virtual ~Manager(){
    delete[] merchandise;
  } 
  int add(int code, int n){
    if(checkCode(code) == CODE_NOT_FOUND) return MASTER_ERROR;
    else {merchandise[code] += n; return MASTER_SUCCESS; }
  }
  int get(int code){
    if(checkCode(code) == CODE_NOT_FOUND) return MASTER_ERROR;
    if(merchandise[code] == 0) return -1;
    else return merchandise[code];
  }
};
こんな感じ
902894:2008/06/18(水) 16:10:57
すいません、、、
もっと分かりやすい簡単な漢字で書いてもらえないでしょうか、、?
903894:2008/06/18(水) 16:12:33
すいません、、、
もっと分かりやすい簡単な感じで書いてもらえないでしょうか、、?
904デフォルトの名無しさん:2008/06/18(水) 16:14:55
分かりやすさは他人に求めるものじゃなくて自分で感じるものじゃね?
905デフォルトの名無しさん:2008/06/18(水) 16:34:43
こういう分野はC/C++向きじゃないな。完全にデータベース向けと考えられてるね一般的には。
やはりこういう問題出した教師は現場を知らん◎フォだとしておこう。
906デフォルトの名無しさん:2008/06/18(水) 16:42:38
マスタのコードが0-999でmerchandiseのインデックスにコード使っちゃうとだめなんじゃない?
907デフォルトの名無しさん:2008/06/18(水) 16:45:19
原理を勉強するのに、一から書いてみるというのは悪い方法じゃないだろう
908デフォルトの名無しさん:2008/06/18(水) 16:46:34
>>906
なんか面倒になったから適当にしてみた
909デフォルトの名無しさん:2008/06/18(水) 16:48:15
>>901
なんかそれだとcodeがmerchandiseのインデックスになるから
例題の
int master[ ]={1,3,5,10,11,12,100,200,900,-1};
のときmerchandise[200]とかになっておかしくないか?
910デフォルトの名無しさん:2008/06/18(水) 16:55:32
[1] 情報プログラミング:
[2] 問題文(含コード&リンク):標準入力からのテキストデータ中に現れる単語の出現頻度数つき一覧を出力するプログラムを作成せよ。
[3] 環境
 [3.1] OS: linux
 [3.2] Vine Linux 3.2
 [3.3] 言語: C
[4] 期限:2008 6/24
[5] その他の制限:線形リストを使い、つくれとのことです。
どなたかよろしくお願いいたします

とりあえずここまで作成してあります(まだまだ未完成ですが。。。)
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6948.c
よければ見て下さい
911デフォルトの名無しさん:2008/06/18(水) 17:33:02
>>898
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6949.c
Otheloは登録商標なので0theloにしておいた
912デフォルトの名無しさん:2008/06/18(水) 17:34:53
/* 0thello Game */
913デフォルトの名無しさん:2008/06/18(水) 17:42:57
ShowAllって次の手1個につき1画面なのかな
書き直してみる
914911:2008/06/18(水) 17:56:34
915デフォルトの名無しさん:2008/06/18(水) 18:12:53
>>908
まあ宿題だからそれぐらいアバウトなほうがいいのかもしれないね
916デフォルトの名無しさん:2008/06/18(水) 18:25:35
>>850なんですがこの表示結果の合計を、前列の合計を次々に足していく風にしたいのですがどう書けますか?
よろしくお願いします。
合計
50 49 48 47 46 240
45 44 43 42 41 215
40 39 38 37 36 190
35 34 33 32 31 165
30 29 28 27 26 140
25 24 23 22 21 115
20 19 18 17 16 90
15 14 13 12 11 65
10 9 8 7 6 40
5 4 3 2 1 15
合計 275 265 255 245 235 1275
917デフォルトの名無しさん:2008/06/18(水) 18:26:56
↑ずれて分かりにくくなってしまってすみません;;
918878:2008/06/18(水) 18:27:41
>>880
エラーが出てきます。
コンパイラ通してみた結果です。
10:error:プログラムとして逸脱した文字 '/226'
10:error:プログラムとして逸脱した文字 '/128'
10:error:プログラムとして逸脱した文字 '/156'
10:error:文法エラーが'%'トークンの前にあります
10:error:プログラムとして逸脱した文字 '/226'
10:error:プログラムとして逸脱した文字 '/128'
10:error:プログラムとして逸脱した文字 '/157'
15:error:プログラムとして逸脱した文字 '/226'
15:error:プログラムとして逸脱した文字 '/128'
15:error:プログラムとして逸脱した文字 '/156'
15:error:文法エラーが'%'トークンの前にあります
15:error:プログラムとして逸脱した文字 '/226'
15:error:プログラムとして逸脱した文字 '/128'
15:error:プログラムとして逸脱した文字 '/157'
919デフォルトの名無しさん:2008/06/18(水) 18:27:53
920デフォルトの名無しさん:2008/06/18(水) 18:35:07
>>862を参考に、一次元配列を使うようにしたよ。

#include <stdio.h>
int main(){
int a,b,z,i=0,d=0;
int c=50;
int r[10];
//1行目から10行目
printf("\t\t\t\t\t\t合計\n");
for(a=0; a<10; a++){
for(b=0; b<5; b++){
i += c;
printf("\t%d",c);
c--;
}
printf("\t%d",i);
printf("\n");
i=0;
}
//11行目
printf("合計");
for(a=5; a>0; a--){
for(b=0; b<10; b++){
c += a+5*b;
}
printf("\t%d",c);
d += c;
c=0;

}
printf("\t%d",d);
}
921デフォルトの名無しさん:2008/06/18(水) 18:39:58
>>920

ありがとうございます!
理解できました!

合計値についてなんですが前列の合計値も足してって次々に足して表示させたいんですがどうすればいいのですか?
922デフォルトの名無しさん:2008/06/18(水) 18:43:09
>>921
理解できたか。それはよかった。次々にっていうのはこういうこと?
#include <stdio.h>
int main(){
int a,b,z,i=0,d=0;
int c=50;
int r[10];
//1行目から10行目
printf("\t\t\t\t\t\t合計\n");
for(a=0; a<10; a++){
for(b=0; b<5; b++){
i += c;
printf("\t%d",c);
c--;
}
printf("\t%d",i);
printf("\n");
// i=0;
}
//11行目
printf("合計");
for(a=5; a>0; a--){
for(b=0; b<10; b++){
c += a+5*b;
}
printf("\t%d",c);
d += c;
// c=0;

}
printf("\t%d",d);
}
923デフォルトの名無しさん:2008/06/18(水) 18:45:48
>>922
そうです!
でも、どこをどういう風に考えたのか分かりません@@:
924デフォルトの名無しさん:2008/06/18(水) 18:48:58
一行書くたびに合計をクリアしていたので、一行ごとの合計が右端に出てた。
これをクリアしないようにすることで、1行目の合計に2行目の数字が足されるようになって
1行目と2行目の合計が2行目に出るようになった。
列もおなじ。
925デフォルトの名無しさん:2008/06/18(水) 18:53:20
>>924
初歩的な質問でごめんなさい。クリアを示す記号って何ですか?
どこも変わっていないような気がするのですが・・・
926デフォルトの名無しさん:2008/06/18(水) 18:53:52
>>918
226=0xE2
128=0x80
156=0x9C
156=0x9D

E2 80 9C はUTF-8 で全角の “
E2 80 9D はUTF-8 で全角の ”
927918:2008/06/18(水) 19:04:43
自己解決しました。
スレ汚し申し訳ありません。
928デフォルトの名無しさん:2008/06/18(水) 19:05:19
自己解決w
929デフォルトの名無しさん:2008/06/18(水) 19:05:33
[1] 授業単元:C++入門
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6952.txt
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン: VC6.0
 [3.3] 言語:C++
[4] 期限:
[5] その他の制限:

よろしくお願いします
930デフォルトの名無しさん:2008/06/18(水) 19:05:50
>>925
0を代入することでクリアしていた部分をコメントアウトすることでクリアしないようにした。
行、列の2箇所。
931デフォルトの名無しさん:2008/06/18(水) 19:11:10
>>930
なるほど、そういう事だったんですね。ありがとうございました。
932919:2008/06/18(水) 19:12:07
>>836
うpしてから思ったがABC#DEF#HIJをABC#FED#HIJではなくABC#FED#JIHにするっぽいな
後者ならフラグ要らんからrev_flagを含む行(5行)は削っとくれ
933デフォルトの名無しさん:2008/06/18(水) 19:14:12
>>898
バッファオーバーフローのバグがあった
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6953.txt
934デフォルトの名無しさん:2008/06/18(水) 19:16:49
暇つぶしに 910 をといてみたぜ。
910の役にはたたないだろうがな。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6954.txt
935デフォルトの名無しさん:2008/06/18(水) 19:17:15
>>850
#include <stdio.h>
#define ROW 10
#define COL 5
int main(void){
int row[COL]={0},tr,tc[COL]={0},r,c;
for(c=0; c<=COL; c++) printf("\t");
printf("合計\n");
// 各行
for(r=ROW; r>0; r--) {
for(c=COL-1; c>=0; c--) {
row[c]=r*COL-c;
tc[c]+=row[c];
}
for(c=0,tr=0; c<COL; c++) {
tr+=row[c];
printf("\t%d",row[c]);
}
printf("\t%d\n",tr);
}
// 各列の合計
printf("合計");
for(c=0; c<COL; c++) printf("\t%d",tc[c]);
puts("");
return 0;
}
936デフォルトの名無しさん:2008/06/18(水) 19:23:30
#include <stdio.h>
int count_bits(unsigned)
{
int count = 0;
while (x){
if (x & 1U) count++;
x>>1;
}
return (count);
}
int int_bits(void)
{
return (count_bits(~0U));
}
void print_bits(unsigned x)
{
int i;
for (i= int_bits() - 1; i >= 0; i++)
putchar(((x>>1) & 1U) ? '1' : '0');
}
int main(void)
{
unsigned nx;
printf("非負の整数を入力してください :");
scanf("%u", &nx);
putchar('\n');
return 0;
}

というプログラムにおいて、int count_bits(unsigned)を int count_bits(signed x)とするとどのような現象が置きますか?
理由も書けという問題なのですが。
937デフォルトの名無しさん:2008/06/18(水) 19:24:07
938デフォルトの名無しさん:2008/06/18(水) 19:27:36
>>935

ありがとうございます!
合計値は、前列(行)の合計値を次々に足していく風にしなければならないのですが。。。
一次元配列に於いては次の列(行)にいく際どこでクリアされているのでしょうか。
939デフォルトの名無しさん:2008/06/18(水) 19:36:33
>>938 >>850
#include <stdio.h>
#define ROW 10
#define COL 5
int main(void){
int row[COL]={0},tr,tc[COL]={0},tmp,r,c;
for(c=0; c<=COL; c++) printf("\t");
printf("合計\n");
// 各行
for(r=ROW,tr=0; r>0; r--) {
for(c=COL-1; c>=0; c--) {
row[c]=r*COL-c;
tc[c]+=row[c]; }
for(c=0; c<COL; c++) {
tr+=row[c];
printf("\t%-d",row[c]); }
printf("\t%-d\n",tr);}
// 各列の合計
printf("合計");
for(c=0,tmp=0,tr=0; c<COL; c++) {
tmp+=tc[c]; tr+=tmp;
printf("\t%-d",tmp);} printf("\t%d\n",tr);
return 0;
}
940 ◆DuoCt8/SKk :2008/06/18(水) 19:56:34
>>911-914
>>933
>>937
こんなにたくさん頑張って頂き本当にありがとうございます.
これが第一段階らしく,第二・三段階もあるみたいなので,もし良かったら
その時にも是非よろしくお願いします.
941デフォルトの名無しさん:2008/06/18(水) 20:01:32
[1] 授業単元:コンピュータプログラミング
[2] 問題文(含コード&リンク):
標準入力(キーボード)から一つずつ数値(浮動小数点)を
読み込んで、データの数、平均値、標準偏差を出力するプロ
グラムを作成せよ。ただし、データ入力は、空行の入力で終
了するものとする。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6957.txt
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2008年06月18日まで
[5] その他の制限:入力終了の判別方法は、このプログラムを参考にするとよいが、
今回の問題では、入力データを配列等に保存する必要がない
ことに注意。配列に保存することにすると、配列の大きさで
入力できるデータ数が制限されてるので、好ましくない。

よろしくお願いします。m(_ _)m
942デフォルトの名無しさん:2008/06/18(水) 20:30:45
#include <stdio.h>
#include <math.h>

int main(void)
{
double s = 0, a = 0, temp, sigma2;
int cnt = 0;
char buff[256];

while(1) {
fgets(buff, sizeof buff, stdin);
if(buff[0]=='\n') break;
sscanf(buff, "%lf", &temp);
s += temp * temp;
a += temp;
cnt++;
}
a /= cnt;
s = sqrt(s / cnt - a * a);

printf("データ数:%d\n平均:%f\n標準偏差:%f", cnt, a, s);

return 0;
}
943デフォルトの名無しさん:2008/06/18(水) 20:41:42
[1] 授業単元:C++実習
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6958.txt
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン: VC6.0
 [3.3] 言語:C++
[4] 期限:
[5] その他の制限:

お願いします。。
944デフォルトの名無しさん:2008/06/18(水) 20:44:39
::
945デフォルトの名無しさん:2008/06/18(水) 20:48:00
>>942
適当に改造してたら使ってない変数残った。
sigma2は消しといて
946デフォルトの名無しさん:2008/06/18(水) 20:50:21
サセクア
947デフォルトの名無しさん:2008/06/18(水) 20:55:08
[1] C演習
[2] 入力する3以上の整数nに対して、2以上n以下の整数の組の最大公約数を
「ユークリッドの互除法」を用いて計算するプログラムを作れ。
(例:n=6の場合、2と3、2と4、2と5、2と6、3と4、3と5、3と6
4と5、4と6、5と6の10通り)
(表示例:n=6の場合)
   3  4  5  6
2: 1  2  1  2
3:    1  1  3
4:       1  2
5:          1
[3]
 [3.1] LINUX
 [3.3] C
[4]6月23日
[5]関数は習ってないので、if,while,forなどを使ってお願いします。
よろしくお願いします。
948デフォルトの名無しさん:2008/06/18(水) 20:56:31
[1] C演習
[2] 入力する3以上の整数nに対して、2以上n以下の整数の組の最大公約数を
「ユークリッドの互除法」を用いて計算するプログラムを作れ。
(例:n=6の場合、2と3、2と4、2と5、2と6、3と4、3と5、3と6
4と5、4と6、5と6の10通り)
(表示例:n=6の場合)
   3  4  5  6
2: 1  2  1  2
3:    1  1  3
4:       1  2
5:          1
[3]
 [3.1] LINUX
 [3.3] C
[4]6月23日
[5]関数は習ってないので、if,while,forなどを使ってお願いします。
よろしくお願いします。
949デフォルトの名無しさん:2008/06/18(水) 21:02:52
>>943
inventory(char *item, double cost, int on_hand)
{
strcpy_s(inventory::item, item);
inventory::cost = cost;
inventory::on_hand = on_hand;
}

inventoryだけを上記のように変更。
namespaceによるローカル変数とメンバ変数の明示を問う問題っぽいけど実務では使うなよ。
950デフォルトの名無しさん:2008/06/18(水) 21:03:11
>>945ありがとうございます。
951デフォルトの名無しさん:2008/06/18(水) 21:09:16
1] 情報プログラミング演習:
[2] 問題文(含コード&リンク):標準入力からのテキストデータ中に現れる単語の出現頻度数つき一覧を出力するプログラムを作成せよ。
[3] 環境
 [3.1] OS: Windous
 [3.2] VC 6.0
 [3.3] 言語: C++
[4] 期限:2008 6月いっぱい
[5] ホントに困っていますのでどの問題でもかまいません
  教えてください
952951:2008/06/18(水) 21:11:21
間違えました
1] 情報プログラミング演習:
[2] 問題1
三角形の底辺の幅、あるいは段数(どちらか一つ)を入力すると、逆三角形を表示する。例えば、底辺5あるいは段数3を入力すると
*****
***
*
となる。

10個以下の任意のn個(データ数は入力)のデータを入力し、逆順に出力する。
実行結果は奇数と偶数個の例を示すこと。


[3] 環境
 [3.1] OS: Windous
 [3.2] VC 6.0
 [3.3] 言語: C++
[4] 期限:2008 6月いっぱい
[5] ホントに困っていますのでどの問題でもかまいません
  教えてください
953951:2008/06/18(水) 21:12:26
間違えました

1] 情報プログラミング演習:
[2] 問題1
三角形の底辺の幅、あるいは段数(どちらか一つ)を入力すると、逆三角形を表示する。例えば、底辺5あるいは段数3を入力すると
*****
***
*
となる。


[3] 環境
 [3.1] OS: Windous
 [3.2] VC 6.0
 [3.3] 言語: C++
[4] 期限:2008 6月いっぱい
[5] ホントに困っていますので教えてください
954デフォルトの名無しさん:2008/06/18(水) 21:12:33
[1] 授業単元:プログラミングT

[2] 問題: http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6959.txt
 [3.1] OS: WindowsXp
 [3.2] コンパイラ名とバージョン:visualstdio 2008
 [3.3] 言語:C
[4] 期限:6月21日
[5] その他の制限:なし。

   よろしくお願いします.
955デフォルトの名無しさん:2008/06/18(水) 21:14:01
>>948
#include <stdio.h>
int main(void)
{
int i, j, n;
scanf("%d", &n);
printf("   ");
for(i=3; i<=n; i++) printf("%2d", i);
putchar('\n');
for(i=2; i<n; i++) {
printf("%2d:", i);
for(j=3; j<=i; j++) printf("  ");
for( ; j<=n; j++) {
int a = i, b = j;
while((a=a%b)!=0) {
b += a;
a = b - a;
b -= a;
}
printf("%2d", b);
}
putchar('\n');
}
return 0;
}
956デフォルトの名無しさん:2008/06/18(水) 21:14:10
そういえば期末の時期だな。
957デフォルトの名無しさん:2008/06/18(水) 21:18:54
>>954
#include <stdio.h>
int main(void)
{
char string[100];
char *p;

gets(string);

p=string;
while(*p!=' ') {
if(*p=='\0') return 0;
p++;
}
p++;
while(*p!='\0'){
putchar(*p);
p++;
}
putchar('\n');
return 0;
}
958デフォルトの名無しさん:2008/06/18(水) 21:19:48
またwindousか
959デフォルトの名無しさん:2008/06/18(水) 21:20:13
>>951
#include<iostream>
#include<string>
#include<map>

int main()
{
std::string tango;
std::map<std::string,int> tango_count;

while(std::cin >> tango)
{
tango_count[tango]++;
}

for(std::map<std::string,int>::iterator n=tango_count.begin();n!=tango_count.end();++n)
{
std::cout << n->first << " : " << n->second << std::endl;
}

return 0;
}
960951:2008/06/18(水) 21:24:50
>>959さん
ありがとうございます。
961デフォルトの名無しさん:2008/06/18(水) 21:26:20
962デフォルトの名無しさん:2008/06/18(水) 21:27:18
>>953
まちるだ
963デフォルトの名無しさん:2008/06/18(水) 21:27:49
[1] 授業単元:プログラム演習
[2]
引数を2つの実数値とし,その2つのうち大きいほうの値を返す関数max()および小さいほうの値を返す関数min()を作成せよ。

[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2008年06月20日まで
[5]

コンパイルできたのですが、正しい値が帰ってきません。
どこがおかしいのか教えてください。
よろしくお願いします。


964デフォルトの名無しさん:2008/06/18(水) 21:28:15


#include<stdio.h>

double max(double a,double b);
double min(double a,double b);

main(){

double x,y,MAX,MIN;
printf("実数を二つ入力してください\n");
scanf("%f",&x);
scanf("%f",&y);
MAX=max(x,y);
MIN=min(x,y);
printf("max=%f\n",MAX);
printf("min=%f\n",MIN);


}

double max(double a,double b){
double z;
if(a<b){z=b;}else{z=a;}
return(z);}

double min(double a,double b){
double z;
if(a<b){z=a;}else{z=b;}
return(z);}

965デフォルトの名無しさん:2008/06/18(水) 21:28:17
>>954
> ただし,文字列の入力には関数 gets を用いること.
ダウト!!!!講師にやめれと抗議すべき
966デフォルトの名無しさん:2008/06/18(水) 21:28:53
[1] 授業単元:暇潰し
[2] 問題文(含コード&リンク):
平面上にn個の点について、それぞれ他の全ての点に対し2点を結ぶ辺を作り、その重みをユークリッドノルムとして計算し、昇順にソートする。
nは10万以上のため、全ての重みをメモリ上で保持してソートするのは現実的でない。現実の計算機上で高速に計算しソートする方法を示せ

[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: g++
 [3.3] 言語: C++
[4] 期限: (無期限]
[5] その他の制限: なし
967デフォルトの名無しさん:2008/06/18(水) 21:33:01
>>966
(n-1)! 個の重みを昇順にソートするって事?
968デフォルトの名無しさん:2008/06/18(水) 21:33:22
#ifdef gets
#undef gets
#endif

#define gets fgets

...
969デフォルトの名無しさん:2008/06/18(水) 21:33:56
>>965
その後の講義でバッファオーバーフローの説明があるのかもしれない
970デフォルトの名無しさん:2008/06/18(水) 21:34:30
>>969
課題で使えと出している時点でダウト
971デフォルトの名無しさん:2008/06/18(水) 21:37:38
>>967
n(n-1)個の辺の重みです。重みは可換ですからn(n-1)/2個で済みますが
972954:2008/06/18(水) 21:46:13
>>957

ありがとうございました<m(__)m>。
973デフォルトの名無しさん:2008/06/18(水) 21:48:40
>>970
そんなもん後から知ればいいこと。
道具の良し悪しよりも道具の使い方を知るタイミングだ
974デフォルトの名無しさん:2008/06/18(水) 21:49:05
>>963
scanf("%f",...); →scanf("%lf",...);
scanf の変換指定%f はfloat型 %lfはdouble型
975デフォルトの名無しさん:2008/06/18(水) 21:52:26
>>973
いちいち客観的にタブーとされているものを擁護するレスがうぜーよ素人
976デフォルトの名無しさん:2008/06/18(水) 21:56:41
玄人ktkr
977デフォルトの名無しさん:2008/06/18(水) 21:57:31
オーバーランについて理解していて、使うことを容認するような意見するか・・・
明らかに考え方がおかしい。敢えて使わせることなんてせず、問題があるなら
それは授業で説明すれば良いこと。問題を起こさせる課題だとしても
万が一生徒のコンピュータにトラブルが起こったら、賠償モンだよw
978デフォルトの名無しさん:2008/06/18(水) 21:59:07
>>974
できました。
ありがとうございます。
979951:2008/06/18(水) 22:02:16
>>962さん
ありがとうございます
980デフォルトの名無しさん:2008/06/18(水) 22:03:28
getsなんて最初からなかったものとして教えなければいいのにな。
scanfのほうがいくらか安全だろう。
981デフォルトの名無しさん:2008/06/18(水) 22:13:42
宿題くらいにしか使えないんだからスルーしてやれ
982デフォルトの名無しさん:2008/06/18(水) 22:15:27
>>975
玄人か。すげえな。
一応俺もプログラムでご飯食べてるけど、まあどんな関数でも
いつobsoluteになるかわからんよね。

がんばってな。応援してるよ。
983デフォルトの名無しさん:2008/06/18(水) 22:18:08
obsolute の検索結果 約 33,900 件中 1 - 10 件目 (0.18 秒)
obsolete の検索結果 約 28,200,000 件中 1 - 10 件目 (0.18 秒)
984デフォルトの名無しさん:2008/06/18(水) 22:18:37
Oberfoot取りイクナイ
985デフォルトの名無しさん:2008/06/18(水) 22:18:39
[1] 授業単元:プログラム演習
[2] int型配列x,yを次のように宣言する。
int x[5]={3,-2,-4,2,3};
int y[7]={1,3,3,-2,3,0,5};
このとき,xおよびyの配列の各要素の合計を返す関数ArraySum()を作成せよ。
なお,xとyとで2つの異なる関数を作る必要はない。

[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2008年06月20日まで
[5]

これも、コンパイルできたのですが、正しい値が帰ってきません。
どこがおかしいのか教えてください。
よろしくお願いします。

986デフォルトの名無しさん:2008/06/18(水) 22:19:06
#include<stdio.h>

int ArraySum(int data[]);

main(){
int x[5]={3,-2,-4,2,3};
int y[7]={1,3,3,-2,3,0,5};

int sumx=ArraySum(x);
int sumy=ArraySum(y);

printf("配列xの合計は%d",sumx);
printf("配列yの合計は%d",sumy);

}

int ArraySum(int data[]){

int i,sum=0;

for(i=0;i<sizeof(data)/sizeof(data[0]);i++){

sum=sum+data[i];
}
return(sum);
}
987デフォルトの名無しさん:2008/06/18(水) 22:21:51
>>986
printf("%d\n", sizeof(data));
を追加してみ
988デフォルトの名無しさん:2008/06/18(水) 22:27:26
>>984
Oberfootの検索結果 1 件中 1 - 1 件目 (0.02 秒)
989デフォルトの名無しさん:2008/06/18(水) 22:29:44
>>984
120でした。
ということは、i<30になってるんでしょうか
990989:2008/06/18(水) 22:30:12
>>987
でした
すいません
991デフォルトの名無しさん:2008/06/18(水) 22:31:46
>>986
int ArraySum(int data[], int size)
{
int i, sum = 0;
for(i=0; i<size; i++) sum += data[i];
return sum;
}

配列を関数に渡すときは、サイズも渡さないと。
992デフォルトの名無しさん:2008/06/18(水) 22:32:59
この予想外の展開に玄人はどう答えるのか楽しみである
993デフォルトの名無しさん:2008/06/18(水) 22:34:07
自分が指摘されると、相手にお前はどうすんだと意見を請うところも
性格が捻くれているのがバレバレ。いちいちそういうこと言うから嫌われるんだよw
おまけに、わけの分からない擁護。勝手な憶測でつじつま合わせにもならん
無駄な戯言を。
994989:2008/06/18(水) 22:35:38
配列を関数に渡してから、サイズを測ることはできますか?。
995デフォルトの名無しさん:2008/06/18(水) 22:35:46
ポインタ一個で120B…ねーよ
996デフォルトの名無しさん:2008/06/18(水) 22:36:03
>>993
謝るくらいなら最初からやんな
997デフォルトの名無しさん:2008/06/18(水) 22:40:59
>>994
できません
998デフォルトの名無しさん:2008/06/18(水) 22:41:16
次スレ
C/C++の宿題を片付けます 110代目
http://pc11.2ch.net/test/read.cgi/tech/1213796455/
999デフォルトの名無しさん:2008/06/18(水) 22:42:29
ttp://jp.youtube.com/watch?v=RIL28wqOQGA
getsの問題点知ってる?知らない?
知らないことあるかー、後で授業で説明するかもしれないだろっ!
お前これどうすんだっ?ん?
1000デフォルトの名無しさん:2008/06/18(水) 22:42:37
>>993
俺はあんたみたいなわけ分からんヤツには何も請うてない。
玄人の意見が聞きたいだけだ。
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。