トップページ⇒tech
1001コメント402KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG?2BP(12)
あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他や発言はスルーの方向で。
【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
・問題文は、出題されたまま全文を書いてください。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはやめましょう。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して
 投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。
【質問テンプレ】
[1] 授業単元:
[2] 問題文(含コード&リンク):
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)

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

【前スレ】
C/C++の宿題を片付けます 76代目
http://pc8.2ch.net/test/read.cgi/tech/1162771475/
【過去スレ一覧】
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
0004デフォルトの名無しさん2006/11/21(火) 13:58:25
>>3
エラ姫の櫛は使った方がいいの?
0005デフォルトの名無しさん2006/11/21(火) 13:59:52
>>3
・1は素数じゃない。
・自分で作ったプログラムを晒せ。sqrt()を使わないようにするだけならごく簡単な修正で済むはずだ。
0006デフォルトの名無しさん2006/11/21(火) 14:00:23
>>3
1って素数なの?
0007デフォルトの名無しさん2006/11/21(火) 14:01:00
できるだけ早くっていつまでだよ
0008デフォルトの名無しさん2006/11/21(火) 14:03:22
>>3
出力はインラインアセンブラか・・・欝だ・・・
000932006/11/21(火) 14:11:25
あ、すみません。1は素数ではないですね>_<”
期限はだいたいなんですけど、きょう辺りにできれば・・・と思います。
0010デフォルトの名無しさん2006/11/21(火) 14:13:56
#include<stdio.h>
int IsPrime(int n){
int i;
if(n<2)
return 0;
else if(n==2)
return 1;
if(n%2==0)
return 0;
for(i=3;i*i<=n;i+=2)
if(n%i==0)
return 0;
return 1;}
int main(){int i,j=1;for(i=1;i<=1000;i++)
if(IsPrime(i)){printf("%3d ",i);if(j%10==0)printf("\n");j++;}return 0;}
空気読まずに貼ってみる。素数判定はWikipediaのコピペだ
0011デフォルトの名無しさん2006/11/21(火) 14:51:49
#include<stdio.h>
int main(void){
int i, j, k, n, a;
int **p;

printf("please input! n = ");
scanf("%d\n",a);
p = (int **) malloc(sizeof(int *)*a);
for(i=0; i<=a; i++){
p[i]=(int*) malloc(sizeof(int *)*a);
for(i=0; i<=a; i++)
p[i][j]=0;
}
k = n*n-1;
for(i=0; i<n/2+n%2; i++) {
for(j=i; j<=n-i-1; j++) p[i][j] = k--;
for(j=i+1; j<n-i-1; j++) p[j][n-i-1] = k--;
for(j=n-i-1; j>i; j--) p[n-i-1][j] = k--;
for(j=n-i-1; j>i; j--) p[j][i] = k--;
}
for(i=0; i<a; i++)
printf("\n");
for(j=0; j<a; j++)
printf("%5d",p[i][j]);

return 0;
}

上記のプログラムは前スレ>>507を完成させたものですが、セグメンテーション違反になります。
どうすればいいでしょうか?
0012デフォルトの名無しさんNGNG?2BP(200)
>>3
http://c-kadai.sakura.ne.jp/index.php?itemid=17
0013デフォルトの名無しさん2006/11/21(火) 14:59:20
>>11
スレ違い。
・scanf()の引き数間違い
・2番目のmalloc()の引き数間違い
0014デフォルトの名無しさん2006/11/21(火) 15:02:08
>>11
scanf("%d\n",a); <- ここがあやしい
0015デフォルトの名無しさん2006/11/21(火) 15:10:05
>>??? 螺旋状に数値を表示
#include<stdio.h>
#include<stdlib.h>
int is_minus_one(int value[], int n, int x, int y){
if(x<0 || x>=n || y<0 || y>=n) return 0;
return (value[n*y+x]==-1);
}
int main(void){
int dx_list[]={ 1, 0,-1, 0};
int dy_list[]={ 0, 1, 0,-1};
int x=0, y=0, dx, dy, i, j, n=5, direction=0;
int *value;
value=malloc(sizeof(int)*n*n);
for(i=0;i<n*n;i++) value[i]=-1;

dx=dx_list[direction];dy=dy_list[direction];
for(i=0;i<n*n;i++){
value[n*y+x]=i;
if(!is_minus_one(value, n, x+dx, y+dy)){
direction=(direction+1)%4;
dx=dx_list[direction];dy=dy_list[direction];
}
x+=dx;y+=dy;
}
for(i=0;i<n;i++){
for(j=0;j<n;j++)
printf(" %3d", value[n*i+j]);
printf("\n");
}
free(value);
return 0;
}
0016デフォルトの名無しさんNGNG?2BP(200)
>>3
別解。
#include<stdio.h>
#include<stdlib.h>
#include<math.h>

int prime[]={2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37,
41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89,
97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151,
157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223,
227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281,
283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359,
367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433,
439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503,
509, 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593,
599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659,
661, 673, 677, 683, 691, 701, 709, 719, 727, 733, 739, 743,
751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827,
829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911,
919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997, };
int isPrime(int n){if(n<=1000){int i;for(i=0;prime[i]<=n;i++)if (n==prime[i]) return 1;}return 0;}
int main(){int i,j=1;for(i=1;i<=1000;i++) if(isPrime(i)){
printf("%3d ",i);if(j%10==0)printf("\n");j++;}return 0;}
0017デフォルトの名無しさん2006/11/21(火) 15:43:18
1] 授業単元: 基礎プログラミング

[2] 問題文(含コード&リンク): nの値を12とし、nの近似値を求めるプログラムを作成せよ。詳しくは、リンク先の画像をご覧ください。
                   http://up.kabubu.net/cgi/img2/16802.jpg

[3] 環境
 [3.1] OS: Win XP HOME
 [3.2] コンパイラ名とバージョン:Microsoft Visual C++ 2005 Express Edition
 [3.3] 言語: C++
[4] 期限: 本日中にできればありがたいです。。。

よろしくお願いします。
0018デフォルトの名無しさん2006/11/21(火) 15:54:47
>>17
これを参考に。
http://pc8.2ch.net/test/read.cgi/tech/1153542424/210
0019デフォルトの名無しさん2006/11/21(火) 16:13:22
>>17
#include<stdio.h>
int kaijo(int n){
if(n<2)return 1;
return n*kaijo(n-1);}
int main(){
int n,k;double e=1;
printf(" n n! 1/n! e 誤差\n");
for(n=1;n<=12;n++){
k=kaijo(n);e+=1./k;
printf("%2d %9d %.10f %.10f %.10f\n",n,k,1./k,e,2.7182818285-e);}}
0020デフォルトの名無しさん2006/11/21(火) 16:31:50
nの近似値求めるんだから
printf("12");でいいじゃん
0021デフォルトの名無しさん2006/11/21(火) 17:45:04
>>11
nを入力するのに、なんでnじゃなくてaに入れるんだ。
0022デフォルトの名無しさん2006/11/21(火) 18:05:23
>>11
0で埋めてるつもりなんだろうがループカウンタをiにしてるせいで
未初期化のjを配列の添字にしてしまってる予感
0023デフォルトの名無しさん2006/11/21(火) 18:09:25
>>11
前スレ515は中心から外に大きくなってくと思ってたのでそこを修正
#include<stdio.h>
int main(void){
int i, j, k, n;
int **p;

printf("please input! n = ");
scanf("%d",&n);
p = (int **) malloc(sizeof(int *)*n);
for(i=0; i<n; i++) p[i]=(int*) malloc(sizeof(int)*n);
k = 0;
for(i=0; i<n/2+n%2; i++) {
for(j=i; j<=n-i-1; j++) p[i][j] = k++;
for(j=i+1; j<n-i-1; j++) p[j][n-i-1] = k++;
for(j=n-i-1; j>i; j--) p[n-i-1][j] = k++;
for(j=n-i-1; j>i; j--) p[j][i] = k++;
}
for(i=0; i<n; i++) {
for(j=0; j<n; j++) printf("%3d", p[i][j]);
putchar('\n');
}
return 0;
}
0024デフォルトの名無しさん2006/11/21(火) 19:42:55
>>16やっぱりそうきたよねぜったいそうくるとおもった
0025前スレ5902006/11/21(火) 19:43:12
>>11
俺のも見ろよ〜
再帰はいやか〜
#include <stdio.h> #define N 9 //サイズ
void print(int ary[N][N]);int right(int ary[N][N],int x,int y, int n, int past);int up(int ary[N][N],int x,int y, int n, int past);
int down(int ary[N][N],int x,int y, int n, int past);int left(int ary[N][N],int x,int y, int n, int past);void answer(int ary[N][N], int n);
int main(){ int ary[N][N] = {0}; int n = 0; answer(ary, n); print(ary); return 0;}void answer(int ary[N][N], int n){ int i,j;
for(j =0,i = 1; i <= (N/2 + 1) ; i++,j++){ n = right(ary,j,j,n, i); n = down(ary,i ,N-i,n, i); n = left(ary,N-i,N - i - 1,n, j); n = up(ary,N - i - 1,j, n,j);
}} int right(int ary[N][N],int y,int x, int n, int past){ if(x > N - past || y > N || x < 0 || y < 0)return n; ary[y][x] = n ; right(ary, y, x+1, n +1 , past );
} int down(int ary[N][N],int y,int x, int n, int past){ if(x > N || y > N - past || x < 0 || y < 0)return n; ary[y][x] = n; down(ary, y+1,x , n+1 , past );
} int left(int ary[N][N],int y,int x, int n, int past){ if(x > N || y > N || x < past || y < 0)return n; ary[y][x] = n; left(ary, y, x-1, n+1 , past );
} int up(int ary[N][N],int y,int x, int n, int past){ if(x > N || y > N || x < 0 || y <= past)return n; ary[y][x] = n; up(ary, y-1, x, n+1 , past );
} void print(int ary[N][N]){ int *p = &ary[0][0],i; for(i = 1,p = &ary[0][0]; p <= &ary[N-1][N-1]; p++,i++){ printf("%3d ", *p);
if(!(i % N))putchar('\n');}}
0026デフォルトの名無しさん2006/11/21(火) 19:45:03
スルーしておいてやれ。
0027デフォルトの名無しさん2006/11/21(火) 19:46:03
おっと>>26は>>24にな。
0028デフォルトの名無しさん2006/11/21(火) 19:47:50
[1] 授業単元:
[2] 問題文(含コード&リンク):中置記法で入力された数式を前置記法 及び後置記法で出力するプログラムを作る
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: C
[4] 期限: ([2006年12月4日まで
[5] その他の制限: とくになし
0029デフォルトの名無しさん2006/11/21(火) 19:50:28
[1] 授業単元:プログラミング�T
[2] 問題文
[要求仕様]
キーボードより2以上の整数を入力し、その入力した整数が2つの素数の和
として表せるかどうかを調べてその全ての組み合わせを出力し、
最後に組み合わせの数を出力するプログラムを作成せよ。また入力値が2より
小さい時には、警告として「入力ミスです。」と表示してプログラムを終了
するようにせよ。
[強制条件]
関数mainとは別に素数判定に関る関数を用いること。なお入出力は関数main
で行うこと。
[ヒント]
関数isprimeを利用するとよい。

int isprime(int n){
int i;
if(n<=1)
return0;
for(i-2;i*i<=n;i++)
if(n%i==0)
return 0;
return 1;
}
[表示結果]
input
30
30は素数7と素数23の和です。
30は素数11と素数19の和です。
30は素数13と素数17の和です。
和が30になる2つの素数の組み合わせは3つあります。

0030デフォルトの名無しさん2006/11/21(火) 19:51:59
[3] 環境
 [3.1] OS:unix
 [3.2] gcc
 [3.3] 言語:C
[4] 期限: 2006年11月22日15時まで
[5] その他の制限: 関数を習い始めたばかりなのでできるだけ簡単なもの
にしていただけると嬉しいです。
0031デフォルトの名無しさん2006/11/21(火) 20:10:11
>>29
#include <stdio.h>

int isprime(int n){
int i;
if(n<=1)
return 0;
for(i=2;i*i<=n;i++)
if(n%i==0)
return 0;
return 1;
}

int main()
{
int c=0,i,n;
printf("input\n");
scanf("%d",&n);
if(n<2){
printf("入力ミスです。\n");
return 1;
}
for(i=2; i<=n/2; i++)
if((isprime(i)==1)&&(isprime(n-i)==1)){
printf("%dは素数%dと素数%dの和です。\n",n,i,n-i);
c++;
}
printf("和が%dになる2つの素数の組み合わせは%dつあります。",n,c);
return 0;
}
0032デフォルトの名無しさん2006/11/21(火) 21:25:25
>>31
ありがとう御座います。
まさか、こんなに早く答えていただけるとは思いませんでした。
0033デフォルトの名無しさん2006/11/21(火) 21:26:17
お願いします
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):鶴と亀の足の総数(亀は4本、鶴は2本と考える)が与えられると、考えうるそれぞれの頭数の全てのケースを列挙、出力し、
最後にケースの総数を出力するプログラムを作成せよ。入力された総数に対して解がない場合は”解なし”と表示すること。
実行例
亀と鶴の足の総数を入力せよ:24
鶴=0 亀=6
鶴=2 亀=5
鶴=4 亀=4
鶴=6 亀=3
鶴=8 亀=2
鶴=10亀=1
鶴=12亀=0
7通りあります
[3] 環境
 [3.1] OS:Windows
 [3.3] 言語:C++
[4] 期限:明日
0034 ◆pajhDGf5eg 2006/11/21(火) 21:37:11
[1] 授業単元:情報処理工学
[2] 問題文 ファイル名:kadai01.c
      ◆『家』と『雪だるま』の絵を描くプログラムを作成しなさい。
[3] 環境
 [3.1] OS:UNIX
 [3.2] コンパイラ名とバージョン:viエディタ
 [3.3] 言語:C言語
[4] 期限:2006年 12月4日(月)
[5] その他の制限:これより示す「kadai01.c」のプログラムを修正してお願いします。
         一般的な家と雪だるまの絵であれば、どのようなものでも構いません。
         クリスマスが近いということもあるので、個性あふれるものをお願いします。
尚、プログラムが長いため3回くらいに分けて書き込みます。
0035 ◆pajhDGf5eg 2006/11/21(火) 21:38:55
"kadai01.c"に挿入されているプログラム「Canvas.c」
#include <stdio.h>
#include <math.h>
char pixel[XSIZE][YSIZE];

Canvaslnit(char moji){
int x,y;
for(y=0;y<YSIZE;y++)for(x=0;x<XSIZE;x++) pixel[x][y]=moji;
}

CanvasPrint(){
int x,y;
for(y=0;y<YSIZE;y++){
for(x=0;x<XSIZE;x++) printf("%c",pixel[x][y]);
printf("\n");
}
}

Circle(char moji, int x0, int y0, int r){
int x,y;
float t;
for(t=0; t<6.28; t+=0.01){
y=r*cos(t)/2+y0;
x=r*sin(t)+x0;
0036デフォルトの名無しさん2006/11/21(火) 21:41:51
>>33
#include<stdio.h>
int main(){int c=0,i,n;printf("亀と鶴の足の総数を入力せよ:");
scanf("%d",&n);if(n%2)printf("解なし\n");else{for(i=0;i<=n;i+=2)
if((n-i)%4==0){printf("鶴=%d 亀=%d\n",i/2,(n-i)/4);c++;}
printf("%d通りあります\n",c);}return 0;}

そして今C++じゃないことに気がついた orz
プログラム中にc++使ってるから許してくれ
0037 ◆pajhDGf5eg 2006/11/21(火) 21:43:03
『kadai01.c』

#define XSIZE 80
#define YSIZE 25
#include <stdio.h>
#include <math.h>
#include "Canvas.c"
main() {
 Canvaslnit('.');
 Circle('*', XSIZE/2, YSIZE/2,12);
 boxf('a',20,20,24,24);
 line('&',24,24,60,10);
 CanvasPrint();
}
0038デフォルトの名無しさん2006/11/21(火) 21:50:32
>>34
>>1のアップローダー使ってくれると見やすくていいんだけど
0039 ◆pajhDGf5eg 2006/11/21(火) 21:55:45
>>38
わかりました。
今やってみます。
0040デフォルトの名無しさん2006/11/21(火) 22:00:04
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):ファイルを読み込み、各行が逆順に出るようなプログラムを書きなさい。
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:mingw-jp
 [3.3] 言語:C、C++
[4] 期限:2006年11月24日
[5] その他の制限:
0041デフォルトの名無しさん2006/11/21(火) 22:11:49
>>34
>個性あふれるものをお願いします。

お前の個性を出せよwww
0042 ◆pajhDGf5eg 2006/11/21(火) 22:13:02
>>38
アップローダーに投稿し終えました。
0043デフォルトの名無しさん2006/11/21(火) 22:13:38
>>41
個性あふれ過ぎて家にも雪ダルマにも見えないの作ればいいんじゃね?
0044デフォルトの名無しさん2006/11/21(火) 22:14:09
>>42
そうしたらアップしたファイルへのリンクを貼ってくれるともっと分かりやすいんだ
0045 ◆pajhDGf5eg 2006/11/21(火) 22:21:39
>>44
何回もスミマセン
こちらです。

ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.cgi
0046デフォルトの名無しさん2006/11/21(火) 22:27:08
>>45
Circle()が途中で切れてるぜ?というかファイルがあるならそれうpれってことだと思うんだ
0047デフォルトの名無しさん2006/11/21(火) 22:27:38
>>45
それはひょっとしてギャグでやっているのか
0048デフォルトの名無しさん2006/11/21(火) 22:27:56
>>36
すみませんC++でやってもらえるとありがたいです
0049デフォルトの名無しさん2006/11/21(火) 22:33:00
>>48
#include<iostream>
using namespace std;
int main(){int c=0,i,n;
cout<<"亀と鶴の足の総数を入力せよ:";
cin>>n;if(n%2)cout<<"解なし"<<endl;
else{for(i=0;i<=n;i+=2)if((n-i)%4==0){
cout<<"鶴="<<i/2<<"亀="<<(n-i)/4<<endl;
c++;}cout<<c<<"通りあります"<<endl;}return 0;}
C++に直しただけだけど。
0050 ◆pajhDGf5eg 2006/11/21(火) 22:43:54
>>46
ファイルは学校のPCに保管してあるので、今は手元にないんです。
先生が配布したプログラムはCircle()は途中で終わっているので、
何とも・・・OTL

ちなみにこの状態で実行すると、「kadai01.c」は描きかけの状態で出てきます。
これを修正して「家」と雪だるまを描くプログラムを作れってのが今回の課題です。


>>47
ここの板初心者なもんで、色々とわからない点がありまして・・・
0051デフォルトの名無しさん2006/11/21(火) 22:45:56
最近のエスパー能力は失われたプログラムを復元するものが要求されるのか
0052デフォルトの名無しさん2006/11/21(火) 22:55:41
>>49
ありがとうございました。
0053 ◆pajhDGf5eg 2006/11/21(火) 23:15:39
>>46
Circle()の続きがわかりました。こうですね。
"kadai01.c"に挿入されているプログラム「Canvas.c」

#include <stdio.h>
#include <math.h>
 char pixel[XSIZE][YSIZE];

・・・・途中略・・・・

  y=r*cos(t)/2+y0;
  x=r*sin(t)+x0;
  if((x<XSIZE)&&(y<YSIZE))pixel[x][y]=moji;
}
}

これが「Canvas.c」です。
迷惑かけてしまいスミマセン・・・

0054デフォルトの名無しさん2006/11/21(火) 23:53:14
[1] 授業単元:基本プログラミング
[2] 問題文(含コード&リンク):X=a*a*b*cのように定義されたXがある。ただしa,b,cは2以上の正の整数とする。
Xに値が読み込まれると上式を満たすa,b,cの組み合わせを全て列挙、出力し、さらにその組み合わせの総数を出力するプログラムを作成せよ。
解の範囲を要領よく限定すること。ただし、解が存在しない場合は「0通り」と出力し、プログラムはXに0が読み込まれるまで繰り返し返すものとする。
[3] 環境
 [3.1] OS:Windows
 [3.3] 言語:C++/
[4] 期限:明日
[5] 多重ループまでやりました。

0055デフォルトの名無しさん2006/11/21(火) 23:54:23
>迷惑かけてしまいスミマセン・・・
そう思うのなら最初から自力でやれよ。
0056デフォルトの名無しさん2006/11/21(火) 23:58:36
いちいち文句を付ける奴は何なんだ?
ここに依頼してくる奴に教育でも施してる積もりか?
0057デフォルトの名無しさん2006/11/21(火) 23:59:00
[2] 問題文(含コード&リンク):
下のプログラムに付け足して以下のプログラムを作成せよ。
繰り返し構文を用いて、リストの先頭から順番に学籍番号と数学の点数を
表示する。
・リストを先頭からたどっていくポインタst_pを宣言して使用し、まず
st_p = st_firstとする。
・リストの最後ではnext == NULLとし、これを利用する。
#include<stdio.h>

struct student{
char g[8];  /*学籍番号*/
int x; /*数学の点数*/
struct student *next
};

int main(void){
struct student *st_a, st_b;
struct student *st_first;

st_a = (struct student *)malloc(sizeof(struct student));
st_b = (struct student *)malloc(sizeof(struct student));
/*値の代入部は省略*/

st_first = st_a;
st_a->next = st_b;
st_b->next = NULL;
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 明日の朝10時
0058デフォルトの名無しさん2006/11/22(水) 00:02:51
>>56
最近依頼の量>>解答の量になってるからなあ
基本的な宿題をここに解かせた奴はその後の宿題全部ここに解かせて
ますます依頼の量を増やすだけだろ
0059デフォルトの名無しさん2006/11/22(水) 00:11:30
>>54
#include <iostream>
using namespace std;

int main()
{
int i, j, k, x, c;
while(1){
cout << "Xを入力してください(0で終了します):";
cin >> x;
if(x==0) break;
c = 0;
for(i=2; i<x; i++) {
for(j=2; j<x/i; j++) {
for(k=2; k<x/(j*i); k++) {
if(x==i*i*j*k) {
cout << "a = " << i << " b = "<< j << " c = " << k << endl;
c++;
}
}
}
}
if(!c) cout << "0通り" << endl;
else cout << c << "通り" << endl;
}

return 0;
}
0060592006/11/22(水) 00:20:59
forの中がおかしいな。
for(i=2; i*i<=x/4; i++){
for(j=2; j<=x/(i*i)){
for(k=2; j<=x/(i*i*j){
0061デフォルトの名無しさん2006/11/22(水) 00:29:02
>>58
なんでそれが依頼者に文句をいうことの理由になるのか分からない。
それに、そもそも回答が追い付かなかったところで、困るのは依頼者であって
回答者じゃないだろ。回答者は好きなときに好きなだけ答えれば良いんだから。


本当のところをいうと、確かに俺も今のこのスレは余裕がなさすぎて、
事務的過ぎて、つまらないと思うが、それに対して何かできるわけでもない。
0062592006/11/22(水) 00:30:54
よく考えたらループは2重でいいじゃないか。
それは自分でなんとかしてくれ。
0063デフォルトの名無しさん2006/11/22(水) 00:35:04
まぁ自力でやるやらないはおいといて、
お願いします ありがとうございましたくらいは欲しいよな
回答が本当にそれでよかったのか気になるし。
0064デフォルトの名無しさん2006/11/22(水) 00:38:53
>>63
ここに来るな
0065デフォルトの名無しさん2006/11/22(水) 00:39:00
だから過去の宿題検索(ry
0066デフォルトの名無しさん2006/11/22(水) 00:57:47
>>57
st_p = st_first;
while(st_p) {
puts(st_p->g);
printf(" %d ", st_p->x);
st_p = st_p->next;
}
0067デフォルトの名無しさん2006/11/22(水) 01:16:15
>>65
作ってもいいが依頼者は絶対使わないし無意味だと思う
0068デフォルトの名無しさん2006/11/22(水) 01:23:22
>67
是非作ってくれ。期待してる。
0069デフォルトの名無しさん2006/11/22(水) 01:23:38
>>67
ウィキでキーワード検索できたら重宝するけどなー
77スレも消費してたら似たような宿題が頻出してるだろうに・・
それとも質問者にも回答者にも丸投げの美学みたいなものがあるのかな
0070592006/11/22(水) 01:24:06
2重ループ版
for(i=2; i*i<=x/4; i++) {
for(j=2; j<=x/(i*i*2) {
if(x/(i*i*j)>=2 && x%(i*i*j)==0){
cout << "a = " << i << " b = "<< j << " c = " << k << endl;
c++;
}
}
}

>55,>56,>58,>61.>63,>64,>65,>67,>68
なんのためにこのスレにいるの?
0071デフォルトの名無しさん2006/11/22(水) 01:24:38
>>61
どうせ助けるんなら丸投げするような奴よりは
自分なりに考えたけど分からなかったという奴を助けたい
0072デフォルトの名無しさん2006/11/22(水) 01:32:02
丸投げとか過去スレとか返事/礼なんて、それこそ過去に何度も論議されてんだよ
スレの無駄だから過去ログ探せ糞ども
0073592006/11/22(水) 01:33:27
バカなこと書いてたら修正し忘れた。
k → x/(i*i*j)
0074デフォルトの名無しさん2006/11/22(水) 01:36:43
>>72-73
何でそんなに必死なの?
0075デフォルトの名無しさん2006/11/22(水) 01:37:51
>>70
面白い問題を見つけて、解いて、コードを自慢するため。

>>71
もちろんそれはお前の勝手だが、やはり依頼者に文句をいう理由にはなっていないような。
0076デフォルトの名無しさん2006/11/22(水) 01:38:11
>>74
何でそんなに必死なの?
0077572006/11/22(水) 02:07:03
>>66
解答ありがとうございました。
0078デフォルトの名無しさん2006/11/22(水) 04:37:53
[1] 授業単元: 画像処理
[2] 問題文(含コード&リンク):
以下の2つのファイルを2つの方法でクロマキー合成せよ。
:ファイルはこれです。→ttp://uploda.en.tc/index.cgi?md=fl&file=1164137430%2e%2erar
(1)RGBで変換
(2)HSVで変換
[3] 環境
 [3.1] OS: XP
 [3.2] コンパイラ名とバージョン: Vsual C++ 2005
 [3.3] 言語: C++
[4] 期限: 明日まで。
[5] その他の制限: (1),(2)は別々なので。プログラムを始めて半年超くらいなので,よろしくお願いします。(^^;
0079デフォルトの名無しさんNGNG?2BP(200)
>>71
そもそも宿題代行しても依頼者は助からない。
必要な能力が身に付かない上に、能力に応じた評価を得られないんだから。
ここで宿題に回答するのは丸投げ厨に対する最高の嫌がらせだ。
0080デフォルトの名無しさん2006/11/22(水) 10:37:00
>>79
ここで質問するような奴はプログラミング能力を必要としていないだろうし
課題さえ提出すれば評価は得られる
だいたい2chだから質問者回答者共に変に煽ったりする奴がいても不思議ではないし
そんなの気にしても意味ないと思う

一番言いたいことは
性帝が何を偉そうに!
ってことだ
0081デフォルトの名無しさん2006/11/22(水) 10:57:34
[1] 授業単元: プログラミング
[2] 問題文:最大10件の整数を格納する配列を宣言する。
-1が入力されるまで、もしくは、最大件数(10件)までループで入力を行い、
それを逆順に表示するプログラムを作成せよ。

#include<stdio.h>
#define max 10
int main(){
int array[max];
int i;
printf("*****Enter Number*****\n");
for(i=0;i<10;i++){
printf("Num(%.2d):",i+1);
scanf("%d",&array[i]);
if(array[i]==-1)
break;
}
printf("\n*****Display Number*****\n");
for(i=10;i>=0;i--){
printf("Num(%.2d):%6d\n",i+1,array[i]);
}
return 0;
}
自分でこんなカンジに作ってみたのですが、だめでした。
修正をお願いします。。。
もし根本的に間違っていたらよろしくお願い致します。
[3] 環境
 [3.1] OS:windows xp
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 今日中
[5] その他の制限:ポインタはここでは使用してはいけないそうです。
0082デフォルトの名無しさん2006/11/22(水) 11:12:21
>81
for(i=10;i>=0;i--) → for(;i>=0;i--)
-1が表示されてもいいならこれで
0083812006/11/22(水) 11:16:59
そういうことでよかったんですか!
できれば-1だけを表示させたくないんですが。。。
それは可能でしょうか?
0084デフォルトの名無しさん2006/11/22(水) 11:18:14
81のだと最後まで入れるた時にarray[10]を呼んじゃうからダメだ。
for(i-=1;i>=0;i--)
に修正すれば-1も表示されなくなる
0085デフォルトの名無しさん2006/11/22(水) 11:19:01
81じゃなくて82ね
0086812006/11/22(水) 11:21:08
本当ですね!
ありがとうございます♪
0087デフォルトの名無しさんNGNG?2BP(200)
>>80
能力に見合わない評価は何の役にも立たないどころか有害でしかない。
まあ学生さんには分からないかも知れんがね。
0088デフォルトの名無しさん2006/11/22(水) 11:45:19
> そう かんけいないね
 殺(ry
 ゆず(ry
0089デフォルトの名無しさん2006/11/22(水) 12:02:19
遺伝的アルゴリズムを用いて次の問題を解きなさい
f(x)=x{sin(10πx)+2cos(10πx)+1.0 (-1≦x≦2)

f(x)の値を最大にするxの値とf(x)の値を求めよ。
0090デフォルトの名無しさん2006/11/22(水) 12:04:51
[1] 授業単元: 画像処理
[2] 問題文(含コード&リンク):
以下の2つのファイルを2つの方法でクロマキー合成せよ。
:ファイルはこれです。→ttp://uploda.en.tc/index.cgi?md=fl&file=1164137430%2e%2erar
(1)RGBで変換
(2)HSVで変換
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: Vsual C++ 6.0
 [3.3] 言語: C
[4] 期限: 今週中
[5] その他の制限: ・数字以外は入力を受付けない
・一等6桁、二等下5桁、三等下4桁、四等下2桁
・自分の葉書番号は何度でも入力可にする
・上位の等が当たったら下位の等は当たらないようにする

以上です、宜しくお願いします
0091デフォルトの名無しさん2006/11/22(水) 12:48:09
同じ問題を見たような・・・ 何回貼ってもやってもらえるとは限らないぞ
0092デフォルトの名無しさん2006/11/22(水) 12:56:30
>>90
画像処理とお年玉年賀宝くじを組み合わせた課題か.....
0093デフォルトの名無しさん2006/11/22(水) 18:29:14
[1] 授業単元: 情報処理
[2] 問題文(含コード&リンク):
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.cgi
No.3018
[3] 環境
 [3.1] OS: UNIX
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 2006年11月23日17時まで
[5] その他の制限: いままで講義で習ったのは、基礎、配列程度。

よろしくお願いします。
0094デフォルトの名無しさん2006/11/22(水) 19:06:35
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3018.txt
こーやってtxtへリンクを貼ると(見る側が)便利だよ
0095デフォルトの名無しさん2006/11/22(水) 20:02:32
4次方程式の数値解、そして解析解との比較。
0096デフォルトの名無しさん2006/11/22(水) 20:31:45
せんせー。数値解と解析解の意味がわかりませんー。
0097デフォルトの名無しさん2006/11/22(水) 20:40:53
あれ?俺言葉の使い方間違ってるかも??
0098782006/11/23(木) 00:43:38
>>90は私の質問ではないので。
つか、90さん、ファイルの中身がどうあれ、私に断りもなくファイルのリンクを
貼るのは、いかがなもんでしょうか?
0099デフォルトの名無しさん2006/11/23(木) 00:45:19
>>98
ワロタ
0100782006/11/23(木) 00:55:37
分かったらさっさと答えんかいボケナスども
0101デフォルトの名無しさん2006/11/23(木) 02:15:02
>>100
先生に断りもなくファイルをアップして公開のは、いかがなもんでしょうか?
分かったらさっさと削除せんかいボケナス!
0102デフォルトの名無しさん2006/11/23(木) 02:15:03
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):ファイルを読み込み、各行が逆順に出るようなプログラムを作る。
条件・一行の文字数や、行数の制限を行わない事。
   ・同じファイルを二回以上オープンしない事。
   ・メモリに異常が発生した場合は、検知し、確実に異常終了させる事。
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:mingw-jp
 [3.3] 言語:C++
[4] 期限:2006年11月24日
[5] その他の制限:
0103デフォルトの名無しさん2006/11/23(木) 02:33:25
>>102
#include <iostream>
#include <fstream>
#include <string>
#include <vector>

int main()
{
std::ifstream ifs("ファイル名");
std::string str;
std::vector<std::ios::pos_type> vpos;
std::ios::pos_type tmp;

while (tmp = ifs.tellg(), std::getline(ifs, str))
vpos.push_back(tmp);

ifs.clear();
std::vector<std::ios::pos_type>::reverse_iterator ipos = vpos.rbegin();

while (ipos != vpos.rend()) {
ifs.seekg(*ipos);
std::getline(ifs, str);
std::cout << str << std::endl;
++ipos;
}
}
■ このスレッドは過去ログ倉庫に格納されています