C/C++の宿題を片づけ作戦指令 30代目
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNGプログラミング能力がないにも関わらず授業を取った学生諸君が困り果てている。彼らは、いずれ単位を落とすだろう。
君の任務は持ち込まれる宿題を解き、質問者の窮状を救ったり足下を掬ったりすることだ。
例によって当局は一切関知しないからそのつもりで。
なおこのスレは1000まで達した後自動的に消滅する。
【注意点】 -------------------------------------------------
・問題はしっかりと解いてもらう方にわかりやすいように
問題文などの省きはやめ、全文を書きましょう。
・使用する言語(C/C++)や環境(CUI/ANSIとか
GUI/Windows32bitAPI など)は必ず書きましょう。
・計算問題は必ず数式自体をあげ、どのような計算をするのか
くわしく説明してください。
・エラーは、その行とエラーの詳細を書きましょう。
エラーメッセージが出た場合はそのままコピーしてください。
・後になって問題につけたしをするのはやめましょう。
解いてもらっている方に失礼になってしまいます。
------------------------------------------------------------
【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
http://do.sakura.ne.jp/%7Ejunkroom/cgi-bin/megabbs/lounge/index.html
【歴代スレは>>2-10】
0002デフォルトの名無しさん
NGNG28代目: http://pc5.2ch.net/test/read.cgi/tech/1089974839/
27代目: http://pc5.2ch.net/test/read.cgi/tech/1089448445/
26代目: http://pc5.2ch.net/test/read.cgi/tech/1088860889/
25代目: http://pc5.2ch.net/test/read.cgi/tech/1087929711/
24代目: http://pc5.2ch.net/test/read.cgi/tech/1086612317/
23代目: http://pc5.2ch.net/test/read.cgi/tech/1085149383/
22代目: http://pc5.2ch.net/test/read.cgi/tech/1083050221/
21代目: http://pc5.2ch.net/test/read.cgi/tech/1078157730/
20代目: http://pc5.2ch.net/test/read.cgi/tech/1075217631/
19代目: http://pc5.2ch.net/test/read.cgi/tech/1073566342/
18代目: http://pc5.2ch.net/test/read.cgi/tech/1071407728/
17代目: http://pc5.2ch.net/tech/kako/1070/10704/1070469896.html
16代目: http://pc5.2ch.net/tech/kako/1069/10698/1069837000.html
15代目: http://pc5.2ch.net/tech/kako/1068/10689/1068950713.html
14代目: http://pc5.2ch.net/tech/kako/1067/10671/1067175933.html
13代目: http://pc5.2ch.net/tech/kako/1064/10645/1064541405.html
12代目: http://pc5.2ch.net/tech/kako/1060/10607/1060706382.html
11代目: http://pc5.2ch.net/tech/kako/1058/10582/1058283913.html
10代目: http://pc5.2ch.net/tech/kako/1057/10570/1057070174.html
9代目: http://pc5.2ch.net/tech/kako/1055/10559/1055944101.html
8代目: http://pc5.2ch.net/tech/kako/1055/10550/1055056940.html
7代目: http://pc5.2ch.net/tech/kako/1053/10539/1053963794.html
6代目: http://pc5.2ch.net/tech/kako/1053/10530/1053045530.html
5代目: http://pc5.2ch.net/tech/kako/1051/10515/1051594046.html
4代目: http://pc5.2ch.net/tech/kako/1045/10450/1045074808.html
3代目: http://pc5.2ch.net/tech/kako/1041/10419/1041992392.html
2代目: http://pc3.2ch.net/tech/kako/1039/10397/1039772622.html
宿題手伝いますYO!!: http://pc3.2ch.net/tech/kako/1038/10380/1038024989.html
0003デフォルトの名無しさん
NGNGこの擦れはム板に珍しくネタが洗練されてるな。
0004デフォルトの名無しさん
NGNGイイヨ イイヨ
0005デフォルトの名無しさん
NGNGウ〜ン、発想はオモシロイんだが、AA がないんだよなぁ…
0006デフォルトの名無しさん
NGNG0007デフォルトの名無しさん
NGNG「テキストファイルから2つの整数を読み込み、和、差、積、商、余りを表示し、
結果を別のファイルに書き込むプログラムを作れ」というものです。
よろしくおねがいします。
0008デフォルトの名無しさん
NGNGどんな形式で2つの整数が書いてあるんだ?
たとえば
7 2
とか
7
2
とか色々あるだろ
0010デフォルトの名無しさん
NGNG良くわからないけど,こんな感じ?
#include <stdio.h>
int main(int argc, char** argv)
{
FILE* in = fopen(argv[1], "rb");
FILE* out = fopen(argv[2], "wb");
int a, b;
while(fscanf(in, "%d%d", &a, &b) > 0) {
fprintf(stdout, "wa:%d\nsa:%d\nseki:%d\nshou:%lf\namari:%d\n",
a + b, a - b, a * b, (double)a / b, a % b);
fprintf(out, "wa:%d\nsa:%d\nseki:%d\nshou:%lf\namari:%d\n",
a + b, a - b, a * b, (double)a / b, a % b);
}
fclose(in);
fclose(out);
return 0;
}
0012デフォルトの名無しさん
NGNGなかなかいいな。
0013デフォルトの名無しさん
NGNGprintf()系で%lf使うなボケ。
0015デフォルトの名無しさん
NGNGそう来ると思ったが、%lfと書くメリットはないな。
0016デフォルトの名無しさん
NGNGsscanfのときにdoubleなのにうっかり%fにしてしまうミスを防げる。
0017デフォルトの名無しさん
NGNG0018デフォルトの名無しさん
NGNGテンプレートの例を作るのですが、
#include <iostream>
using namespace std;
//テンプレートの宣言、定義
template <class T>
T max(T x, T y){
return x + y;
}
int main(void){
int a=1, b=3, c;
double d=1.9, e=0.8, f;
//int型での呼び出し
c = max(a, b);
//double型での呼び出し
f = max(d, e);
cout << c << "\n";
cout << f << "\n";
return 0;
}
で、コンパイルができません。
どうしたら、できるのか教えてください。
0019デフォルトの名無しさん
NGNGなんで加算するのにmaxなんだ。
0020デフォルトの名無しさん
NGNG俺んとこではコンパイルできたけど、C++にはmaxって関数が既にあるから
どこかでそのヘッダが組み込まれていて多重定義のエラーになっているんだと思う。
max→Maxだとどうなる?
002113
NGNG>15に同意。
>>16
printf()系とscanf()系の指定子が共通だと思っている時点で大間違い。
微妙に違うところがたくさんあるのだから別々に覚えればいい。
例えば、"%*d"における'*'の意味はそれぞれ全然違う。
>>17
同意。うっかりミスする香具師に限って、「今度から気をつけます」と言うよな。
#その挙句にまたミスをしたときに「気が付きませんでした」と言うわけだ。
##>16がそうかどうかは知らんが。
0022デフォルトの名無しさん
NGNGまずはその間違った名前を何とかしろ。
って書こうとしたら既に>20に書かれていた……_/ ̄|○
0024デフォルトの名無しさん
NGNG・・・・・・まあこの場合、間違ってるとまでは言い切れないが・・・
0025デフォルトの名無しさん
NGNGadd(ition) 加算
0026デフォルトの名無しさん
NGNG学生さんは「俺はうっかりしない」で構わないかもしれませんが、
仕事ではミスは起こりうるものとして防止策、対応策を講じるわけですよ。
難しくて分かりませんかね(´ー`)
0027デフォルトの名無しさん
NGNG>>26は%lf派なのだろうか
0028デフォルトの名無しさん
NGNG0029デフォルトの名無しさん
NGNG27 名前: デフォルトの名無しさん [sage] 投稿日: 04/08/09 15:19
28 名前: デフォルトの名無しさん [sage] 投稿日: 04/08/09 15:29
0030デフォルトの名無しさん
NGNG0031デフォルトの名無しさん
NGNG0032デフォルトの名無しさん
NGNG0033デフォルトの名無しさん
NGNGキーボードから文字列を入力し、配列に保存する
その配列の中の、最初にAまたはBまたはCが出てくる位置(何文字目か)
を返す関数を作成し、その文字の種類によってAならばalpha、Bならばblavo、Cならばcharlie
と表示するプログラムを作れというものです。
よろしくおねがいします
0034デフォルトの名無しさん
NGNG#include <stdio.h>
#define SIZE 256
int abc(char* buf);
int main(void)
{
char buf[SIZE];
fgets(buf, SIZE, stdin);
switch(buf[abc(buf)]) {
case 'A': printf("alpha\n");
break;
case 'B': printf("blavo\n");
break;
case 'C': printf("charlie\n");
break;
}
return 0;
}
int abc(char* buf)
{
int i = 0;
while(buf[i] && buf[i] != 'A' && buf[i] != 'B' && buf[i] != 'C') { i++; }
return i;
}
0035デフォルトの名無しさん
NGNG簡潔なプログラムありがとうございます
0036デフォルトの名無しさん
NGNG「コマンドラインで指定したファイルを読み、その中に出てくるアルファベットの
各文字の文字数をカウントする。カウントした結果を文字種と文字数をメンバとして
持つ構造体に保存する。カウント結果をソートして、たくさんカウントされたものから
順に文字を表示する。」というものです
なお大文字・小文字は同一視して構いません
よろしくお願いします
0037デフォルトの名無しさん
NGNG#include <stdio.h>
#include <ctype.h>
#define SIZE 26
struct Character {
char c;
int count;
};
int main(int argc, char** argv)
{
FILE* in = fopen(argv[1], "rb");
struct Character array[SIZE], tmp;
int c, i, j;
for(i = 0; i < SIZE; i++) {
array[i].c = 'a' + i;
array[i].count = 0;
}
while((c = fgetc(in)) != EOF) { if(isalpha(c)) { array[tolower(c) - 'a'].count++; } }
for(i = 1; i < SIZE; i++) {
tmp = array[i];
for(j = i - 1; j >= 0 && array[j].count < tmp.count; j--) { array[j + 1] = array[j]; }
array[j + 1] = tmp;
}
for(i = 0; i < SIZE; i++) { printf("%c %d\n", array[i].c, array[i].count); }
fclose(in);
return 0;
}
0038デフォルトの名無しさん
NGNGわからないところが解決して助かりました
ありがとうございます
0039デフォルトの名無しさん
NGNG>メーカー側としても嬉しい流れとも取れるわけで、問題になることは普通ありえないです
ゲーム作成者の意図しない結果を導くセーブデータの改造は、ゲームの著作権(同一性保持権)を侵害して
いて違法、と言う判決がある(通称ときメモ高裁判決: http://www.softic.or.jp/YWG/reports/tokimemo2.html )
ので、「まず問題にならない」とか「普通ありえない」といいきれるほどリスクの無い行為ではないよ。
# まあでも、非営利目的の個人を訴えて来るかどうかは疑わしいけど。
004039
NGNG0041デフォルトの名無しさん
NGNG0042デフォルトの名無しさん
NGNG0〜9までの数値をリスト構造のデータ構造(数値はdouble型)で保存し、
0〜9までの数値を昇順につながっているようにする
その状態からさらにキーボードより、0〜9までの実数を1つ読み込み、
数値の順序を乱さないようにリスト内に入力された数値をもつリストの要素を1つ追加する
そしてリストに入っているデータをリストの順に表示するというものです
よろしくお願いします
0043デフォルトの名無しさん
NGNGどっちですか
0044デフォルトの名無しさん
NGNG0045デフォルトの名無しさん
NGNGtypedef struct list{
double value;
struct list* next;
}LIST;
void print(LIST *l){
if(l->next){
printf("%f\n",l->next->value);
print(l->next);
}
}
0046デフォルトの名無しさん
NGNGLIST* temp;
if(!l->next || l->next->value>v){
temp=l->next;
l->next=(LIST*)malloc(sizeof(LIST));
l->next->value=v;
l->next->next=temp;
}
else{
add(l->next,v);
}
}
int main(void){
LIST l;
double d;
l.next=NULL;
while(1){
scanf("%lf",&d);
if(d<0)break;
add(&l,d);
print(&l);
}
}
0047デフォルトの名無しさん
NGNGヒープごと解放されると分かっていても気分が・・・( ´・ω・`)
まぁ良いんだけど・・・
004845
NGNGつい GC のある言語の気分で書いてたよw
void listfree(LIST *l){
if(l->next){
listfree(l->next);
free(l->next);
}
}
int main(void){
LIST l;
double d;
l.next=NULL;
while(1){
scanf("%lf",&d);
if(d<0)break;
add(&l,d);
print(&l);
}
listfree(&l);
return(0);
}
0049デフォルトの名無しさん
NGNG構造体のポインタの使い方がよくわからなかったのですが
このプログラムを参考にして理解できました
ありがとうございました
0050デフォルトの名無しさん
NGNG0051デフォルトの名無しさん
NGNGコマンドラインから指定したファイルを読み込み
ファイル中の各行の文字列をデータとしたリスト構造で、読み込んだ
ファイルを扱えるようにする(リスト構造は双方向を用いる)
読み込んだ後でリストを順方向、逆方向に辿りつつ
データ(各行の文字列)を表示する(両方向とも)
さらにキーボードから指定した行番号の行を削除する
その後再度リストを順方向に辿ってデータを表示するというものです
よろしくおねがいします
0052デフォルトの名無しさん
NGNG一体それの何処が質問なの?
0053デフォルトの名無しさん
NGNG何が分からないかを書いてくれ話はそれからだ
0054デフォルトの名無しさん
NGNGというゲームをなるべく簡単なc言語で作ってください。
おねがいします。
005551
NGNG単方向のリスト構造はなんとかわかるのですが、双方向になると途端に
イメージがつかみにくくなりました。双方向ではどのようにリスト構造を記述
すればよろしいのでしょうか?
疑問点がわかりづらく申し訳ありません・・・
0056デフォルトの名無しさん
NGNGp->next = q;
q->prev = p;
0057デフォルトの名無しさん
NGNGありがとうございます
これを足がかりになんとか作ってみます・・・
0058デフォルトの名無しさん
NGNG|Node 1 ||Node 2 .||Node 3 |
NULL─┼・prev || next・┼┼・prev |
| next・┼┼・prev || next・┼─NULL
└────┘└────┘└────┘
図で描くとこんな感じか?
0059デフォルトの名無しさん
NGNG#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(){
int i, j, money = 500;
srand(time(NULL));
while(money => 0){
printf("所持金 %d円\n[0]グー [1]チョキ [2]パー ", money);
scanf("%d", &i); if(i < 0 || i > 2) i = 0;
j = rand() % 3;
printf("YOU = %s ", i == 0 ? "グー" : (i == 1 ? "チョキ" : "パー"));
printf("COM = %s\n\n", j == 0 ? "グー" : (j == 1 ? "チョキ" : "パー"));
if((i + 1) % 3 == j)
money += 100;
else if((j + 1) % 3 == i)
money -= 100;
}
printf("Game Over\n");
return 0;
}
006059
NGNG#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(){
int i, j, money = 500;
srand(time(NULL));
while(money >= 0){
printf("所持金 %d円\n[0]グー [1]チョキ [2]パー ", money);
scanf("%d", &i); if(i < 0 || i > 2) i = 0;
j = rand() % 3;
printf("YOU = %s ", i == 0 ? "グー" : (i == 1 ? "チョキ" : "パー"));
printf("COM = %s\n\n", j == 0 ? "グー" : (j == 1 ? "チョキ" : "パー"));
if((i + 1) % 3 == j)
money += 100;
else if((j + 1) % 3 == i)
money -= 100;
}
printf("Game Over\n");
return 0;
}
0061デフォルトの名無しさん
NGNGという宿題です。お願いします。
0062デフォルトの名無しさん
NGNG#include <stdio.h>
int main(void) {
int i,j;
scanf("%d,%d",&i,&j);
printf("%d+%d=%d\n",i,j,i+j);
return 0;
}
0063デフォルトの名無しさん
NGNG#include <stdlib.h>
int main()
{
double n1, n2;
char szTemp[256];
printf("Input num[1] > ");
fgets(szTemp, sizeof(szTemp), stdin), n1 = atof(szTemp);
printf("Input num[2] > ");
fgets(szTemp, sizeof(szTemp), stdin), n2 = atof(szTemp);
printf("Input oparator > ");
fgets(szTemp, sizeof(szTemp), stdin);
switch(szTemp[0]){
case '+':
printf("%f + %f = %f\n", n1, n2, n1 + n2);
break;
case '-':
printf("%f - %f = %f\n", n1, n2, n1 - n2);
break;
case '*':
printf("%f * %f = %f\n", n1, n2, n1 * n2);
break;
case '/':
printf("%f / %f = %f\n", n1, n2, n1 / n2);
break;
default:
puts("Unknown operator!");
break;
}
return;
}
0064デフォルトの名無しさん
NGNG0065デフォルトの名無しさん
NGNGreturn; → return 0;
警告出なかったから気づかなかったorz
0066デフォルトの名無しさん
NGNGところで、インデントどうやってるの?
0067デフォルトの名無しさん
NGNG0068デフォルトの名無しさん
NGNGナルホド
0070デフォルトの名無しさん
NGNGどうしても解らなかったら参照されたし。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=203
0072デフォルトの名無しさん
NGNG文字列の前後のスペースを除去する関数
string trim(string);
を作成せよ
0073デフォルトの名無しさん
NGNG#include <iostream>
#include <string>
#include <cctype>
using std::string;
using std::isspace;
string trim (string str)
{
unsigned i = 0, j = str.length();
while (isspace(str[i]))
i++;
while (isspace(str[j]))
j--;
str.resize(j);
return string(str.c_str() + i);
}
int main(void)
{
for (;;)
{
string str;
std::cin >> str;
std::cout << trim(str) << std::endl;
}
return 0;
}
もしisblankがあればisspaceよりもそれを使う方がいい鴨
0074デフォルトの名無しさん
NGNGありがとうございました
0075デフォルトの名無しさん
NGNG宿題は次の通りです。
円の座標データから、最小二乗法により
円の方程式の係数を求める関数を作れ。
円の方程式は、y=(x-a)^2+(y-b)^2
ただし、引数は次のようにする
x[],y[]・・・円の(x,y)の座標データの入っている配列のポインタ
count・・・座標データの数
a・・・円の方程式のaの値
b・・・円の方程式のbの値
お願いします
0076デフォルトの名無しさん
NGNG文字列の結合のプログラムがうまく動きません。
エラーが出て終了してしまいます。
#include <iostream>
#include <string>
using namespace std;
int main(void){
char *str="def";
char *str2=(char *)malloc(128);
int na;
//文字列の結合
str2="abc";
strcat(str2 , str);
cout << str2 << "\n";
return 0;
}
どこがおかしいでしょうか?
0077デフォルトの名無しさん
NGNGstrcat(str2, str);
0078デフォルトの名無しさん
NGNG○ strcpy(str2, "abc");
0079デフォルトの名無しさん
NGNG#include <cstdlib>
#include <cstring>
あたりを入れるべきじゃ?
逆に#include <string> はこのプログラムだと意味ない。
008076
NGNG>>79さん
教科書には<string>とかいてあったのですが、
なくてもできました。
#includeはなんとなくおまじないみたいな感じで使っていたのでよくわかりません。
そのあたりのことについて詳しく紹介しているHPなどありましたら、
教えてください。
0081デフォルトの名無しさん
NGNG0082デフォルトの名無しさん
NGNGC言語を学んどけ。
0083デフォルトの名無しさん
NGNG0084デフォルトの名無しさん
NGNG0085デフォルトの名無しさん
NGNG問題がアレな感じもするけど
0086デフォルトの名無しさん
NGNG>y=(x-a)^2+(y-b)^2
y=なの?
(x-a)^2+(y-b-1/2)^2=b+1/4
0087デフォルトの名無しさん
NGNG>>86
円にならないだろ?
0088デフォルトの名無しさん
NGNG>(x-a)^2+(y-b-1/2)^2=b+1/4
は、(a, b+1/2)を中心とする半径√(b+1/4)の円。
008975
NGNGすいません
r^2=(x-a)^2+(y-b)^2
でした・・・
0090デフォルトの名無しさん
NGNG(x[i],y[i])なの?
(x[i],y[j])なの?
0091デフォルトの名無しさん
NGNG円の方程式を (x-a)^2+(y-b)^2=r^2 とする
誤差 dr を点から円への距離の差分とする。つまり dri = ((xi-a)^2+(yi-b)^2)^0.5 - r
dri^2 = (xi-a)^2+(yi-b)^2 - 2*r*((xi-a)^2+(yi-b)^2)^0.5 + r^2
この二乗の和を求める
S = Σdri^2 = Σ{(xi-a)^2+(yi-b)^2 - 2*r*((xi-a)^2+(yi-b)^2)^0.5 + r^2}
これを a , b , r で微分する
dS/da = -2Σxi + 2na -2rΣ((xi-a)/((xi-a)^2+(yi-b)^2)^0.5)
dS/db = -2Σyi + 2nb -2rΣ((yi-b)/((xi-a)^2+(yi-b)^2)^0.5)
dS/dr = -2Σ((xi-a)^2+(yi-b)^2)^0.5 + 2nr
dS/da = 0 , dS/db = 0 , dS/dr = 0 となる a , b , r が求める円の方程式の係数である。
方程式解くのはがんばれ
0093デフォルトの名無しさん
NGNG0094デフォルトの名無しさん
NGNGデータ数じゃねぇの?
0095デフォルトの名無しさん
NGNGnには任意の定数が入ります
0096デフォルトの名無しさん
NGNG0097デフォルトの名無しさん
NGNG0098デフォルトの名無しさん
NGNG実行ファイルがa.exeだとして、それを実行すると、そこの一つ上のフォルダに、
その実行ファイルを別名(b.exeとか)にしてコピーしたいのですが、いまいちできません。
ttp://ja5ytd.hp.infoseek.co.jp/copy.html
ここを参考してみたんですが、実行ファイルだと空っぽのファイルしか作れませんでした。
お願いします。
0099デフォルトの名無しさん
NGNG0100デフォルトの名無しさん
NGNG実行ファイルのみがうまくいかずに困っています。
0101デフォルトの名無しさん
NGNGバイナリモードでリード、ライトしてみては?
■ このスレッドは過去ログ倉庫に格納されています