08/06/08 12:30:56
あなたが解けない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] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
URLリンク(kansai2channeler.hp.infoseek.co.jp)
【C 関数検索 man on WWW】 URLリンク(www.linux.or.jp)
【過去ログ検索】 URLリンク(chomework.sakura.ne.jp)
【wiki】 URLリンク(www23.atwiki.jp)
【前スレ】C/C++の宿題を片付けます 108代目
スレリンク(tech板)
2:デフォルトの名無しさん
08/06/08 19:14:28
[1] 授業単元:
Cプログラミング
[2] 問題文(含コード&リンク):()
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: (Windows/Linux/等々)
linux
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
gcc
[3.3] 言語: (C/C++/どちらでも可 のいずれか)
C
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
明日まで
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
スレが変わったのでもう一度書き込ませていただきます。
明日までなのでどうにかよろしくお願いします。。
3:デフォルトの名無しさん
08/06/08 20:08:35
[1]プログラミング
[2]問題文
int型整数の四乗値を返す関数、int pow4(int x)を作る。
ただし関数sqrを利用すること。
[3-1]windows
[3-2]gcc
[3-3]C言語
[4]明後日まで。
よろしくお願いいたします。
4:デフォルトの名無しさん
08/06/08 20:09:51
>>3
>関数sqr
ここ詳しく
5:デフォルトの名無しさん
08/06/08 20:18:31
[1] 授業単元:Cプログラミング入門
[2] 問題文:間隔1の碁盤目状に格子点が並んでいます。
外径R+1、幅1の円環に含まれる格子点の数nを求めるプログラムを作成しなさい。
なお、格子点が円環の境界上にあった場合、外側境界上の点は含め、内側境界上の点は含めない。
以下に半径R=2の場合を示します。
URLリンク(upp.sakura.ne.jp)
全部で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:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/06/08 20:21:29
>>4
問題文には、二乗値を返すという問題の際にsqrという関数を使ったんですが、この四乗値を返すという問題でもsqrを使えと書いてるんですよね。
8:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/06/08 20:33:28
>>7
int pow4(int x){ return sqr(x)*sqr(x); }
10:デフォルトの名無しさん
08/06/08 20:33:38
>>8
ありがとうございました。
11:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/06/08 20:45:55
Rが整数だとは?
13:デフォルトの名無しさん
08/06/08 20:50:20
>>11
それだと実行時間が半端ねえよ
R=10000 の時
>>8 1[msec]
>>11 625[msec]
14:5 ◆3kDaM44dXs
08/06/08 21:10:06
>>8
すいません、これだと
R=2のときのものしかできないので、
Rを打ち込んでそのときのnを求めるプログラムがほしいのですが…
>>12
整数です。
15:デフォルトの名無しさん
08/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;
}
16:5 ◆3kDaM44dXs
08/06/08 21:35:35
>>15
ありがとうございました。
17:デフォルトの名無しさん
08/06/08 21:47:23
格子点の表示はしなくていいの?
18:5 ◆3kDaM44dXs
08/06/08 21:48:32
>>17
格子点の数nだけでよいです。
ありがとうございます。
19:デフォルトの名無しさん
08/06/08 22:03:53
[1] 授業単元:コンピュータグラフィックス
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:VisualC++6.0
[3.3] 言語: C++
[4] 期限:明日の昼までにお願いします。
[5] その他の制限:元の図をもとに、できるだけ簡単にお願いします。
20:デフォルトの名無しさん
08/06/08 22:04:20
[1] 授業単元:コンピュータ入門
[2] 問題文(含コード&リンク):
たてa,よこbの長方形から半径cの円をできるだけ多く取りなさい
出力:円は何個できましたか?
長方形の何パーセント使いましたか?
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:わかりません
[3.3] 言語: C
[4] 期限:明日中
[5] その他の制限:できるだけ簡単に
お願いします
21:前スレ765
08/06/08 22:06:33
[1] 授業単元:オペレーティングシステム
[2] 問題文(含コード&リンク):forkによる子プロセスの生成
子プロセスを2つ生成して、それぞれに、fork1, fork2 のプログ
ラムを実行させるようなプログラムを作成しなさい。
///fork1.c///
URLリンク(kansai2channeler.hp.infoseek.co.jp)
///fork2.c///
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:6月11日
fork1とfork2は外部プログラムとして呼びます。
よろしくお願いします。
22:デフォルトの名無しさん
08/06/08 23:16:23
[1] 授業単元:アルゴリズム論
[2] 問題文(含コード&リンク):()
安定結婚問題を解くプログラムを実装し実行せよ。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C
[4] 期限: 6/9(月)の13時まで
[5] その他の制限:
過去ログ106を基に組み立ててみたのですが、どうも安定な組合わせが
うまく出力できません。どうかよろしくお願いします> <
URLリンク(kansai2channeler.hp.infoseek.co.jp)
23:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/06/09 01:08:42
>>20
問題文は以上ですか?
その問題文ですべてなら
円はほぼ無限個でき、長方形のほぼ100%を使うことができます。
25:デフォルトの名無しさん
08/06/09 01:12:45
できるわけねーだろ
26:デフォルトの名無しさん
08/06/09 01:13:06
>>24
わかりにくくてすみません
長方形を円でくりぬいていき何個円ができるかという感じでお願いします
>>23
考えてくださってありがとうございます
27: ◆nOwZY.WgD2
08/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:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/06/09 03:45:38
ゴメン、scanfはスペースで区切っちゃうんだった
30: ◆nOwZY.WgD2
08/06/09 04:00:14
>>28
ありがとうございます!
こうやってみるとめっちゃ簡単ですね(;><)
31:デフォルトの名無しさん
08/06/09 04:09:27
gets使ってもいいなら
scanf("%s", str);
↓
gets(str);
にしといてください
32:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/06/09 10:22:30
>>20
ようするにクッキーの生地(長方形)から型(円)を何個とれるか、てこと?
35:20
08/06/09 10:44:00
>>34
そうです
36:デフォルトの名無しさん
08/06/09 12:33:25
>>21
外部プログラムとして動かすのにforkなの?
37:20
08/06/09 12:38:46
どなたか20の解答お願いします!!
38:デフォルトの名無しさん
08/06/09 12:53:25
>>37
難しいです
解法plz
39:デフォルトの名無しさん
08/06/09 13:18:42
むずいね。
しかも今日中か。
40:デフォルトの名無しさん
08/06/09 13:21:42
しかもこれがコンピュータ入門すか。
前回の課題とかせっかくだから載せてもらえる?
できれば作成したソースも。
41:デフォルトの名無しさん
08/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;
}
42:41
08/06/09 13:44:20
>>20
>>41 の訂正
return x*y-y/2;
↓
return x*y-((b-x*2*c<c)?y/2:0);
43:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/06/09 14:01:03
>>44 の == を = に訂正しておいて
46:デフォルトの名無しさん
08/06/09 14:52:14
ここのスレって、意外と勉強になる、、、、
47:デフォルトの名無しさん
08/06/09 14:53:51
>>46
ここも一緒に見てると、C言語に詳しい人があれこれ討論して
て知らないことも詳しくでてきたりするのでいいよ。
C言語なら俺に聞け(入門篇) Part 29
スレリンク(tech板)
48:デフォルトの名無しさん
08/06/09 15:22:34
>>44
ありがとうございます。
あと、聞きたいのですが、xyzに置き換えるのはそのままでアルファベットを任意でprintf,scanfして行う場合は
どのようにプログラムを書いたらいいのでしょうか?
49:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/06/09 16:44:54
リナックスの問題で
1+(1+2)+(1+2+3)+(1+2+3+・・・+n)
二重ループを用いて書いてください。
よろしくお願いします
51:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/06/09 17:15:12
>>51
無事エラーも出ず、例のとおり実行できました。
ありがとうございます。
53:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/06/09 17:33:09
1 + (1 + 2) + (1 + 2 + 3) + ・・・ + (1 + 2 + 3 + ・・・・ + n)
55:デフォルトの名無しさん
08/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:
08/06/09 19:31:20
内容:
[1] 授業単元: c言語
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS:Windows vista
[3.2] コンパイラ名とバージョン:
[3.3] 言語: c
[4] 期限: ([yyyy年mm月dd日hh:mmまで] 今週中に
[5] その他の制限:問題文の部分に書いてます。
57:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/06/09 20:18:12
ん、計算順序おかしいや
total+=(1+i)*i/2;
だね
ついでに
printf("%d",total);
も足しといて
59:デフォルトの名無しさん
08/06/09 20:26:21
問題の指定を守らないのは回答する資格ないから
60:デフォルトの名無しさん
08/06/09 20:53:40
>>20
は壮大な釣りだよ。最密充填はそれほど簡単な問題ではない。
ここ数百年かけてかなり解けるようになってはいるけどね。
多数の数学者の頭脳を持ってしても手こずっている問題だと
推して知るべし。
61:55
08/06/09 20:56:21
失礼しました。
再度お願いいたします。
[1] 授業単元:グラフ理論2
[2] 問題文:
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] 言語:C
[4] 期限:6月11日まで
62:デフォルトの名無しさん
08/06/09 21:20:35
>>60
そこまで大仰なものでもないだろ
63:デフォルトの名無しさん
08/06/09 21:24:52
長方形に円をつめるだけなら簡単。
64:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/06/09 21:29:35
>>60
最適解を求めることができればそれはとてもすごいことだということは
分かるが、自分の思いつく範囲で可能な限りたくさん、というのを
試しているのだと思うよ。
a b がともに2*cよりも大きい
→円は1個でき、(c*c*PI)*100/(a*b) パーセント
という、とても稚拙なものであっても、とりあえず要求は満たされてるんだよ
ということで、>>20にはがんばってもらいたい。
66:デフォルトの名無しさん
08/06/09 21:31:21
getchar; -> getchar(); orz
67:デフォルトの名無しさん
08/06/09 21:34:39
[1] 授業単元:
Cプログラミング
[2] 問題文(含コード&リンク):()
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: (Windows/Linux/等々)
linux
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
gcc
[3.3] 言語: (C/C++/どちらでも可 のいずれか)
C
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
今日中
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
明日以降でも提出はできるのですが、一応期限は今日までなのでよろしくお願いします。
68:デフォルトの名無しさん
08/06/09 21:35:55
>>67
たぶん前スレとかによく似たのがあるよ。
今日中ってのもアレな話だけど、がんばれ。
69:デフォルトの名無しさん
08/06/09 21:40:52
誰も見ていないし更新もされていないだろうwikiにスタック載ってるなw
70:デフォルトの名無しさん
08/06/09 22:07:40
>>41
ありがとうございます!
71:デフォルトの名無しさん
08/06/09 22:08:54
[1] 授業単元:
Cプログラミング
[2] 問題文(含コード&リンク):()
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: (Windows/Linux/等々)
Windows
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
ChSciTE
[3.3] 言語: (C/C++/どちらでも可 のいずれか)
C
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
今日中
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
ファイル読み込み、書き込み
72:デフォルトの名無しさん
08/06/09 22:15:12
>>68
前スレっていうと自分の頼んだ課題かもしれません。前スレでも依頼したので・・
長くて面倒そうだからやってもらえないのかもしれませんが、どうにかよろしくお願いします。。
73:デフォルトの名無しさん
08/06/09 22:32:55
>>71ですが、
コンパイラはBorlandCでもいいです。
74:デフォルトの名無しさん
08/06/09 22:43:09
>>72
スレリンク(tech板:866番)
この人?なら回答してくれてない?
既に依頼済みならあらためてアップロードしてる意味がちょっと
分からないです。しかも必要な内容削られてるし。。。なぜ。。
75:デフォルトの名無しさん
08/06/09 22:45:27
>>74
その通りです。
1つ目の課題はやってもらったのですが、
もう一つの課題が残っていまして・・それが>>67なのです。。
76:74
08/06/09 22:45:59
ちゃんと動いたって報告してるしやっぱり違う人でしょかー。
例題のソースからもコメントがばっさり抜かれてるし、どういうことだろう。
77:67
08/06/09 22:46:15
ちなみに・・長すぎると読むのが面倒かなと思って、短く削ってアップロードし直しました。
78:デフォルトの名無しさん
08/06/09 22:53:22
>短く削って
何を削っていいか判断できるぐらいなら宿題も自分で解けるだろw
79:67
08/06/09 22:58:26
>>78
プログラミング上級者のここのスレの方達だと、例題のコメントや余計な制約は邪魔なだけかなと思って削らせていただきました。
何分実力不足なので、私自身の力では無理です。。力を貸して下さい
80:デフォルトの名無しさん
08/06/09 22:59:57
[1]プログラミング
[2]問題文
画面に「こんにちは」と表示して改行する、void hello(void)関数を作る。
[3-1]windows
[3-2]gcc
[3-3]C言語
[4]明後日まで。
よろしくお願いいたします。
81:デフォルトの名無しさん
08/06/09 23:01:19
>>80
void hello(void)
{
printf("こんにちわ\n");
return;
}
82:デフォルトの名無しさん
08/06/09 23:04:05
>>79
上級者(ってなんだ?)になればコメントが不要になるか?
→必要
制約を無視していいか?
→よくない
ということなんで、素直に
URLリンク(kansai2channeler.hp.infoseek.co.jp)
の課題2をお願いしますって言っとけばよかったのに。
むやみにアップロードして資源を使うこともないよ。
83:67
08/06/09 23:06:06
>>82
そうですね、すいません。余計なことをしてしまいました。。
これからは気をつけます。
84:デフォルトの名無しさん
08/06/10 00:31:55
>>59
回答するつもりも無いならレスする必要(ry
こうですか?わかりません><
この言い方古いのかな
85:デフォルトの名無しさん
08/06/10 00:33:55
>>84
っつーか2重ループの回答あがってるし、
どうでもいい
86:21
08/06/10 01:56:32
>>36
確認しましたが、特に指定はないとのことです…
曖昧な返答で申し訳ありません。どうかよろしくお願いします。
87:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/06/10 02:01:11
>>19お願いします。できれば今日中に・・・
89:デフォルトの名無しさん
08/06/10 02:09:47
>>86
forkを使って、fork1.c fork2.cそれぞれから生成される実行体を
外部プロセスとして呼び出すのですか?
という意図の質問をしてしまったのであれば、前回の課題を実力で
解答したのではないことがばれたかと。
理解しなかったっしょ。もったいない。
90:デフォルトの名無しさん
08/06/10 02:42:29
>>88
アフィン変換とかでぐぐってみればどうだろう。
91:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/06/10 03:52:44
[1] 授業単元:
C言語
[2] 問題文(含コード&リンク):()
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[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:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/06/10 04:43:15
>>95
ありがとうございます
98:デフォルトの名無しさん
08/06/10 04:55:23
while(a!=b) {
while(a > b) a -= b;
a = a + b;
b = a - b;
a = a - b;
}
99:デフォルトの名無しさん
08/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;
}
100:22
08/06/10 05:12:14
結構プログラムを書き換えましたが、以前さっぱりです・・・
いつでもいいので、どうかよろしくお願いします。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
101:デフォルトの名無しさん
08/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; }
102:101
08/06/10 05:45:59
どうして 「backslash n」が消えるんだ???
103:デフォルトの名無しさん
08/06/10 05:57:44
>>102
ソースを貼るのには適さないんだし、行が多い場合はテキストファイルを
ここ用のロダにあげなよw
104:デフォルトの名無しさん
08/06/10 10:17:36
学科の出席簿作成。
15人分の学生を表示し、入力により内容を変動させる。
表示順番:出席表
<入力>学生番号0~14
<入力>曜日番号0~6
<入力>時限番号0~3
<入力>出欠番号0~1
<入力>学生番号0~14の時に99を入力するとプログラム終了。
105:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/06/10 12:05:18
>>101
forkしてexecか。なる。
出題者じゃないが勉強になった。
107:デフォルトの名無しさん
08/06/10 12:20:46
そういう事柄に関しては
小耳に挟んだ
ということと
勉強になったということは
根本的に違うということは区別しようね。
108:デフォルトの名無しさん
08/06/10 12:28:22
それにして、インデントがないと、ソースが読みにくい(><)
109:デフォルトの名無しさん
08/06/10 12:33:35
まあ手元ソース書く場合はメモ帳とか使うんだろうからせめて
TAB1個->全角スペース3個とかで置換かけてから投下しようよw
それがあれならアップローダーにあげるとかさ・・・
110:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/06/10 12:53:24
>>109
全角はねーよw
112:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/06/10 13:08:44
そういうオープンな問題が出るわきゃないだろ
出した講師か教師が糞
2^2^1024-1が素数かも判定しなきゃならなくなる罠
115:ルート
08/06/10 13:11:11
[1] 授業単元: プログラミング C言語
[2] 問題文(含コード&リンク): 【課題】
BMPファイルを読み込み、以下の処理を行って下さい。
①2値化(白黒画像) 閾値は指定できること
②ディザ法による2値化
③誤差拡散法による2値化
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: VC++
[3.3] 言語: C
[4] 期限: ~6月13日0:00
[5] その他の制限: 無い
116:デフォルトの名無しさん
08/06/10 13:12:25
なんか、ここを見てるとプログラミングを嫌いにさせたいのか
と思うような出題内容が多いよな。
まあIT業界は悲惨なので学生時代に嫌いにさせておいて
就職口から外す講師の親心なのかもしれないけどw
ってそれはねーかw
117:デフォルトの名無しさん
08/06/10 13:18:15
口だけクンががんばってるなw
118:デフォルトの名無しさん
08/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] その他の制限: なし
②
[1] 授業単元: C++
[2] 問題文 直角三角形の表示を行うフローチャートは左下が直角の直角三角形を表示するプログラムであった。直角が左上側、右上側、右下側の三角形を表示するプログラムをそれぞれ作成せよ。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc 3.4
[3.3] 言語: C++
[4] 期限: 6月17日
[5] その他の制限: なし
お願いします。
119:デフォルトの名無しさん
08/06/10 13:24:22
書くだけクンが大きなこと言えるのかなw
120:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/06/10 13:32:01
2以上の素数を入力して下さい 15
15は素数です
122:デフォルトの名無しさん
08/06/10 13:32:56
ミスった
i+=2 → i++
123:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/06/10 13:44:20
2以上の素数を入力して下さい:2
2は素数ではありません
125:デフォルトの名無しさん
08/06/10 13:50:00
>>124
バカ発見
126:デフォルトの名無しさん
08/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] その他の制限: ポインタを使う
127:110
08/06/10 14:10:22
>>113ありがとうございます
128:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/06/10 14:31:41
>>128
正しく実行できません。
130:デフォルトの名無しさん
08/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
131:130
08/06/10 14:39:26
おかしかったら自分でなんとかして。
結構、初心者向けに書いたつもりなので
132:20
08/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:デフォルトの名無しさん
08/06/10 15:38:36
[1] 授業単元:
Cプログラミング
[2] 問題文(含コード&リンク):()
URLリンク(kansai2channeler.hp.infoseek.co.jp)
の課題2をお願いします
[3] 環境
[3.1] OS: (Windows/Linux/等々)
linux
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
gcc
[3.3] 言語: (C/C++/どちらでも可 のいずれか)
C
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
明後日
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
特にありません
134:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/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:ルート
08/06/10 16:02:29
>>115 よろしくおねがいします
137:デフォルトの名無しさん
08/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] その他の制限:なし
お願いします
138:21
08/06/10 16:07:41
>>101
ありがとうございました。
来週テストということもあり、前回のプログラムも含めて復習してみます。
本当にありがとうございました。
139:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/06/10 17:44:25
>>133
一応動くけど初心者なので責任は取れない
暇な人は添削を m( __ __ )m
URLリンク(kansai2channeler.hp.infoseek.co.jp)
145:デフォルトの名無しさん
08/06/10 17:50:27
あ、include載せ忘れてる。
ま、いっか。
それくらい自分でなんとなしてくれ。
146:デフォルトの名無しさん
08/06/10 18:15:56
>>141
main関数のみでお願いします。
せっかくやってもらった立場でそうと言いにくい
>>134に代わって御願いします
147:デフォルトの名無しさん
08/06/10 18:40:06
>>144
ほんとありがたいです。ありがとうございました!
148:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/06/10 19:34:18
>>148 様
ありがとうございます
150:デフォルトの名無しさん
08/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] その他の制限:このプログラムを基にお願いします。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
151:デフォルトの名無しさん
08/06/10 19:44:42
>>150
ワロタw
152:デフォルトの名無しさん
08/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] その他の制限:このプログラムを基にお願いします。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
153:デフォルトの名無しさん
08/06/10 19:45:35
盛大な釣りですね
154:デフォルトの名無しさん
08/06/10 19:49:42
[1]プログラミング
[2]問題文
警報をno回鳴らす関数void alart(int no)をメイン文も含め作る。
[3-1]windows
[3-2]gcc
[3-3]C言語
[4]明後日まで。
よろしくお願いいたします。
155:デフォルトの名無しさん
08/06/10 20:12:43
>>150 >>152 です
すみません><
156:Ctrl+Gがどうしようもないや
08/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:デフォルトの名無しさん
08/06/10 20:31:48
[1] 授業単元:プログラミング演習
[2] 問題: URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3.1] OS: WindowsXp
[3.2] コンパイラ名とバージョン:visualstdio 2008
[3.3] 言語:C++
[4] 期限:6月13日
[5] その他の制限:なし。
よろしくお願いします.
158:scanfの戻り値に自信なし
08/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:デフォルトの名無しさん
08/06/10 20:51:19
自信ないのに意味不明なコード書くのはバカ
160:デフォルトの名無しさん
08/06/10 20:52:08
コード書かないのはバカですね
分かります
161:デフォルトの名無しさん
08/06/10 20:54:17
man よめよ
162:158
08/06/10 20:56:36
やべぇ
否定し忘れてる!!
if(!ret){
だ
>>159
あ?しねよ
scanfの戻り値なんか見たことないだろ
163:デフォルトの名無しさん
08/06/10 20:58:43
私のためにケンカしないで><
164:デフォルトの名無しさん
08/06/10 21:01:18
/*ここまで俺の自演*/
165:デフォルトの名無しさん
08/06/10 21:07:16
[1] 授業単元: プログラミング C言語
[2] 問題文(含コード&リンク)課題:
ファイル"test.txt"から文字列を読み込み、並びを逆にしてファイル"sample.txt"に出力するプログラムを作成せよ。
[3] 環境
コンパイラ名とバージョン:Microsoft Visual Studio 2005
言語: C
[4] 期限: ~6月11日
[5] その他の制限: ポインタを使う
166:デフォルトの名無しさん
08/06/10 21:08:22
>>165
ファイルポインタじゃ、ダメだった?
167:デフォルトの名無しさん
08/06/10 21:11:41
ここは、使えないPGを育成するスレですか?
といてもらって、お礼もいわんとは
168:デフォルトの名無しさん
08/06/10 21:14:55
>>167
あえて言おう
ここは2ちゃんねる
久しぶりに言った
169:デフォルトの名無しさん
08/06/10 21:16:33
同じ質問を再度行う場合も非常に見にくいことが多い。
前回依頼時へのポインタを示してくれればそこからいろいろたどれるのに。
具体的には>>165が>>126へ貼ってくれさえいればダメだったらしい
回答であるところの>>130がすぐ見れたわけだ。
もう少し考えていただければと思う。
170:デフォルトの名無しさん
08/06/10 21:17:15
釣られてどうする
171:デフォルトの名無しさん
08/06/10 21:17:53
>>166
ファイルポインタは大丈夫みたいなんですが、
while ((c = getc(in)) != EOF)
などが上手く動作しないみたいで困ってます。
172:デフォルトの名無しさん
08/06/10 21:19:45
>>171
>while ((c = getc(in)) != EOF)
~~~~~
fgetcじゃなくて?
173:デフォルトの名無しさん
08/06/10 21:19:54
>>169
次からそうします。
失礼しました。
174:デフォルトの名無しさん
08/06/10 21:20:10
質問者は名前欄にレス番号を記入すべきだとも思う。
175:デフォルトの名無しさん
08/06/10 21:26:29
>>172
fgetcです。
文字列の書き込みや出力の部分がとんで動作しているみたぃです。
176:デフォルトの名無しさん
08/06/10 21:33:15
>>157
気づけば大元のソースが見る影もなくなっていた
URLリンク(kansai2channeler.hp.infoseek.co.jp)
177:デフォルトの名無しさん
08/06/10 21:33:34
test.txtの置き場所間違ってないか?
178:157
08/06/10 21:37:51
>>176
ありがとうございます。
179:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/06/10 22:27:58
さぁ、逆さ文字をコマンドプロンプトに表示できる勇者は現れるか?
バナーならなんとかできるか?
181:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/06/10 22:38:48
毎度のことで申し訳ありません。7行目の' 'と13行目の" "の中身はbackslash nです。
183:デフォルトの名無しさん
08/06/10 22:42:06
ちゃんと\見えてるわけだが、お前は何を使って見てるんだ。
184:デフォルトの名無しさん
08/06/10 22:44:22
>>183
>>180
>>174
>>167
こいつバカじゃね?いい加減うぜぇな。無駄口叩く奴って
本当に役に立たないクズだよなw
185:デフォルトの名無しさん
08/06/10 22:45:19
>>184
おまえもな
186:デフォルトの名無しさん
08/06/10 22:45:37
74です。
187:181
08/06/10 22:48:41
あ、問題文全然読んでませんでした。誰か函数化してください。
188:デフォルトの名無しさん
08/06/10 23:02:10
>>185
はぁ?バカは四の五の言ってねーでソース書けよw
そのレスに反論するのは、指摘された本人だろ?
他は黙ってソース書いてんだよ、ボケが
189:デフォルトの名無しさん
08/06/10 23:03:20
>>162
>>160
これもうぜーなぁ。バカは口閉じてろよ、あっキーボードを打つ指を
休めているか、タイピングできないように切断しとけば?w
190:デフォルトの名無しさん
08/06/10 23:10:10
>>184
おまいさんが酉つけてガンガン回答してくれたら納得しとくわ。
191:デフォルトの名無しさん
08/06/10 23:17:36
>>189
僕ちゃんは、宿題を教えてもらえなかったのかな?
192:デフォルトの名無しさん
08/06/10 23:26:47
逆にたとえば俺が酉つけてたら回答も提言もそして暴言も割と
あるわけだが、それはそれでちょっとやだなあ
193:デフォルトの名無しさん
08/06/10 23:57:39
コテや酉つきの回答者のウザさは異常
194:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/06/11 00:30:24
>>165
の問題を教えてください
196:デフォルトの名無しさん
08/06/11 00:32:41
>>193
そんなこと関係なくウザイ奴は一生ウザイ。
言動や行動に性格、人間性が露呈していることに気づかず
指摘されると指摘してきた奴を執拗に罵倒して自分を正当化できると
勘違いしているから、その他の周りからも嫌われているって気づいてないんだよ
197:デフォルトの名無しさん
08/06/11 00:39:56
>>196
自己紹介乙w
198:179
08/06/11 00:42:39
>>194
回答ありがとうございます!
ただ、
7行目の while(p-- > str)
13行目の char str[256];
の意味がよくわからないのですが、よかったら説明いただけないでしょうか。
199:デフォルトの名無しさん
08/06/11 00:44:04
>>195
128や130のどこが気に入らないのか具体的に。
もしかして一行文字列読み込む度にそれを逆順にするとか?
200:デフォルトの名無しさん
08/06/11 00:47:49
[1] 授業単元:ソフトウェア演習2
[2]問題文・コード
リンク URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: Windows vista
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語:C
[4] 期限: 2008年6月12日14:30まで
[5] その他の制限:標準ライブラリに関しての制限はありませんが、一応malloc以外は使わない方針です。一方向連結リストの削除、挿入がこの単元の狙いなので双方向リストは使えません。
よろしくお願いします。
201:デフォルトの名無しさん
08/06/11 00:50:50
>>198
char str[256]は単に配列。
strは変数名で特別な意味があるわけじゃない。
while(p-- > str) は
while(p > str) {
p--;
と同じこと。
pは最初文字列終端の'\0'のアドレスになってるからそこから一文字分前に移動する。
そこから順番に一文字ずつ前に移動して表示、
最後はp[0](元の文字列の先頭)を表示してループから抜ける。
202:デフォルトの名無しさん
08/06/11 00:57:57
>>199
すいません少し待ってください。
203:200
08/06/11 00:58:35
すいません。リンクこっちに替えときます。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
204:デフォルトの名無しさん
08/06/11 00:58:43
193 名前:デフォルトの名無しさん 投稿日:2008/06/10(火) 23:57:39
コテや酉つきの回答者のウザさは異常
↑いちいち自分の不満をたらたら漏らす、場違い野郎がうざいんだが。
自己紹介って返す奴は、自分の素性をどんぴしゃで当てられて
必死になっているのを隠さずにはいられないくらい動揺している証拠。
205:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/06/11 01:49:24
型変換あるんだから蛇足だろ
208:デフォルトの名無しさん
08/06/11 02:08:29
>>128
>>130
>>199
>>205
わかりました。 ありがとうございました。
209:デフォルトの名無しさん
08/06/11 02:10:22
>>207
知ったか無知を露呈しなくて良いぞ、ろくにソースも書かずに
無駄口を叩くバカは。ちなみに、蛇足でもないから。
たまたま問題の無い例を用いて否定すると、墓穴掘るぞ。
210:デフォルトの名無しさん
08/06/11 02:27:28
他人のソースにいらんもんを付け足すほうがアホだろ。
211:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/06/11 02:47:43
>>210
動いているものには触るなっていうタイプですか?
リファクタリングとか理解できない人に多いよね。
213:デフォルトの名無しさん
08/06/11 03:18:40
>>206
sizeof(char)が必ず1でも、省略すべきではない
スレリンク(tech板)
ぜひ止まったこのスレを盛り上げてくれw
214:デフォルトの名無しさん
08/06/11 05:25:00
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
1!~53!の階乗値を右揃えで出力せよ。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 明日正午まで
[5] その他の制限: 各機能(計算処理や出力等)毎に関数に分ける事。
助けてください。お願いします。
215:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/06/11 05:59:16
>>214
URLリンク(kansai2channeler.hp.infoseek.co.jp)
217:デフォルトの名無しさん
08/06/11 07:09:27
暇すぎるw
218:デフォルトの名無しさん
08/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:ルート
08/06/11 10:19:05
>>115 おねがいしますm(__)m
220:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/06/11 13:28:56
>>115
2値化
URLリンク(hooktail.org)
ディザ法
URLリンク(hooktail.org)
誤差拡散法
URLリンク(hooktail.org)
ソースもついてる
223:ルート
08/06/11 13:40:05
>>222 ありがとうございます
224:デフォルトの名無しさん
08/06/11 14:38:06
[1] C言語実習
[2] test.txtから文字列を読み込み、
大文字だけを画面に表示するプログラムを作成せよ。
[3]
[3.1] Windows
[3.2] cisual stadio .NET2003
[3.3] 言語:C
[4] 期限:今日中
全くの初心者なので、なるべく簡単なコードで
お願いします。
225:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/06/11 15:14:02
>>221
カレントディレクトリ
228:デフォルトの名無しさん
08/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] その他の制限:このプログラムを基にお願いします。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
229:224です
08/06/11 16:00:00
>>226
ありがとうございます
230:デフォルトの名無しさん
08/06/11 16:32:44
[1] 授業単元:コンピュータプログラミング
[2] 問題文(含コード&リンク):
次のプログラムは整数x,yを読み込み、その
和、差、積、商、剰余を出力するプログラム
である。このプログラムでは共通変数を用い
関数間の値の受渡しをしているが、これを全
て引数で値の受渡しをするように変更せよ。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2008年06月11日まで
[5] その他の制限:このプログラムを基にお願いします。
よろしくお願いします
231:デフォルトの名無しさん
08/06/11 16:42:47
【質問テンプレ】
[1] 授業単元:C言語演習1
[2] 問題文
URLリンク(kansai2channeler.hp.infoseek.co.jp)
上記をもとに親プロセスがキーボードから入力した行をパイプで
子プロセスに標準出力ファイルとして送り、子プロセスは標準入力から受けとってスクリーンに
エコーバックするようなプログラムを作れ。
ヒント: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:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/06/11 17:38:20
初めまして。
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
テキストファイルに保存された改行で区切られた整数を読み込んで、
その平均値を計算し、結果をファイルに保存することのできるプログラムを作成せよ。
データ数は最大1000個まで計算できるようにする。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:C
[3.3] 言語:C言語
[4] 期限:2008年06月12日まで
さっぱりわかりませんでした。宜しくお願いします。
235:デフォルトの名無しさん
08/06/11 17:43:14
1] 授業単元: 計算機システム
[2] 問題文(含コード&リンク):
URLリンク(kansai2channeler.hp.infoseek.co.jp)
上記を元に,システムコール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:デフォルトの名無しさん
08/06/11 18:02:15
>>232ありがとうございます
237:デフォルトの名無しさん
08/06/11 18:11:00
>>234
URLリンク(kansai2channeler.hp.infoseek.co.jp)
238:デフォルトの名無しさん
08/06/11 18:11:34
>>237 は取り消し。早とちりしとった・・・
239:デフォルトの名無しさん
08/06/11 18:13:05
[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク):()
クイックソートにより配列をソートするプログラムを作れ
URLリンク(www2.uploda.org)
ネットを参考に書いたのですが、中途半端にしかソートされません
どこが違うのか指摘お願いします
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2008/6/3まで
[5] その他の制限: とくになし
240:デフォルトの名無しさん
08/06/11 18:13:52
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2008年06月12日18:00
[5] その他の制限:ポインタまで学習済み
241:デフォルトの名無しさん
08/06/11 18:19:03
>>234
URLリンク(kansai2channeler.hp.infoseek.co.jp)
242:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/06/11 18:21:16
[1] 授業単元:プログラム実習
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS:windowsXP
[3.2] コンパイラ名とバージョン: VC6.0
[3.3] 言語: C++
[4] 期限:なし
[5] その他の制限:なし
問題文はソースの上に記しています
244:デフォルトの名無しさん
08/06/11 18:22:29
>>242
一々平均計算しなおすのはどうかと思うぜ。
245:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/06/11 19:56:19
>>243
URLリンク(kansai2channeler.hp.infoseek.co.jp)
250:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/06/11 20:07:08
うpロダ使え
253:デフォルトの名無しさん
08/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)
数式の記述はこちらのほうが見やすかったです
URLリンク(mikilab.doshisha.ac.jp)
[3] 環境
[3.1] OS: CentOS5.0
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限:6/14
[5] その他の制限: 特になし
使っている画像の種類はpgmです。
よろしくお願いいたします。
254:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/06/11 21:37:40
>>245
URLリンク(kansai2channeler.hp.infoseek.co.jp)
10進数をn進数に変換するのみ。10進数以外は適当に
一度10進数にしてから変換し直す仕組みでも作って下さい ><;
256:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/06/11 21:52:03
>>256
できました
ありがとうございました。
259:デフォルトの名無しさん
08/06/11 21:52:13
[1] 授業単元: 画像処理
[2] 問題文(含コード&リンク)課題:URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:Microsoft Visual Studio 2005
[3.3] 言語: C
[4] 期限: 6月13日
[5] その他の制限: 特に無し
初歩的なことかも知れませんが
どうかよろしくお願いします
260:257
08/06/11 21:54:11
間違えました……
閏年については以下のプログラムを使うこと→うるう年は以下の関数で判定すること
261:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/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:デフォルトの名無しさん
08/06/11 22:43:54
マジでうpロダ使え・・・
264:デフォルトの名無しさん
08/06/11 22:50:24
>>261
携帯からなんで1のヒントだけ
switch((a>b)+(b>c)*2+(c>a)*4)
265:デフォルトの名無しさん
08/06/11 22:55:45
>>257
URLリンク(kansai2channeler.hp.infoseek.co.jp)
266:デフォルトの名無しさん
08/06/11 22:59:53
>>260 >>257
return (year % 4 == 0 && year % 100 != 0 || year % 400 = 0);
明らかに括弧の位置と、 year%400 == 0 の部分が間違っているんで訂正
267:261
08/06/11 23:21:54
>>264
switchの中がそんな事に・・・どうなるのか見当がつかないです
268:デフォルトの名無しさん
08/06/11 23:30:22
>>259
画像処理のことはあまりわからんので、ちょっと質問。
・グレースケールの画像を使うと書いてあるが、読み込んだRGBの値がバラバラの場合、輝度はRGBの平均値でおk?
・ヒストグラムの形式は何でもいい?例えば、N=8だったらこんな感じ?
0: *****
32: ************
64: *******
96: ********************
128: ***************************
160: ***************
192: ****
224: **
269:デフォルトの名無しさん
08/06/11 23:41:30
[1] 授業単元:プログラミング基礎
[2] 5人の学生の3教科(国語・数学・英語)の点数を2次元配列を用いて次の二つ
の処理を実行するプログラムを作成せよ
①科目別の最高点を求める
②各学生の平均点を求める
[3] 環境
[3.1] OS:Windows vista
[3.2] コンパイラ名とバージョン: borland5.5.1
[3.3] 言語:C
[4] 期限: 2008年6月12日中
[5] その他の制限: 特になし
よろしくお願いします
270:デフォルトの名無しさん
08/06/11 23:56:27
>>268
自分がいまいちわかってないので自信がないのですが
グレースケール画像の各成分の輝度値を量子化する以外は
平均値をとるなどの指示はないです。
ヒストグラムの方は後でエクセルで処理をするので
値をテキストファイルに保存できればいいです。
271:デフォルトの名無しさん
08/06/12 00:05:02
>>253
pgm形式、rawとascii、2つのモードがあるですが。両方対応ですか?
272:257
08/06/12 00:13:26
>>265 >>266
こんなに早くしてくれるとは
マジで助かりました
ありがとうございます
273:デフォルトの名無しさん
08/06/12 00:43:55
>>269
URLリンク(kansai2channeler.hp.infoseek.co.jp)
エラーチェックもしてないし
終了もしてないけどおやすみなさい。
274:デフォルトの名無しさん
08/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しておきます。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
よろしくお願いします。
275:デフォルトの名無しさん
08/06/12 00:54:05
レスが遅れて申し訳ございません
前スレの
スレリンク(tech板:753-756番)
有り難う御座いました
勉強させて頂きます