C/C++の宿題を片付けます 69代目
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2006/07/05(水) 19:24:57【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
・問題文は、出題されたまま全文を書いてください。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはやめましょう。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して
投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。
【質問テンプレ】
[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
【前スレ】
C/C++の宿題を片付けます 68代目
http://pc8.2ch.net/test/read.cgi/tech/1151158759/
【過去スレ一覧】
http://makimo.to/cgi-bin/search/search.cgi?q=C%2B%2B%82%CC%8Fh%91%E8&andor=AND&sf=2&H=&view=table&D=tech&shw=2000
0002デフォルトの名無しさん
2006/07/05(水) 19:29:420003デフォルトの名無しさん
2006/07/05(水) 19:33:25スレ立て乙
0004デフォルトの名無しさん
2006/07/05(水) 20:31:08[2] 問題文(含コード&リンク):
1年分の各月の平均気温を配列に格納し(プログラム内で初期値として与えてよい),各データとそれらの平均値を表示するプログラムを作成せよ.
なお,データは摂氏と華氏の双方で表示すること.ただし,格納するデータはどちらか一方のみ.(この問題では,平均値は整数でよい(切り捨て,切り上げ,四捨五入いずれも可).月平均気温は適当でよい.)
摂氏→華氏変換式: F=(9/5)×C+32 ,ただしCは摂氏温度,Fは華氏温度.
ただし、摂氏から華氏への変換をユーザ定義関数として定義して,これを使うようにせよ.
[実行結果]
2005年の月平均気温(摂氏,括弧内は華氏)
1月:5(41)
2月:0(32)
<省略>
12月:10(50)
-----------
平均:15(59)
以上
[3] 環境
[3.1] OS: (Windows
[3.2] コンパイラ名とバージョン: Visual Studio.NET2003
[3.3] 言語: C
[4] 期限: なるべく早く
[5] その他の制限: 関数まで習いました。
どうか、よろしくお願いします。
0005デフォルトの名無しさん
NGNG><省略>
するな。
0006デフォルトの名無しさん
2006/07/05(水) 20:40:52そういう問題なんだから仕方ないよ。
0007デフォルトの名無しさん
NGNG0008デフォルトの名無しさん
2006/07/05(水) 20:51:03#include <stdio.h>
double kashi(double t){
return 9/6*t+32;
}
main(){
double sesshi[12]={1,2,3,4,5,6,7,8,9,10,11,12},goukei=0;
int i;
for(i=0;i<12;i++){
goukei+=sesshi[i];
}
printf(" 2005年の月平均気温(摂氏,括弧内は華氏)\n\n");
printf(" 1月:%.0f(%.0f)\n",sesshi[0],kashi(sesshi[0]));
printf(" 2月:%.0f(%.0f)\n",sesshi[1],kashi(sesshi[1]));
printf(" <省略> \n");
printf(" 12月:%.0f(%.0f)\n",sesshi[11],kashi(sesshi[11]));
printf(" -----------\n");
printf("平均:%.0f(%.0f) \n",goukei/12,kashi(goukei/12));
printf("以上\n");
}
0009デフォルトの名無しさん
2006/07/05(水) 21:30:49>>4
前にもやった記憶が・・・
0010デフォルトの名無しさん
2006/07/05(水) 22:20:48先にあっち消費してくるか・・・
0011デフォルトの名無しさん
2006/07/05(水) 23:33:37[2]問題文:knightの巡回 m*nのマス目のチェス盤に対して解の求め方を、
1.出発点に戻らなくて良いので、全地点を巡回する
2.出発点に戻る解を一つ求める
3.出発点に戻る解を全て求める
の順序で付け加えていき、プログラムを完成させなさい。
(ナイトのスタート地点はどこでもよいが、四隅のどこかにして おけばよい。答えの表示は、m*nのマス目に訪問順番を書き込んだ形にせよ。)
[3]環境
[3.1]OS:mac
[3.2]コンパイラ名とバージョン:gcc
[3.3]言語:C
[4]期限:7/7午後5時
[5]その他の制限:ポインタはなるべく使わず。
ぜんぜん分かりません。よろしくお願いします。
0012デフォルトの名無しさん
2006/07/05(水) 23:39:36aaaaはクラスです。こんな定義できましたっけ?
0013デフォルトの名無しさん
2006/07/05(水) 23:48:19_aはaaaaを指すマネージドポインタ
0014デフォルトの名無しさん
2006/07/06(木) 00:45:08[2] 問題文(含コード&リンク):行列ベクトル積を行うプログラムを書く
[3] 環境 Linux gcc 3.4 C
[4] 期限: ほぼ無期限
[5] その他の制限: 行列を用意する方法は以下のやり方でやれといわれてます
//行列の確保
double **a, *x, *y;
a = (double **)malloc(sizeof(double *)*n);
a[0] = (double *)malloc(sizeof(double)*(n*n));
//行列の解放
free(a[0]);
free(a);
0015デフォルトの名無しさん
2006/07/06(木) 22:16:45[2] 問題文(含コード&リンク):
簡単な計算を行うプログラムを作る
例)
31 + 12 (Enter)
=43 (出力)
45 − 12 (Enter)
=33 (出力)
5 * 6 (Enter)
=30 (出力)
30 / 6 (Enter)
=5 (出力)
というプログラム。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 7月12日 2時30分
[5] その他の制限: switch caseを使う、Ctrc + Cを押さないと停止しないようにする
よろしくお願いします。
0016デフォルトの名無しさん
2006/07/06(木) 22:53:240017デフォルトの名無しさん
2006/07/06(木) 23:08:47#include <stdio.h>
void main(){
char buf[256], c;
int a, b;
while(1){
c = ',';
printf("[書式例]\n10 + 10\n");
fgets(buf, sizeof(buf), stdin);
sscanf(buf, "%d %c %d", &a, &c, &b);
switch(c){
case '+': printf("=%d\n\n", a + b); break;
case '-': printf("=%d\n\n", a - b); break;
case '*': printf("=%d\n\n", a * b); break;
case '/': if (b == 0){
printf("error\n\n");
break;
} else {
printf("=%.2f\n\n", (float)a / b);
break;
}
default:
printf("error\n\n");
}
}
}
0018デフォルトの名無しさん
2006/07/07(金) 03:54:35一応構文解析するようにしてみた。多少バグあり。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2276.c
誰か治してくれ。 orz
0019デフォルトの名無しさん
2006/07/07(金) 14:24:520020デフォルトの名無しさん
2006/07/07(金) 14:55:10「 - 」 のときの処理(優先度とか)がおかしい気がする
0021デフォルトの名無しさん
2006/07/07(金) 15:12:12char cmojiretu2[50];
int isoeji = 0;
int icnt = 0;
int out = 0;
char ccnt;
printf("\n圧縮前文字列→%s\n", cmojiretu); //圧縮前文字列の表示
printf("圧縮前文字数→%d\n", strlen(cmojiretu)); //圧縮前文字数の表示
do {
if(ccnt == cmojiretu[isoeji])
icnt++; //icntを1つずつずらす
else{
for(; icnt > 9; icnt -= 9)
out += sprintf(cmojiretu2 + out, "@9%c", ccnt);
if(icnt <= 3)
while(icnt--) cmojiretu2[out++] = ccnt;
else
out += sprintf(cmojiretu2 + out, "@%c%d", ccnt, icnt);
icnt = 1;
ccnt = cmojiretu[isoeji];
}
}while(cmojiretu[isoeji++]);
cmojiretu2[out++] = '\0';
printf("\n圧縮後文字列→%s\n", cmojiretu2); //圧縮後文字列の表示
printf("圧縮後文字数→%d\n", strlen(cmojiretu2)); //圧縮後文字数の表示
return 0; //main関数を終了させる
}
このC言語のコメントがわかりません、わかる方コメントをお願いします
0022デフォルトの名無しさん
2006/07/07(金) 15:18:430023huniya
2006/07/07(金) 15:19:10問題:西暦と月を入力し、その月のカレンダーを出力せよ。
環境:C言語です。
0024デフォルトの名無しさん
2006/07/07(金) 15:30:44どうでもいいとこだけにコメントが書いてあるな。
0025デフォルトの名無しさん
2006/07/07(金) 15:33:010026c++
2006/07/07(金) 16:05:56[2] 問題文(含コード&リンク): 線形リストを用いて、素数とわかった数を保存し、指定された数(N)以下の素数を求めるプログラムを作成せよ。ただし、Nはプログラム実行中で外部から入力できるようにすること。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: 6.0
[3.3] 言語: C++
[4] 期限: 2006年7月10日まで
[5] その他の制限:たぶんなし
この問題がわかりません。
基礎なことかもしれませんが、どうかお願いします
0027デフォルトの名無しさん
2006/07/07(金) 16:07:48そういえばもう夏休みの宿題の季節なんだな
0028デフォルトの名無しさん
2006/07/07(金) 16:17:32http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2285.txt
0029デフォルトの名無しさん
2006/07/07(金) 18:31:48[2] 問題文(含コード&リンク):
名前と点数を格納するデータ部を持つ自己参照型構造体を定義し、
線形リストを実装しなさい。
構造体の名前は struct grade とし、新たに glist 型として定義する。
構造体のメンバは、char name[40]、int score、及びポインタnext。
ノードは3つ作成し、それぞれキーボードからデータを入力する。
ポインタに値を代入し、ヘッダhdと3つのノードの間を繋ぐ。
読み出し用のポインタpを使って、リストのデータを順に画面に出力する。
【ヒント
実習時間中にスライドの指示に沿って作成したコードを提出しても良い。
余力のある人は、ノードを作成する際に動的にメモリを確保するコードを作成すること
(より効率的なコーディングが可能となる)。
[3] 環境
[3.1] OS: XP
[3.2] visual studio.2003
[3.3] 言語: C
[4] 期限: 来週の火曜日まで
[5] 配列、ループ、線形探索、二部探索、構造体
0030デフォルトの名無しさん
2006/07/07(金) 19:19:17#include<iostream>
using namespace std;
struct Cell{int car;Cell*cdr;Cell(int car,Cell*cdr):car(car),cdr(cdr){}};
Cell*enumFromTo(int from,int to)
{return from <= to?new Cell(from,enumFromTo(from+1,to)):NULL;}
Cell*erase(Cell*p,int n)
{return!p?NULL:p->car%n?new Cell(p->car,erase(p->cdr,n)):erase(p->cdr,n);}
Cell*solve(Cell*p){return p?new Cell(p->car,solve(erase(p->cdr,p->car))):NULL;}
int main(){
int n;cout<<"n <- ";cin>>n;
for(Cell*p = solve(enumFromTo(2,n));p;p=p->cdr)printf("%d ",p->car);
}
0031デフォルトの名無しさん
2006/07/07(金) 22:01:24[2] 問題文(含コード&リンク): テキストファイルを読み込ん(ファイル名はプログラム中に書き込んでおく)で,偶数行だけを画面に出力するプログラムを作成せよ.
ファイル名:test.txt
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン: VisualStudio.net2003
[3.3] 言語: C
[4] 期限: 7月11日
[5] その他の制限: よろしくお願いします
0032デフォルトの名無しさん
2006/07/07(金) 22:06:43#include <stdio.h>
int main(void)
{
int a;
FILE *fp;
if ((fp=fopen("a.txt","r"))==NULL){
perror("error![file] ");
return -1;
}
while (fscanf(fp,"%d",&a) != EOF){
if ((a%2)==0){
printf("%d\n",a);
}
}
return 0;
}
0033デフォルトの名無しさん
2006/07/07(金) 22:11:22こんなに早くありがとうございます!!
0034デフォルトの名無しさん
2006/07/07(金) 22:24:20[2] 問題文(含コード&リンク): ファイル名をキーボードから入力し,キーボードから10行分のテキスト(空白文字無し)を読み込んで,その内容をファイルに格納するプログラムを作成せよ.
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: VisualStudio2003
[3.3] 言語: C
[4] 期限: できるだけ早くお願いします
0035デフォルトの名無しさん
2006/07/08(土) 00:02:45#include <stdio.h>
#include <stdlib.h>
int main(void) {
char filename[80],buf[255] ;
int i ;
FILE *fp ;
printf("FileName? ") ;
scanf("%s[^\n]",filename) ;
printf("Input!\n") ;
if(!(fp=freopen(filename,"w+",stdout))) {
fprintf(stderr,"Error!!\n") ;
exit(1) ;
}
for(i=0;i<=10;i++) {
fgets(buf,sizeof(buf)/sizeof(buf[0]),stdin) ;
printf("%s",buf) ;
}
return(0) ;
}
眠い。
0036デフォルトの名無しさん
2006/07/08(土) 00:08:00寝ろ
0037デフォルトの名無しさん
2006/07/08(土) 11:43:020038デフォルトの名無しさん
2006/07/08(土) 11:48:020039デフォルトの名無しさん
2006/07/08(土) 12:26:33#include<stdio.h>
#include<stdlib.h>
typedef struct grade { char name[40]; int score; struct grade *next; } glist;
static glist *hd = NULL;
static glist *new_rec() { glist *p = malloc(sizeof(*p)); if (p){ scanf("%s %d", p->name, &p->score); p->next = NULL; } return p; }
static void add_rec(glist **head, glist *rec) {
glist *p, *prev;
for(prev=NULL, p=*head; p; p=p->next) prev = p;
if (prev) prev->next = rec; else *head = rec;
}
static void output_rec(glist *rec){printf("%s %d\n", rec->name, rec->score); }
static void delete_recs(glist *head){
glist *p, *q;
for (p=head; p; p=q){ q = p->next; free(p); }
}
int main() {
int i; glist *p, *q;
for(i=0; i < 3; i++){ p = new_rec(); if (p) add_rec(&hd, p); }
for(p=hd; p; p=p->next){ output_rec(p); }
delete_recs(hd);
return 0;
}
0040デフォルトの名無しさん
2006/07/08(土) 12:28:330041デフォルトの名無しさん
2006/07/08(土) 13:59:17[1] 授業単元:プログラミング通信
[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2298.txt
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語:C
[4] 期限: 10日(月)15時まで
[5] その他の制限: 問題文にある条件を満たしていただければ大丈夫です。
よろしくお願いします。
0042デフォルトの名無しさん
2006/07/08(土) 18:06:010043デフォルトの名無しさん
2006/07/08(土) 18:09:49004441
2006/07/08(土) 18:21:10文字通りの説明になってしまいますが、
相手側からのデータ受信、キーボードからの入力の
どちらが来ても対応できるように並列で処理するということでいいでしょうか。
そしてその並列処理(マルチスレッド)をselect()関数で実現するというのが
今回の課題の主眼らしいです。
0045デフォルトの名無しさん
2006/07/08(土) 18:30:350047デフォルトの名無しさん
2006/07/08(土) 18:46:50せめて行単位で
シ-‐‐-、
ノ //|.i i
やらないか
ノ/」_´__ソ.| <あたしゃもう疲れたよ
0048taka
2006/07/08(土) 19:23:39[2] 問題文(含コード&リンク): 線分を6本入力する。それらの線分のうち、垂直に交わっているものの組はどれかを判定するプログラムを作る。
http://up.spawn.jp/file/up27759.txt
startx,startyは始点のx,y座標、endx,endyは終点のy座標です。下の方のdouble型のtはtanのことです。
垂直の条件をtを使って表現したいのですが、このプログラムのままじゃ不完全ぽいです。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: Microsoft Visual Studio .NET 2005
[3.3] 言語: C++
[4] 期限: [7月11日0:00まで]
[5] その他の制限: よろしくお願いします。
0050デフォルトの名無しさん
2006/07/08(土) 20:10:16もうすぐできる(と思う) (=´ω`)ノ
0051デフォルトの名無しさん
2006/07/08(土) 20:43:37誰かあら捜し頼む。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2300.txt
べ、べつに自分の勉強のために解いたんだからね!
005241
2006/07/08(土) 21:16:21家のPC環境ではコンパイルできないので、
月曜に大学で動作確認するつもりです。
すみませんが、それからまた報告にあがります。
0053デフォルトの名無しさん
2006/07/08(土) 21:53:26[2] 問題文(含コード&リンク):
�@ キーボードから正整数を読み込み,その数を素因数分解した結果を画面に表示する.
ただし,1つの整数を引数とし,その整数の最小の素因数を返す関数をユーザ定義関数として作成し,この関数を使用すること.
�A キーボードからファイル名を入力し,そのファイルの文字コードを判別し,画面に表示する.
ただし,指定ファイルの文字コードはJIS,EUC,SJISとする.
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2006/07/20まで
[5] その他の制限: 特になし
よろしくおねがいします。
0054デフォルトの名無しさん
2006/07/08(土) 22:53:20tanを使うと面倒じゃない?
線分が与えられてるから位置ベクトルに直して内積で直角で交わるか否かを判定した方が楽だと思う
0055デフォルトの名無しさん
2006/07/08(土) 23:07:55scanf("%s", ...)は如何な最中。
空白を含む文字列を(そのままの形では)入力できないぞ。
あ、どうせだから文字数制限もしておくべきか。
#scanf("%1023[^\n]", ...)で委員で内科医?
0056デフォルトの名無しさん
2006/07/08(土) 23:21:58その例ならfgets使うほうが健全な気がしてならない
0057taka
2006/07/08(土) 23:23:49先ほど質問をさせて頂いた者です。
質問の内容に、一部不備がありました。申し訳ありません。
教授が言うには、垂直判定といっても、ぴったり90°で交わっている線分だけを垂直とみなすわけではなく、89°や91°も垂直とみなして良いというように、90°±αのゆるやかさを持たせなさい、とのことです。
ベクトルだと、びったり90°のものしか判定されないような気がするのですが…。
0058デフォルトの名無しさん
2006/07/08(土) 23:52:27(1)例外処理は任せた
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2301.c
データを増やせばもっと速くなるぞ!
0059デフォルトの名無しさん
2006/07/08(土) 23:56:21もうそのネタ秋田
0060デフォルトの名無しさん
2006/07/09(日) 00:09:28006153
2006/07/09(日) 00:52:070062デフォルトの名無しさん
2006/07/09(日) 01:37:50ちょっと処理は増えるけど
・2つの線分の長さを算出
・ベクトルから内積を算出
をして
cos([89度のラジアン]) < ([内積] / [2つの線分の長さの積]) < cos([91度のラジアン])
とか?
tan は、始点と終点の x 座標が同じ時の処理がメンドイ・・・(ごめん)
0063デフォルトの名無しさん
2006/07/09(日) 01:43:29[2] 問題文(含コード&リンク):ttp://www.uploda.org/uporg439919.pdf
[3] 環境
[3.1] WindowsXP
[3.2] gcc
[3.3] C
[4] 期限:7月10日の早朝まで
[5] その他の制限:特にありません
3問と多いですが、どうか宜しくお願いしますm(_ _)m
0064デフォルトの名無しさん
2006/07/09(日) 03:07:47ダメなら寝るぞう
0065デフォルトの名無しさん
2006/07/09(日) 03:30:24>>63
「12F574」も一致させる必要がありますか?
っていうかpdfからコピペ出来ないからマンドクセ
0066デフォルトの名無しさん
2006/07/09(日) 03:36:59そもそもそういうのは各々の使用環境によって異なるんでは?
0067デフォルトの名無しさん
2006/07/09(日) 03:59:52main() {
char name[10] = {"NAOKISATO"};
char *add;
int i;
add = name;
for(i = 0; i < 9; i++){
printf("アドレス %x には文字 %c が格納されています。\n", 0x12F574, name[i]);
}
printf("\n");
printf("逆に並べ替えて表示すると\n");
for(i = 8; i >= 0; i--){
printf("アドレス %x には文字 %c が格納されています。\n", 0x12F574, name[i]);
}
}
0068デフォルトの名無しさん
2006/07/09(日) 04:27:230069デフォルトの名無しさん
2006/07/09(日) 04:53:16printf("アドレス %x には文字 %c が格納されています。\n", add++, *add);
}
printf("\n");
printf("逆に並べ替えて表示すると\n");
for(i = 8; i >= 0; i--){
printf("アドレス %x には文字 %c が格納されています。\n", --add, *add);
}
0070デフォルトの名無しさん
2006/07/09(日) 07:05:24PDFからコピペの方法しらんのか?
0071デフォルトの名無しさん
2006/07/09(日) 07:09:46知ってるなら教えて下さい
0072デフォルトの名無しさん
2006/07/09(日) 08:06:17普通は出来るけど >>63 のは禁止されてる
0073デフォルトの名無しさん
2006/07/09(日) 13:08:16右クリック⇒てのひらツールでテキスト選択
もしくは、上のツールバーの手のマークの横の「選択」ってのを押す
>>72
へ?できるんだが・・・
0074デフォルトの名無しさん
2006/07/09(日) 13:09:39と、思ったらマジで禁止されてる・・・何これ
0075デフォルトの名無しさん
2006/07/09(日) 13:44:240076デフォルトの名無しさん
2006/07/09(日) 15:01:07何これって、何それ
0077デフォルトの名無しさん
2006/07/09(日) 15:42:21[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2292.txt
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限: 2006年07月11日まで]
[5] その他の制限: なし
よろしくお願いします。
0078デフォルトの名無しさん
2006/07/09(日) 15:49:12含めてもらえんものかね。
どれが既出でどれが解かれてないのか、いちいちリンク先見ないとわからん。
007977
2006/07/09(日) 16:24:40申し訳ありません。以後気をつけます。
0080デフォルトの名無しさん
2006/07/09(日) 18:46:17http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2305.txt
ただしこっちの環境はwinでBCCだ
0081デフォルトの名無しさん
2006/07/09(日) 19:09:582、
struct prsn{
char name[256];
long birth;
char address[256];
char tel[256];
}prsn_data;
3、
#include<stdio.h>
#include<math.h>
#define PAI 3.14159
int main(void){
int i;
double x,y,r,theta;
FILE *fp;
fp = fopen("output.csv", "w");
for(i=0; i<360; i++){
r = (double)i * 0.1;
theta = PAI * (double)i/180.0;
x = r * cos(theta);
y = r * sin(theta);
fprintf(fp, "%8.4f,%8.4f\n", x, y);
}
fclose(fp);
return 0;
}
ただしこっちの環境はBCCだ
0083デフォルトの名無しさん
2006/07/09(日) 23:03:50[1] 授業単元: Cプログラミング
[2] 問題文(含コード&リンク):
英語のテキストファイルを読み込み,各単語(空白あるいは,ピリオド「.」,カンマ「,」で区切られたものとする)
の出現数をカウントして出力するプログラムを外部ハッシュ法を用いて作成せよ. プログラムの流れは以下のようになる.
1. ファイルの先頭から最後まで順に1つの単語を読み込みながら2.を実行する
2.1.で読み込んだ単語wについて以下を行う.
2.1 ハッシュ値を求める.
2.2 同じハッシュ値をもつすべての単語について,wと同じものがあるかを調べる.
2.3 同じものがあればその出現回数を+1する.なければ,
w(およびその出現回数(初期値は1))を格納するセルを作成し,バケットに連結する.
3. 単語を出現回数と共に出力する.
ハッシュ表に格納するセルの定義は次のようなものとする.
typedef struct cell *cellptr;
typedef struct cell {
char *word;
int count;
struct cell *next;
} cell;
[3] 環境
[3.1] OS: Windows XP
[3.2] コンパイラ名とバージョン: borland C++
[3.3] 言語: C言語
[4] 期限: 7/12まで
[5] その他の制限: ありません。
0084デフォルトの名無しさん
2006/07/09(日) 23:09:57そのハッシュ値ってどうやって計算するの?
008583
2006/07/09(日) 23:31:17#define B 100
#define W 6
int h(char *x)
{
int i,hash;
hash = i = 0;
while(x[i] != 0 && i < W){
hash = hash + (int)x[i];
i++;
}
hash = hash%B;
return (hash);
}
008683
2006/07/09(日) 23:32:40利用できそうなら、使ってください。
enum yn {yes,no};
enum yn menber(char *x, struct cell **A){
struct cell *q, *r;
q = A[h(x)];
while(q != NULL){
if(strcmp(q->word,x) == 0)
return(yes);
r = q;
q = q->next;
}
return(no);
}
よろしくお願いします。
0087デフォルトの名無しさん
2006/07/10(月) 03:10:23気になるところがいくつか
cellptr の typedef はまとめて
typedef struct cell {
char *word;
int count;
struct cell *next;
} cell, *cellptr;
でいいと思う
だけど
struct cell *q, *r;
としてるのが不明
せっかくだから
struct cellptr q, r;
という使い方しないの?
0088デフォルトの名無しさん
2006/07/10(月) 08:42:44ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2309.c
0090デフォルトの名無しさん
2006/07/10(月) 09:42:50#include <stdlib.h>
int main(int argc, char *argv[])
{
double x,y;
char buf[1024];
do
{
printf("実数1を入力してちょ: ");
fgets(buf,1024,stdin);
}while((sscanf(buf,"%lf",&x))!=1);
do
{
printf("実数2を入力してちょ: ");
fgets(buf,1024,stdin);
}while((sscanf(buf,"%lf",&y))!=1);
printf("和: %lf\n",x+y);
printf("差: %lf\n",x-y);
printf("積: %lf\n",x*y);
printf("商: %lf\n",x/y);
system("PAUSE");
return 0;
}
値はscanf()で文字列として取り込み、
atof()で実数に変換するにはどうすればいいですか?
0091デフォルトの名無しさん
2006/07/10(月) 09:59:25いまのでいいじゃん
009241
2006/07/10(月) 13:56:01無事に動きました!
ありがとうございました!!ぜひとも参考にさせていただきます。
>>56,>>56
貴重なご意見ありがとうございます。
早速、改良してみようと思います!
0093デフォルトの名無しさん
2006/07/10(月) 14:40:53[2] 問題文
次の配列の平均、分散、標準偏差を計算するプログラムを作りなさい。
double a[5]={1.0,2.0,3.0,4.0,5.0};
N-1
平均 α=1/N*Σαi
i=0
N-1
分散 σ^2=1/N*Σ(αi-α)^2
i=0
標準偏差 σ=√σ^2
3] 環境
[3.1] XP
[3.2] gcc 3.4
[3.3] Cのみ
[4] 期限:今日中にお願いします(*。_。)
[5] その他の制限:まだ初心者です、誰か優しい方お願いします(o^-^o)
表記の仕方とかよくわからないんで適当にやってしまったのですが
わかり辛かったらごめんさなぃ<(_ _*)>
0094デフォルトの名無しさん
2006/07/10(月) 15:29:16// 既存ソースの流用なんで、scanf()のところを配列参照にするのはやってくれ
#include <stdio.h>
#include <float.h>
#include <math.h>
int main(void)
{
int n = 0;
double x, mean, mean2, dis;
while (scanf("%lf", &x) == 1) {
if (n == 0) {
mean = x;
mean2 = x * x;
} else {
mean += x;
mean2 += x * x;
}
++n;
}
mean /= n;
dis = mean2 / n - mean * mean;
printf("平均値:%.15g\n分散:%.15g\n標準偏差:%.15g\n",
mean, dis, sqrt(dis));
return 0;
}
0095デフォルトの名無しさん
2006/07/10(月) 15:39:21使えないやつだな
0096デフォルトの名無しさん
2006/07/10(月) 15:39:25#include <stdio.h>
#include <math.h>
int main(void)
{
double a[5]={1.0,2.0,3.0,4.0,5.0};
double mean = 0;
double mean2 = 0;
int n = sizeof(a) / sizeof(* a);
for (int ic = 0; ic < n; ++ic) {
mean += a[ic];
mean2 += a[ic] * a[ic];
}
// 分母の調整が要りそうなので、その場合は次の行を有効に。
// --n;
mean /= n;
double dis = mean2 / n - mean * mean;
printf("平均値:%g\n分散:%g\n標準偏差:%g\n", mean, dis, sqrt(dis));
return 0;
}
0097デフォルトの名無しさん
2006/07/10(月) 18:24:50だったらお前がソースを書けよwwwww
つかえねぇー低レベルな学校の教員さんよぉ
0098デフォルトの名無しさん
2006/07/10(月) 18:49:17難易度の把握と模範解答若しくは単に解答例の
獲得を主たる目的とするスレです
0099デフォルトの名無しさん
2006/07/10(月) 21:21:49[2] 問題文(含コード&リンク):
アルファベットaとbを適当な順番で並べた任意の長さの文字列に対して、隣り合う2文字が同じであればSに、
異なっていればDに置き換えたい。すなわちabbaaabbbabbaと入力した場合に、DSDSSDSSDDSDと出力させるようにせよ。
入力文字列の文字数よりも、出力文字列の文字数が1文字少なくなることに留意すること。
【ヒント】ポインタの位置を進める前に、ポインタ変数の刺す文字型データを文字型変数に代入しておく
(文字型変数をpreとするとpre = *abとすればよい)
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:Visual C++ 2005 Express Edition
[3.3] 言語: C
[4] 期限: 11日末まで
0100デフォルトの名無しさん
2006/07/10(月) 22:13:06#include<stdio.h>
#include<string.h>
int main(void){
char *str = "abbaaabbbabba";
char alp = *str;
int i, iCnt = strlen(str);
for(i=1; i<iCnt; i++){
str++;
if(*str == alp)putchar('S');
else putchar('D');
alp = *str;
}
return 0;
}
ただしこっちの環境はBCC
0101デフォルトの名無しさん
2006/07/10(月) 22:21:51ごめん無駄に長かった
#include<stdio.h>
int main(void){
char *str = "abbaaabbbabba";
char alp = *str;
while(1){
if(*++str == '\0')break;
putchar(*str ==alp? 'S':'D');
alp = *str;
}
return 0;
}
0102デフォルトの名無しさん
2006/07/10(月) 23:49:44>すなわちabbaaabbbabbaと入力した場合に
~~~~~~~~~~~~~~~
0103デフォルトの名無しさん
2006/07/10(月) 23:55:47010483
2006/07/11(火) 00:32:31回答頂いたソース、テキストを用いて実行してみたところ、
1 [made\イ@]
1 [to@]
1 [to@]
1 [ten]
1 [to@]
1 [be@]
1 [be@]
1 [be@]
といった実行結果になってしまったのですが、
なぜなのでしょうか。
0105kyoro
2006/07/11(火) 02:44:18[2] 問題文(含コード&リンク): 線分を10本入力する。それらの線分のうち、垂直に交わっているものの組はどれかを判定するプログラムを作る。
線の番号と線を表示させることはできました。
内積を使って垂直の判定をしたいのですが上手くいきません。
何がいけないか教えて欲しいデス。
途中までのソースは続けて書き込みしておきます。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: Microsoft Visual Studio .NET 2005
[3.3] 言語:Visual C++
[4] 期限: [7月11日13:00まで]
[5] その他の制限: 単位がかかってるのでょろしくぉ願ぃします(>_<)大汗
0106kyoro
2006/07/11(火) 02:45:08for(k=0;k<45;k++){
suityoku[k]=0;
}
k=0;
for(i=0;i<10;i++){
for(j=0;j<i;j++){
bekuto1x[i]=ex[i]-sx[i];
bekuto1y[i]=ey[i]-sy[i];
bekuto2x[j]=ex[j]-sx[j];
bekuto2y[j]=ey[j]-ey[j];
naiseki[k]=bekuto1x[i]*bekuto2x[j]+bekuto1y[i]*bekuto2y[j];
length1[k]=sqrt(bekuto1x[i]*bekuto1x[i]+bekuto1y[i]*bekuto1y[i]);
length2[k]=sqrt(bekuto2x[j]*bekuto2x[j]+bekuto2y[j]*bekuto2y[j]);
bunbo[k]=length1[k]*length2[k];
cos[k]=naiseki[k]/bunbo[k];
k++;
}
}
for(k=0;k<45;k++){
if(-0.1<=cos[k]&&0.1>=cos[k]){
suityoku[k]=1;
}
}
始点(sx[],sy[])、終点(ex[],ey[])です。
直線1のベクトル(bekuto1x[],bekuto1y[])
直線2のベクトル(bekuto2x[],bekuto2y[])
内積=bekuto1x[]×bekuto2x[]+bekuto1y[]×bekuto2y[]
☆内積=cosθ|直線1||直線2|
0107デフォルトの名無しさん
2006/07/11(火) 03:21:10実験したテキストをうpしてくれ
0108デフォルトの名無しさん
2006/07/11(火) 03:41:03mallocを止めてcallocを使うようにしてみてはどうだろうか?
0109デフォルトの名無しさん
2006/07/11(火) 04:01:47スマンカッタ orz
011099
2006/07/11(火) 10:06:56aとbをscanfで適当な順番で入力したときに表示出来るようにしていただきたい。
こんな半日経って後付けするのは悪いと思ってるがどうかお願いしますorz
0111デフォルトの名無しさん
2006/07/11(火) 10:44:240112デフォルトの名無しさん
2006/07/11(火) 10:52:18永久ループ。whileを使うとか
0113デフォルトの名無しさん
2006/07/11(火) 11:01:55[2] 問題文:素数の表示
指定した数以下の全素数(例えば10以下の全素数は2,3,5,7)
を表示するプログラムを、次のような3つの関数定義して
作成してください。ただし指定する数の入力は適切な値が
入力されるまで繰り返され、素数10個を表示するごとに
改行するようなプログラムとしてください。
(ア)指定した数が適切な範囲かどうかを検査し、適切ならば0、
不適切ならば1(逆の方が使いよければ逆でも可)を返す関数
(イ)適切な値が入力されるまで入力を繰り返し、最終的に
入力値を返す関数((ア)を利用)
(ウ)引数に指定した数が素数なら1、素数でなければ0を返す関数
ヒント
a)(ウ)で素数かどうかを判定するには、指定した数mが2〜m-1の
数値で割り切れるかどうかを判定し、ひとつも割り切れるものが
なければ素数と判定します(素数の定義通り)。
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2006年7月12日17時まで
[5] その他の制限:初心者です。よろしくお願いします。
0114デフォルトの名無しさん
2006/07/11(火) 11:04:53class j181b {
public static void main(String args[]) {
int n = 100;
int c,i,p;
int a[];
a = new int[n+2];
for( i=2; i<=n+1; i++ ) { a[i] = 0; }
p = 2;
for( i=2*p; i<=n; i=i+p ) { a[i] = 1; }
while( p < n ) {
p = p + 1;
while( a[p] == 1 ) { p = p + 1; }
for( i=2*p; i<=n; i=i+p ) { a[i] = 1; }
}
c = 0;
for( i=2; i<=n; i++ ) {
if( a[i] == 0 ) {
System.out.print(i + " ");
c++; if( c%10 == 0 ) { System.out.println(); }
}
}
System.out.println();
System.out.println(n + "以下の素数は " + c + " 個存在する");
}
}
0115デフォルトの名無しさん
2006/07/11(火) 11:22:00[2] 問題文(含コード&リンク):2007年の日付を入力し、その曜日を表示するプログラムを作成。日付の入力は自由とする。ただし、プログラムは60行を超えてはならない。
例、月==>6
日==>21
6月21日は水曜日です
となるよう。
[3] 環境
[3.1] OS: Windows XP
[3.2] コンパイラ名とバージョン: Microsoft Visual Studio .NET 2003
[3.3] 言語:C++
[4] 期限:今日の14時ほど;
[5] その他の制限:switch文を2回使うらしいのですがまったく分かりません…お願いします助けてください…泣;ソフトウェア前期なのでできるだけ簡単なプログラムでお願いしたいです。無理を言って申し訳ないです↓
0116デフォルトの名無しさん
2006/07/11(火) 12:21:06#include <stdio.h>
int main(void){
char str[250], *p = str, *p2 = str + 1;
scanf("%s", str);
while(*(p2)){
putchar(*p2 == *p ? 'S' : 'D');
p++;
p2++;
}
return 0;
}
0117デフォルトの名無しさん
2006/07/11(火) 14:52:41[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2321.txt[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:VC 6.0
[3.3] 言語:C++
[4] 期限:今日の18時くらい
[5] その他の制限:リンク先に問題点などを付記しております。
よろしくお願いします。
0118デフォルトの名無しさん
2006/07/11(火) 14:59:00何が「今日の18時くらい」だ。
氏ねよ。
0119デフォルトの名無しさん
2006/07/11(火) 15:03:38http://pc8.2ch.net/test/read.cgi/tech/1151477344/450
またお前か、このスレに昼間っから何しにきてんだよ?
0121デフォルトの名無しさん
2006/07/11(火) 15:28:41キチガイってバレバレだから、無駄口叩いて相手を煽るのは止めとけ
0122デフォルトの名無しさん
2006/07/11(火) 15:29:270124デフォルトの名無しさん
2006/07/11(火) 15:34:36自己主張で煽ろうと必死だなwwwwww一生やってろ、30過ぎたニート素人童貞がw
0125デフォルトの名無しさん
2006/07/11(火) 15:36:520126デフォルトの名無しさん
2006/07/11(火) 15:36:53っつか、ここんとこ荒れなくてここが荒れなくてつまらないんだろ?
荒れている場所を見つけちゃ煽るキチガイって2chではよく見かけるよな
もうお前が望むようなつまらん荒れ模様は見せないから、他へ行けよガイキチニートw
0128デフォルトの名無しさん
2006/07/11(火) 15:52:48またいつものキチガイか
0129デフォルトの名無しさん
2006/07/11(火) 15:58:320130デフォルトの名無しさん
2006/07/11(火) 15:59:51>もうお前が望むようなつまらん荒れ模様は見せないから
是非そうしてくれ。
0131デフォルトの名無しさん
2006/07/11(火) 16:00:45プロの引きこもりニート。
0132デフォルトの名無しさん
2006/07/11(火) 16:01:53お前分かりやすい。少なくとも↓の発言はお前だな。書き方でバレバレ
http://pc8.2ch.net/test/read.cgi/tech/1151477344/429
http://pc8.2ch.net/test/read.cgi/tech/1151477344/450
0133デフォルトの名無しさん
2006/07/11(火) 16:02:51ハズレ
0134デフォルトの名無しさん
2006/07/11(火) 16:03:33[2] 問題文:
下の例を参考に(1)(2)(3)のコードを作成せよ。
(1) log(1+x) = x - x^2/2 + x^3/3 - x^4/4 + …
(2) sin x = x - x^3/3! + x^5/5! - x^7/7! + …
(3) cos x = 1 - x^2/2! + x^4/4! - x^6/6! + …
例
任意の実数xを入力し、次式により指数関数e を小数点以下6桁まで計算するコードを作成せよ。
e^x=1+x/1!+x^2/2!+x^3/3!+x^4/4!+…
#include <stdio.h>
#include <math.h>
int main(int argc,char *argv[])
{
double x,xx,yy = 0,ex = 1;
int i = 1,j = 1;
xx = x;
while( fabs(ex - yy) >= 1e-6 ){
yy = ex; j *= i;
ex += xx / j; i++; xx *= x;
}
printf("%lf\n",ex);
}
[3][3.1] OS: (Windows)
[3.2] コンパイラ名とバージョン: ( VC 6.0)
[3.3] 言語: C++
[4] 期限: ([2006年7月12日正午まで]
[5] その他の制限:例に沿った形でやってもらえるとありがたいです。
0135134
2006/07/11(火) 16:06:57×指数関数e
○指数関数e^x
0136デフォルトの名無しさん
2006/07/11(火) 16:07:34┏┓ ┏┓ ┏┓ ┏┓ ┏┓ ┏━━┓ ┏┓ ┏━┓
┏━┛┗━┓ ┃┃ ┃┃ ┗┛┏━┛┗━┓ ┗━━┛ ┃┃ ┗┓┃
┗━┓┏━┛┏┛┗━━┓┏━┛┗━┓ ┗━┓┏━┛┏━━━━┓ ┏┛┗━━┓┃┃
┏━┛┗━┓┗┓┏━━┛┗━┓┏━┛ ┏━┛┗━┓┗━┓┏━┛ ┗┓┏━┓┃┗┛
┗━┓┏━┛ ┃┃┏━┓ ┃┃ ┗━┓┏━┛ ┏┛┗┓ ┃┃ ┃┃
┏━┛┗━┓ ┃┃┗━┛┏━┛┗━┓ ┏━┛┗━┓┏┛┏┓┗┓ ┃┃ ┃┃
┃┏┓┏━┛ ┃┃┏━┓┃┏┓┏┓┃ ┃┏┓┏━┛┃┏┛┗┓┃ ┃┃ ┃┃
┃┗┛┃ ┃┃┗━┛┃┗┛┃┃┃ ┃┗┛┃ ┃┃ ┃┗┓ ┃┃┏┛┃
┗━━┛ ┗┛ ┗━━┛┗┛ ┗━━┛ ┗┛ ┗━┛ ┗┛┗━┛
0137デフォルトの名無しさん
2006/07/11(火) 16:11:12いや、お前だろ、そうやって荒らしているのが何よりの証拠
0138デフォルトの名無しさん
2006/07/11(火) 16:15:51/____\ _____
/ | ─ 、− 、! \
!___|─|(●)(●)|-────- 、 ヽ
( `‐ァ(_, )、|(●), 、(●) \ i <このスレキモいね
入 `トェェェイノ ,,ノ(、_, )ヽ、─ i |
/ヽ-、` ┬〒ィ´ `-=ニ=- ' 二 | !
| (/`v二)| ヽ `ニニ´ | /
ヽ_入 _ ノ \ ____) / /
|───┤ ○ ━━6━◯━━ヽ
|____| \|/ _____\ ヽ
| | | ! ヽ__ノ ! |
|__||__| >、 ___ ノ ノ-o
__|__||__|_ (___.ヘ ___/
0139デフォルトの名無しさん
2006/07/11(火) 16:17:270140デフォルトの名無しさん
2006/07/11(火) 16:20:44それがこのスレのクオリティ。
0141デフォルトの名無しさん
2006/07/11(火) 16:25:28まぁ、暑くてワールドカップも日本代表は不発に終わってイライラしていらっしゃるとは
思いますが、落ち着いて冷静になりましょう。
宿題の回答レスがされるまでYouTubeで面白い動画でも探してみては?
ttp://www.youtube.com/watch?v=7IE2JBaBSBk&search=Materazzi
ttp://www.youtube.com/watch?v=SEzqLkwL0mY&search=ayaya
0142デフォルトの名無しさん
2006/07/11(火) 16:28:510143デフォルトの名無しさん
2006/07/11(火) 16:30:102]
$ ./calendar 2006 6
2006 6
SUN MON TUE WED THU FRI SAT
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30
$
・年月はカレンダーの中央に表示するようにしてください
・曜日は必ず表示して下さい
・日付は日曜日から始まる1週間を1行にしてください
・うるう年を考慮してください
これらの条件に当てはまるソースコードを作成しなさい
[3] 環境
[3.1] OS:Linux
[3.2] ちょっとわかんないっす
[3.3] 言語:C
[4]できるだけ早くお願いします
0144デフォルトの名無しさん
2006/07/11(火) 16:42:44キーボードから平均a標準偏差sを入力
式1を使ってこの正規分布乱数を算出し100個ぐらい出力。
y:求める正規分布乱数 s:求める乱数の標準偏差 w:一様乱数12個の和 a:求める乱数の平均
これは「平均a,分散s^2を持つ正規分布乱数yを生成する」
式1 y=s(w-6)+a
[3] 環境
[3.1] OS:XP
[3.2] コンパイラ名とバージョン:VC 6.0
[3.3] 言語:Cです。
[4] 期限:木曜までです
[5] その他の制限:
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
void main(void)
{ int y,s,a,w;
//整数乱数表示 //
scanf("%f %f",&a,&s); //scanfでa,sの値を入力
y=s(w-6)+a
for(i=0; i<100; i++) //100個ぐらい乱数を出す
{ printf("%d ",rand()); } //randを使う
printf("\n\n"); //printfで出力
}
getchar()
getchar();
}
0145デフォルトの名無しさん
2006/07/11(火) 16:57:55プログラム書いてうpろだ見たら答えがあった orz
0146デフォルトの名無しさん
2006/07/11(火) 17:20:50[2] 問題文(含コード&リンク):
概要:以下に示すメイン関数を参考にmain関数と子関数を作成し実行確認する。
プログラムの仕様:キーボードから入力した5個の整数値の中から最大値を見つけ出し表示する。
処理手順:
「メイン関数」
�@以下を5回繰り返す
・「〜個目は:」を表示
・整数値を入力
�A整数配列の先頭アドレスを引数に最大値検索関数を呼び出す(コール) (GetMax)
�B �Aの戻り値を画面に表示(最大値は〜です)
「最大値検索関数」(GetMax)
関数の型:戻り値はint、引数はint型のポインタ
呼び出し形式:int GetMax(int*data)
処理手順:
�@仮の最大値に配列の先頭要素を代入
�A以下を残りの4回繰り返す(アと�@でポインタ使用)
(ア)もし、配列の要素が仮の最大値より大きかったら、
�@ 仮の最大値にその配列の要素を代入
(イ) (ア)が成立しなければ、何もしない
�B仮に最大値をリターンする(戻す)
0147146
2006/07/11(火) 17:22:20int GetMax(int *data);
int _tmain(int argc, _TCHAR* argv[])
{
int cnt;
int max;
int suti[5];
printf("最大値を検索するプログラムです\n");
printf("数値を5個入力してください\n")
for(cnt=0; cnt<5; cnt+1);
printf("%d個目は:",cnt+1);
scanf("%d",★空白★);
}
max = GetMax(★空白★);
printf("最大値は%dです\n",max);
return 0;
}
[3] C++
[4] 期限: 明日
0148デフォルトの名無しさん
2006/07/11(火) 18:11:13http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2322.c
一部、空白以外の場所に手を加えたけど、気に食わないなら適当に直して
0149デフォルトの名無しさん
2006/07/11(火) 18:11:15[2]httpプロキシ(http_proxy)を作成せよ
参考サイト
http://www6.plala.or.jp/dx033/mydoc/myworks/web-text/
http://www.mars.dti.ne.jp/~torao/rfc/rfc2068-ja.html
[3] 環境
[3.1]OS:UNIX
[3.2]コンパイラ:gcc
[3.3]言語:C
[4] 期限:7月17日
[5]その他の制限
ネットワークプログラミングに関してはsocketやselectを少し習ったくらいです。
ネットワークの話が1回しか講義でなかったのにこんな難しそうな課題が出ました。
参考サイトを見ても何を作って良いのか全く分かりません。
指針だけでも良いので誰か教えてください。
0150デフォルトの名無しさん
2006/07/11(火) 18:15:48↓おはようございまーす
0151デフォルトの名無しさん
2006/07/11(火) 18:20:36[2] 課題:ヒストグラム
得点データを読んで,平均点とヒストグラムを出力するようなプログラムを作成せよ。
得点データファイルの先頭行はデータ数n を示し,つづくn 行に得点が格納されている。
各得点は0 以上100 以下の整数である。
ヒストグラムは「0〜9」,「10〜19」, ...,「90〜99」,「100 以上」の11 区間とし,各区間
に含まれるデータ数を '*'(アスタリスク)を用いて表現せよ。
20:データ数n
50
70
64
51
68
60
73
53
49
67
100
72
41
59
86
69
38
93
50
69
[3] [3.1] OS:XP
[3.2] コンパイラ名とバージョン:Visual Studio 2005
[3.3] 言語:C++
[4] 期限:7月20日まで
0152デフォルトの名無しさん
2006/07/11(火) 18:37:52[2] 問題文(含コード&リンク):
次の表は、平成18年のお年玉付き年賀葉書の当選番号である。
1等 706592 284148
2等 82201 74490
3等 6226 5657
4等 07 51
手元に届いた年賀状の抽選番号をキーボードから入力し、
当選したかどうかチェックして結果を表示するプログラムを作成する。
ただし、ここでは簡単のため下2桁だけを扱うものとする。
当選番号(の下2桁)は、キーの配列に初期値として格納する
キーボードから2桁の数字を入力してターゲットに格納し、線形探索を行う。
探索結果を画面に出力する。当選した場合は何等が当たったか、も出力すること。
【ヒント】
余力のある人は、下2桁に限らず、全桁を初期値として格納し、
当選のチェックを実行するプログラムを作成してみること。
[3] 環境
[3.1] OS: XP
[3.2] visual studio.2003
[3.3] 言語: C
[4] 期限: 来週の火曜日まで
[5] 配列、ループ、線形探索、二部探索、構造体
0153デフォルトの名無しさん
2006/07/11(火) 18:47:390154デフォルトの名無しさん
2006/07/11(火) 18:49:290155デフォルトの名無しさん
2006/07/11(火) 18:53:01# include <stdio.h>
struct num
{
int val;
int size;
int grade;
};
int main(void)
{
struct num ns[] = {
{706592, 1000000, 1},
{284148, 1000000, 1},
{ 82201, 100000, 2},
{ 74490, 100000, 2},
{ 6226, 10000, 3},
{ 5657, 10000, 3},
{ 7, 100, 4},
{ 51, 100, 4}};
int i;
int x;
printf("Input number: ");
scanf("%d", &x);
for(i = 0; i < sizeof ns / sizeof *ns; i++)
if(x % ns[i].size == ns[i].val)
printf("You win the grade %d.\n", ns[i].grade);
return 0;
}
0156デフォルトの名無しさん
2006/07/11(火) 18:53:02単なる中継機能だけであれば、次のような機能を実装すればよい。
・サーバは、とあるポート(8080)でlistenする。
・ブラウザからの接続要求で、URLに含まれるサーバへのコネクションを張る(port80で)。
・ブラウザから受信したデータをそのままHTTPサーバに送信する。
・HTTPサーバから受け取ったデータをそのままブラウザに送る。
・Keep-Aliveだったらコネクションを保持、そうでなかったら切る
ブラウザはプロキシの設定でlocalhostの8080番を指定する。
複数クライアントに対応する場合は、forkでもthreadでもお好きなように。
0157デフォルトの名無しさん
2006/07/11(火) 19:13:31前に似たようなアドバイスをいただいたのですがそれでもできなくて・・・。
解いていただけないでしょうか?
お願いします。
0158デフォルトの名無しさん
2006/07/11(火) 19:17:37いやその似たようなアドバイスも俺なんだが。
ちなみにそのとき断ったよな?
0159デフォルトの名無しさん
2006/07/11(火) 19:21:11あの時アドバイスくれた方でしたか。
すいません。
0160デフォルトの名無しさん
2006/07/11(火) 19:22:02ググってあげたから、これでも改変しなよ。
http://www.unixuser.org/~euske/pub/index.html
のhttpproxy.c
0161デフォルトの名無しさん
2006/07/11(火) 19:38:22ありがとうございます。
これを見てプログラムで何をしているか学習したいと思います。
0162デフォルトの名無しさん
2006/07/11(火) 19:54:59[2] 問題文: 入力は1000以下の自然数n
出力はn円の商品を1000円札を出して買ったときの、お釣りに含まれる各硬貨の枚
数とその合計枚数。ただし、合計枚数が一番少なくなるような組み合わせを出力し、
0枚の硬貨については出力しないようにする。例えば、373を入力した場合、出力が
500yen=1
100yen=1
10yen=2
5yen=1
1yen=1
total=7
となるようにする。なお、出力する順番は好きにしてよい。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2006年7月19日20:45まで
[5] その他の制限:forとwhileとifを勉強しました。初心者です。
0163デフォルトの名無しさん
2006/07/11(火) 20:01:36[1] 授業単元: 情報基礎A
[2] 問題文: 次の仕様をみたすプログラムを作成せよ。
(1)入力は2以上の自然数n
出力はnのすべての約数
(2)入力は2以上の自然数n
出力はnの約数の個数
(3)入力は2以上の自然数n
出力はnが個数ならば"n is prime."、合成数ならば"n is not prime."
(nの部分には入力した自然数が表示されるようにすること)
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2006年7月19日20:45まで
[5] その他の制限:上と同じです。よろしくお願いいたします。
0164デフォルトの名無しさん
2006/07/11(火) 20:17:17#include <stdio.h>
int main(){
int coin[] = {500, 100, 50, 10, 5, 1};
int n, i;
scanf("%d", &n);
for(i = 0; i < sizeof(coin)/sizeof(coin[0]); i++){
if(coin[i] > n) continue;
printf("%dyen=%d\n", coin[i], n/coin[i]);
n %= coin[i];
}
return 0;
}
0165デフォルトの名無しさん
2006/07/11(火) 20:17:20[2] このプログラムを改造して、数値をキーボードから入力出来るようにしたいのですが、
どう改造しても上手く回らなくて・・・
#include <stdio.h>
#define N 3
int main(void)
{
static double a[N][N+1]=
{
{2.0 ,3.0 ,1.0 ,4.0},
{4.0 ,1.0 ,-3.0 ,-2.0 },
{-1.0 ,2.0 ,2.0 ,2.0}
};
double p,d;
int i,j,k;
for (k=0;k<N;k++)
{
p=a[k][k];
for (j=k;j<N+1;j++)
a[k][j]=a[k][j]/p;
for (i=0;i<N;i++)
{
if (i!=k)
0166デフォルトの名無しさん
2006/07/11(火) 20:18:03d=a[i][k];
for (j=k;j<N+1;j++)
a[i][j]=a[i][j]-d*a[k][j];
}
}
}
for (k=0;k<N;k++)
printf("x%d=%f\n",k+1,a[k][N]);
}
[3] 環境
[3.1] OS:Win 2000
[3.2] コンパイラ名とバージョン:Visual C++ 2005
[3.3] 言語:C++
[4] 期限:2006/07/12 22:00
2レスにまたがってしまってスミマセン・・・。
どうぞ宜しくお願いいたします。。。
0167164
2006/07/11(火) 20:18:50scanf の跡に、
n = 1000 - n;
を入れてくれ。
0168デフォルトの名無しさん
2006/07/11(火) 21:11:42#include <stdio.h>
int main(){
int num, i, cnt = 0;
call:
scanf("%d", &num);
if (num < 2) goto call;
for (i= 1; i <= num; i++){
if ((num % i) == 0){
printf("%d ", i);
cnt++;
}
}
printf("\n%dの約数の個数=%d\n", num, cnt);
if (cnt == 2)
printf("%d is prime.\n", num);
else
printf("%d is not prime.\n", num);
return 0;
}
0169デフォルトの名無しさん
2006/07/11(火) 21:39:53#include <stdio.h>
void main( void ) {
int data[21] = { 20 ,
50 , 70 , 64 , 51 , 68 , 60 , 73 , 53 , 49 , 67 ,
100 , 72 , 41 , 59 , 86 , 69 , 38 , 93 , 50 , 69 } ;
int y , x , cnt , i , ave ;
for ( y = 0 ; y < 11 ; y++ ) {
cnt = 0 ;
if ( y != 10 ) {
for ( x = 1 ; x < (data[0]+1) ; x++ ) { if ( ((y*10) <= data[x]) && (data[x] <= (y*10+9)) ) { cnt++ ; } }
printf( "%3d-%3d : " , (y*10) , (y*10+9) ) ;
} else {
for ( x = 1 ; x < (data[0]+1) ; x++ ) { if ( 100 == data[x] ) { cnt++ ; } }
printf( "100- : " ) ;
}
for ( i = 0 ; i < cnt ; i++ ) { printf( "*" ) ; }
printf( "\n" ) ;
}
ave = 0 ;
for ( i = 1 ; i < (data[0]+1) ; i++ ) { ave += data[i] ; }
ave /= data[0] ;
printf( "AVERAGE : %d\n" , ave ) ;
}
0170デフォルトの名無しさん
2006/07/11(火) 21:43:14ありがとうございました。
これで補講にならずにすみます。
0171デフォルトの名無しさん
2006/07/11(火) 21:45:47[2] 問題文(含コード&リンク): 以下の2つの課題について,C言語でプログラムを作成し,プログラムおよび実行結果を示し,考察せよ.
�@キーボードから正整数を読み込み,その数を素因数分解した結果を画面に表示する.た
だし,1つの整数を引数とし,その整数の最小の素因数を返す関数をユーザ定義関数として作成
し,この関数を使用すること.
�Aキーボードから7桁の整数を2つ読み込み,その積を表示する.ただし,整数型以外の
変数を用いてはならない.
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン: VisualStudio2003
[3.3] 言語: C
[4] 期限: できるだけ早くお願いします。
[5] その他の制限: お願いします
0172デフォルトの名無しさん
2006/07/11(火) 21:52:03ありがとうございます
0173デフォルトの名無しさん
2006/07/11(火) 21:52:31って、よく見たら完成したやつじゃなくて途中のをうpしてたっけ・・・
不適切だからまたここに来るかな・・・一応書いておくか・・・
if(max < *data++) は if(max < *data) に変更
0174デフォルトの名無しさん
2006/07/11(火) 21:57:37http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2326.c
念のために訂正。C++だったみたいだけど、肝心のアルゴリズムの部分はCでもいけたから良いか
0175165-166
2006/07/11(火) 21:59:42数値というのは元数と変数です。
どうぞ宜しく御願い致します…。
0176デフォルトの名無しさん
2006/07/11(火) 22:19:05華麗にスルーされてるけど、OKだと思うよ
でも、前半のi,jの2重ループ部分だけど、垂直判定の後に長さや内積が不要なら
cos値だけ配列で保持して、他は一時的に変数に保持するだけで十分だよ
ちなみに>>62は俺なんだが、間違ってたね
×cos([89度のラジアン]) < ([内積] / [2つの線分の長さの積]) < cos([91度のラジアン])
○cos([91度のラジアン]) < ([内積] / [2つの線分の長さの積]) < cos([89度のラジアン])
寝る前だったんで・・・許して
017783,104
2006/07/12(水) 01:32:22>>107
to be to be
ten made to be.
と書いたテキスト使いました。
>>108
呼び出しのパラメータが足りないとエラーが起こってしまいました・・・
0178デフォルトの名無しさん
2006/07/12(水) 08:16:35malloc 使ってるけど問題のところは直しておいたよ
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2332.c
その他の場所もついでに書き換えた
0179デフォルトの名無しさん
2006/07/12(水) 08:36:53質問です。
y=ax^2のグラフを*を使って0<=xの範囲で標示使用と思い、以下のようなプログラム
を構築したのですが、うまくいきません。どこがいけないのでしょうか?
親切な方、どうか教えてください。よろしくお願いいたします。
0181デフォルトの名無しさん
2006/07/12(水) 08:46:45#include "stdio.h"
int main(void)
{
int c,i,j;
double a,k;
scanf("a= %f", &a);
if(0 < a && a <= 1)
{
printf(" y");
0182デフォルトの名無しさん
2006/07/12(水) 08:47:41for(i = 0;i <= 50;i=i+1)
{
k = (100 - 2 * i)/100;
printf("%.2f", &k);
printf("|");
for(j = 5;j <= 55;j=j++);
if(k == a*((j-5)/50)*((j-5)/50))
{
printf("*");
}
else
{
printf(" ");
printf("\n");
}
}
return 0;
}
else
{
printf("The value is invalid. Input a real number a such that 0<a<=1.\n");
return 0;
}
0183デフォルトの名無しさん
2006/07/12(水) 09:35:30[2] 問題文(含コード&リンク):
要素数5の配列key[5]に、適当な初期値を用意し、単純交換法でソートするプログラムを作成せよ
要素が1つ決定されるたびに(前ページの流れ図のループ1の中で)、確認の為配列を画面に出力しなさい
初期値として、スライド・教科書の例を使い確認すること。
{58, 27, 6, 32, 13}
比較回数を数えて、最後に画面に出力しなさい
計算量の説明を参照して、確認すること
教科書・スライドの流れ図とプログラムで、要素番号の違いに注意する
[3] 環境
[3.1] OS: XP
[3.2] visual studio.2003
[3.3] 言語: C
[4] 期限: 来週の火曜日まで
[5] 配列、ループ、線形探索、二部探索、構造体
0184デフォルトの名無しさん
2006/07/12(水) 10:40:34文字定数ABCDEは
A=65,B=66,C=67,D=68,E=69
なのに
printf(%d,"ABCDE");
って書くと
4202469
になるのはなんでですか?
0185デフォルトの名無しさん
2006/07/12(水) 10:45:36文字列リテラル"ABCDE"の値は、どこかに確保された文字列へのポインタだから。
%dが指定されているのでポインタを整数として解釈しようとしてそういう表示になる。
0186デフォルトの名無しさん
2006/07/12(水) 11:12:10指定されたアドレスの先頭番地が返される、ってことなんすかね。
アドレスって本当は整数表記じゃないんですかね。
何型で解釈すると正しい値(?)が出るんですかね?
もちっと勉強してきます
ありがとうございました>>185
0187デフォルトの名無しさん
2006/07/12(水) 11:17:19>アドレスって本当は整数表記じゃないんですかね。
ハードウェア上はそうだけど、ふつうC言語ではポインタと整数を区別する。
printfでポインタを表示するには%pを使う。
0188デフォルトの名無しさん
2006/07/12(水) 11:25:04#include <stdio.h>
#define SIZE 5
void swap(int* a, int* b) { int t = *a; *a = *b; *b = t; }
int main() {
int key[SIZE] = { 58, 27, 6, 32, 13 };
int i, j, k, cmp_cnt = 0;
for (k = 0; k < SIZE; k++) { printf("%3d", key[k]); }
printf("\n");
for (i = 0; i < SIZE - 1; i++) {
for (j = SIZE - 1; j > i; j--) {
if (key[j - 1] > key[j]) {
swap(&key[j - 1], &key[j]);
for (k = 0; k < SIZE; k++) { printf("%3d", key[k]); }
printf("\n");
}
cmp_cnt++;
}
}
printf("compare: %d\n", cmp_cnt);
return 0;
}
0189デフォルトの名無しさん
2006/07/12(水) 11:42:3916進数表記になるんですね。
勉強になりました。どうも_(_^_)_
0190デフォルトの名無しさん
2006/07/12(水) 14:23:15↓
A B C 161506.3
A〜Cには文字が入り、右側の数字を連結する。
(右側の数字は時分秒をあらわしている。)
もし、分・秒が1桁の数字なら2桁に直してから連結する。
(0〜9は00〜09となるように。)
このような時刻情報が書き出されているtxtファイルをまとめる(?)という課題があるのですが
さっぱり分かりません。
txtのファイルを読み込み、上のようなルールで編集をしたのち
再度txtで書き出すということなんですが…。
特に分からなくなっているのは、分・秒が一桁の場合、二桁に直してから連結するというところです。
すみませんが、だれか書ける人いませんか?
0191デフォルトの名無しさん
2006/07/12(水) 14:47:49printf("%C %C %C %2d%2d%2d.%d",A,B,C,hour,min,sec,msec);
0192デフォルトの名無しさん
2006/07/12(水) 14:49:05printf("%c %c %c %d%2d%2d.%d",A,B,C,hour,min,sec,msec);
0193デフォルトの名無しさん
2006/07/12(水) 14:52:160194デフォルトの名無しさん
2006/07/12(水) 14:59:12ありがとうございます。早速試してみたのですが、
A B C 16 15 6 3
↓
A B C 1615 6.3
となります。ここでいう秒の6を06というふうには出来ないでしょうか?
0195デフォルトの名無しさん
2006/07/12(水) 15:00:37そのようにしたところ194解決しました。
ありがとうございました。
01961/2
2006/07/12(水) 15:28:07[2] 問題文(含コード&リンク):
#include <stdio.h>
extern int inpint(void);
extern float inpdbl(void);
int main(void)
{
int n;
printf("0: integer 1: floating point\n");
printf("please input a number:");
scanf("%d",&n);
switch(n)
{
case 0: printf("be input an integer:%d\n", inpint());
break;
case 1: printf("be input a floating point number:%f\n", inpdbl());
break;
default: break;
}
return 1;
}
01972/2
2006/07/12(水) 15:30:02#include <stdio.h>
float inpdbl(void)
{
float n;
printf("please RNTER Value:");
scanf("%f", &n);
return n;
}/* 整数値入力関数用ファイル */
#include <stdio.h>
int inpint(void)
{
int n;
printf("please RNTER Value:");
scanf("%d", &n);
return n;
}
次のプログラムは整数値入力、浮動少数点数入力に分岐するものである。
整数値、浮動値の2つの関数をおのおの別のファイルに作成している
プログラムの内容を確認せよ
0198デフォルトの名無しさん
2006/07/12(水) 16:02:010199デフォルトの名無しさん
2006/07/12(水) 16:11:51[2] 問題文(含コード&リンク):
画像の輪郭を抽出するラバーバンドを作成しなさい。
[3] 環境
[3.1] OS:WindowsXP
[3.2] C++Builder
[3.3] 言語:C++
[4] 期限:来週の月曜日まで
[5] その他の制限:C言語
0200デフォルトの名無しさん
2006/07/12(水) 21:12:23[2]入力ファイルから全ての行を読み込んで大文字に書き換えるようにしなさい
[3] 環境
[3.1] xp
[3.2] gcc 32
[3.3] Cのみ
[4] 期限:明日まで
[5] その他の制限: Cの知識は一通りありますよろしくお願いします
0201デフォルトの名無しさん
2006/07/12(水) 21:17:070202デフォルトの名無しさん
2006/07/12(水) 21:34:07ふざけてないです
よろしくお願いします
0203デフォルトの名無しさん
2006/07/12(水) 22:05:22[2] 問題文(含コード&リンク):
長めなのでアップローダーにアップさせてもらいました。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2333.zip
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン:不明
[3.3] 言語: C++
[4] 期限: ([2006年7月13日20:00まで])
[5] その他の制限: 問題文通りに作ること
どなたかご教示お願いします。
0204デフォルトの名無しさん
2006/07/12(水) 22:47:43[2] 問題文(含コード&リンク):
1, 2, 3, 4, 5, ・・・ と表示するプログラムを作成せよ。
(ただし、最初に1を表示、次にリターンキーを押せば2を、といったようにすること)
[3] 環境
[3.1] OS: Windows XP
[3.2] コンパイラ名とバージョン: BCC32
[3.3] 言語: どちらでも可
[4] 期限: 無期限
[5] その他の制限: 特になし
GetAsyncKeyState(VK_RETURN)を使ってみたんですけど、押した時間だけ表示し続けてしまいます。
1度押せば次が表示される、というようにしたいんです。
0205デフォルトの名無しさん
2006/07/12(水) 23:26:16void main(){
int num = 0;
while(1){
printf("%d", ++num);
getchar();
}
}
0206デフォルトの名無しさん
2006/07/12(水) 23:54:030207デフォルトの名無しさん
2006/07/12(水) 23:59:12面倒だから問題の概要くらいは書いといてよ
0208デフォルトの名無しさん
2006/07/13(木) 00:04:04まあ全くやる気ないんだが、linkedlist.hの2行目にバグがあるよ。
0209デフォルトの名無しさん
2006/07/13(木) 00:08:36問題の日本語が意味不明だし
一緒に書かれたソースも main の {} の対応すらままならない状況
どこをどう esp すれば問題も補完して解答も補完出来ると言うのか
0211デフォルトの名無しさん
2006/07/13(木) 00:22:32死ね
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
void main(void)
{
int i, j;
double a, s;
srand((unsigned)time(NULL));
printf("a s = ");
scanf("%lf %lf", &a, &s);
printf("a = %lf\n", a);
printf("s = %lf\n", s);
for(i = 0; i < 100; i++){
double y, w = 0.0;
for(j = 0; j < 12; j++)
w += (double)rand() / (double)RAND_MAX;
y = s * (w - 6) + a;
printf("y[%2d] = %lf\n", i, y);
}
printf("\n");
getchar();
}
0212デフォルトの名無しさん
2006/07/13(木) 00:23:32単語を入力して、その単語と同じ単語の入力回数を持ったリストを作成するというものです。
>>208
本当だ…打ち間違えてる。
ご指摘どうもです。
0213デフォルトの名無しさん
2006/07/13(木) 00:29:41入力した文字(アルファベット)をすべて小文字に直すプログラムをつくれ
ということだと思うのですがどうかよろしくおねがいします
0214デフォルトの名無しさん
2006/07/13(木) 00:38:31#include <stdlib.h>
int main(void)
{
int c;
while((c = fgetc(stdin)) != EOF)
fputc(to_lower(c));
return 0;
}
0215デフォルトの名無しさん
2006/07/13(木) 00:41:58#include <stdlib.h>
int main(void)
{
int c;
while((c = fgetc(stdin)) != EOF)
fputc(tolower(c), stdout);
return 0;
}
0216204
2006/07/13(木) 00:44:28ありがとうございます
0217デフォルトの名無しさん
2006/07/13(木) 00:48:37すいません エラーが8個くらいでるんですけど
0218デフォルトの名無しさん
2006/07/13(木) 00:57:17どんなエラー?
0219くま
2006/07/13(木) 00:58:081.正の整数nをキーボードから与えて、その数を5で割った商と余りを求めよ。
ただし、割り算を用いないで計算すること。(引き算の繰り返しを利用せよ)
2.体重(単位:kg)と身長(単位:m)を与えて(キーボードから)、
そのBMI指数を求め、体型を次のように判定せよ。(ただし、BMI=体重÷身長÷身長)
BMI: 〜18.5未満 だと 体型:痩身
BMI:18.5〜25未満 だと 体型:標準
BMI:25以上 だと 体型:肥満
0220デフォルトの名無しさん
2006/07/13(木) 01:00:36未定義のシンボルMember,first,ptr
あと四行目で式構文エラー
とかいろいろです
0221デフォルトの名無しさん
2006/07/13(木) 01:14:47[2] 問題文(含コード&リンク): 以下のプログラムをselect()を使わずに、
fork()で同様の結果を得るにはどのように書き換えればよいのでしょうか?
[3] 環境
[3.1] OS: (Windows/Cygwin)
[3.2] コンパイラ名とバージョン: (gcc 3.4)
[3.3] 言語: c言語
[4] 期限: ([2006年7月25日])
[5] その他の制限: なし。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2335.txt
0222くま
2006/07/13(木) 01:21:27問1はforを使います。
問2はif〜elseを使います。
明日の朝7時までにお願いしたいです。恐縮。。。
0223デフォルトの名無しさん
2006/07/13(木) 01:21:51まるごとソースうpしろ、ヴォケ
0224デフォルトの名無しさん
2006/07/13(木) 01:22:04http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2336.txt
0225デフォルトの名無しさん
2006/07/13(木) 01:25:30http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2337.txt
0226デフォルトの名無しさん
2006/07/13(木) 01:38:48レス番間違えてない?誤爆?
022783&&104&&177
2006/07/13(木) 02:58:58求めていた結果が出てきました。
本当にありがとうございました。
0228デフォルトの名無しさん
2006/07/13(木) 03:39:59[2] 問題文:日本の通貨体型(500,100,50,10,5,1)で、与えられたおつりの金額に対して貨幣の総数が最少になるようにそれぞれの貨幣の枚数を計算するプログラムを作成せよ。
//プログラムについて
・プログラム名はchange.c
・任意の値はfopen関数で読み出せし、そのファイルをデータファイルと呼ぶ事にする。データファイル名はchange1.txt
----------------------
6
1 5 10 50 100 500
40
75
99
0
----------------------
//↑これがchange1.txtの中身。1行目は貨幣の種類の数、2行目は貨幣の種類、3〜5行目は具体的な例で0が入力されれば終了。
・実行結果
40yen,4mai,(10*4)
75yen,4mai,(50*1)(10*2)(5*1)
99yen,10mai,(50*1)(10*4)(5*1)(1*4)
[3] 環境
[3.1] OS: (redhatlinux)
[3.2] コンパイラ名とバージョン: (gcc 3.4)
[3.3] 言語: C言語
[4] 期限: ([2006年7月15日])
このほかにも3題あるのですが、ところどころができず本当に困っています。よろしくお願いします。
0229デフォルトの名無しさん
2006/07/13(木) 06:20:45環境はwinでBCCでやったので動くかどうかわからないが
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2339.txt
0230デフォルトの名無しさん
2006/07/13(木) 09:50:39本当にありがとうございます。今Macintosh上でgccかけたら通りました。
自己考察してみたいと思います。
申し訳ないのですが、ほかの問題も教えていただけないでしょうか?
今解いていただいたのが、課題1です。
特に課題4はどうやっていいかすらわかりません。
よろしくお願いします。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2340.txt
0231デフォルトの名無しさん
2006/07/13(木) 11:43:38よろしくね。
http://www2.accsnet.ne.jp/~composer/index.html
暇なら見てね。
0232デフォルトの名無しさん
2006/07/13(木) 11:51:36どなたかできる方いますか?
0233お願いします
2006/07/13(木) 12:00:15[2] 問題文: ポインタを使って九九の表を作ってください。
2つ配列を用意します。それぞれの要素をポインタを使って指し示し、積を計算します。
その結果を表示します。例えば配列は下のようにしてみましょう。
int a[9] = {1, 2, 3, 4, 5, 6, 7, 8, 9}
int b[9] = {1, 2, 3, 4, 5, 6, 7, 8, 9}
heikin.cでは、iを0から4まで増やし(ポインタを配列上で1つずつ移していき)ポインタが指し示している
配列の値を使いました。このプログラムでは、ポインタを移す操作はheikin.cと同じで、
繰り返しを2重にします(iとjを用意し、それぞれ0から8まで増やします)
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: ([2006年7月15日00:00まで] または [無期限] のいずれか)
[5] その他の制限:以前作ったプログラムheikin.cを修正し作成するとよいでしょう。
0234お願いします
2006/07/13(木) 12:01:36/* 2つの配列の各要素の平均値を求める, heikin.c */
#include <stdio.h>
main(){
int a[5] = {50, 80, 20, 30, 10};
int b[5] = {20, 40, 30, 20, 50};
int i, *p[2], ave;
p[0] = a;
p[1] = b;
for (i=0; i<5; i++) {
ave = (*(p[0]+i) + *(p[1]+i)) / 2;
printf("average of %d th pair = %d\n", i, ave);
}
}
0235お願いします
2006/07/13(木) 12:04:14http://sneg4vip.com/ameloda/1152/759813.txt
よろしくお願いします
0236デフォルトの名無しさん
2006/07/13(木) 12:19:360237デフォルトの名無しさん
2006/07/13(木) 12:48:26http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2341.txt
0239デフォルトの名無しさん
2006/07/13(木) 17:27:15みんな今週いっぱいで夏休みなんか
ここのおじさん(おばさん)たちは忙しいから
宿題ラッシュになると対応し切れないんだよ
今度からはもうちょっと早めに依頼することを
学んでください
0240デフォルトの名無しさん
2006/07/13(木) 17:37:12おっさん世代が多いとは思えん、せいぜい20代が多いんじゃね?
あるいは、大学3年以上か、大学院生とか?
トーマス氏は30を超えているだろうけど
0241デフォルトの名無しさん
2006/07/13(木) 17:50:250242デフォルトの名無しさん
NGNG0243デフォルトの名無しさん
2006/07/13(木) 19:06:280244デフォルトの名無しさん
2006/07/13(木) 19:12:410245デフォルトの名無しさん
2006/07/13(木) 20:29:54のプログラムを自分で作ったファイルを読み込んで
すべて小文字にしたいんですけど
どうかよろしくおねがいします
[1] 数学演習
[3] 環境
[3.1] xp
[3.2] gcc 32
[3.3] Cのみ
[4] 期限:明日まで
[5] その他の制限: Cの知識は一通りありますよろしくお願いします
215のプログラム
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int c;
while((c = fgetc(stdin)) != EOF)
fputc(tolower(c), stdout);
return 0;
}
0246デフォルトの名無しさん
2006/07/13(木) 20:33:10っリダイレクト
0247デフォルトの名無しさん
2006/07/13(木) 20:44:23すいませんリダイレクトとはC言語においてどのようにやるのでしょうか?
0248デフォルトの名無しさん
2006/07/13(木) 20:51:360249デフォルトの名無しさん
2006/07/13(木) 21:09:43書き換えたらいんでしょうか
infileやらoutfileを使うらしいんですけど
0250デフォルトの名無しさん
2006/07/13(木) 22:48:03[2] 問題文(含コード&リンク):2つの空リスト L1, L2 を用意する.C-d が押されるまでに入力した整数を順次
•L1の先頭に挿入
•L2の適切な位置に挿入(適切な位置とは挿入後のリストが要素の値の昇順になるような位置)
とし,C-d が押された後,できた二つのリストを表示するプログラムを作成せよ.
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2006年7月14日(金)8:40まで
[5] その他の制限:「ポインタと構造体」という単元で出された課題です。
よろしくおねがいします。
0251デフォルトの名無しさん
2006/07/13(木) 23:00:59#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int c;
FILE *fin, *fout;
if ((fin = fopen("a.txt", "r")) != NULL
&& (fout = fopen("a.txt", "r+")) != NULL)
while((c = fgetc(fin)) != EOF)
fputc(tolower(c), fout);
fclose(fin);
fclose(fout);
}
0252デフォルトの名無しさん
2006/07/13(木) 23:02:57ありがとうございます
0253230
2006/07/13(木) 23:51:04[1] 授業単元:応用Cプログラミング
[2] 問題文(含コード&リンク):長いのでWEB上にのせます。
[3] 環境 Linux gcc 3.4 C
[4] 期限: 7/15
よろしくお願いします。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2340.txt
0254デフォルトの名無しさん
2006/07/14(金) 05:00:38[2] 問題文(含コード&リンク):
1〜15位までの順位を人a〜eと教科Mathematics,Physics,Englishと配列する
おそらくこんな感じ
char kamoku[3][12] = {"Mathematics", "Physics", "English"};
char name[5] = {'a', 'b', 'c', 'd', 'e'};
int tokuten[3][5] = {{12, 1, 14, 8, 4},{11, 3, 5, 10, 13},{2, 15, 9, 7, 6}};
調べたい順位を入力して第何位は誰で教科は何と表示されるようにする
ただし2重ループを使うこと
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限: 最終期限が来週の水曜
[5] その他の制限:タイトルは確か配列とポインタだったかと
うん、問題用紙無くしてうろ覚えなんだ(´・ω・`)
自分の説明でここの住民に伝わるかもわからないんだ
0255デフォルトの名無しさん
2006/07/14(金) 07:01:28やりたくなるような問題の出し方考えてみてくれ
0256デフォルトの名無しさん
2006/07/14(金) 13:54:03#include <stdio.h>
void strout(char a[]);
main(){
strout("ABCabc123");
}
void strout(char a[]){
int i;
i=0;
while(a[i]){
a[i]=toupper(a[i]);
putchar(a[i]);
++i;
}
putchar('\n');
}
するとcore dumpするんですけど、なぜですか?
コンパイラはCygwinのgccです。
0257デフォルトの名無しさん
2006/07/14(金) 13:57:36文字列リテラルを書き換えようとしているから。
すれ違い。
0258デフォルトの名無しさん
2006/07/14(金) 14:02:31はにゃ?でも
#include <stdio.h>
void strout(char a[]);
main(){
char st[10]="ABCabc123";
strout(st);
}
void strout(char a[]){
int i;
i=0;
while(a[i]){
a[i]=toupper(a[i]);
putchar(a[i]);
++i;
}
putchar('\n');
}
とすると正常に出力されるよ?
これも文字列リテラルst[0]を書き換えてるんじゃないの?
0259デフォルトの名無しさん
NGNGstはchar型の配列であってリテラルではない。
0260デフォルトの名無しさん
2006/07/14(金) 14:04:22char st[10]="ABCabc123";
これはchar配列の初期化であって、文字列リテラルは無関係。
0261デフォルトの名無しさん
2006/07/14(金) 14:16:20ありがとうございました。調べました文字列リテラル。
*stとst[]は違うって解釈でいい?間違ってそう・・・
苦手だな〜文字列。初心者ですみません。
0262デフォルトの名無しさん
NGNG根本的に間違ってる。*stとst[]の違いはリテラルとは一切何の関係もない。
0263デフォルトの名無しさん
2006/07/14(金) 14:19:13そうではなくて、文字配列をいじる関数で、
文字列定数をいじろうとして怒られているのだよ。
0264デフォルトの名無しさん
2006/07/14(金) 14:30:08char *st = "ABC";
char st[] = "ABC";
0265261
2006/07/14(金) 14:38:11ttp://www9.plala.or.jp/sgwr-t/c/sec10-3.html
で、>>263こんなことをしてみました。
main(){
int sta="ABCDE";
char stb[10]="ABCDE";
printf("%d\n",sta);
printf("%d\n",stb[0]);
}
コンパイルしたら警告されるけど・・・で答えが
4202496
65
でした。これがちがうって解釈でいい?
俺C言語向いてない?
0266デフォルトの名無しさん
2006/07/14(金) 15:07:520267デフォルトの名無しさん
NGNG型が違うから(同じ型の)リテラルで初期化しても値の入り方が違うのは当然であって、
型の違いとリテラルとの直接的な関係はない。
0268デフォルトの名無しさん
2006/07/14(金) 17:10:41main(){
char s[10];
char *p;
strcpy(s,"ABC");
while(*p){
*p=*p+1;
++p;
}
printf("%s",s);
}
って例文が載ってるんだけど、作ってみるとcore dumpするんだけど、
++p;
っておかしいよな?
こういう書き方できる?
0269デフォルトの名無しさん
2006/07/14(金) 17:12:020270デフォルトの名無しさん
2006/07/14(金) 17:16:040271デフォルトの名無しさん
2006/07/14(金) 17:19:010272デフォルトの名無しさん
2006/07/14(金) 17:26:410273デフォルトの名無しさん
2006/07/14(金) 17:34:420274デフォルトの名無しさん
2006/07/14(金) 17:47:090275デフォルトの名無しさん
2006/07/14(金) 17:56:560276デフォルトの名無しさん
2006/07/14(金) 17:57:21スレ違い
0277デフォルトの名無しさん
2006/07/14(金) 23:21:590278デフォルトの名無しさん
2006/07/15(土) 01:39:27char s[10] = "ABC";
char *p = s;
while(*p)
(*++p)++;
printf("%s",s);
}
0279デフォルトの名無しさん
2006/07/15(土) 08:41:07ってのは、4bytes のメモリをスタックに確保して、
その中身を 'A' 'B' 'C' '\0' で初期化してる。
s 単体だと当然その先頭ポインタだから、スタック内を指してる。
実体がスタックにあるから書き換え可能。
char* s = "ABC";
だと、リテラル専用の領域(書き換え禁止なメモリ領域)にある
'A' 'B' 'C' '\0' な並びの先頭ポインタを引っ張ってきてるだけ。
ポインタ s の指す先は書き換え禁止な領域なので、
s[0] = 'D'; なんてやると一般保護違反になる。
0280デフォルトの名無しさん
2006/07/15(土) 09:34:09微妙に間違いを孕んだ上にスレ違いだ。
0281254
2006/07/15(土) 12:00:43char kamoku[3][12] = {"Mathematics", "Physics", "English"};
char name[5] = {'a', 'b', 'c', 'd', 'e'};
int junni[3][5] = {{12, 1, 14, 8, 4},{11, 3, 5, 10, 13},{2, 15, 9, 7, 6}};
(2)scanfで順位を入力し、("第%d位は%cで教科は%s")となるように表示させる。
ヒント:for文を2回使用して縦と横をループさせる
>>255を見て書き直したのはいいのですがほぼ変わってない気がします。
あと一応自力で考えたところまでupしておきます。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2363.txt
根本から間違えてる気がします。
0282デフォルトの名無しさん
2006/07/15(土) 12:06:530283デフォルトの名無しさん
2006/07/15(土) 13:14:49悪いが全然問題の意味がわからない
0284254
2006/07/15(土) 13:14:59S1〜S5の5人の学生が、数学(Mathematics)、物理(Physics)、
英語(English)のテストを受験した。
得点の高いものから順位をつけた結果を表1に示す。
この結果に対して、任意の成績順位を入力した際に、
誰のどの教科であるかを出力するプログラムを作成したい。
課題A
表1の結果を3*5(もしくは5*3)の要素を持つ2次元配列に定義し、
キーボードから1〜15の範囲で任意の数所を入力した際に、
その順位の科目名と氏名を「第○位は△△の□□です」のように
出力するプログラムを作成せよ。ただし、科目名と氏名はそれぞれ
文字列の配列の要素とし、該当する順位に応じてそれぞれの
文字列配列から参照して表示すること。
ヒント:2重ループを用いて2次元配列の全要素を総当りでチェックする。
課題B
表2は、順位の重複を許可し、同じ得点の場合に同順位として示したものである。
課題Aのプログラムに対して、同じ順位が複数存在する場合にはそのすべてを表示し、
また、該当するものが存在しない場合には「存在しない」と表示するよう修正せよ。
ヒント:該当者が居る場合にだけ値が1となるような変数を利用する。
表 pass C/C++
http://www.imgup.org/iup233474.jpg.html
0285デフォルトの名無しさん
2006/07/15(土) 13:32:28#include<stdio.h>
int main(void){
char kamoku[3][12] = {"Mathematics", "Physics", "English"};
char name[5][3] = {"S1", "S2", "S3", "S4", "S5"};
int tokuten[3][5] = {{12, 1, 14, 8, 4}, {11, 3, 5, 10, 13}, {2, 15, 9, 7, 6}};
int i, k, num = 0;
printf("1〜15の数字入力:"); scanf("%d", &num);
if(num<1 || num>15){
printf("1〜15だけです。");
return 0;
}
for(i=0; i<3; i++){
for(k=0; k<5; k++){
if(num == tokuten[i][k]){
printf("第%d位は%sの%sです\n", num, name[k], kamoku[i]);
}
}
}
return 0;
}
最初のだけやったもう出かけるから後は知らない
0286デフォルトの名無しさん
2006/07/15(土) 13:49:10課題Bは足りない頭を絞ってなんとかします。
なんとかならなかったらまた来ます。
0287デフォルトの名無しさん
2006/07/15(土) 13:54:44日本の通貨体型(500,100,50,10,5,1)で、与えられたおつりの金額に対して貨幣の総数が最少になるようにそれぞれの貨幣の枚数を計算するプログラムを作成せよ。
*プログラムについて
・プログラム名はchange.c
・任意の値はfopen関数で読み出せし、そのファイルをデータファイルと呼ぶ事にする。データファイル名はchange1.txt
----------------------
6
1 5 10 50 100 500
40
75
99
0
----------------------
//↑これがchange1.txtの中身。1行目は貨幣の種類の数、2行目は貨幣の種類、3〜5行目は具体的な例で0が入力されれば終了。
・実行結果
40yen,4mai,(10*4)
75yen,4mai,(50*1)(10*2)(5*1)
99yen,10mai,(50*1)(10*4)(5*1)(1*4)
としたいのですが、うまく行きません。どこがおかしいのか教えてください。
おねがいします。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2365.txt
0288デフォルトの名無しさん
2006/07/15(土) 16:11:24>>228と問題同じじゃないの?回答もあるよ?
どこがおかしいかと言えば
・whileで無限ループしている("読み込んだ値"が0だったらbreakする)
・1円から数えている(大きい硬貨から数えるべき)
0289デフォルトの名無しさん
2006/07/15(土) 17:46:45返信ありがとうございます。自分なりにもう一度作ってみようと思ってるんですがなかなかうまく行かなくて・・・
無限ループを使って0を読み取るまでの間繰り返そうと思ってるんですが、これのどこが間違っているのかを見つける事ができません。また、バブルソートを使って並べ替えるようにしたいのですが、それもいまいちわかりません。どうしたらよいのでしょうか。
0290デフォルトの名無しさん
2006/07/15(土) 18:14:07何を?
0291デフォルトの名無しさん
2006/07/15(土) 18:34:44わかりにくい書き方ですみません。定義されるお金を大きい順に並べ替えたいんです。具体的に今回は1 5 10 50 100 500といった値です。たまたま昇順になってますが、たまたまで適当に並んだ場合に対応できるものにしたいです。
0292デフォルトの名無しさん
2006/07/15(土) 18:55:10ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=28082
0293デフォルトの名無しさん
2006/07/15(土) 19:03:06http://news19.2ch.net/test/read.cgi/newsplus/1152948566/
おまいら、まさか・・・↑じゃないよな?
0294デフォルトの名無しさん
2006/07/15(土) 19:15:470295デフォルトの名無しさん
2006/07/15(土) 19:51:23ありがとうございます。せっかく書いていただいたのですが、初心者故に完璧なる理解が困難であります。失礼かつ恐縮ですが、私の書いた文を訂正する形では無理でしょうか。
0296デフォルトの名無しさん
2006/07/15(土) 20:26:33改 行
0297デフォルトの名無しさん
2006/07/15(土) 21:46:38それはお前の頭が悪いだけ
0298デフォルトの名無しさん
2006/07/15(土) 21:49:480299デフォルトの名無しさん
2006/07/15(土) 21:55:42電卓でやったけど答えは 11ですた
0300デフォルトの名無しさん
2006/07/15(土) 22:44:56[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2366.txt
[3] 環境
[3.1] OS: Windows2000
[3.2] コンパイラ名とバージョン: Bcc5.5
[3.3] 言語: C
[4] 期限: 7月18日
[5] その他の制限:
今までにやった文字列の設定方法
・配列の要素に代入
・strcpy, strncpy, strcat
・sprintf
よろしくお願いします
03011
2006/07/15(土) 23:15:14[2] 問題文(含コード&リンク):
#include <stdio.h> int main(void)
{ char stack[8];
int stackPointer = -1;
char data; int n;
char str[16];
while(1) {
printf("Enter a data");
scanf("%s", str);
data = str[0];
if ( data >='0' && data <='9' ) {
if (stackPointer >= 7) {puts("Stack is full"); continue; }
stackPointer++;
stack[ stackPointer ] = data;
}
else if ( data=='-' ) {
if (stackPointer < 0) {puts("Stack is empty"); continue; }
printf(" %c\n",stack[ stackPointer ]);
stackPointer--;
}
else if ( data=='q' ) {
break;
}
for(n=0; n<=stackPointer; n++)
printf("%c ",stack[n]); puts("");
}
}
03022
2006/07/15(土) 23:16:09例)
abc (enter)
abc
def (enter)
abc def
- (enter)
data = def
abc
quit (enter)
でプログラム終了( strcmp を使う )
というプログラムを作る
[3] 環境
[3.1] OS: (Windows/Linux/等々) : Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C
[4] 期限:7月18日
[5] その他の制限: 特になし
長くてすいません。よろしくおねがいします。
0303デフォルトの名無しさん
2006/07/16(日) 02:12:55#include <string.h>
int main(void){
char stack[8][1024], str[1024];
int n, stackPointer = -1;
while(1){
scanf("%1023s[^\n]", str);
if(strlen(str) == 0) continue;
if(strcmp(str, "quit") == 0) break;
if(strcmp(str, "-") == 0){
if(stackPointer < 0){ puts("Stack is empty"); continue;}
printf("data = %s\n",stack[stackPointer]);
stackPointer--;
}
else{
if(stackPointer >= 7){ puts("Stack is full"); continue;}
stackPointer++;
strncpy(stack[stackPointer], str, sizeof(stack[stackPointer]));
}
for(n=0; n<=stackPointer; n++)
printf("%s ", stack[n]);
puts("");
}
return 0;
}
0304デフォルトの名無しさん
2006/07/16(日) 03:07:25http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2368.txt
初級者の俺が練習がてらにやってみた
間違ってても反省しない
面倒くさいのでsscanf使った(>_<)
0305デフォルトの名無しさん
2006/07/16(日) 04:05:58数箇所突っ込み所があるのだけれど間違っているわけではないから指摘するのは無粋なので遠慮しておくね。
0306デフォルトの名無しさん
2006/07/16(日) 06:55:350307デフォルトの名無しさん
2006/07/16(日) 08:06:13言うくらいならソースを出せ、ってのは過去に散々出た(ry
0308デフォルトの名無しさん
2006/07/16(日) 08:34:21いつも出してますが何か?
0309デフォルトの名無しさん
2006/07/16(日) 09:04:04他人のソースにけちをつけるのはすれ違いだということが重要。
0310デフォルトの名無しさん
2006/07/16(日) 12:11:09*が優先
0311デフォルトの名無しさん
2006/07/16(日) 12:26:19お前もぐちゃぐちゃ言わずにソース出せ
0312デフォルトの名無しさん
2006/07/16(日) 12:27:43あのねぇ、他人に指摘してもらうというのは、それが普通の環境に居ない人にとっては、
とても貴重なチャンスなんだよ。
「けちをつけられた」なんて考えずに「指摘してくれてありがとう」くらいになれ。
0313デフォルトの名無しさん
2006/07/16(日) 12:43:25それは認めるし、個人的には俺の解答の問題を指摘してもらうのは嬉しいが、
それはこのスレの趣旨にそぐわない。
0314デフォルトの名無しさん
2006/07/16(日) 12:51:26別に毎回毎回誰かが粘着して、細かいとこまでぐちぐち言ってるわけじゃないから、
偶の指摘ぐらいいいんじゃないの?
まあ、指摘された奴が「けちつけられた」と暴れる可能性もあるがw
まぁそうなったらそうなったで、その後のテンプレで「指摘禁止」にすりゃいい。
0315デフォルトの名無しさん
2006/07/16(日) 12:54:40するくらいなら、コードの内容についてあれこれ言う方が余程生産的
だと思うが。
0316304
2006/07/16(日) 13:09:07制限を気にしすぎて汚いソースになっちゃいました
反省してます
0317デフォルトの名無しさん
2006/07/16(日) 13:11:11ヒント:日曜日
つか、おまいさんのせいじゃないので気にすんな
0318デフォルトの名無しさん
2006/07/16(日) 13:11:52細かく見てないけど、決して汚いコードなんかじゃないよ。
俺的には、どちらかというと、好きな部類に入る。
0319デフォルトの名無しさん
2006/07/16(日) 13:12:32これでいいかな?
ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=28083
0320デフォルトの名無しさん
2006/07/16(日) 13:15:08scanf使うとか、エラーチェックしないとか、関数分割しないとか、変数名をダサくしたりとか。
0321デフォルトの名無しさん
2006/07/16(日) 13:20:33指摘したければ指摘すればいい。俺はしないけど。
0322デフォルトの名無しさん
2006/07/16(日) 13:29:40ありがとうございます。すみません。
ちなみに自分でもやってみたのですが、なぜかソートができません。
バブルソートから単純選択法によるソートを行ったのですが、それでも駄目でした。
検証していただいたらと思います。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2369.txt
0323デフォルトの名無しさん
2006/07/16(日) 13:37:240324デフォルトの名無しさん
2006/07/16(日) 13:44:32「いつもの彼」って誰だよ…
俺はいつのまにか有名人にでもなったか?
0325デフォルトの名無しさん
2006/07/16(日) 13:45:41「いつもの彼」さん
お疲れ様です!
0326デフォルトの名無しさん
2006/07/16(日) 13:46:47いろいろとおかしい。
BCCでやったらエラーがいっぱい出てくる。
int ssort(int n,int a[])
{
int i,j,min,temp;
for (i=0;i < n-1;i++){
min=i;
for (j=i+1;j < n;j++){
if (a[j] < a[min]){
min=j;
}
}
temp=a[min];
a[min]=a[i];
a[i]=temp;
}
return;
}
0327デフォルトの名無しさん
2006/07/16(日) 13:47:34「いつもの彼」も同じようなこと言ってるからな。
違うんなら、お前は奴と同じレベルだってことだ。
0328デフォルトの名無しさん
2006/07/16(日) 13:48:000329デフォルトの名無しさん
2006/07/16(日) 13:49:490331デフォルトの名無しさん
2006/07/16(日) 14:04:44#include<stdio.h>
int main(void){
char kamoku[3][12] = {"Mathematics", "Physics", "English"};
char name[5][3] = {"S1", "S2", "S3", "S4", "S5"};
int tokuten[3][5] = {{11, 1, 14, 7, 3}, {11, 3, 3, 10, 13}, {2, 15, 9, 7, 6}};
int i, k, num = 0, flg = 0;
printf("1〜15の数字入力:"); scanf("%d", &num);
if(num<1 || num>15){
printf("1〜15だけです。");
return 0;
}
for(i=0; i<3; i++){
for(k=0; k<5; k++){
if(num == tokuten[i][k]){
printf("第%d位は%sの%sです\n", num, name[k], kamoku[i]);
flg = 1;
}
}
}
if(!flg){
printf("第%d位は存在しません\n", num);
}
return 0;
}
24時間ぶりに書き込もうか
0332284
2006/07/16(日) 14:05:05int tokuten[3][5] = {{11, 1, 14, 7, 3}, {11, 3, 3, 10, 13}, {2, 15, 9, 7, 6}};
0333デフォルトの名無しさん
2006/07/16(日) 14:05:48返信ありがとうございます。319さんに書いてもらったソースが理解できたので、そちらを参考にしたいと思います。
ここで、お金の定義に25円玉と20円玉を加えても、40円から44円の間で最少にする事ができる用にするには、どうすればよいのでしょうか?
0334デフォルトの名無しさん
2006/07/16(日) 14:07:21次にもし上げるんなら、passなんかつけちゃ駄目だぞ。
0335デフォルトの名無しさん
2006/07/16(日) 14:14:31ごめ、ちょっと意味が分からない。
ひょっとして、25,20円を加えたら25,20も計算されちゃうって言うこと?
0336284
2006/07/16(日) 14:17:09中身を自分なりに解釈してレポート仕上げてきます。
>>334
ご指摘ありがとうございます。
もし次回があったときのことを考えて覚えておきます。
chirashi("夏休みにCの理解深めます");
0337デフォルトの名無しさん
2006/07/16(日) 14:19:15今、意味が分かった。
無理
0338デフォルトの名無しさん
2006/07/16(日) 14:22:03わかりにくい文章すみません(>_<。)おっしゃる通りで、25円玉20円玉といったお金があるとしたらって感じです。1円玉5円玉10円玉20円玉25円玉50円玉100円玉500円玉というお金にchange1.txtを書き直すって意味です。
そうしたら40〜44円の間、25円玉を用いると最少じゃなくなってしまうから、その間は20円以下で考えるようなソースにしたいんです。
ちょっと、またわかりにくいかもしれませんが、よろしくお願いします。
0339デフォルトの名無しさん
2006/07/16(日) 14:24:44過去スレに同じ(ような)問題があったぞ。探してみ。
0340デフォルトの名無しさん
2006/07/16(日) 14:31:360341デフォルトの名無しさん
2006/07/16(日) 14:34:27お前に命令される筋合いは無い
0342デフォルトの名無しさん
2006/07/16(日) 14:35:030343デフォルトの名無しさん
2006/07/16(日) 14:38:240344デフォルトの名無しさん
2006/07/16(日) 14:40:410345デフォルトの名無しさん
2006/07/16(日) 14:40:57すみません、そういうつもりはありません。ただ次の課題がそういう問題なのにたいし、自分で試してもなかなかできないからお聞きしました。
>>341〜343
えっと、、、私が書いたのではございません。他人によって書かれた物です。
0346デフォルトの名無しさん
2006/07/16(日) 14:43:17再起関数を使って総当りするのが一番簡単な方法だ。
0347デフォルトの名無しさん
2006/07/16(日) 14:50:31はい。最終的にはそう持っていきたいです。初心者ですが、解きたいので技術料を払うので教えていただけませんか?
0348デフォルトの名無しさん
2006/07/16(日) 15:02:45お前の技術力を上げるスレではない。
0349デフォルトの名無しさん
2006/07/16(日) 15:08:05すみません。板違いな発言を失礼しました。撤回します。もうしばらく自分でがんばってみます。わからなければ、またよろしくお願いします。
0350デフォルトの名無しさん
2006/07/16(日) 15:10:310351デフォルトの名無しさん
2006/07/16(日) 15:31:44自分なりに探してみましたが、総当りするものでなかなかヒントになる物が見つかりませんでした。これは全探索って形でやればよいのですよね?
0352デフォルトの名無しさん
2006/07/16(日) 15:47:26お前がいつもの煽り厨よりもさらに低レベルだというのは言うまでもない。
とにかく、ごちゃごちゃとうるさい。指摘するくらいなら指摘を具現化したソースを黙って出せってことだ
いちゃもんしかつけない奴がうざい。
0353デフォルトの名無しさん
2006/07/16(日) 15:58:56まあ「俺様のコードにけちをつけるな」なスタンスの人には、何を言っても無駄なんだろうけど。
0354デフォルトの名無しさん
2006/07/16(日) 16:00:38想像できてれば「いちゃもんしかつけない奴がうざい。」なんてことは言わないはずなんだが。
0355デフォルトの名無しさん
2006/07/16(日) 16:04:39http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2370.txt
0356デフォルトの名無しさん
2006/07/16(日) 16:04:460357デフォルトの名無しさん
2006/07/16(日) 16:35:39(^3^) エェー
0358デフォルトの名無しさん
2006/07/16(日) 16:48:56ライフゲームの育毛バージョン作って
0359デフォルトの名無しさん
2006/07/16(日) 17:10:57> 指摘することと別解をだすことは違うよ
そうじゃなくて、指摘部分の間違いを修正して出しゃ言葉よりもストレートに伝わるんじゃね?
まあここでソースを出せ!だのお前が出せだの言っていない第三者が議論しても無駄だが
0360デフォルトの名無しさん
2006/07/16(日) 17:57:35いや、指摘したほうがストレートに伝わるでしょ。
ソースレビューの基本は、場所を特定することと、問題点を指摘すること。
何をそんなにこだわってるの?
0361デフォルトの名無しさん
2006/07/16(日) 18:07:130362デフォルトの名無しさん
2006/07/16(日) 18:14:11ぐだぐだ言うなら、修正したコードを出せってのはお子様の意見。
まあ指摘した奴がコードも書けないのに指摘してるって思いたいんだろうけど。
0363デフォルトの名無しさん
2006/07/16(日) 18:19:33俺様のコードにいちゃもんつけるなというのは良く分かる。
0364デフォルトの名無しさん
2006/07/16(日) 18:33:42[2] 問題文:
(ニュートン補間の章)
下記の表とアルゴリズムA・Bを使って次のプログラムを作成する。
問1)誤差関数の表においてx0=1.0、x1=1.1、x2=1.2の3点の関数値を使って
erf(1.14)の値を推測する。ただしアルゴリズムAとBを用いる。
問2)誤差関数の表においてx0=1.0、x1=1.1、x2=1.2、x3=1.3の4点の関数値を使って
erf(1.14)の値を推測する。ただしアルゴリズムAとBを用いる
[3] 環境
[3.1] LINUX
[3.2] gcc
[3.3] 言語:C
[4] 期限: 7月17日
[5] その他の制限: 問題文長くてすみません。あとなるべく初歩的な知識でも理解できるようなのだと大助かりです。
問1、問2と2つもありますがよろしくお願いします
0365デフォルトの名無しさん
2006/07/16(日) 18:34:54x erf(x)
1.0 0.84270079294971
1.1 0.88020506957408
1.2 0.91031397822964
1.3 0.93400794494065
1.4 0.95228511976265
1.5 0.96610514647531
1.6 0.97634838334464
1.7 0.98379045859077
1.8 0.98909050163573
1.9 0.99279042923526
2.0 0.99532226501895
アルゴリズムA(差分商の計算)
for(i=0,1,・・・,n){
di ← f(xi)
}
for(k=1,2,・・・,n){
for(i=0,1,・・・,n−k){
di←( di+1 − di) / (xi+k − xi )
}
}
アルゴリズムB(v = pn (α)の計算)
v ← d0
for(i=1,2,・・・,n)
v←(α - xi ) v + di
表と使用するアルゴリズムA・Bです
0366デフォルトの名無しさん
2006/07/16(日) 19:18:570367デフォルトの名無しさん
2006/07/16(日) 20:21:08[2] 問題文(含コード&リンク):ttp://sund1.sakura.ne.jp/uploader/source/up16554.zip
(ファイルが4つあるのでzipですみません)
[3] 環境
[3.1] OS:Linux
[3.2]コンパイラ:gcc
[3.3] 言語: C
[4]期限:7月18日午前9時
[5] その他の制限: あらかじめ決められている枠組みを変えることはできません。指定された関数の中だけを作ってください。
問題説明:
問題は線形リスト探索(単方向)を完成させろというものです。
分割されている4つのファイルのうち、liststructure.c.txtにある関数search(探索)、insert(挿入)、delete(削除)
の中身を作成することで線形リストのプログラムを完成させるものです。
*あらかじめ書かれている、枠組みを変えることはできないです。その中で動くように作る事が条件になっています
よろしくお願いしまする。
↓参考に自分で作ってみた物です
ttp://sund1.sakura.ne.jp/uploader/source/up16557.txt
ですがバグが出てうまくいかないのです。
0368デフォルトの名無しさん
2006/07/17(月) 01:23:11[2] 問題文(含コード&リンク):
このプログラム(http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2374.txt)
がの一文ごとに何をやっているのかがわかるようにコメントを付けること。
また、関数ごとに何をする関数か役割を書き、引数と返戻値は何かを明らかにすること。
[3] 環境
[3.1] OS: (WindowsXP)
[3.2] コンパイラ名とバージョン: (borland C++)
[3.3] 言語: (C言語)
[4] 期限: ([2005年7月18日まで] )
[5] その他の制限:とくに無し
0369デフォルトの名無しさん
2006/07/17(月) 02:08:17[2] 問題文n×nの係数行列Aと右辺ベクトルbを適当に与えたとき、Ax=bの解xをLU分解により(AをLU分解して)
求めるプログラムを作る。そのプログラムにおいて、n=4、
|2 2 -6 3| |-0.5|
A= |1 -4 2 2 | b=| 8 |
|2 1 -3 -5| | -9 |
|1 -2 1 2 | | 6 |
としたときの数値解を求め、出力する。なお、プログラムでは変数mを用いる。
ヒント:解はx4=1.5、x3=1、x2=-0.5、x1=1
[3] 環境
[3.1] LINUX
[3.2] gcc
[3.3] 言語: C
[4] 期限: 7月20日
[5] その他の制限:
問題文分かりにくくてすみません。よろしくお願いします
0370369
2006/07/17(月) 02:09:470371デフォルトの名無しさん
2006/07/17(月) 02:30:21それ66代目で答えうpされてたよ。多分まだ残ってると思う。
0372デフォルトの名無しさん
2006/07/17(月) 02:34:05C/C++の宿題を片付けます 66代目
http://pc8.2ch.net/test/read.cgi/tech/1151477344/690
0373369
2006/07/17(月) 02:45:2169代目を見つけて「あ、新しいのこっちだったのか」と思って・・・。
0374368
2006/07/17(月) 04:14:32授業をもっとちゃんと受ければよかったと
後悔しながら自分でやる事にしました。
どうしても分からない場合はピンポイントで質問しようと思うので
その時はご教授願います。
0375デフォルトの名無しさん
2006/07/18(火) 16:45:390376デフォルトの名無しさん
2006/07/18(火) 19:26:450377デフォルトの名無しさん
2006/07/18(火) 19:37:520378デフォルトの名無しさん
2006/07/18(火) 20:59:370379デフォルトの名無しさん
2006/07/19(水) 23:45:55[2] 1個1000円の商品があります。この商品には、まとめて買うと割引があります。
割引率は10個未満=なし、10個以上100個未満=1割引、100個以上1000個未満=2割引、1000個以上はすべて3割引き
購入個数を与えると、購入金額を求めるプログラム。購入個数は700個とする。
pro1.とpro2.(while文とfor文)で作成した。各自でどちらを採用するか決め、理由を200時以内に適切に述べよ。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2407.txt
[3] 環境
[3.1] Windows
[3.2] VC 6.0
[3.3] 言語:C言語
[4] 無期限
[5] その他の制限:なし
whileもforもやっている個とは同じだし、違いや長所短所が見つけられません。宜しくお願いします。
0380デフォルトの名無しさん
2006/07/20(木) 00:36:180381デフォルトの名無しさん
2006/07/20(木) 01:22:540382デフォルトの名無しさん
2006/07/20(木) 02:26:48ハァ?
100個以上1000個未満=2割引 ならpro2だろ
0383デフォルトの名無しさん
2006/07/20(木) 02:31:230384デフォルトの名無しさん
2006/07/20(木) 02:44:320385デフォルトの名無しさん
2006/07/20(木) 02:52:460386デフォルトの名無しさん
2006/07/20(木) 03:00:580387デフォルトの名無しさん
2006/07/20(木) 12:08:55[2] ttp://www.s.kyushu-u.ac.jp/~z6hs01in/k_and_r/chapter-2/chapter-2.html
解答していただきたいのはページ中段のプログラム22−3です。
[3] 環境
[3.1] windowsXP
[3.2] gcc
[3.3] Cのみ
[4] 7月31日まで
[5] 特にありませんが、基礎的な内容で解いていただければ幸いです。
よろしくお願いします。
0388デフォルトの名無しさん
2006/07/20(木) 12:58:10既出
0389デフォルトの名無しさん
2006/07/20(木) 13:28:00失礼ですがどこにありますか?
0390デフォルトの名無しさん
2006/07/20(木) 14:51:58[2] 問題文:
整数の配列をパラメタとして、配列の中で最大と最小の数を求める関数を定義する。
この関数をmainとは異なるファイル(minmax.cpp)で定義して作成する。
この関数のプロトタイプ宣言は独立したヘッダファイル(minmax.h)として定義する。
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ名とバージョン:visual studio
[3.3] 言語: C++
[4] 期限:21日まで
void minmax(int array[], int n, int *minPtr, int
*maxPtr)
{... ここを書き加える
}int main(){
int data[10] = {4, 2, 5, 9, 2, 1, 4, 5, 4, 5};
int min, max;... ここを書き加える
printf("min = %d, max = %d\n", min, max);
return 0;
}
... ヘッダファイルの内容
------
void minmax(int array[], int n, int *minPtr, int *maxPtr)
{... ここを書き加える}
--------
int main()
{int data[10] = {4, 2, 5, 9, 2, 1, 4, 5, 4, 5};
int min, max;... ここを書き加える
printf("min = %d, max = %d\n", min, max);
return 0;
}
0391デフォルトの名無しさん
2006/07/20(木) 14:55:33本当にC++でいいの?
後悔しない?
0392デフォルトの名無しさん
2006/07/20(木) 15:01:45すまん、別スレだった。
C言語なら俺に聞け(入門篇)
ttp://pc8.2ch.net/test/read.cgi/tech/1146700389/934
0393デフォルトの名無しさん
2006/07/20(木) 15:07:19[main.cpp]
#include <iostream>
#include "minmax.h"
using namespace std;
int main(void)
{
int data[10]={4,2,5,9,2,1,4,5,4,5};
int min,max;
minmax(data,10,&min,&max);
cout << "min=" << min << " max=" << max << endl;
return 0;
}
[minmax.h]
#include "minmax.cpp"
[minmax.cpp]
void minmax(int array[],int n,int *min,int *max)
{
int i;
*min=array[0];
*max=array[1];
for (i=0;i < n;i++){
if (array[i] < *min){
*min=array[i];
}else if (array[i] > *max){
*max=array[i];
}
}
return;
}
0394デフォルトの名無しさん
2006/07/20(木) 15:12:45ありがとうございます。でも解答されてなかったみたいですね…当たり前か。
0395デフォルトの名無しさん
2006/07/20(木) 15:15:29int main(){
int n,m,i,j,d=1,g;
printf("Number of Teams --> ");scanf("%d",&n);
printf("Number of Games per Day -> ");scanf("%d",&m);
g=m+1;
printf("\n-------- Schedule ----------");
for(i=0;i<n-1;i++){
for(j=i+1;j<n;j++){
if(g>m){printf("\nDay %d\n",d++);g=1;}
printf("Game %d : %c vs %c\n",g++,(char)(i+'A'),(char)(j+'A'));
}
}
d--;g--;
puts("---------------------------");
printf("Total Number of Days : %d days\n",d);
printf("Total Number of Games : %d games\n",(d-1)*m+g-1);
puts("---------------------------");
return 0;
}
0396デフォルトの名無しさん
2006/07/20(木) 15:19:40×>printf("Total Number of Games : %d games\n",(d-1)*m+g-1);
○>printf("Total Number of Games : %d games\n",(d-1)*m+g);
0397デフォルトの名無しさん
2006/07/20(木) 15:25:19i) 関数:y=1/(1+x^2)
積分区間:x0=0、xf=4
分割数:2000
ii) 関数:y=x y^2
積分区間:x0=1、xf=2
分割数:2000
iii) 分割数を多くしたときのメリットとデメリットは?
0398デフォルトの名無しさん
2006/07/20(木) 15:31:52>解きなさい
いやです。
0399デフォルトの名無しさん
2006/07/20(木) 15:46:04解いて下さい。お願いします。
0400デフォルトの名無しさん
2006/07/20(木) 16:57:54>>1を読むこと。
0401デフォルトの名無しさん
2006/07/20(木) 17:02:35>y = x y^2
何これ?
0402デフォルトの名無しさん
2006/07/20(木) 17:11:28どうもありがとうございます。配列使う必要なかったんですね。
0403お願いします・・
2006/07/20(木) 20:14:36970,(サンプルコード981)
前のスレでレスオーバーになってしまいまして・・
どうかよろしくお願いします・・
0404お願いします・・
2006/07/20(木) 20:15:33[1] 授業単元: 中課題
[2] 問題文(含コード&リンク): 9マス×9マスの小さな盤面で、数独の問題を解く
プログラムを作成せよ。またわかりやすいレポートを作成せよ(レポは
とりあえず後回しで大丈夫です)
<数独のルール>
1、空いているマスに、1から9までの数字のどれかを入れる。
2、縦列、横列(ともに9列)、太線(外周の線)で囲まれた3×3の
ブロック(それぞれ9マスあるブロックが9つある)のどれにも
1から9までの数字が一つずつ入る。
[3] 環境
[3.1] OS: UNIX
[4] 期限: 明日の19時
[5] 盤面の状態を入出力するサンプルコードと問題の入出力ファイルは配布されています。
お願いします。。。。
0405お願いします・・
2006/07/20(木) 20:16:270406死にかけてるものです
2006/07/20(木) 20:44:41全45問です・・・。
0407デフォルトの名無しさん
2006/07/20(木) 20:49:27アプロダ使え。
0408デフォルトの名無しさん
2006/07/20(木) 21:33:49[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2410.txt
問題のヒント:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2411.txt
図:http://imepita.jp/trial/20060720/717750
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: bcc
[3.3] 言語: C
[4] 期限: なるべく早く
[5] その他の制限:
よろしくお願いします。
0409死にかけてるものです
2006/07/20(木) 21:48:471. 数字列を数値に変換せよ。fgets()やscanf()の%sで入力した数字列をint型やdouble型の数値に変換する。数値として扱わないものが入力された場合にはその旨を表示せよ。
[1] 授業単元: C言語プログラミング
[3] 環境
[3.1] OS: Unix(Fedora Core)
[3.2] コンパイラ名とバージョン: gcc バージョンは分かりません
[3.3] 言語:Cのみ
[4] 期限: 24日午後5時まで
0410死にかけてるものです
2006/07/20(木) 21:52:030411デフォルトの名無しさん
2006/07/20(木) 22:15:33http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2417.txt
0412デフォルトの名無しさん
2006/07/20(木) 22:27:37scanfなら&が必要じゃね?
0413デフォルトの名無しさん
2006/07/20(木) 22:30:300414デフォルトの名無しさん
2006/07/20(木) 22:42:270415デフォルトの名無しさん
2006/07/20(木) 23:52:00掲示板部分に書き込むのではなく、ファイルに書いてそれをうpする。
0416もうお手上げ・・・
2006/07/21(金) 00:28:13[2]
ある商品ごとの顧客注文数は平均μ=25、分散б^2=5^2 (標準偏差б=5)の正規分布に従う。
T(≦1000)日間の顧客注文数を観測し、その平均値とバラツキを調べよ。
具体的にはユーザー関数を用いて、上記の正規分布に従う乱数をT個発生させる。
T個生成した正規乱数データをExcelに書き込み、Excelの関数ウィザードを利用して、正規乱数データの平均値、不偏分散、標準偏差を求めよ。
[3] 環境
[3.1] Windows xp
[3.2] 不明
[3.3] C++
[4] 出来れば明後日ぐらいまでに。
[5] ユーザー関数は必須らしいです。(但し、自分はここがよく分からない)
0417デフォルトの名無しさん
2006/07/21(金) 00:32:40[2] 問題文(含コード&リンク):
以下に示すプログラムは,ハッシュ法(チェイン法)を用いたデータの保存と探索のプログラムである.
/* Hash Search (Chain) */ の部分を作成し,完成させよ.
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.cgi?mode=thr&no=2124のNo.2418
[3] 環境
[3.1] OS: (Windows/Linux/等々) WindowsXP
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) gcc バージョンはわかりません
[3.3] 言語: (C/C++/どちらでも可 のいずれか) C
[4] 期限: 24日月曜日
[5] その他の制限:
まったくわかりません
お願いします
0418デフォルトの名無しさん
2006/07/21(金) 00:37:36[2]キーボードから任意の二つの整数を入力し、最大公約数を表示するプログラムを作成せよ。
[3]OS:Linux
コンパイラ名:gcc
言語:C言語
[4] 期限:今月末まで
[5] その他の制限:「return」は使えません。for文とif文を中心によろしくお願いします。
0419デフォルトの名無しさん
2006/07/21(金) 00:38:27[2]キーボードから任意の二つの整数を入力し、最大公約数を表示するプログラムを作成せよ。
[3]OS:Linux
コンパイラ名:gcc
言語:C言語
[4] 期限:今月末まで
[5] その他の制限:「return」は使えません。for文とif文を中心によろしくお願いします。
0420デフォルトの名無しさん
2006/07/21(金) 00:39:280421デフォルトの名無しさん
2006/07/21(金) 01:11:51#include <stdio.h>
main() {
int x,y,z;
printf("数値を2つ入力して下さい : ");
scanf("%d %d",&x,&y);
for(;;) {
if(x%y==0) break;
else { z=x; x=y; y=z%y; }
}
printf("最大公約数 : %d",y);
}
0422デフォルトの名無しさん
2006/07/21(金) 01:16:050423デフォルトの名無しさん
2006/07/21(金) 01:18:23それでもグローバル宣言でreturnなしでイケるけどw
0424デフォルトの名無しさん
2006/07/21(金) 02:00:47now = &hash[hash_func(name2[0])];
while(now){
if(strcmp(now->name, name2) == 0){
flag = 1;
break;
}
now = now->next;
}
0425デフォルトの名無しさん
2006/07/21(金) 02:39:54[1] 授業単元: 中課題
[2] 問題文(含コード&リンク): 9マス×9マスの小さな盤面で、数独の問題を作る
プログラムを作成せよ。またわかりやすいレポートを作成せよ(レポは
とりあえず後回しで大丈夫です)
<数独のルール>
1、空いているマスに、1から9までの数字のどれかを入れる。
2、縦列、横列(ともに9列)、太線(外周の線)で囲まれた3×3の
ブロック(それぞれ9マスあるブロックが9つある)のどれにも
1から9までの数字が一つずつ入る。
<問題作成時のルール>
1、縦列、横列(ともに9列)、太線(外周の線)で囲まれた3×3の
ブロック(それぞれ9マスあるブロックが9つある)のどれにも
数字が3箇所埋まっている状態にする。
[3] 環境
[3.1] OS: UNIX
[4] 期限: 明日の19時
[5] 答えが複数ある問題を作らないように気を付けよとのことです
お願いします。。。。
0427デフォルトの名無しさん
2006/07/21(金) 02:57:22ttp://pc8.2ch.net/test/read.cgi/tech/1152094206/7-8
0428427
2006/07/21(金) 02:58:120429お願いします・・
2006/07/21(金) 09:09:020430お願いします・・
2006/07/21(金) 09:12:36もしかしてやってもらえましたのでしょうか?
0431お願いします・・
2006/07/21(金) 09:19:46ところでサンプルコードというのはなんだったのでしょうか?
0432デフォルトの名無しさん
2006/07/21(金) 14:44:53[2] 問題文(含コード&リンク): main関数及びmain関数以外の関数を用いて以下のような玉取りゲームを作成せよ。
20個の玉がある。まず先攻後攻はプレイヤーが決められるものとする。その後プレイヤーとCOMが交互に玉を取っていく。
そして一回に取れる数は1〜5個である。
最後の玉を取ったものが負けであり、プレイヤー勝利時には「貴方の勝ちです」、COM勝利時は「貴方の負けです」と最後の表示する。
[3] 環境
[3.1] OS: Windows XP
[3.2] コンパイラ名とバージョン: Borland
[3.3] 言語: C++
[4] 期限: 明日まで
[5] その他の制限:なるべく初心者に分かりやすいプログラムを目指すこと。
というような問題なのですが超初心者の自分はいきなりこのような問題を出されてもサッパリです…orz
もし解ける方がいたらお願いします。
0433デフォルトの名無しさん
2006/07/21(金) 15:09:10COM側の手はどう生成すればいいんだろ。
つーか、お互いに最善手を打つと仮定して且つ、
先手後手をプレイヤが決められるのならこれでいいだろ。
int main()
{
printf("貴方の勝ちです\n");
return 0;
}
0434デフォルトの名無しさん
2006/07/21(金) 15:11:05ワロタ
0435デフォルトの名無しさん
2006/07/21(金) 15:27:58ボールが2個残ってるときは1個取り
ボールが3個残ってるときは2個取り
ボールが4個残ってるときは3個取り
・
・
・
ボールが10個残ってるときは・・・
0436デフォルトの名無しさん
2006/07/21(金) 15:32:08ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2422.cpp
やってみた
0437デフォルトの名無しさん
2006/07/21(金) 15:38:090438デフォルトの名無しさん
2006/07/21(金) 15:39:360439デフォルトの名無しさん
2006/07/21(金) 15:41:27スマソ
0440デフォルトの名無しさん
2006/07/21(金) 16:11:01コンパイルしましたけど…コンピューターが玉1個しかとらずに、
しかもパスを駆使して確実に負けます…。
説明文が悪かったですね…。
スイマセン…。
0441デフォルトの名無しさん
2006/07/21(金) 16:13:12http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2423.txt
0442デフォルトの名無しさん
2006/07/21(金) 16:18:26ありがとうございます。実行結果とプログラムを見比べてどんなプログラムなのか
自分でも確認してみます。
0443デフォルトの名無しさん
2006/07/21(金) 16:22:180444デフォルトの名無しさん
2006/07/21(金) 16:39:25ヒント:ネタ回答
0445デフォルトの名無しさん
2006/07/21(金) 16:43:430446お願いします・・
2006/07/21(金) 17:21:09[1] 授業単元: 中課題
[2] 問題文(含コード&リンク): 9マス×9マスの小さな盤面で、数独の問題を解く
プログラムを作成せよ。またわかりやすいレポートを作成せよ(レポは
とりあえず後回しで大丈夫です)
<数独のルール>
1、空いているマスに、1から9までの数字のどれかを入れる。
2、縦列、横列(ともに9列)、太線(外周の線)で囲まれた3×3の
ブロック(それぞれ9マスあるブロックが9つある)のどれにも
1から9までの数字が一つずつ入る。
[3] 環境
[3.1] OS: UNIX
[4] 期限: 月曜に伸ばしてもらいました。
[5] 盤面の状態を入出力するサンプルコードと問題の入出力ファイルは配布されています。
お願いします。。。。
今日提出しにいったところ、サンプルコードから続きを書けと
いうことでした。。
また入出力ファイルは
imput.dat quiz1.dat quiz2.dat quiz3.dat
とあり、gcc してから ./a.out
をすると ファイルを選択する画面になって、
例えばquiz1.dat と入力すれば、その空白を埋めるようになります。
どなたかどうかお願いします。
本用にお願いします。。
0448お願いします・・
2006/07/21(金) 17:23:45imput.dat
__6_____1
_7__6__5_
8__1_32__
__5_4_8__
_4_7_2_9_
__8_1_7__
__12_5__3
_6__7__8_
2_____4__
quiz3.dat
2__67____
__6___2_1
4_____8__
5____93__
_3_____5_
__28____7
__1_____4
7_8___6__
____53__8
サンプルコードは1のリンクしてあるところにはってあります
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
0449デフォルトの名無しさん
2006/07/21(金) 17:25:09[2] 問題文(含コード&リンク):
n×n複素行列の逆行列を求めるプログラムを作成せよ
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:gcc 3.4
[3.3] 言語: C
[4] 期限: 26日まで
[5] その他の制限:よくわからないけど、matrix?などは使ってはいけない
おねがいします
0450お願いします・・
2006/07/21(金) 17:27:070451お願いします・・
2006/07/21(金) 17:32:30どこかの丸写しがどうとかいわれ・・
サンプルコードから続きを書けということでした・・
0452お願いします・・
2006/07/21(金) 17:34:140453デフォルトの名無しさん
2006/07/21(金) 18:03:220454デフォルトの名無しさん
2006/07/21(金) 20:16:45[2] 問題文(含コード&リンク):
和、差、共通集合の要素数と内容を表示するプログラム
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2426.txt
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2006年07月26日まで
[5] その他の制限:
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2425.txt
上記のプログラムにコマンドライン引数でファイルを指定できるように書き加えてください。
よろしくお願いします。
0455もうお手上げ・・・
2006/07/21(金) 21:16:140456デフォルトの名無しさん
2006/07/21(金) 21:51:09SEND+MORE=MONEYに対応する解がないと言われてしまいます(1つあるはず)。
というわけで点検していただけないでしょうか?
そしてどういう操作をしているのかを解説していただけると嬉しいです。助かります。
よろしくお願いします!!
長いのであぷろだ使いました↓
http://zetubou.mine.nu/itoshiki/nozomu/zetubou26032.txt
0457デフォルトの名無しさん
2006/07/22(土) 00:26:31http://news19.2ch.net/test/read.cgi/newsplus/1153458339/
突然ですが、ここでグモッなニュースです
0458デフォルトの名無しさん
2006/07/22(土) 00:29:20定義からs>=1, m>=1
s+m=m*10+o or s+m+1=m*10+o
s=m*9+o or s=m*9+o-1
∴s=9, m=1, o=0
s*1000+e*100+m*1000+o*100=m*10000+o*1000+n*100 or s*1000+e*100+m*1000+o*100+100=m*10000+o*1000+n*100
10000+e*100=10000+n*100 or 10100+e*100=10000+n*100
e=n or 1+e=n
∴n=e+1
s*1000+e*100+n*10+d+m*1000+o*100+r*10+e=m*10000+o*1000+n*100+e*10+y
9000+e*100+(e+1)*10+d+1000+r*10+e=10000+(e+1)*100+e*10+y
10010+e*111+d+r*10=10100+e*110+y
e+d+r*10=90+y
y=e+d+r*10-90
d+e=y or d+e=10+y
d+e=e+d+r*10-90 or d+e=10+e+d+r*10-90
0=r*10-90 or 0=10+r*10-90
9=r or 8=r
∴r=8
経過から3<=n<=7, 2<=e<=6, 2<=d<=7, 2<=y<=7
y=e+d+r*10-90
y+10=e+d
12<=y+10<=17, 4<=e+d<=13
∴y=2 or y=3
e+d=12 or e+d=13
∴d=7, e=5, n=6, y=2
0459デフォルトの名無しさん
2006/07/22(土) 02:37:47>>if (ok[d]){
>> digit[c]+d;
>> ok[d]=FALSE;
とりあえず、digit[c]+d;のところでWarningでた。
0460デフォルトの名無しさん
2006/07/22(土) 03:17:21main()の最後
solution=0;
try(0);
if (solution==0) printf("解はありません。\n");
try()内でsolutionの書き換えがないから解がないと表示されるのは当然。
本の中で変数と関数の説明はされてないの?されてたらそれも書いて欲しいんだけど。
0461デフォルトの名無しさん
2006/07/22(土) 04:35:320462デフォルトの名無しさん
2006/07/22(土) 11:42:08インデントがちと汚いが。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2431.c
0463死にかけてるものです
2006/07/22(土) 12:06:16再アップしたので再びお願い致します。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2432.txt
[3] 環境
[3.1] OS: Unix(Fedora Core)
[3.2] コンパイラ名とバージョン: gcc バージョンは分かりません
[3.3] 言語:Cのみ
[4] 期限: 24日午後5時まで
[5] その他の制限: 指定された以外は標準ライブラリは使ってはいけない
0464デフォルトの名無しさん
2006/07/22(土) 12:12:53つかどんだけためたんだおまいさんは・・・・
0465デフォルトの名無しさん
2006/07/22(土) 13:09:14シーザー暗号を実現するプログラム
> --[実行結果例]--------
> 文字列入力 >> Yamanashi
> 鍵 >> 2
> 暗号文: Acocpcuhk
> --
こんな変換ルール実現できねーよw
(結果が間違ってないか?)
0466デフォルトの名無しさん
2006/07/22(土) 13:13:400467デフォルトの名無しさん
2006/07/22(土) 13:32:03[2] 問題文(含コード&リンク):
問題(ちょっと長いです)
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2434.txt
プログラム
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2433.c
データ
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2435.txt
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 来週の月曜日いっぱい
[5] その他の制限: なし
今もやってるのですが、条件がややこしくてよくわかりません。
問題文長いですが、どなたかよろしくお願いいたします。
0468デフォルトの名無しさん
2006/07/22(土) 13:48:43前大敵に見栄えよく
後の味方は心づよく
0469デフォルトの名無しさん
2006/07/22(土) 13:53:27[2] 問題文:
double sum=0;
for( i=1 ; i<=2 ; i++ )
{
sum += 1/i;
}
これだとsumの値は、
sum = 1/1 + 1/2 = 1.500000
のようになると思ったのですが、なりません。(sum = 1.000000 になってしまいました)
どうすれば小数までちゃんと計算してくれるのでしょうか。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: Borland C++ 5.5.1 for Win32
[3.3] 言語: C言語
0470デフォルトの名無しさん
2006/07/22(土) 13:59:43型キャストについて調べてみるといい
あとそういう質問は次からはここでしてね
【初心者歓迎】C/C++室 Ver.29【環境依存OK】
http://pc8.2ch.net/test/read.cgi/tech/1152367512/
0471デフォルトの名無しさん
2006/07/22(土) 14:00:051/i ⇒1.0/i にする
0472お願いします・・
2006/07/22(土) 14:00:21[1] 授業単元: 中課題
[2] 問題文(含コード&リンク): 9マス×9マスの小さな盤面で、数独の問題を解く
プログラムを作成せよ。またわかりやすいレポートを作成せよ(レポは
とりあえず後回しで大丈夫です)
<数独のルール>
1、空いているマスに、1から9までの数字のどれかを入れる。
2、縦列、横列(ともに9列)、太線(外周の線)で囲まれた3×3の
ブロック(それぞれ9マスあるブロックが9つある)のどれにも
1から9までの数字が一つずつ入る。
[3] 環境
[3.1] OS: UNIX
[4] 期限: 月曜に伸ばしてもらいました。
[5] 盤面の状態を入出力するサンプルコードと問題の入出力ファイルは配布されています。
お願いします。。。。
今日提出しにいったところ、サンプルコードから続きを書けと
いうことでした。。
また入出力ファイルは
imput.dat quiz1.dat quiz2.dat quiz3.dat
とあり、gcc してから ./a.out
をすると ファイルを選択する画面になって、
例えばquiz1.dat と入力すれば、その空白を埋めるようになります。
どなたかどうかお願いします。
本用にお願いします。。
お願いします・・
留年してしまいます。。
自分が悪いのはわかってますが。。
0473デフォルトの名無しさん
2006/07/22(土) 14:00:580474デフォルトの名無しさん
2006/07/22(土) 14:02:060475お願いします・・
2006/07/22(土) 14:04:05imput.dat
__6_____1
_7__6__5_
8__1_32__
__5_4_8__
_4_7_2_9_
__8_1_7__
__12_5__3
_6__7__8_
2_____4__
quiz3.dat
2__67____
__6___2_1
4_____8__
5____93__
_3_____5_
__28____7
__1_____4
7_8___6__
____53__8
サンプルコードは1のリンクしてあるところにはってあります
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
上の掲示板の67代目の130番にサンプルコードをかかせていただきました、
どうか本当によろしくお願いします。。
0476デフォルトの名無しさん
2006/07/22(土) 14:04:580477デフォルトの名無しさん
2006/07/22(土) 14:13:160478デフォルトの名無しさん
2006/07/22(土) 14:14:070479デフォルトの名無しさん
2006/07/22(土) 14:15:46死活問題なんです!!
留年したら学費の問題で退学しないといけないかもしれないんです!!!
0480デフォルトの名無しさん
2006/07/22(土) 14:16:130481デフォルトの名無しさん
2006/07/22(土) 14:19:000482デフォルトの名無しさん
2006/07/22(土) 14:22:02チンカスどもが
さっさと解けやクソども
0483デフォルトの名無しさん
2006/07/22(土) 14:22:26本当に真剣なら、大学(あるいは専門学校か?)に行って、誰でも捕まえて頼んでみろ。
もしくは、かたっぱしからソフトウェアハウスに電話して、3万出すから宿題といてくれと
頼んでみろ。だれか引っかかるはずだ。
0484デフォルトの名無しさん
2006/07/22(土) 14:23:16どうでもいいけど、お前彼の息の根を止めたかもよ
0485デフォルトの名無しさん
2006/07/22(土) 14:24:42醜刑恐怖症で郵便局とかにも行けないんです
電話してもお金を振り込めません
0486デフォルトの名無しさん
2006/07/22(土) 14:25:36純真なリア高とかが答えるかも知れんけどなw
0487デフォルトの名無しさん
2006/07/22(土) 14:26:37ヒャッホー!
死ね2ちゃんねらー
0488お願いします・・
2006/07/22(土) 14:27:36ぜひともお願いします。。
0489デフォルトの名無しさん
2006/07/22(土) 14:28:000490デフォルトの名無しさん
2006/07/22(土) 14:28:49>>483
お願いします、10万円払います。
0492デフォルトの名無しさん
2006/07/22(土) 14:31:010493デフォルトの名無しさん
2006/07/22(土) 14:33:32でも3,000円くらいなら払えます・・・
0494デフォルトの名無しさん
2006/07/22(土) 14:34:13プログラマなめとんか!
0495デフォルトの名無しさん
2006/07/22(土) 14:34:47おとなしく待つか、別の手をうて
0496デフォルトの名無しさん
2006/07/22(土) 14:36:510497デフォルトの名無しさん
2006/07/22(土) 14:37:410498デフォルトの名無しさん
2006/07/22(土) 14:43:300499デフォルトの名無しさん
2006/07/22(土) 14:44:370500デフォルトの名無しさん
2006/07/22(土) 14:56:170501デフォルトの名無しさん
2006/07/22(土) 15:02:060502デフォルトの名無しさん
2006/07/22(土) 15:02:150503デフォルトの名無しさん
2006/07/22(土) 15:14:08こいつ笑いのセンスない
0504デフォルトの名無しさん
2006/07/22(土) 15:15:55この中から索せ
ttp://sourceforge.net/search/?words=sudoku&type_of_search=soft&limit=100
スレが荒れるからもう来るなよ
0505お願いします・・
2006/07/22(土) 15:47:24誰かの荒らしですよ・・・
0506デフォルトの名無しさん
2006/07/22(土) 15:48:240507お願いします・・ ◆zyUwiBi7uc
2006/07/22(土) 15:49:43どなたかお願いします・・
0508デフォルトの名無しさん
2006/07/22(土) 15:50:38[2] 問題文(含コード&リンク): エンゲル係数を求めよ (家計の消費支出と飲食費を入力しエンゲル係数を求める)
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
[3.3] 言語:どちらでも可
[4] 期限: 2006年07月26日まで
[5] その他の制限: 特になし
どうか、よろしくお願いします。
0509お願いします・・ ◆zyUwiBi7uc
2006/07/22(土) 15:51:13お願いします。一度休学しているので。。
0510デフォルトの名無しさん
2006/07/22(土) 15:54:32俺だって英語や現代数学はさっぱりだった。
課題だって試験だってさっぱりだった。
友達だって居なかった。
でも、頑張って卒業した。
できない教科も必死に授業出て勉強して単位取った。
そして今は職についた。
お前も自分でやってみろ。
0511デフォルトの名無しさん
2006/07/22(土) 16:00:11#include <stdio.h>
int main()
{
int zyUwiBi7uc,kiero;
printf("消費支出:");
scanf("%d",&zyUwiBi7uc);
printf("食料費:");
scanf("%d",&kiero);
printf("エンゲル係数は%.1f",(double)kiero/zyUwiBi7uc*100);
return 0;
}
0512デフォルトの名無しさん
2006/07/22(土) 16:03:19うるせぇ お前はそんなんだから出世できないんだよ。
他人をうまく利用できるようになれ。
自分で何でもやってるようじゃ一生平社員だ。
0513デフォルトの名無しさん
2006/07/22(土) 16:26:00うるせぇ技術だけもらったら辞めるから
ここで出世しなくても一向にかまわんわ
0514プログラム初心者 ◆03Srrf7..c
2006/07/22(土) 16:32:57[2] 問題文(含コード&リンク): n人数分の数学の得点を100点満点で入力せよ
80以上 : A
79〜70 : B
69〜60 : C
59以下 : Z
[3] 環境
[3.1] OS: Windows XP
[3.2] コンパイラ名とバージョン: borland
[3.3] 言語: C言語
[4] 期限: [2006年7月25日21:10まで]
[5] その他の制限: 順列を使ってやれ だそうです。
プログラム初心者で、こんな問題出されてもさっぱりわからないです‥‥
どうか これの問題が解ける人がいたらたすけてください。
0515デフォルトの名無しさん
2006/07/22(土) 16:34:1680以上 : A
79〜70 : B
69〜60 : C
59以下 : Z
問題はしょるな
全部書け
0516プログラム初心者 ◆03Srrf7..c
2006/07/22(土) 16:37:36n人数分の数学の点数100点満点で入力し
80以上 : A
79〜70 : B
69〜60 : C
59以下 : Z
として A、B、C、Z の人数を表示せよ
本当にすいません かきわすれてました。
0517デフォルトの名無しさん
2006/07/22(土) 16:39:52本当か?
0518プログラム初心者 ◆03Srrf7..c
2006/07/22(土) 16:42:290519デフォルトの名無しさん
2006/07/22(土) 16:44:010520プログラム初心者 ◆03Srrf7..c
2006/07/22(土) 16:45:110521デフォルトの名無しさん
2006/07/22(土) 16:56:58while(人数分){
if(Aランク) ++count[0];
if(Bランク) ++count[1];
if(Cランク) ++count[2];
if(Zランク) ++count[3];
}
printf("A:%d人\n",count[0]);
printf("B:%d人\n",count[1]);
printf("C:%d人\n",count[2]);
printf("Z:%d人\n",count[3]);
擬似コードで書くとこんな感じだが、配列使う意味が不明だなw
0522プログラム初心者 ◆03Srrf7..c
2006/07/22(土) 16:59:49これからは じぶんでも プログラムが作れるようにがんばります。
0523デフォルトの名無しさん
2006/07/22(土) 18:48:43先生見てるぞ、と言ってみる
0524デフォルトの名無しさん
2006/07/22(土) 19:15:130525デフォルトの名無しさん
2006/07/22(土) 19:49:29あと、どこまで習ってんのよ?
0526デフォルトの名無しさん
2006/07/22(土) 19:52:05再就職のときに、会社を辞めた理由を聞かれるから覚悟しておいた方がいいよ。
#つーか、漏れは聞く。
0527デフォルトの名無しさん
2006/07/22(土) 20:09:000529デフォルトの名無しさん
2006/07/22(土) 20:19:22[2] 問題1.キーボードから入力された文字が英字であるか否かを判断するプログラムを作れ。
ヒント:アスキーコード表によれば65〜90が英大文字、97〜122が英小文字となっている。したがって、入力された文字が65〜90または97〜122なら英字。また、65〜90の範囲を調べるためのプログラム表現は以下のようになる。
if(x>=65 && x<=90)...
あるいは直接英字を用いて
if(x>='&& x<='z')...
としてもよい
問題2
1から100までの間の奇数の和を求めるプログラムを作れ。
ヒント:奇数は1,3,5.。。、99と変化するので、i=1から初めて2ずつ
増やしていくと奇数が求められる。したがって、forループは
for(i=1;i<=99;i=i+2)という書き出しになる。
問題3
1-2+3-4...+99-100を求めるプログラムを作れ。
ヒント:余り演算子%を用いて奇偶を判定し、奇数のときは加算、偶数の
ときは減算する。
問題4
キーボードから西暦年を入力し、その年がうるう年であるか否kを決定す
るプログラムを作れ。以下のいずれかを満足するとき、うるう年である。
(1)その年が4の倍数でかつ100の倍数でないとき
(2)その年が400の倍数のとき
問題5
キーボードから20個の整数を入力して、ある数字の後にそれより小さな数
字が続く場合が何回あるかを数えるプログラムを作れ。
0530デフォルトの名無しさん
2006/07/22(土) 20:20:08キーボードから月を入力し、下記を参考にしてそれを漢数字、陰暦とその
読み方を出力するプログラムを、switch文を用いて作れ、たとえば12を入力したとき
十二月 師走 しわす
と出力する。0を入力したときプログラムの終了とする。
(参考)
一月...睦月(むつき)
二月...如月(きさらぎ)
三月...弥生(やよい)
四月...卯月(うづき)
五月...皐月(さつき)
六月...水無月(みなづき)
七月...文月(ふみづき)
八月...葉月(はづき)
九月...長月(ながつき)
十月...神無月(かんなづき)
十一月...霜月(しもつき)
十二月...師走(しわす)
問題7
日を入力して、それを漢数字で出力するプログラムを作れ。たとえば25を
入力したとき、二十五日と出力する。0を乳y録したときプログラムの終了
とする。
ヒント:1から31までうぃ一、二、...、三十一として用意するのは大変なので、
以下のような対をもつ。
1 2 3 4 5 6 7 8 9 10
一 二 三 四 五 六 七 八 九 十
たとえば、25が入力されたときは2と5に分けて、さらに真ん中に十を入
れて二十五を合成する。
0531デフォルトの名無しさん
2006/07/22(土) 20:24:36[3.1] OS: WindowsXP
[3.2] Borland C++ Compiler
[3.3] 言語: C言語
[4] 期限: [2006年7月25日(火)まで]
[5] 苦しんで覚えるC言語 14章 文字列を扱う方法まで
こんなに沢山すいません これが最後の宿題だそうです。
問題六なら0を入力したときっていう以外は解けそうな感じでしたがやっぱり自分の力では解けそうにありません
どうかよろしくお願いします。
0532デフォルトの名無しさん
NGNG問題6
#include<stdio.h>
#include<stdlib.h>
int main(void){char* mon[]={"一月...睦月(むつき)","二月...如月(きさらぎ)",
"三月...弥生(やよい)","四月...卯月(うづき)","五月...皐月(さつき)","六月...水無月(みなづき)",
"七月...文月(ふみづき)","八月...葉月(はづき)","九月...長月(ながつき)",
"十月...神無月(かんなづき)","十一月...霜月(しもつき)","十二月...師走(しわす)",};
char tmp[100];int m;while(1){fgets(tmp,sizeof(tmp),stdin);switch((m=atoi(tmp))){case 1:case 2:
case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:puts(mon[m]);break;
case 0:return 0;}}return 0;}
問題7
#include<stdio.h>
#include<stdlib.h>
int main(void){char* kan[]={"","一","二","三","四","五","六","七","八","九",};
char tmp[100];int d;fgets(tmp,sizeof(tmp),stdin);d=atoi(tmp);
if(0<d&&d<=31){if((d/10)>1)printf(kan[d/10]);if(d/10)prntf("十");printf("%s日\n"kan[d%10]);
return 0;}
0533デフォルトの名無しさん
2006/07/22(土) 20:57:58問題1
#include <stdio.h>
#include <ctype.h>
int main () {
char c;
scanf("%c",&c);
if(isalpha(c)==0){
printf("英字ではありません\n");
}
else printf("英字です\n");
return 0;
}
0534デフォルトの名無しさん
2006/07/22(土) 21:01:44問題2
#include <stdio.h>
int main () {
int i;
int x;
for(i=1;i<=99;i+=2){
x+=i;
}
printf("%d",x);
return 0;
}
0535デフォルトの名無しさん
NGNG問題1
#include<stdio.h>
#include<ctype.h>
int main(void){if(isalpha(getchar()))puts("英文字");else puts("それ以外");return 0;}
問題2
#include<stdio.h>
int main(void){int a=1;int d=2;int n=50;int s=n*(2*a+(n-1)*d)/2;printf("%d\n",s); return 0;}
問題3
#include<stdio.h>
int main(void){int a=0;for(int i=1;i<101;i++)a+=((i&1)?1:-1)*i;printf("%d\n",a);return 0;}
0536デフォルトの名無しさん
2006/07/22(土) 21:06:09問題 3 あってる保障はない
include <stdio.h>
int main () {
int i;
int x=0;
for(i=1;i<=100;i++){
if(i%2==0) x+=i;
else x-=i;
}
printf("%d",x);
return 0;
}
0537デフォルトの名無しさん
NGNG問題4
#include<stdio.h>
#include<stdlib.h>
int main(void){char tmp[100];int y;fgets(tmp,sizeof(tmp),stdin);y=atoi(tmp);
if(((y%4)==0&&(y%100)!=0)||((y%400)==0))puts("閏年");else puts("平年");return 0;}
問題5
#include<stdio.h>
#include<stdlib.h>
#include<limit.h>
int main(void){char tmp[100];int a,b=INT_MIN,c=0;for(int i=0;i<20;i++){fgets(tmp,sizeof(tmp),stdin);
a=atoi(tmp);if(b<a)++c;b=a;}printf("%d回\n",c);return 0;}
0538デフォルトの名無しさん
2006/07/22(土) 21:12:40なんかこっちの書き方の方がぷろっぽいんだよな
0539デフォルトの名無しさん
2006/07/22(土) 21:21:11ソースを書くのはまんどくせっ
0540デフォルトの名無しさん
NGNG問題7訂正
#include<stdio.h>
#include<stdlib.h>
int main(void){char* kan[]={"","一","二","三","四","五","六","七","八","九",};
char tmp[100];int d;fgets(tmp,sizeof(tmp),stdin);d=atoi(tmp);
if(0<d&&d<=31){if((d/10)>1)printf(kan[d/10]);if(d/10)printf("十");printf("%s日\n",kan[d%10]);
}return 0;}
0541デフォルトの名無しさん
2006/07/22(土) 21:24:32なんかおまえプロっぽい書き方するなwwwwww
0542デフォルトの名無しさん
2006/07/22(土) 21:25:50つまらない課題を出す学校の卒業生はブラックリストにされちゃいますよ?
0543デフォルトの名無しさん
NGNG問題6訂正
#include<stdio.h>
#include<stdlib.h>
int main(void){char* mon[]={"","一月...睦月(むつき)","二月...如月(きさらぎ)",
"三月...弥生(やよい)","四月...卯月(うづき)","五月...皐月(さつき)","六月...水無月(みなづき)",
"七月...文月(ふみづき)","八月...葉月(はづき)","九月...長月(ながつき)",
"十月...神無月(かんなづき)","十一月...霜月(しもつき)","十二月...師走(しわす)",};
char tmp[100];int m;while(1){fgets(tmp,sizeof(tmp),stdin);switch((m=atoi(tmp))){case 1:case 2:
case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:puts(mon[m]);break;
case 0:return 0;}}return 0;}
0544デフォルトの名無しさん
2006/07/22(土) 21:27:48ああそうだったんだ
ごめんねかあちゃんここ北の初めてだからごめんね
でもなぜか俺の書くプログラムは厨房っぽいんだよなorz
0545デフォルトの名無しさん
2006/07/22(土) 21:27:510546デフォルトの名無しさん
NGNG0547デフォルトの名無しさん
2006/07/22(土) 21:29:23この程度でもプロだから尊敬されてんじゃん、照れるなってw
0548デフォルトの名無しさん
NGNG0549デフォルトの名無しさん
2006/07/22(土) 21:30:04書き方がなんかカッコいいんだよな
0550デフォルトの名無しさん
2006/07/22(土) 21:32:520551デフォルトの名無しさん
2006/07/22(土) 21:34:17それだと俺の脳みそがついていきません
0552デフォルトの名無しさん
2006/07/22(土) 21:36:50あってる保障はねえ
#include <stdio.h>
int main () {
int x;
scanf("%d",&x);
if((x%4==0)&&(x%100!=0)||x%400==0) printf("うるう年\n");
else printf("うる年じゃねえ\n");
return 0;
}
0553デフォルトの名無しさん
NGNG仕事で納品するコードで改行無しとかアリエネエけどなw
0554デフォルトの名無しさん
2006/07/22(土) 21:42:21普通なのって本当?
0555デフォルトの名無しさん
2006/07/22(土) 21:53:59[1]授業単元:C言語
[2] 問題文(含コード&リンク):3年間の月別売上は、次の表のようであった。
各年ごとの売上平均と、3年間を通しての売上平均を求めるプログラムを作成せよ。
月 1 2 3 4 5 6 7 8 9 10 11 12
A年売上 60 30 66 6 56 85 30 70 89 10 30 85
B年売上 8 90 40 54 46 5 60 7 36 84 26 30
C年売上 38 94 83 35 48 93 35 27 84 47 33 54
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ名とバージョン:Visual studio.net2003
[3.3] 言語:C++
[4]期限:[2006年7月23日(日)夜まで]
[5] その他の制限: 特になし
どうかよろしくお願いします。
0556デフォルトの名無しさん
2006/07/22(土) 22:01:210557デフォルトの名無しさん
2006/07/22(土) 22:18:470558デフォルトの名無しさん
2006/07/22(土) 22:29:03あってる保障はねえ
つうか全部の値を入力するのがめんどくせえ
#include <stdio.h>
int tukiheikin(int x[]){
int i;
int y=0;
for(i=0;i<12;i++){
y+=x[i];
}
printf("月:平均%d\n",y/12);
return y;
}
int main () {
int a[12]={60,30,66,6,56,85,30,70,89,10,30,85};
int b[12]={8,90,40,54,46,5,60,7,36,84,26,30};
int c[12]={38,94,83,35,48,93,35,27,84,47,33,54};
int x=0;
x+=tukiheikin(a);
x+=tukiheikin(b);
x+=tukiheikin(c);
printf("%d\n",x/3);
return 0;
}
0559デフォルトの名無しさん
2006/07/22(土) 22:36:02だと思った
0560デフォルトの名無しさん
2006/07/22(土) 22:38:59あわわわわそんな手段があったとは
0561デフォルトの名無しさん
2006/07/22(土) 22:46:19再就職?
そんなことするつもりならそもそも辞めないが?
0562デフォルトの名無しさん
2006/07/22(土) 22:48:50カスは解凍すんなカス
0563デフォルトの名無しさん
2006/07/22(土) 22:49:35http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2437.c
0564デフォルトの名無しさん
2006/07/22(土) 22:50:27何の自慢か知らんが、チラ裏にでもどうぞ
0565デフォルトの名無しさん
2006/07/22(土) 22:51:19最初は平均返すつもりだった
途中から合計を返すつもりになった
0566デフォルトの名無しさん
2006/07/22(土) 22:51:34このスレに何の御用で?
0567デフォルトの名無しさん
2006/07/22(土) 22:56:51お真も名
0568デフォルトの名無しさん
2006/07/22(土) 22:58:58ここが既に違うし
さすがカスw
0569デフォルトの名無しさん
2006/07/22(土) 23:00:34あーよwwww
0570デフォルトの名無しさん
2006/07/22(土) 23:00:55[1] 授業単元:プログラミング�T
[2] 問題文:
・キーボードから目標値(正の整数)の入力を受け付ける。
・キーボードから整数の入力を受け付け、合計値を求めていく。
・合計値が目標値を超えたら、入力した個数とその中での
最大値を表示して終了。
[実行例]
>目標値(整数)を入力してください。
100
>数字を入力してください。
10
30
50
40
>目標値: 100
>入力した整数の数: 4
>最大値: 50
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2006年7月25日まで
[5] その他の制限:「for」を必ず使うこと。
何度考えても分かりません。どうか、お願いします。
0571デフォルトの名無しさん
2006/07/22(土) 23:02:30しっかり汁
0572デフォルトの名無しさん
2006/07/22(土) 23:14:00#include <stdio.h>
int main () {
int i;
int x=0,y=0;
int limit;
int max=0;
printf("最大値を入力してください");
scanf("%d",&limit);
for(i=1;max<limit;i++){
scanf("%d",&x);
if(y<x){
y=x;
}
max+=x;
}
printf("入力回数:%d\n",i);
printf("合計値:%d\n",max);
printf("最大値:%d\n",y);
return 0;
}
あってる保障なす
0573デフォルトの名無しさん
2006/07/22(土) 23:14:02#include <stdio.h>
int main(void){
int end, max, sum, tmp, i;
printf(">目標値(整数)を入力してください。\n");
scanf("%d", &end);
printf(">数字を入力してください。\n");
for(sum = max = i = 0; ; i++){
scanf("%d", &tmp);
sum += tmp;
max = (tmp > max) ? tmp : max;
if( sum >= end )
break;
}
printf(">目標値: %d\n", end);
printf(">入力した整数の数: %d\n", i+1);
printf(">最大値: %d\n", max);
return 0;
}
0575467
2006/07/22(土) 23:29:14プログラムは途中まで与えられていますが、さっぱりです。
0576デフォルトの名無しさん
NGNG0577デフォルトの名無しさん
2006/07/23(日) 00:03:13ごめんさっぱりわからん
0578デフォルトの名無しさん
2006/07/23(日) 00:09:54プロならちゃちゃっとやっちゃってくだちゃいよ?
0579デフォルトの名無しさん
2006/07/23(日) 00:17:44できません
0580デフォルトの名無しさん
2006/07/23(日) 00:57:18[2] 問題文(含コード&リンク):
大きさ20の配列keyを用意し、キーボードから値を入力する。 この配列keyの要素を、単純挿入法で昇順にソートするプログラムを作成せよ。
ただし、ソートの途中経過を画面に出力すること。 また、最後に比較回数を画面に出力すること。
【ヒント】
配列の大きさの指定 ‥ ただし最初の要素は番兵用。よって入力は SIZE - 1 回。
単純挿入法‥未ソートの部分の先頭の要素を、ソート済みの部分に挿入する
途中経過‥未ソートの部分が1つ減るたびに(外ループ)出力。
比較回数‥初期値0の変数を用意し、比較のたびに(内ループ)インクリメント。
[3] 環境
[3.1] OS: xp
[3.2] visual studio2003
[3.3] 言語: c
[4] 期限: 25日まで
[5] その他の制限: ループ、探索、ソート、配列、構造体など
0581デフォルトの名無しさん
NGNGプロの仕事を要求するならそれなりの対価を払う覚悟はできてるんだろうな?
0582デフォルトの名無しさん
2006/07/23(日) 01:51:58http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2439.c
0583デフォルトの名無しさん
2006/07/23(日) 01:53:49体でウホッな支払いはおkでつか?w
まぁ、対価がある場合はバグがあったときはサポートも含んでもらわんと・・・
ここでの金銭のやりとりもどうかと思うけど、お金が欲しいなら個別に窓口でも設けてみては?
トーマス氏ならずいぶんと稼げるんでは?
0584デフォルトの名無しさん
2006/07/23(日) 02:21:23http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2440.c
0585お願いします・・ ◆zyUwiBi7uc
2006/07/23(日) 02:28:03[1] 授業単元: 中課題
[2] 問題文(含コード&リンク): 9マス×9マスの小さな盤面で、数独の問題を解く
プログラムを作成せよ。またわかりやすいレポートを作成せよ(レポは
とりあえず後回しで大丈夫です)
<数独のルール>
1、空いているマスに、1から9までの数字のどれかを入れる。
2、縦列、横列(ともに9列)、太線(外周の線)で囲まれた3×3の
ブロック(それぞれ9マスあるブロックが9つある)のどれにも
1から9までの数字が一つずつ入る。
[3] 環境
[3.1] OS: UNIX
[4] 期限: 明日の19時
[5] 盤面の状態を入出力するサンプルコードと問題の入出力ファイルは配布されています。
お願いします。。。。
0586お願いします・・ ◆zyUwiBi7uc
2006/07/23(日) 02:30:08imput.dat
__6_____1
_7__6__5_
8__1_32__
__5_4_8__
_4_7_2_9_
__8_1_7__
__12_5__3
_6__7__8_
2_____4__
quiz3.dat
2__67____
__6___2_1
4_____8__
5____93__
_3_____5_
__28____7
__1_____4
7_8___6__
____53__8
サンプルコードは1のリンクしてあるところにはってあります
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
生意気な口をきいたのは僕ではありません 誤解しないでください。
サンプルコードから続きを書けということで、
わかる方ならそれほど時間もかけさせないと思います。
本当にどうかよろしくお願いします。
0587デフォルトの名無しさん
2006/07/23(日) 02:35:13ttp://www.puzzle.jp/letsplay/play_sudoku-j.html
さぁ、みんなで数独で遊ぼう!
0588デフォルトの名無しさん
2006/07/23(日) 02:50:52普通に人間が思考して解くやりかたでなく
最初の盤面の状態からある数を適当において
別の盤面の状態をつくり、この状態を使って再帰で呼び出す
そんな感じのを昔作った。まあガンガレ。
大昔、プログラマ初心者の頃
6時間かけて糞ソースになったので作り直しでまた6時間
計12時間コースだった
いまの自分なら2時間コースだと思いたい
0589デフォルトの名無しさん
2006/07/23(日) 03:02:21まぁなんだ・・・粘着してたのがおまいさんじゃなくてもここじゃもう�_
数独のプログラムならいっぱい落ちてるからそっからコピペのが早いと思うよ
0590デフォルトの名無しさん
NGNGもちろん「プロとして」請けるなら納期やらサポート範囲やら納品物やらをきっちり定義した
購入仕様書なり契約書なりを作った上で相応の仕事をすることになるが。
最低0.1人月としても10万前後だからな。クズ学生如きがそこまでやるとは思えん。
0591デフォルトの名無しさん
2006/07/23(日) 03:30:12解く方法教えてくれれば作る
そうでないなら考えたり調べたりするの面倒だからやんね
0592デフォルトの名無しさん
2006/07/23(日) 03:30:58[2] 問題文:
・100個のノードを生成する
・ノードに重みを指数分布に従ってつける(0〜100)
・任意のノードペアを選び、重みの和を取り、重みの和が100以上のノードペアにリンクを張る
・それぞれのノードが持つリンク数を計算する
・リンクの数の分布
(リンクが1つ・・・○○、リンクが2つ・・・○○、・・・みたいな)
[3] 環境:[Windows XP Borland C++ Compiler 5.5(BCC Developer) C言語
[4] 期限:一応ないので焦りませんが、早目がうれしいです。
[5] その他の制限:どんな方法を使っても大丈夫です。
以前はありがとうございました。本当に感謝感激です。
で、こんどは応用ということで、指数分布に従って重みをつけろとのことです。
以前貰ったプログラムをうpするので、宜しくお願いします。
0593デフォルトの名無しさん
2006/07/23(日) 03:31:16俺もプログラマだが実際問題そんな金の動くようなことしてる気がしないんだよなぁ
なんで成立してんだか・・・
0594592
2006/07/23(日) 03:33:00http://read.kir.jp/file/read52865.txt
0595デフォルトの名無しさん
2006/07/23(日) 03:47:50それがわからないなら、辞めたほうがいいかも
0596デフォルトの名無しさん
2006/07/23(日) 03:55:290597デフォルトの名無しさん
2006/07/23(日) 03:57:120598デフォルトの名無しさん
2006/07/23(日) 03:58:570599デフォルトの名無しさん
NGNG0600デフォルトの名無しさん
2006/07/23(日) 06:20:350601デフォルトの名無しさん
2006/07/23(日) 06:40:03http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2441.c
0602デフォルトの名無しさん
NGNGバカな。生殖能力があるのは大前提だ。
0603デフォルトの名無しさん
2006/07/23(日) 10:42:09解いてくれて本当にありがとうございました
0605デフォルトの名無しさん
2006/07/23(日) 11:48:470606死にかけてるものです
2006/07/23(日) 12:10:48再再アップしたのでよろしくお願い致します。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2442.txt
[3] 環境
[3.1] OS: Linux(Fedora Core)
[3.2] コンパイラ名とバージョン: gcc バージョンは分かりません
[3.3] 言語:Cのみ
[4] 期限: 24日午後5時まで
[5] その他の制限: 指定された以外は標準ライブラリは使ってはいけない。
>>464
Linuxでした。orz すみません。
>>465,>>466
実行結果例の暗号文が間違えていました。すみません。
暗号文:Acocpcujk
0607デフォルトの名無しさん
2006/07/23(日) 12:29:07[2] 問題文(含コード&リンク): ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2443.txt
[3] 環境
[3.1] OS: Windows XP
[3.2] コンパイラ名とバージョン: Borland C++ 5.5
[3.3] 言語: C
[4] 期限: 2006/07/26
[5] 特にありません…。俺には難しいのですがよろしくお願いします。
0608デフォルトの名無しさん
2006/07/24(月) 00:33:51[2] 問題文(含コード&リンク):tp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2445.zip
[3] 環境
[3.1] OS: WindowsXPpro sp2
[3.2] コンパイラ名とバージョン:VisualStudio2002+cmd
[3.3] 言語:C
[4] 期限: 2006/07/27
[5] gather_1関数の作成をお願い致します。 bmpはお持ちの物で構いません。
0609デフォルトの名無しさん
2006/07/24(月) 01:57:44きちんと問題文ぐらい書け
0610デフォルトの名無しさん
2006/07/24(月) 02:50:510611デフォルトの名無しさん
2006/07/24(月) 03:18:57[1] 授業単元:数値解析
[2] 問題文(含コード&リンク):
4元1次方程式をガウス法により解くプログラムを作成しなさい。
また、以下の条件を満たすこと。
1.任意の係数をキーボードから入力する。
2.求められた解を用いて検算を行う。
3.前進消去において、ピボット選択を行う。
4.関数calsolでxを求める部分を、5元、6元と増やしていっても簡単
に変更できるようにする(for文などを使用してループ形式にする)。
プログラム例↓
http://www.mech.saitama-u.ac.jp/lab/system/lecture/NumericalAnalysis/kadai/kadai13.png
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:よく分かりません。
[3.3] 言語:C/C++/どちらでも可
[4] 期限:[2006年07月24日8:00amまで
[5] その他の制限:
0612デフォルトの名無しさん
2006/07/24(月) 03:27:340613デフォルトの名無しさん
2006/07/24(月) 05:07:08http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2447.c
0614613
2006/07/24(月) 05:30:06http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2448.c
0615デフォルトの名無しさん
2006/07/24(月) 07:36:47[2]自由課題です。プログラムは自分で考えるので、どんなもの作ったらいいか
アイデアだけいくつかお願いします
[4] 期限: 24日 24:00まで
[5] その他の制限: ループ、条件、配列、文字列、ポインタ程度の基礎的な知識で書けるもの
0616デフォルトの名無しさん
2006/07/24(月) 07:47:07極楽とんぼの山本を無罪にするプログラムを作れ!
0617デフォルトの名無しさん
2006/07/24(月) 08:57:59地球の公転運動シミュレーション
0618デフォルトの名無しさん
2006/07/24(月) 09:53:11[2] 問題文(含コード&リンク):
入力した正整数値以下の最大の素数を返すプログラムを作る。
素数を求める部分は関数にすること。
例)
12 (Enter)
11
6 (Enter)
5
7 (Enter)
7
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 7月26日
[5] その他の制限:特になし
お願いします
0619デフォルトの名無しさん
2006/07/24(月) 10:10:370620デフォルトの名無しさん
2006/07/24(月) 10:58:01なんか作ってみたけどコードが凄い不細工になった
素数そのものが入力されたときにそれを表示できね
0621デフォルトの名無しさん
2006/07/24(月) 12:38:290622デフォルトの名無しさん
2006/07/24(月) 13:18:01[2] 問題文(含コード&リンク): ttp://www.iis.u-tokyo.ac.jp/~susaki/c/file1.html
にある課題4
[3] 環境
[3.1] WindowsXP
[3.2] Borland C++ 5.5.1
[3.3] C言語
[4] 期限: 今月中
[5] その他の制限: 特になし
ファイルの中身の数値を3倍させる方法に苦戦してます。
お願いします。
0623デフォルトの名無しさん
NGNG学籍番号を晒したら教えてやる。
0624デフォルトの名無しさん
2006/07/24(月) 13:55:50#define DEF_YUUZAI 1
#define DEF_MUZAI 0
#include <stdio.h>
void main()
{
Human obj;
obj.name( "山本" );
obj.set( DEF_YUUZAI );
while( obj.getTumi()!=DEF_MUZAI )
printf( "ごめんなさい\a" );
)
0625デフォルトの名無しさん
2006/07/24(月) 13:56:24[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2449.txt
[3] 環境
[3.1] WindowsXP
[3.2] VC 6.0
[3.3] 言語:C
[4] 7月25日17:00まで
[5] その他の制限:
ファイルに書き込むまでしかできません。
お願いします。
0626デフォルトの名無しさん
2006/07/24(月) 13:56:57while (fscanf(fin,"%d",dat) != EOF){
fprintf(fout,"%d\n",dat*3);
}
0627デフォルトの名無しさん
2006/07/24(月) 14:01:04左の表を右にです。
すいません。
0628デフォルトの名無しさん
2006/07/24(月) 15:00:09ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2450.c
0629デフォルトの名無しさん
2006/07/24(月) 15:19:37while ((n=fscanf(fin, "%d", &dat)) != EOF) {
if (n == 1) {
fprintf(fout, "%d\n", dat * 3);
} else {
fgetc(fin);
}
}
0630デフォルトの名無しさん
2006/07/24(月) 15:50:24すみませんでした。
複数のbmpファイル(24か8bit)を結合させて1つのbmpファイルにする、
gather_1.cを作れ、と言う問題でした。。
0631デフォルトの名無しさん
2006/07/24(月) 16:00:48実行したときに表をウィンドウに表示するにはどうしたらいいですか?
0632デフォルトの名無しさん
2006/07/24(月) 16:06:14fprintfをprintfに
0633デフォルトの名無しさん
2006/07/24(月) 16:08:35もしくはfpwをstdoutに
0634622
2006/07/24(月) 17:49:220635デフォルトの名無しさん
2006/07/24(月) 18:04:01[1] 授業単元: アルゴリズム
[2] 問題文
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2451.txt
[3] 環境
[3.1] OS: WindowsXP
[3.2] Borland C++ 5.5.1
[3.3] 言語:C
[4] 今月中
[5] その他の制限: 特になし
0636デフォルトの名無しさん
2006/07/24(月) 18:06:05↓これを書き換えて作る
for i in ????
????
end
これは明らかにCでは無い
0637デフォルトの名無しさん
2006/07/24(月) 18:16:17for i in 1..600
print i.to_s + " "
if i % 24 == 0
print "\n"
end
end
0638デフォルトの名無しさん
2006/07/24(月) 18:36:300640デフォルトの名無しさん
2006/07/24(月) 18:53:00ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2453.txt
0641死にかけてるものでした
2006/07/24(月) 19:04:25どこか間違っているのか教えてもらえないでしょうか?お願い致します。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2454.txt
[3] 環境
[3.1] OS: Linux(Fedora Core)
[3.2] コンパイラ名とバージョン: gcc バージョンは分かりません
[3.3] 言語:Cのみ
[4] 期限: 24日午後5時までだった...
[5] その他の制限: 指定された以外は標準ライブラリは使ってはいけない。
0642デフォルトの名無しさん
2006/07/24(月) 19:08:46[2] 問題文(含コード&リンク):
以下に表すマージソートのプロトタイプ宣言を, void mergesort(recordtype a[], int n); として作成せよ。
(他の関数定義は, http://hil86.cs.uec.ac.jp/2006/aqj2/materials/q5-skeleton.c にあります)
ただし、作業用配列 b[] を動的に確保せよ(b = malloc(.....); し、最後に free(b); する)。
void mergesort(recordtype a[], int l, int r) {
int i, j, k, m;
recordtype b[6];
if (l < r-1) {
m = (r + l) / 2;
mergesort(a, l, m);
mergesort(a, m, r);
for (i = m-1; i >= l; i--) b[i] = a[i];
i = l;
for (j = m; j < r; j++) b[r+m-j-1] = a[j];
j = r - 1;
for (k = l; k < r; k++)
if (strcmp(b[i].key, b[j].key) < 0) a[k] = b[i++];
else a[k] = b[j--];
}
}
0643642
2006/07/24(月) 19:09:49int main(void) {
#define BUFLEN 128
char buf[BUFLEN];
int i;
for (i=0; i<N; i++) {
fgets(buf, BUFLEN, stdin);
a[i].key = strnew(chomp(buf));
}
mergesort(a, 0, i); /* → mergesort(a, i); */
print_record(a, i);
}
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 7月28日まで
0644デフォルトの名無しさん
2006/07/24(月) 20:31:13ありがとうございました!!
0646デフォルトの名無しさん
2006/07/24(月) 21:03:35[2] 問題文(含コード&リンク): キーボードから7桁の整数を2つ読み込み,その積を表示する.ただし,整数型以外の
変数を用いてはならない.
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: VisualStudio.net2003
[3.3] 言語: C
[4] 期限: できたら今日中にお願いします
[5] その他の制限: 初心者が書くような、プログラムでつくって頂きたいです。
お願いします
0647デフォルトの名無しさん
2006/07/24(月) 21:04:21[2] 問題文(含コード&リンク): http://www.strangeworld.info/uploader/download.php?file=4387
[3] 環境
[3.1] OS: Linux
[3.3] 言語: C
よろしくお願いします
0648デフォルトの名無しさん
2006/07/24(月) 22:29:51数で表示するプログラムを作りなさい。
(2) 正の整数n から1,3,5,…と順に奇数を引けるだけ引いた時、引けた奇数の個数がpn の整数部分にな
る。このようにして、pn の整数部分を求める方法を女の子(めのこ) 平方という。
正の整数n を読み込み、女の子平方によってpn の整数部分を求めるプログラムを作りなさい。
OS: Windows
コンパイラ名とバージョン: gcc
言語: C
期限: 早めで^^;
その他の制限: 特になし
本気困ってます^^;是非お願いします!!
0649デフォルトの名無しさん
2006/07/24(月) 22:47:14お札はイランの?
0650デフォルトの名無しさん
2006/07/24(月) 22:52:41(1)
#include <stdio.h>
int main(void)
{
int goods,payment,coin[]={1,5,10,50,100,500,1000};
int size=(sizeof(coin)/sizeof(int)),i;
int res[(sizeof(coin)/sizeof(int))];
scanf("%d%d",&goods,&payment);
payment-=goods;
if (payment < 0){
printf("金がたんねーよ\n");
return 0;
}
for (i=size-1;i >= 0;i--){
res[i]=(payment/coin[i]);
payment-=(coin[i]*res[i]);
printf("%5d YEN\t%d\n",coin[i],res[i]);
}
return 0;
}
0651デフォルトの名無しさん
2006/07/24(月) 22:56:50それなのに2000も5000もない。
0652デフォルトの名無しさん
2006/07/24(月) 23:08:48#include <stdio.h>
int main () {
int kane;
int nedan;
int turi;
int x[6]={1,5,10,50,100,500};
int y[6];
int i;
printf("値段をいれてください\n");
scanf("%d",&nedan);
printf("お金をいれてください\n");
scanf("%d",&kane);
turi=kane-nedan;
printf("釣り%d\n",turi);
for(i=5;i>=0&&turi>0;i--){
y[i]=turi/x[i];
turi-=x[i]*y[i];
printf("%d円:%d枚\n",x[i],y[i]);
}
return 0;
}
0653デフォルトの名無しさん
2006/07/24(月) 23:11:15女の子平方って何?
これで合ってる?
int n,m,i;
scanf("%d",&n);
for (m=1,i=0;n > 0;n-=m,m+=2,i++);
printf("%d\n",i);
0654デフォルトの名無しさん
2006/07/24(月) 23:12:47なんかやらしいな
0655デフォルトの名無しさん
2006/07/24(月) 23:21:20いやん、ばかん
0656デフォルトの名無しさん
2006/07/24(月) 23:30:27くだらないことをいうんじゃありません
0658デフォルトの名無しさん
2006/07/25(火) 00:08:45できる方いらっしゃいませんでしょうか?
0659デフォルトの名無しさん
2006/07/25(火) 00:15:23マンコの平方ってさたとえば
2の平方もとめるときには
2-1=1 1回
1-2=-1 2回
って数えてもいいの?
それとも一回になるの?
0660デフォルトの名無しさん
2006/07/25(火) 00:16:04[2] 問題文(含コード&リンク):
大きさ20の配列keyを用意し、キーボードから値を入力する。 この配列keyの要素を、単純挿入法で昇順にソートするプログラムを作成せよ。
ただし、ソートの途中経過を画面に出力すること。 また、最後に比較回数を画面に出力すること。
【ヒント】
配列の大きさの指定 ‥ ただし最初の要素は番兵用。よって入力は SIZE - 1 回。
単純挿入法‥未ソートの部分の先頭の要素を、ソート済みの部分に挿入する
途中経過‥未ソートの部分が1つ減るたびに(外ループ)出力。
比較回数‥初期値0の変数を用意し、比較のたびに(内ループ)インクリメント。
[3] 環境
[3.1] OS: xp
[3.2] visual studio2003
[3.3] 言語: c
[4] 期限: 25日まで
[5] その他の制限: ループ、探索、ソート、配列、構造体など
0661デフォルトの名無しさん
2006/07/25(火) 00:19:08main(){
long i,j;
scanf("%d %d",&i,&j);
printf("%d",i*j);
}
0662デフォルトの名無しさん
2006/07/25(火) 00:19:11#include <stdio.h>
int main () {
unsigned int x;
unsigned int y;
scanf("%d",&x);
if(x<1000000) return 1;
scanf("%d",&y);
if(y<1000000) return 1;
printf("%d",x/y);
return 0;
}
会ってる保障はない
0663デフォルトの名無しさん
2006/07/25(火) 00:21:55単純挿入法の意味がわかりません
どうみてもググレです本当にありがとうございました
0664デフォルトの名無しさん
2006/07/25(火) 00:27:44ありがとうございます。助かりました。。
0665デフォルトの名無しさん
2006/07/25(火) 00:31:28ごめん違う!間違ってる!
これ積じゃない商だ!!!!!!!
0666デフォルトの名無しさん
2006/07/25(火) 00:32:000667デフォルトの名無しさん
2006/07/25(火) 00:33:34震え上がるほどの見事な解答、有難う御座いました。。
(うちの環境ではstdlibヘッダが不要なようでしたが、勿論のこと結合できました。)
0668デフォルトの名無しさん
2006/07/25(火) 00:33:350669デフォルトの名無しさん
2006/07/25(火) 00:35:01自分のレスにとは、言え何か凄い否定の仕方だなwwwwwwwwwww
/を*に変えれば良いと思うよ(判ってると思うけどさww)。
0670デフォルトの名無しさん
2006/07/25(火) 00:37:38>>640を含む問題文を見たけど凄いね。
学校でこんなレベルの事を学ぶんだ・・・・・。
何処の学校なの?
0671デフォルトの名無しさん
2006/07/25(火) 00:40:46いや今自分のパソコンでコンパイルしなおしてみたんだが
%dで表示すると10進の整数で表示されるはずなのに-が付いて表示されるんだが・・・
0672デフォルトの名無しさん
2006/07/25(火) 00:41:26それ以前に>662は8桁のチェックをしていないようだが。
0673デフォルトの名無しさん
2006/07/25(火) 00:42:221000000でいいんですか?0足りてますか?
0674デフォルトの名無しさん
2006/07/25(火) 00:43:080675デフォルトの名無しさん
2006/07/25(火) 00:44:117桁未満を排除するのだからいいだろ。
尤も、>672の指摘する通り8桁を排除していないが。
>>671
>672の指摘通り、オーバーフローしているから。
0676デフォルトの名無しさん
2006/07/25(火) 00:44:40後なんでunsignedなのかもよく判らない。
0677デフォルトの名無しさん
2006/07/25(火) 00:45:20ごめんねセイスウチって書いてあるから符号つかっちゃだめかと思った
0678デフォルトの名無しさん
2006/07/25(火) 00:45:540679デフォルトの名無しさん
2006/07/25(火) 00:46:52負の整数値のことも思い出してあげてください。
0680デフォルトの名無しさん
2006/07/25(火) 00:48:07 ̄く<<く >, ゙、/<三三二\ ̄\ゝゝゝゝゝゞ''ヽ、
<<<<〈__入 ゙、く彡三三三二ヽくゝ\メメメゝ、_ゝ、\
くく<<<<<< ゙、 ゙、ミ三三二ニ─ゝゝゝゝゝ,,,,,,,、 '( ゙''ヽ、ヽ、
くくくくくく彡‐ヽ ゙、ミ三三二ニ'''くくゝゝ_ゝゝ、\\_,>」ノ,
く く く く く 彡゙、゙、三三二ニ‐くゝ、/ ,,,,,,,,メメゝヽ''''"ゝゞ丶、
二─二二彡彡、゙、三三二==くメゝ/ ゙'ヽ、メゝゝゝゝゝゝゞ''ヽ、,,,,,,_
‐'''" ̄ \彡彡ミ、゙、三二=''"く<メ/:: \''、メメゝゝゝ_ゝ 、 ,,、ヽヽ
、 ,,,, ゙彡//ヾ、三二= くゝ/:::.... \>∠レ,‐ニ二メヽ''ヽ ノ
゙ヽ、,,,‐//_///,,、゙、三二= ゙、 ""''' ヽ>//レレヽ,,___ /
,,,,,,‐'''"""/////,,ヽ ゙、三二─ ゙ヽ. //ヘヘ,、 レレレレノ さあ願いを言え
''" ,l|"////ノ,、\彡'''''‐ニ,、 ::::::::::,,,,,,,,// ゙ヽフ/|/| レ' どんな願いも聞き流してやろう。
/ゝ、/ヽ|ヽレ,,゙ヽ、゙''ヽ、,,,,,,_ヽ''ニ='',,'"、─,,,,,_  ̄"'ノ
/メ / レ/,''"へへべ''─ ̄メヽ"ゝゞゝヽ、 >''"
0681デフォルトの名無しさん
2006/07/25(火) 00:48:34( ゚д゚)ポカーン
0682デフォルトの名無しさん
2006/07/25(火) 00:54:40#include <stdio.h>
int main () {
long x,y;
scanf("%d",&x);
scanf("%d",&y);
if(x<1000000||y<1000000) return 1;
printf("%x",x*y);
return 0;
}
これでなんとか騙せないかな・・・orz
0683デフォルトの名無しさん
2006/07/25(火) 01:24:460684デフォルトの名無しさん
2006/07/25(火) 01:28:39> [5] その他の制限: 初心者が書くような、プログラムでつくって頂きたいです。
0685デフォルトの名無しさん
2006/07/25(火) 01:31:05もうどうしていいかわからないから
とりあえず-が付くとあからさまに積ではないので
16進数にして誤魔化せないかと
0686デフォルトの名無しさん
2006/07/25(火) 01:33:080687デフォルトの名無しさん
2006/07/25(火) 01:36:03>>601
0688デフォルトの名無しさん
2006/07/25(火) 01:39:06-×+
0689デフォルトの名無しさん
2006/07/25(火) 01:39:37%uしらんのか?
0690デフォルトの名無しさん
2006/07/25(火) 01:40:59しらないつうか手元の本に載ってない
0691デフォルトの名無しさん
2006/07/25(火) 01:42:07うっせwwwwwwwwwwwwwww
0692デフォルトの名無しさん
2006/07/25(火) 01:47:59わかった符号なし表示するのに使うのね
でも使っても桁全然たりねえよorz今日はもう寝る
明日考える
0693デフォルトの名無しさん
NGNGたしか4つある66のどれかに回答があった。
0694デフォルトの名無しさん
2006/07/25(火) 01:57:49[2] 問題文(含コード&リンク): キーボードからファイル名を入力し,そのファイルの文字コードを判別し,画面に表示
する.ただし,指定ファイルの文字コードはJIS,EUC,SJISとする.
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン: VisualStudio2003
[3.3] 言語: C
[4] 期限: できるだけ早くお願いします
[5] その他の制限: 特になし。よろしくお願いします
0695デフォルトの名無しさん
2006/07/25(火) 01:59:54>>660 = >>580 ?
>>601
0696デフォルトの名無しさん
2006/07/25(火) 02:10:360697デフォルトの名無しさん
NGNGたしか4つある66のどれかに回答があった。
0698デフォルトの名無しさん
2006/07/25(火) 02:13:59某大のコンシス専攻っす。
独学でもやってないと毎週大変っす(汗
//他には1からavi,wav,jpegを作ったりもします。(いずれmpeg,movもやるらしい…
0699デフォルトの名無しさん
2006/07/25(火) 02:23:400700デフォルトの名無しさん
2006/07/25(火) 02:35:46宿題丸投げするくらいだから授業も聞き流してるんだろうなぁ・・・
0701デフォルトの名無しさん
2006/07/25(火) 02:39:00仕事も惰性、大きなミスがあっても反省なし・・・
むしろ、ミスがあっても良いという価値観のズレ
0702デフォルトの名無しさん
2006/07/25(火) 03:21:32手抜きだが。手抜きしない場合大変なことになると思われ。
#include <stdio.h>
#include <stdlib.h>
#define JIS 0
#define EUC 1
#define SJIS 2
int doit(const char *fname)
{
FILE *fp;int c;int ret = EUC;
const char *jtypes[] = { "JIS", "EUC", "SJIS" };
if ((fp = fopen(fname, "rt")) == NULL) { perror(fname); return -1; }
while ((c = fgetc(fp)) != EOF) {
if (c == 0x1b) { ret = JIS; break; }
if (c >= 0x80 && c < 0xa0) { ret = SJIS; break; }
}
fclose(fp); puts(jtypes[ret]); return ret;
}
int main(void)
{
char fname[1024]; int rc; int len;
if (fgets(fname, sizeof (fname), stdin) == NULL) return EXIT_FAILURE;
len = strlen(fname);
if (fname[len-1] == '\n') fname[--len] = '\0';
if (fname[len-1] == '\r') fname[--len] = '\0';
rc = doit(fname);
return rc >= 0 ? rc : EXIT_FAILURE;
}
0703デフォルトの名無しさん
2006/07/25(火) 05:32:59wavは正弦波や三角波のジェネレータ作って組み合わせるのかな、とかオモタ
0704死にかけてるものでした
2006/07/25(火) 10:23:48よろしくお願いします。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2459.txt
0705デフォルトの名無しさん
2006/07/25(火) 10:42:540706デフォルトの名無しさん
2006/07/25(火) 10:48:12ソートのforの継続条件が両方ともおかしい。
前者はendと等しいところまで回しているが、コメントではそうは言っていない。
後者はdouble値を文字と比較しているし、そもそもバッファオーバフローしてしまう。
0707デフォルトの名無しさん
2006/07/25(火) 12:24:08既出といわれたのですが、どこにあるのかわからなくて・・・
0708デフォルトの名無しさん
2006/07/25(火) 12:53:49int func(int num){
int i, flag = 0;
for(i = 2; i <= (num - 1); i++){
if(num % i == 0){
flag=1;
break;
}
}
return flag;
}
int main(void){
int n, ans, i;
scanf("%d", &n);
for (i = 2; i <= n; i++)
if (func(i) == 0) ans = i;
printf("%d", ans);
return 0;
}
0709デフォルトの名無しさん
2006/07/25(火) 13:04:08#include<stdio.h>
#define N 256
int sosu(int n){int i,j,prime[N];
if(n < 2) return -1;
for(i=1;i<N;i++)prime[i]=0;prime[0]=2;
for(j=3;j<=n;j++){for(i=0;i<N;i++){
if(prime[i]==0){prime[i]=j;break;}
if(j%prime[i]==0)break;}}
for(i=0;i<N;i++)if(prime[i]==0)break;
return prime[i-1];}
int main(){int n=2;
while(n>1){scanf("%d",&n);
printf("%d\n\n",sosu(n));}
return 0;}
効率とか特に考えずに書いた。反省はしてない。
0710デフォルトの名無しさん
2006/07/25(火) 13:12:110711デフォルトの名無しさん
2006/07/25(火) 13:16:380713デフォルトの名無しさん
2006/07/25(火) 13:23:13#include <stdio.h>
int sosu2(int x){
int i;
for(i=2;i<x;i++){
if(x%i==0){
return 1;
}
}
return 0;
}
int sosu(int x){
int i;
int y=0;
if(sosu2(x)!=0){
for(i=2;i<x;i++) {
if((x%i!=0)) y=i;
}
}
else y=x;
return y;
}
int main () {
int x;
scanf("%d",&x);
x=sosu(x);
printf("%d",x);
return 0;
}
会ってる保障はない
0714デフォルトの名無しさん
2006/07/25(火) 13:32:25突破口すらみつかりませんよ
0715デフォルトの名無しさん
2006/07/25(火) 13:50:34#include<stdio.h>
int main(){long a,b;scanf("%ld %ld",&a,&b);
printf("%.0f",(double)a*(double)b);return 0;}
0716デフォルトの名無しさん
2006/07/25(火) 13:52:39アホ
0717デフォルトの名無しさん
2006/07/25(火) 13:55:310718デフォルトの名無しさん
2006/07/25(火) 13:59:520719デフォルトの名無しさん
2006/07/25(火) 14:00:270720デフォルトの名無しさん
2006/07/25(火) 14:12:28どれかわからんがBignumとかでぐぐりゃやろうとしてるの解決できるよ
0721デフォルトの名無しさん
NGNGヒント:多倍長整数
0722デフォルトの名無しさん
2006/07/25(火) 14:58:47まあ、同じ回答すると教授にバレてしまうかもしれないけど
0723デフォルトの名無しさん
2006/07/25(火) 15:09:23なるほど
巨大すぎる整数は扱える桁に分割してあつかうでおk?
0724死にかけてるものでした
2006/07/25(火) 15:22:53指摘されたところを調べたところfor文のjが暴走していることに気づき
無事に解決できました。ありがとうございましたm(_ _)m
0725デフォルトの名無しさん
2006/07/25(火) 15:41:41これからどうやって積だしたらええねん
0726デフォルトの名無しさん
2006/07/25(火) 15:47:290727デフォルトの名無しさん
2006/07/25(火) 16:03:07あ
でた
0728デフォルトの名無しさん
2006/07/25(火) 16:07:21#include <stdio.h>
int main () {
long x,y;
scanf("%ld",&x);
scanf("%ld",&y);
if(x<1000000||y<1000000) return -1;
if(x>9999999||y>9999999) return -1;
printf("%.0f",(double)x*(double)y);
return 0;
}
会ってる保障はない
0729デフォルトの名無しさん
2006/07/25(火) 16:31:41[2]
3つの係数a,b,cを読み込み、2次方程式 a*x*x+b*x+c=0の解を求める
関数void qurd(double a,double b,double c)を作成せよ。
ただし、解が重解、2つの実数解、虚数解を持つ場合の3つに分けて答を出力せよ。
何組かのデータを入力でき、ctrl+zで終了するプログラムを作成すること。
問題の画像です。
http://venus.aez.jp/uploda/index.php?dlpas_id=26134
pass:cplus
[3.1] Windows XP
[3.2] VC 6.0
[3.3] C++
[4] 金曜日までに
[5] 標準ライブラリ関数までは習っています。
0730デフォルトの名無しさん
2006/07/25(火) 16:34:18[2] 問題文:1800年から2100年の間で入力された
西暦と月からその月のカレンダーを表示する。
また、カレンダーの下にその月の祝祭日を日にち付きで表示する。
ただし、祝祭日は海の日などは改定前と後できちんと分ける。
(春分の日、秋分の日は一定でよい。)
閏年も考慮し、月初めの曜日はツェラーの公式で求める。
カレンダーの表示は2次元配列で表示し、日曜始まりの形式か
月曜はじまりの形式かをユーザが選べるようにする。
関数を最低1つは使用すること。
[3] 環境
[3.1] OS: Windows XP
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語:C++
[4] 期限: 2006年8月4日17:00まで
[5] その他の制限: 配列・関数まで習いました。クラスなどは
ならっていないです。
遅くとも8月10日までにA〜E5段階で評価が返ってくるので、
作成者様のご希望があれば、評価がきたらここでご報告いたします。
ではよろしくお願いします。
0732デフォルトの名無しさん
2006/07/25(火) 17:59:41旧暦とか法改正とか国民の休日とかむちゃくちゃ大変だと思うが、その割に六曜は無視していいというアンバランスさ。
とりあえず各祝日の定義と有効期間を調べてまとめてくれよ。
0733デフォルトの名無しさん
2006/07/25(火) 18:29:43すまそ、今回初めて訊いたんだ。。
//しかもテスト1週前に課題出されるというOTL
0734デフォルトの名無しさん
NGNG春分の日と秋分の日は一定なのか…
つか明治の改暦前の日付はどう処理するんだ。グレゴリオ暦じゃ明治の休日は表記できないぞ。
天保暦にするのか?天保暦には曜日はないぞ。天保暦の休日は1、6の日と5節句、24節季だけ
でいいのか?神道の大祭を入れるのか?仏教か?
今上天皇の在位を何年までと見積もるんだ?
そこら辺の仕様がわからんと手が出せない。
0735デフォルトの名無しさん
2006/07/25(火) 18:39:420736デフォルトの名無しさん
2006/07/25(火) 18:51:000737デフォルトの名無しさん
NGNG簡単のような気がしてならない。
0738デフォルトの名無しさん
2006/07/25(火) 18:54:27毎週ちゃんと授業を受けてるなら丸投げはしないだろ
試験前でも寝食を削って勉強に勤しめ
0739デフォルトの名無しさん
2006/07/25(火) 19:39:14ttp://koyomi.vis.ne.jp/directjp.cgi?http://koyomi.vis.ne.jp/syukujitsu.htm を
もとにまとめてみた。
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2460.txt
0740デフォルトの名無しさん
NGNG国民の休日は「法定祝日に挟まれた平日を休日」なので、日曜日と祝日に挟まれた日は除外。
ちなみに適用も1986年から。
振替休日は2006年までは「日曜日と法定祝日が重なった日の翌日」で2007年からは「日曜日と
法定祝日が重なった日の次の平日」となる。
そのため、春分・秋分を固定にしてしまうと国民の休日と振替休日が正しく表示できない。
新嘗祭は、1872年までは「11月の2回目の卯の日」。
0741デフォルトの名無しさん
2006/07/25(火) 20:14:140742デフォルトの名無しさん
2006/07/25(火) 20:19:460743デフォルトの名無しさん
NGNGいけないんだが資料がない。
0744デフォルトの名無しさん
2006/07/25(火) 20:36:140745デフォルトの名無しさん
2006/07/25(火) 20:37:55修正版
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2461.txt
0746デフォルトの名無しさん
2006/07/25(火) 20:41:11[2] 問題文(含コード&リンク):
****問題1****
ファイルxxx.txt から文字を読み込み,
大文字と小文字を区別しないでアルファベット26文字の出現頻度をカウントし,
最も頻度の大きいアルファベットとその出現回数を出力するプログラムを作成し,ソースコードを投稿せよ.
****問題2****
ファイル yyy.txt の中身は,
ある文書中の文字をすべて数文字づつずらした文書とすることで暗号化したものである.
このファイルから文字を読み込み,
大文字と小文字を区別しないでアルファベット26文字の出現頻度をカウントし,
最も頻度の大きいアルファベットが暗号化される前の e という文字であると仮定して,
ずらした文字を推測し,元の文書を出力して表示するプルグラムを作成し,ソースコードを投稿せよ.
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限:明日
[5] その他の制限:特になし
お願いします><
0747デフォルトの名無しさん
2006/07/25(火) 20:44:05あと四方拝は法律上制定されてないみたいだけど、もしかして皇室典範の方も
調べないといけない?
0748デフォルトの名無しさん
2006/07/25(火) 21:04:04[1] 授業単元:基本プログラミング
[2] 問題文(含コード&リンク):入力した整数n(0<n<10)に対してサイズnの九九表を出力するプログラム.
0以下,もしくは10以上の数を入力したところで終了
実行例
Input n : 6
1 2 3 4 5 6
1 1 2 3 4 5 6
2 2 4 6 8 10 12
3 3 6 9 12 15 18
4 4 8 12 16 20 24
5 5 10 15 20 25 30
6 6 12 18 24 30 36
Input n : 3
1 2 3
1 1 2 3
2 2 4 6
3 3 6 9
Input n : 12
Good bye
[3] 環境
[3.1] OS: UNIX
[3.3] 言語:C++
[4] 期限: 明日
[5] その他の制限: なし
0749デフォルトの名無しさん
2006/07/25(火) 21:08:320750デフォルトの名無しさん
NGNG皇室祭祀令という法律で規定されているはず。
0751デフォルトの名無しさん
2006/07/25(火) 21:31:16#include <stdio.h>
int main(){
int kuku[9][9] = {
{1, 2, 3, 4, 5, 6, 7, 8, 9}, {2, 4, 6, 8,10,12,14,16,18},
{3, 6, 9,12,15,18,21,24,27}, {4, 8,12,16,20,24,28,32,36},
{5,10,15,20,25,30,35,40,45}, {6,12,18,24,30,36,42,48,54},
{7,14,21,28,35,42,49,56,63}, {8,16,24,32,40,48,56,64,72},
{9,18,27,36,45,54,63,72,81}
};
int i, j, n;
while(1){
printf("Input n : ");
scanf("%d",&n);
if(n<=0 || n>=10)
break;
for(i=0; i<n; i++){
for(j=0; j<n; j++)
printf("%2d ",kuku[i][j]);
printf("\n");
}
}
return 0;
}
0752デフォルトの名無しさん
2006/07/25(火) 21:33:42C++
0753デフォルトの名無しさん
2006/07/25(火) 21:40:49するプログラムを作成してください。ただし、入力する半径の範囲は2〜79
に制限し、正しい値が入力されるまで何度も入力させるようにして下さい。
0754デフォルトの名無しさん
NGNG�_
0755デフォルトの名無しさん
2006/07/25(火) 21:50:28float input=0;
while(input<2 || input>79)
scanf("%f",&input);
printf("直径%fの円",input);
return 0;
}
0756デフォルトの名無しさん
2006/07/25(火) 21:53:37・二つのプロセスで、同じ番地に別々のデータが記録されている
・二つのプロセスのうち、片方のプロセスである番地にデータを書込んでも、 もう一方のプロセスの同じ番地には変化がない
なお、特定の番地のデータを調べたり、その番地にデータを書込んだりするには、 C言語ではポインタを利用する。
0757デフォルトの名無しさん
2006/07/25(火) 21:54:05http://www.borujoa.org/upload/source/upload6925.c
問題2のアルファベット以外の文字の扱いとか'a'〜'z'超えた分とかの扱いは適当だから、修正して使って。
0758デフォルトの名無しさん
2006/07/25(火) 21:56:49#include <stdio.h>
int main()
{
const char *filename="yyy.txt";
int count[26]={0}, i;
char ch;
char max_index=-1, max_value=0;
FILE *fp;
if ((fp=fopen(filename, "r"))==NULL)
return 1;
while( (ch=fgetc(fp)) != EOF)
{
if (ch>='a' && ch<='z')
{
count[ch-0x60]++;
}
else if (ch>='A' && ch<='Z')
{
count[ch-0x40]++;
}
}
0759デフォルトの名無しさん
2006/07/25(火) 21:57:24for (i=0 ; i<26 ; i++)
{
if (count[i]>max_value)
{
max_index=i;
max_value=count[i];
}
}
if (max_index == -1)
printf("アルファベットはありませんでした\n");
else
printf("最も頻度の大きいアルファベットは%cでその出現回数は%d回でした\n", max_index+0x60, max_value);
fclose(fp);
return 0;
}
0760デフォルトの名無しさん
2006/07/25(火) 21:58:13[2] Linuxでは、多重アドレス空間(多重仮想記憶)を採用しており、 プロセスごとに別々の仮想アドレス空間を利用している。 以下のような手順でこれを確認しなさい。
・二つのプロセスで、同じ番地に別々のデータが記録されている
・二つのプロセスのうち、片方のプロセスである番地にデータを書込んでも、 もう一方のプロセスの同じ番地には変化がない
なお、特定の番地のデータを調べたり、その番地にデータを書込んだりするには、 C言語ではポインタを利用する。
[3] 環境
[3.1] OS: Linux
[3.2]
[3.3] 言語: C
[4] 期限:週末
[5] その他の制限:
0761デフォルトの名無しさん
2006/07/25(火) 21:59:23#include <iostream>
#include <iomanip.h>
using namespace std;
int main(){
int n;
cout << "Input n : ";
cin >> n;
if (n <= 0 || n >= 10){
cout << "Good bye" << endl;
} else {
cout << " ";
for (int i = 1; i <= n; i++) cout << setw(3) << i ;
cout << endl;
for (int i = 1; i <= n; i++){
cout << i;
for (int j = 1; j <= n; j++) cout << setw(3) << i * j;
cout << endl;
}
}
return 0;
}
年によって変わるのは
成人の日(2000年からは1月の第2土曜日・それ以前は全て1月15日)
海の日(2003年から7月の第3月曜日・それ以前は全て7月20日)
体育の日(2000年から10月の第2月曜日・それ以前は全て10月10日)
天皇誕生日(1900〜1987年は4月29日
1988〜2030年は12月23日、それ以前は無くて良し)
それ以外は今の祝日と全部一緒の日にちで。この程度でいいよ、だそうです…
一生懸命難しいことを考えてくださったみなさま申し訳ないorz
じゃあなんで1800年からなんですかって聞いたら
深く考えずに適当作っちゃった、この授業でそんな難しい課題
だすわけないだろと…言われました。
いろいろ考えてくれた皆様ほんとにごめんなさい…
授業時にちゃんときいておくべきでした…
0764デフォルトの名無しさん
2006/07/25(火) 22:44:07と、それを見る前にうpしてしまった。
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2462.zip
0765デフォルトの名無しさん
2006/07/25(火) 22:49:20わかんないけど Segmentation Fault とか Bus Error とか出ないことを保証するやりかたって
あるのかねえ?
0766デフォルトの名無しさん
2006/07/25(火) 23:08:06[1] 授業単元:計算機演習
[2] 問題文(含コード&リンク)
50文字以内の文字列をキーボードから入力させると,
その文字列中に"ok"という部分文字列が含まれている場合は,"Yes"
含まれていない場合は,"No" と出力するプログラムを作成せよ。
ただし,"Yes" の場合はその出現回数も出力すること.
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 今週の金曜日
[5] その他の制限: なし
0767デフォルトの名無しさん
2006/07/25(火) 23:09:49おい、勝手に天皇を97才で殺すなよ。
0768デフォルトの名無しさん
2006/07/25(火) 23:14:00#include<stdio.h>
#include<string.h>
int main(){
char buf[51],*p=buf,*q;
int count = 0;
gets(buf);
while((q=strstr(p,"ok")) != NULL)
p=q+2,++count;
printf(count?"Yes %d":"No",count);
return 0;
}
0769765
2006/07/25(火) 23:15:01ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2463.zip
0770764
2006/07/25(火) 23:17:23765もおれだけど。。765はファイルスコープの変数つくってそれにアクセスしたら .data だか .sdata だかに
領域確保されるから複数プロセスで同一アドレスが保証されそうな希ガス。
0771デフォルトの名無しさん
2006/07/25(火) 23:22:030772デフォルトの名無しさん
2006/07/25(火) 23:29:44ありがとうございました
0773デフォルトの名無しさん
2006/07/26(水) 00:10:24>・二つのプロセスで、同じ番地に別々のデータが記録されている
すまん、試してみたがこれを実現できねえorz
0774デフォルトの名無しさん
2006/07/26(水) 00:12:45[2] 問題文(含コード&リンク):
課題1
次の仕様を満たすプログラムをC言語を用いて作成せよ:
・入力: 整数a、d、自然数n
・出力: 初項a、公差dの等差数列の初項から第nまでを全て
課題2
次の仕様を満たすプログラムをC言語を用いて作成せよ:
・入力: 非負整数を有限個(初めて負の数が入力された時点で打ち切り、その直前までの数を使う)
・出力: 入力された数の中にある偶数の個数と奇数の個数
課題3
・入力: 自然数n≧2
・出力: 入力された0,1,2…n-1の中でnと互いに素なものの個数
なお、mとnが互いに素であるとは、それらの最大公約数が1であることを言う。
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ名とバージョン:Bcc5.5
[3.3] 言語:C
[4] 期限:明日 17:00
[5] その他の制限: なし
宜しくお願いします。
0775デフォルトの名無しさん
2006/07/26(水) 00:27:54これでいいんじゃね?
#include <stdio.h>
#include <string.h>
int main(int argc, char **argv){
char buf[256] = {0};
strcpy(buf, argv[1]);
for(;;){
printf("%p : %s\n", buf, buf);
sleep(1);
}
return 0;
}
上をコンパイルして、ターミナル二つひらいて、片方で
./a.out aaaaa
もう片方で、
./a.out bbbbbb
とかやれば。保証はないけど、上のbufのアドレスは、、あず一致する。
0776デフォルトの名無しさん
2006/07/26(水) 00:29:08○ まず一致する。
0777デフォルトの名無しさん
2006/07/26(水) 00:30:450778760
2006/07/26(水) 00:32:13>769
>773
ご協力感謝します!
mmap()とかは関係ないですかね?
もうホントC苦手
助けて下され…
0779765
2006/07/26(水) 00:33:33感謝!試してみます!
0780779
2006/07/26(水) 00:34:39>779は>760です、失礼しました
0781デフォルトの名無しさん
2006/07/26(水) 00:57:06エラーが出てしまうのですが、、 なんなのでしょう、、 たすけてください
0782デフォルトの名無しさん
2006/07/26(水) 00:58:58pidは同じ番地で異なる値が入る。fork()の仕様だけど。
valは子プロセスが値を書き換えたあと、親プロセスで表示しても値変化なし。
#include <stdio.h>
#include <unistd.h>
int main(void){
int pid;
int val = 0;
pid = fork();
if (pid == 0) {
printf("child: pid:%08x=%d\n", &pid, pid);
val = 1;
printf("child: val:%08x=%d\n", &val, val);
} else {
printf("parent: pid:%08x=%d\n", &pid, pid);
wait(NULL);
printf("parent: val:%08x=%d\n", &val, val);
}
return 0;
}
0783760
2006/07/26(水) 01:03:540784デフォルトの名無しさん
2006/07/26(水) 01:07:360785デフォルトの名無しさん
2006/07/26(水) 01:22:49このようにして、√n の整数部分を求める方法を女の子(めのこ) 平方という。
正の整数n を読み込み、女の子平方によって√n の整数部分を求めるプログラムを作りなさい。
main() {
int n, x, f;
n=200;
x=n;
for (f=1; f<0 ; f++) {
x = x-((f*2)-1);
if (x < 0) { break; }
}
f--;
printf("√%dの整数部分は%d。", n, f);
}
これで√200の整数部分が0になってしまうんですがなぜでしょう?
救って下さい。期日今日
0786760
2006/07/26(水) 01:31:42賢人たちよ、ありがとう
0787デフォルトの名無しさん
2006/07/26(水) 01:32:030788デフォルトの名無しさん
NGNGそのクソ教師の名前を晒したら教えてやる。
>天皇誕生日(1900〜1987年は4月29日
ありえねえ。
0789デフォルトの名無しさん
2006/07/26(水) 01:34:30とりあえず、>>1も読めないほど焦っているのはわかった。
0790デフォルトの名無しさん
2006/07/26(水) 01:34:370791デフォルトの名無しさん
2006/07/26(水) 01:36:03ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2464.txt
まちがっててもしらないんだぜ?
0792デフォルトの名無しさん
2006/07/26(水) 01:36:54オネガイ一問目の答えも教えて(;;)
0794デフォルトの名無しさん
2006/07/26(水) 01:42:110795785
2006/07/26(水) 01:58:24まず、おつりを10000で割る。→福沢先生の枚数
tmpには余りをぶちこんどく。
次はその余りを5000で割る。→5000円札の枚数
tmpにはその余りを。
今度はその余りを1000でry
これを5円玉まで繰り返せば最後に余ったのが自動的に1円玉の枚数だ
ぽまえもK大学でおk?
俺へぼだからあんまあてにすんな
0796デフォルトの名無しさん
2006/07/26(水) 02:19:59アリガトンクス^^できたぽ
そだよ、あのTAの人絶対小さいころガリガリ君って呼ばれてたよねww
と内輪ねたスマソ
みなさんと795サンにとても助けられました。
賢人たちよ、ありがとう
0797デフォルトの名無しさん
2006/07/26(水) 02:31:30有難うございます!助かりました〜。
でも課題3が
不要な}
ってエラーが出てしまうんですが、何処が不要なのか分かりません…
解いてもらった上にこんなこと言ってご迷惑かけますが、修正お願いできませんか?
よろしくお願いしますっ(^-^)
0798デフォルトの名無しさん
2006/07/26(水) 02:37:44うちじゃエラーでないのでなんともいえん。つづきでうpしたらみないこともないが。
ちなみに提出時は課題1,2,3で別々のプログラムにわけたほうがいいお。
0799デフォルトの名無しさん
2006/07/26(水) 03:12:32#include <stdio.h>
#include <math.h>
#define PI 3.1415926535897932
#define CLEAR() printf("\x1b[2J")
#define LOCATE(x,y) printf("\x1b[%d;%dH",y,x)
#define SCREEN_H 80
#define SCREEN_V 80
int input_decimal(int min, int max) {
char buf[1024]; int n;
for (;;) {fprintf(stderr, "Type an number between %d and %d.\n", min, max);
if (fgets(buf, sizeof (buf), stdin) == NULL) continue;
n = atoi(buf);if (n >= min && n <= max) break;
}
return n;
}
void circle(int n) {
double r = n/2.0;
double step = PI*2/180;
double d, x, y;
CLEAR();
for (d = 0; d < PI*2; d += step) {
x = cos(d) * r; y = sin(d) * r;
LOCATE(SCREEN_H/2+(int)(x+.5), (SCREEN_V/2+(int)(y+.5))/2);
putchar('#');
}
fflush(stdout);
}
int main(void) { int n = input_decimal(2, 79); circle(n); }
0800デフォルトの名無しさん
2006/07/26(水) 03:42:16#include <stdio.h>
void quad(double a, double b, double c)
{
double d = b*b-4*a*c;
printf("a = %5.2lf, b = %5.2lf, c = %4.2lf\n", a, b, c);
if (d > 0) {
printf("実数解 : x1 = %5.2lf, x2 = %5.2lf\n",
(-b+sqrt(d))/(2*a),
(-b-sqrt(d))/(2*a)
);
} else if (d == 0) {
printf("重解 : x = %5.2lf\n", -b/(2*a));
} else {
printf("虚数解 : 実数部 = %5.2lf, 虚数部 = %5.2lf\n",
-b/(2*a), sqrt(-d)/(2*a));
}
}
int main(void)
{
double a,b,c;
puts("2次方程式の3つの係数を入力してください");
while (scanf("%lf %lf %lf", &a, &b, &c) != EOF) {
if (a == 0) { puts("係数 a は 0 意外でなければなりません"); continue; }
quad(a, b, c);
}
return 0;
}
0801デフォルトの名無しさん
2006/07/26(水) 06:50:34どうでもいいけどヒントが馬鹿すぎ。
0803デフォルトの名無しさん
2006/07/26(水) 07:06:10ありがとうございました
0804801(802に挙げられた他のどれでもない)
2006/07/26(水) 07:47:45暇なときは回答もするが、忙しいと問題をさっと眺めるだけ。
>729の問題は、わざわざ画像だと言うから何かと思って見てみたのだ。
0805デフォルトの名無しさん
2006/07/26(水) 10:09:22こんなエラーです
$ gcc otsuri.c
/cygdrive/c/DOCUME~1/ADMINI~1/LOCALS~1/Temp/ccSCn32t.o:otsuri.c:(.text+0x288): u
ndefined reference to `_ptintf'
collect2: ld returned 1 exit status
問題は
(1) 品物の値段とお客の支払った金額を読み込んで、おつりが必要なときには、その額を貨幣の種類と枚
数で表示するプログラムを作りなさい。
0806デフォルトの名無しさん
2006/07/26(水) 10:09:53作ったプログラムはこれです
#include <stdio.h>
main()
{
int price, pay,n;
printf("おつりを計算します、品物の値段を入力してください\n品物の値段=");
scanf("%d", &price);
printf("支払われた金額を入力してください\n支払われた額=");
scanf("%d", &pay);
n=pay-price;
if(n<0){
printf("お金が足りまひぇん");
}
else{
printf("10000円の数=%d",n/10000);
printf("5000円の数=%d",n%10000/5000);
printf("2000円の数=%d",n%5000/2000);
printf("1000円の数=%d",n%2000/1000);
printf("500円の数=%d",n%1000/500);
printf("100円の数=%d",n%500/100);
printf("50円の数=%d",n%100/50);
ptintf("10円の数=%d",n%50/10);
}
}
ヘルプミー^^;
0807デフォルトの名無しさん
2006/07/26(水) 10:19:240809デフォルトの名無しさん
2006/07/26(水) 10:25:03出来た!!
ありがとう(;;) 今日提出なんです、ホントに助かりました、、
0810デフォルトの名無しさん
2006/07/26(水) 11:02:03[1] プロセス制御
[2][任意] mmap()を使うと、 複数のプロセス間で仮想アドレス空間の一部を共有することができる。 このようなプログラムを作成し、 実際に仮想アドレス空間の一部が共有されていることを確認しなさい。
[3] 環境
[3.1] Linux
[3.2] gcc 3.4
[3.3] C
[4] 期限:週末
0811デフォルトの名無しさん
2006/07/26(水) 11:46:060812デフォルトの名無しさん
2006/07/26(水) 14:33:31[2] 問題文(含コード&リンク): サーバープログラムを作りエンゲル係数を求めよ (家計の消費支出と飲食費を入力しエンゲル係数を求める)
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
[3.3] 言語:どちらでも可
[4] 期限: 2006年07月26日まで
[5] その他の制限: 特になし
どうか、よろしくお願いします。
0813デフォルトの名無しさん
2006/07/26(水) 14:49:230814デフォルトの名無しさん
2006/07/26(水) 15:15:36サーバープログラムってどんなやつ?
0815デフォルトの名無しさん
2006/07/26(水) 16:04:41#include <stdio.h>
#include <sys/types.h>
#include <sys/mman.h>
#include <unistd.h>
int main(void)
{
pid_t pid;
int i;
int *mapped_ptr = (int *)mmap(NULL, /* start */
sizeof (int), /* length */
PROT_READ | PROT_WRITE, /* prot */
MAP_SHARED | MAP_ANONYMOUS, /* flags */
-1, /* fd */
0 /* offset */
);
if (mapped_ptr == MAP_FAILED) { perror("mmap"); return 1; }
*mapped_ptr = 0;
if ((pid = fork()) == -1) { perror("fork"); return 1; }
for (i = 0; i < 5; i ++) {
while ((*mapped_ptr&1) == (pid==0)) usleep(200000);
(*mapped_ptr) ++;
printf("%s: Incremented to %d.\n",
pid == 0 ? "Parent":"Child", *mapped_ptr);
}
if (pid != 0) wait(NULL);
munmap(mapped_ptr, sizeof (int));
return 0;
}
0816デフォルトの名無しさん
2006/07/26(水) 16:07:15pid == 0 ? "Parent":"Child", *mapped_ptr);
これは
pid != 0 ? "Parent":"Child", *mapped_ptr);
のまちがいな。
0817デフォルトの名無しさん
2006/07/26(水) 16:09:14ホームページ上で入力された数値を計算してその結果を表示させる
みたいな感じのやつです
0818デフォルトの名無しさん
2006/07/26(水) 16:13:130819デフォルトの名無しさん
2006/07/26(水) 16:23:24何か壮大な勘違いをしている予感
0820デフォルトの名無しさん
2006/07/26(水) 16:29:080821デフォルトの名無しさん
2006/07/26(水) 16:34:390822デフォルトの名無しさん
2006/07/26(水) 16:36:080823デフォルトの名無しさん
2006/07/26(水) 16:39:270824デフォルトの名無しさん
2006/07/26(水) 16:48:330825デフォルトの名無しさん
NGNGDCOMか?
0826デフォルトの名無しさん
2006/07/26(水) 18:26:580827812
2006/07/26(水) 18:57:27この課題はオリジナルのWWWサーバの作成で、
TCPによるサーバプログラムを作成せよという課題でした。
0828デフォルトの名無しさん
2006/07/26(水) 19:01:540829デフォルトの名無しさん
2006/07/26(水) 19:10:410830デフォルトの名無しさん
2006/07/26(水) 19:10:52[2] 問題文(含コード&リンク): ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2465.txt
[3] 環境
[3.1] OS: Windows XP
[3.2] コンパイラ名とバージョン: Borland C++ 5.5
[3.3] 言語: C
[4] 期限: 2006/08/02
[5] また、です。技術不足で恥ずかしいのですが…。
0831デフォルトの名無しさん
2006/07/26(水) 19:19:02ワロタ
0832デフォルトの名無しさん
2006/07/26(水) 20:07:06#include <stdio.h>
#include <string.h>
#include <netdb.h>
#define PORT 8888
void httpserver(int fd) {
char buf[4096], *p;
int t = 0, f = 0;
FILE *fp = fdopen(fd, "r");
while (fgets(buf, sizeof (buf), fp) != NULL) {
if (buf[0] == '\r' || buf[0] == '\n') break;
if ((p = strstr(buf, "t=")) != NULL) t = atoi(p+2);
if ((p = strstr(buf, "f=")) != NULL) f = atoi(p+2);
}
if (t == 0) { p = "ERR\r\n"; send(fd, p, strlen(p), 0); }
else { sprintf(buf, "%d", 100 * f / t); send(fd, buf, strlen(buf), 0); }
close(fd);
}
int main(void) {
int sock;
struct sockaddr_in server;
int i = 1;
sock = socket(AF_INET , SOCK_STREAM , 0);
setsockopt(sock , SOL_SOCKET , SO_REUSEADDR , (char *)&i , sizeof(int));
server.sin_family = AF_INET;
server.sin_addr.s_addr = INADDR_ANY;
server.sin_port = htons(PORT);
if (bind(sock , (struct sockaddr *)&server , sizeof (server)) < 0) { perror("bind"); return 1; }
listen(sock , 5);
for (;;) httpserver(accept(sock, NULL, NULL));
return 0;
}
0833デフォルトの名無しさん
2006/07/26(水) 20:12:16頭でこれを追加。
#define FORM "<html><body><form>TOTAL<input type=text name=t><br>FOODS<input type=text name=f><input type=submit></body></html>"
if (t == 0) { p = "ERR\r\n"; send(fd, p, strlen(p), 0); } のかわりに
if (t == 0) { p = FORM; send(fd, p, strlen(FORM), 0); }
0834デフォルトの名無しさん
2006/07/26(水) 20:22:21ありがとうございます!
学校じゃないとできないんで、さっそく明日やってみます!
0835デフォルトの名無しさん
2006/07/26(水) 20:29:20お前何度もこのスレにお世話になってるだろ?
いい加減cygwin入れろよ。
家でプログラミングできない環境で、宿題なんかできるはずもないしw
0836デフォルトの名無しさん
2006/07/26(水) 20:36:58わかりました!
いつもありがとうございます!
0837デフォルトの名無しさん
2006/07/26(水) 20:53:05いや、答えてるのは複数人だから。今回は俺じゃねーし。
0838デフォルトの名無しさん
2006/07/26(水) 21:12:26いいんだよ。みんな「宿題スレの中の人」さ。
0839デフォルトの名無しさん
2006/07/26(水) 22:07:59(#^ω^)ビキビキ
難しくて最後まで読めなかったお
0840デフォルトの名無しさん
2006/07/26(水) 22:11:06[2] 問題文(含コード&リンク):下に記載
[3] 環境
[3.1] OS: windows
[3.2] コンパイラ名とバージョン VC 6.0等
[3.3] 言語:どちらでも可(出来たらC++)
[4] 期限: 2006年08月01日まで
[5] その他の制限: 特になし
宿題というか、卒業研究なのですが
「ニューラルネットワークをバックプロパゲーション法(BP)で学習させて、
その学習させたネットワークを使って出力を出す」
というプログラムが作りたいです。
ttp://www.sist.ac.jp/~suganuma/cpp/3-bu/18-sho/18-sho.htm#e-18-4
ここにあるBP法は、VC++で動いたのですが、
このプログラムだと、学習のみで、テストをすることが出来ません。
学習させたネットワークを使って出力を出したいのですが・・・。
もう、藁にもすがる思いです。
よろしかったら、どなたかお分かりになる方、よろしくお願いします・・・。
0841デフォルトの名無しさん
2006/07/26(水) 22:56:10卒研とか自分でやらないと意味ないんじゃ?
0842デフォルトの名無しさん
2006/07/26(水) 22:58:23まったくもって正論。
0843810
2006/07/26(水) 23:07:19" ゚☆,。・:*:・゚★o(´▽`*)/♪Thanks♪\(*´▽`)o゚★,。・:*:・☆゚ "
0844830
2006/07/26(水) 23:28:25すみません…
単純化すればただ値を代入して左辺と右辺を比べるだけというものなんで、
文章の説明の仕方がへたくそなのが大きいと思います。
0845デフォルトの名無しさん
2006/07/26(水) 23:33:52というか何を識別したいのかさっぱりなんだお
識別器というからには何らかの基準で学習行うんだろけど、何の識別器かわからないんじゃ手の打ちようがないお
0846830
2006/07/26(水) 23:48:56ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2468.txt
正直分からない点もありまして…。
0847デフォルトの名無しさん
2006/07/26(水) 23:53:26だからどこがわからないのか
0848デフォルトの名無しさん
2006/07/26(水) 23:54:38何も考えずにSVMとかにしちゃっていいのかお?
線形識別可能とか非線形もとか何か言ってなかったかお?
0849830
2006/07/27(木) 00:00:06誤識別率を推定せよ、ということだったので、おそらく何も考えずにやっちゃって構わないと思います。
線形識別可能や非線形といったことには触れていなかったはずです。
>>847
一番分からないのは出た値を最終的にどう判断すればいいのかが…
とりあえず左辺と右辺との値を算出して、それを元に何とか考えようかと思ったのですが…。
0850デフォルトの名無しさん
2006/07/27(木) 00:10:15俺は高卒だから恥ずかしいわw
0851830
2006/07/27(木) 00:12:37自力で解決できない私であることは間違いないですから…。
0852デフォルトの名無しさん
2006/07/27(木) 00:13:17http://ex11.2ch.net/test/read.cgi/campus/1150542432/
0853デフォルトの名無しさん
2006/07/27(木) 00:18:07ごめんお、教師有学習と勘違いしてたお
一つ抜き法でぐぐっててきとーに理解したお
気分が向けば、てきとーな理解でてきとーなプログラム書くお
正直、その筋の人を呼んできたほうがいいと思うお
0854830
2006/07/27(木) 00:22:530855デフォルトの名無しさん
2006/07/27(木) 01:40:38識別器を設計する2つの方法の1つ目は、・・・
最終的に全部の要素について判定するというものです。
もう1つの方法は、・・・
全部の要素がテストサンプルになるまで繰り返すというものです。
日本語おかしいお
0856830
2006/07/27(木) 08:35:20そこに一つ一つ代入して識別、
2つ目の設計方法は1要素を抜き出してそれ以外(29個)で設計、
そこにその抜き出した要素を代入して識別、
次に一度抜き出した要素とは別の要素を抜き出してそれ以外(29個)で設計、
そこに抜き出した要素を代入して識別…ということです。
すみません…。
0857デフォルトの名無しさん
2006/07/27(木) 09:40:450858デフォルトの名無しさん
2006/07/27(木) 09:54:340859デフォルトの名無しさん
2006/07/27(木) 10:24:09[2] 問題文(含コード&リンク):下に記載
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:visual studio2003
[3.3] 言語:C++
[4] 期限:明日の朝まで
[5] その他の制限:特になし
キーボードからの入力で指定されたファイルに書かれている数式を読み込み
数式を計算した結果を表示する。ただし、数式に含まれる可能性がある記号は
「0123456789*/+-()」のみ(すなわち整数と四則演算と括弧だけ)で256以内とする。
また、計算結果が整数とならない場合は浮動小数点で計算結果を表示する。
どなたかお願いしますつ-;)
0860デフォルトの名無しさん
2006/07/27(木) 10:28:190861デフォルトの名無しさん
2006/07/27(木) 10:31:250862デフォルトの名無しさん
2006/07/27(木) 10:34:23一週間以上前に出た課題なのですが自力でやるつもりが、、、
結局できなくて、ぎりぎりに助けを求める感じになってしまいました。
_| ̄|●
0863デフォルトの名無しさん
2006/07/27(木) 10:49:16ヒント:夏休み前
0864デフォルトの名無しさん
2006/07/27(木) 10:54:390865デフォルトの名無しさん
2006/07/27(木) 11:17:58http://fxp.hp.infoseek.co.jp/arti/parser.html
これを計算の結果をdoubleで持つようにして、式をファイルから読み込むように改造すれば
なんとかなるんじゃないの?
0866デフォルトの名無しさん
2006/07/27(木) 11:41:10で、自力でどこまでやったの?
逆ポーランド記法とかそのパージングとか直接法とかはやってみたの?
やるつもりが、、、ということはやってないんだろ?氏ねばいいよ。
0867orz
2006/07/27(木) 11:46:11[2]問題文(含コード&リンク)西暦と月を入力し、その月のカレンダーを出力してください。
曜日は「月、火、水、木、金、土、日、月、火、水・・・」と周期的に繰り返されます。もしある月の一日が月曜日なら
、次の月曜日は八日、その次の月曜日は十五日と七日ずつ違ってくる。つまり一日が日曜日である月のday日が何曜日であるかはdayを七で
割った余りを計算することでわかる。例えば十八日の場合七で割った余りが四なので木曜日になります。
プログラムの構成:西暦yearと月monthを入力します。
西暦year年month月一日が何日目(days)かを計算します。
daysを七で割った余りに応じて空白を出力し、その後1,2,3...と出力します。このとき七つのデータを出力するごとに改行して頂ければ.....
[3]環境:C言語です
[4]お願いします。スルーしないでください。助けてくださいorz
配列までしかならっていません。関数はまだ習っていないです。
期限:7月31日です。お願いします。
0868デフォルトの名無しさん
2006/07/27(木) 11:58:38お主はこのスレに向いてないと思うでござる。
0869デフォルトの名無しさん
2006/07/27(木) 12:09:04説明の意味が分からない。。。
その月の一日の曜日が分かれば、あとはなんにも計算する必要はないと思うが。
0870デフォルトの名無しさん
2006/07/27(木) 12:26:24その月の1日の曜日を計算しなくてはいけないのが非常に面倒
0871デフォルトの名無しさん
2006/07/27(木) 12:29:42mktime()で、年月日から時間を作って、localtimeで、struct tmに戻せば、
曜日もセットされてるんじゃない?
0872デフォルトの名無しさん
2006/07/27(木) 12:30:32char s[] = "foo"; と,char *p = "bar"; の二つの初期化の違いを述べよ.
call by reference と関数の引数との関係を説明せよ.
s *= (x > y) ? a : b; を if 文を用いて書き直せ.
k = 0; while (k < 100){ k++; } を,永久ループを用いて書き直せ.
整数変数 a, b にそれぞれ 3 が代入されているとき, c = a--; と d = ++b; によって,整数変数 a, b, c, および d には何が代入されるか述べよ.
静的変数と自動変数の違いについて述べよ.
'z' と "z" のそれぞれの違いを述べ,占有するメモリのサイズを答えよ.
すいません 教えてください
0873デフォルトの名無しさん
2006/07/27(木) 12:32:04というかマルチじゃないか?
0874デフォルトの名無しさん
2006/07/27(木) 12:33:51>>1読んでテンプレ使え
0875デフォルトの名無しさん
2006/07/27(木) 12:33:52それだ!
0876デフォルトの名無しさん
2006/07/27(木) 12:55:17[2] 問題文
if(k - 1) puts("OK"); else puts("NG"); であるとき,どういう場合に NG と印字されるか説明せよ
call by reference と call by reference について両者の違いを述べよ
k = 0; while (k < 100){ k++; } を,永久ループを用いて書き直せ
静的変数と自動変数の違いについて述べよ.
double型のポインタ変数と int型のポインタ変数 は,それら自身のサイズについて,どちらがどれだけ大きいか述べよ
次の記述において,誤り3を下線で示し,どこが悪いかを説明して,正しいコードに直せ.
double x = 1 / 3;
int k = 3, x[k];
char x[9] = "hoge hoge";
char *p[10] = "test";
char *s = "foo"; *s = 'a';
[3] 環境
[3.1] Linux
[3.3] 言語: C
[4] 期限: 14:35からテストです。
お願いします。
0877笹井奈琴
2006/07/27(木) 12:56:41http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2469.cpp
できたー!割と大変だった。
1. ファイル読み込み部分は自分でやってね。
2. ちゃんとしたテストは実施してないので
細かいバグとか、メモリリークとかあるかも。
0878笹井奈琴
2006/07/27(木) 13:06:38double x = (double)1/(double)3; // これは間違いなのか?微妙
int k =3, x[3];
char x[] = "hoge hoge"; // intの配列のxと、名前がかぶってるのは無視
char *p = "test"; // char p[] = "test"; or char *p[10] = { "test" }; どれが正しいのか微妙
char s[] = "foo"; s[0] = 'a'; //たぶんこういうこと?
(k-1)が否零のとき。
どう見ても同じです。本当にあ(ry
k=0;while(1)if(++k>100)break;
どう見ても同じです。本当にあ(ry
どう見ても誤りが4カ所ある。目的不明なのでどう直せばいいのかも不明。
0880笹井奈琴
2006/07/27(木) 13:13:54うえにもあったのか、
■NGと印字される時
k-1が0のとき
( kが1(か、1にきわめて近い時) )
■call by valueのまちがい?
call by reference : オブジェクトそのもの(へのポインタ)をわたす
call by value : オブジェクトのコピーを渡す
■永久ループ
for( k=0;;k++ ) if( 100 <= k ) break;
■静的変数と自動変数(自信ないけど、この回答だと、少なくとも△くらいはもらえると思う)
動的変数は制御がブロック内にあるときだけ有効、制御がブロックから外れるとなくなる
静的変数は、プログラム実行中はずっとある。
■double型のポインタとint型のポインタ
ポインタの大きさは一緒
( これって規格で補償されてるんだっけか?)
0881笹井奈琴
2006/07/27(木) 13:15:25問題には番号を付けろ!回答しにくいっ!!
0882デフォルトの名無しさん
2006/07/27(木) 13:18:06「2」int k = 3, x[k];
「3」char x[9] = "hoge hoge";
「4」char *p[10] = "test";
「5」char *s = "foo"; *s = 'a';
わかりづらくて、すいません 5個問題があってそれぞれの間違いを示す問題です。
0883デフォルトの名無しさん
2006/07/27(木) 13:18:07カレンダー状に出力するのが面倒だからあきらめていいかな
0884デフォルトの名無しさん
2006/07/27(木) 13:18:240885help ◆g/ZMVdytmo
2006/07/27(木) 13:19:22[2] 問題文(含コード&リンク):
問1、整数型変数iにすでに1以上5以下の値が読み込まれているものとする。
switch分を用いて、iの値が5ならfive、4ならfour、3ならthree、2ならtwo、1ならoneと印刷するプログラムの一部を答えなさい。
問2、上と同じ問題で、iの値が例えば5ならfive four three two one、3ならthree two one と、カウントダウンしていくように印刷するには、(a)の回答の何処をどのように変えたらよいか?
(変数部分だけを答えればよい)
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2006/07/27 PM2:30まで
[5] その他の制限: 特になし
0886デフォルトの名無しさん
2006/07/27(木) 13:20:28答えられる場所だけ。
k=0;while(true){k++;if(!(k<100))break;}
http://www9.plala.or.jp/sgwr-t/c/sec12.html 参考ページ
間違い直しは、
double x = 1.0/3;
char x[10] = "hoge hoge";
先生的にはこういう回答を求めてる?
0887デフォルトの名無しさん
2006/07/27(木) 13:22:44カルピスねえ
精子のむおwwwwwwwwwwwwwww
0888デフォルトの名無しさん
2006/07/27(木) 13:23:12既出のモノ
あとは題意にそって改造して
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2285.txt
0889笹井奈琴
2006/07/27(木) 13:24:06■一部?
switch(i) {
case 5: printf("five"); break;
case 4: printf("four"); break;
case 3: printf("three"); break;
case 2: printf("two"); break;
case 1: printf("one"); break;
}
■変数??
案1:printfのパラメータを"five four three two one"とかにかえる
案2:breakをとっぱらう
案3:swichのまえにfor( ; 0 < i; i-- ) を置く
0893デフォルトの名無しさん
2006/07/27(木) 13:37:510896help ◆g/ZMVdytmo
2006/07/27(木) 13:54:48どうもありがとうございます。
もうひとつ如何しても分からないのがあるのでお願いしたいのですが…
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
問1、float型の配列要素a[0]〜a[n-1]のあいだの最大値maxと、最小値minを求めて返すvoid型の関数max_minのプロトタイプ宣言を書きなさい。
問2、関数max_minの呼び出しの例を1つ書きなさい。
問3、ダミー要素付き(headerという名の構造体変数)の連結リストによって実現されたスタック(空でないと仮定する)に、関数mallocで確保され、ポインタnewで指されている新しい要素を積む(pushする)ために必要なポインタの付け替えをC言語で書きなさい。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2006/07/27 PM2:30まで
何度もすいません。
0897hetare ◆NPjWSW9EXI
2006/07/27(木) 14:03:21[2] 問題文(含コード&リンク):
ある消費者金融で、gankin円を月利riritsu%の福利で借りた。毎月hensai円ずつ返していくものとする。
gankin(int型), riritsu(float型), hensai(int型) の3つの数値を入力して、返済額合計goukeiを求めて出力するプログラムを作ったら、その一部は次のようになった。
while, if の中、gankin, goukei の後の部分を埋めよ。
[3] 環境
[3.1] OS:Vine Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2006/07/27 PM2:40まで
0898笹井奈琴
2006/07/27(木) 14:06:23それ、ホントに問題全文?
なんか条件がよくわかんない。
不明な点は脳内で補完したけど...文句言わないでよ
問1:
void max_min( const float* a, int n, int* max, int* min );
問2:
#define SIZE 100
float array[SIZE] = { ... };
int x, y;
max_min( array, SIZE, &x, &y );
問3:
header -> next = new;
new -> prev = header;
new -> next = 0;
header = new;
こういうこと????
0899hetare ◆NPjWSW9EXI
2006/07/27(木) 14:06:59goukei = 0;
while(){
gankin = gankin*(1+riritsu*0.01); /* 円未満は切り捨て */
if(){{
goukei += hensai;
gankin ;
}
else{
goukei ;
gankin = 0;
}
}
0901デフォルトの名無しさん
2006/07/27(木) 14:12:00floatの配列の最大値と最小値をintで受けてどうする。
おまけに、変数名xだとかyだとかって、何考えてるんだ?
0902デフォルトの名無しさん
2006/07/27(木) 14:14:26>gankin円を月利riritsu%の福利で借りた。
問題を書いた香具師が間抜けなのか書き写した香具師が阿呆なのかどっちだ?
0903笹井奈琴
2006/07/27(木) 14:15:09ああ、値そのものを返すのか。
( インデックスを返すつもりになってた )
xとかyとかは、まあ...「仮引数と実引数の区別ついてますよ!」ってアピールwww
>>900
問1:
void max_min( const float* a, int n, float& max, float& min );
で、
問2:は、int x, y;をfloat x, y;になおす。
0904デフォルトの名無しさん
2006/07/27(木) 14:17:240905デフォルトの名無しさん
2006/07/27(木) 14:17:41while(gankin>0){
gankin = gankin*(1+riritsu*0.01); /* 円未満は切り捨て */
if(gankin>hensai){
goukei += hensai;
gankin -=hensai;
}else{
goukei += gankin;
gankin = 0;
}
}
0906デフォルトの名無しさん
2006/07/27(木) 14:18:08落ち着け。問題の言語指定はCだ。
0909デフォルトの名無しさん
2006/07/27(木) 14:23:28[2] 問題文(含コード&リンク):
(a)曜日を含む日付(年月日)を表すことのできる構造体date_tを定義しなさい。
ただし、曜日はSun,Mon....Satのいずれかで表すものとする
(b)date_t型の変数dateを宣言し、その年は2006,月は7であることを仮定して、
日と曜日が一致していればYesと、一致していなければNoと出力する部分を
書きなさい。ただし、2006年7月1日は土曜日であった。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 30分
意味がわかりません助けてくださいお願いします!
0911hetare ◆NPjWSW9EXI
2006/07/27(木) 14:30:26[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):
次に示す挿入ソートの内側の繰り返しに [j >= 1] という条件をAMDで加える必要がある理由を、どういう場合(例示でもよい)にそれが必要になるかも含めて述べなさい。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2006/07/27 PM2:45までです
さっぱり分かりません。
ご教授お願いします。
0912hetare ◆NPjWSW9EXI
2006/07/27(木) 14:34:06void insertion_sort( int a[], int a)
{
int i, j, t;
for(i = 1; i < n; i++){
j = i;
while( j >= 1 && a[j-1] > a[j] ){
t = a[j]; a[j] = a[j-1]; a[j-1] = t;
j--;
}
}
}
0913hetare ◆NPjWSW9EXI
2006/07/27(木) 14:48:42さすがに時間が厳しいとでしょうけどお願いします
0914デフォルトの名無しさん
2006/07/27(木) 15:03:17[1] 授業単元:c言語プログラミング
[2] 問題文(含コード&リンク):
これまでに作成した3種類のソート
単純選択法、単純交換法、単純挿入法について、それぞれを関数化しなさい。
大きさ20の配列keyを用意し、キーボードから値を入力する。 この配列keyの要素を、昇順にソートする
各ソートの途中経過を画面に出力すること。 また、最後に各ソートの比較回数を画面に出力すること。
【ヒント】
キーボードから配列にデータを入力する関数 input_array
配列の内容を画面に出力する関数 output_array
単純選択法を行う関数 linear_sort
単純交換法を行う関数 bubble_sort
単純挿入法を行う関数 insertion_sort
メイン関数
[3] 環境
[3.1] OS: xp
[3.2] visual studio2003
[3.3] 言語: C
[4] 期限: 今月末まで
[5] その他の制限:配列ループポインタソート関数
0915デフォルトの名無しさん
2006/07/27(木) 15:03:40i == 1から始まってるし。強いて言えば、配列がa[0]から始まっていると
いう事か。でもそれじゃ理由にならんね。C言語では当たり前だし。
0916デフォルトの名無しさん
2006/07/27(木) 15:04:240917デフォルトの名無しさん
2006/07/27(木) 15:14:24[2]10進の整数を入力し、これをn進(1<n<10)の整数に変換するプログラムを作れ。
int を使う。
例.10進整数92を7進数にする場合、94と7を入力すると163が出力されるようにする。
ヒント.94を7進表記する場合
94÷7=13…3なので、3を配列要素a[0]に代入する。
次に、13÷7=1…6なので、6を配列要素a[1]に代入する。
同様に、1÷7=0…1なので1を配列要素a[2]に代入する。
このように商が0になるまで続け、配列要素を逆順に表示する。
[3]Windows
C++
[4]2006/7/31
[5]習った制御構造は if else for while だけです。
return や break は習っていません。
配列はほんのさわりだけ習いました。
超初心者ですが、よろしくお願いします。
>最大値maxと、最小値minを求めて返すvoid型の
ポカーン(AA略
#include<stdio.h>
#include<stdlib.h>
int main(void){char tmp[100];int i,n;printf("10進整数:");fgets(tmp,sizeof(tmp),stdin);
i=atoi(tmp);printf("(1<n<10):");fgets(tmp,sizeof(tmp),stdin);n=atoi(tmp);
printf("%s\n",itoa(i,n));return 0;}
最後の行訂正。
itoa(i,tmp,n);printf("%s\n",tmp);return 0;}
0921デフォルトの名無しさん
2006/07/27(木) 15:42:22#include<stdio.h>
int main(){int a[256],x,n,i=0;
scanf("%d",&x);scanf("%d",&n);
if(n<1||10<n)return 1;
while(x>=n){a[i]=x%n;x/=n;i++;}
a[i]=x;while(i>=0){printf("%d",a[i]);i--;}
return 0;}
0922デフォルトの名無しさん
2006/07/27(木) 16:01:270923917
2006/07/27(木) 16:01:27>>919
すごく早いレス、本当にありがとうございます。
確かに作動できました。
できれば return を使わないでやりたいのですが、それは可能ですか?
習ったものだけで出来ると先生は仰っていたので。
0924デフォルトの名無しさん
2006/07/27(木) 16:05:01wikiとか
0925デフォルトの名無しさん
2006/07/27(木) 16:06:48#include<stdio.h>
main(){int a[256],x,n,i=0;
scanf("%d",&x);scanf("%d",&n);
if(1<n&&n<10){
while(x>=n){a[i]=x%n;x/=n;i++;}a[i]=x;
while(i>=0){printf("%d",a[i]);i--;}}}
0926デフォルトの名無しさん
2006/07/27(木) 16:09:55はい、言い出しっぺの君がやることに決定
>できれば return を使わないでやりたいのですが、それは可能ですか?
mainは値を返さなければならない。
0929デフォルトの名無しさん
2006/07/27(木) 17:18:14未解決と思わしき課題を全部拾い上げて来い。
お前がだ。
0931デフォルトの名無しさん
2006/07/27(木) 21:30:060932デフォルトの名無しさん
2006/07/27(木) 22:15:52『これまでに作成した3種類のソート 』を晒せ
0933デフォルトの名無しさん
2006/07/27(木) 22:25:06[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):
�@ファイルから40個の数値を読み込み,
バブルソートによって数値を降順に並べ替えるプログラムを作成し,
23番目に大きい数を出力するプログラム
○○○.dat を入力データとして使用すること
�Aポインタを用いてswap関数を定義し、
数値を降順に並べ替えるクイックソートを実行し、
8番目に大きい数値を出力するプログラム
○○○.dat を入力データとして使用すること
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 明日まで
[5] その他の制限:特になし
0934デフォルトの名無しさん
2006/07/27(木) 22:41:49以降、ソートの宿題禁止で。
0935デフォルトの名無しさん
2006/07/27(木) 22:45:45識別器の式は与えられてるものなのかお?
(たぶん)事後確率が最大で出てくるクラスと判別するんだと思うんだが
これだと何を指標に判別すればよいのやら
右辺>左辺の場合どっちのクラスで、左辺>右辺の場合どっちなのかも書いておくれ
0936830
2006/07/27(木) 23:16:55右辺>左辺 → x∈A2
とあります。
書くのを省いてしまってすみません。
0937デフォルトの名無しさん
2006/07/28(金) 00:30:45>>914のプログラムです。
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2472.txt
途中まで自力でやりました。
あとは単純挿入法を付け加えれば完成です…。よろしくお願いします
0938デフォルトの名無しさん
2006/07/28(金) 00:34:19単純挿入法のプログラムの方はソートとしてはできあがっているのですが、かなり修正が必要です
そこで挫折してしまいました
0939デフォルトの名無しさん
2006/07/28(金) 00:51:300940デフォルトの名無しさん
2006/07/28(金) 01:37:56比較回数だからlinear_sortのcoutの位置が違う
for(j=i+1; j<SIZE; j++)
{
if(p[k] > p[j])
k = j;
count++;
}
tmp=p[i];
p[i]=p[k];
p[k]=tmp;
for(j=0;j<SIZE;j++)
printf("%d ",p[j]);
0941デフォルトの名無しさん
2006/07/28(金) 01:43:160942ど素人
2006/07/28(金) 02:12:372.通常プログラムカウンタはプログラムの実行にしたがって一定の大きさだけ増えていく.
しかし,時に,プログラムカウンタに直前の値とは大きく異なる値がセットされる
時がある.それはどんな時か?
3.次のプログラムは何を行うプログラムか.簡単に説明しなさい.また,
結果を得るまでに,A[k]==aの比較が行われた回数を書きなさい.
A=new Array(3, 8, 19, 20, 22, 24, 45);
i=0;
j=A.length-1;
a=19;
k=Math.floor((i+j)/2);
while(i<=j){
if(A[k] == a){
break;
}
else if(A[k] > a){
j = k - 1;
}
else{
i = k + 1;
}
k = Math.floor((i+j)/2);
}
if(i>j) k=-1;
document.write(a," ",k);
0943デフォルトの名無しさん
2006/07/28(金) 02:13:22[2] 問題文(含コード&リンク):
ある整数をキーボードから入力したとき
整数を引数として,その整数が素数ならば 1 を値として返し,
素数でないならば 0 を値として返す関数に書き換えなさい.
その関数を用いて,
ある整数をキーボードから入力すると1からその整数までの素数の数を出力するプログラムを作成しなさい
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 今日
おねがいします
0944デフォルトの名無しさん
2006/07/28(金) 02:15:59マルチ&板違い
死ね
0945デフォルトの名無しさん
2006/07/28(金) 02:28:25#include<stdio.h>
int sosu(int n){int i;
if(n<2)return 0;
for(i = 2; i < n; i++)
if(n % i == 0) return 0;
return 1;}
int main(){int n,i;
scanf("%d",&n);
for(i=1;i<=n;i++)
if(sosu(i))printf("%d ",i);
return 0;}
0946デフォルトの名無しさん
2006/07/28(金) 02:34:090947デフォルトの名無しさん
2006/07/28(金) 03:00:05これないと動かないと講師に注意しとけ
#include <iostream>
using namespace std;
class Array {
private:
int array[8];
public:
Array() {}
Array(int a, int b = -1, int c = -1, int d = -1,int e = -1, int f = -1, int g = -1, int h = -1) {
array[0] = a; array[1] = b; array[2] = c; array[3] = d;
array[4] = e; array[5] = f; array[6] = g; array[7] = h;
for (length = 0; length < 8; length ++) if (array[length] == -1) break;
}
int operator[](int index) { return array[index]; }
int length;
};
struct Math {static int floor(int n) { return n; } };
Math Math;
struct Document {static void write(int a, char* s, int k) {cout << a << s << k << endl;}
};
Document document;
#define new
0948デフォルトの名無しさん
2006/07/28(金) 03:10:16ワロタ
0949デフォルトの名無しさん
2006/07/28(金) 03:41:43教えて下さい!お願いします!
ABCDの4人が一列に並ぶ方法は、全部で4!=24通りある。その24通りを全て表示する関数 make_pattern を作成せよ。ただし、printf文を10回以上使ってはいけない。
ヒント:4重ループを作成し、ある条件を満たす時にのみ並びを表示する。
0950デフォルトの名無しさん
2006/07/28(金) 04:28:50#include <stdio.h>
#include <stdlib.h>
static int is_gaishutsu(int *buffer, int size, int number) {
for (--size; size>=0; --size) if (buffer[size] == number) return 1;
return 0;
}
static void make_pattern_sub(int *buffer, int radix, int size, int index)
{
int i,j;
if (index >= size) {
for (i = 0; i < size; i ++) putchar('A' + buffer[i]);
putchar('\n');
return;
}
for (i = 0; i < radix; i ++) {
if (is_gaishutsu(buffer, index, i)) continue;
buffer[index] = i;
make_pattern_sub(buffer, radix, size, index+1);
}
}
void make_pattern(int radix, int size) {
int *buffer = malloc(sizeof (int) * size);
make_pattern_sub(buffer, radix, size, 0);
free(buffer);
}
int main(void) {
for (;;){for (;;){for (;;){for (;;){ make_pattern(4, 4); goto END;}}}}
END:
return 0;
}
0951デフォルトの名無しさん
2006/07/28(金) 04:34:18> for (;;){for (;;){for (;;){for (;;){ make_pattern(4, 4); goto END;}}}}
ちょw
0952デフォルトの名無しさん
2006/07/28(金) 04:57:11void make_pattern(void){
int i, j, k, l;
for(i=0;i<1;i++)for(j=0;j<1;j++)for(k=0;k<1;k++)for(l=0;l<1;l++)
if(i==0){
putchar('A');putchar('B');putchar('C');putchar('D');
putchar('A');putchar('B');putchar('D');putchar('C');
以下略
}
}
printfが使えないなら、putcharを使えばいいじゃない
0953デフォルトの名無しさん
2006/07/28(金) 05:00:55#include <stdio.h>
void make_pattern(void)
{
int i, j, k, l;
char letters[] = "ABCD";
for (i = 0; i < 4; i ++) {
for (j = 0; j < 4; j ++) {
for (k = 0; k < 4; k ++) {
for (l = 0; l < 4; l ++) {
if (((1<<i)|(1<<j)|(1<<k)|(1<<l))==0x0f) {
printf("%c%c%c%c\n", letters[i], letters[j], letters[k], letters[l]);
}
}
}
}
}
}
0954デフォルトの名無しさん
2006/07/28(金) 05:09:130955デフォルトの名無しさん
2006/07/28(金) 05:10:35そういう問題文なの?
0956デフォルトの名無しさん
2006/07/28(金) 05:11:400957デフォルトの名無しさん
2006/07/28(金) 05:13:33>>950
0958デフォルトの名無しさん
2006/07/28(金) 08:08:01いつの間にか寝てました。。
>>953
この講師が厄介でO阪大学を首席で卒業したらしく、頭が悪いうちの生徒はいつも見下されてるんです。。
0959デフォルトの名無しさん
2006/07/28(金) 08:23:28if (((1<<i)|(1<<j)|(1<<k)|(1<<l))==0x0f) {
これを
if (i!=j&&i!=k&&i!=l&&j!=k&&j!=l&&k!=l) (
にしとくと目立たない模範解答になるよ。
0960デフォルトの名無しさん
2006/07/28(金) 08:30:56ありがとうございます!
ホントに助かりました!!
0961デフォルトの名無しさん
2006/07/28(金) 08:40:22#include <stdio.h>
int main()
{
printf("ABCD\nABDC\nACBD\nACDB\nADBC\nADCB\nBACD\nBADC\nBCAD\nBCDA\nBDAC\nBDCA\nCABD\nCADB\nCBAD\nCBDA\n"
"CDAB\nCDBA\nDABC\nDACB\nDBAC\nDBCA\nDCAB\nDCBA\n");
return 0;
}
これで提出しちゃえ
0962デフォルトの名無しさん
2006/07/28(金) 10:54:014重ループがないぞ!!1!
0963デフォルトの名無しさん
2006/07/28(金) 11:01:230964デフォルトの名無しさん
2006/07/28(金) 11:33:58台の上には(10cm,27cm)の位置に半径1cmの玉があり、
時刻0に(x,y)(0≦x≦20,0≦y≦30)の位置から質点をθ(0≦θ≦2π)の角度に
速度v(cm/sec)で突き出すとする。台には摩擦はないものと仮定し、壁面でも
エネルギーを失うことなく、入射角=反射角を満たしつつ跳ね返るものとする。
【問題】引数(x,y,θ,v,T)に対して、もし質点がT秒以内で玉に衝突するなら
衝突するまでの時間を秒単位で、衝突しないなら-1を返す関数を定義し、
(x,y,θ,v,T)=(10,0,π/6,5,45)に対して実行せよ。
学校のC言語の課題です。提出まで残り2時間です><
よろしくお願いします><
mainのreturnは省略可。
0966デフォルトの名無しさん
2006/07/28(金) 12:08:13おれは2時間じゃ�_
>>965
まじ?ソースある?
0967デフォルトの名無しさん
2006/07/28(金) 12:13:07C++とC99の話じゃないかな?<戻り値省略
まぁ、レガシーCでも警告だけだし。
0968デフォルトの名無しさん
2006/07/28(金) 12:58:40できれば,直径を使いたいです。
0969デフォルトの名無しさん
2006/07/28(金) 13:02:36意味不明。市ね。
0970デフォルトの名無しさん
2006/07/28(金) 13:14:45エスパーではないが意味はかなり明瞭だと思うぞ
テンプレに従ってないからなあ
むしむし
0971デフォルトの名無しさん
2006/07/28(金) 13:21:08さるプログラミングコンテストの優秀作品だから、きっと参考になると思うよ!('(゚∀゚∩
ttp://www0.us.ioccc.org/1988/westley.c
0972デフォルトの名無しさん
2006/07/28(金) 13:34:32台が回転しておしまい
いや、C89でも警告でないでしょ。
0974デフォルトの名無しさん
2006/07/28(金) 13:42:13確かソースも円形になってたような
0975デフォルトの名無しさん
2006/07/28(金) 14:19:25を作成して下さい。ただし入力する半径の範囲は2から79に制限して下さい。
0976デフォルトの名無しさん
2006/07/28(金) 14:24:17>>1をよく読んで書き直せ
0977デフォルトの名無しさん
2006/07/28(金) 14:25:29#include <stdio.h>
int main(void)
{
int c;
while((c = fgetc(stdin)) != EOF){
fprintf(stdout, "○ (d = %c)\n", c);
}
return 0;
}
0978デフォルトの名無しさん
2006/07/28(金) 14:26:30ありがとうございます!
0979デフォルトの名無しさん
2006/07/28(金) 14:29:020980デフォルトの名無しさん
2006/07/28(金) 14:30:28>>977でいいのか?
俺はてっきり…
0981デフォルトの名無しさん
2006/07/28(金) 14:32:080982デフォルトの名無しさん
2006/07/28(金) 14:32:340983デフォルトの名無しさん
2006/07/28(金) 14:33:260984デフォルトの名無しさん
2006/07/28(金) 14:34:130985デフォルトの名無しさん
2006/07/28(金) 14:38:280986デフォルトの名無しさん
2006/07/28(金) 14:38:47C/C++の宿題を片付けます 66代目
http://pc8.2ch.net/test/read.cgi/tech/1152094206/
0987デフォルトの名無しさん
2006/07/28(金) 14:40:250988デフォルトの名無しさん
2006/07/28(金) 14:41:220989デフォルトの名無しさん
2006/07/28(金) 14:46:43[1]2単位
[2]キーボードから円の直径dを入力し,文字を使って直径dの円を表示するプログラム
を作成して下さい。ただし入力する半径の範囲は2から79に制限して下さい。
[3]OS(windowsxp),c言語
[4]後,3時間です。
[5]do-while文,for文をつかって下さい。
ほんとにお願いします。
0990デフォルトの名無しさん
2006/07/28(金) 14:50:59単位落としていいよ
0991デフォルトの名無しさん
2006/07/28(金) 14:51:400992デフォルトの名無しさん
2006/07/28(金) 14:52:150993デフォルトの名無しさん
2006/07/28(金) 14:52:480994デフォルトの名無しさん
2006/07/28(金) 14:53:240995デフォルトの名無しさん
2006/07/28(金) 14:54:460996デフォルトの名無しさん
2006/07/28(金) 14:55:310997デフォルトの名無しさん
2006/07/28(金) 14:56:020998デフォルトの名無しさん
2006/07/28(金) 14:56:21【質問は】C/C++の宿題を片付けます 66代目【ちゃんと書け】
http://pc8.2ch.net/test/read.cgi/tech/1152094206/
0999デフォルトの名無しさん
2006/07/28(金) 14:56:322単位にワロタ
1000デフォルトの名無しさん
2006/07/28(金) 14:56:3410011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。