C/C++の宿題を片付けます 94代目
■ このスレッドは過去ログ倉庫に格納されています
【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
・問題文は、出題されたまま全文を書いてください。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはやめましょう。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。
【質問テンプレ】
[1] 授業単元:
[2] 問題文(含コード&リンク):
[3] 環境
[3.1] OS: (Windows/Linux/等々)
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
[3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
【C 関数検索 man on WWW】 http://www.linux.or.jp/JM/index.html
【過去ログ検索】 http://chomework.sakura.ne.jp/
【wiki】 http://www23.atwiki.jp/homework/
【前スレ】
C/C++の宿題を片付けます 93代目
http://pc11.2ch.net/test/read.cgi/tech/1184506311/
0153名無しさん@そうだ選挙に行こう
2007/07/29(日) 00:51:21確かにそれもありだな
0154名無しさん@そうだ選挙に行こう
2007/07/29(日) 00:54:00更に自分自身を除くと言う条件がついていれば完全数チェックに使えるけど。
0155名無しさん@そうだ選挙に行こう
2007/07/29(日) 00:58:54説明不足で申し訳ありません。
152さんのように出力できるようにお願いします。
0156名無しさん@そうだ選挙に行こう
2007/07/29(日) 01:05:57さてどこで使うと良いのか、思案中w
0157名無しさん@そうだ選挙に行こう
2007/07/29(日) 01:06:56再起をどう使うのか、難しいな。
再帰なら簡単に使えるのだが。
0158名無しさん@そうだ選挙に行こう
2007/07/29(日) 01:08:170159名無しさん@そうだ選挙に行こう
2007/07/29(日) 01:11:350160名無しさん@そうだ選挙に行こう
2007/07/29(日) 01:17:370161名無しさん@そうだ選挙に行こう
2007/07/29(日) 01:19:52if((n % div) == 0)
{
printf("%d ", div);
if(n == div) return div;
}
else div = 0;
return div + proto_print_divisor(n, div + 1);
}
int print_divisor(int n){
int res;
printf("divisor of %d = {", n);
res = proto_print_divisor(n, 1);
printf("} sum = %d\n", res);
return res;
}
とりあえずこうしてみた
引数一つで再帰、グローバル変数とか使わないんじゃ無理では
間違いなくfor文のほうがスマート
0162名無しさん@そうだ選挙に行こう
2007/07/29(日) 01:20:140163名無しさん@そうだ選挙に行こう
2007/07/29(日) 01:21:19再帰関数だけ。
いまいちスマートじゃないが、気にしない。
int f(int n)
{
static int i = 1;
int j;
for(j=i; j<=n; j++) {
if(n%j==0) {
printf("%d ", j);
break;
}
}
i = j + 1;
return j==n ? n : f(n) + j;
}
0164名無しさん@そうだ選挙に行こう
2007/07/29(日) 01:27:240165460
2007/07/29(日) 01:54:07てすつwithコップ酒*1.5+うぃすき*1
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define BUF_SISE 1024
int main(int argc, char *argv[]){
FILE *fp_in, *fp_out;
int ch;
char line[BUF_SISE];
char filename[128] = {0}, *p;
int i,j,k;
const int TABLENGTH =2;
int space_length;
if(argc < 2) fprintf(stderr, "usage : %s filename\n", argv[0]), exit(1);
if((fp_in = fopen(argv[1], "r")) == NULL) perror(argv[1]), exit(2);
if((p = strrchr(argv[1], '.')) == NULL) exit(3);
memcpy(filename, argv[1], p - argv[1]);
strcat(filename, ".txt");
if((fp_out = fopen(filename, "w")) == NULL) perror(filename), exit(4);
0166460って何だ?
2007/07/29(日) 01:54:59for(i=0,j=0;i<BUF_SISE;i++,j++){
if( line[i] == '\n' || line[i] == EOF ){ fputc('\n', fp_out); break; }
if( line[i] == '\t'){
space_length = (j/TABLENGTH + 1)*TABLENGTH - j;
for(k=0;k<space_length;k++) fprintf(fp_out, " ");
j += space_length*6-1;
}else if( line[i] == '&'){
fprintf(fp_out, "&"); j += 5-1;
}else if( line[i] == ' '){
fprintf(fp_out, " "); j += 6-1;
}else fputc(line[i], fp_out);
}
}
fclose(fp_in);
fclose(fp_out);
return 0;
}
0167名無しさん@そうだ選挙に行こう
2007/07/29(日) 01:57:09161さんにお聞きしたいのですが、nに数字を読み込むということで合っていますか?
また、divはどのような働きをするのか、教えていただけないでしょうか。
勉強不足のため、お手をわずらわせて大変申し訳ありませんが、お願いできましたら幸いです。
0168名無しさん@そうだ選挙に行こう
2007/07/29(日) 02:04:20再起不能者が、再起のために非再帰版で回答。
皆が言っているようにこの方が簡単だと思う。
#include <stdio.h>
int f(int n)
{int i,sum=0;
for (i=2;i<=n;i++){
if((n%i)==0){printf("%d ",i);sum+=i;}}
return sum;
}
int main()
{int data,i;
scanf("%d",&data);
printf("1 ");
printf("%d\n",f(data)+1);
return 0;
}
0169名無しさん@そうだ選挙に行こう
2007/07/29(日) 02:09:08てすつ2+うぃすき*0.5
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define BUF_SISE 1024
int main(int argc, char *argv[]){
FILE *fp_in, *fp_out;
char line[BUF_SISE];
char filename[128] = {0}, *p;
int i,k;
const int TABLENGTH =4;
int space_length;
if(argc < 2) fprintf(stderr, "usage : %s filename\n", argv[0]), exit(1);
if((fp_in = fopen(argv[1], "r")) == NULL) perror(argv[1]), exit(2);
if((p = strrchr(argv[1], '.')) == NULL) exit(3);
memcpy(filename, argv[1], p - argv[1]);
strcat(filename, ".txt");
if((fp_out = fopen(filename, "w")) == NULL) perror(filename), exit(4);
0170名無しさん@そうだ選挙に行こう
2007/07/29(日) 02:09:41while( fgets(line,BUF_SISE,fp_in) != NULL ){
for(i=0;i<BUF_SISE;i++){
if( line[i] == '\n' || line[i] == EOF ){ fputc('\n', fp_out); break; }
if( line[i] == '\t'){
space_length = (i/TABLENGTH+1) *TABLENGTH -i;
for(k=0;k<space_length;k++) fprintf(fp_out, " ");
}else if( line[i] == '&') fprintf(fp_out, "&");
else if( line[i] == ' ') fprintf(fp_out, " ");
else fputc(line[i], fp_out);
}
}
fclose(fp_in);
fclose(fp_out);
return 0;
}
0171168
2007/07/29(日) 02:10:24酒気帯びモードなので、今日は再起出来ないかも
0172名無しさん@そうだ選挙に行こう
2007/07/29(日) 02:17:59おらあ呑めば呑むほど強くなるぜ三度目の正直どうだー
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define BUF_SISE 1024
int main(int argc, char *argv[]){
FILE *fp_in, *fp_out;
char line[BUF_SISE];
char filename[128] = {0}, *p;
int i,j,k;
const int TABLENGTH =4;
int space_length;
if(argc < 2) fprintf(stderr, "usage : %s filename\n", argv[0]), exit(1);
if((fp_in = fopen(argv[1], "r")) == NULL) perror(argv[1]), exit(2);
if((p = strrchr(argv[1], '.')) == NULL) exit(3);
memcpy(filename, argv[1], p - argv[1]);
strcat(filename, ".txt");
if((fp_out = fopen(filename, "w")) == NULL) perror(filename), exit(4);
0173名無しさん@そうだ選挙に行こう
2007/07/29(日) 02:18:32for(i=0,j=0;i<BUF_SISE;i++,j++){
if( line[i] == '\n' || line[i] == EOF ){ fputc('\n', fp_out); break; }
if( line[i] == '\t'){
space_length = (j/TABLENGTH+1) *TABLENGTH -j;
j += space_length-1; // タブによる見かけ上の位置
for(k=0;k<space_length;k++) fprintf(fp_out, " ");
}else if( line[i] == '&') fprintf(fp_out, "&");
else if( line[i] == ' ') fprintf(fp_out, " ");
else fputc(line[i], fp_out);
}
}
fclose(fp_in);
fclose(fp_out);
return 0;
}
0174172
2007/07/29(日) 02:20:120175デフォルトの名無しさん
2007/07/29(日) 02:24:41インデントつけたら、見る方にとっては、コピペしたとき
邪魔なだけなんじゃないか?
0176名無しさん@そうだ選挙に行こう
2007/07/29(日) 02:25:220177名無しさん@そうだ選挙に行こう
2007/07/29(日) 02:28:250178名無しさん@そうだ選挙に行こう
2007/07/29(日) 02:37:45頼むから痴漢はしちゃだめだぞ。
0179名無しさん@そうだ選挙に行こう
2007/07/29(日) 02:39:160180名無しさん@そうだ選挙に行こう
2007/07/29(日) 08:16:010181名無しさん@そうだ選挙に行こう
2007/07/29(日) 08:40:340182名無しさん@そうだ選挙に行こう
2007/07/29(日) 08:49:02それって、 がペーストされるんだけど。
0183名無しさん@そうだ選挙に行こう
2007/07/29(日) 09:07:220184名無しさん@そうだ選挙に行こう
2007/07/29(日) 09:34:06それは使ってるブラウザに依る。
JaneやIEなら半角スペースがペーストされるはず。
0185デフォルトの名無しさん
2007/07/29(日) 10:54:57Janeだとnbsp;に変換されてて多少面倒だね
まあそんな細かいことどーでもいいじゃないか
0186名無しさん@そうだ選挙に行こう
2007/07/29(日) 11:04:130187名無しさん@そうだ選挙に行こう
2007/07/29(日) 11:17:14#include <stdio.h>
#include <math.h>
int main(void)
{
_ _ for(int i = 0; i < 10; i++)
_ _ _ _ printf("sin %d = %f\n", i, sin(i));
_ _ return 0;
}
読みやすい?
0188名無しさん@そうだ選挙に行こう
2007/07/29(日) 11:46:540189名無しさん@そうだ選挙に行こう
2007/07/29(日) 13:29:36[2] 問題文(含コード&リンク):
ダイクストラのアルゴリズムをプログラミングせよ。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc 3.4
[3.3] 言語: C
[4] 期限: 2007/8/10
[5] その他の制限:
アップローダに書きかけのプログラムをアップしました。
よろしくお願いします。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4782.txt
0190名無しさん@そうだ選挙に行こう
2007/07/29(日) 13:31:45気持ちよさそうだなw
0192名無しさん@そうだ選挙に行こう
2007/07/29(日) 15:55:03int x,y;
if( argc > 2 ){
sscanf(argv[1],"%d",&x);
sscanf(argv[2],"%d",&y);
試してないけどたぶんこんな流れ
0193名無しさん@そうだ選挙に行こう
2007/07/29(日) 15:59:56>>109に手を入れた
#include <stdio.h>
char pat[][4][3]={{"□","☆","□","□"},
{"☆","★","☆","☆"},{"□","☆","□","□"}};
main(int argc, char *argv[])
{int x, y, i, j;
if (argc != 3){
fprintf(stderr,"usage %s x y\n",argv[0]);
return 0;}
x=atoi(argv[1]);y=atoi(argv[2]);
for (i = 0; i < y; i++) {
for (j = 0; j < x; j++)
printf("%s", pat[i%3][j%4]);
printf("\n"); }
return 0;
}
0194デフォルトの名無しさん
2007/07/29(日) 16:00:16なんかお題くれ
0195名無しさん@そうだ選挙に行こう
2007/07/29(日) 16:11:430196名無しさん@そうだ選挙に行こう
2007/07/29(日) 16:15:15まぁまだ投票してない俺が言えた事じゃないが
019794
2007/07/29(日) 16:16:24おぉ、スッキリしました。ありがとですー。
>>193
ふむふむ。休み期間中にこれくらいは自力で作れるようにならないとなぁ。
ありがとですー。
0198名無しさん@そうだ選挙に行こう
2007/07/29(日) 16:22:06任意の個数まで、あるいは任意の文字列まで数値を取得し
配列に格納した後表示させよ。
たとえば終了文字列を"end"にするなら(この文字列は既知として良い)
入力>12 378aaa98fff90 end78aa9
格納される数値:12,37,98,90
みたいな。
この場合endに当たらない限り、任意の個数分の数値を格納するまで
改行しようが読み続ける仕様。
別に宿題じゃなくて、暇って言うから考えただけだから
実行例の形とかは適当に。
0199名無しさん@そうだ選挙に行こう
2007/07/29(日) 16:29:590200名無しさん@そうだ選挙に行こう
2007/07/29(日) 16:55:39>>930への解答を考えているんだけど、
任意の桁数の乗算ができるような関数を考えてみないか?
入力 12345678901234567890 * 12345678901234567890
出力 152415787532388367501905199875019052100
こんな感じ。
0201名無しさん@そうだ選挙に行こう
2007/07/29(日) 16:56:190202名無しさん@そうだ選挙に行こう
2007/07/29(日) 18:02:21http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4783.txt
いちいちフリーすんのがウゼーし
mul(x, mul(y, z, 10), 10) とか書くとリークするので
GCが欲しいな。
>>194は頑張って四則演算全てに対応してくれw
02031194
2007/07/29(日) 19:15:06(1000とかなら、いけるんだけどな・・・)
0204名無しさん@そうだ選挙に行こう
2007/07/29(日) 19:43:40[2] 問題文(含コード&リンク):
入力した金額の支払い方を印字するプログラムを作成する。
ただし、
1、再帰関数で作成する。
2、配列を用いて割る数(10000,5000,2000,...5,1)をあらかじめ代入しておき、
繰り返し構造で実現する。
例
入力:9362
出力:
10000 0mai
5000 1mai
1000 4mai
500 0mai
100 3mai
50 1mai
10 1mai
5 0mai
1 2mai
再帰と配列で作るのですが、解き方がよくわかりません。
お力を貸してください。よろしくお願いします。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc 3.4
[3.3] 言語: C
[4] 期限: 2007年7月30日
[5] その他の制限: 配列、再帰 両方でお願いします。
0205名無しさん@そうだ選挙に行こう
2007/07/29(日) 19:50:46[2] 問題文(含コード&リンク):
入力した金額の支払い方を印字するプログラムを作成する。
ただし、
1、再帰関数で作成する。
2、配列を用いて割る数(10000,5000,2000,...5,1)をあらかじめ代入しておき、
繰り返し構造で実現する。
例
入力:9362
出力:
10000 0mai
5000 1mai
1000 4mai
500 0mai
100 3mai
50 1mai
10 1mai
5 0mai
1 2mai
再帰と配列で作るのですが、解き方がよくわかりません。
お力を貸してください。よろしくお願いします。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc 3.4
[3.3] 言語: C
[4] 期限: 2007年7月30日
[5] その他の制限: 配列、再帰 両方でお願いします。
0206名無しさん@そうだ選挙に行こう
2007/07/29(日) 19:51:56すみません。
0207名無しさん@そうだ選挙に行こう
2007/07/29(日) 19:53:020208名無しさん@そうだ選挙に行こう
2007/07/29(日) 19:55:140209名無しさん@そうだ選挙に行こう
2007/07/29(日) 20:01:54#include <stdio.h>
void pay(int price, const int *coins, int index)
{
if (coins[index]) {
printf("%d %dmai\n", coins[index], price / coins[index]);
pay(price % coins[index], coins, index + 1);
}
}
int main(void)
{
int d[] = { 10000, 5000, 2000, 1000, 500, 100, 50, 10, 5, 1, 0 };
unsigned price;
while (scanf("%d", &price) == 1)
pay(price, d, 0);
return 0;
}
0210209
2007/07/29(日) 20:02:59まあいいや
0211デフォルトの名無しさん
2007/07/29(日) 20:45:290212デフォルトの名無しさん
2007/07/29(日) 20:48:39[2] 問題文(含コード&リンク):
n個(nは入力する)の実値を入力し、それらの合計と平均を求めるプログラムを、繰り返し構造を用いて書きなさい。
n個入力するという所の書き方が特にわかりません。
ご教授願いますm(__)m
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2007年7月31日20:00まで
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
0213デフォルトの名無しさん
2007/07/29(日) 20:54:48int i;
double sum = 0.0, tmp;
for(i = 0 ; i < 10 ; i++) {
scanf("%lf", &tmp);
sum += tmp;
}
sumが合計
sum/10が平均
0214デフォルトの名無しさん
2007/07/29(日) 21:12:08#include <stdio.h>
int main(void){
int i,n;
double tmp,sum=0;
printf("n個入力\n->");
scanf("%d",&n);
getchar();
for(i=0;i<n;i++){
scanf("%lf",&tmp);
getchar();
sum+=tmp;
}
printf("合計:%f\n平均:%f\n",sum,sum/(double)n);
return 0;
}
コンパイルしてないからケアレスミスとかシラネ。
0215デフォルトの名無しさん
2007/07/29(日) 21:28:23214さん
ありがとうございました^^)
0216デフォルトの名無しさん
2007/07/29(日) 21:40:41#include <stdio.h>
void pay(int price, const int *coins, int index) {
if (coins[index]) {
printf("%d %dmai\n", coins[index], price / coins[index]);
pay(price % coins[index], coins, index + 1);
}
}
int main(void) {
int d[] = { 10000, 5000, 2000, 1000, 500, 100, 50, 10, 5, 1, 0 };
unsigned price;
while (scanf("%d", &price) == 1) { pay(price, d, 0); }
return 0; }
0217デフォルトの名無しさん
2007/07/29(日) 22:02:12[2] 問題文(含コード&リンク):
nを入力し、n項までの次のような規則の数列を印字せよ。
1 1 2 1 2 3 1 2 3 4 1 2 3 4 5 1 2 3 4 5 6 1 2 3 4 5 6 7 …
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc 3.4
[3.3] 言語: C
[4] 期限: 2007年7月30日中
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
全くわかりません;本当に困っています。
どうぞよろしくお願いします。
0218デフォルトの名無しさん
2007/07/29(日) 22:08:43#include <stdio.h>
int main()
{
int i,j,num;
scanf("%d",&num);
for(i=1;i<=num;i++)
for(j=1;j<=i;j++)
printf("%d ",j);
printf("\n");
return 0;
}
0219217
2007/07/29(日) 22:39:07ありがとうございます!!
forだけでこんなにきれいにできるんですね。
0220デフォルトの名無しさん
2007/07/29(日) 22:49:37#include <stdio.h>
int main(void)
{
int i, j, k, n;
scanf("%d", &n);
for(i = 1, j = 1, k = 1; i <= n; i++, j++){
printf("%d ", j);
if(j == k) j = 0, k++;
}
putchar('\n');
return 0;
}
0221デフォルトの名無しさん
2007/07/29(日) 23:07:010なるほど、そうすればいいんだ
0222デフォルトの名無しさん
2007/07/29(日) 23:08:050#include <stdio.h>
void f3( int k, int i ) { if ( i > k ) { return; } printf( "%d ", i ); f3( k, i + 1 ); }
void f2( int n, int k ) { if ( k > n ) { return; } f3( k, 1 ); f2( n, k + 1 ); }
void f1( int n ) { f2( n, 1 ); puts(""); }
int main()
{
int n;
scanf("%d", &n);
f1(n);
return 0;
}
0223お願いします
2007/07/29(日) 23:13:380[2] 問題文:"整数"のデータを入力しながら、その個数を数え、合計、平均、標準偏差を計算せよ。また、個々のデータに対する偏差値も計算せよ。
下記の雛形を使用せよ。
#include <stdio.h>
#include <math.h>
#define MAX 100
main()
{
int a[MAX], n, i, c=0, sum=0;
double ave, sigma=0;
/* この部分を各自作成する */
printf(" | mark | deviation\n");
printf("-------+--------+-----------\n");
for (i = 0; i < n; i++)
printf("a[%3d] | %6d | %6.2f\n",
i, a[i], (a[i]-ave)*10/sigma+50);
printf("-------+--------------------\n");
printf(" sum | %6d\n", sum);
printf(" ave | %6.2f\n", ave);
printf(" sigma | %6.2f\n", sigma);
}
続き↓
0224お願いします
2007/07/29(日) 23:15:330[3] 環境
[3.1] OS:Windows
[3.2] gcc 3.4
[3.3] 言語: C
[4] 期限: [2007年07月31日20:00まで]
[5] その他の制限:for文で作れと言われました。
もう何を先にやったら良いのかもわかりません。
どうかお願いしますm(*_ _)m
0225デフォルトの名無しさん
2007/07/29(日) 23:32:210[2] 問題文(含コード&リンク):
16bitの2進数を受け取り、その10進数を戻すint型の関数を作成せよ。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2007年7月31日
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
全く解けなくて困っています。
関数、配列の基礎的なことは習いました。
どうぞよろしくお願いします。
0226デフォルトの名無しさん
2007/07/29(日) 23:34:480[2] 問題文:
丸めについて。
気温のデータを5℃単位に丸めたい。
キーボードからdouble型変数kに気温を入力し、
丸めた数値はint型変数gに求め、gを画面に出力する。
ただし入力データに負の気温はないものとする。
また必要なら、計算途中の中間結果を格納するint型変数wなど、
適宜変数を用意すること。
[3] 環境
[3.1] OS:WINDOWS XP
[3.2] コンパイラ名とバージョン: (VS 2005)
[3.3] 言語: C
[4] 期限: ([2007年7月31日19:00まで。
0227デフォルトの名無しさん
2007/07/29(日) 23:44:460#include <stdio.h>
#include <string.h>
int BinStrToNum(char *lpszBin);
int main(void)
{
printf("%d\n", BinStrToNum("1111111111111111")); /*0xFFFF = 65535*/
return 0;
}
int BinStrToNum(char *lpszBin)
{
int nValue=1, nSum=0, i; /*2の0乗、10進数に変えた値の合計*/
for(i=strlen(lpszBin)-1; i>=0 ;i--)
{
if(lpszBin[i] == '1') nSum+=nValue; /* 1なら2のn乗を足す */
nValue*=2;
}
return nSum;
}
0228デフォルトの名無しさん
2007/07/30(月) 00:07:41[2] 問題文(含コード&リンク):
以下のプログラムの空欄1,2を埋めて struct CELL *header;が示す双方向リスト
の並びを逆順にする関数void reverse() を完成させよ
struct CELL{
int value;
struct CELL *prev;
struct CELL *next;
};
struct CELL *header;
void reverse(void){
struct CELL *p1,*p2,*p3;
p1=NULL;
p2=header;
for(;p2!=NULL;){
p3=p2->next;
p2->【空欄1】=p1;
p2->【空欄2】=p3;
p1=p2;
p2=p3;
} }
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C
[4] 期限: [2007年7月30日8:00まで]
[5] その他の制限: 特になし
期限が近いですがお願いいたします
0229デフォルトの名無しさん
2007/07/30(月) 00:29:29[2] 問題文:
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4784.txt
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ名とバージョン:Visual Studio .NET 2003
[3.3] 言語:C
[4] 期限:2007/7/31(火) 14:30
[5] その他の制限:入力にfopen系関数を使用しない。
入力は、コマンドプロンプトから入力が保存されたテキストファイルを読み込む方法で行う。
0230デフォルトの名無しさん
2007/07/30(月) 00:36:34double variance=0.0;/*分散を追加*/
printf("n:");
scanf("%d",&n);
for(i=0;i<n;i++){
printf("%d:",i+1);
scanf("%d%c",&a[i],&c);/*変だが他にcの使い道がない*/
sum+=a[i];
}
ave=(double)sum/n;
for(i=0;i<n;i++){
variance+=(a[i]-ave)*(a[i]-ave)/n;
}
sigma=sqrt(variance);
0231デフォルトの名無しさん
2007/07/30(月) 00:38:26へー、さっぱりわかんねーや
0232デフォルトの名無しさん
2007/07/30(月) 00:39:50確認してないけど
#include<stdio.h>
int main(){
double k;
int g;
printf("k=");
scanf("%lf",&k);
g=(int)k/5*5;
printf("g=%d\n",g);
return 0;
}
0233デフォルトの名無しさん
2007/07/30(月) 00:46:07かと思った。どっちにもとれるな。
0234お願いします
2007/07/30(月) 01:11:00ありがとうございます。やってみますm(*_ _)m
0235202
2007/07/30(月) 01:33:08それ俺へのレス?
ソースの中の10とか書いてるのは桁数じゃなくて基数だよ。
10進数なら10。
2〜10なら何でも良い。16進数とかにも対応したければ、文字列との
変換の部分を直さないといけないな。
0236デフォルトの名無しさん
2007/07/30(月) 01:40:10#include <stdio.h>
int main(void)
{
int i,n,w[256],sum,ok;
puts("?");scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d", &w[i]);
if(w[i]<=0) {puts("\nerror");return -1;}
}
for(;;){
for(i=0;i<n;i++){w[i]=-w[i];if(w[i]<0) break;}
if(i==n) {ok=0;break;}
sum=0; for(i=0;i<n;i++) sum+=w[i];
if(!sum) {ok=1;break;}
}
puts(ok?"true":"false");
return 0;
}
0237デフォルトの名無しさん
2007/07/30(月) 06:10:36[問題]
入力データファイルが用意されている。
仕様
入力データ件数10件
1件に最大100文字(半角文字とする)
入力データは、文字型1次元配列(サイズ101)に格納
文字の種類は最大200種類(文字型一次元配列使用)
但し、入力した文字列中の改行は("\n")マークは処理対象外
文字コード順に並べて出力する
出力図形は
1行に最大25文字(文字区切りに1カラム空白)
構成文字(並べ替え済み)を出力する
0238デフォルトの名無しさん
2007/07/30(月) 07:56:44【空欄1】 next
【空欄2】 prev
多分。
0239デフォルトの名無しさん
2007/07/30(月) 10:27:06この問題の(3)標準偏差と(4)相対係数が分かりません。
どうか教えて頂けないでしょうか・・・?
よろしくお願い致します。
0240デフォルトの名無しさん
2007/07/30(月) 10:37:36大変失礼致しました。
もしお時間がございましたらよろしくお願いいたします。
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):http://tonosiki.mbnsk.net/uploader/src/up1495.jpg
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:gcc 3.4
[3.3] 言語: C
[4] 期限: 07/8/1
[5] その他の制限: 特にありませんが、出来る限り単純なプログラムでお願いいたします。
0241デフォルトの名無しさん
2007/07/30(月) 10:38:400242デフォルトの名無しさん
2007/07/30(月) 11:28:15>>240
標準偏差の求め方は、平均をだし、個々のデータからその平均値を引き
次に、その平均値を引いた個々のデータを二乗する。
次にその二乗した個々のデータの合計をデータの数で割る。
その割った数値の平方根を取る。
これが標準偏差。
データファイルくらい用意しとけ。
0243デフォルトの名無しさん
2007/07/30(月) 12:32:14[2] 問題文(含コード&リンク):
•演算子のオーバーロードを用いた独自のプログラムを作成しなさい。
なお,ニ項演算子,単項演算子,関係演算子,論理演算子のオーバーロードをそれぞれ最低1つは用いること。
また,意味のないプログラム(出力するだけなど)は避けること。
[3] 環境
[3.1] OS: xp
[3.2] visual studio 2005
[3.3] 言語: c++
[4] 期限: 2007/7/31/〜10:00
[5] その他の制限:特に無し
よろしくお願いします。
0244デフォルトの名無しさん
2007/07/30(月) 13:59:38[2] 問題文:
int型の変数 x を用意し,そのアドレス(16進表示)と値を表示させるには次のように書きます.
int x = 100;
printf("&x=%p x=%d\n", &x, x);
int型,float型,double型,char型の変数をそれぞれ2個ずつ適当に初期化して用意し,それぞれのアドレスと値とを表示しなさい.
またint型配列(サイズは 4) についても各要素のアドレスと値を同様に表示しなさい.
そしてメモリにどのように配置されたか考察しなさい.
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
[3.3] 言語: C
[4] 期限: 2007年07月31日23:00まで
[5] その他の制限:特にありません。
よろしくお願いします。
0245デフォルトの名無しさん
2007/07/30(月) 14:10:18#include <stdio.h>
int main() {
int n1 = 12, n2 = 21;
float f1 = 10.1, f2 = 1.1;
double d1 = 3.1415926, d2 = 1.6145;
char c1 = 'f', c2 = 'a';
int a[4] = {1,2,3,4};
printf("&n1=%p n1=%d\n", n1);
printf("&n2=%p n2=%d\n", n2);
...
printf("a=%p a[0]=%d a[1]=%d a[2]=%d a[3]=%d \n", a, a[0], a[1], a[2], a[3]);
return 0;
}
0246デフォルトの名無しさん
2007/07/30(月) 14:21:45[2]問題:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4785.txt
[3]環境
OS:リナックス
コンパイラ:gcc
言語:C
[4]期限:8月1日まで
どうぞよろしくお願いします。
0247デフォルトの名無しさん
2007/07/30(月) 15:21:31迅速な解答ありがとうございます
0248デフォルトの名無しさん
2007/07/30(月) 15:46:20http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4786.txt
0249デフォルトの名無しさん
2007/07/30(月) 17:56:27[2] 基本的なクイックソートは、すでに昇順、あるいは降順に並んでいる
データにたいして、最悪の振る舞い、すなわち計算量O(nの2乗)を示すことを説明せよ
[3] 環境
[3.1] OS: win XP
[3.2] cygwin
[3.3] 言語: C
[4] 期限: 無期限
よろしくお願いします
0250デフォルトの名無しさん
2007/07/30(月) 18:37:50[2]次の文を if 文を使って分かりやすく書き直せ。
feb = (y % 400 == 0) ? (y % 100 == 0) ? 28 : (y % 4 == 0) ? 29 : 28
: (y % 4 == 0) ? 29 : 28;
※これは閏年の2月の日にちを求めるものではない。
[3]C言語
0251デフォルトの名無しさん
2007/07/30(月) 19:01:46feb = 29;
else
feb =28;
0252デフォルトの名無しさん
2007/07/30(月) 19:25:35[2] n 3
J= Σ K (←Kの3乗です)とする時J>=3000となる最も小さいnの値を求め、その時のJの値も示せ。
k=1
[3]Windows C++
[4]早いほどうれしいです
初学者です。こんな問題も解けませんorz 3乗をループで足していく表現がわかりません。
よろしくお願いします
■ このスレッドは過去ログ倉庫に格納されています