トップページ⇒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
0002デフォルトの名無しさん2006/11/21(火) 12:29:12
ありが�d
0003デフォルトの名無しさん2006/11/21(火) 13:51:13
[1] 授業単元:プログラミング
[2] 問題文:1から1000までの数値のうち、素数だけを抜き出して表示するプログラムを作成せよ。
ここでは、素数であるか否かを判定する関数を作成して使用すること。


《実行例》
1 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
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:できるだけ早くお願いします。
[5] その他の制限:自分で作ったものでsqrt()ライブラリ関数を使ったのですが、ライブラリ関数は使わず&簡単なプログラムでお願いします。
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
どうせ助けるんなら丸投げするような奴よりは
自分なりに考えたけど分からなかったという奴を助けたい
■ このスレッドは過去ログ倉庫に格納されています