C/C++の宿題を片付けます 102代目
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2008/01/05(土) 15:48:48【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
・問題文は、出題されたまま全文を書いてください。
・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう.
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはやめましょう。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。
【質問テンプレ】
[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++の宿題を片付けます 101代目
http://pc11.2ch.net/test/read.cgi/tech/1197132472/
0002デフォルトの名無しさん
2008/01/05(土) 15:52:270003デフォルトの名無しさん
2008/01/05(土) 15:54:050004デフォルトの名無しさん
2008/01/05(土) 16:03:09[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):西暦を入力するとその年の祝日一覧を表示するプログラムを作れ
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:c
[4] 期限:2008年1月8日
[5] その他の制限:いかにも初心者が組みましたっぽいのをお願いします
0005デフォルトの名無しさん
2008/01/05(土) 16:13:24構造体、ポインタ、自作関数などはナシ?
00064
2008/01/05(土) 16:30:41それらはありで大丈夫です
書き忘れましたが、祝日名もおねがいします
振り替え休日は考慮しなくてもよいです
0007デフォルトの名無しさん
2008/01/05(土) 16:37:540008デフォルトの名無しさん
2008/01/05(土) 16:39:290009デフォルトの名無しさん
2008/01/05(土) 16:44:01ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5627.txt
コンパイラも通してないけどな
表示可の年の祝日を書いたテキストファイルを用意して、引数に年をいれればOK
ファイル名は[年].dat (例:2008.dat)な
0010デフォルトの名無しさん
2008/01/05(土) 17:03:34[2] 問題文: http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5628.txt
[3] 環境
[3.1] XP
[3.2] コンパイラ名とバージョン: visual studio 2005
[3.3] 言語: C言語
[4] 期限: 1/7
[5] その他の制限:特に無いです
0011デフォルトの名無しさん
2008/01/05(土) 17:17:09aichi_yubin.txtの書式教えて
0012デフォルトの名無しさん
2008/01/05(土) 17:28:22> fflush(stdin);
ってどうよ?
0013デフォルトの名無しさん
2008/01/05(土) 17:33:48[2] 問題文:http://www.nlab.sogo1.ynu.ac.jp/ynu/lecture/ibt1/2007report.pdf の奇数番号問題
[3] 環境
[3.1] OS:xp,linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C言語
[4] 期限:2008年1月9日
[5] その他の制限:特にないです
0014デフォルトの名無しさん
2008/01/05(土) 18:05:11I'm not >>10
普通じゃね?ってかscanf使うなっていいたくはなるけど・・・
%*s(だっけ?)とか入れてもいいんだろうけど
0015デフォルトの名無しさん
2008/01/05(土) 18:45:070016デフォルトの名無しさん
2008/01/05(土) 18:56:32[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5633.txt
data file
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5632.txt
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2008/01/08
[5] その他の制限:初心者です
0017デフォルトの名無しさん
2008/01/05(土) 19:40:25[2] 問題文
以下のpoint構造体について、
プログラム中で扱える点の数を可変にしたい。
実行時にキーボードから点の数を入力し、それにより動的に構造体の配列を確保するプログラムを作成せよ。
確保後、全ての座標値を0.0で初期化し、その結果を表示せよ。
最後に確保した領域を解放するのを忘れずに!
typedef struct {
double x;
double y;
} point;
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2008/01/08
[5] その他の制限:
0018デフォルトの名無しさん
2008/01/05(土) 19:50:07[2] 問題文
N x 3の行列を動的
に確保し、2つの行列の和を表示するプログラムを作成せよ。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2008/01/08
[5] その他の制限:
0019デフォルトの名無しさん
2008/01/05(土) 22:44:35前スレの最後の方で教えて頂いた分で質問をさせてください
my_sort(argc - 1, argv + 1);
ここの部分で、-1と、+1にしないと実際にも動かないんですが、なぜですか?
ここを-1、+1にしないといけない理由がわからないので教えてください
0020デフォルトの名無しさん
2008/01/05(土) 22:58:35コマンドライン引数の一つ目は実行しているプログラムのパスが入る。
なので実際には2つ目から使うことになるので+1する
引数の数はプログラムのパス以外の数なので-1する。
わかんなかったらコマンドライン引数全部出力して見るべし。
0021デフォルトの名無しさん
2008/01/05(土) 23:17:27ありがとうございます!!
0022デフォルトの名無しさん
2008/01/06(日) 00:13:27[2] 問題文: http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5634.txt
[3] 環境
[3.1] Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C++
[4] 期限: 1/8
[5] その他の制限:特に無いです
よろしくお願いします
0023デフォルトの名無しさん
2008/01/06(日) 00:13:38テキスト ドキュメント (.txt)です。
0024デフォルトの名無しさん
2008/01/06(日) 00:18:010025デフォルトの名無しさん
2008/01/06(日) 00:20:50お前の説明能力がいかに凄いものかわかった気がする。
0026デフォルトの名無しさん
2008/01/06(日) 00:29:30スレの残り宿題をまとめる事にするわ。 よろしく。
解答が一つでもあって、返答も無いやつは満足したと見なす方向で。
【未解決問題】
>>10 1/7
>>13 1/9
>>16 1/8
>>17 1/8
>>18 1/8
>>22 1/8
0027デフォルトの名無しさん
2008/01/06(日) 00:35:520028 ◆7jGtaEUa1U
2008/01/06(日) 02:17:01[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5635.txt
[3] 環境
[3.1] OS:Linux
[3.3] 言語:C
[4] 期限:2008年01月07日00:30まで
[5] その他の制限:
宜しくお願いします。
0029デフォルトの名無しさん
2008/01/06(日) 03:34:05[2] 問題文:ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5636.txt
[3] 環境
[3.1] OS:XPpro
[3.2] gcc
[3.3] 言語: C++
[4] 期限:1月8日
宜しくお願いします
0030デフォルトの名無しさん
2008/01/06(日) 03:44:57課題1
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{
int i, j, k, a[10][10];
srand(time(NULL));
for(i=0; i<100; i++) {
j = rand() % (i + 1);
a[i/10][i%10] = a[j/10][j%10];
a[j/10][j%10] = i + 1;
}
for(i=0; i<10; i++) {
for(j=1; j<10; j++) {
for(k=j; k>0 && a[i][k] < a[i][k-1]; k--) {
int temp = a[i][k];
a[i][k] = a[i][k-1];
a[i][k-1] = temp;
}
}
}
for(i=0; i<10; i++) {
for(j=0; j<10; j++) printf("%4d", a[i][j]);
putchar('\n');
}
return 0;
}
0031デフォルトの名無しさん
2008/01/06(日) 04:23:06http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5637.c
0032デフォルトの名無しさん
2008/01/06(日) 04:33:19お願いします
0033デフォルトの名無しさん
2008/01/06(日) 04:42:30>>1
0034デフォルトの名無しさん
2008/01/06(日) 07:11:06#include <sstream>
#include <string>
#include <iostream>
#include <cassert>
template <typename T1, typename T2>
T1 hexadecimal_cast(T2 dec) {
std::stringstream stream;
stream << std::hex << dec;
T1 result;
stream >> result;
return result;
}
int main() {
assert("80" == hexadecimal_cast<std::string>(128));
}
0035デフォルトの名無しさん
2008/01/06(日) 09:08:14課題3
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5640.zip
どういう出力がいいのか分からなかったから、気に入らん所は自分で修正して。
0036デフォルトの名無しさん
2008/01/06(日) 09:09:03http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5639.txt
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5641.txt
aichi_yubin.txtのフォーマットはこっちで勝手に定義。
003735
2008/01/06(日) 09:11:59すまん、メモリ解放し忘れてるわ
main関数のreturn前に
free(stemp.ave);
free(stemp.max);
free(stemp.min);
を追加してください。
0038デフォルトの名無しさん
2008/01/06(日) 09:25:26for(j=0;j<n-5;++j){ /* 変更 */
sumx = sumy = sumxy = sumx2 = 0; /* 付け足し */
for(i=j;i<j+5;++i){
sumx +=x[i];
sumy +=y[i];
sumxy+=x[i]*y[i];
sumx2+=x[i]*x[i];
}
// printf("%lf %lf %lf %lf - ",sumx,sumy,sumxy,sumx2);
a=(5.0*sumxy-sumx*sumy)/(5.0*sumx2-sumx*sumx);
b=(sumx2*sumy-sumxy*sumx)/(5.0*sumx2-sumx*sumx);
printf("a=%f b=%f\n",a,b);
}
とりあえずexcelで5ずつズラしながら線形近似の数式みてあってるっぽかったんで。
0039デフォルトの名無しさん
2008/01/06(日) 09:52:520040jtetyky
2008/01/06(日) 11:43:25[2] 問題文
1、こちらで用意した暗号化ファイルlast_report.txtを読みで、
% ./a.out last_report.txt
と実行することにより、暗号を複合化した内容を書き出したファイル
decode.txtを作成するプログラムを作りなさい。
2、複合化のときは通常ずらした通常ずらした文字数を
あらかじめ知ることはできないので、1から25文字だけ
ずらしてできた文章を書き出しなさい。
3、複合化する部分は関数化しなさい。ただし、関数は
void Decording (unsigned char *cript, unsigned char *plain,
unsigned char shift)という型とし、criptは複合化前の文字列の
ポインタ、plainは複合化後の文字列のポインタ、shiftはずらした
文字の数である。
4、実行結果としてこちらが用意した暗号ファイルlast_report.txtを
複合化したものを載せなさい。
[3] 環境
[3.1] OS:Linux 2.4
[3.3] 言語:C
[4] 期限:2008年01月07日
[5] その他の制限:
last_report.txtのファイルの文章は
cuhho sxhyijcqi qdt xqffo dum oughです。
0041デフォルトの名無しさん
2008/01/06(日) 11:57:52[2] 問題文: http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5642.txt
[3] 環境
[3.1] XP
[3.2] コンパイラ名とバージョン: visual studio6.0
[3.3] 言語: C++
[4] 期限: 1/8
[5] その他の制限:関数は作らない
よろしくおねがいします
0042デフォルトの名無しさん
2008/01/06(日) 12:48:31コンパイルできませんでした・・
0043デフォルトの名無しさん
2008/01/06(日) 13:17:22[2] 問題文:以下の行列A,PにおいてtPAPを計算するプログラム。(tPはPの行列式の行と列を入れ換えたものです。)
|2 1 1| |1/√2 1/√6 1/√3|
A=|1 2 1| P=|-1/√2 1/√6 1/√3|
|1 1 2| |0 -2/√6 1/√3|
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: [2008年1月7日14:00まで]
[5] その他の制限:関数を使ってください
よろしくお願いします。
0044デフォルトの名無しさん
2008/01/06(日) 13:18:56[2] 問題文:以下の行列A,PにおいてtPAPを計算するプログラム。(tPはPの行列式の行と列を入れ換えたものです。)
|2 1 1| |1/√2 1/√6 1/√3|
A=|1 2 1| P=|-1/√2 1/√6 1/√3|
|1 1 2| |0 -2/√6 1/√3|
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: [2008年1月7日14:00まで]
[5] その他の制限:関数を使ってください
よろしくお願いします。
0046デフォルトの名無しさん
2008/01/06(日) 13:30:55ありがとうございました
0047デフォルトの名無しさん
2008/01/06(日) 13:43:13http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5643.c
特に指定がなかったから、ファイルは一行&1024字にしか対応させてない。
0048デフォルトの名無しさん
2008/01/06(日) 13:51:38先生ーーーーーーーーーー!!!!
cryptはcriptになってるし、つっこみどころ多すぎだなw
0049デフォルトの名無しさん
2008/01/06(日) 14:01:55わざとかも知れんぞ。
0050デフォルトの名無しさん
2008/01/06(日) 14:03:29容易なものをおねがいします。
0051デフォルトの名無しさん
2008/01/06(日) 14:04:040052デフォルトの名無しさん
2008/01/06(日) 14:07:00ヒント:ちゃんとエラー文をここにかけ
>>50
http://pc11.2ch.net/test/read.cgi/tech/1197132472/985
0053デフォルトの名無しさん
2008/01/06(日) 14:08:52わかりやすいものをお願いします
0054デフォルトの名無しさん
2008/01/06(日) 14:09:51【質問テンプレ】
[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] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
0055デフォルトの名無しさん
2008/01/06(日) 14:10:16#include <stdio.h>
int main () {
int i, yama=0, tani=0, iarray[100];
for (i = 1; i < 99; ++i) {
if (iarray[i-1] <= iarray[i] &&
iarray[i+1] > iarray[i]) {
++yama;
}
if (iarray[i-1] >= iarray[i] &&
iarray[i+1] < iarray[i]) {
++tani;
}
}
printf("山:%d個 谷:%d個", yama, tani);
return 0;
}
0056デフォルトの名無しさん
2008/01/06(日) 14:15:12#include <stdio.h>
void qsortString(char *a){
int n=strlen(a);
int i,j;
char t;
/* quick sort */
for(i=0;i<n;i++){
for(j=i+1;j<n;j++){
if(a[i]>a[j]){
t = a[i];
a[i]=a[j];
a[j]=t;
}
}
}
}
int main(){
char test[]="a1b2x3d7d6g2";
printf("Before:%s\n",test);
qsortString(test);
printf("After :%s\n",test);
return 0;
}
はい、どうぞ
0057デフォルトの名無しさん
2008/01/06(日) 14:18:27void SortString(std::string & rStr) {
std::sort(rStr.begin(), rStr.end());
}
0058デフォルトの名無しさん
2008/01/06(日) 14:23:12http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5644.txt
0059デフォルトの名無しさん
2008/01/06(日) 14:24:25たぶんこれなら>>36で動くはず。
0060デフォルトの名無しさん
2008/01/06(日) 14:28:32課題2
#include <stdio.h>
#include <stdlib.h>
int main () {
int a, b, c=1, x=0;
scanf("%d %d", &a, &b);
if (a < 0) {
a = abs(a);
c = -c;
}
if (b < 0) {
b = abs(b);
c = -c;
}
if (a < b) {
while (a--) x += b;
} else {
while (b--) x += a;
}
if (c < 0) x = -x;
printf("%d", x);
return 0;
}
0061デフォルトの名無しさん
2008/01/06(日) 14:30:21(3文字より短い場合はtoo short と表示)
わかりやすいソースでおねがいします
006260
2008/01/06(日) 14:32:54abs(a) -> -a
abs(b) -> -b
に置き換えてちょうだい
0063デフォルトの名無しさん
2008/01/06(日) 14:34:18#include <stdio.h>
void b(char *a){
int n = strlen(a);
if(n<3){printf("too short");return;}
printf("%s",a+n-3);
}
int main(){
b("123456789");
b("1AB");
b("12");
return 0;
}
0064デフォルトの名無しさん
2008/01/06(日) 14:39:52[2] 問題文:以下の行列A,PにおいてtPAPを計算するプログラム。(tPはPの行列式の行と列を入れ換えたものです。)
|2 1 1| |1/√2 1/√6 1/√3|
A=|1 2 1| P=|-1/√2 1/√6 1/√3|
|1 1 2| |0 -2/√6 1/√3|
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: [2008年1月7日14:00まで]
[5] その他の制限:関数を使ってください
見にくいかもしれませんがよろしくお願いします。
0065k5j7636j
2008/01/06(日) 14:40:01ありがとうございました。助かります。
0066デフォルトの名無しさん
2008/01/06(日) 14:54:07#include <stdio.h>
#include <math.h>
void show(double src[3][3]){
int i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
printf("%9.5lf",src[i][j]);
printf("\n");
printf("\n");
}
void inverse(double dst[3][3],double src[3][3]){
int i,j;
for(i=0;i<3;i++){
for(j=0;j<3;j++){
dst[j][i]=src[i][j];
}
}
}
void multiple(double dst[3][3],double src1[3][3],double src2[3][3]){
int i,j,k;
for(i=0;i<3;i++){
for(j=0;j<3;j++){
dst[i][j]=0;
for(k=0;k<3;k++){
dst[i][j]+=src1[k][j]*src2[i][k];
}
}
}
}
006760
2008/01/06(日) 14:55:05(1)
#include <stdio.h>
int main () {
unsigned int i = 0, uiarray[30];
for ( ; i < 30; ++i) {
while (uiarray[i]--) printf("*");
printf("\n");
}
return 0;
}
(2)
#include <stdio.h>
int main() {
int i = 0, j, min = 0, iarray[30];
for ( ; i < 30; ++i) {
if (iarray[i] < min) min = iarray[i];
}
min = -min;
for (i = 0; i < 30; ++i) {
if (0 < iarray[i]) j = min;
else {
j = min + iarray[i];
iarray[i] = -iarray[i];
}
while (j--) printf(" ");
while (iarray[i]--) printf("*");
printf("\n");
}
return 0;
}
0068デフォルトの名無しさん
2008/01/06(日) 14:55:14int main(){
double R2 = sqrt(2), R3 = sqrt(3), R6 = sqrt(6);
double A [3][3] = {{2,1,1},{1,2,1},{1,1,2}};
double P [3][3] = {{1/R2, 1/R6, 1/R3},{-1/R2, 1/R6, 1/R3},{0,-2/R6,1/R6}};
double tP [3][3], tPA [3][3], tPAP[3][3];
int i,j;
show(A);
show(P);
inverse (tP ,P);
show(tP);
multiple(tPA ,tP ,A);
show(tPA);
multiple(tPAP,tPA,P);
show(tPAP);
}
0069デフォルトの名無しさん
2008/01/06(日) 15:08:12対象データは見つかりませんでした。ってなります。
0070デフォルトの名無しさん
2008/01/06(日) 15:10:36同じフォルダにaichi_yubin.txtって名前のファイルをおけ。
つーかそんなメッセージでてこないと思うぞw
0071デフォルトの名無しさん
2008/01/06(日) 15:11:20[2] 問題文(含コード&リンク):
入力された二つの数値の論理積、論理和、排他的論理和をそれぞれ出力するプログラムを作成
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ:gcc
[3.3] 言語: C
[4] 期限:1/8
[5] その他の制限:特にないです
0072デフォルトの名無しさん
2008/01/06(日) 15:11:30おっとしっけい、メイン側のほうか。
具体的に何を入れてどううまくうごかない?
0073デフォルトの名無しさん
2008/01/06(日) 15:17:59#include <stdio.h>
int main () {
int x, y;
scanf("%d %d", &x, &y);
printf("論理積:%p 論理和:%p 排他的論理和:%p",
x & y, x | y, x ^ y);
return 0;
}
0074デフォルトの名無しさん
2008/01/06(日) 15:18:32っていうか、見つからないときの処理が入ってなかった orz すまんかった。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5645.txt
0075デフォルトの名無しさん
2008/01/06(日) 15:19:56冬休みが空けるから皆あせってんのか
0076デフォルトの名無しさん
2008/01/06(日) 15:20:430077デフォルトの名無しさん
2008/01/06(日) 15:20:56ありがとうございました
0078デフォルトの名無しさん
2008/01/06(日) 15:21:07暇になったらやる。
0079デフォルトの名無しさん
2008/01/06(日) 15:23:03今日はやり応えある問題が少ないな。
0080rwlu.o
2008/01/06(日) 15:27:09[2] 問題文(含コード&リンク):
入力した整数を2進数に変換せよ。
[3] 環境
[3.1] OS: (Windows/Linux/等々)
[3.2] コンパイラ名とバージョン: (gcc 2.4 )
[3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限: 1月8日
[5] その他の制限: 関数を用いる。
0081デフォルトの名無しさん
2008/01/06(日) 15:37:45できました。ありがとうございます。
0082デフォルトの名無しさん
2008/01/06(日) 15:40:18#include <stdio.h>
int main () {
int in, bit = 1;
scanf("%d", &in);
while (bit < in) bit *= 2;
if (!(in & bit)) bit /= 2;
while (bit) {
printf("%d", in & bit ? 1 : 0);
bit /= 2;
}
return 0;
}
if文のところなくす方法ないかな?
0083j
2008/01/06(日) 15:41:58[2] 問題文(含コード&リンク): したのjavaプログラムをc++言語に書き直す。
[3] 環境
[3.1] OS: (Windows)
[3.2] コンパイラ名とバージョン: (gcc 2.4 )
[3.3] 言語: (C++)
[4] 期限: 1月7日
[5] その他の制限: なし
import java.io.*;
import java.util.regex.*;
class Test {
public static void main(String[] arg) throws IOException {
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
String buf;
Pattern p = Pattern.compile("[0-9A-Za-z]+");
Matcher m;
while((buf=br.readLine())!=null){
m= p.matcher(buf);
while(m.find()){
System.out.println(m.group());
}
}
}
}
0084デフォルトの名無しさん
2008/01/06(日) 15:43:35お願いします
008582
2008/01/06(日) 15:44:19一応今から整数版書き始めるけど、先に誰かできたら投稿しちゃってください。
0086デフォルトの名無しさん
2008/01/06(日) 15:44:41[2] 問題文(含コード&リンク):
C言語を用いて空いた上位部分に符号ビットと同じビットが入る
算術右シフトを行うプログラムを作成する
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 1月8日
[5] その他の制限:特になし
よろしくお願いします
0087デフォルトの名無しさん
2008/01/06(日) 15:54:19せっかくだから突っ込んでおくとその他の制限も読んだ方がいいよ
0088デフォルトの名無しさん
2008/01/06(日) 15:55:29さらに突っ込ませてもらうと値によっては無限ループにおちいるよ
0089デフォルトの名無しさん
2008/01/06(日) 16:00:080以下の場合頭に-つけるだでいいんじゃねーの。
0090デフォルトの名無しさん
2008/01/06(日) 16:00:25何も確認してないが……
int main(int argc, char* argv[])
{
if (argc != 2)
{
fprintf(stderr, "電話番号入力しろゴルァ\n");
return 0;
}
int x, y, z;
int scan = sscanf(argv[1], "%d-%d-%d", &x, &y, &z);
if (scan == 3)
{
printf("市内局番は%dじゃねーの? 間違ってても責任とらん\n", y);
}
else if (scan == 2)
{
printf("市内局番は%dじゃねーの? 間違ってても責任とらん\n", x);
}
else
{
printf("知らねwww\n");
}
return 0;
}
0091デフォルトの名無しさん
2008/01/06(日) 16:02:36void binaryPrint(int in)
{
unsigned int bit = 1<<(sizeof(int)*8-1);
while (!(in & bit)) bit >>= 1;
while (bit)
{
printf("%d", !!(in & bit));
bit >>= 1;
}
}
int main () {
int in;
scanf("%d", &in);
binaryPrint(in);
printf("\n");
return 0;
}
お題に沿ってif文を排除してみた。whileを使うのはずるいって意見は無視することにした。
0以下の場合頭に-つけるタイプは他の人に任せた
009291
2008/01/06(日) 16:04:280093デフォルトの名無しさん
2008/01/06(日) 16:05:213点はdouble p[3][2]で与え、面積の計算はヘロンの公式を使う
0094デフォルトの名無しさん
2008/01/06(日) 16:07:21三点の座標が与えられてるのに、ヘロンの公式とな……
0095デフォルトの名無しさん
2008/01/06(日) 16:11:04これでおkかな?
#include <stdio.h>
int rshift(int x, int n){
int mask = 0, i;
for(i=0; i<n; ++i) mask += 1<<sizeof(int)-i;
if(x>0)return x >> n & ~mask;
else return x >> n | mask;
}
int main(){
int x,n;
scanf("%d %d", &x, &n);
printf("%d", rshift(x,n));
return 0;
}
0096デフォルトの名無しさん
2008/01/06(日) 16:12:49[2] 問題文: http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5580.txt
[3] 環境
[3.1] XP
[3.2] コンパイラ名とバージョン: visual studio 2005
[3.3] 言語: C言語
[4] 期限: 1/9
[5] その他の制限:なし
0097デフォルトの名無しさん
2008/01/06(日) 16:17:13ありがとうございます
009895
2008/01/06(日) 16:18:04#include <stdio.h>
int rshift(int x, int n){
int mask = 0, i;
for(i=0; i<n; ++i) mask += 1<<sizeof(int)-i;
if(x>=0)return x >> n & ~mask;
else return x >> n | mask;
}
int main(){
int x,n;
scanf("%d %d", &x, &n);
printf("%d", rshift(x,n));
return 0;
}
0099デフォルトの名無しさん
2008/01/06(日) 16:24:31無限ループ解消と頭に-つけるバージョン。凡庸ですまん。
void binaryPrint(int in)
{
unsigned int bit = 1<<(sizeof(int)*8-1);
if (in == 0)
{
printf("0");
return;
}
if (in < 0)
{
printf("-");
in = -in;
}
while (!(in & bit)) bit >>= 1;
while (bit)
{
printf("%d", !!(in & bit));
bit >>= 1;
}
}
0100デフォルトの名無しさん
2008/01/06(日) 16:31:14[2] 問題文: ファイルを読み込み、英字のみか、先頭が英字で二文字目以降が英字または数字である文字列を出力するプログラム
[3] 環境
[3.1] windows
[3.2] コンパイラ名とバージョン:gcc
[4] 期限: 1/7
[5] その他の制限:なし
よろしくお願いします
0101デフォルトの名無しさん
2008/01/06(日) 16:33:10追加 c++言語で
0102デフォルトの名無しさん
2008/01/06(日) 16:35:01追加 c++言語で
0103デフォルトの名無しさん
2008/01/06(日) 16:35:20日本語は初めてですか?
0104デフォルトの名無しさん
2008/01/06(日) 16:41:18お前は、何に言ってんだ、
なんにかよめねぇのか
0105デフォルトの名無しさん
2008/01/06(日) 16:41:38#include <fstream>
#include <string>
#include <iostream>
using namespace std;
int main( )
{
ifstream ifs("data.txt");
string buf;
getline(ifs, buf); /* ファイルを読み込む */
cout << "ABCDEFG"; /* 英字のみか、先頭が英字で二文字目以降が
英字または数字である文字列を出力する*/
return 0;
}
0106デフォルトの名無しさん
2008/01/06(日) 16:42:45mixiでは解答が得られそうに無いとの判断ですか?
0107デフォルトの名無しさん
2008/01/06(日) 18:00:38http://tmp7.2ch.net/test/read.cgi/mog2/1199609352/l50
人工音声をつかって罵り合おうぜ。
バカ2ちゃんども、聴覚も鍛えようぜ。
0108デフォルトの名無しさん
2008/01/06(日) 19:05:31>>105 もっと単純に
#include <iostream.h>
int main(void)
{
cout <<"ファイルを読み込み、英字のみか、先頭が英字で二文字目以降が英字または数字である文字列";
return 0;
}
なんじゃね?
0109デフォルトの名無しさん
2008/01/06(日) 19:06:140110デフォルトの名無しさん
2008/01/06(日) 19:07:590111デフォルトの名無しさん
2008/01/06(日) 19:19:03[2] 問題文(含コード&リンク):与えられた10進数の数値を4桁の16進数にして文字型配列に格納する
また、数値は16ビットで最上位ビットは符号を表すものとする
例)
567->0237
-2->FFFE
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 1月9日
0112デフォルトの名無しさん
2008/01/06(日) 19:27:47( ´∀`)つttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5647.cpp
0113デフォルトの名無しさん
2008/01/06(日) 19:34:33int main () {
int i = 3, input;
scanf("%d", &input);
unsigned int mask = 0xF000;
while (mask) {
printf("%X", (input & mask)>>(i*4));
mask >>= 4;
--i;
}
return 0;
}
0114デフォルトの名無しさん
2008/01/06(日) 19:40:18それって配列使ってなくてテレビに表示してるだけじゃないの?
0115デフォルトの名無しさん
2008/01/06(日) 20:00:30つ・・・つられな・・・ いやつられよう。
「テレビかよ!!」
0116デフォルトの名無しさん
2008/01/06(日) 20:01:320117デフォルトの名無しさん
2008/01/06(日) 20:12:40ごめんなさいね。お母さん問題文よく読まない上にゴミコードを書いちゃって・・・。
#include <stdio.h>
int main () {
char hex[5] = "";
int in, i;
scanf("%d", &in);
sprintf(hex, "%C%C%C%C",
(in & 0xF000)>>12,
(in & 0x0F00)>>8,
(in & 0x00F0)>>4,
in & 0x000F);
for (i = 0; i < 4; ++i) {
if (hex[i] < 10) {
hex[i] += 48;
} else hex[i] += 55;
}
printf("%s", hex);
return 0;
}
0118デフォルトの名無しさん
2008/01/06(日) 20:26:25かあちゃん、null terminatorはどこ?
0119デフォルトの名無しさん
2008/01/06(日) 20:30:280120デフォルトの名無しさん
2008/01/06(日) 20:36:26かあちゃん!!これじゃhex[4]が'\0'じゃなかったらprintfで出力結果がバグるだろうが!!
もうしっかりしてくれよなぁー
0121デフォルトの名無しさん
2008/01/06(日) 20:38:25と、ここまで書いてあれ?sprintfで処理すると勝手に付くんだっけ?と考え直してみたり。
0122デフォルトの名無しさん
2008/01/06(日) 20:41:21そんな子、要らない子だと思っていたわ。
念のためにも
sprintf(hex, "%C%C%C%C\0",
と置き換えてあげてください。
0123デフォルトの名無しさん
2008/01/06(日) 20:42:23かあちゃん、ごめん、弁当のふたんとこに海苔くっついてた・・・じゃなかった
sprintfでかってにつくから問題なさそう。むしろそれをやるとhex[5]に'\0'が代入されそうな悪寒。
0124デフォルトの名無しさん
2008/01/06(日) 21:06:03寧ろ、%Cそのものの方が問題。
0126デフォルトの名無しさん
2008/01/06(日) 21:17:01[2] 問題文(含コード&リンク):年月日計算
問題文:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5649.txt
サンプルプログラム:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5648.txt)
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2007年1月8日9:00まで
[5] その他の制限:
サンプルプログラムに「日付を一年ずらす関数」を付け加えることは必須です。後ははそれに加えて
・2つの入力年月日を実行時にキーボードから入力させるか、
ファイルで与えるか、コマンドライン引数として与える
・日付を古い方にずらすか、新しい方にずらす。
などに着目し4種類以上のプログラムを作るのですが1種類でもかまいません。
すみませんがどうか宜しくお願い致します。
0127126
2008/01/06(日) 21:21:11正しくはこちらになります。
サンプルプログラム:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5648.txt
0128デフォルトの名無しさん
2008/01/06(日) 21:25:43たしかに。sprintf使っていいなら%x使えばいいし。自家製でdec2hexするならこんな感じかな?
hex[0]=( (in & 0xf000)>>12 );
hex[1]=( (in & 0x0f00)>> 8 );
hex[2]=( (in & 0x00f0)>> 4 );
hex[3]=( (in & 0x000f) );
hex[4]='\0';
for(i=0;i<4;i++){
if( (0<=hex[i]) && (hex[i]<=9)) hex[i]+='0';
else if( (10<=hex[i]) && (hex[i]<=15) ) hex[i]+='A'-10;
else hex[i]='?';
}
0129デフォルトの名無しさん
2008/01/06(日) 21:33:06あれ?ちょっとまって。
hex[0]には最上ビットに符号の意味を持たせなきゃいけないんじゃないかな?
多分これだと
0x7fffffffと0xffffffffが同じ数字になりそうな悪寒。
0130デフォルトの名無しさん
2008/01/06(日) 21:37:22ちゃうちゃう・・・ごめん
0x7fff以上の正の整数がだめってだけですね。
0132デフォルトの名無しさん
2008/01/06(日) 22:13:11http://www.linux.or.jp/JM/html/LDP_man-pages/man3/vsnprintf.3.html
C (C99 にはないが SUSv2 にはある) lc と同じ。使ってはならない。
なるほど。
0133デフォルトの名無しさん
2008/01/06(日) 23:30:29ありがとうございました
0134デフォルトの名無しさん
2008/01/06(日) 23:46:58[2] 問題文:連立1次方程式
0.001x1+10000.0x2=1000.0
10000.0x1+10000.0x2=2000.0
における解のプログラム{x1,x2は×(かける)1の掛け算ではなくx1(エックスワン)です}
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: [2008年1月7日14:00まで]
[5] その他の制限:2×2の逆行列のプログラムは新規作成
よろしくお願いします
0135デフォルトの名無しさん
2008/01/06(日) 23:54:22>>13 1/9
>>17 1/8
>>18 1/8
>>22 1/8
>>29 1/8
>>96 1/9
>>126 1/8 9:00
>>134 1/8 14:00
0137デフォルトの名無しさん
2008/01/06(日) 23:59:25まっちょれ
といてやる。
0138デフォルトの名無しさん
2008/01/07(月) 00:01:34[2] 問題文:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5650.txt
[3] 環境
[3.1] OS:Windows/Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2008年1月9日
[5] その他の制限:特にないです
0139デフォルトの名無しさん
2008/01/07(月) 01:16:17#include <stdio.h>
int main(){
double A[2][2]={{0.001,10000.0},{10000.0,10000.0} };
double b[2] = {1000,2000};
double tA[2][2];
double x[2];
double ad_bc = A[0][0]*A[1][1]-A[0][1]*A[1][0];
if( fabs(ad_bc) < 1e-6 ){
printf("解なし");
return 1;
}
tA[0][0] = A[1][1] / ad_bc;
tA[0][1] = -A[1][0] / ad_bc;
tA[1][0] = -A[0][1] / ad_bc;
tA[1][1] = A[0][0] / ad_bc;
x[0] = b[0]*tA[0][0]+b[1]*tA[1][0];
x[1] = b[0]*tA[0][1]+b[1]*tA[1][1];
printf("x1 = %.15e, x2 = %.15e",x[0],x[1]);
return 0;
}
0140デフォルトの名無しさん
2008/01/07(月) 01:55:39ありがとうございました
助かりました
0141デフォルトの名無しさん
2008/01/07(月) 02:19:05[2] 問題文
2つの3 x 3の行列を2次元配列に格納、
2つの行列の積を表示するプログラム。
[3] 環境
[3.1] OS: windows XP
[3.2] コンパイラ名とバージョン:stady C
[3.3] 言語: C
[4] 期限: 2008/01/08(月)(〜22:00)
[5] その他の制限:入門課題なので猿以上人未満でもわかるくらいでお願いします。
急で申し訳ありませんがお願いしますm(_ _)m
0142デフォルトの名無しさん
2008/01/07(月) 02:21:27どこの国の暦を使ってるんだ?
0143デフォルトの名無しさん
2008/01/07(月) 02:29:290144141
2008/01/07(月) 02:52:09申し訳ありません
高校生以上社会人未満でお願いします
0145デフォルトの名無しさん
2008/01/07(月) 03:47:23適当、 http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5651.txt
>>134 さきこされてた
0146デフォルトの名無しさん
2008/01/07(月) 05:10:57さらに適当
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5652.txt
0147141
2008/01/07(月) 10:51:44>>146さん
ありがとうございます
しかし、文字化けで読めないのと難しいです
すみませんがもう少し低級なプログラムでお願いします
申し訳ありません
ほんと出来ないので、どうかお願いします…
[1] 授業単元: プログラミング演習(木構造)
[2] 問題文:長いので、メールを下さいm(__)m
[3] 環境
[3.1] OS: Linux
[3.2] GNOME端末
[3.3] 言語: C言語
[4] 期限: 1月12日正午
[5] 習った範囲
if文
switch文
for文
while文
関数
配列
構造体
ポインタ
ファイル操作
リスト
スタックとキュー
探索
木構造
0149デフォルトの名無しさん
2008/01/07(月) 11:00:390150デフォルトの名無しさん
2008/01/07(月) 11:21:410151 ◆vLIz8KOkPM
2008/01/07(月) 11:24:31どうかお願いしますm(__)m
0152デフォルトの名無しさん
2008/01/07(月) 11:33:39[2] 問題文 1000以下の素数を全て表示するプログラム
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C++
[4] 期限: 2008/01/08
[5] if文とfor文程度で作れるもの
0153デフォルトの名無しさん
2008/01/07(月) 11:36:01期限が早いものからガンガル
0154デフォルトの名無しさん
2008/01/07(月) 11:36:37一応張ってみます
#include <stdio.h>
int main()
{
int a, b;
for(a = 2; a <= 100; a++){
for(b = 2; b < a; b++){
if(a % b == 0)break;
}
if (a == b) printf("%d \n", a);
}
return 0;
}
0155デフォルトの名無しさん
2008/01/07(月) 11:40:02using namespace std;
#define N 1000
main(){
int n,k, sosu[N+1];
for(n=0;n<=N;n++)sosu[n]=1;
for(n=2;n*n<=N;n++)
for(k=2*n;k<=N;k+=n)sosu[k]=0;
for(n=2;n<=N;n++)if(sosu[n])cout<<n<<endl;
}
0156デフォルトの名無しさん
2008/01/07(月) 11:40:46#include <stdio.h>
#define N 1024
int main(void)
{
int i, j, k = 2, prime[N] = {2, 3};
for(i = 5; i <= 1000; i += 2){
for(j = 0; j < k && i%prime[j] != 0; j++);
if(j == k) prime[k++] = i;
}
for(i = 0; i < k; i++) printf("%5d", prime[i]);
putchar('\n');
return 0;
}
0157デフォルトの名無しさん
2008/01/07(月) 11:42:46それだと数が多い場合に時間がかかる エネ***の篩が定番
0158デフォルトの名無しさん
2008/01/07(月) 11:43:37l三`ー 、_;:;:;:;:;:;:j;:;:;:;:;:;:_;:;:;_;:��-三三三三三l
l三 r=ミ''‐--‐';二,_ ̄ ,三三三彡彡l_ この感じ・・・・
lミ′  ̄ ー-'" '=ミニ彡彡/‐、ヽ
l;l ,_-‐ 、 __,,.. - 、 彡彡彳、.// ZIPか・・・・
_______∧,、_‖ `之ヽ、, i l´ _,ィ辷ァ-、、 彡彡'r ノ/_ ______
 ̄ ̄ ̄ ̄ ̄ ̄ ̄'`'` ̄ 1  ̄フ/l l::. ヽこ~ ̄ 彡彳~´/  ̄ ̄ ̄ ̄ ̄ ̄
ヽ ´ :l .l:::. 彡ィ-‐'′
ゝ、 / :. :r-、 彡′
/ ィ:ヘ `ヽ:__,ィ='´ 彡;ヽ、
_,,..-‐'7 /:::::::ヽ _: :_ ヽ ィ´.}::ヽ ヽ、
_,-‐'´ { ヽ:::::::::ヘ `'ー===ー-- ' /ノ /::::::ヘ, ヽー、
0159デフォルトの名無しさん
2008/01/07(月) 11:47:07ありがとうございます、こんな早くレスがもらえるものなんですね。
参考にさせてもらます
0161デフォルトの名無しさん
2008/01/07(月) 12:19:28if(a % b == 0)break;
の部分でで何で2以外の時も抜けられるのか教えてくれ
0162デフォルトの名無しさん
2008/01/07(月) 12:22:15a/bであまりがでない場合、つまり割り切れる場合は抜けるって構造だろう
0163デフォルトの名無しさん
2008/01/07(月) 12:46:18[2] 問題文:
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5653.txt
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:visual studio 2005
[3.3] 言語: C言語
[4] 期限:
[5] その他:よろしくおねがいします。
0164デフォルトの名無しさん
2008/01/07(月) 12:47:44[2] 問題:5を入力して以下の表示をするプログラム
____*
___*_*
__*_*_*
_*_*_*_*
*_*_*_*_*
(_はスペースです)
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:c
[4] 期限:2008年1月8日
[5] その他の制限:for文でお願いします
0165デフォルトの名無しさん
2008/01/07(月) 12:55:13#include<stdio.h>
int main(void){
int a;
scanf("%d",&a);
if(a==5){
printf(" *\n * *\n * * *\n * * * *\n* * * * *\n");
}
return(0);
}
0166デフォルトの名無しさん
2008/01/07(月) 13:06:49#include <stdio.h>
int main() {
int i, ch, num;
scanf("%d", &num);
for (i = 1; i < num+1; ++i) {
for (ch = num - i; ch > 0; --ch) printf(" ");
for (ch = i; ch > 0; --ch) printf("* ");
printf("\n");
}
return 0;
}
0167デフォルトの名無しさん
2008/01/07(月) 14:19:06[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5655.txt
[3] 環境
[3.1] OS:Windows
[3.3] 言語:c
[4] 期限:2008年1月8日
よろしくおねがいします。
0168デフォルトの名無しさん
2008/01/07(月) 14:24:31#include <stdio.h>
int main(){
while(getchar() != '5');
puts(" *\n * *\n * * *\n * * * *\n* * * * *");
return 0;
}
0169デフォルトの名無しさん
2008/01/07(月) 14:29:32[2] 問題文 複数の数値に対する最大公約数を求める関数を作成し、それを利用するプログラムを作成せよ。関数は下記の通りとする。
int gcm(int *in,int num)
in 入力値が格納された配列の(先頭)ポインタ
num 入力値の最大公約数
入力に関して
キーボードから、入力値がスペース1つ開けて1行で入力する。この時、入力を促す文字等は決して表示しないこと。
出力に関して
結果+改行のみ出力。指定した数値・改行以外の文字等の出力は一切行わないこと。
[3] 環境
[3.1] OS: windows XP
[3.2] コンパイラ名とバージョン:stady C
[3.3] 言語: C言語
[4] 期限: 2008/01/08(月)(〜22:00)
[5] その他の制限:簡単にお願いします
0170デフォルトの名無しさん
2008/01/07(月) 14:32:12適当、http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5656.txt
0171ぽぴぴおぷ
2008/01/07(月) 14:36:18ただし sin cosはmath.h(算術計算用ヘッダー)をインクルードすること。
また、角度は弧度(ラジアン)で入力すること
値=sin(角度/360.0+2.0*3.14);
[3.1]OS:windows XP
[3.2]C++Builder
言語:C言語
期限:いますぐお願いします
0172デフォルトの名無しさん
2008/01/07(月) 15:06:03問題よく読めよ
0173デフォルトの名無しさん
2008/01/07(月) 15:06:24#include <stdio.h>
#include <float.h>
#include <math.h>
#define PI (3.14)
#define Rad(x) ( (x)/180 * PI )
int main()
{
double i = 0;
for (i = 0; i <= 180; i += 10) {
if ( (0 != i) && (180 != i) ) {
printf("sin(%3g) = %.*f\n",
i, DBL_DIG, sin(Rad(i)) );
} else {
printf("sin(%3g) = 0\n", i, DBL_DIG);
}
}
for (i = 0; i <= 180; i += 10) {
if ( 90 != i ) {
printf("cos(%3g) = %.*f\n",
i, DBL_DIG, cos(Rad(i)) );
} else {
printf("cos(%3g) = 0\n", i, DBL_DIG);
}
}
return 0;
}
0174ぽぴぴおぷ
2008/01/07(月) 15:11:190度から180度までのsin cosの値を10度ずつ表形式で表示せよ。
ただし sin cosはmath.h(算術計算用ヘッダー)をインクルードすること。
また、角度は弧度(ラジアン)で入力すること
値=sin(角度/360.0+2.0*3.14);
[3.1]OS:windows XP
[3.2]C++Builder
言語:C言語
期限:いますぐお願いします
for文でお願いします
まだ1年生なので
0175デフォルトの名無しさん
2008/01/07(月) 15:12:42#include <stdio.h>
int main()
{
int n,i,j,k;
scanf("%d",&n);
for(i = n; i >= 0; i--){
for(j=0;j <=i-1; j++)
putchar(' ');
for(k =n- j; k>0;k--)
printf("%c%c",'`*',' ');
putchar('\n');
}
}
0176175
2008/01/07(月) 15:17:58を忘れてた。
0177デフォルトの名無しさん
2008/01/07(月) 15:19:26#include <float.h> /* DBL_DIG */
#include <math.h>
#define PI (3.14)
#define Rad(x) ( (x)/180 * PI )
int main()
{
double i = 0;
for (i = 0; i <= 180; i += 10) {
if ( (0 != i) && (180 != i) ) { /* かなり適当 */
printf("sin(%3g) = %.*f\n",
i, DBL_DIG, sin(Rad(i)) );
} else {
printf("sin(%3g) = 0\n", i);
}
}
for (i = 0; i <= 180; i += 10) {
if ( 90 != i ) { /* ここも */
printf("cos(%3g) = %.*f\n",
i, DBL_DIG, cos(Rad(i)) );
} else {
printf("cos(%3g) = 0\n", i);
}
}
return 0;
}
0178デフォルトの名無しさん
2008/01/07(月) 15:20:150179デフォルトの名無しさん
2008/01/07(月) 15:21:02[2] 問題文 コマンドラインから与えられた整数の引数をひとつ受け取って,その数と等しい個数のベクトルからなる配列を作成し,各ベクトルのx成分・y成分を読み込み,各ベクトルの長さを出力するプログラムを完成しなさい.
[3] 環境
[3.1] OS: windows XP
[3.2] コンパイラ名とバージョン:任意
[3.3] 言語: C言語
[4] 期限: 2008/01/08 15時まで
0180デフォルトの名無しさん
2008/01/07(月) 15:26:20#include <stdlib.h>
#include <math.h>
??????? struct {
double x;
double y;
} ???????;
void InputVector(Vector *v)
{scanf("%lf", ???????);
scanf("%lf", ???????);
}double LengthVector(Vector v)
{return sqrt(???????);}
int main(int argc, char **argv)
{
int i;
int num;
Vector *varray;
if(argc !=2){
return 1;
}
num = atoi(???????);
if(num < 0){
return 1;
}
varray = (???????)malloc(???????);
0181デフォルトの名無しさん
2008/01/07(月) 15:26:53if(!varray){
return 1;
}
for(i = 0; i < num; i++){
InputVector(???????);
}
for(i = 0; i < num; i++){
printf("%lf\n", ???????);
}
???????;
return 0;
}
0182デフォルトの名無しさん
2008/01/07(月) 15:31:15そのファイルの中から与えられた整数の引数をひとつ受け取って,その数と等しい個数のベクトルからなる配列を作成し,各ベクトルのx成分・y成分を読み込み,
コマンドラインから入力ファイルが存在しなければ,
コマンドラインから与えられた整数の引数をひとつ受け取って,その数と等しい個数のベクトルからなる配列を作成し,各ベクトルのx成分・y成分を読み込む.
コマンドラインから与えられた出力ファイルが存在すれば,
各ベクトルの長さをそのファイルに出力し,
コマンドラインから与えられた出力ファイルが存在しなければ,
コマンドラインに出力する.
0183デフォルトの名無しさん
2008/01/07(月) 15:32:53#include <stdio.h>
#include <stdlib.h>
#include <math.h>
??????? struct {
double x;
double y;
} ???????;
int InputVector(FILE *stream, Vector *v)
{
int result = fscanf(stream, "%lf", ???????);
if(result < 0) return result;
result = fscanf(stream, "%lf", ???????);
return result;}
double LengthVector(Vector v)
{return sqrt(???????);
}int main(int argc, char **argv)
{int i, num, checker;
Vector *varray;
FILE* inputstream;
FILE* outputstream = stdout;
//set input
if(argc < 2) {
fprintf(stderr, "input data from stdin\n");
inputstream = stdin;
}else
{inputstream = fopen(???????, ???????);
if(!inputstream)
{fprintf(stderr, "input file open error\n");
return 1;
0184デフォルトの名無しさん
2008/01/07(月) 15:34:52#include <stdio.h>
#include <stdlib.h>
struct point{
double x;
double y;
};
int main()
{
struct point *cdl,*tmp;
int i, n;
printf("データの数は?: ");
scanf("%d", &n);
if((cdl = (struct point *)malloc(n * sizeof(struct point))) == NULL){
printf("メモリ確保に失敗しました。終了します。\n");
return 0;
}
0185デフォルトの名無しさん
2008/01/07(月) 15:35:35tmp = cdl;
for(i=0;i<n;i++){
tmp->x = 0.0;
tmp->y = 0.0;
tmp++;
}
/*好きな作業しろ*/
tmp = cdl;
for(i=0;i<n;i++){
printf("point%d(%.2f,%.2f)\n",i,tmp->x,tmp->y);
tmp++;
}
free(cdl);
return 0;
}
0186デフォルトの名無しさん
2008/01/07(月) 15:36:02それならろだ使うなりしてほしい。
あとそのソース改変義務はあり?
0189 ◆vLIz8KOkPM
2008/01/07(月) 15:41:250190デフォルトの名無しさん
2008/01/07(月) 15:42:48zipでまとめてUploaderにあげるといいよ。
0191デフォルトの名無しさん
2008/01/07(月) 15:45:24for (i = 0; i < n; ++i) {
cdl[i].x = 0.0;
cdl[i].y = 0.0;
printf("point%d(%.2f,%.2f)\n", i, cdl[i].x, cdl[i].y);
}
free(cdl);
じゃだめなん?
0192デフォルトの名無しさん
2008/01/07(月) 15:45:35木構造そのものはできてるけど、何が欲しいのかわからない。
0193デフォルトの名無しさん
2008/01/07(月) 15:48:47たぶん大丈夫だけど、初期化だけなのか、
その後データを扱うのかわからなかったから
拡張性を持たせてみた。
必要なきゃ、>>191のほうがすっきりしていいはず。
0194デフォルトの名無しさん
2008/01/07(月) 15:56:23#include <stdio.h>
#include <stdlib.h>
int gcm_(int l, int g){
return l == 0 ? g : gcm_(g % l, l);
}
int gcm(int *in, int num){
if (num == 2) return gcm_(in[0], in[1]);
if (num > 2) return gcm_(*in, gcm(in + 1, num - 1));
return *in;
}
int main(){
int *p, n = 1;
p = malloc(sizeof(int));
if (p == NULL) return 1;
while (scanf("%d", p + n - 1) == 1) {
int *tmp = realloc(p, sizeof(int) * ++n);
if (tmp == NULL) {
free(p);
return 1;
}
p = tmp;
}
printf("%d\n", gcm(p, n - 1));
free(p);
return 0;
}
0195 ◆vLIz8KOkPM
2008/01/07(月) 16:00:21使い方がイマイチわからないのですが、ちょっと試してみます。
>192
課題に対して解答のプログラムが欲しいんです…よろしければメール頂けませんか?
0196194
2008/01/07(月) 16:01:55int gcm(int *in, int num){
if (num == 1) return *in;
else return gcm_(*in, gcm(in + 1, num - 1));
}
0197デフォルトの名無しさん
2008/01/07(月) 16:08:57うpろだ使った方がみんなに聞けていいと思いますよ。
自分も木構造は作ってありますが、問題見るまでできるかわからないので。。
0199デフォルトの名無しさん
2008/01/07(月) 17:02:060200デフォルトの名無しさん
2008/01/07(月) 17:13:35お願いします。
0202 ◆vLIz8KOkPM
2008/01/07(月) 17:22:37うpろだに投稿できたのですが、URLとかはどうやって貼るのですか?
0203163
2008/01/07(月) 17:23:35[2] 問題文:
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5653.txt
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:visual studio 2005
[3.3] 言語: C言語
[4] 期限:
[5] その他:よろしくおねがいします。
もう一度書きます。。。
よろしくお願いします。
0205デフォルトの名無しさん
2008/01/07(月) 18:00:54[2] 問題文(含コード&リンク):
#include<stdio.h>
#include<string.h>/*必要ならば使う。*/
int main(void){
char buf[200]={"0 2 4 5 12"};
printf("buf=%s\n",buf);
char a[100]={0};
/*ここから下のプログラムを完成させたい*/
/*bufから空白文字(スペース)を取り除いた、
0,2,4,5,12のみを配列aの先頭から順に格納する
つまり
a[0]=0,a[1]=2,a[2]=4,a[3]=5,a[4]=12,a[5]='\0'
となるように配列aに格納する。
ただし、bufは今"0 2 4 5 12"と整数5個で初期化してあるが、
実際は、整数が何個であっても(1つ以上100個以下)、動作するようにしたい。
(必ず整数の間には空白文字が入って初期化されているとする。)
*/
printf("a=%s\n",a);
return 0;
}
[3] 環境
[3.1] OS:Mac Os X
[3.2] gcc
[3.3] 言語: C
[4] 期限:明日まで、至急お願いします
[5] その他の制限:なし
たぶん簡単な問題だと思います。
どなたかお願いします。
0207デフォルトの名無しさん
2008/01/07(月) 18:22:13#include<stdio.h>
#include<stdlib.h>
#define MAX 3
int main()
{
int i,j,k;
double matrix1[MAX][MAX],matrix2[MAX][MAX],matrix3[MAX][MAX];
double tmp;
/**** Format matrix ****/
for(i=0; i<MAX; i++)
for(j=0; j<MAX; j++){
matrix1[i][j] = ((double)rand() / ((double)RAND_MAX+1)*(double)MAX);
matrix2[i][j] = ((double)rand() / ((double)RAND_MAX+1)*(double)MAX);
matrix3[i][j] = 0.0;
}
0208デフォルトの名無しさん
2008/01/07(月) 18:23:150209デフォルトの名無しさん
2008/01/07(月) 18:23:28/**** Transposed matrix
for(i=0;i<MAX;i++)
for(j=i+1;j<MAX;j++){
temp = matrix2[i][j];
matrix2[i][j] = matrix1[j][i];
matrix1[j][i] = temp;
}
****/
for(i=0;i<MAX;i++)
for(j=0;j<MAX;j++){
tmp = 0.0;
for(k=0;k<MAX;k++)
tmp += matrix1[i][k] * matrix2[j][k];
matrix3[i][j] = tmp;
}
/*後は好きに表示しな*/
return 0;
}
0210デフォルトの名無しさん
2008/01/07(月) 18:24:50すまん、doubleで作ってしまった・・・
douboleをintに変換してくれ。
間のtrans・・・は転置行列用だから必要になったら使ってみてくれ。
0211デフォルトの名無しさん
2008/01/07(月) 18:33:37>a[0]=0,a[1]=2,a[2]=4,a[3]=5,a[4]=12,a[5]='\0'
こうかいてあるけど、この通りに作るとしたら最後の出力の表示バグるよ
a[0]=0,a[1]=2,a[2]=4,a[3]=5,a[4]=1,a[5]='2',a[6]'\0'
ならできるけど
0212デフォルトの名無しさん
2008/01/07(月) 18:40:08#include<stdio.h>
#define DEBUG
int main(void){
char buf[200]={"5 2 4 5 12"};
printf("buf=%s\n",buf);
char a[100]={0};
int i = 0, j = 0;
for ( ; i < 200 && buf[i] != '\0'; ++i) {
if (buf[i] == ' ') continue;
if (buf[i+1] != ' ') {
a[j] = a[j]*10 + buf[i];
} else {
a[j] += buf[i] - '0';
++j;
}
}
#ifdef DEBUG
for (i = 0; a[i] != '\0'; ++i) {
printf("a[%d]=%x\n", i, a[i]);
}
#endif
printf("a=%s\n",a);
return 0;
}
0213212
2008/01/07(月) 18:41:54出力がいきなり終わるから、確認できるように5に置き換えてある。
0214212
2008/01/07(月) 18:44:43誤 a[j] = a[j]*10 + buf[i];
正 a[j] = a[j]*10 + buf[i] - '0';
0215デフォルトの名無しさん
2008/01/07(月) 18:47:190216デフォルトの名無しさん
2008/01/07(月) 19:45:52[2] 問題文:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5663.txt
[3] 環境
[3.1] XP
[3.2] コンパイラ名とバージョン: visual studio 2005
[3.3] 言語: C言語
[4] 期限: 1/9
[5] その他の制限:なし
0217デフォルトの名無しさん
2008/01/07(月) 19:46:18もちろん、課題関連です
0218デフォルトの名無しさん
2008/01/07(月) 19:48:00[2] 問題文(含コード&リンク)
1〜12までの数字をそれぞれ3回ずつ使いランダムな数列を作る。
ただし、それぞれの数字は
Aグループ:12、2、10、7
Bグループ:4、3、1、11
Cグループ:9、8、6、5
のようにグループ分けされていて、同じグループの数字は最低1つ空けないといけない。
つまり、「… 9 4 3 …」などの並びを許さないが、「… 9 4 2 3 …」は可となる。
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2008/01/14
[5] その他の制限: 特になし
よろしくお願いします。
0219デフォルトの名無しさん
2008/01/07(月) 19:52:23一応書いたぞ
(ファイルが存在する場合ループにしたほうがよさげ。
そこは自分で変えてね。めんどくさいので無理矢理上書きする処理
にしてあるから。)
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5664.txt
0220デフォルトの名無しさん
2008/01/07(月) 19:54:52http://www.pen2so.com/upload/
0221デフォルトの名無しさん
2008/01/07(月) 19:58:28ありがとうございます
0222デフォルトの名無しさん
2008/01/07(月) 20:13:44444や919みたいなことは許されるの?
問題が難関だとおもわれるため、できる限り早めにやっていただけたら幸いです…
どうかよろしくお願いしますm(_ _)m
[1] 授業単元: プログラミング演習(木構造)
[2] 問題文:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5665.txt
[3] 環境
[3.1] OS: Linux
[3.2] GNOME端末
[3.3] 言語: C言語
[4] 期限: 1月12日正午
[5] 習った範囲
if文、switch文、for文、while文、関数、配列、構造体、ポインタ、ファイル操作
リスト、スタックとキュー、探索、木構造
いかにも初心者が作りましたって感じでお願いします。
0224デフォルトの名無しさん
2008/01/07(月) 20:25:48#include <stdio.h>
#include <stdlib.h>
#define FMAX 100 /* ファイル名最大値 */
#define LMAX 300 /* 1文の最大値 */
int main() {
FILE *fp;
char filename[FMAX], line[LMAX];
int count=1;
/* ここにプログラムを書く */
scanf("%s", filename);
if ((fp = fopen(filename, "r")) == NULL) {
printf("file not found");
return -1;
}
while (fgets(line, LMAX, fp) != NULL) {
printf("%3d : %s", count, line);
++count;
}
fclose(fp);
return 0;
}
0225218
2008/01/07(月) 20:27:07「4 4 4」は同じグループなのでアウトで
「9 1 9」は同じグループは連続していないのでOKです。
説明へたくそですいません。
0226デフォルトの名無しさん
2008/01/07(月) 20:34:37[2] 問題文(含コード&リンク):()下記の画像("t.bmp")を読み込み、その画像を1/3に縮小した画像を、縦3個、横3個並べた画像"s.bmp"を出力するプログラムを作成せよ。
なお、s.bmpのヘッダファイルに書き込むべき値は、 ファイルサイズ、画像サイズ、幅、高さ以外は元のファイルすなわちt.bmpのヘッダファイルの内容と同じで良い。 1/3に縮小した物を並べているので、ファイルサイズ、画像サイズ、幅、高さは微妙に変わる場合がある。
#元の幅、高さが3の倍数であれば同じであるが。
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5667.txt このプログラム元におねがいします。中に指針的なものを書いてあります
ttp://ccfa.info/cgi-bin/up/src/up12831.bmp 元の画像です("t.bmp")
ttp://ccfa.info/cgi-bin/up/src/up12833.bmp 出力後の画像です"s.bmp
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: cc、gcc
[3.3] 言語: C
[4] 期限: 1月10日までです
[5] その他の制限: 特にありません。よろしくお願いします
0227デフォルトの名無しさん
2008/01/07(月) 21:01:22[2] 問題文(含コード&リンク):ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5668.txt
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2008年1月8日
[5] その他の制限:できれば上級者が使うようなポインタや構造体、デストラクタなどの関数は使用せずにお願いします
原文をうpできないので問題文は自分でまとめたのですが不備があれば聞いてください
よろしくお願いします!
0228デフォルトの名無しさん
2008/01/07(月) 21:11:39#include<stdio.h>
#include<stdlib.h>
typedef struct tag_group{
int num, rest[4*3];
}group_t;
group_t group[]={
{12,{12,12,12, 2, 2, 2,10,10,10, 7, 7, 7}},
{12,{ 4, 4, 4, 3, 3, 3, 1, 1, 1,11,11,11}},
{12,{ 9, 9, 9, 8, 8, 8, 6, 6, 6, 5, 5, 5}}
};
int main(void){
int i, j, wholenum=0, prev=-1, cur, group_num=3, idx;
for(i=0;i<group_num;i++) wholenum+=group[i].num;
while(wholenum){
if(prev<0) cur=rand()%group_num;
else cur=(prev+1+(rand()%(group_num-1)))%group_num;
for(j=0;j<group_num;j++) if(group[j].num*2>wholenum) cur=j;
if(group[cur].num<=0){
group[cur]=group[--group_num];
if(prev==cur) prev=-1;
if(prev==group_num) prev=cur;
continue;
}
idx=rand()%group[cur].num;
printf(" %2d", group[cur].rest[idx]);
group[cur].rest[idx]=group[cur].rest[--group[cur].num];
wholenum--;
prev=cur;
}
return 0;
}
0229デフォルトの名無しさん
2008/01/07(月) 21:15:48[2] 問題文(含コード&リンク):
2つのn次元のベクトルa,bに対して、
内積はc=Σa[i]b[i]で定義される。
a,bの各要素が一様な確率p(0~1)で0でない値を取る時、
np^2回の乗算で内積を計算する方法は存在するか?
存在するならその方法でプログラムを書き、しないならそれを証明せよ
計算前に計算量及び記憶容量をO(n)だけ使用してa,bを改変してよい。
ただしその操作でaとbを同時に扱ってはならない。(例えば、その操作で先に各要素の積を計算してはならない)
if文などによるa,bの要素の比較は乗算と同じコストを持つとみなされ、乗算回数に含まれる
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: VS2005
[3.3] 言語: C++
[4] 期限:2008年1月31日
[5] その他の制限: 無し
お願いします。
0230デフォルトの名無しさん
2008/01/07(月) 21:30:42ありがとうございました!!!
0231デフォルトの名無しさん
2008/01/07(月) 21:34:55[2]
(1)
次の学生の成績表を元に,出力結果のように合計点と平均点を出力するプログラムを作成せよ。ただし,for文を使うこと。
(成績表)
学籍番号 5001 5002 5003
数学 62 45 76
英語 75 65 93
国語 54 82 63
(出力結果)
数学の合計点=177点,数学の平均点=59.0点
英語の合計点=233点,英語の平均点=77.7点
国語の合計点=199点,国語の平均点=66.3点
(2)
(1)で作成したプログラムを元に,学生別の合計点を出力するプログラムを作成せよ
(出力結果)
学籍番号5001の合計点は,191点です。
学籍番号5002の合計点は,192点です。
学籍番号5003の合計点は,226点です。
(3)
(1)で作成したプログラムを元に,科目別の最高得点を表示するプログラムを作成せよ。
(出力結果)
数学の最高得点は70点です。
英語の最高得点は93点です。
国語の最高得点は82点です。
0232デフォルトの名無しさん
2008/01/07(月) 21:35:22(1)で作成したプログラムを元に,70点以上を得点した学生の人数を科目別に表示するプログラムを作成せよ。
(出力結果)
数学:1人
英語:2人
国語:1人
[3]環境
[3.1]XP
[3.2]visual studio 2005
[3.3]C++
[4]1/26
[5]なし
試行錯誤やりましたが、どうもうまくいきません。
よろしくお願いいたします。
0233デフォルトの名無しさん
2008/01/07(月) 21:35:45ありがとうございました!!!
0234219
2008/01/07(月) 21:41:10あんなソースでもありがとうございましたの言葉
もらえたぜ〜 /
---\/-----------------------------
'`,、('∀`) '`,、
0235デフォルトの名無しさん
2008/01/07(月) 21:45:02ニュートン・ラフソン法を理解することに必死になってしまったがこんな感じでいいと思う
#include<stdio.h>
#include<math.h>
double f(double x, double a, double b, double c){
return a * x * x + b * x + c;
}
double df(double x, double a, double b, double c){
return 2 * a * x + b;
}
int main(void){
double x = 1.0;
double maxerror = 0.00000001;
double a = 3, b = 4, c = 1; /* x = -1/3 */
double EPS = f(x, a, b, c) / df(x, a, b, c);
int N;
for(N = 0; fabs(EPS) > maxerror; N++){
x -= EPS;
EPS = f(x, a, b, c) / df(x, a, b, c);
}
printf("X = %10.24f\n", x);
printf("N = %d\n", N);
printf("EPS = %3.24f\n", EPS);
return 0;
}
0236デフォルトの名無しさん
2008/01/07(月) 21:51:09>>194>>196はお気に召さないか?
0237デフォルトの名無しさん
2008/01/07(月) 22:03:10http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5669.c
動作チェックがまだ不十分だけど、こんな感じでどうかな
0238237
2008/01/07(月) 22:07:1017行目の日本って部分が化けてるな
もし化けてたら日本ってかえておいて。
0239デフォルトの名無しさん
2008/01/07(月) 22:08:37すいません、せっかくニュートンラフソン法まで理解していただいて作っていただいたのですが・・・
問題は以下のリンク先の冒頭にあるように3次方程式なんです・・・
3次方程式は任意で良い の部分は
3次方程式の各係数は任意で良い の方が正しいですね・・・
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5668.txt
ニュートン・ラフソン法と以下のヒントを用いて3次方程式の解を求めるプログラムを作成しなさい
3次方程式は任意で良い
0240デフォルトの名無しさん
2008/01/07(月) 22:16:18ああ、申し訳ない。何を考えていたんだろう。
mainでdouble a,b,c,dを定義して
fはax^3+bx^2+cx+d
dfは3ax^2+2bx+c
をreturnするように書き換えればおk
0241デフォルトの名無しさん
2008/01/07(月) 22:21:01index.php_cmd=kgg&cmds=displaytxt&kid=0
0242デフォルトの名無しさん
2008/01/07(月) 22:23:38日本語でおk
0243デフォルトの名無しさん
2008/01/07(月) 22:24:45スレ違い.>>1読め
0244デフォルトの名無しさん
2008/01/07(月) 22:29:59[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5670.txt
[3] 環境
[3.1] OS:Windows
[3.3] 言語:c
[4] 期限:2008年1月8日
もう一度書き込みました。必死ですみません…。
どなたか宜しくお願いします。
0245237
2008/01/07(月) 22:33:12問題文のメニューにノード削除コマンドが書いていなかったからすっかり忘れてたけど
削除コマンドも必要なのね・・・
というわけでデリートコマンド実装した。
あと書式が一部間違っていたり、メモリ解放してなかったり、色々まずい部分も修正済み。
>>237の訂正版
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5671.c
0246デフォルトの名無しさん
2008/01/07(月) 22:41:09[2] 問題文(含コード&リンク):
マクロ#ifdefなどを使い、条件コンパイルできるようなソースを書け。
なお#ifdefは
#ifdef 名前
//実行本体
#else //なくてもよい
//実行本体
#ifdef //#ifdefの終了
という使い方をする。
[3.1] OS:Linux
[3.3] 言語:C
[4] 期限:2008年01月09日10:20まで
[5] その他の制限: なしです
あけましておめでとうございます。
よろしくお願いします。。
0247デフォルトの名無しさん
2008/01/07(月) 22:43:13実行本体のところは何でもいいってこと?
0248デフォルトの名無しさん
2008/01/07(月) 22:58:46[2] 問題文(含コード&リンク):年月日計算
問題文:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5649.txt
サンプルプログラム:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5648.txt
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2007年1月8日9:00まで
[5] その他の制限:
サンプルプログラムに「日付を一年ずらす関数」を付け加えるだけでよくなりました。
他の処理はなんとか自分でできました。
恐縮ですがもう一度カキコさせて頂きます。私も必死ですみません...。
心やさしいお方宜しくお願いいたします。
0249デフォルトの名無しさん
2008/01/07(月) 23:10:29/* 一年前の日付を求める */
void day_prev(int *y){
(*y)--;
}
0250デフォルトの名無しさん
2008/01/07(月) 23:12:43[1] 授業単元:C言語演習〜3次元グラフィック〜
[2] 問題文(含コード&リンク):
最終課題としてオリジナル作品を制作する。
以下の仕様を満たすように作成すること。
・3次元オブジェクトを作成する。(基本なんでも良い)
・アニメーションを入れること。(自動アニメーションなど)
・シェーディングを用いること。(グローシェーディングなど)
・プログラムの説明をプログラム中に記載すること。
自分の希望は球体を3D描画し、光源を1つ用意し、グローシェーディングで球体表面に影を付け
自動アニメーションで360度光源が球体の周りを回転して、「月の満ち欠け」再現するようなプログラムを希望します。
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン: cygwin gcc (Devel, Libs, Graphicsをインストール)
[3.3] 言語: C言語
[4] 期限: 2008/1/13(日)
[5] その他の制限:
cygwinでインストール時にDevel,Libs,Graphicsをインストールしてある環境で動作するものをお願いします。
コンパイル:-DWIN32 -lglut32 -lopengl32 -lglu32
GLUT,GLUIはインストールされています。
0251219
2008/01/07(月) 23:14:37(2)だけやった
#include <stdio.h>
double Simpson(int range)
{
double one_r = 1/(double)range;
double s,e = 0.0;
for(s = 1.0; s < 2.0; s += one_r)
e += (((1/(s + one_r))-1/s)/2 + (1/(s + one_r)))*one_r;
return e;
}
int main()
{
printf("区切りの数は5で%lf \n",Simpson(5));
printf("区切りの数は10で%lf \n",Simpson(10));
printf("区切りの数は20で%lf \n",Simpson(20));
printf("区切りの数は40で%lf \n",Simpson(40));
printf("区切りの数は100で%lf \n",Simpson(100));
printf("区切りの数は1000で%lf \n",Simpson(1000));
printf("区切りの数は5000で%lf \n",Simpson(5000));
return 0;
}
0252デフォルトの名無しさん
2008/01/07(月) 23:15:18これは欲張りすぎだろう・・・
0253デフォルトの名無しさん
2008/01/07(月) 23:20:56そうですね。
問題にそう書いてあるだけなので、プログラムを作成していただければ
後は自分でプログラムの説明を書きます。
どうかお願いします。
0254デフォルトの名無しさん
2008/01/07(月) 23:24:351年ずらすだけなら
yが閏年か判断してからインクリメントして、
1足すか足さないかでできるんじゃないか?
0256デフォルトの名無しさん
2008/01/07(月) 23:29:38遠い順からアンカー無しで
【未解決問題】
>>179 1/8 15時
>>18 1/8
>>22 1/8
>>29 1/8
>>244 1/8 残り(1)のみ
>>246 1/09 10:20
>>96 1/9
>>13 1/9
>>138 1/9
>226 1/10
>148 1/12 正午
>250 1/13
>231-232 1/26
>229 1/31
0257デフォルトの名無しさん
2008/01/07(月) 23:33:12ありがとうございました。
早い回答で大変助かります。
せっかく時間があるので中身はきちんと自分で理解してから
提出しようと思います。
0258デフォルトの名無しさん
2008/01/07(月) 23:34:01#include <stdio.h>
#define jap
int main(){
puts(
#ifdef jap
"世界よ、こんにちは!"
#else
"Hello, World!"
#endif
);
return 0;
}
0259デフォルトの名無しさん
2008/01/07(月) 23:40:10[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5672.txt
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限:[2008年1月8日 8:00まで
[5] その他の制限:前スレで解答済みの台形の公式を用い積分を計算するプログラムなのですが
このプログラムのデータ読み込みの部分と積分値を計算する部分を関数化したいのですが
どうすれば良いでしょうか?ちなみに前スレに問題を提示した者ではありません。
どなたかよろしくお願いいたします。
0260248
2008/01/07(月) 23:46:34ありがとうございます。
それだと]>>249さんに教えて頂いたものと違ってきますか?
具体的にプログラムを書いていただけると、
とても助かるのですがお願いできないでしょうか。。
0261デフォルトの名無しさん
2008/01/07(月) 23:46:39>どうすれば良いでしょうか?
スレ違い。関数化する宿題であればきちんと問題から書き直しするように。
0262デフォルトの名無しさん
2008/01/07(月) 23:46:48[2] 問題文 複数の数値に対する最大公約数を求める関数を作成し、それを利用するプログラムを作成せよ。関数は下記の通りとする。
int gcm(int *in,int num)
in 入力値が格納された配列の(先頭)ポインタ
num 入力値の最大公約数
入力に関して
キーボードから、入力値がスペース1つ開けて1行で入力する。この時、入力を促す文字等は決して表示しないこと。
出力に関して
結果+改行のみ出力。指定した数値・改行以外の文字等の出力は一切行わないこと。
[3] 環境
[3.1] OS: windows XP
[3.2] コンパイラ名とバージョン:stady C
[3.3] 言語: C言語
[4] 期限: 2008/01/08(月)(〜22:00)
[5] その他の制限:簡単にお願いします
0263デフォルトの名無しさん
2008/01/07(月) 23:50:09つまり
・読み込み用にopenfile関数。
・計算部分用にmath関数。
・最後にmain関数で結果を出力。
って感じで構成すればいいの?関数名は適当だけど。
0264デフォルトの名無しさん
2008/01/07(月) 23:53:340265219
2008/01/07(月) 23:56:01(1)
C言語によるアルゴリズム事典から抜粋
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5673.txt
0266デフォルトの名無しさん
2008/01/07(月) 23:56:50>>93のことか?
>>94を読んで、>>1を読んで、質問から書き直すように。
0267デフォルトの名無しさん
2008/01/08(火) 00:01:08何のOS?コンパイラはなに?そもそもCかC++かすら分からないのに答えるのは相当なエスパー。
0268デフォルトの名無しさん
2008/01/08(火) 00:03:37http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5674.c
0269デフォルトの名無しさん
2008/01/08(火) 00:32:15これが一番解りませんでした。どうぞよろしくお願いします
[1] 授業単元: Cプログラム
[2] 問題文:while文または、for文を使って以下のように☆と★を表示させるプログラム
[表示例]
★
★☆★
★☆★☆★
★☆★☆★☆★
★☆★☆★☆★☆★
★☆★☆★☆★☆★☆★
★☆★☆★☆★☆★☆★☆★
★☆★☆★☆★☆★☆★☆★☆★
・最下段は★と☆が合計15個ならぶ
・☆印だけではなく、空白も表示させるようにする
*表示例が崩れた場合に一応。ツリー型です。
[3] 環境
[3.1] OS:windows XP
[3.2] コンパイラ名とバージョン: cygwin gcc
[3.3] 言語:C
[4] 期限: 今週金曜日昼まで
[5] その他の制限: 現在for文が終わったところです。まだループの中断は習っていません。if文も使用可能との事です
どうぞよろしくお願いします。また別の問題が解らなかったら現れるかもしれません。
0270デフォルトの名無しさん
2008/01/08(火) 00:41:58#include <stdio.h>
int main(void){
int n=7,i,j;
for(i=0;i<n;i++){
for(j=1;j<n-i;j++)
printf(" ");
for(j=0;j<i;j++)
printf("★☆");
printf("★\n");
}
return 0;
}
0271デフォルトの名無しさん
2008/01/08(火) 00:50:48#include<stdio.h>
#define N 7
int main(void){
int i,j;
for(i=0;i<N;i++){
printf("%*s★",(N-1-i)*2,"");
for(j=0;j<i;j++)
printf("☆★");
printf("\n");
}
return 0;
}
0272デフォルトの名無しさん
2008/01/08(火) 00:51:27適当 http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5675.txt
0273デフォルトの名無しさん
2008/01/08(火) 00:55:42[2] 問題文: http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5676.txt
[3] 環境
[3.1] OS:UNIX
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C言語
[4] 期限:今週の金曜まで
[5] その他の制限:ポインタのところぐらいまでやってます。
よろしくお願いします。
0274デフォルトの名無しさん
2008/01/08(火) 01:03:00仕様はそれであっているのか。なら書くが。
% はくっつくのかくっつかないのか、それともどちらも正しいのか。
文字(列)操作でも、オプションは printnum なのか
0275273
2008/01/08(火) 01:06:550276デフォルトの名無しさん
2008/01/08(火) 01:10:00http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5677.txt
簡単には無理。
0277デフォルトの名無しさん
2008/01/08(火) 01:13:39http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5678.txt
こっちにしといてくれ、入力ミス回避のところうまく動いてなかった。
0278デフォルトの名無しさん
2008/01/08(火) 01:13:50#include <stdio.h>
#include <stdlib.h>
int main (int argc, char **argv) {
if (argc != 3) {
printf("usage: printnum [mode] [value]\n");
return -1;
}
switch (argv[1][0]) {
case 'o':
printf("%o", atoi(argv[2]));
break;
case 'x':
printf("%x", atoi(argv[2]));
break;
case 'd':
printf("%d", atoi(argv[2]));
break;
}
return 0;
}
0279259
2008/01/08(火) 01:26:02はいそういうことです。わかりにくくてすみません。
0280259
2008/01/08(火) 01:31:23定積分の計算を台形の公式をつかっておおよその値を求めるプログラムを作る
宿題が出たのですがそのプログラムは、「データの読み込み関数」と、「積分値を計算する関数」
を作ることが必須だったのです。関数名は何でもかまわないのですが..。
分かりにくくてすみませんでした。
0281デフォルトの名無しさん
2008/01/08(火) 01:39:44[2] 問題文:
10×10(変えることができる)の迷路の脱出過程(どこをどのように通ったか)を表示するプログラムを作成せよ
なお、Sはスタート地点・Gはゴール地点・Wは壁・Rは経路を示す
また脱出者は迷路に関する情報は事前に持っていないこととし、
脱出過程の表示は、定期的に現在地を表示するものと、最終的な経路を表示するものを用意すること。
SWWWWRWWWW
RWRRWRWWWW
RWWRWRWWWW
RRRRRRRRRR
WWRWWRWWWW
WWRWWRWWWW
WWRWWRWWWW
RRRRRRRRRR
WWWWWWWWWR
WWWWWWWWWG
[3] 環境
[3.1] OS:Windows Vista
[3.2] コンパイラ名とバージョン:
[3.3] 言語:C++
[4] 期限:2008年1月9日
[5] その他の制限:関数を使って、なるべく簡単な方法でお願いしますm(_ _)m
0282デフォルトの名無しさん
2008/01/08(火) 01:44:04( ´∀`)つttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5680.zip
ごめん・・・原型とどめてないお・・・
0283デフォルトの名無しさん
2008/01/08(火) 01:49:12宿題であればちゃんとテンプレに沿って問題を書け
(その上で前スレで類似解答があったことを書く)
他人のを使って横着はイクナイ
0284デフォルトの名無しさん
2008/01/08(火) 01:52:29[2] 問題文(含コード&リンク):()
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5679.zip
えーっと、新しいガベージコレクト方法を思いついたというか、参照カウント法の拡張で循環参照に対応できないかという試みです。
その名もユニークカウント法!ってやってたら、ウイークポインタがあるらしいけど、それともちょっと違う。
で、個人では追跡しきれないので手伝ってほしいというものです。
要点は配列クラスとして、最低限満たしているかということと、メモリのスマッシュとリークが発生しないことを確かめたいです。
TMemoryはメモリの操作のラッパーでメチャメチャ低機能です。
UniqueCounterは所有権を他の同じクラスと共有して一意なモノの所有者をカウントします。破棄は最後に残ったひとつが担当しています。
TArrayは上の二つを利用してD言語の影響で作った配列クラスを実現します。っていうかそういう予定です。
[3] 環境
[3.1] OS: Any(筆者はWindows使用)
[3.2] コンパイラ名とバージョン:VC++9 Express。他。
[3.3] 言語:C++
[4] 期限: 3日間位
[5] その他の制限: STL可。BOOST&TR1以降禁止。なるべく標準の範囲で。マルチスレッドは考慮しない。
よろしくお願いします。
0285237
2008/01/08(火) 01:54:11http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5681.c
223から返事はないが、寝る前に例外処理に対応した最終版をupしとこう
それじゃgood luck
0286デフォルトの名無しさん
2008/01/08(火) 01:55:50[2] 問題文
次のsample.txtを配列a[][]にいれてからモニターに表示しなさい。
101 287 345 391 348 287 391
371 388 39 388
88 404 150 428 404 387 145 299 404 197
320 397 141 342 428 429 206
36 214 412 88 176 214 346 210 406 308
250 26 112 370 328 328 284
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限:[2008年1月8日 13:00まで
[5] その他の制限:ファイルの入出力を最近ならいました
0287デフォルトの名無しさん
2008/01/08(火) 01:55:54それは宿題なのか?違うなら帰れ
0288デフォルトの名無しさん
2008/01/08(火) 02:06:38自分への宿題って言うのはだめ。。。ですよねぇ〜。
λ...<帰る。
ファイルは寝て起きたら消します。
乱文失礼しました。
0290デフォルトの名無しさん
2008/01/08(火) 02:10:090291デフォルトの名無しさん
2008/01/08(火) 02:20:14汎用性は持たせずにそれを解ければおk?
0292246
2008/01/08(火) 02:34:38ちょっとそこらへん怪しく感じたので、明日に友人に聞いてみます;;
>>258
回答ありがとうです!実行本体がなんでもよかったら是非使わせてもらいます!
0293デフォルトの名無しさん
2008/01/08(火) 03:13:57#include <stdio.h>
#define GYOU 6
#define RETU 11
int main()
{
FILE *fp = fopen("sample.txt","r");
int a[GYOU][RETU] = {0};
int ch,num,tmp,i,j;
for( i = 0; i < GYOU; i++){ for( j = 0; j < RETU; j++){
for(num = 0;(ch = fgetc(fp)) > ' ';){
tmp = ch - '0';
num *= 10;
num += tmp;
}
if(ch == ' ')
a[i][j] = num;
else if(ch == '\n')
break;
}
}
for( i = 0; i < GYOU; i++){ for( j = 0; j < RETU; j++){
if(a[i][j])
printf("%d ",a[i][j]);
}
putchar('\n');
} return 0;
}
0294デフォルトの名無しさん
2008/01/08(火) 06:01:21#include <iostream>
#include <fstream>
#include <string>
#include <cstdlib>
#include <functional>
#include <map>
using namespace std;
typedef multimap<int,string,greater<int> > mmap;
int main(void){
string name;
cout <<"ファイル名教えれ:";
cin >> name;
ifstream ifs( name.c_str() );
if( !ifs ) { cerr << name << "なんか知らないんだからね" ; return 1; }
mmap tensu;
string buf;
while ( getline( ifs, buf ) ) {
string::size_type pos ( buf.find( " " ) );
tensu.insert( mmap::value_type( atoi( buf.substr( pos ).c_str() ), buf.substr( 0, pos ) ) );
}
for( mmap::iterator it ( tensu.begin() );it != tensu.end(); ++it )
cout << it->first << ":" << it->second << endl;
}
課題の要求が良くわからんのだが,適当に
0295デフォルトの名無しさん
2008/01/08(火) 06:31:09http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5685.txt
0296デフォルトの名無しさん
2008/01/08(火) 07:06:08亀ですいませんが
ありがとうございました
0297デフォルトの名無しさん
2008/01/08(火) 08:47:08ありがとうございます
結果が白黒になるんでしょうか?家にLINUX環境が無いので確認できません…
なるのでしたら修正方法をご教授いただきたいです
0298デフォルトの名無しさん
2008/01/08(火) 09:22:55結果を白黒にしないのなら、310 行目の bmpimg_monochrome() 関数の
呼び出しを削除すればおk。
0299るRJ
2008/01/08(火) 11:29:39[2] 問題文(含コード&リンク):
10進数で入力した整数を2進数に変換するプログラムを作成せよ。
ただし関数を用いること。
[3] 環境
[3.1] OS: (Windows/Linux/等々)
[3.2] コンパイラ名とバージョン: gcc 2.4
[3.3] 言語: C
[4] 期限: 1月9日 九時
[5] その他の制限:
0300 ◆vLIz8KOkPM
2008/01/08(火) 11:51:41http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5686.txt
のようなエラーがでました。修正していただけないでしょうか?
0301デフォルトの名無しさん
2008/01/08(火) 12:14:37講義 プログラミング概論(教養
(平面状の座標を構造体で表す
平面状の二点の座標を読み込み、それら2点の距離を出力するCプログラムを作成せよ
但し、プログラム作成においては、平面状の点をX座標(実数値)、Y座標(実数値)の組の構造体で表し、
それにpointというデータ型名を付けるものとする
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
です、お願いします。
0302デフォルトの名無しさん
2008/01/08(火) 12:16:58[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: (C
[4] 期限: 30分後・・・・・
0303デフォルトの名無しさん
2008/01/08(火) 12:32:01>>299
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5687.c
再帰処理してあるから適当に読み取ってくれ。
0304デフォルトの名無しさん
2008/01/08(火) 12:37:24見てるか?後5分待て。今気がついたから即効作る。
0305デフォルトの名無しさん
2008/01/08(火) 12:43:11#include<stdio.h>
void d2b(unsigned int n){
unsigned int m=0;
int i;
for(i=0;n>0;m=m*2+n%2,n/=2,i++);
for(i+=!i;i>0;printf("%d",m%2),m/=2,i--);
printf("\n");
}
int main(void){
int n;
printf("n=");
scanf("%d",&n);
d2b(n);
return 0;
}
0306デフォルトの名無しさん
2008/01/08(火) 12:44:14(:_;)
0307デフォルトの名無しさん
2008/01/08(火) 13:02:45すまん、間に合わなかったなあ・・・
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5688.c
コンパイル時に gcc ファイル名 -lm
としてくれ。遅れてすまん。。。
0308デフォルトの名無しさん
2008/01/08(火) 13:27:16typedef struct NODE {
char name[NMAX];
struct NODE *parent;
struct NODE *child[CMAX];
}NODE;
0309 ◆vLIz8KOkPM
2008/01/08(火) 13:43:38死ぬ程助かりました…
一応バカなりに、ちょっとは理解したいため、プログラムにコメントで、解説をつけていただけないでしょうか…?
自分でプログラムの説明できるようになりたいんで…
これがプログラムです。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5690.txt
あと、このプログラム中で、NMAX128 DMAX128 CMAX128をひとつにまとめて、MAX512にしてもいいんですか?
0310デフォルトの名無しさん
2008/01/08(火) 14:19:330311デフォルトの名無しさん
2008/01/08(火) 14:55:570312デフォルトの名無しさん
2008/01/08(火) 15:00:07[2]三つのint型整数を昇順に並びかえる関数
void sort3(int *n1,int:n2,int:n3){/*…*/}
を作成せよ
[3]
OS:XP 言語:C++
[4]
1月11日(金)
よろしくお願いします
0313デフォルトの名無しさん
2008/01/08(火) 15:25:19誰かお願いします(ノ_・。)
0314デフォルトの名無しさん
2008/01/08(火) 15:31:58引数がわけわかめ
0315デフォルトの名無しさん
2008/01/08(火) 15:36:01#include <ostream.h>
#include <stdlib.h>
template<class T>
class Sort {
private:
void sort2(T& i1, T& i2) {
T temp = 0;
if ( i1 > i2 ) {
temp = i1; i1 = i2; i2 = temp;
}
}
public:
void sort3(int* n1, int* n2, int* n3) {
sort2(*n1, *n2);
sort2(*n2, *n3);
sort2(*n1, *n2);
}
};
int main()
{
int x, y, z; Sort<int> sort;
srand(time(NULL));
x = rand(); y = rand(); z = rand();
sort.sort3(&x, &y, &z);
cout << x << " <= " << y << " <= " << z << endl;
return 0;
}
0316デフォルトの名無しさん
2008/01/08(火) 15:43:57迷路自体のプログラムはできてるんですか?
表示というか、経路管理の関数だけ作ればおk?
0317デフォルトの名無しさん
2008/01/08(火) 15:55:38これはひどい。最短求められてない。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5691.txt
0318デフォルトの名無しさん
2008/01/08(火) 16:27:202 8パズルの解法
1、84
162
537 の状態から
123
456
78 に至る(空白=0)コマの動かし方を求める。まず初期状態から動かせる向きをその都度ランダム
に選んで状態を変えることによって目標状態を目指すプログラムを作りなさい。
2、1のプログラムを改良して過去に一度なったことがある状態に2回以上ならないようにしてください。
3,1 unix
3,2 gcc
3,3 c
4 今日中
プログラムの宿題なんですが解いてくださいお願いします。こまってます。
0319デフォルトの名無しさん
2008/01/08(火) 16:35:03[1] 授業単元:
[2] 問題文(含コード&リンク):西暦を入力すると、その年の祝日・国民の休日・振替休日を表示するプログラムを作成せよ。
なお、休日については以下を参照すること。
http://ja.wikipedia.org/wiki/%E6%97%A5%E6%9C%AC%E3%81%AE%E6%9A%A6#.E5.9B.BD.E6.B0.91.E3.81.AE.E7.A5.9D.E6.97.A5
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:?
[3.3] 言語:C
[4] 期限:2008年1月8日23時
[5] その他の制限:よろしくお願いします
0320デフォルトの名無しさん
2008/01/08(火) 16:49:09ハッピーマンデー前後だけでも大きく変わるのだが
0321デフォルトの名無しさん
2008/01/08(火) 16:50:280322デフォルトの名無しさん
2008/01/08(火) 16:53:311948年以降です
現行の休日制度が変わらないと仮定して、9999年ぐらいまで対応していただきたいです
0323デフォルトの名無しさん
2008/01/08(火) 16:53:530324デフォルトの名無しさん
2008/01/08(火) 16:56:49http://www.kusa.ac.jp/~yukio-m/lecture/1999/report/index.html
0325デフォルトの名無しさん
2008/01/08(火) 17:01:07とりあえず
自分の書いた中で
どこかおかしなとこがないか見直そうぜ
0327デフォルトの名無しさん
2008/01/08(火) 17:08:41すいません。
840
162
537
から
123
456
780
です。これでいいでしょうか?
他におかしい点あったら指摘お願いします。
0328デフォルトの名無しさん
2008/01/08(火) 17:23:10325じゃないけど、何がしたいのか分からない。
・最初の数字バラバラの状態は、手動入力で受付るようにすのか?
それともファイルを読み込むのか?
もしくはランダムで作成するのか?
・パズル解くまでの過程は1つ1つ表示するのか?
それとも手動入力orファイル読み込み後、いきなり並び替え後を表示していいのか?
それだと、どういう順序で解いたのか分からない。(題意では>>コマの動かし方を求める。ってあるぞ?)
0329デフォルトの名無しさん
2008/01/08(火) 18:08:350330 ◆CxWBqy7wZQ
2008/01/08(火) 18:53:37[2] 問題文(含コード&リンク):
二分木の問題で数式をノードとしたものです。
大方の形はできているのですが何故か正しい計算結果が出ません。
どなたか修正お願いします。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5693.txt
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc 3.3
[3.3] 言語: C
[4] 期限: 1月9日24:00
[5] その他の制限:
よろしくお願いします。
0331273
2008/01/08(火) 18:56:29すいません。%のことは書き間違えてました。%は全部くっついてません。
>>278
ありがとうございます。
誰か2番の問題の方も書いていただけませんか?
0332デフォルトの名無しさん
2008/01/08(火) 19:27:10[2] 問題文(含コード&リンク):素数の連結リストの作成
[3] 環境
[3.1] OS: windows home
[3.2] コンパイラ名とバージョン: gcc(cygwin)
[3.3] 言語: C
[4] 期限: 特にないですが、早ければ早いほどありがたいです
[5] その他の制限: 特になし
一応プログラムを作ってみました
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5694.txt
数値のリストへの格納、2の倍数が格納されているリストの削除までは正常に行えているようなのですが
3の倍数が格納されてるリストを削除しようとする時にcore dumpしているようです。
カーマイケル数を求めるために必要なリストを作っている最中なので、先に進めず悩んでいます
core dumpの原因が分かる方、ヒントor修正お願いします
0333デフォルトの名無しさん
2008/01/08(火) 19:37:42http://www.nlab.sogo1.ynu.ac.jp/ynu/lecture/ibt1/2007report.pdf
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク) :上記URL
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc 3.3
[3.3] 言語: C
[4] 期限: 明日の朝一です
[5] その他の制限: 特にありません
よろしくお願いします。
0334デフォルトの名無しさん
2008/01/08(火) 19:57:11ありがとうございました
参考にさせて頂きます
0335デフォルトの名無しさん
2008/01/08(火) 20:46:2260行目あたりの
>for(j=pow(q,2);j<MAX;j=j+2*q) list_remove(list_search(&data,j));
でlist_searchからNULLが返ったときにコアダンプ。
おそらくポインタの使いかたとかじゃないかと思うけど。
正確にはlist_removeのif (*p != NULL)でエラーが出てるはず。
for文にあまりぶち込まない方がいいとおもいます。
0336デフォルトの名無しさん
2008/01/08(火) 21:15:11list_search(&data, j)がNULLのときにエラーが起きてる気がする。
q=3;
while(pow(q,2)<=MAX){
for(j=pow(q,2);j<MAX;j=j+2*q) list_remove(list_search(&data,j));
/*リストから9,15,21,24,...のデータが入ってるリストを削除*/
q += 2;
/*次はリストから25,35,45,55,...のデータが入ってるリストを削除*/
//45は既に無いからlist_search(&data, j)はNULLでエラー
}
そもそも篩には向いてないような。
いきなり2からMAXまでリストにするのではなく、
小さい素数から順にリストにしていくのがこの場合妥当だと思われ。
0337デフォルトの名無しさん
2008/01/08(火) 21:19:58とうとう横浜国立大学が来たか...
0338デフォルトの名無しさん
2008/01/08(火) 21:27:37[2] 問題文: http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5695.txt
[3] 環境
[3.1] XP
[3.2] コンパイラ名とバージョン: visual studio 2005
[3.3] 言語: C言語
[4] 期限: 1/9
[5] その他の制限:特に無いです
0339デフォルトの名無しさん
2008/01/08(火) 21:40:28原型ないが許せ。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5697.txt
0340237
2008/01/08(火) 21:46:33http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5696.txt
このプログラムで定義した木構造は、それぞれのノードが
そのノードの名前、親ノードへのポインタ、子ノードへのポインタを持っている。
ただし、子ノードへのポインタは、ノード構造体ポインタの配列として所持している。
その配列の限界値、つまりひとつのノードが持つことができる子ノードの数はCMAXとしてマクロ定義してある。
DMAXマクロ定義は木構造の深さの最大値を定義してある。
これは検索コマンド実行時に、検索によって見つかったノードのパスを表示する際に使用している。
NMAXマクロ定義はノードの名前の最大値を定義してある。
したがって、NMAX、CMAX、DMAXはそれぞれ違う意味を持つため一括で定義することはオススメできない。
一応、一度手を出した宿題だからやったけど、もうこれ以上のことは期待しないでくれ。
コメントは>>285を基に、若干修正しながらつけた(プログラムの構造自体は全く変わっていない)
ファイルエンコードはshift-jis
0341デフォルトの名無しさん
2008/01/08(火) 21:50:50[2] 問題文: 次のパターンを識別する単一パーセプトロンを構成せよ。
x2=x1-0.5
(0.5<x1<1)の範囲で上部分をy=0,下部分をy=1でお願いします
[3] 環境
[3.1] XP
[4] 期限: 1/9
[5] その他の制限:特に無いです
0342デフォルトの名無しさん
2008/01/08(火) 22:13:25どうでもいいが、Gは0x47だな。
0343デフォルトの名無しさん
2008/01/08(火) 22:23:04[2] 問題文:
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5653.txt
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:visual studio 2005
[3.3] 言語: C言語
[4] 期限:
[5] その他:よろしくおねがいします。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5698.txt
前にもお願いしましたが今回は細かい仕様書もうpしました。
よろしくお願いします。
0344デフォルトの名無しさん
2008/01/08(火) 22:28:54[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5699.txt
このソースコードを2つ以上に分けて分割コンパイルできるようにせよ
大域変数のmain以外のファイルからの参照に関してはextrnキーワードを使う
例:
gcc s1.c s2.c
gcc -o s.out s1.o s2.o
とするとs1とs2をリンクしてs.outを作成してくれる
[3.1] OS:Linux
[3.3] 言語:C
[4] 期限:2008年01月09日10:20まで
[5] その他の制限: なしです
あけましておめでとうございます!
どうかよろしくお願いします。
0345デフォルトの名無しさん
2008/01/08(火) 22:29:540346デフォルトの名無しさん
2008/01/08(火) 22:48:07意味わからんが15ゲームの簡単バージョンってこと?
「群論 置換群」でググッてみなさいとエスパーしてみる
0347デフォルトの名無しさん
2008/01/08(火) 23:20:18//ヘッダファイルsh.h
#include <stdio.h>
#include <stdlib.h>
typedef struct node{int x;int y;int data;struct node *next;}MyList;
extern MyList *datahead;
MyList *AllocMyList(void);
int initialize(void);
int SumMyList(MyList *m);
int CountMyList(MyList *m);
double AveMyList(MyList *m);
int DeleteMyList(MyList *m, int n);
int AppendMyList(MyList *m, int x, int y, int data);
void PrintMyList(MyList *m);
int CmpX(MyList *p, MyList *q);
int CmpY(MyList *p, MyList *q);
int CmpData(MyList *p, MyList *q);
MyList *Merge(MyList *a, MyList *b, int (*cmp)(MyList*, MyList*));
MyList *MergeSort(MyList *m, int (*cmp)(MyList*, MyList*));
void quit(void);
0348デフォルトの名無しさん
2008/01/08(火) 23:22:58#include "sh.h"
int main(int argc, char *argv[]){...}
//s2.c
#include "sh.h"
MyList *AllocMyList(void){...}
int initialize(void){...}
int SumMyList(MyList *m){...}
int CountMyList(MyList *m){...}
double AveMyList(MyList *m){...}
int DeleteMyList(MyList *m, int n){...}
int AppendMyList(MyList *m, int x, int y, int data){...}
void PrintMyList(MyList *m){...}
int CmpX(MyList *p, MyList *q){...}
int CmpY(MyList *p, MyList *q){...}
int CmpData(MyList *p, MyList *q){...}
MyList *Merge(MyList *a, MyList *b, int (*cmp)(MyList*, MyList*)){...}
MyList *MergeSort(MyList *m, int (*cmp)(MyList*, MyList*)){...}
void quit(void){...}
0349デフォルトの名無しさん
2008/01/08(火) 23:24:09s2.cに下記を追加。
MyList *datahead=NULL;
0350デフォルトの名無しさん
2008/01/08(火) 23:36:39http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5700.txt
0351デフォルトの名無しさん
2008/01/08(火) 23:49:23>259 >318 >319
【未解決問題】
>>13 >>333 1/9 明日の朝一
>>138 1/9
>>338 1/9
>>341 1/9
>>330 1/9 24:00
>148 1/12 正午
>250 1/13
>231-232 1/26
>229 1/31
>343 不明
0352デフォルトの名無しさん
2008/01/09(水) 00:05:43前もあっただろ。少し手直しさせてもらったが。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5701.txt
0353344
2008/01/09(水) 00:16:29解答ありがとうございます!
追加というのはs2.cの一番下でいいんですよね?
s1.cが短いのですが、これコンパイルできるのですか!?
0354デフォルトの名無しさん
2008/01/09(水) 00:17:21>>329
とりあえず srec.c の方だけ
( ´∀`)つttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5702.c
続き(tsrec.c)が欲しい場合は、「わっふるわっふる」と書き込んでください。
0355354
2008/01/09(水) 00:21:57ソート順が逆だったよ・・・
itemrel_compare 関数の戻り値をひっくりかえせばおk。
[2] 問題文
http://www.uploda.org/uporg1194609.rar.html
パス:C++(半角)
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ名とバージョン:VisualStudio2005
[3.3] 言語:C++
[4] 期限:1/9 18:00
[5] その他の制限:
問題文と一緒に同梱してあるプログラム(自作)程度しか分かりません。orz
「新しいプロジェクト」→「VisualC++」→「CLR」→「Windowsフォーム アプリケーション」にて作成。
提出の指定形式になります。
同梱したプログラムに何か付け足せば正常作動することが分かっています。
(他の人に聞きましたが、それ以上教えてくれませんでした)
今日中とかいうのは無理なお願いだと承知ですが、どうかよろしくお願いします。。。
0357デフォルトの名無しさん
2008/01/09(水) 01:12:130358デフォルトの名無しさん
2008/01/09(水) 02:09:10C++/CLR はこのスレの範疇なのかというのは置いくとして,
まあ,おそらくはこういうことなんだろうけど,
void qsort(int m,int k){
j=m;
if (m<n){
v=a[m]; p=m-1; q=k+1;
for(i=m;i<=n;i++) { if(a[i]<v) { b[j++]=a[i]; } }
p=j-1;
//修正 if(a[i]=v) → if(a[i]==v)
for(i=m;i<=n;i++) { if(a[i]==v){ b[j++]=a[i]; } }
q=j;
for(i=m;i<=n;i++){ if(a[i]>v){ b[j++]=a[i]; } }
// 追加
for(i=1;i<=n;i++){ a[i]=b[i]; }
if(m<=p){ qsort(m,p); }
if(q<=n){ qsort(q,n); }
}
}
これをクイックソートとは言いたくないなぁ
0359デフォルトの名無しさん
2008/01/09(水) 02:23:37わっふるわっふる
じゃなくて、ありがとうございますm(__)m
よろしければ、わっふるわっふるw
0360デフォルトの名無しさん
2008/01/09(水) 02:29:31ナイスわっふる。
( ´∀`)つttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5703.c
ちょっといい加減に書いてあるけど、紙で提出する分にはバレないでしょうw
0361デフォルトの名無しさん
2008/01/09(水) 02:50:580362デフォルトの名無しさん
2008/01/09(水) 02:51:361. それぞれのNodeのdataの領域を確保してない.
typedef struct node {
char data[20]; //char *data;
struct node *left;
struct node *right;
} Node;
とするか,逐一 realloc() するようにする.
2. main()でのdata への代入が文字列なので,strcpy() なり,strcat() なりで.
0363デフォルトの名無しさん
2008/01/09(水) 03:13:47�d�d
文字列ポインタがまずかったみたいですね
0364デフォルトの名無しさん
2008/01/09(水) 03:37:42教えてください
0365デフォルトの名無しさん
2008/01/09(水) 03:41:10[1] 授業単元: C言語演習
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5705.txt
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語:C
[4] 期限: 1/9 今日の7時頃まで
[5] その他の制限: 大変急で申し訳ないのですがよろしくお願いします<(_ _)>
0366デフォルトの名無しさん
2008/01/09(水) 03:41:28Linux板池。
それとも「WORDファイルの読み取り属性を変更するプログラムを作れ」って宿題か?
とりあえず>>1な。
0367364
2008/01/09(水) 03:51:11>>366
どうもすみません。以下が質問文です
[1] 授業単元: ソフトウェア開発の演習
[2] 問題文
LAMP環境のwebアプリを作っていますが、PHPからC言語プログラムを実行して、
ワードファイルの読み取り属性を変更したいと思っています。しかしながら、windowsでは
win32APIなどの関数を使って、読み取り属性変更はできますが、Linux上ではそのようなことができるのでしょうか ?また、PHPからC言語のプログラムは実行可能でしょうか?
[3] 環境
[3.1] OS: FedraCore6
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語:C
[4] 期限: 1/10 までです
[5] PHP上からC言語の実行ファイルを実行して、読み取り属性を変えたいと思っております。
0368デフォルトの名無しさん
2008/01/09(水) 03:56:27問題文は先生から出されたままを記述しろ
PHPによるwebアプリはスレ違いだから他へ行け
0369364
2008/01/09(水) 03:59:57そうですか。すみません・・・
0370デフォルトの名無しさん
2008/01/09(水) 04:09:22Linux板行った方がいいと思うけどな。
あっちなら専門だから。
0371デフォルトの名無しさん
2008/01/09(水) 04:26:38input[0]の内容
0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
input[1]の内容
0 0 0 0 0 0 0 0 0 0 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
格納されてるように見えるが
0372デフォルトの名無しさん
2008/01/09(水) 04:28:27期限13日までと書きましたが、ソースコードの詳細な仕様書を書かないといけないので
余裕を持って前日12日くらいまでに作成していただけると助かります。
(自分のレベルではソースコードを理解して、仕様書作るのを1日でやるのは難しいので)
お手をわずらわせますが、よろしくお願いします。
0373デフォルトの名無しさん
2008/01/09(水) 04:32:46これも自分でやりますので、プログラムの作成をよろしくお願いします。m(_ _)m
0374365
2008/01/09(水) 04:54:24input[]は
input[]="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
で初期化しているので
input[0]=0
input[1]=1
ではないのでしょうか?
それともtableのことなのでしょうか・・・
0375365
2008/01/09(水) 05:00:143行目以降の左から数字、記号、数字に対応しています。
3行目を読み込むプログラムで
table[cur][p-input]=next;
の後にprintfでその中身を表示すようとしてもなにも表示されないのです@@;
たぶんwhileの条件で蹴られてると思うのですがよくわかりません;
よろしくお願いします<(_ _)>
0376デフォルトの名無しさん
2008/01/09(水) 05:18:03for(i = 0; i < 2; i++){
for(j = 0; j < sizeof(input) - 1; j++)
printf("%d ", table[i][j]);
printf("\n");
}
をreturn 0;直前にやれば、中身はきっちり表示される。
0377365
2008/01/09(水) 05:43:460 a 1
を読み込むときに
table[cur][p-input]=next;のときに
curが0でp-inputが記号aの場所(配列inputの中のaの場所、何番目か)
なのでp-inputが10でnextが1なので
table[0][10]=1となると思うのですが
>>367
のプログラムを加えても0000000・・・・
しか表示されないのですがなぜでしょうか@@;
すみません無知で・・・
0378デフォルトの名無しさん
2008/01/09(水) 05:49:06読み込んでるファイルをチェック。
1行目の末尾に、つまり改行前に半角スペースがあるとか。
0379デフォルトの名無しさん
2008/01/09(水) 05:49:260380365
2008/01/09(水) 06:03:44末尾の数字を打ってすぐ改行していました・・・。
なにがおかしいんでしょうかね;
0381365
2008/01/09(水) 06:36:04elseでの格納がうまくいってないみたいです;(どこがおかしいのかはわからずorz)
ちなみにgcc -Wallでコンパイルしたときには
whileの条件の行に
warning: format '%c' expects type 'char *',but argument 4 has type
'int *'
みたいなのが出てきます・・
0382デフォルトの名無しさん
2008/01/09(水) 07:56:56chがint型なんでchar型にしる
0383365
2008/01/09(水) 08:03:430384デフォルトの名無しさん
2008/01/09(水) 09:09:30[2] 降順のマージソートを作れ。
[3.1] mac os [3.2] gcc [3.3] C [4] 期限: 1月10日
[5] 単純な問題だろうと思うのですがつまづきまくりです。。お願いします。。。演算子<=を変えるだけではだめですよね。
昇順のマージソート↓
WORD *merge_sort(WORD* x) {
WORD *a, *b, *y;
if(x == NULL || x->next == NULL) return x;
a = x; b = x->next;
if(b != NULL) b = b->next;
while(b != NULL) {
a = a->next; b = b->next;
if(b != NULL) b = b->next;
}
y = a->next; a->next = NULL;
return merge(merge_sort(x), merge_sort(y));
}
WORD *merge(WORD* x, WORD* y) {
WORD z, *p; p = &z;
while(x != NULL && y != NULL) {
if(x->count <= y->count) {
p->next = x; p = x; x = x->next;
} else{
p->next = y; p = y; y = y->next; }}
if(x == NULL) p->next = y;
else p->next = x;
return z.next; }
0385デフォルトの名無しさん
2008/01/09(水) 09:38:33こんな面倒な事する必要あるか?
0386デフォルトの名無しさん
2008/01/09(水) 09:43:41マージソートってこんなアルゴリズムだったっけ?
0387デフォルトの名無しさん
2008/01/09(水) 10:02:32[2] 問題文(含コード&リンク):
(1)1〜1000の範囲の乱数を100個発生させて、50〜500までの数字のみを抜き出して画面に表示させる。
(2)トランプゲームのブラックジャックを作れ
(3)-10〜10までの範囲の整数の乱数を3つ発生させ、それぞれを二次方程式ax^2+bx+cの係数値として方程式の解を求めよ。また、それを1000回繰り返した場合の、二つの実数解になる確率、虚数解になる確率、十回となる確率をそれぞれ画面に表示せよ
(4)1〜20の乱数を二つ発生させ、その和を予測しキーボードから入力、正解したら終了。チャンスは10回
(5)引数としてA,B,Cグループの値を関数heikinに渡し、以下を求め画面に表示させる。
1.A、B、Cそれぞれの平均値
2.全部の平均値
A.(123、234、531、768、981)
B.(918、392、029、250、762、520、238)
C.(987、098、518、987)
(6)自然数0〜99の範囲の乱数を30個発生させて、それらを小さい順に並び替えて画面に表示させる
(7)英文のテキストファイルから、aとbの数を数える
(8)1940年1月1日を0として生年月日を連続値に置き換え、その数値を種として乱数を発生させ、乱数値を4で割った余りが0「大吉」、1「中吉」、2「小吉」、3「凶」となるおみくじを作成せよ
[3] 環境
[3.1] OS Windows XP
[3.2] コンパイラ名とバージョン: Visual Studio.NET2003
[3.3] 言語: C
[4] 期限:1/10の午後1時まで
よろしくお願いします。
0388デフォルトの名無しさん
2008/01/09(水) 10:03:57普通にできてるだろ。
プロトタイプ宣言してなくてエラーとかじゃない限り。
もしくは単方向リストじゃないとか。
0389デフォルトの名無しさん
2008/01/09(水) 10:04:57連結リストにしてるから面倒くさいな。
WORD *merge(WORD* x, WORD* y) {
WORD z, *p; p = &z;
while(x != NULL && y != NULL) {
if(x->count >= y->count) { /* 変更箇所 */
p->next = x; p = x; x = x->next;
} else{
p->next = y; p = y; y = y->next; }}
if(x == NULL) p->next = y;
else p->next = x;
return z.next; }
これでいいんじゃね
0390384
2008/01/09(水) 10:05:43WORD x、yは構造体のリストです。
構造体はint型のcountを持っていてこの数字の順に並べ替えます。
このソースで昇順のソートはできているのですが…
0391デフォルトの名無しさん
2008/01/09(水) 10:18:04#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int i, x;
srand(time(NULL));
for (i = 1; i <= 100; ++i) {
x = (rand()+1) % 1000;
if (50 <= x && x <= 500) {
printf("%3d: %d\n", i, x);
}
}
return 0;
}
0392デフォルトの名無しさん
2008/01/09(水) 11:07:29#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <time.h>
int dim() {
int a, b, c, D;
a = rand() % 20 - 10;
b = rand() % 20 - 10;
c = rand() % 20 - 10;
printf("%dx^2 + %dx + %d = 0\n", a, b, c);
D = b * b - 4 * a * c;
if (D > 0) {
printf("x = %lf, %lf\n",
(-b+sqrt(D))/(2*a), (-b-sqrt(D))/(2*a));
return 1;
}
if (D < 0) {
printf("x = %lf + j%lf, %lf - j%lf\n",
(float)-b/(2*a), sqrt(-D)/(2*a), (float)-b/(2*a), sqrt(-D)/(2*a));
return -1;
}
if (D == 0) {
printf("x = %lf\n", (float)-b/(2*a));
return 0;
}
}
0393デフォルトの名無しさん
2008/01/09(水) 11:08:11int i = 0, a = 0, b = 0, c = 0, result = 0;
srand(time(NULL));
for ( ; i < 1000; ++i) {
result = dim();
if (result == 1) ++a;
else if (result == -1) ++b;
else if (result == 0) ++c;
}
printf("実数解の確率 = %2.2f%%\n", (float)a/10);
printf("虚数解の確率 = %2.2f%%\n", (float)b/10);
printf("重解の確率 = %2.2f%%\n", (float)c/10);
return 0;
}
0394デフォルトの名無しさん
2008/01/09(水) 11:17:23rand() % 20 - 10;
じゃなくて
rand() % 20 * rand() & 1 ? 1 : -1;
だな。
0395デフォルトの名無しさん
2008/01/09(水) 11:20:46rand() % 21 - 10;
だ、脳みそに蛆わいてたって事で
0396デフォルトの名無しさん
2008/01/09(水) 12:10:30free忘れてるぞ
0397デフォルトの名無しさん
2008/01/09(水) 12:12:550398332
2008/01/09(水) 12:32:50重複してる数の処理のところで不具合起こってたんですね、なるほど
学科での課題では連結リスト扱う機会が少なかったもので…正直知識不足の状態です
wikipediaに掲載されてたプログラムをベースに手探りで作ったものだったので、
自分じゃどこが悪いのか途方に暮れてました
これを機会に色々勉強してみます。ありがとうございました!
>>339
ありがとうございます!自分が作ったものより単純明快でありがたいです
今このプログラムにカーマイケル数を探すプログラムを追加して動かしてます
とりあえず一千万までの数値を見つけてますが、いつ終わることやらw
0399デフォルトの名無しさん
2008/01/09(水) 12:34:56[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5707.txt
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:Visual Studio 6.0
[3.3] 言語:C
[4] 期限:2008年1月11日
お願いします
0400デフォルトの名無しさん
2008/01/09(水) 13:08:31#include <stdio.h>
#include <math.h>
int main() {
unsigned int x, y, z, i;
int tunnel[20];
printf("物体のサイズ(縦,横,高さ):");
scanf("%d,%d,%d", &x, &y, &z);
for (i = 0; i < 20; ++i) {
printf("%d番目のトンネルの半径:", i+1);
scanf("%d", &tunnel[i]);
if (tunnel[i] <= 0) {
tunnel[i] = 0;
break;
}
}
printf("物体のサイズ:縦:%d,横:%d,高さ:%d\n", x, y, z);
if (x > y && x > z) x = z;
else if (y > x && y > z) y = z;
for (i = 0; tunnel[i] != 0; ++i) {
printf("%d番目のトンネル(半径%d):", i+1, tunnel[i]);
if (sqrt(x*x + y*y) < (double)(tunnel[i]<<1)) {
printf("YES\n");
} else printf("NO\n");
}
return 0;
}
0403デフォルトの名無しさん
2008/01/09(水) 14:07:36ちゃんと>371が指摘した通りに出力されているのが>376のロジックで確認できるよ。
その他の問題は兎も角、それだけに関しては問題がなさそうなんだが。
あーそうそう、table[]は初期化しておくべきだと思うけどね。
0404 ◆vLIz8KOkPM
2008/01/09(水) 14:47:55大変ありがとうございます。おかげさまで助かりました。
わざわざ時間を割いて頂き、ほんとうにありがとうございましたm(_ _)m
0405365
2008/01/09(水) 14:53:280で初期化した後に試してみたら>>371の
ように表示されるならいいのですが
ずっと0しか表示されないのです;;
なので代入できていないのかと思っているのですが。
0406デフォルトの名無しさん
2008/01/09(水) 14:57:590407365
2008/01/09(水) 15:10:13http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5708.txt
でデータは
0
1 2
0 a 1
0 b 1
1 a 2
1 b 1
2 a 0
です。
よろしくお願いします<(__)>
0408デフォルトの名無しさん
2008/01/09(水) 15:44:45はい、実行結果。
--
0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
--
これの何が問題なのか判らん。
0409365
2008/01/09(水) 16:42:53現在Terminalというソフト?でやっているのですが
なぜか0 0 0 0 0 0 0 0・・・・しかでないんですよね;
別の翻訳するの探してみたいと思いますorz
0410デフォルトの名無しさん
2008/01/09(水) 16:47:19[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5709.txt
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:Visual Studio 2005
[3.3] 言語:C
[4] 期限:2008年1月09日(本日の11時程度まで)
期限がすぐで申し訳ないのですが…ほぼ初心者 なのでそれっぽいプログラム書いてくださると助かります。
よろしくお願いします。
0411デフォルトの名無しさん
2008/01/09(水) 16:47:33ソースうp汁
0412デフォルトの名無しさん
2008/01/09(水) 17:18:26http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5710.txt
0413デフォルトの名無しさん
2008/01/09(水) 17:22:280414デフォルトの名無しさん
2008/01/09(水) 17:51:56まさかとは思うがデータファイルの改行が CR (0x0d) とかいう落ち?
0415デフォルトの名無しさん
2008/01/09(水) 18:05:38[2] 問題文(含コード&リンク):
端末から2つの整数aとbを入力し、a以上b以下の範囲の素数を小さい順に
ファイルlist.txtに出力するプログラムを書け。一行に一個の素数となるようにせよ。
ソースプログラムと、a=300、b=340とした場合の実行結果を提出せよ。
なお、あるひとつの整数が素数であるかないかの判定の部分は、関数sosuuとして
mainの外に書くこと。つまりint sosuu(int);として、sosuu(10);は偽つまり0を、
sosuu(13);は真つまり0以外の値をretuenするようにせよ。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: VC
[3.3] 言語:C
[4] 期限: 2008.01.10
[5] その他の制限:なんでもありです
授業に出ていたにもかかわらず、まったくわかりません。よろしくお願いいたします・・。
0416デフォルトの名無しさん
2008/01/09(水) 18:18:55[2] 問題文
255*255のpgm形式の画像がある。
各ピクセルのRGBから輝度を読み取りその平均を出力するプログラムを作成せよ。
[3] 環境
[3.1] OS: Vine-Linux4.1
[3.2] コンパイラ名とバージョン: gcc バージョンは不明です。
[3.3] 言語:C言語
[4] 期限: 1/10 正午まで
[5] その他の制限:
freadを使って作成するようにとのことでした。fgetはNG。
以上よろしくお願いします。
0417416
2008/01/09(水) 18:24:00画像サイズは256*256です。
すいませんでした。
0418デフォルトの名無しさん
2008/01/09(水) 18:27:25pgmはグレイだから、RGBはないわけだが。
それから、輝度の値域は?
例えばpgm画像のdepth指定に関わらず0-255と考えるのか、
或いはpgm画像のdepthを考慮して0-1と考えるのか。
0419デフォルトの名無しさん
2008/01/09(水) 18:31:47結果は自分で確認して(うちでは実行できた)
#include <stdio.h>
#include <math.h>
#define TRUE (-1)
#define FALSE (0)
int sosuu(int num){
int count,limit;
count=2;
limit=(int)sqrt((double)num);
while(count<=limit)
{
if((num%count)==0)return FALSE;
count++;
}
return TRUE;
}
int main(void){
int a,b,count;
FILE *fp;
fp=fopen("list.txt","w");
if(fp==NULL){printf("fopen error!\n");return 1;}
printf("a=");scanf("%d",&a);
printf("b=");scanf("%d",&b);
if(a>b){printf("入力値はa<=bにして下さい。\n");return main();}
for(count=a;count<=b;count++)
{
if(sosuu(count))fprintf(fp,"%d\n",count);
}
fclose(fp);
return 0;
}
0421デフォルトの名無しさん
2008/01/09(水) 19:30:51それじゃ、depthは255であることを期待していいの?
サイズも決まっているみたいだからいいよね。
0422416
2008/01/09(水) 19:41:10よろしくお願いします。
0424デフォルトの名無しさん
2008/01/09(水) 19:52:18[2] 問題文
差分法(陰解法)を用いて
d~2f/dt~2 = d~2f/dx~2 + d~2f/dy~2の解を求めるプログラムを作れ。
陽解法と比較して格子点の刻み幅を変えた場合の安定性などについて考察せよ。
[3] 環境
[3.1] OS: windows
[3.2] コンパイラ名とバージョン: gcc バージョンは不明です。
[3.3] 言語:C言語
[4] 期限: 1/10 24時まで
[5] その他の制限: 特になし。
先生がある程度のソースをスライドで見せてくれたのですがよくわかりません。
どなたかお願いします。
0426414
2008/01/09(水) 20:26:32mi なら mi の機能で改行コードの判別が出来るはずだが,miは使ってないのでしらない.
とりあえず,od -tx1 <問題のデータファイル> ってやって
0000000 30 0d 31 20 32 0d 30 20 61 20 31 0d 30 20 62 20
こんなかんじなら,CR( 0x0d ),
0000000 30 0a 31 20 32 0a 30 20 61 20 31 0a 30 20 62 20
なら LF( 0x0a )
0000000 30 0d 0a 31 20 32 0d 0a 30 20 61 20 31 0d 0a 30
なら CRLF
0427デフォルトの名無しさん
2008/01/09(水) 20:41:190428365
2008/01/09(水) 20:42:12今調べてみたところCR(Mac)になっており
LF(UNIX)にしてみたらできました!><
改行コードで結果が変わるとは・・・
回答ありがとうございます_〆(;ωq`)
0430デフォルトの名無しさん
2008/01/09(水) 21:02:41[2] 問題文: USBカメラからの映像を動画、画像キャプチャーできるプログラムを作成せよ
[3] 環境
[3.1] XP
[3.2] コンパイラ名とバージョン: visual studio 2005
[3.3] 言語: C++
[4] 期限: 1/11
[5] その他の制限:特に無いです
こんばんは。シンプルなものでよいそうなのですが、よくわかりません。
お手数ですが、どなたかよろしくお願いします。
0431デフォルトの名無しさん
2008/01/09(水) 21:09:06.._ .......、._ _ /:/l!
:~""''.>゙' "~ ,、、''‐'、| _
゙、'、::::::ノ:::::::_,.-=. _〜:、 /_.}'':,
``、/:::::::::__....,._ `゙'Y' _.ェ-、....._ /_゙''i゙ノ、ノ
,.--l‐''"~..-_'.x-='"゙ー 、`'-、 ,:' ノ゙ノブ <またまたご冗談を
" .!-'",/ `'-‐'') /\ `/ でノ-〈
.-''~ >'゙:: ‐'"゙./ ヽ.,' ~ /
//::::: ', / ,:'゙
0432デフォルトの名無しさん
2008/01/09(水) 21:20:57悪いことは言わない。諦めろ。
http://www1.bbiq.jp/kougaku/link_videocap.html
ここを読んで自力でやるか、やってもらえる人が表れるのを待つしかない。
俺は手元にwebカメ(ry
0433デフォルトの名無しさん
2008/01/09(水) 21:59:48#define buffer_size 10000
main(char *argv[])
{
char str[1000];
FILE *p;
char buffer[10000];
p=fopen(argv[1],"r");
if(p){
while(fgets(buffer,buffer_size,p)){
printf("%s",buffer);
}
}
if(!p){
p=fopen(argv[1],"w");
printf("ファイルに何か書き込んでください。\n");
while(fputs(buffer,p)!=-1);
}
fclose(p);
}
コマンドラインでmain.exe test.txtとすればtest.txt を読み込み or に書き込むプログラムを作りたいのですが、間違いを指摘してください。
main関数の引数は利用します。よろしくお願いします。
0434デフォルトの名無しさん
2008/01/09(水) 22:02:23main(char *argv[]) ここが間違ってる
0435デフォルトの名無しさん
2008/01/09(水) 22:03:37何を書き込みたいの???
while(fputs(buffer,p)!=-1);
0436433
2008/01/09(水) 22:11:12うん、俺もそこ意味わかんねぇけど、
適当にどっかからコードペーストした。
読んだところによるとそれやると、
argv[0]=main.exe
argv[1]=test.txt
argv[2]=何とか
argv[3]=・・・ってなるらしい。
どうしたらコマンドライン引数利用してファイル入出力できるんですか?
修正程度で指摘おね。
>>435
スキャることにします。ありがとう。
0437デフォルトの名無しさん
2008/01/09(水) 22:14:260438デフォルトの名無しさん
2008/01/09(水) 22:16:050439デフォルトの名無しさん
2008/01/09(水) 22:16:11argc:argvの要素数
argv:コマンドライン引数
0440 ◆g/ZMVdytmo
2008/01/09(水) 22:16:41[2]n次正方行列A,Bを読み込み和Cを求める。
同様にn次正方行列D,Eを読み込み、積Fを求め、行列C,Fを出力するプログラムを作成せよ。
但し、行列A,Dを共用体x_1、行列B,Eを共用体x_2として宣言し同じ記録領域を使用するものとする。
nは最大100まで対応し、要素はfloatとする。
下に、各行列の値を記す。
1 2 3 4 5 6 1 2 3 2 3 4
A= 4 5 6 B= 7 8 9 X= 4 5 6 Y= 5 6 7
7 8 9 1 2 3 7 8 9 8 9 1
[3.1]solalis
[3.2]cc
[3.3]C言語
[4]2008年1月14日
[5]#include<stdio.h>のみ
急で申し訳ありませんが、どうかよろしくお願いします。
0441 ◆g/ZMVdytmo
2008/01/09(水) 22:23:22各行列ともに3次正方行列です。
Aは、上から{1,2,3}{4,5,6}{7,8,9}
Bは、上から{4,5,6}{7,8,9}{1,2,3}
行列Xが、正しくは行列Dであり、上から{1,2,3}{4,5,6}{7,8,9}
行列Yが、正しくは行列Eであり、上から{2,3,4}{5,6,7}{8,9,1}
となります。
申し訳ありませんでしたでした。
0442お願いします
2008/01/09(水) 22:30:09[2] 問題文:
複数の整数の平均・分散を求めるプログラムを作成せよ.
ただし平均・分散ともに小数点第3位以下を切り捨て小数点第2位まで求めるものとする.
入力に関して
キーボードからまず入力する整数の個数を入力し(最大100とする)改行する.
次に指定した数の整数をスペース1ずつ開けて一行で入力するものとする.入力を促す文字等は表示しないこと
出力に関して
一行目に平均(+改行)二行目に分散(+改行)を数値のみ出力する.指定した数値・改行以外の文字等の出力は一切行わないこと.
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ名とバージョン:Study C Ver2
[3.3] 言語:C
[4] 期限:平成19年1月10日14:00まで
[5] その他の制限:Cプログラミングの入門教科からの出題ですので極々基礎的・簡単なコードでの解答をお願いします。
0443433
2008/01/09(水) 22:33:15ありがとうございます。
修正したら3秒で100Mを超える勢いで書き込むウィルスができました。
後は自分で修正いたします。
ありがとでした。
0444デフォルトの名無しさん
2008/01/09(水) 22:37:18Eの値がおかしくないか?
共用体ならA=D, B=Eになると思うが。
0445デフォルトの名無しさん
2008/01/09(水) 22:43:51あなたとこの人お知り合い?
ttp://pc11.2ch.net/test/read.cgi/tech/1180856695/711/
ttp://pc11.2ch.net/test/read.cgi/tech/1180856695/713-715/
0446デフォルトの名無しさん
2008/01/09(水) 22:46:33#include <stdio.h>
void main()
{
float x_1[100][100],x_2[100][100];
float buf;
int n,i,j,k;
l: scanf("%d",&n);
for(i=0;i<n;i++){
for(j=0;j<n;j++){
scanf("%f",&x_1[i][j]);
}
}
for(i=0;i<n;i++){
for(j=0;j<n;j++){
scanf("%f",&x_2[i][j]);
}
}
for(i=0;i<n;i++){
for(j=0;j<n;j++){
buf=0;
for(k=0;k<n;k++){
buf+=x_1[i][k]*x_2[k][j];
}
printf("%f ",buf);
}
printf("\n");
}
goto l;
}
やっつけ。
0447デフォルトの名無しさん
2008/01/09(水) 22:47:340448デフォルトの名無しさん
2008/01/09(水) 22:50:03[2] 問題文: ペイントやAdobePhotoshopのような画像処理ソフトを作成せよ
[3] 環境
[3.1] WindowsXP
[3.2] コンパイラ名とバージョン: visual studio 2005
[3.3] 言語: C言語
[4] 期限: 1/13
[5] その他の制限:Win32APIをしっかり勉強すること
0449デフォルトの名無しさん
2008/01/09(水) 22:50:440450デフォルトの名無しさん
2008/01/09(水) 22:51:19[2] 問題文(含コード&リンク):
問題文:
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5714.txt
読み込むファイル:
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5715.txt
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2008年1月10日21:00まで
[5] その他の制限:特になしです
ファイル操作について習ったのですが、あまりよく分かりません…。
よろしくお願いします。
0451433
2008/01/09(水) 22:51:19どっかの本に
「数値をその場で代入していくと長いコードになると
何の数値か意味わからなくなるからできるだけそうしろ」
って書いてた気がする
0452デフォルトの名無しさん
2008/01/09(水) 22:56:410453433
2008/01/09(水) 22:58:33見落としてた、ありがとう
0454デフォルトの名無しさん
2008/01/09(水) 23:16:24別人だけどレス。おかしくないよ、共用体だから。
0455デフォルトの名無しさん
2008/01/09(水) 23:34:40>13 >333 >341
【未解決問題】
>>416 1/10 12:00
>>387 1/10 13:00 済み(1),(3)
>>450 1/10 21:00
>>424 1/10 24:00
>>384 1/10
>>430 1/11
>148 1/12 12:00
>448 1/13
>250 1/13
>231-232 1/26
>229 1/31
>343 不明
0456デフォルトの名無しさん
2008/01/10(木) 00:18:19http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5716.zip
0457456
2008/01/10(木) 00:28:08気になるようならヘッダーに<ctype.h>をインクルードして
fgetsのループのところに
if (isprint(wordFreq[num].term[0]) == 0) {
--num;
continue;
}
を挿入してください。
0458 ◆g/ZMVdytmo
2008/01/10(木) 00:31:55素早い返答ありがとうございます。
とても助かりました。
もし可能であれば、「goto」を使用せずに組む方法でご教授願えますでしょうか?
あまりgotoを使用しないように、と言われておりますので……。
何度も訂正してしまい申し訳ありませんが、もしお手数でなければ宜しくお願いいたします。
0459デフォルトの名無しさん
2008/01/10(木) 00:50:33プログラムの流れを理解しようとしてる?
そのgotoは無限ループさせてるだけだよ
0461デフォルトの名無しさん
2008/01/10(木) 00:54:27http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5717.c
0462デフォルトの名無しさん
2008/01/10(木) 00:59:28共用体じゃないけどいいの?
0463デフォルトの名無しさん
2008/01/10(木) 01:00:09#include <stdio.h>
main()
{
int c,ca=0,cb=0;
char filename[100];
FILE *fp;
printf("入力ファイル名:");
scanf("%s",filename);
if((fp=fopen(filename,"r"))==NULL){
printf("ファイル名:%sを開けませんでした。\n");
exit(1);
}
while((c=fgetc(fp))!=EOF){
if(c=='a')
ca++;
else if(c=='b')
cb++;
}
printf("ファイル中のaの数:%d bの数%d\n",ca,cb);
fclose(fp);
}
適当につくってみた。aとbの数を分けなくていいならカウントしてるところと表示のところを
変更してください。
0464デフォルトの名無しさん
2008/01/10(木) 01:04:07それ自分で実行してみて変だと思わない?
0465デフォルトの名無しさん
2008/01/10(木) 01:07:30>>450 1/10 21:00
【未解決問題】
>>416 1/10 12:00 画像関係
>>387 1/10 13:00 済み(1),(3) (8)まである
>>424 1/10 24:00 差分法(陰解法)を用いて・・・
>>384 1/10 降順のマージソート 最終>>411
>>430 1/11 c++でwebカメラ関係
>148 1/12 12:00
>448 1/13
>250 1/13
>231-232 1/26
>229 1/31
>343 不明
0466461
2008/01/10(木) 01:11:53ああ、ごめん、ゴミいれたままだったわorz
>>450 こっちが本物・・・
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5718.c
0467デフォルトの名無しさん
2008/01/10(木) 01:14:12つーか、>>456でいいんじゃないの?
0468461
2008/01/10(木) 01:22:12ちゃんと見た?
始めのは昇順だが後のは降順よ?
ソート関数名は間違えてたが、ちゃんと動いたの確認してるよ。
単語頻度であって、その後のアルファベット順にソートするとは書かれてないし。
0469デフォルトの名無しさん
2008/01/10(木) 01:22:27(4)
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main( int argc, char ** args ) {
const int chance = 10;
int r1, r2, s, i;
srand( time( NULL ) );
r1 = rand() % 20 + 1;
r2 = rand() % 20 + 1;
for ( i = 0; i < chance; ++i ) {
printf( "input num >" );
scanf( "%d", &s );
if ( s == ( r1 + r2 ) ) {
printf( "BINGO!! ( %d, %d ) \n", r1, r2 );
return 0;
}
printf( "NG\n" );
}
printf( "hidden num = %d ( %d, %d ) \n", r1 + r2, r1, r2 );
return 0;
}
0470467
2008/01/10(木) 01:26:49ゴミ入れたままっつーから何か取り除いたのかと思ったよ。すまんね。
でもこの問題の意図は分かってる?
単語と頻度がセットになって、頻度の高い単語を上に持ってこいって問題でしょ。
だからスワップするとき頻度だけでなく、単語もスワップしないと意味がない。
0472デフォルトの名無しさん
2008/01/10(木) 01:41:14(5)
#include <stdio.h>
#define sizeofary( A ) (sizeof((A))/sizeof(*(A)))
long sum( int a[], int l ) {
long s = 0;
if ( !a || l < 1 ) { return 0; }
while ( l-- ) { s += a[ l ]; }
return s;
}
double av( int a[], int l ){ return ( !a || l < 1 ) ? 0 : (double)sum( a, l ) / l; }
void heikin( int a[], int al, int b[], int bl, int c[], int cl ) {
long len,ss;
len = al + bl + cl;
ss = sum( a, al ) + sum( b, bl ) + sum( c, cl );
printf( "avg of A = %lf\n", av( a, al ) );
printf( "avg of B = %lf\n", av( b, cl ) );
printf( "avg of C = %lf\n", av( c, cl ) );
printf( "avg of All = %lf\n", ( len < 1 ) ? 0 : (double)ss / len );
}
int main( int argc, char ** args ){
int a[] = { 123, 234, 531, 768, 981 }, b[] = { 918, 392, 29, 250, 762, 520,238}, c[] = { 987, 98, 518, 987};
heikin( a, sizeofary(a), b, sizeofary(b), c, sizeofary(c) );
return 0;
}
0473デフォルトの名無しさん
2008/01/10(木) 01:53:38[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5719.txt
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: bcc32
[3.3] 言語: C
[4] 期限: 1月14日まで
[5] その他の制限: なし
よろしくお願いします。
0474デフォルトの名無しさん
2008/01/10(木) 01:59:43(6)
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 30
int cmp( int * a, int * b ){ return *a - *b; }
int main( int argc, char ** args ){
int a[ N ], i;
srand( time( NULL ) );
for ( i = 0; i < N; ++i ) a[ i ] = rand() % 100;
for ( i = 0; i < N; ++i ) printf( "%d ", a[ i ] ); puts( "" );
qsort( a, N, sizeof ( a[ 0 ] ), (int(*)(const void *,const void *))cmp );
for ( i = 0; i < N; ++i ) printf( "%d ", a[ i ] ); puts( "" );
return 0;
}
0475デフォルトの名無しさん
2008/01/10(木) 02:01:54#include<stdio.h>
#define LENGTH 50 /* 一単語の最大長(文字数)*/
typedef struct {
char term[LENGTH]; /* 単語 */
int freq; /* 頻度 */
} termFreq;
void sortByFreq(termFreq word[],int num){
int i,j;
termFreq tmp;
for(i=0;i<num;i++){
for(j=num-1;j>i;j--){
if(word[j-1].freq < word[j].freq){
tmp=word[j-1]; word[j-1]=word[j]; word[j]=tmp;
}
}
}
}
main(){
int num=0,i;
char line[LENGTH*2];
termFreq wordFreq[500];
FILE *fp;
fp=fopen("dat.txt","r");//ファイル名は任意で書き換える
while(fgets(line,2*LENGTH-1,fp)!=NULL){
sscanf(line,"%s\t%d",wordFreq[num].term,&wordFreq[num].freq); num++;}
sortByFreq(wordFreq,num);
for(i=0;i<num;i++)
printf("%s\t%d\n",wordFreq[i].term,wordFreq[i].freq);
}
0476デフォルトの名無しさん
2008/01/10(木) 02:09:00>>387 1/10 13:00 済み(1),(3)(4)(5)(6)(7) 後(2)(8)
>>424 1/10 24:00 差分法(陰解法)を用いて・・・
>>384 1/10 降順のマージソート 最終>>411
>>430 1/11 c++でwebカメラ関係
>148 1/12 12:00
>448 1/13
>250 1/13
>231-232 1/26
>229 1/31
>343 不明
>473 1/14
0477デフォルトの名無しさん
2008/01/10(木) 02:30:30じゃあ俺もw
( ´∀`)つttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5720.c
0478デフォルトの名無しさん
2008/01/10(木) 02:43:420479デフォルトの名無しさん
2008/01/10(木) 02:49:11先生にも解読不能ながら、最高速の演算速度を叩き出すのであった。
0480>>480
2008/01/10(木) 03:21:32(8)
#include<stdio.h>
#include<stdlib.h>
int f(int y, int m, int d){
if(m < 3)
y--, m += 12;
return y * 365 + y / 4 - y / 100 + y / 400 + (m + 1) * 306 / 10 + d - 428 - 708205;
}
int main(void){
char a[][5] = {"大吉", "中吉", "小吉", "凶"};
int y, m, d;
printf("年 月 日 = ");
scanf("%d %d %d",&y, &m, &d);
srand(f(y, m, d));
printf("%s\n", a[rand() % 4]);
return 0;
}
0481デフォルトの名無しさん
2008/01/10(木) 03:25:20>構造体wordFreqに格納し
どこにそんな構造体が?
0483デフォルトの名無しさん
2008/01/10(木) 08:31:31[2] 次の文章を2次元配列で初期化し、使われている単語の数を求めたい。ただし、文字数、行数はわかっていないものとする。
A time to work
And a time to play
I think I will find another way
It's not my time to go
[3] 環境
[3.1] Windows
[3.2] gcc
[3.3] C
[4] 期限:2007/1/18
[5] 条件分岐(if,switch など)、繰り返し計算(for,while など)、自作関数、配列・多次元配列などは学びました
以下やっていないので内容はよく分かりませんが、「ポインタ」、「ファイルの入出力」、「構造体」、「マクロ」(以上、教科書の項目より)などは
まだやっていないので、これらの知識を要しないものでお願いします
あと、文章の行数と1行あたりの文字数が既知であるとしたときのプログラムは自分でつくることができたので、
それを>>484(あたり)に載せておきます。これを改良していただけると幸いです。
0484483
2008/01/10(木) 08:34:06#include <stdio.h>
int main()
{
char str[4][35]={"A time to work",
"And a time to play",
"I think I will find another way",
"It's not my time to go" };
int i,j,count=0;
for(i=0;i<4;++i){
for(j=0;j<35;++j){
if(str[i][j]==' ') {count+=1;}
}
}
printf("単語数=%d",count+4);
/*1行につき「(単語数)=(空白文字数)+1」で、それが4行分*/
}
0485デフォルトの名無しさん
2008/01/10(木) 09:09:21波動方程式の陰解法の差分式が、
よほどマイナーなのか見つからない(もしかすると、拡散方程式の間違いか?)。
ちょっと差分式調べてきて。
あと初期値と境界条件もよろしく。
0486485
2008/01/10(木) 09:20:55[2] 問題文:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5722.txt
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:Study C
[3.3] 言語:C
[4] 期限:1月10日14:00
[5] その他の制限:問題文に記載しております.
ぎりぎりまで自分でやろうとしたのですがどうしても出来なかったのでお助けください.
0488デフォルトの名無しさん
2008/01/10(木) 09:53:38...
char str[e][e]=...
0489デフォルトの名無しさん
2008/01/10(木) 09:54:56>>446をほんの少し書き換えればいい
ごめんなさいヒント頂いたのですが勉強不足でわかりませんTT
3重ループを使うようなのですが・・・
どなたかよろしくお願い致します
0492デフォルトの名無しさん
2008/01/10(木) 12:29:31クーラン数低くしても減衰する気がしない
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5724.txt
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5725.txt
0493デフォルトの名無しさん
2008/01/10(木) 12:39:15あなたがGIMP開発者ですね^^
0494デフォルトの名無しさん
2008/01/10(木) 13:24:09struct image {int width; int height; int depth; unsigned char * image;};
static struct image getPgm(const char * fileName)
{
struct image tmp = {0, 0, 0, NULL};
char buf[100];
FILE * fp = fopen(fileName, "r");
if (fp == NULL) return tmp;
fscanf(fp, "%99s", buf);
if (strcmp(buf, "P2") != 0) return tmp;
fscanf(fp, "%d%d%d", & tmp.width, & tmp.height, & tmp.depth);
tmp.image = malloc(tmp.width * tmp.height);
for (int ic = 0; ic < tmp.width * tmp.height; ++ic) {
int value;
fscanf(fp, "%d", & value);
tmp.image[ic] = value;
}
return tmp;
}
static void printPgmInfo(struct image img)
{
int sum = 0;
for (int ic = 0; ic < img.width * img.height; ++ic) sum += img.image[ic];
printf("width:%d, height:%d, depth:%d\nconc ave.:%g\n", img.width, img.height, img.depth, (double) sum / img.width / img.height);
}
int main(int argc, char ** argv)
{
if (argc < 2) {fprintf(stderr, "Usage:%s <ascii pgm file>.\n", argv[0]); return 1;}
printPgmInfo(getPgm(argv[1]));
return 0;
}
0495デフォルトの名無しさん
2008/01/10(木) 13:26:01>>400さん早速の解答ありがとうございます。
しかしそのようにプログラミングして、実行してみた所、半径を入力できず(1〜20番目のトンネルの半径と表示されるだけ)、正しいプログラムになりませんでした…。
馬鹿な私にはどこがいけないのかわかりません…。
どなたか助けてください…。お願いします。
0496デフォルトの名無しさん
2008/01/10(木) 13:36:43scant()のフォーマットをよく見てみな
0497デフォルトの名無しさん
2008/01/10(木) 13:37:460498デフォルトの名無しさん
2008/01/10(木) 13:39:28>400のソースをコンパイルして実行して、>399にあった問題文の例の通りに入力したら例の通りに出力されたけど。
カンマが余計だとか、アルファベットを入れているだとか、なんかやらかしてない?
0499デフォルトの名無しさん
2008/01/10(木) 14:02:09[2] 問題文(含コード&リンク):(自然数n = 10, r = 0, 1, . . . , 10 に対してnCr を出力するプログラム)
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 本日16時まで
[5]
0500デフォルトの名無しさん
2008/01/10(木) 14:12:21#include <stdio.h>
int ncr(int n,int r){
if(n == r || r==0){
return 1;
}else{
return (ncr(n-1,r-1) + ncr(n-1,r));
}
}
void main(){
int n,r;
for(n=1;n<=10;n++){
for(r=1;r<=n;r++){
printf("%dC%d=%d\n",n,r,ncr(n,r));
}
}
}
0501デフォルトの名無しさん
2008/01/10(木) 14:13:34int main()
{
for (int r = 0; r <= 10; ++r) {
printf("10C%d\n", r);
}
return 0;
}
0502デフォルトの名無しさん
2008/01/10(木) 14:15:11どうもありがとうございますm(__)m
0503デフォルトの名無しさん
2008/01/10(木) 14:19:39./ミミミミミ、;:;:;:;:;:;:;:;:;:;:ー-;:;、;:_;:;_:;::-‐'"´i
lミミミミミミミミミー-::、;;;;_;:;:;:;:;:;i;:;:;:;:;:;:;:;:i
,!ミミミミミミミミミ _;`-、;;;!:-‐'''´|ミi
//`,ヾミミミミシ‐'″ 'ー‐' : 'ニフ' i;/
l l ,rヾミミミ _,,,,, ノ _,,_ l
',ヽヾ、ヾミミ ィで)ヽ、 r';ィび、.ノ
ヽ、__,, ミミ `゙゙'''"フ` | `゙'''フ'i
〃 i l ミミ /´ | `ー'´l
/ヾ.l ミミ /' | /
. /:::::',ヽヽ` / ` `゙ー-' /
r/::::::::::',ヽヽ i:i ', / >>501
/::::::::::::::ヽヽ\ '"ー===-'/ いとあはれなり
ヽ:::::::::::::::::ヾ、 ` 、 ゙'一''ー'ノ′
、 \:::::::::::::::ヽ ` ー‐-t't::i´゙ー-、
.`-、 `ー-:、::::::ヾ'、 //:::l ヽ `゙ー- 、
0504デフォルトの名無しさん
2008/01/10(木) 14:33:45[2] 問題文(含コード&リンク): 実数a, b, c に対して,2 次方程式ax2 + bx + c = 0 が実数解を持つ場合にはその解x1, x2 と相対誤
差(ax2i
+ bxi + c)/xi(i = 1, 2) を表示し,そうでない場合には「実数解無し」と表示するプログラム
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 本日16時まで
先ほどは大変ありがとうございます。もう一度お願いいたします。
0505デフォルトの名無しさん
2008/01/10(木) 14:59:09どうやら私がやらかしていたようです。 もう一度見直して実行したら正確に出力されました。
0506デフォルトの名無しさん
2008/01/10(木) 17:51:12[2] 問題文:self-avoiding ウォーク
格子上のランダムウォークでは、同じ格子点を何度も訪れることができる。これに対して1度訪れた格子点には2度と行けない条件を課したものが、self-avoidingウォークである。
2次元正方格子上のself-avoiding ウォークを実現するためのアルゴリズムを考案せよ。あらかじめ適当な大きさの格子をとり、その格子点にすでに来たかを示す変数を持つ必要がある。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: ?
[3.3] 言語: C
[4] 期限: 明日17:00
[5] その他の制限: なし
どうかよろしくお願いします
0507デフォルトの名無しさん
2008/01/10(木) 18:02:35[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5728.txt
[3] 環境
[3.1] OS:windowsXP
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C言語
[4] 期限: 2008年1月11日 9:00まで
よろしくお願いします
0508デフォルトの名無しさん
2008/01/10(木) 18:18:05課題4
#include <stdio.h>
int nArraySum(int nArray[], int nArraySize)
{
int i , kei=0;
for(i=0;i<nArraySize;i++){ kei+=nArray[i]; } //kei=kei+nArray[i]と同じ
return kei;
}
int main(void)
{
char input[10];
int a[10]={1, 2, 11, 4, 15, 7, 9, 12, 3, 6};
int nArraySize;
int kei;
nArraySize=sizeof(a)/sizeof(a[0]); //配列のサイズ求める
kei=nArraySum(a,nArraySize); //戻り値で合計の値を受け取る
printf("合計=%d\n",kei);
return 0;
}
0509デフォルトの名無しさん
2008/01/10(木) 18:29:150510デフォルトの名無しさん
2008/01/10(木) 18:56:02課題5(>>508のmain関数を以下に変える)
int main(void)
{
char input[20] , fileName[20];
int a[10];
int nArraySize;
int i=0 , kei;
FILE *fp;
printf("入力ファイル>>>"); scanf("%s",fileName);
if((fp=fopen(fileName,"r"))==NULL){ printf("ファイル%sが見つかりません\n",fileName); exit(1); }
printf("出力ファイル>>>"); scanf("%s",fileName);
while(fscanf(fp,"%s",input)!=EOF){
a[i]=atoi(input);
i++;
}
fclose(fp);
nArraySize=sizeof(a)/sizeof(a[0]); //配列のサイズ求める
kei=nArraySum(a,nArraySize); //戻り値で合計の値を受け取る
printf("合計=%d\n",kei);
fp=fopen(fileName,"w");
fprintf(fp,"合計=%d\n",kei);
fclose(fp);
return 0;
}
0511デフォルトの名無しさん
2008/01/10(木) 19:17:50[2] 問題文: http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5729.txt
[3] 環境
[3.1] XP
[3.2] コンパイラ名とバージョン: visual studio 2005
[3.3] 言語: C言語
[4] 期限: 1/15
[5] その他の制限:なし
0512デフォルトの名無しさん
2008/01/10(木) 19:20:37[2] 問題文http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5730.txt
[3]
[3.1] Unix
[3.2] gcc
[3.3] C
[4] 期限:1月10日午後9時まで
[5] その他の制限: 特にありません
お願いします。
0513デフォルトの名無しさん
2008/01/10(木) 19:35:12ありがとうございましたm(_ _)m
0514デフォルトの名無しさん
2008/01/10(木) 19:47:00[2] 問題文(含コード&リンク):ランダムで麻雀牌を14枚取得し、その役を表示するプログラムを作成せよ。
なお、14枚目の牌をあがり牌とし、ツモ・ロン両方の場合に対応できるようにすること。
また、鳴き・立直・海底・ドラ・天和等やあまりにローカルな役は考えなくてもよいとする。
[3] 環境
[3.1] OS: 不問
[3.2] コンパイラ名とバージョン: 不問
[3.3] 言語: c
[4] 期限: 2008/1/15
[5] その他の制限: 牌は4枚x34種=136枚でお願いします
0515デフォルトの名無しさん
2008/01/10(木) 19:55:400516273
2008/01/10(木) 20:19:41亀レスですがそれだとオプションと文字を同時に入力しないといけなくなります。
プログラムを起動させた後に標準入力させないとダメみたいです。
0517デフォルトの名無しさん
2008/01/10(木) 20:39:42#include <stdio.h>
#include <math.h>
#define PI 3.141592
double radius(double x, double y);
double angle(double x, double y);
int main() {
double xpos, ypos;
printf("X座標:");
scanf("%lf", &xpos);
printf("Y座標:");
scanf("%lf", &ypos);
printf("極座標に変換すると\n");
printf("(動径r, 偏角θ)=(%f, %fπ)\n",
radius(xpos, ypos), angle(xpos, ypos));
printf("となります。\n");
}
double radius(double x, double y)
{
return sqrt(pow(x, 2.0) + pow(y, 2.0));
}
double angle(double x, double y)
{
return atan2(y, x)/PI;
}
//これでおk?
0518512
2008/01/10(木) 21:01:48期限が過ぎてしまいましたので、スルーしてください。
ありがとうございました。
0519デフォルトの名無しさん
2008/01/10(木) 21:27:59ありがとうございます。
0520デフォルトの名無しさん
2008/01/10(木) 21:50:28[2] 問題文:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5731.txt
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:Visual Studio 2005
[3.3] 言語:C
[4] 期限:2008年1月16日
[5] その他の制限:問題文参考にしろと言われてるので
元のプログラムをなるべく変えてないものをお願いします。
0521 ◆CxWBqy7wZQ
2008/01/10(木) 21:50:59[2] 問題文(含コード&リンク):
今作ってるプログラムなんですが実行するとどうしてもエラーが出る部分があります。
その部分を切り離してみたのでどこがおかしいか指摘お願いします。
/*****************/で囲んだ部分が怪しいと睨んでいるのですが・・・
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5732.txt
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc 3.3
[3.3] 言語: C
[4] 期限: 1月10日24:00
[5] その他の制限:
よろしくお願いします。
0522デフォルトの名無しさん
2008/01/10(木) 21:54:48最小値を探したいのなら、minは100.0で初期化して rate[i] < min にかえるべき
0523デフォルトの名無しさん
2008/01/10(木) 22:02:44何がしたいのか書いてくれよ
0524デフォルトの名無しさん
2008/01/10(木) 22:04:46関数 Node *term(void) 内の
tok = get_token();
で tok に NULL が代入されてるにもかかわらず
strcmp の引数に使ってるからとか?
0525デフォルトの名無しさん
2008/01/10(木) 22:05:23char *term[5]={"5"}でcharポインタ配列のひとつめの要素は初期化してるけど
その後の要素は未定義なのにそれ取り出して比較しようとするからだろ。
二個取り出したいならchar *term[5]={"5","5"}とするべき
0526デフォルトの名無しさん
2008/01/10(木) 22:06:17何がしたいのか分からないが、tokがNULLでないかチェックするor予め値を入れておく(今回が入れ忘れの場合)。
0527デフォルトの名無しさん
2008/01/10(木) 22:08:35何がしたいのか(ry
0529520
2008/01/10(木) 22:17:02ありがとうございます。
0531デフォルトの名無しさん
2008/01/10(木) 22:22:38って言っても俺は物理さっぱりだから何のことやら分かりかねるが
0532デフォルトの名無しさん
2008/01/10(木) 22:29:390533デフォルトの名無しさん
2008/01/10(木) 22:31:56実現するだけなら3x3のbool配列の配列を作ればいいんじゃないの。
0534デフォルトの名無しさん
2008/01/10(木) 22:36:27一度行った地点をマークしてけばよい。
0535デフォルトの名無しさん
2008/01/10(木) 22:45:37#include<stdio.h>
#include<stdlib.h>
#define FIELD_WIDTH 10
#define FIELD_HEIGHT 10
static int field[FIELD_HEIGHT][FIELD_WIDTH];
void adjust(int *x, int *y){
*x=(*x+FIELD_WIDTH)%FIELD_WIDTH;
*y=(*y+FIELD_HEIGHT)%FIELD_HEIGHT;
}
int is_passed(int x, int y){
adjust(&x, &y);
return field[y][x];
}
int main(void){
int i, x=0, y=0, dx[]={1,0,-1,0},dy[]={0,1,0,-1}, dir, dirlist[4], dirnum;
for(;;){
field[y][x]=1;
for(i=0,dirnum=0;i<4;i++)
if(!is_passed(x+dx[i], y+dy[i])) dirlist[dirnum++]=i;
if(dirnum<=0) break;
dir=dirlist[rand()%dirnum];
x+=dx[dir];
y+=dy[dir];
adjust(&x, &y);
printf("(%d,%d)\n", x, y);
}
return 0;
}
0536デフォルトの名無しさん
2008/01/10(木) 23:16:53http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5734.txt
え、こういうことじゃなくて?
あ、すいません読解力が無くて・・
tabずれまくりですいまそんww
眠い寝る!
0537デフォルトの名無しさん
2008/01/10(木) 23:29:48↓←←←←←
→→→→→↓
みたいに進めばいいんじゃないの?
0538デフォルトの名無しさん
2008/01/10(木) 23:32:57[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5735.txt
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 1月14日
[5] その他の制限: 特にないです
0539デフォルトの名無しさん
2008/01/10(木) 23:33:35それのどこがランダムウォークなんだよ
教養が無いな。
0540デフォルトの名無しさん
2008/01/10(木) 23:34:50self-avoiding ウォーク
0541デフォルトの名無しさん
2008/01/10(木) 23:36:030542デフォルトの名無しさん
2008/01/10(木) 23:38:25少し上で同じようなのを解いたので
#include<stdio.h>
#include<math.h>
double f(double x, double a, double b, double c, double d){
return a * x * x * x + b * x * x + c * x + d;
}
double df(double x, double a, double b, double c){
return 3 * a * x * x + 2 * b * x + c;
}
int main(void){
double x = 1.0;
double maxerror = 0.0001;
double a = 1, b = -10, c = 10, d = 50;
double EPS = f(x, a, b, c, d) / df(x, a, b, c);
int N;
for(N = 0; fabs(EPS) > maxerror; N++){
x -= EPS;
EPS = f(x, a, b, c, d) / df(x, a, b, c);
}
printf("X = %10.24f\n", x);
printf("N = %d\n", N);
printf("EPS = %3.24f\n", EPS);
return 0;
}
0543デフォルトの名無しさん
2008/01/10(木) 23:38:490544デフォルトの名無しさん
2008/01/10(木) 23:40:44前提になるランダムウォークの条件すら満たしてないって事を言ってるんですけど?
0545デフォルトの名無しさん
2008/01/10(木) 23:47:42self-avoiding walk = 自分自身と交わらないランダムウォーク
0546デフォルトの名無しさん
2008/01/10(木) 23:52:500547デフォルトの名無しさん
2008/01/10(木) 23:56:54それに加えて、同じ地点に移動しようとした場合はフォールトさせれば良い。
それだけのことだが、>>538のは現地点を考慮せずに目茶目茶にポイントしてくだけだからだめだし、
>>535(>>538もだが)乱数の種を指定しなおさないから、2回目の実行以降は実質的に乱数ではなくなる。
0548デフォルトの名無しさん
2008/01/10(木) 23:58:040549デフォルトの名無しさん
2008/01/11(金) 00:42:22>384 >387 (2) >487 >504 >512 >521
【未解決問題】
>>506 1/11 17:00
>>430 1/11
>>148 1/12 12:00
>>250 1/12
>>448 1/13
>>473 1/14
>514 1/15
>483 1/18
>231-232 1/26
>229 1/31
>343 不明
0550デフォルトの名無しさん
2008/01/11(金) 00:43:240551デフォルトの名無しさん
2008/01/11(金) 01:00:30その数を数えるプログラムを作ります。
それを10回繰り返して最終的な1の数を数えたいです。
ですが以下のようにすると数字が正しく出ません。
どこがいけないのでしょうか??
条件としてmain以外の関数を使うようにとのことです。
すべてmain内に書いた時はちゃんと動いたんですが
外に出したらどこかがおかしくなってしまって・・・。
お願いします。
0552デフォルトの名無しさん
2008/01/11(金) 01:01:08#include <stdlib.h>
/*---------------確率判定--------------------------*/
void fun1(int *sum,double *per,int student[]){
int i;
double a,per2;
srand(2000);
for(i=0;i<300;i++){
a = (double)rand() / (RAND_MAX +1.0);
per2 =(*sum) * (*per);
if(a<per2) student[i]=1;
}
}
/*---------------要素が1であるものの数を数える関数---------------------*/
void Count(int student[],int *num,int *sum,int *day){
int i;
for(i=0;i<300;i++){
if(student[i]==1) *num= *num +1;
}
*sum=*num;
printf("# %d %d \n",*day,*sum);
}
0553デフォルトの名無しさん
2008/01/11(金) 01:02:08int main(void){
int student[300],i,num=0,day,sum[10];
double per,a,per2;
sum[0]=1;
for(day=1;day<=10;day++){
fun1(&sum[day-1],&per,student);
Count(student,&num,&sum[day],&day);
num =0;
}
return 0;
}
/*-----------------------------------------------*/
0554デフォルトの名無しさん
2008/01/11(金) 01:07:46ここはデバッグスレじゃありません。
0555デフォルトの名無しさん
2008/01/11(金) 01:23:300556デフォルトの名無しさん
2008/01/11(金) 01:31:30fun1(納day-1],&per,student);
0557デフォルトの名無しさん
2008/01/11(金) 01:42:22[2] 問題文(含コード&リンク):
キーボードから数式を入力して、その数式の因子間に半角空白を
入れて表示するプログラムを作成する。
ただし結果は1つの文字列として表示すること。
ex)
1*2*(3+5)/4+5-1
1 * 2 * ( 3 + 5 ) / 4 + 5 - 1
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc3.3
[3.3] 言語: C
[4] 期限: 1月11日 12:00
[5] その他の制限: 特にないです
よろしくお願いします。
0558557
2008/01/11(金) 01:45:32入力は数字、演算子(+,-,*,/)、括弧のみです
0559デフォルトの名無しさん
2008/01/11(金) 02:11:110560デフォルトの名無しさん
2008/01/11(金) 06:20:11>>1のうpろだにアンカ付きでうpすればおkかな。
0561デフォルトの名無しさん
2008/01/11(金) 07:39:53#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void)
{
int i, size = 1024, len;
char *buf = (char*)malloc(size), *str;
for(i = 0; ; i++){
if((i - size)/size == 0)
if((buf = (char*)realloc(buf, (i/size + 1)*size)) == NULL)
return perror("malloc"), 1;
if((buf[i] = getchar()) == EOF || buf[i] == '\n' || buf[i] == '\0')
break;
}
buf[i] = '\0';
if((len = (int)strlen(buf)) == 0)
return 1;
if((str = (char*)malloc(2*len)) == NULL)
return perror("malloc"), 1;
for(i = 0; i < len; i++)
str[2*i] = buf[i], str[2*i + 1] = ' ';
str[2*i - 1] = '\0';
puts(str);
free(buf);
free(str);
return 0;
}
0562デフォルトの名無しさん
2008/01/11(金) 07:42:09○ (i - size)%size == 0
0563デフォルトの名無しさん
2008/01/11(金) 07:44:44//あまりテストしてないが
#include <stdio.h>
#include <string.h>
int main()
{
char buff[256];
//入力を受け取る
scanf_s("%s", buff, 128);
//空白の挿入
char numbers[] = "0123456789 "; //数字
char operators[] = "()+-*/";
for(int i = 0; buff[i] != '\0'; i++) {
for(int j = 0; j < strlen(operators); j++) {
if(buff[i] != operators[j]) {
continue;
}
char workbuff[256];
strcpy_s(workbuff, 256, &buff[i+1]);
buff[i+1] = buff[i];
buff[i] = ' ';
buff[i+2] = ' ';
strcpy_s(&buff[i+3], 128, workbuff);
i += 2;
goto L_END;
}
0564デフォルトの名無しさん
2008/01/11(金) 07:45:29for(int j = 0; j < strlen(numbers); j++) {
if(buff[i] != numbers[j]) {
continue;
}
goto L_END;
}
printf("error\n");
L_END:;
}
printf("%s\n", buff);
return 0;
}
0565デフォルトの名無しさん
2008/01/11(金) 07:48:350566 ◆P2TN8xagh2
2008/01/11(金) 10:42:07コンピュータグラフィックス演習
[2]問題文:
1−7章の内容を用いて,アニメーションを表示するプログラムを作れ.
1章 ウィンドウ設定と基本図形の描画
2章 3次元図形の描画と陰面処理
3章 モデリング入門
4章 アニメーション
5章 イベント処理
6章 シェーディング
7章 光源の設定
[3]環境
[3.1]XP
[3.2]VC 6.0
[3.3]C++
[4]期限:
1/15 9:00
[5]その他の制限:
・異なる時刻における表示結果を数枚貼ること.
・異なる反射モデルを用いた複数の物体を含むこと.
・光源の設定を時間と共に変えること.
アニメーションの具体例は提示されてないのでどのようなアニメーションでも構いません。
かなり丸投げですがよろしくお願いいたします。
0567デフォルトの名無しさん
2008/01/11(金) 10:56:45質問者は回答ではなくヒントを求めているようなので
ちょっとココで話させてくれ。
この問題、難しくね? オレの頭が硬いのか?
普通は一の位から始めて c = d % 10; d /= 10; と進めていくと思うんだけど。
d = 502で決めうちだとしても、いきなり「5」を求めるにはどうすればいい?
(d / (int)(pow(10, (2-i))) % 10 としたいがmath.hはない。
まさか i == 0? ((d / 100) % 10):(i == 1? ((d / 10) % 10):(d % 10)) なわけないよな。
0568デフォルトの名無しさん
2008/01/11(金) 11:17:15[2] 問題文 円周率を求めるプログラムを作成せよ。
1.rand()関数を用いて0〜1のx座標,y座標を生成する。
2.原点との距離を求め,座標が半径1の円内かどうか調べ,円内である場合,円外である場合をそれぞれカウントする。
3.以上を指定回数分繰り返し,半径1の円内である確率がπ/4であることからπを求める
入力に関して
キーボードから,繰り返し回数を入力する。上限はint型の最大値(実際には最大値を入れると膨大な時間がかかるのでテストは1分程度で終了する値でよい)。
出力に関して
結果(求めた円周率)のみを浮動小終点(double型を%lf)で出力(+改行)。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:Study C
[3.3] 言語:C
[4] 期限:1月13日14:00
[5] その他の制限:一年なのでそこまで難しいのはつかわずにお願いします。
0569デフォルトの名無しさん
2008/01/11(金) 11:20:14[2] 問題文 英文の文字列を入力した場合,文字数・単語数・文章数を求めるプログラムを作成せよ。
英文中の特殊文字は(,(カンマ).(ピリオド)!(イクスクラメーション)?(クエスチョンマーク))のみとする。単語の間には1つ以上(2つ以上でも可)のスペースが入れるものとする。
文章の最後には必ず .(ピリオド)!?のどれかが単独で使われる。,(カンマ)や.(ピリオド)!?の後にスペースが入る可能性があるが前にはスペースは入らないものとする。
省略につかう .(カンマ)は今回はないものとする。
入力に関して
キーボードから,文字列を一行で入力
出力に関して
文字数・単語数・文章数をそれぞれスペース1つあけて1行で出力(+改行)[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:Study C
[3.3] 言語:C
[4] 期限:1月13日14:00
[5] その他の制限:一年なのでそこまで難しいのはつかわずにお願いします。
0570デフォルトの名無しさん
2008/01/11(金) 12:02:34大阪電気通信大学生乙。
0571デフォルトの名無しさん
2008/01/11(金) 12:53:27がんがれ
0572デフォルトの名無しさん
2008/01/11(金) 13:09:040573デフォルトの名無しさん
2008/01/11(金) 14:10:41糞アメリカ人がWTCジャンプアウト!!!バカザマ!バカザマ!バカザマ!
http://tbn0.google.com/images?q=tbn:d3eyeFZihdYVuM:http://strange_site.tripod.com/wtc_sm7.jpg
これが糞アメリカ人のWTCからジャンプアウトのザマだ
http://tbn0.google.com/images?q=tbn:d3eyeFZihdYVuM:http://strange_site.tripod.com/wtc_sm7.jpg
これが糞アメリカ人のWTCからジャンプアウトのザマだ
http://tbn0.google.com/images?q=tbn:d3eyeFZihdYVuM:http://strange_site.tripod.com/wtc_sm7.jpg
これが糞アメリカ人のWTCからジャンプアウトのザマだ
http://tbn0.google.com/images?q=tbn:d3eyeFZihdYVuM:http://strange_site.tripod.com/wtc_sm7.jpg
これが糞アメリカ人のWTCからジャンプアウトのザマだ
http://tbn0.google.com/images?q=tbn:d3eyeFZihdYVuM:http://strange_site.tripod.com/wtc_sm7.jpg
0574デフォルトの名無しさん
2008/01/11(金) 14:19:32Many people have to work on the weekend. Some people do not mind. Other people think it is terrible.
なら
文字数79 単語数19 文章数3
って事です。
0575デフォルトの名無しさん
2008/01/11(金) 14:20:09ループを使え。
0576デフォルトの名無しさん
2008/01/11(金) 15:15:09[2] 問題文(含コード&リンク):n次正方行列Aが狭義対角優位行列か否かを判定するプログラムを作成せよ
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:Microsoft Visual Studio .NET 2003
[3.3] 言語: C
[4] 期限: 2008.1.17日中
[5] その他の制限:
0577デフォルトの名無しさん
2008/01/11(金) 15:16:47#define buffer_size 10000
main(int argc ,char *argv[])
{
FILE *p,*q;
char buffer[buffer_size];
p=fopen(argv[1],"r");
if(p){
while(fgets(buffer,buffer_size,p)){
printf("%s",buffer); } }
fclose(p);
q=fopen(argv[1],"w");
if(!q){
printf("文字列を書き込んでください\n");
gets(buffer);
fprintf(q,buffer);};
fclose(q);
}
ファイルを読み込めばすれど、書き込めません。
どの箇所が間違っているのでしょうか。
0578デフォルトの名無しさん
2008/01/11(金) 15:23:23スレ違い。
・p がNULLのときにfclose()しちゃダメ。
・q がNULLのときにfprintf()しちゃダメ。
・そもそもgets()は使っちゃダメ。
0579デフォルトの名無しさん
2008/01/11(金) 15:34:27[2] 問題文(含コード&リンク):迷路の問題なんです。http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5478.txt
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2008 1月12日10:30まで
[5] その他の制限: ヒントとして書かれているプログラムに使われている初歩的な関数しか習っていません。
プログラムが長くてわかりずらいところもありますが、どうかよろしくお願いします。
0580デフォルトの名無しさん
2008/01/11(金) 15:35:40[2] 問題文(含コード&リンク):迷路の問題なんです。http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5478.txt
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2008 1月12日10:30まで
[5] その他の制限: ヒントとして書かれているプログラムに使われている初歩的な関数しか習っていません。
プログラムが長くてわかりずらいところもありますが、どうかよろしくお願いします。
0581デフォルトの名無しさん
2008/01/11(金) 15:37:05[2] 問題文:
文字列を逆順にコピーする関数xcopyをポインタを用いて作り、確認のための
プログラムを作成してください。ただしxcopy(char *to,char *from)とします。
なお対象とするデータは通常の英数字とします。
[3] 環境
[3.1] OS: windowsXP
[3.2] コンパイラ名とバージョン: bcc?ですかね。。。
[3.3] 言語: Borland C++
[4] 期限: [2008年01月13日21:00まで]
[5] その他の制限: 特にありません。
よろしくお願いします。
0582>>506
2008/01/11(金) 16:13:07#include <stdlib.h>
#include <time.h>
#define N 20
static int su[N][N], x, y;
typedef enum{UP, RIGHT, DOWN, LEFT}dir;
unsigned nrand(int n){ return (unsigned)(n*(double)rand()/(RAND_MAX + 1.0));}
dir drand(void){ return nrand(4);}
int chkdir(dir d){
if(d == UP) return y <= 0 ? 0 : su[x][y - 1] == 0;
if(d == RIGHT) return x >= N - 1 ? 0 : su[x + 1][y] == 0;
if(d == DOWN) return y >= N - 1 ? 0 : su[x][y + 1] == 0;
return x <= 0 ? 0 : su[x - 1][y] == 0;
}
int ismove(void){return chkdir(UP) || chkdir(RIGHT) || chkdir(DOWN) || chkdir(LEFT);}
void move(dir d){d == UP ? y-- : d == RIGHT ? x++ : d == DOWN ? y++ : x--;}
void print(void){
int i, j;
for(i = 0; i < N; i++, putchar('\n'))
for(j = 0; j < N; j++) putchar(i == x && j == y ? '*' : su[i][j] ? '+' : ' ');
}
int main(void){
srand((unsigned int)time(NULL));
x = nrand(N), y = nrand(N);
su[x][y] = 1, print();
while(ismove()){
dir d = drand();
su[x][y] = 1;
if(chkdir(d)) move(d), print();
}
return 0;
}
0583デフォルトの名無しさん
2008/01/11(金) 16:15:57とても個人レベルでできる問題の気がしないんだがw
0584デフォルトの名無しさん
2008/01/11(金) 16:37:16#include<stdio.h>
void xcopy(char *to,char *from){
int i=0,j=0;
while(from[i]!=NULL) i++;
while(from[i-1]!=NULL){
to[j]=from[i-1];
j++;
i--;
}
to[j]=NULL;
}
main(){
char *to,*from;
scanf("%s",from);
xcopy(to,from);
printf("%s",to);
}
0585デフォルトの名無しさん
2008/01/11(金) 16:47:35ダウト。偶偶動くかも知らんが、大抵動かないと思う。まして、規格に未定義なロジックになっている。
0587デフォルトの名無しさん
2008/01/11(金) 17:09:350588デフォルトの名無しさん
2008/01/11(金) 17:10:30ホントに? BCCだと必ず動く保証がある? 普通にメモリアクセスエラーが起きそうなんだけど。
0589デフォルトの名無しさん
2008/01/11(金) 17:12:000590デフォルトの名無しさん
2008/01/11(金) 17:15:08動くだろ。
まあ
from[i-1]!=NULL
↓
i!=0
で解決すっけど
0591588
2008/01/11(金) 17:16:440592デフォルトの名無しさん
2008/01/11(金) 17:21:090593デフォルトの名無しさん
2008/01/11(金) 17:22:090594デフォルトの名無しさん
2008/01/11(金) 17:24:27指摘されたんだから動かしてみるくらいのことした方がいいぞ。
そもそも、>>581をよく読んだ方がいいな。「ポインタを用いて」と言う問題ならインデックス変数を使っちゃダメだろ。
0595デフォルトの名無しさん
2008/01/11(金) 17:25:18これのどこがおかしいか分からないというのはやばいと思うが
#include<stdio.h>
void xcopy(char *to,char *from){
int i=0,j=0;
while(from[i]!=NULL) i++; //まあ動くがNULL→'\0'
while(from[i-1]!=NULL){
//from[-1]が0である保証はない(ちゃんと止まる保証は無い)
to[j]=from[i-1];
j++;
i--;
}
to[j]=NULL;
}
main(){
char *to,*from; //領域確保しろよ
scanf("%s",from);
xcopy(to,from);
printf("%s",to);
}
0596デフォルトの名無しさん
2008/01/11(金) 17:29:50>>594
ポインタオンリーでやれとは書いてないだろ
用いてるんだから
>>595
どこにこの程度の課題で麻呂する奴がいるんだよw
0597デフォルトの名無しさん
2008/01/11(金) 17:31:000598デフォルトの名無しさん
2008/01/11(金) 17:41:26「配列使え」と書くべきだったのかもしらんが、
俺が言いたいのは領域確保せずにポインタ使うなということなんですが。
そんなにおかしい指摘か?
0599デフォルトの名無しさん
2008/01/11(金) 17:43:05#include <stdio.h>
void xcopy(char *to, char *from)
{
int i, len = 0;
while(from[len] != '\0')
len++;
to[len] = '\0';
for(i = 0; i < len; i++)
to[i] = from[len - 1 - i];
}
int main(void)
{
char from[128], to[128];
scanf("%127s", from);
xcopy(to, from);
puts(to);
return 0;
}
0600デフォルトの名無しさん
2008/01/11(金) 17:43:50自分の馬鹿を棚に上げないで、ちゃんと現実を直視しろよ。
その程度のプログラムも書けないならもっと謙虚に他人のレスを読め。
0601598
2008/01/11(金) 17:45:00「どこ指してっか分からんポインタをそのまま使うな」くらいで
0602デフォルトの名無しさん
2008/01/11(金) 17:46:040603デフォルトの名無しさん
2008/01/11(金) 17:47:22非常に哲学
0604デフォルトの名無しさん
2008/01/11(金) 17:47:41--
#include <stdio.h>
#include <string.h>
void xcopy(char *to,char *from)
{
char * p = strchr(from, '\0'); // strchr()使っちゃいけないならその辺は適当に。
while (p > from) { // ポインタを使うと、いかにもCらしく書けますな。逆に言えば、読みにくいw
* to++ = * --p;
}
* to = '\0';
}
int main(){
char from[100], to[100];
scanf("%99s", from); // 99で制限しておけばオーバフローは回避できる。
xcopy(to, from);
printf("[%s]\n", to);
return 0;
}
--
がーん、既に>599に書かれていたかw
>>602
見苦しい。
0605デフォルトの名無しさん
2008/01/11(金) 17:48:26どういう意味?
0606デフォルトの名無しさん
2008/01/11(金) 17:52:08>>>595
>どこにこの程度の課題で麻呂する奴がいるんだよw
麻呂 = mallocと意訳してしまった
0607デフォルトの名無しさん
2008/01/11(金) 17:53:140608デフォルトの名無しさん
2008/01/11(金) 17:56:59http://www.google.co.jp/search?hl=ja&q=malloc+%E9%BA%BB%E5%91%82&lr=
まだ1件だが、googleはそのうちやってくれると信じている。
>>580
最短経路を求める必要あり?
0609デフォルトの名無しさん
2008/01/11(金) 17:59:18穴埋めらしいよ
0610デフォルトの名無しさん
2008/01/11(金) 17:59:41ネイティブは大抵マロックなんだぜ。
0611デフォルトの名無しさん
2008/01/11(金) 18:01:51発音しやすいのかな
0612デフォルトの名無しさん
2008/01/11(金) 18:04:410613デフォルトの名無しさん
2008/01/11(金) 18:06:050614577
2008/01/11(金) 18:41:25ありがとうございます。
gets()は使っちゃ駄目なんですか?
知りませんでした。勉強になりました。
#include <stdio.h>
#define buffer_size 10000
main(int argc ,char *argv[])
{
FILE *p;
char buffer[buffer_size];
p=fopen(argv[1],"r");
if(p){
while(fgets(buffer,buffer_size,p)){
printf("%s",buffer); }
}
if(!p){
printf("なにか書き込んでください。\n")
scanf("%s",buffer);
p=fopen(argv[1],"w");
if(EOF==fprintf(p,buffer))
printf("見事にエラーです。\n");
};
fclose(p);
}
0615デフォルトの名無しさん
2008/01/11(金) 18:56:09単に普通のプログラムだろ?
俺もやってみたけどわかんないんでやめたw
すまん
0616デフォルトの名無しさん
2008/01/11(金) 18:58:08だからスレ違いだというのに……
で、gets()を使っちゃダメなのと同じ理由で、scanf()で素の"%s"を使っちゃダメ。
0617デフォルトの名無しさん
2008/01/11(金) 19:00:54if(p){
……
}
if(!p){
って書き方は嫌い。
p=fopen(argv[1],"r");
はもっと嫌い。
0618デフォルトの名無しさん
2008/01/11(金) 19:04:10エスパー的に解釈してこういうことか?
#include <stdio.h>
#define buffer_size 10000
void main(int argc ,char *argv[])
{
FILE *p;
char buffer[buffer_size];
p=fopen(argv[1],"r");
if(p){
while(fgets(buffer,buffer_size,p)){
printf("%s",buffer); }
}
fclose(p) ;
p=fopen(argv[1],"a");// ファイルに追記する(前回の内容を破棄していいなら"w"で)
if(p){
printf("\nなにか書き込んでください。\n") ;
scanf("%s",buffer);
fprintf ( p, buffer ) ;
};
fclose(p);
}
0619デフォルトの名無しさん
2008/01/11(金) 21:05:46[2] 問題文:
2つの最大50桁の自然数を入力して、その和・差・積を求めるプログラムを作成せよ
[3] 環境
[3.1] OS:Windows Vista
[3.2] コンパイラ名とバージョン:CPad for Borland
[3.3] 言語:C++
[4] 期限:2008年1月12日まで
[5] その他の制限:
10文字以上入力するとエラー発生しちゃいます。。
50桁も入力できません
おねがいします!(>_<)
0620デフォルトの名無しさん
2008/01/11(金) 21:33:00どの程度習ったんだ? 多倍長と言って意味がわかるか。これによってだいぶ違ってくるんだが……
0621デフォルトの名無しさん
2008/01/11(金) 22:12:55習ってないです(ノ_・。)
0622デフォルトの名無しさん
2008/01/11(金) 22:17:18そうか。だが、残念なことに課題は多倍長をモロに使う問題なんだな……
というより、多倍長整数そのものが課題だと言ってもいい。
とりあえず、多倍長でぐぐれ。
0623デフォルトの名無しさん
2008/01/11(金) 22:23:06[2] 問題文:
[3] 環境 http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5736.txt
[3.1] XP
[3.2] コンパイラ名とバージョン: visual studio 2005
[3.3] 言語: C言語
[4] 期限: 1/15
[5] その他の制限:なし
0624デフォルトの名無しさん
2008/01/11(金) 22:25:10わかりました!
あざす!!!
0625デフォルトの名無しさん
2008/01/11(金) 22:26:50int isfloat(char * f)の作成のみ
int isfloat(char* f)
{
if (f == NULL || strlen(f) == 0)
{
return 0;
}
char* err;
strtod(f, err);
if (strlen(err) == 0)
return 1;
else
return 0;
}
0626536
2008/01/11(金) 22:57:39時間切れですが作ってみたんで・・
・>>582さんの表示のアイデアをパクった
・初期位置は(0, 0)固定という味気ない仕様
・糞ースでもうしわけ
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5737.txt
0627デフォルトの名無しさん
2008/01/11(金) 23:40:19モンテカルロだろうな。http://www.geocities.jp/supermisosan/montecarlo.html
無作為に選んだが、変数、変数名、処理の一部、などを、課題文に沿うように適切にすればよい。
初めて買ったC言語の本に載ってた懐かしい課題。
0628デフォルトの名無しさん
2008/01/11(金) 23:42:48#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
int isfloat(char *f){
while(isspace(*f)) f++;
if(*f == '-') f++;
while(isdigit(*f)) f++;
if(*f == '\0') return 1;
if(*f != '.') return 0;
f++;
while(isdigit(*f)) f++;
if(*f == '\0') return 1;
return 0;
}
int main(void){
float num, sum = 0;
char f[128];
while(1){
printf("実数を入力(q:end):");
scanf("%127s", f);
if(f[0] == 'q' && f[1] == '\0') break;
if(isfloat(f)){
num = atof(f);
sum += num;
printf("num = %f\nsum = %f\n", num, sum);
}else
printf("この文字列は実数が(ry\n");
}
printf("sum = %f\n", sum);
return 0;
}
0629デフォルトの名無しさん
2008/01/12(土) 00:02:47入力を文字列として読み取ってひと桁ずつを配列に入れて計算する方法教えてください!
ちなみにこの方法って差も積も出せますか?
0630デフォルトの名無しさん
2008/01/12(土) 00:03:05>430
【未解決問題】
>>579 1/12 10:30
>>148 1/12 12:00
>>619 1/12
>>569 1/13 14:00
>>448 1/13
>>473 1/14
>566 1/15 9:00
>514 1/15
>576 1/17日中
>483 1/18
>231-232 1/26
>229 1/31
>343 不明
0631デフォルトの名無しさん
2008/01/12(土) 00:03:07[2] 問題文(含コード&リンク):
課題:(吸収スペクトルや)蛍光スペクトルの測定で得られるデータを処理するプログラムを作成せよ.
ただし,以下の機能を有し,最初の画面(またはメインの画面)には作成者のIDと氏名が
一緒に表示されるようにすること.
1.データの読み込み
2.データの表示(数値,グラフ,ピークトップの波長や強度など)
[ 3.データの印刷(数値,グラフ,ピークトップの波長や強度など) ]
プログラムは,提出者が作成したデータおよび配布したデータ(ex01data.txt, em01data.txt))で テストすること.
グラフには両軸とも目盛と説明を入れること(縦軸は蛍光強度,横軸は波長(nm)).
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: Visual C++ 6.0
[3.3] 言語: C++
[4] 期限: [2008年01月12日17:00まで]
[5] その他の制限: ポインタを使ってテキストをよみこんでください。
全然歯が立ちません。
助けてください。
よろしくおねがいします。
0632デフォルトの名無しさん
2008/01/12(土) 00:06:320633デフォルトの名無しさん
2008/01/12(土) 00:06:36・作成者のIDと氏名
・配布したデータ(ex01data.txt, em01data.txt))
これが無いとエスパーじゃなきゃ無理。
0634デフォルトの名無しさん
2008/01/12(土) 00:10:32右の1文字を切り取って配列にぶち込むだけだろ。
0635デフォルトの名無しさん
2008/01/12(土) 00:11:52それって、指数表記に対応できるか?
tp://ja.wikipedia.org/wiki/%E6%8C%87%E6%95%B0%E8%A1%A8%E8%A8%98
1.2e10みたいな感じの奴。
0636デフォルトの名無しさん
2008/01/12(土) 00:15:01そんな条件無いだろ。
0637デフォルトの名無しさん
2008/01/12(土) 00:15:54めっっちゃ初歩ですが配列の使い方、いまいちよくわかっておりません
時間があるかた作っていただけるとありがたいです(ノ_・、)
0638デフォルトの名無しさん
2008/01/12(土) 00:19:28>>623 の問題より
条件1. 文字列内の各文字が0〜9までの数字か、マイナス記号(-)、小数点(.)のみで構成されている。
条件2. マイナス記号は文字列の最初(0番目の要素)以外は入らない。(もちろんなくても良い。)
条件3. 小数点は1つしか含まない。(場所はどこでもよい。)
0639デフォルトの名無しさん
2008/01/12(土) 00:22:48プログラミングの課題が出されたのですが、さっぱりわかりません。
代わりにプログラムを作って頂けないでしょうか。お願いします。
[1] 授業単元:プログラミング�U
[2] 問題文(含コード&リンク):正整数a以上b以下のHappyNumberを求めるプログラムを作成せよ。
ただし、関数を使うこと。
HappyNumberとは、正整数nの各桁の数を2乗し、その合計を求め、
その合計の各桁の数を2乗し、またその合計を求める計算を繰り返したとき、
最終的に1となる正整数nのことをいう。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: よくわかりません。
[3.3] 言語: C++
[4] 期限: 2008年1月14日まで
[5] その他の制限: 関数を使うところまで
0640229
2008/01/12(土) 00:36:54乗算回数がnpより良い方法が見つかりませんし、存在しないかもしれません。
0641デフォルトの名無しさん
2008/01/12(土) 00:40:37ぶっちゃけ協力してあげたくても数学の知識が足りない。すまん。
0642デフォルトの名無しさん
2008/01/12(土) 00:57:22やってみたけど、問題の意味を取り違えてるかもしれん
この場合だと乗算回数はどっちになるの?
n * ( 2 + p * p )
それとも
n * p * p
#include<iostream>
int main(void)
{
double a[10]={0.0, 0.1, 0.0, 2.2, 0.0, 0.0, 3.3, 4.4, 0.0, 5.5};
double b[10]={0.1, 0.0, 2.2, 0.0, 0.0, 3.3, 4.4, 0.0, 5.5, 0.0};
double c=0.0;
int i, skip_flag[10]={0};
for(i=0;i<10;i++) if(a[i]==0.0) skip_flag[i]=1;
for(i=0;i<10;i++) if(b[i]==0.0) skip_flag[i]=1;
for(i=0;i<10;i++) if(!skip_flag[i]) c+=a[i]*b[i];
std::cout << c << std::endl;
return 0;
}
0643デフォルトの名無しさん
2008/01/12(土) 01:09:01#include<iostream>
#include<algorithm>
#include<list>
using namespace std;
int DigitPowSum(int n){
int sum = 0;
while(n){
int i=n%10;
sum+=i*i;
n/=10;
}
return sum;
}
bool IsHappyNumber(int n){
list<int> check;
while(1){
if(n==1)return true;
if(find(check.begin(),check.end(),n)!=check.end())return false;
check.push_back(n);
n=DigitPowSum(n);
}
}
int main(void){
int a,b;
cin >> a;
cin >> b;
for(int i=a;i<=b;++i)if(IsHappyNumber(i))cout<<i<<endl;
return 0;
}
list使っていいのか知らないけど。もしかしたら大きな勘違いで無駄なことやってるかも。
0644642
2008/01/12(土) 01:12:14>>642 をちょっと修正した
>aとbを同時に扱ってはならない
に抵触するかもしれない
#include<iostream>
int main(void){
double a[10]={0.0, 0.1, 0.0, 2.2, 0.0, 0.0, 3.3, 4.4, 0.0, 5.5};
double b[10]={0.1, 0.0, 2.2, 0.0, 0.0, 3.3, 4.4, 0.0, 5.5, 0.0};
double c=0.0;
int i, j, skip_flag[10]={0};
// 改変のターン ここから
for(i=0;i<10;i++) if(a[i]==0.0) skip_flag[i]=1;
for(i=0;i<10;i++) if(b[i]==0.0) skip_flag[i]=1;
for(i=0,j=0;i<10;i++) if(!skip_flag[i]) a[j++]=a[i];
for(i=0,j=0;i<10;i++) if(!skip_flag[i]) b[j++]=b[i];
// 改変のターン ここまで
// 乗算のターン ここから
for(i=0;i<j;i++) c+=a[i]*b[i];
// 乗算のターン ここまで
std::cout << c << std::endl;
return 0;
}
0645デフォルトの名無しさん
2008/01/12(土) 01:35:39list<int> が激しく無駄じゃね?
set<int> にして global か static にしたほうがいい気がする.
ただ,>>639 の定義に従うと,1,10,100,1000,...,10^n しか該当しない気がするので
bool IsHappyNumber( int a )
{
while ( a > 1 ) {
if ( a % 10 ) {
break;
}
a /= 10;
}
return ( a == 1 || a == 10 ) ;
}
でいいんじゃないかとおもうが,自信はない.
0646デフォルトの名無しさん
2008/01/12(土) 01:42:127とか13とかも該当するでしょ?
list<int>は無駄っぽいけど、
循環してるのをどうやって判定すればいいかわからんから力技でやってみた。
0647デフォルトの名無しさん
2008/01/12(土) 01:43:22残念ながら、その予想は間違い。
31とかが、HappyNumberになるよ
0648デフォルトの名無しさん
2008/01/12(土) 01:51:25その通りだった.勘違いしてた.
0649デフォルトの名無しさん
2008/01/12(土) 01:51:34#include<set>
using namespace std;
bool IsHappyNumber( int n ){
set<int> check;
while(1){
check.insert(n);
int sum=0;
while(n)
{
int i=n%10;
sum+=i*i;
n/=10;
}
n=sum;
if(n==1)return true;
if(check.find(n)!=check.end()) return false;
}
}
int main(void){
int a,b;
cin >> a;
cin >> b;
for(int i=a;i<=b;++i)if(IsHappyNumber(i))cout<<i<<endl;
return 0;
}
確かにsetの方が簡潔にかけるのと、あと関数2つも必要なかったので書き直してみた。
staticにしたほうがいいってのがよくわかんないけど・・・
0650デフォルトの名無しさん
2008/01/12(土) 02:00:19最終的には4を含むループにはまるか、1で終わるかのどっちかなんだな。
証明もできたがはじめて知ったよ。
0651デフォルトの名無しさん
2008/01/12(土) 02:10:080652デフォルトの名無しさん
2008/01/12(土) 02:56:42/* goto使いまくりだけど */
#include <stdio.h>
#include <string.h>
int main(void)
{
char buff[256];
gets_s(buff, 256);
int charaNum = 0;
int wordNum = 0;
int sentenceNum = 0;
for(int i = 0; i < strlen(buff); i++) {
if(buff[i] == '.') {
sentenceNum++;
wordNum++;
goto LABEL_SPACESKIP;
}
0653デフォルトの名無しさん
2008/01/12(土) 02:57:21if((buff[i] == ',') || (buff[i] == ' ')) {
wordNum++;
goto LABEL_SPACESKIP;
}
charaNum++;
if(false) {
LABEL_SPACESKIP:;
for(int j = i+1; j < strlen(buff); j++) {
if(buff[j] != ' ') {
i = j-1;
goto LABEL_CONTINUE;
}
}
break;
}
LABEL_CONTINUE:;
}
printf(" %d\n", charaNum);
printf(" %d\n", wordNum);
printf(" %d\n", sentenceNum);
return 0;
}
0654デフォルトの名無しさん
2008/01/12(土) 02:59:06if(buff[i] == '.') {
↓
if((buff[i] == '.') || (buff[i] == '!') || (buff[i] == '?')) {
0655デフォルトの名無しさん
2008/01/12(土) 03:46:48>p=fopen(argv[1],"r");
>はもっと嫌い。
後学のために、その理由を教えていただけませんか?
当方は
if ((p = fopen(argv[1], "r")) == NULL) { }
と書いています。ただ、
if(isplaha(c)) { }
はよく使いますが、
if (!(p = fopen(argv[1], "r"))) { }
は私自身がつまづくのでしません。
宗教論争のつもりはないです。ただ、他の方の感覚を知りたいだけです。
0656655
2008/01/12(土) 03:50:300657デフォルトの名無しさん
2008/01/12(土) 04:00:380658デフォルトの名無しさん
2008/01/12(土) 07:49:56http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5738.txt
0659デフォルトの名無しさん
2008/01/12(土) 08:04:01当方の環境は WindowsXP, 処理系は cygwin(gcc 3.4.4) で確認しています。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5739.txt
>>657
これは失礼。では宿題を解きながらではいかが?
0660デフォルトの名無しさん
2008/01/12(土) 08:30:170661デフォルトの名無しさん
2008/01/12(土) 09:05:49必ず一通りの経路しかないようになってんのか。
迷路って面白いな。
0662デフォルトの名無しさん
2008/01/12(土) 11:22:51ありがとうございます!!
0663デフォルトの名無しさん
2008/01/12(土) 11:30:16の書き込みをした者です。
今日の午後2時までに可能なところまで回答していただけないでしょうか。
よろしくお願いいたします。
0664デフォルトの名無しさん
2008/01/12(土) 11:30:20その場合2n+(n*p*p)と扱われます。
ifによって乗算回数を減らす事はほぼ禁止されています。
>>644は0でない要素数が同じでないと正しく動きません。
0665デフォルトの名無しさん
2008/01/12(土) 12:22:16最初の数学の合計点が出力結果にならないので諦めた
0666デフォルトの名無しさん
2008/01/12(土) 12:38:38#include <stdlib.h>
static void in_word(char *t, int *c, int *w, int *s);
static void in_space(char *t, int *c, int *w, int *s);
static void in_word(char *t, int *c, int *w, int *s)
{
if (!*t || *t == '\n')
return;
*c += 1;
switch (*t) {
case ' ': case ',':
return in_space(++t, c, w, s);
case '.': case '?': case '!':
*s += 1;
return in_space(++t, c, w, s);
default:
return in_word(++t, c, w, s);
}
}
/*続く*/
0667デフォルトの名無しさん
2008/01/12(土) 12:39:03static void in_space(char *t, int *c, int *w, int *s)
{
if (!*t || *t == '\n')
return;
*c += 1;
switch (*t) {
case ' ': case ',':
return in_space(++t, c, w, s);
default:
*w += 1;
return in_word(++t, c, w, s);
}
}
int main(int ac, char **av)
{
char text[1024];
int c, w, s;
fgets(text, sizeof text, stdin);
c = w = s = 0;
in_space(text, &c, &w, &s);
printf("character:%d word:%d sentence:%d\n", c, w, s);
return 0;
}
0668デフォルトの名無しさん
2008/01/12(土) 12:39:42以下のソースで、ファイルは出力されるのですが、音声が出てきません。
どこを修正すればよいか教えていただけませんか?
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define SIZE 22050*5
#define OFFSET 23
int main(int argc,char *argv[])
{
FILE *fp;
short int inbuf[SIZE];
short int outbuf[SIZE];
int i,f,f0,amp,PI;
f = 440;
f0 = 11050;
amp = 5000;
if((fp = fopen("test-sound-16-22.wav", "rb")) == NULL ) {
printf("ファイルオープンエラー\n");
exit(EXIT_FAILURE);
}
0669デフォルトの名無しさん
2008/01/12(土) 12:40:58fread(inbuf, sizeof(short int), SIZE, fp);
fclose(fp);
for (i=OFFSET; i<200; i++)
printf("%d, ",inbuf[i]);
printf("\n");
for (i=0; i<OFFSET; i++)
outbuf[i]=inbuf[i];
for (i=0; i<(SIZE-OFFSET); i++){
outbuf[i+OFFSET] = amp * sin(2*PI*i*(f/f0));
}
for (i=(SIZE-OFFSET); i<SIZE; i++)
outbuf[i]=0;
if((fp = fopen("testfile2.wav", "wb")) == NULL ) {
printf("ファイルオープンエラー\n");
exit(EXIT_FAILURE);
}
fwrite(outbuf, sizeof(short int), SIZE, fp);
fclose(fp);
return 0;
}
0670デフォルトの名無しさん
2008/01/12(土) 12:43:30スレ違い。
もし宿題であって丸投げするのであれば>>1をよく読んで書き直し。
0671デフォルトの名無しさん
2008/01/12(土) 12:56:54すみません、間違えた数字を書いていました。
(成績表)
学籍番号 5001 5002 5003
数学 62 45 70
英語 75 65 93
国語 54 82 63
0672デフォルトの名無しさん
2008/01/12(土) 13:00:20#include <stdio.h>
int main(void)
{
int seiseki[3][4]={{5001,62,75,54},{5002,45,65,82},{5003,70,93,63}};
int i, total[3]={0,0,0};
double ave[3];
0673デフォルトの名無しさん
2008/01/12(土) 13:00:47ためしに、引数つけずにプログラムを実行したらどうなる?
0674デフォルトの名無しさん
2008/01/12(土) 13:30:36http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5740.txt
>>672
実は数日前に適当にやって、変態になった。
クソースだな http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5740.txt
参考にしないでくれ。
0675デフォルトの名無しさん
2008/01/12(土) 13:31:33クソース http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5741.txt
0676デフォルトの名無しさん
2008/01/12(土) 13:32:35>>663 >>671
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5742.txt
丁寧にやってたらちょっと時間かかった。
もうすでに書いた後だったんで>>672のソースは使ってない。
0677デフォルトの名無しさん
2008/01/12(土) 13:34:14C++じゃないの?
0678デフォルトの名無しさん
2008/01/12(土) 13:36:27coutを書き換えるくらいでOKなように書いてあるけど
0679デフォルトの名無しさん
2008/01/12(土) 13:49:45ありがとうございます。でもこのプログラムだと習ってないことが多いので申し訳ないのですがこれは自分には難しすぎます。
あと合計点や平均点の画面出力にはprintf文でやりたいと思います。
#include <stdio.h>
void main(void) ←ここ間違えていたので直しました
{
int seiseki[3][4]={{5001,62,75,54},{5002,45,65,82},{5003,70,93,63}};
int i, total[3]={0,0,0};
double ave[3];
0680デフォルトの名無しさん
2008/01/12(土) 13:54:46>>232の[3.3]を見直して自分の迂闊さに後悔するんだ
0681デフォルトの名無しさん
2008/01/12(土) 14:05:12このプログラムはC++ではないのですか?
学校ではこういう風に教わったので、他の方法などはわかりません。すみません
0683デフォルトの名無しさん
2008/01/12(土) 14:11:45http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5743.txt
一応C言語に直した。
先生に何言語を教えてくれているのか一度ちゃんと質問した方がいいと思う。
0684デフォルトの名無しさん
2008/01/12(土) 14:25:37クラス、STL、Boostを使用とかも明記すればいいかもね(Boost使う授業とか熱そうだな)。
0685デフォルトの名無しさん
2008/01/12(土) 14:28:58[2] 問題文:構造体としてT1時T1分T1秒とT2時T2分T2秒をキーボードから入力し、経過時間を求め、表示するプログラムを作成しなさい。但し、秒は実数型とする
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:fujitsu workbench
[3.3] 言語:C
[4] 期限:1月16日16:00
[5] その他の制限:T1=7時25分12.33秒 T2=12時3分27.55秒.時間は24時間60分60秒で
それ以上はNGで安全装置を働かせる
0686デフォルトの名無しさん
2008/01/12(土) 14:29:08制御文、配列、関数、構造体、ポインタ
あたりがおおまかな節目になるかな?
0687デフォルトの名無しさん
2008/01/12(土) 14:32:160688デフォルトの名無しさん
2008/01/12(土) 14:34:34考えなくていいです
0690デフォルトの名無しさん
2008/01/12(土) 14:39:20非常に参考になりました、感謝致します。
どうもありがとうございました。
0691デフォルトの名無しさん
2008/01/12(土) 14:39:29ダブル使ってもだめ?
0692デフォルトの名無しさん
2008/01/12(土) 14:55:21double ですか??
使っても50桁入力できません(ノ_・。)
0693デフォルトの名無しさん
2008/01/12(土) 14:57:41んじゃ、今からとっかかる
他にやってる人がだしたらまあそっちで。
0694デフォルトの名無しさん
2008/01/12(土) 15:07:53ありがとうございます(ノд`。)
0695デフォルトの名無しさん
2008/01/12(土) 15:28:040696デフォルトの名無しさん
2008/01/12(土) 15:39:210697デフォルトの名無しさん
2008/01/12(土) 15:42:392*3
2+2+2
と思ったが50桁分ループさせるのはそれはそれで面倒そうだな
0698デフォルトの名無しさん
2008/01/12(土) 15:52:02もうめんどくてもなんでもいいっス(ノ_・。)
0699デフォルトの名無しさん
2008/01/12(土) 16:00:28少ない数なら>>697でもいいけど1億回以上も加算してたら処理が終わらん。
0700デフォルトの名無しさん
2008/01/12(土) 16:05:42ほんと分かんないんでお願いします
0701デフォルトの名無しさん
2008/01/12(土) 16:06:31最初は加算ができてれば実装が楽かと思ったんだけど・・・
0702デフォルトの名無しさん
2008/01/12(土) 16:07:30期限はまだあと4日もあるのにたった2時間で催促するなよw
0703デフォルトの名無しさん
2008/01/12(土) 16:08:470704685
2008/01/12(土) 16:27:18焦ってんです。
0705デフォルトの名無しさん
2008/01/12(土) 16:31:24というか>>700に期限を間違えてたって書けよ
0706デフォルトの名無しさん
2008/01/12(土) 16:33:39ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5744.c
色々制限が入ってるけど、面倒なので例外処理は無視してる
0708デフォルトの名無しさん
2008/01/12(土) 16:53:150709デフォルトの名無しさん
2008/01/12(土) 16:56:01char A[]="123"を、
"321\0" に変換し、
"32100000000...000\0" に変換してから
0x03, 0x02, 0x01, 0x00, ... に変換
して計算しようとしていた自分は一体……
0710デフォルトの名無しさん
2008/01/12(土) 17:03:53>>707
で、別人なのはいいけど期限は結局いつなの?
0711デフォルトの名無しさん
2008/01/12(土) 17:24:55ほんとありがとうございました!
これで宿題はとりあえず..(ノ_・。)
面接があって、自分で説明するにはまだわかんないことだらけなのでまた質問しにきます!
0712デフォルトの名無しさん
2008/01/12(土) 17:30:03それを最後に、>>619の姿を見たものはいなくなるのであった...
0713デフォルトの名無しさん
2008/01/12(土) 17:45:44あのーまだ
#define
ってならってないんですけども
ないと出来ないですか?(ノ_・。)
0714デフォルトの名無しさん
2008/01/12(土) 17:46:27[2] 問題文(含コード&リンク):
名前、出身都道府県、生年月日を読み込み、名前、生年月日、満年齢、出身都道府県の順に
出力するプログラムをクラスを用いて作成せよ。満年期を計算する場合には現在の日付
(年月日)が必要となるが、これはアクセサを用いて値を入れること。
名前:内藤大介 出身都道府県:東京都 生年月日:1987年08月07日
[3] 環境
[3.1] OS: Windows XP
[3.2] コンパイラ名とバージョン: VC 6.0
[3.3] 言語: C++
期限: ([2008年01月15日12:30まで]
[5] その他の制限
0715デフォルトの名無しさん
2008/01/12(土) 17:46:35Nってかいてるのを50に書き直す
0716デフォルトの名無しさん
2008/01/12(土) 17:47:23_(__つ/ ̄ ̄ ̄/_
\/ /
 ̄ ̄ ̄
( ゚д゚ )
_(__つ/ ̄ ̄ ̄/_
\/ /
 ̄ ̄ ̄
0717デフォルトの名無しさん
2008/01/12(土) 17:48:16もっと私を見て!!
0718デフォルトの名無しさん
2008/01/12(土) 18:43:37#include <stdio.h>
/* 7時25分12.33秒 なら 7 25 12.33 と入力 */
typedef struct _stime {
int hour;
int minute;
float second;
} stime;
void safety(stime* ptr)
{
if(ptr->hour > 24) ptr->hour = 24;
if(ptr->minute > 60) ptr->minute = 60;
if(ptr->second > 60.0f) ptr->second = 60;
}
int main(void)
{
stime t1, t2, t3;
/* 時 分 秒で入力 */
scanf("%d %d %f", &t1.hour, &t1.minute, &t1.second);
scanf("%d %d %f", &t2.hour, &t2.minute, &t2.second);
/* 安全装置 */
safety(&t1);
safety(&t2);
/* 続く */
0719デフォルトの名無しさん
2008/01/12(土) 18:44:41t3.hour = t2.hour - t1.hour;
t3.minute = t2.minute - t1.minute;
t3.second = t2.second - t1.second;
if(t3.second < 0) {
t3.minute--;
t3.second += 60.0f;
}
if(t3.minute < 0) {
t3.hour--;
t3.minute += 60;
}
if(t3.hour < 0) {
t3.hour += 24;
}
printf("経過時間 %d時間%d分%5.2f秒\n", t3.hour, t3.minute, t3.second);
return 0;
}
/* 題意がよく分からないけどこういうこと? */
0720デフォルトの名無しさん
2008/01/12(土) 19:24:33mixiにも書いてるマルチじゃん。
ttp://mixi.jp/view_bbs.pl?id=26879853&comment_count=0&comm_id=602606
820 2008年01月11日 14:01
りょ〜
初めまして
プログラミングの課題が出されたのですが、さっぱりわかりません。
代わりにプログラムを作って頂けないでしょうか。お願いします。
[1] 授業単元:プログラミング�U
[2] 問題文(含コード&リンク):正整数a以上b以下のHappyNumberを求めるプログラムを作成せよ。
ただし、関数を使うこと。 HappyNumberとは、正整数nの各桁の数を2乗し、その合計を求め、
その合計の各桁の数を2乗し、またその合計を求める計算を繰り返したとき、最終的に1となる正整数nのことをいう。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: よくわかりません。
[3.3] 言語: C++
[4] 期限: 2008年1月14日まで
[5] その他の制限: 関数を使うところまで
愛知教育大学に通報しといた。
0721デフォルトの名無しさん
2008/01/12(土) 19:25:17何度もすいません
あと100回くらい来そうです、、
>>706 のプログラムで、
一桁ずつ配列に入れる部分てどこになりますか?
変な質問だったらすいません
0722デフォルトの名無しさん
2008/01/12(土) 19:30:50つまったところでサンプルみて補った方が良いよ。
ここは基本的に丸投げされた宿題を解く場であって 、解き方を教える場ではないしな。
まあ親切な解答者なら解説までしてくれるかもしれないが。
0723デフォルトの名無しさん
2008/01/12(土) 19:50:08わかりました!!
0724デフォルトの名無しさん
2008/01/12(土) 20:18:31(<、,,> ":::::::::::::::::::::::::::: 、
〜〈/::::::::::::::::::::::::::::::::::::::::::::)
〃:::::::::::::::::::::::::::::::::::::::::<、 ど ロ こ
~そ:::::::::::::::::::::::::::::::::::::::::::::::::::::,) も リ の
、_ ,, /::::::::::::::::::::::::、,ゝ===く:::::::,:::::ヽ め コ
`V::::::::::::::::::::、_γ `ヾ,_ < ! ン
l::::::::::::::::::::::く( r,J三;ヾ )> く,
〜v,ん:::::::::::::::´:::::::=; {三●;= } ,=ニ `/l/!/⌒Y
l:::::::::::::::::::::::::::::ゝ≡三=イ ´::::゙:::::::::::::::::::::::::::::::
、m,.. ,ゞ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
0725デフォルトの名無しさん
2008/01/12(土) 20:56:16[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5745.txt
[3] 環境
[3.1] OS:windowsXP
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C言語
[4] 期限:2008年01月14日10時まで
[5] その他の制限: 特にないです
よろしくお願いします。
0726デフォルトの名無しさん
2008/01/12(土) 21:55:49#define BUF_SIZE 1024
int main() {
char in[BUF_SIZE];
int i;
scanf("%s", in);
for (i = 0; in[i] != '\0'; ++i) {
if (in[i] == 't' && in[i+1] == 'i') {
printf("chi");
++i;
} else putchar(in[i]);
}
return 0;
}
0727デフォルトの名無しさん
2008/01/12(土) 22:09:081/12 26:00が定刻です。
>>718
大変ありがとうございます、安全装置は時間が単位ごと
に24時60分60秒を超えない様に設定するようです。
その他の制限:T1=7時25分12.33秒 T2=12時3分27.55秒は正直この数値は
なんでもいいです。
0729デフォルトの名無しさん
2008/01/12(土) 23:28:370730デフォルトの名無しさん
2008/01/12(土) 23:34:56ありがとうございます、助かりました。
0731デフォルトの名無しさん
2008/01/12(土) 23:51:45>579 >148 >631
【未解決問題】
>>448 1/13
>>473 1/14
>>566 1/15 9:00
>>714 1/15 12:30
>>514 1/15
>>576 1/17日中
>229 1/31
>343 不明
0732デフォルトの名無しさん
2008/01/13(日) 00:12:01[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5747.zip
[3] 環境
[3.1] OS: Windows
[3.3] 言語: C
[4] 期限: 今日の12時まで
[5] その他の制限:
〆切が近くて本当に申し訳ありませんが、宜しくお願いします。
0733デフォルトの名無しさん
2008/01/13(日) 00:20:47"0"使っていいの?
0734デフォルトの名無しさん
2008/01/13(日) 00:23:08http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5748.txt
#include <stdio.h>
int main()
{
for(long a=1001; a<=9999; a+=2)
{
long b=987654321/a;
if(a*b==987654321)
printf("%ld * %ld = %ld\n", a, b, a*b);
}
return 0;
}
0736デフォルトの名無しさん
2008/01/13(日) 00:28:40やっぱり一番上の桁0は駄目なんじゃないかな
とりあえず俺は
for(i = 1000; i < 9999; i++)
for(j = 100000; j < 999999; j++)
条件を満たすか判定
でやるから、おまいはもっと賢い方法でやれ
0737デフォルトの名無しさん
2008/01/13(日) 00:33:19#include<stdio.h>
int main(void){
int i,j,k=987654321;
for(i=1000;i<=9999;i++)
if(k%i==0){
j=k/i;
printf("%9d\n",i);
printf("x %7d\n",j);
printf("---------\n");
printf("%9d\n",j%10*i);
printf("%8d\n",j/10%10*i);
printf("%7d\n",j/100%10*i);
printf("%6d\n",j/1000%10*i);
printf("%5d\n",j/10000%10*i);
printf("%4d\n",j/100000%10*i);
printf("---------\n");
printf("%9d\n",i*j);
}
return 0;
}
0738デフォルトの名無しさん
2008/01/13(日) 00:33:56とりあえず因数分解しろよw
途中表示を忘れたので訂正
#include <stdio.h>
int main()
{
for(long a=1000; a<=9999; a++)
{
long b=987654321/a;
if(a*b==987654321)
{
printf(" %4ld\n* %6ld\n----------\n"
" %4ld\n"
" %4ld\n"
" %5ld\n"
" %5ld\n"
" %5ld\n"
" %4ld\n"
"----------\n"
" %9ld\n\n\n", a, b,
b%10*a,
(b/10)%10*a,
(b/100)%10*a,
(b/1000)%10*a,
(b/10000)%10*a,
(b/100000)%10*a,
a*b);
}
}
return 0;
}
0740732
2008/01/13(日) 00:54:27本当に助かりました。
ありがとうございます。
0741 ◆u2YjtUz8MU
2008/01/13(日) 01:01:32[1] 授業単元: C言語
[2] 問題文(含コード&リンク):1から10までの数値を並び替えし、並び替えた10個の数字の合計(和)を出力。
またその合計を10で割った商と余りを出力する。
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン:Borland C++ 5.5.1
[3.3] 言語: C言語でよろしくお願いします。
[4] 期限: 明日まで。
[5] その他の制限:void inputnum outputnum for sortnum 等はOKらしい。
0742 ◆u2YjtUz8MU
2008/01/13(日) 01:03:15どなたかお願いいたします。
0743デフォルトの名無しさん
2008/01/13(日) 01:05:41元データはランダムに並んでるのか? > 1から10
使っていいライブラリは?
0744デフォルトの名無しさん
2008/01/13(日) 01:07:10[2] 問題文(含コード&リンク):
n角形(n>2)の面積を求めるプログラムを作成せよ
関数を用いてtxtファイルにある座標を読み込む形式のもの
解答においては三角形分割せずに台形の面積の総和として表す方法で解く事を指定する
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:visual stadio 2005
[3.3] 言語: C
[4] 期限: 1月14日24時まで
[5] その他の制限:特にありません
0745デフォルトの名無しさん
2008/01/13(日) 01:13:16#include <stdio.h>
int cntdigit(int n)
{
int cnt = 0;
while(n) cnt++, n /= 10;
return cnt;
}
int main(void)
{
int i, j, w[6];
for(i = 1000; i <= 9999; i++){
for(j = 100000; j <= 999999; j++){
w[0] = i*(j%10);
w[1] = i*((j/10)%10);
w[2] = i*((j/100)%10);
w[3] = i*((j/1000)%10);
w[4] = i*((j/10000)%10);
w[5] = i*((j/100000)%10);
if(cntdigit(w[0]) == 4 && cntdigit(w[1]) == 4 &&
cntdigit(w[2]) == 5 && cntdigit(w[3]) == 5 &&
cntdigit(w[4]) == 5 && cntdigit(w[5]) == 4 &&
w[0] + 10*w[1] + 100*w[2] + 1000*w[3] + 10000*w[4] +100000*w[5] == 987654321)
printf("%d , %d\n", i, j);
}
}
return 0;
}
0746 ◆u2YjtUz8MU
2008/01/13(日) 01:17:54元データはランダムに並んでいます。
ライブラリに関しては一切問題文には、触れられていませんでしたがあまり高度なものは使用しないで頂きたいです
。
0747デフォルトの名無しさん
2008/01/13(日) 01:22:00なに順に並び替えるの?
0748 ◆u2YjtUz8MU
2008/01/13(日) 01:24:59降順です。
0749デフォルトの名無しさん
2008/01/13(日) 01:26:50>台形の面積の総和として表す方法で解く事
>>1
>・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
0751デフォルトの名無しさん
2008/01/13(日) 01:39:53http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5749.txt
生年月日と満年齢の両方でソート掛ける意味ないと思うので、満年齢でだけソートしてます
0752デフォルトの名無しさん
2008/01/13(日) 01:40:08この一文が全くもって意味不明なのだが…
四角形(特に凸四角形)はどうするんだろうか
n>2となっているが三角形はどうするんだろうか
0753デフォルトの名無しさん
2008/01/13(日) 01:42:010754デフォルトの名無しさん
2008/01/13(日) 01:43:14あほか? その数式含めて解けってのが出題の意図だろうが?
つか、こんなもん計算問題のうちにも入らんだろ?
0755デフォルトの名無しさん
2008/01/13(日) 01:48:19テキストファイルの書式は?
0756デフォルトの名無しさん
2008/01/13(日) 01:49:12X軸なりX軸で切って、切ったところの交点求めれば台形ってことでは?
端は 3角形になるけど…………
まさか禁止してないよね? >>744
0757751
2008/01/13(日) 01:51:23ごめん、満年齢でソートが意味ないんだった、逆だ
生年月日でソート掛けんといかんよな、場所はわかると思うから適当に直してくれ
0758デフォルトの名無しさん
2008/01/13(日) 01:52:29「出題の意図」とか言い始めるとこのスレの存在そのものを否定するような・・・
0759デフォルトの名無しさん
2008/01/13(日) 01:57:01与えられたn角形が凸であることの保証はあるんだろうか?
入出力の指定がないのでてきとーに。
問題文の解釈ゆれもてきとーに。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5750.c
0761 ◆u2YjtUz8MU
2008/01/13(日) 02:11:24遅い時間までありがとうございます。 助かりました。
0763デフォルトの名無しさん
2008/01/13(日) 02:27:32#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX 10
#define MIN 1
#define N 1000
int sum_and_distsort(int n, int a[], int b[]){
int i, x, sum = 0, cnt[MAX - MIN + 1] = {0};
for(i = 0; i < n; i++) cnt[a[i] - MIN]++;
for(i = 1; i <= MAX - MIN; i++) cnt[i] += cnt[i - 1];
for(i = n - 1; i >= 0; i--){
x = a[i] - MIN;
b[--cnt[x]] = x + MIN;
}
for(i = 0; i < MAX - MIN; i++) sum += cnt[i]*(MIN + i);
return sum;
}
int main(void){
int i, a[N], b[N], sum;
srand((unsigned)time(NULL));
for(i = 0; i < N; i++) a[i] = rand()%(MAX - MIN + 1) + MIN;
sum = sum_and_distsort(N, a, b);
puts("\nビフォア");
for(i = 0; i < N; i++) printf("%3d ", a[i]);
puts("\nアフター");
for(i = 0; i < N; i++) printf("%3d ", b[i]);
printf("\n合計 %d 商 %d 余り %d\n", sum, sum/10, sum%10);
return 0;
}
0764デフォルトの名無しさん
2008/01/13(日) 02:40:24for(i = 0; i < MAX - MIN; i++) sum += cnt[i]*(MIN + i);
を
for(i = n - 1; i >= 0; i--){
の上に移動希望
07651問目
2008/01/13(日) 03:00:14[2] 問題文:方程式 f(x)=x^2-c の近似値をニュートン法で求めることにより √c の近似値を求めよ。x の初期値は2、収束条件は|X_n+1 - X_n| < 10^(-5)とする。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン: gcc 3.4
[3.3] 言語: C
[4] 期限:2008年1月15日24:00まで
[5]下みたいになるようにお願いします。
<実行結果>
平方根を求めいた値を入力せよ:2
初期値x[0]:2
収束条件:1.0e-5
計算結果
-n--x-------y------
0 2.00000 2
1 1.50000 0.25
2 1.41667 0.0069444
3 1.41422 6.0073e-06
4 1.41421 4.5108e-12
√2.0の近似値は1.414214です。
07662問目
2008/01/13(日) 03:03:29そのほかは上と同じです。
問題文:次の微分方程式を、オイラー法を用いて近似解を求めなさい。
L(di/dt)+Ri=E
実行結果(例)
L:0.1
R:1
E:10
刻み幅:0.05
終了時間:1.0
t0:0.0
i0:0.0
近似解
0.00 0.00000
0.05 5.00000
0.10 7.50000
・・・
1.00 9.99999
0767デフォルトの名無しさん
2008/01/13(日) 05:26:40http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5751.txt
0768デフォルトの名無しさん
2008/01/13(日) 05:35:37http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5752.c
0769デフォルトの名無しさん
2008/01/13(日) 05:42:280770デフォルトの名無しさん
2008/01/13(日) 05:48:15↓こんなコード書いたんだが何でこれで上手くいくのか
解説してくしてほしい・・・・
void strcpy (char *s, char *t){
while (*s++ = *t++)
;
}
0771デフォルトの名無しさん
2008/01/13(日) 05:49:420772デフォルトの名無しさん
2008/01/13(日) 06:02:58質問とは関係ないけどtはconst char *にした方が良い。
0773デフォルトの名無しさん
2008/01/13(日) 06:11:10質問とは関係ないけどtはregister const char *にした方が良い。
0774デフォルトの名無しさん
2008/01/13(日) 06:17:46何で簡略できるのかわからん・・・
俺グループで一番馬鹿なんだ・・・・
0775デフォルトの名無しさん
2008/01/13(日) 06:49:54*s = *t;
++s;
++t;
}
これくらい分解したらわかりやすいんじゃないの?
*s ++s;は*(s++)と省略できて、優先順位の関係から括弧も省略できて*s++になる
まず「後置インクリメント」でぐぐるところからはじめるといいと思う
>>770
質問とは関係ないけどスレ違い
0776デフォルトの名無しさん
2008/01/13(日) 07:23:57while(a != 0)をwhile(a)と省略できる
while(a == 0)をwhile(!a)と省略できる
文字列の終端にはNULL文字('\0')が入っている。
これは値は0なので>>771の言うとおり簡略できる。
>>775
卒業研究も宿題のうちだから、それでわからないことなんだしいいんじゃね?
0777デフォルトの名無しさん
2008/01/13(日) 09:45:08テンプレつかって丸投げしてもらわないと
>>770みたいな「ごく普通の質問」は質問スレでやるべき
このスレは別に学校スレじゃない
0778デフォルトの名無しさん
2008/01/13(日) 09:58:05いつもありがとうございます。助かります。
申告をば。
>>579 は, >>658, >>659 で回答されています。
0779714
2008/01/13(日) 10:14:04私ははすごいエラーが出てたいへんだったのに(笑)
とても助かりました。
ありがとうございます。
0780デフォルトの名無しさん
2008/01/13(日) 10:22:59#include <stdio.h>
double f(double l, double r, double e, double i)
{
return (-r*i + e)/l;
}
int main(void)
{
double l, r, e, dt, tn, t, i;
printf("L:"); scanf("%lf", &l);
printf("R:"); scanf("%lf", &r);
printf("E:"); scanf("%lf", &e);
printf("刻み幅:"); scanf("%lf", &dt);
printf("終了時間:"); scanf("%lf", &tn);
printf("t0:"); scanf("%lf", &t);
printf("i0:"); scanf("%lf", &i);
printf("近似解\n");
printf("%.2f %.5f\n", t, i);
while(t <= tn){
i += dt*f(r, l, e, i);
t += dt;
printf("%.2f %.5f\n", t, i);
}
return 0;
}
0781デフォルトの名無しさん
2008/01/13(日) 10:47:41#include <stdio.h>
#include <math.h>
double f(double c, double x){ return x*x - c;}
double g(double x){ return 2*x;}
int main(void){
double c, x, prevx, epsilon;
int n = 0;
printf("平方根を求めいた値を入力せよ:");
scanf("%lf", &c);
printf("初期値x[0]:");
scanf("%lf", &x);
printf("収束条件:");
scanf("%lf", &epsilon);
printf("-n--x-------y------\n");
printf("%3d %.5f %g\n", n, x, f(c, x));
while(1){
prevx = x;
x = prevx - f(c, prevx)/g(prevx);
n++;
printf("%3d %.5f %g\n", n, x, f(c, x));
if(fabs(x - prevx) < epsilon)
break;
}
printf("√%.1fの近似値は%.6fです。\n", c, x);
return 0;
}
0782デフォルトの名無しさん
2008/01/13(日) 10:52:390783デフォルトの名無しさん
2008/01/13(日) 10:59:370784デフォルトの名無しさん
2008/01/13(日) 11:03:07書式でマイナス指定するんじゃなかったっけ?
0785デフォルトの名無しさん
2008/01/13(日) 11:05:280786デフォルトの名無しさん
2008/01/13(日) 11:06:43どうした?
とりあえず俺も
>>775
0787デフォルトの名無しさん
2008/01/13(日) 11:12:58マージャンどうしよっかなー。
達成感なさそうだしなー。
0788デフォルトの名無しさん
2008/01/13(日) 12:17:56>>514 は本当に学校で出る宿題なのかw
0789デフォルトの名無しさん
2008/01/13(日) 12:51:19役全部知らないといけないじゃん。
0790デフォルトの名無しさん
2008/01/13(日) 12:52:35それを丸投げしてるわけだが。
0791デフォルトの名無しさん
2008/01/13(日) 13:23:54| わかやまぁ〜 |
\____ _____/
V / ̄ ̄ ̄ ̄ ̄\
, ゛ 三 ミ ヽ | わかやま |
( ( (( ゚∀゚ )) ) ) | わかやま |
ヾヽミ 三彡, ソ′\_ ___/
ワカヤマ〜,、,、 )ミ 彡ノ V
ヽ゚・゚っ (ミ 彡゛ (\|\|\∩
彡JJ \( ヽ( ゚∀゚)|ミ
)) \ ヽミ
( \ __つミ
\)ミ
0792デフォルトの名無しさん
2008/01/13(日) 13:31:16http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5754.zip
昔作ったOpenGLのサンプルだよ、ロボットがクルクル回転するだけ
MFC + OpenGLなんでキツイかも知らんが
マテリアルと光源の設定変更は含まれてない、CChildView::DrawWithOpenGL()で設定してるから
タイマとか使って固定値の部分を変更すりゃいいはず
.NET 2005で作ったからVC6への移行は自分でよろ、MFCのSDIでDoc-Viewなしのプロジェクト作れ
後は opengl32.lib glu32.lib glaux.lib をリンクすりゃいいだけと思う
0793デフォルトの名無しさん
2008/01/13(日) 13:44:00[2] 問題文: http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5755.txt
[3] 環境
[3.1] XP
[3.2] コンパイラ名とバージョン: visual studio 2005
[3.3] 言語: C言語
[4] 期限: 1/15
[5] その他の制限:なし
0794デフォルトの名無しさん
2008/01/13(日) 14:17:34{
int p, c;
char *hand[] = {"グー","チョキ","パー"};
printf("あなたの手は?\n(0.グー、1.チョキ、2.パー):");
scanf("%d", &p);
c = rand() / (RAND_MAX + 1.0) * 3;
printf("ジャンケン!ポン!!\nあなた:%s <vs> COM:%s\n", hand[p], hand[c]);
return (c - p + 2) % 3;
}
0795 ◆u2YjtUz8MU
2008/01/13(日) 16:55:26もう一つだけお願いしたい事があるんです。
#include <stdio.h>
#define OK 0
main(){
int num1,num2,num3,num4,num5,num6,num7,num8,num9,num10;
long a,d,r;
printf("num1 =");
scanf("%d",&num1);
printf("num2 =");
scanf("%d",&num2);
printf("num3 =");
scanf("%d",&num3);
printf("num4=");
scanf("%d",&num4);
0796 ◆u2YjtUz8MU
2008/01/13(日) 16:56:17scanf("%d",&num5);
printf("num6=");
scanf("%d",&num6);
printf("num7=");
scanf("%d",&num7);
printf("num8=");
scanf("%d",&num8);
printf("num9=");
scanf("%d",&num9);
printf("num10=");
scanf("%d",&num10);
a = num1+num2+num3+num4+num5+num6+num7+num8+num9+num10;
d = a/10;
r = a%10;
printf("和 =%d\n",a);
printf("商 =%d\n",d);
printf("余 =%d\n",r);
return(OK);
}このプログラムに10個のに入力した数値を昇順にソートする機能をつけて欲しいです。お願いします。
0797デフォルトの名無しさん
2008/01/13(日) 17:01:27配列にしねぇとめんどくせぇよw
0798デフォルトの名無しさん
2008/01/13(日) 17:05:450799 ◆u2YjtUz8MU
2008/01/13(日) 17:06:49自分でも長いなあと思っていたので。
0800デフォルトの名無しさん
2008/01/13(日) 17:08:130801デフォルトの名無しさん
2008/01/13(日) 17:25:390802デフォルトの名無しさん
2008/01/13(日) 17:41:51[2] 問題文:複数のコンテナから、最初に見つかった、空のコンテナの番号を求めよ、但し空のコンテナが無かった場合は-1をかえすこと。
[3] 環境
[3.1] OS: Windows XP SP2
[3.2] Visual Studio 2005
[3.3] C++
[4] 期限:特になし
[5] その他の制限:templateによる、コードでお願いします。
vector<int> vec1
vector<int> vec2
vector<int> vec3
以降、vectorコンテナの数は不定とします、
この中から、空のコンテナが見つかったら、最初に見つかった番号返し、無ければ
-1を返したいのですが、今はこんな格好が悪く、汎用性もない関数しか書けません
templateを使って、Genericな書き方を教えてください
int SearchEmptyContainer()
{
if( vec1.empty() )
return 1;
if( vec2.empty() )
return 2;
if( vec3.empty() )
return 3;
if( vec4.empty() )
return 4;
if( vec5.empty() )
return 5;
return -1;
}
0803デフォルトの名無しさん
2008/01/13(日) 17:50:41vec1, vec2, vec3を更にvectorに放り込んじゃいかんの?
0804デフォルトの名無しさん
2008/01/13(日) 17:51:18| |
\_因_/
□
□
0805デフォルトの名無しさん
2008/01/13(日) 18:01:09>>802です、thxです
その方法でも、全然問題ありませんが、templateというか、
ちょっと複雑になると、特殊化ちか、ファンクタが書けないので教えてもらえませんか
0806538
2008/01/13(日) 18:21:54>>542さんのとおりやったのですがうまくいきません。
X = 7.951602932829518799451307
N = 4
EPS = 0.000000041451814407547454
実行するとこうなります。
あと、できれば初心者が書くようなやつでお願いします。
0807デフォルトの名無しさん
2008/01/13(日) 18:39:43ちょっww
0808デフォルトの名無しさん
2008/01/13(日) 19:07:34言わんとしてる事がよく分からんが、こんなのか?
#include <iostream>
#include <vector>
using namespace std;
template <typename Container>
int GetEmpty(const vector<Container> & rVct) {
typename vector<Container>::const_iterator it = find_if(
rVct.begin(),
rVct.end(),
mem_fun_ref(&Container::empty)
);
return (it == rVct.end()) ? -1 : distance(rVct.begin(), it)+1;
}
int main()
{
vector< vector<int> > vct(4, vector<int>(1));
vct[2].clear();
cout << GetEmpty(vct) << endl;
}
0809デフォルトの名無しさん
2008/01/13(日) 19:11:52ちなみに>>808の実行結果は3ね。
0810538
2008/01/13(日) 19:13:370811802
2008/01/13(日) 19:42:45thxです、教えてもらったコードを、そのままコンパイルすると、
思いっきりエラーが出るんですが・・・・
(8) : error C3861: 'find_if': 識別子が見つかりませんでした
(21) : コンパイルされたクラスの テンプレート のインスタンス化 'int GetEmpty<std::vector<_Ty>>(const std::vector<std::vector<_Ty>> &)' の参照を確認してください
with
[
_Ty=int
]
(11) : error C3861: 'mem_fun_ref': 識別子が見つかりませんでした
(13) : warning C4244: 'return' : '__w64 int' から 'int' への変換です。データが失われる可能性があります。
エラー 2、警告 1
========== ビルド: 0 正常終了、1 失敗、0 更新、0 スキップ ==========
0813デフォルトの名無しさん
2008/01/13(日) 20:16:590814デフォルトの名無しさん
2008/01/13(日) 20:17:240815802
2008/01/13(日) 20:23:35vector< vector<int> > vct(4, vector<int>(1));
として定義して
GetEmpty(vct)で関数を読んでますけど
例えば、既に出来合いのint型のvectorコンテナがこのようにある場合
vector<int> foo;
vector<int> hoge;
vector<int> hage;
のコンテナをGetEmpty(vct)に引き渡す場合、どのように呼んだらいいでしょうか
お願いします。
0816デフォルトの名無しさん
2008/01/13(日) 20:45:58vct.push_back(foo);
vct.push_back(hoge);
vct.push_back(hage);
0817802
2008/01/13(日) 20:53:38vector<int> foo;
vector<int> hoge;
vector<int> hage;
は既に定義済みで、値は入っていたり、いなかったり、としてその場合
int main
{
vector< vector<double> > vct;
vct.push_back(foo);
vct.push_back(hoge);
vct.push_back(hage);
cout << GetEmpty(vct) << endl;
return 0;
}
これでできました
thx
0818デフォルトの名無しさん
2008/01/13(日) 21:14:05while(1)
{
*s=*t;
if(*t=='\0') break;
++s;
++t;
}
0819 ◆Mvt5U7iySM
2008/01/13(日) 21:27:41[2] 問題文:http://133.5.18.167/rinkou/program/gauss.pdf LU分解を用いた連立一次方程式の課題
作ってみたプログラムのソース:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5756.txt
使うdata.txt:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5757.txt
:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5758.txt
[3] 環境
[3.1] OS: Windows
[3.2] Microsoft Visual C++ 2008 Express Edition
[3.3] 言語: C++
[4] 期限: 無期限
[5] その他の制限:
5758.txtだときちんと結果がですのですが、
5757.txtを試すと実行結果が x0 = 1.#INF0 となります。
if(a[i][i] == 0){ double max = a[i][i];/* 最大値を求める*/ 〜 b[i] = e;} の部分が
間違っているようなのですが、どう間違っているかがわかりません。よろしくお願いします。
0820デフォルトの名無しさん
2008/01/13(日) 21:56:220821デフォルトの名無しさん
2008/01/13(日) 22:02:30> if(a[i][i] == 0){ double max = a[i][i];/* 最大値を求める*/ 〜 b[i] = e;} の部分が
> 間違っているようなのですが
ちょびっと見ただけだけど、fabs忘れてるとか?
double max = fabs(a[i][i]);/* 最大値を求める*/
0822デフォルトの名無しさん
2008/01/13(日) 22:06:32寝る直前に書いたやつに突っ込むなよ ゚・(ノД`)
ちなみに9時に起こされました
0823デフォルトの名無しさん
2008/01/13(日) 22:18:16でも、やっぱり超上位大はいないんだよね。
最高でも横国。
0824デフォルトの名無しさん
2008/01/13(日) 22:26:22[1] 授業単元:
[2] 問題文(含コード&リンク):二つの複素数Z1,Z2を読み込んで、それぞれの絶対値、及びZ1とZ2の和、差、積、商を求めて出力するプログラムをクラスを用いて作成せよ。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: VC 6.0
[3.3] 言語: C++
[4] 期限: 2008年1月18日
[5] その他の制限
0825デフォルトの名無しさん
2008/01/13(日) 22:26:49> for(j = i++; j < M; j++){
for(j = i+1; j < M; j++){
0827デフォルトの名無しさん
2008/01/13(日) 22:53:54[2] 問題文:第1引数で指定したディレクトリのファイル一覧をファイルサイズと共に表示するプログラムを作れ。
[3] 環境
[3.1] OS: Windows XP
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2008年1月15日
[5] その他の制限:
#include <stdio.h>
#include <sys/types.h>
#include <dirent.h>
main(int argc,char **argv){
DIR *dp;
struct dirent *dirp;
if((dp = opendir(argv[1]))==NULL){
perror("opendir");
exit(0);
}
while((dirp = readdir(dp)) != NULL){
printf("%s\n",dirp->d_name);
}
closedir(dp);
}
ファイルの一覧を表示することは上のプログラムでできたのですが、サイズの表示法が分かりません。
どうかよろしくお願いします。
0828デフォルトの名無しさん
2008/01/13(日) 23:04:35http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5759.txt
0829デフォルトの名無しさん
2008/01/13(日) 23:29:35stat使わなきゃだめかな?
それとも他に何かあるんだろうか。
0830デフォルトの名無しさん
2008/01/13(日) 23:29:46【時間切れ】 (1/13)
>448
【未解決問題】
>>744 1/14 24:00
>>741 1/14 >>795-796 再質問
>>514 1/15
>>827 1/15
>>576 1/17日中
>>824 1/18
>229 1/31
>343 不明
0831デフォルトの名無しさん
2008/01/13(日) 23:45:51#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <dirent.h>
int main(int argc, char *argv[])
{
DIR *dp;
struct dirent *dirp;
struct stat st;
if((dp = opendir(argv[1])) == NULL){
perror("opendir");
exit(EXIT_FAILURE);
}
while((dirp = readdir(dp)) != NULL){
printf("%s",dirp->d_name);
if(stat(dirp->d_name, &st) >= 0)
printf("\t%ldbyte", st.st_size);
printf("\n");
}
closedir(dp);
return EXIT_SUCCESS;
}
0832デフォルトの名無しさん
2008/01/13(日) 23:46:46ホント助かる。
ありがと。
0833827
2008/01/13(日) 23:57:07それでできました!ありがとうございます!
構造体statというのを知らなかったので勉強してきます。
0834デフォルトの名無しさん
2008/01/14(月) 00:12:54while ((dirp = readdir(dp)) != NULL) {
struct stat st;
char path[256];
snprintf(path, sizeof(path), "%s/%s", argv[1], dirp->d_name);
if (stat(path, &st)) {
perror("stat");
return 1;
}
printf("%s\t%ld\n",dirp->d_name, st.st_size);
}
0835デフォルトの名無しさん
2008/01/14(月) 00:17:42だとgccのコンパイルが通らないんですがこれは仕様ですか?
0836デフォルトの名無しさん
2008/01/14(月) 00:19:49#define WIDTH 600
#define HEIGHT 400
中略
for(i=0; i<HEIGHT; i++){
for(j=0; j<WIDTH; j++){
image[i][j] =(short int)(sin(j/50.0)*10000+10000);
上記で画像を作成してあります。そして指定した部分だけを出力するプログラムを作りたいです。
自分で簡単に作ったのは
if(i < WIDTH /2)
なんですがこれだとただ左半分しか出力されなくもっと細かく指定して出力したいんですが・・
例えば、WIDTH200〜300番地、HEIGHT300〜400 ←この部分だけを出力するような
誰かお願いします。
0837デフォルトの名無しさん
2008/01/14(月) 00:20:37が、doubleを添え字に使うようなバカは普通しない
0838デフォルトの名無しさん
2008/01/14(月) 00:22:25�dです
0840デフォルトの名無しさん
2008/01/14(月) 00:31:47今一どうしたいのかわかんないけど
矩形を転送するなら開始位置とサイズを指定するよ、こんな風に
void blt(int dx, int dy, int sx, int sy, int sw, int sh)
dx, dy = 転送先の位置
sx, sy = 転送元の開始位置
sw, sh = 転送元のサイズ
0841デフォルトの名無しさん
2008/01/14(月) 00:35:250842デフォルトの名無しさん
2008/01/14(月) 00:37:400843デフォルトの名無しさん
2008/01/14(月) 00:39:290844デフォルトの名無しさん
2008/01/14(月) 00:39:400845836
2008/01/14(月) 00:41:12その方法だと別の関数使いますか?
したいことは・・縦600×横400の画像があって、この画像のうち、縦200〜300の間の部分と横200〜300の間の部分だけを出力するような?やつです
文字だと説明しづらいですね;
if(i < 400<=200){
if(j < 300<=200){
これだと問題ありますよね?
0846デフォルトの名無しさん
2008/01/14(月) 00:43:310847デフォルトの名無しさん
2008/01/14(月) 00:51:34とりあえず>>1のテンプレ読んだ方がいいと思うが、誰かに怒られそうだし
#define WIDTH 600
#define HEIGHT 400
image[i][j] =(short int)(sin(j/50.0)*10000+10000);
で指定された領域を転送したいのなら
void blt(int dx, int dy, int sx, int sy, int sw, int sh)
{
for(int y=0; y<sh; y++){
memcpy(&dest_image[dy+y][dx], &image[sy+y][sx], sw);
}
}
dest_imageは転送先ね、こんな感じになると思う。後、
if(i < 400<=200){
これコンパイル通ると思うけど、絶対意図した動きにならんから…
0848デフォルトの名無しさん
2008/01/14(月) 00:57:24コラー!!
0849デフォルトの名無しさん
2008/01/14(月) 00:58:27>>514
0850デフォルトの名無しさん
2008/01/14(月) 00:59:21[2] 問題文: ln -s file1 file2と同じ動作をするコマンドslinkをつくりなさい。
[3] 環境
[3.1] OS: Windows(Cygwin)
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2008年1月14日中
[5] その他の制限:
C言語でのシンボリックリンクのつくり方が全くわかりません。
シンボリックリンクの定義は理解しているのですが・・・。
かなり丸投げな質問ですが、よろしくお願いします。
0851デフォルトの名無しさん
2008/01/14(月) 01:00:19自分で探そう。
0852514
2008/01/14(月) 01:00:55まず、提出日が1/18であったことを訂正し、お詫び申し上げます。
あと、配牌をランダムにしてしまうと実質天和並みの確率になってしまうので
聴牌になるまでツモり続けるとか、1回だけ不要牌交換できるとか、
その辺の実装は皆さんにお任せします。
0853836
2008/01/14(月) 01:01:39ちなみに出力する部分を数値で指定とかはできませんか?
0854デフォルトの名無しさん
2008/01/14(月) 01:04:30ワロタww
0855デフォルトの名無しさん
2008/01/14(月) 01:05:00コラー!! とにかく >>1 のテンプレ嫁
小出しにすんな、後質問の意味もわからん
0856デフォルトの名無しさん
2008/01/14(月) 01:08:04#include <stdio.h>
#include <unistd.h>
int main(int argc, char *argv[]) {
if (argc < 3) {
fprintf(stderr, "%s <srcpath> <dstpath>\n", argv[0]);
return 1;
}
if (symlink(argv[1], argv[2]) < 0) {
perror("symlink");
return 1;
}
return 0;
}
0857デフォルトの名無しさん
2008/01/14(月) 01:11:07うん。これはめんどくさいし、役しらないから無理ですね。
0858デフォルトの名無しさん
2008/01/14(月) 01:15:37コラー!!
0859デフォルトの名無しさん
2008/01/14(月) 01:19:11任天堂がゲオに対してスマブラXの出荷数を絞る [ハード・業界]
【ドラマ】「ハチミツとクローバー」低視聴率スタート、理由は原作破壊? [芸スポ速報+]
ガニ股打法のいぶし銀@埼玉西武'08-2 [プロ野球]
【野球】埼玉西武、「デーブ式脳トレ」でV奪回へ [芸スポ速報+]
任天堂就職スレpart14 [
0860デフォルトの名無しさん
2008/01/14(月) 01:23:19麻雀しってて
めんどくさがりじゃなくて
時間に暇がある人
しかできないでしょ。
0861デフォルトの名無しさん
2008/01/14(月) 01:24:37この条件はここに来てる時点で満たしていると思う。
0862デフォルトの名無しさん
2008/01/14(月) 01:34:32回答に回ってる人は殆ど専ブラ使ってる気がす
0863デフォルトの名無しさん
2008/01/14(月) 01:42:110864デフォルトの名無しさん
2008/01/14(月) 01:43:580865デフォルトの名無しさん
2008/01/14(月) 01:48:100866514
2008/01/14(月) 01:50:17�@萬子、筒子、索子、字牌の順に、例えば0〜8、10〜18、20〜28、29〜35のようにナンバリングします。
�A各牌が何個あるかを配列変数にカウントアップします。
�B特殊な形式である、国士と七対子かを判定してしまいます。
�C上記に該当しなかった場合、まず順子を優先して判定してしまいます。
�D残りの牌で刻子および対子(雀頭)を判定し、一度点数計算しておきます。
�Eもし順子が3組あって、かつ3つの順子が同じ牌であった場合
刻子に直したほうが点が高い可能性もあるので、点を比較し、低かったら順子に戻します。
これでいけますかね?
もし無理そうならテンパイかどうかだけでもいいです。
ちなみに僕はすでにテンパってます(笑
0867デフォルトの名無しさん
2008/01/14(月) 01:53:290868デフォルトの名無しさん
2008/01/14(月) 01:56:000869デフォルトの名無しさん
2008/01/14(月) 02:09:470870デフォルトの名無しさん
2008/01/14(月) 03:51:14[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5760.txt
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C言語
[4] 期限:1/15 正午まで
[5] その他の制限:実行例はあくまでも一例なので、同様の処理を行えるのならばコマンドの出力内容は変更しても構いません
探索には深さ、幅優先探索のどちらを用いても構わないとの事です
可能なら、関数の処理内容等にコメントを付けて頂けると嬉しいです
実行例の検索の部分 下の「大阪府 大阪市 北区」は「京都府 京都市 北区」の間違いでした
[1] 授業単元: プログラミング
[2] 問題文:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5764.txt
[3] 環境
[3.1]xp
[3.2] コンパイラ名 gcc
[3.3] 言語:C
[4] 期限:2008年01月15日pm:5まで
[5] その他の制限:いかにも初心者っぽい感じでお願いします。標準ライブラリは習いました。
誰か救いの手をお願いします。
0872デフォルトの名無しさん
2008/01/14(月) 06:17:20ポインタ使っていいかどうかも書いてくれればなおよい。
aceg...グループとbdgh...グループの判定に論理演算使ってるけど、もし気に入らなければ
1つめの条件式を str[count]== 'a' || str[count]=='c' || ... 、2つめの条件式を str[count]=='b' || str[count]=='d' || ...とすればよい。
#include <stdio.h>
#include <ctype.h>
void EncryptAndDecrypt(char str[])
{
int count=0;
while(str[count]!='\0')
{
if(isalpha(str[count]))
{
if(str[count]&(0x01))
str[count]++;
else
str[count]--;
}
count++;
}
}
int main(void)
{
char test[100];
gets(test);
printf("暗号化前:%s\n",test);
EncryptAndDecrypt(test);
printf("暗号化後:%s\n",test);
EncryptAndDecrypt(test);
printf("複号化後:%s\n",test);
return 0;
}
0873デフォルトの名無しさん
2008/01/14(月) 06:22:30あがったときのロン牌ツモ牌が
0874デフォルトの名無しさん
2008/01/14(月) 10:19:24>ちなみに僕はすでにテンパってます(笑
それは報告しなくていいです
0875デフォルトの名無しさん
2008/01/14(月) 10:32:12>ちなみに僕はすでにテンパってます(笑
いりません。
0876デフォルトの名無しさん
2008/01/14(月) 10:35:06乙
0877デフォルトの名無しさん
2008/01/14(月) 10:38:400878デフォルトの名無しさん
2008/01/14(月) 10:42:33麻雀知らない人だっていんじゃん。
0879デフォルトの名無しさん
2008/01/14(月) 10:57:10どうせだれもやらないでしょ。
面倒くさすぎて。
0880デフォルトの名無しさん
2008/01/14(月) 11:21:39> ちなみに僕はすでにテンパってます(笑
じゃ、通しで。
0881デフォルトの名無しさん
2008/01/14(月) 11:56:30[2] 問題文(含コード&リンク):200×200の画像を作り、任意に指定した範囲を切り出せ。for文とif文を使用せよ
[3] 環境
[3.1] OS: mac
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C
[4] 期限: 1月15日
[5] その他の制限: やさしいC言語程度は習いました
よろしくお願いします
0883 ◆P2TN8xagh2
2008/01/14(月) 12:42:52ありがとうございます
全くの無知なんでVC6への移行のやり方がさっぱりわかりませんが
四苦八苦しながらがんばりたいとおもいます
0884デフォルトの名無しさん
2008/01/14(月) 12:43:01エラーがでるのでもう一回お願いします。
0885デフォルトの名無しさん
2008/01/14(月) 12:52:21山田君。座布団1枚あげてあげて。
0886デフォルトの名無しさん
2008/01/14(月) 12:52:55【野球】埼玉西武、「デーブ式脳トレ」でV奪回へ [芸スポ速報+]
任天堂就職スレpart14 [就職]
トヨタグループについて語るスレ5 [就職]
◆◆自動車部品業界 その20◆◆ [就職]
0887デフォルトの名無しさん
2008/01/14(月) 12:53:33このスレを見ている人はこんなスレも見ています。(ver 0.20)
【ドラマ】「ハチミツとクローバー」低視聴率スタート、理由は原作破壊? [芸スポ速報+]
【野球】埼玉西武、「デーブ式脳トレ」でV奪回へ [芸スポ速報+]
任天堂就職スレpart14 [就職]
トヨタグループについて語るスレ5 [就職]
◆◆自動車部品業界 その20◆◆ [就職]
0888デフォルトの名無しさん
2008/01/14(月) 13:18:33>>794ででないじゃん。どんなのでるの
0889デフォルトの名無しさん
2008/01/14(月) 14:03:01ってどうやれば良いですか?
0890デフォルトの名無しさん
2008/01/14(月) 14:04:10http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5767.txt
0891デフォルトの名無しさん
2008/01/14(月) 14:14:08コラー!!
0892343
2008/01/14(月) 14:34:33[2] 問題文:
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5765.txt
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:visual studio 2005
[3.3] 言語: C言語
[4] 期限:
[5] その他:よろしくおねがいします。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5766.txt
自分で強引に作ってみました。出来ればこの原型をなるべく崩さすに
最適な処理のための修正と指摘、細かい関数分けなどをよろしくお願いします。
よろしくお願いします。
0893デフォルトの名無しさん
2008/01/14(月) 14:41:19system("tail -5 r_fp > w_fp")
ありがとうございます!
すみませんポインタは使いません。
10行入力した場合のプログラム終了は
どうなるのですか??
0895デフォルトの名無しさん
2008/01/14(月) 14:51:030896デフォルトの名無しさん
2008/01/14(月) 14:54:58現在、下記のようなエラーが出ます。
error C3861: 'isNaN': 識別子が見つかりませんでした
http://msdn2.microsoft.com/ja-jp/library/system.double.isnan.aspx
を参考にして、
ソースコードの一番上に
using namespace System
と付け加えたのですが…だめでした。
0897デフォルトの名無しさん
2008/01/14(月) 14:57:22C++なのかC++/CLIなのかはっきりしようぜ
そして質問はスレ違い。宿題であれば>>1を読んで書き直し。
0898デフォルトの名無しさん
2008/01/14(月) 14:59:000899デフォルトの名無しさん
2008/01/14(月) 15:06:190900デフォルトの名無しさん
2008/01/14(月) 15:19:370901343
2008/01/14(月) 15:23:32めんどくさいと思いますが、助けてください。
よろしくお願いします。
0902デフォルトの名無しさん
2008/01/14(月) 15:25:11残念ながらすでにサーバー上から消えてるw
0903デフォルトの名無しさん
2008/01/14(月) 15:27:210904デフォルトの名無しさん
2008/01/14(月) 15:33:480905デフォルトの名無しさん
2008/01/14(月) 15:34:35コラー!!
0906デフォルトの名無しさん
2008/01/14(月) 15:34:490907デフォルトの名無しさん
2008/01/14(月) 15:46:440908デフォルトの名無しさん
2008/01/14(月) 15:47:460909デフォルトの名無しさん
2008/01/14(月) 15:49:12> [3.1] OS: mac
これだけで敷居が激高になってるな、つか越えられない壁
0910デフォルトの名無しさん
2008/01/14(月) 15:50:55Lv -1 : ほめる
宿題の題意まで理解して解答してくる。
Lv 0: まったく怒らない
ちゃんと宿題をしてくる
Lv 1: ちょっとおこる
コンパイラは通るけど、まともに動かない。
あるいは仕様を間違えている。
→ やり直す時間をくれたり。
Lv 2: 結構おこる
コンパイラ通さずに「うごきませんでした・・・」
→ とっとと直してこいという。
Lv 3: 相当おこる
何も提出物なしに「できませんでした・・・」
→ 単位はやらん
Lv MAX: キレる
クラスの大半がコピー。
0911デフォルトの名無しさん
2008/01/14(月) 15:54:54そうだな。
>>881 画像の形式はpnmでいいのかな?
PBMとかPGMとか。
0912デフォルトの名無しさん
2008/01/14(月) 15:55:16ありえるww
0913デフォルトの名無しさん
2008/01/14(月) 15:57:46ついでに、他人の宿題をしてやるときは、自分の解答とはまったく別に作るのが常識。
内容さえ理解すればコーディングスタイルとアルゴリズム変えて、5人分くらいすぐにできる。
0914343
2008/01/14(月) 16:03:160915デフォルトの名無しさん
2008/01/14(月) 16:04:01>>343のファイルがもうないんだけど?
0917デフォルトの名無しさん
2008/01/14(月) 16:13:48最終五行ってできてなくない?
0919デフォルトの名無しさん
2008/01/14(月) 16:40:35あーー、これまるっきり作り直しだな・・・
0920デフォルトの名無しさん
2008/01/14(月) 16:45:36�@ファイルの内容全てをバッファに確保して、最後の5行だけ出力
�Aバッファを5行ずつ確保して、ファイルストリームが最後まで行ったらバッファを出力
�B先に行数をカウントして、最後の5行だけバッファに確保
�Bが楽かな、�Aは叩かれそう
0921デフォルトの名無しさん
2008/01/14(月) 16:46:090922デフォルトの名無しさん
2008/01/14(月) 16:51:06容易に想像できるなw
0923デフォルトの名無しさん
2008/01/14(月) 17:08:580924デフォルトの名無しさん
2008/01/14(月) 17:12:45[2] 問題文: http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5768.txt
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:visual studio 2005
[3.3] 言語: C言語
[4] 期限: 1/15
[5] その他:よろしくおねがいします。
0925デフォルトの名無しさん
2008/01/14(月) 17:32:07http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5769.txt
めんどくさくなったんで、ここまで。
0926デフォルトの名無しさん
2008/01/14(月) 17:43:20[2] 問題文(含コード&リンク):
Horner法を用いたNewton法で次の方程式の解を求めよ
f(x) = x^5 - 7*x^4 + 16*x^3 - 8*x^2 -16*x + 16 = 0
[3] 環境
[3.1] OS: linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2007年1月14日24:00まで
[5] その他の制限:
よろしくお願いします。
0927デフォルトの名無しさん
2008/01/14(月) 18:30:277までかと思ってた。
0928デフォルトの名無しさん
2008/01/14(月) 18:35:080929デフォルトの名無しさん
2008/01/14(月) 18:36:400930デフォルトの名無しさん
2008/01/14(月) 18:39:080931デフォルトの名無しさん
2008/01/14(月) 18:45:36Fランク大の僕は一度もみたことないけどね。
0932デフォルトの名無しさん
2008/01/14(月) 18:48:580933デフォルトの名無しさん
2008/01/14(月) 19:01:010934デフォルトの名無しさん
2008/01/14(月) 19:07:08[2] 問題文(含コード&リンク):
文字列照合についてです。
boyersearch(ボイヤー・ムーアのアルゴリズム)に対して、テキストは演習3で採用
したものと同じものを入力すると家庭する。その場合、長さ6のパターンの中で、比較回数が
最小となるものはどのようなパターンであろうか?そのパターンを求めよ。
そして、その場合に実行結果から求められる比較回数を書け。そして、
比較回数が最少となる理由を述べよ。
(パターンがテキスト内で出現しない場合について考えることとする。)
演習3のテキストは、オンラインヘルプcpの出力です。
man -c cp | col -b |
[3] 環境
[3.1] OS: Mac
[3.2] コンパイラ名とバージョン:
[3.3] 言語: C
[4] 期限: 2008/01/15の早朝(7時くらい)
[5] その他の制限:
0935デフォルトの名無しさん
2008/01/14(月) 19:44:410936デフォルトの名無しさん
2008/01/14(月) 19:47:350937デフォルトの名無しさん
2008/01/14(月) 20:26:20http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5770.txt
ここの部分があまりよくわからないんですが
strcpyを使う理由とか、あと%5とかの計算方法についても教えてください
いちいちすいませんよろしくお願いします
0938デフォルトの名無しさん
2008/01/14(月) 20:39:53%は余剰。5 % 2 = 2 あまり 1ね。
最初は
[0]
[1]
[2]
[3]
[4]
1個目は[0]にコピー。
2個目は[1]にコピー。
0939デフォルトの名無しさん
2008/01/14(月) 20:41:36書きかけで送信したんで
1個目は[0]にコピー。
2個目は[1]にコピー。
3個目は[2]にコピー。
4個目は[3]にコピー。
5個目は[4]にコピー。
で、6個目は0にコピーしたいんで余剰を使う
5 % 5 = 1 あまり 0 で0になる
ところで、5個以下のときは全部だすんで最初から5こ暗い出力してる
ってことで。
0940デフォルトの名無しさん
2008/01/14(月) 20:47:460941デフォルトの名無しさん
2008/01/14(月) 20:47:49でRAND_MAXとうつとシンボルが未定義ですとなります。
どぅすれば解消されますか?
0942デフォルトの名無しさん
2008/01/14(月) 20:50:43回線切る
0943デフォルトの名無しさん
2008/01/14(月) 20:52:300944デフォルトの名無しさん
2008/01/14(月) 20:58:09#define RAND_MAX 0x7FFF
#endif
0946デフォルトの名無しさん
2008/01/14(月) 21:01:57いや、その解決策正しくないからwww
0947944
2008/01/14(月) 21:11:56どのコンパイラか知りたいな。
0948デフォルトの名無しさん
2008/01/14(月) 21:12:36終盤怒涛(みすず)だったけど。
0949デフォルトの名無しさん
2008/01/14(月) 21:16:51何回も、理解が遅くてすいません
問題の最後の5行という部分はこの処理ではどの部分にあたりますか?
0950デフォルトの名無しさん
2008/01/14(月) 21:16:55study cです
0951デフォルトの名無しさん
2008/01/14(月) 21:24:14開発者? のページみると、32767.0で割ってるな。
0x7FFFでいいんじゃない?(適当)
0952デフォルトの名無しさん
2008/01/14(月) 21:48:37[2] 問題文:セットした時刻になったらグラフィックを表示し音楽を鳴らすプログラムを作る。
[3] 環境
[3.1] Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C++
[4] 期限: 1月15日
[5] その他の制限:グラフィックはchinouglなどを使いグラフィック画面に好きな絵を表示する。
音楽は、winmm.libをリンクすることによって、PlaySound関数やmciSendString関数を使いwavファイルやmp3ファイルを演奏することができる。
困っています。どうぞよろしくお願いします
0953デフォルトの名無しさん
2008/01/14(月) 22:12:020954>>744 ◆wF.16HeCFk
2008/01/14(月) 22:16:50一時までに提出なのです(´;ω;`)
0955デフォルトの名無しさん
2008/01/14(月) 22:20:240956デフォルトの名無しさん
2008/01/14(月) 22:21:080957デフォルトの名無しさん
2008/01/14(月) 22:21:34[2] 問題文:物理プログラミングをせよ
ウィンドウズアプリケーションで作成せよ
物: 正四角形(2次元)と地面を作る
地面の動き: 方後キーの←→でその方向に傾く
正四角形の動き: 地面に落ちたり
地面が傾いたらすべるようにする
なおDxLibを使うこと
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:c
[4] 期限:2008年1月5日
[5] その他の制限:期日しかいのでよろしくおねがいします
どちらかというとゲームプログラミングに近い気がしたので
ここで質問するべきか迷いましたが皆さんなら作ってくださるだろうと思い
ここに書き込みさせてもらいました
0958デフォルトの名無しさん
2008/01/14(月) 22:28:540959デフォルトの名無しさん
2008/01/14(月) 22:29:200960デフォルトの名無しさん
2008/01/14(月) 22:30:25どなたか>>871に救いの手をお願いします。。。
0962957
2008/01/14(月) 22:33:0715日の誤りですでした
0963デフォルトの名無しさん
2008/01/14(月) 22:33:210964デフォルトの名無しさん
2008/01/14(月) 22:39:52もうここは終わる。
次スレをたててくれ。」
0965デフォルトの名無しさん
2008/01/14(月) 22:42:210966デフォルトの名無しさん
2008/01/14(月) 22:53:11ホレ。エラー処理は知らん。2バイト文字も知らん。
コメント入れてたんだけど改行多すぎ言われた・・・orz
#include <stdio.h>
#include <ctype.h>
char swap_char(char src)
{
if(isalpha(src)){
if(src%2 == 1){
return src + 1;
}
else{
return src - 1;
}
}
return src;
}
int main()
{
char line[83];
int i,j;
for(i = 0;i < 10;i++){
fgets(line, 83, stdin);
for(j = 0;line[j] != '\0';j++){
putchar(swap_char(line[j]));
}
}
return 0;
}
0967デフォルトの名無しさん
2008/01/14(月) 22:56:07まあいいや。
0968デフォルトの名無しさん
2008/01/14(月) 22:57:03http://pc11.2ch.net/test/read.cgi/tech/1200318925/
0969デフォルトの名無しさん
2008/01/14(月) 22:58:390970デフォルトの名無しさん
2008/01/14(月) 23:03:400971デフォルトの名無しさん
2008/01/14(月) 23:06:26txtファイルはこんな感じです
引っ張り出そうとしたら二回フリーズして出すのが遅れました大変申し訳ありません
もう時間が無いので無駄な足掻きかもしれませんがよければよろしくお願いします
ttp://www.uploda.org/uporg1203457.txt.html
0972デフォルトの名無しさん
2008/01/14(月) 23:09:530973デフォルトの名無しさん
2008/01/14(月) 23:11:380974デフォルトの名無しさん
2008/01/14(月) 23:17:180975デフォルトの名無しさん
2008/01/14(月) 23:18:170976デフォルトの名無しさん
2008/01/14(月) 23:27:360977デフォルトの名無しさん
2008/01/14(月) 23:28:33まだ解答がもらえてない人はいまのうちにアピールしたら?
0978デフォルトの名無しさん
2008/01/14(月) 23:31:54良いこといった。
1000までに回答するようがんばるよ。
0979デフォルトの名無しさん
2008/01/14(月) 23:55:51エラーで動かないなら、どういうエラーかはちゃんと書いて欲しいものだな。
【時間切れ】 (1/14)
>744 >741 >343(>892) >926
【未解決問題】
>>934 1/15 早朝(7時くらい)
>>870 1/15 正午
>>514 1/15
>>881 1/15
>>924 1/15 >>793と別人? >>794?
>>952 1/15
>>957 1/15
>576 1/17日中
>824 1/18
>229 1/31
でもエラーでは。。。;;
全くわからない自分にとってはキツいです;;
今のうちに回答してもらえるなら>>871
をお願いします!!!
明日期限なのであせってます。。申し訳ないです。。
0981デフォルトの名無しさん
2008/01/15(火) 00:14:07200x200の画像を表示するだけのプログラム作って晒してみな
ここの連中なら、そのソースがあれば任意部分の切り出しくらい朝飯前で作ってくれると思うぞ
[1] 授業単元: プログラミング
[2] 問題文:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5772.txt
[3] 環境
[3.1] xp
[3.2] コンパイラ名 gcc
[3.3] 言語:C
[4] 期限:1月15日
[5] その他の制限:初心者です。あまりプロっぽくなければいいです。それ以上は望みません。やってくれるだけでありがたいです。
ライブラリは学びました。
0983デフォルトの名無しさん
2008/01/15(火) 00:18:37>>966を実行してみた上で、何か問題点があるのなら具体的に。
0984デフォルトの名無しさん
2008/01/15(火) 00:19:29おまwww
あせりすぎ。
ちょっとぐらい動かしてから言ってくれ。
エラー処理ってのは異常な入力したら暴走するかも知れんっつーこった。
TDL 100 years!がSCK 100 zfbqt!になるとこまでは見た。(VCでやったケド)
問題文に文字コードの記述がないってことは、多分半角文字だけで大丈夫だから。
自分のトコで動かしてみてダメだったら、どうダメだったか書け。
とりあえず1時までは起きてるから。
0985デフォルトの名無しさん
2008/01/15(火) 00:28:13[1] 授業単元:基礎
[2] 問題文(含コード&リンク):符号なし整数A,Bがある。
0≦A,B≦0xffffffffのとき、A/Bがもっとも円周率に近いものを、A,B共に列挙せよ。
なお、円周率は math.h で定義されている M_PI を用いること。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: ?
[3.3] 言語: C
[4] 期限: 1/17
[5] その他の制限: 単位がかかっているのでおねがいします
プログラミング習い始めて1年が経つ頃の問題です(再履修なので実質2年目…)。
[1] 授業単元:2分探索木
[2] 問題文(含コード&リンク):(http://www.uploda.net/cgi/uploader1/index.php?dlpas_id=0000284278.txt)
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語:C言語
[4] 期限: 提出期限が過ぎてしまったので早めにお願いします
[5] その他の制限:特にないと思います。
2分探索木で登録回数をカウントするプログラムがあるので
それを非再帰版に書き換えるのと実行中のスタックの内容を逐次表示する問題
更に、スタックオーバーフローのエラーを表示する問題です。
自分でも何やってるのか全く分からないのでお願いします…。
>>986のパスは「c」でお願いします。
[2] 問題文(含コード&リンク):マイコンと回路(sw2個とLED4個) 応用回路(モーター回路、A/D変換回路を用いても可)を使って
オリジナル課題を作成
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:GCC Debeloper Lite
[3.3] 言語:C言語
[4] 期限:1月16日中(17日が提出なので・・・)
[5] その他の制限: 特に無いと思います
ポートの番号はこちらで直しますので空白か適当に設定しておいていただければありがたいです
個人的にswを押した回数(sw1でもsw2でもどちらでもか、どちらか一方からの入力でもかまいません)
でLED1〜4の点灯パターンが変わる みたいなプログラムを作ろうと考えたのですが
可能でしょうか?
またほかにいいプログラムあればアドバイスお願いいたします
0989744 ◆wF.16HeCFk
2008/01/15(火) 00:59:30リアルでの他の課題にも追われていたため、質問への対応が遅くなったりして
迷惑をかけてしまい大変申し訳ない
もし考えていた方がいらしゃったのなら、その方にお礼申し上げます
0990デフォルトの名無しさん
2008/01/15(火) 01:04:55マイコンうp
0991デフォルトの名無しさん
2008/01/15(火) 01:09:24http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5773.txt
printfの変わりにfwrite使えばいいのかな、一応いけると思うが
0992デフォルトの名無しさん
2008/01/15(火) 01:13:32H8ならまけせとけ、他のマイコンだったらお手上げ
0993デフォルトの名無しさん
2008/01/15(火) 01:21:01#include <stdio.h>
#include <stdlib.h>
void printint(int d)
{
char num[12];//数値10桁+符号用+\0用で12個分確保
itoa(d,num,10);
puts(num);
}
main()
{
int d;
printf("数値入力:");
scanf("%d",&d);
printint(d);
}
itoa使うなとは書いてないからこれで。
0994デフォルトの名無しさん
2008/01/15(火) 01:24:000995デフォルトの名無しさん
2008/01/15(火) 01:24:200996デフォルトの名無しさん
2008/01/15(火) 01:24:430997デフォルトの名無しさん
2008/01/15(火) 01:26:16風呂入ってて時間切れたの忘れてた。折角だから
昨日作った奴を載せとく。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/5774.txt
0998デフォルトの名無しさん
2008/01/15(火) 01:36:410999デフォルトの名無しさん
2008/01/15(火) 01:38:531000デフォルトの名無しさん
2008/01/15(火) 01:40:06ぬかった、その手があったかw
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。