C/C++の宿題片付けます 152代目
レス数が900を超えています。1000を超えると表示できなくなるよ。
0001デフォルトの名無しさん
2011/08/01(月) 21:33:15.15【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。 >>2以降にあります。
・問題文は、出題されたまま全文を書いてください。
・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。
0809デフォルトの名無しさん
2011/10/25(火) 01:15:01.68[2] 問題文(含コード&リンク):
1.キーボードから正の整数を2つ(x y)入力し、縦x個、横y個の文字'*'
からなる長方形を表示するプログラムを多重ループを用いて作成せよ。
2.キーボードから入力した10進整数(0以上2^31 -1以下)を二進数にせよ
for文を使うこと。例えば2で割った余りと商の値によって下の桁のビットから求める等
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 本日12:00
[5] その他の制限: (どこまで習っているか、for while。(配列、関数、ポインタなどまだです)
宜しくお願いします
0810デフォルトの名無しさん
2011/10/25(火) 01:32:03.75#include <stdio.h>
int main(){
int x,y,t;
scanf("%d %d",&x,&y);
while(x--){
t=y;
while(t--)putchar('*');
putchar('\n');
}
return 0;
}
#include<stdio.h>
int main(){
int i,x;
scanf("%d",&x);
for(i=1;i<=x;i*=2);
for(i/=2;i>0;i/=2)putchar( (x&i)?'1':'0' );
putchar('\n');
return 0;
}
0811デフォルトの名無しさん
2011/10/25(火) 01:38:49.71>[5] その他の制限: (どこまで習っているか、for while。(配列、関数、ポインタなどまだです)
トリッキーなプログラムを求めてるように見えるのな。
実は課題じゃないんじゃ?
0812デフォルトの名無しさん
2011/10/25(火) 01:43:01.14(8) : error C2059: 構文エラー : '}'
(11) : error C2065: 'p' : 定義されていない識別子です。
(12) : error C2065: 'p' : 定義されていない識別子です。
(12) : warning C4047: '関数' : 間接参照のレベルが 'const char *' と 'int' で異なっています。
(12) : warning C4024: 'sscanf' : の型が 1 の仮引数および実引数と異なります。
(15) : error C2065: 'p' : 定義されていない識別子です。
(15) : error C2100: 間接指定演算子 (*) の使い方が正しくありません。
(15) : error C2065: 'p' : 定義されていない識別子です。
(15) : error C2100: 間接指定演算子 (*) の使い方が正しくありません。
(15) : error C2106: '=' : 左のオペランドが、左辺値になっていません。
(16) : error C2065: 'p' : 定義されていない識別子です。
(18) : error C2065: 'p' : 定義されていない識別子です。
(18) : error C2100: 間接指定演算子 (*) の使い方が正しくありません。
(18) : error C2106: '=' : 左のオペランドが、左辺値になっていません。
みあたりませんけど?
0814デフォルトの名無しさん
2011/10/25(火) 08:13:31.97頭悪いページだな。
>コマンドプロンプト リダイレクト 画面にも表示
と言う検索に対して、コメントが、
>リダイレクトの意味がわかっていないからこういうおバカなキーワードになる。
0815デフォルトの名無しさん
2011/10/25(火) 10:22:21.24int main( void )
{
system( "sort < infile > outfile" );
system( "rm infile" );
system( "mv outfile infile" );
return 0;
}
0816デフォルトの名無しさん
2011/10/25(火) 17:36:28.84[2] 問題文(含コード&リンク):
1〜10の数が書かれたカードが1枚ずつ、全部で10枚あります。
今、これらのカードを並べ、隣り合った数の差を左から次々に加えて
いくことにします。例えば、
2,5,6,8,1,4,3,9,7,10
と並べたならば、
3+1+2+7+3+1+6+2+3=28
ということになります。
この計算結果が最も大きくなるようにカードを並べると、
結果はいくらになるでしょうか。
(注)元の問題は算数の問題なので論理で答えを出すものだが、
ここではプログラムを書いてその最大値を求めて欲しい。
[3] 環境
[3.1] OS: Windows 7
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2011年10月31日
[5] その他の制限:特になし
よろしくお願いします
0817デフォルトの名無しさん
2011/10/25(火) 18:08:56.12#include <stdio.h>
#include <stdlib.h>
void solve(int card[], int card_num, int is_used[], int *maximum){
int i, sum=0;
if(card_num>=10){
for(i=1;i<10;i++) sum+=abs(card[i]-card[i-1]);
if(*maximum<sum){
*maximum=sum;
// printf("sum=%d ", sum);
// for(i=0;i<10;i++) printf(" %d", card[i]);
// printf("\n");
}
return;
}
for(i=0;i<10;i++){
if(is_used[i]) continue;
is_used[i]=1;
card[card_num]=i+1;
solve(card, card_num+1, is_used, maximum);
is_used[i]=0;
}
}
int main(void){
int card[10], is_used[10]={0}, maximum=0;
solve(card, 0, is_used, &maximum);
printf("maximum=%d\n", maximum);
return 0;
}
0818デフォルトの名無しさん
2011/10/25(火) 18:41:57.49http://thumb.mtstarnews.com/06/2011/10/2011102513501644536_1.jpg
キム・テヒ主演日本ドラマで「竹島」と「日本海」と表記された件でスタッフの1人が解明に出た。
去る24日、ある国内韓流コミュニティであるネチズンが去る23日のフジテレビドラマ「僕とスターの99日」の
場面中に独島と東海が竹島と日本海と表記された地球儀を使う場面を公開した。これに対してネチズンらの間で
論議が続くとすぐに「僕とスターの99日」のスタッフ1人が自身のツイッターに「“僕とスターの99日”で地球儀に
竹島と日本海の表記が出たことは両国の問題にならないようにグラフィックで削除したが最終編集の過程で
グラフィックレイヤーがレンダリングされなかった」と伝えた。引き続き「以後の放送とDVDでは削除された
画面が出て行きます」として今後注意するという内容の文を残した。
これを見たネチズンは「それでも考えていたというからこれからは注意してくれたら良いだろう」
「今後ずっと見守っている」「問題が起きる前にあらかじめ解決したら良かっただろう」など多様な反応を見せた。
http://star.mt.co.kr/view/stview.php?no=2011102513501644536&type=1&outlink=1
http://kamome.2ch.net/test/read.cgi/news4plus/1319521904/
0819デフォルトの名無しさん
2011/10/25(火) 19:06:29.52数を並べ替えるアルゴリズム部分に感動した。
これって定石なのかしら?
0820デフォルトの名無しさん
2011/10/25(火) 19:30:08.810821デフォルトの名無しさん
2011/10/25(火) 19:33:01.42定石ではあるけど初心者は再帰呼出を嫌うだろJK
0822デフォルトの名無しさん
2011/10/25(火) 19:35:14.18http://ideone.com/S472x
0823デフォルトの名無しさん
2011/10/25(火) 19:51:37.55最初に思いついたのはstd::next_permutationだったYO
0824デフォルトの名無しさん
2011/10/25(火) 20:05:19.11#include <stdio.h>
#include <stdlib.h>
#define CARD_NUM 10
int main(void){
int card[CARD_NUM], sum=0, i;
for(i=0;i<CARD_NUM/2;i++)
{
card[i*2+1]=i+1;
card[i*2]=i+1+(CARD_NUM+1)/2;
}
if(CARD_NUM%2)
{
card[CARD_NUM-1]=CARD_NUM/2+1;
}
for(i=1;i<CARD_NUM;i++)
{
sum+=abs(card[i]-card[i-1]);
}
printf("%d\n", sum);
return 0;
}
0825デフォルトの名無しさん
2011/10/25(火) 20:29:29.460826デフォルトの名無しさん
2011/10/25(火) 21:30:24.83[2] 問題文(含コード&リンク): http://ideone.com/duPFX
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C言語
[4] 期限: 10月26日 09:00
よろしくお願いします
0827デフォルトの名無しさん
2011/10/25(火) 21:31:13.38[2] 問題文(含コード&リンク):http://ideone.com/foLSr
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C言語
[4] 期限: 10月26日 09:00
連投で恐縮ですがよろしくお願いします
0828デフォルトの名無しさん
2011/10/25(火) 22:43:13.90ありがとうございます
0829デフォルトの名無しさん
2011/10/26(水) 05:13:34.17[2] 問題文(含コード&リンク):
ユーザーに入力させた半数英数字の文字列を、char型配列に入れ、一字ずつずらして表示させるプログラムの作成。
入力された順番と同じになったら表示終了とする。
例 abcd
bcda
cdab
dabc
abcd
ポインタを使うと思います。それから、strlen(c)を使うようです。
[3] 環境
[3.1] OS:Windows7
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C言語
[4] 期限: 10月26日 15:00
簡単に説明もいただけると大変助かります。
よろしくお願いいたします。
0830デフォルトの名無しさん
2011/10/26(水) 05:20:25.20#include <stdio.h>
#include <string.h>
int main(void)
{
char str[256];
int i, j, l;
scanf("%s", str);
l = strlen(str);
for(i = 1; i <= l; i++) {
for(j = 0; j < l; j++) putchar(str[(i + j) % l]);
putchar('\n');
}
return 0;
}
0831デフォルトの名無しさん
2011/10/26(水) 07:40:32.33#include <stdio.h>
#include <string.h>
int main(void)
{
char str[256],*p=str;
int i, l;
printf("in = ");
scanf("%s", str);
i=l = strlen(str);
while(i--) {
*(p+l)=*p;
*(p+l+1)='¥0';
printf("%s¥n",++p);
}
return 0;
}
0832デフォルトの名無しさん
2011/10/26(水) 12:54:45.75ありがとうございます。
%sとはどんな働きをするのですか?
調べてみたのですが、よくわかりませんでした><
0833デフォルトの名無しさん
2011/10/26(水) 13:12:50.05文字列
0834デフォルトの名無しさん
2011/10/26(水) 13:14:05.41int main(void)
{
char str[256], *p, *q;
scanf("%s", str);
for(p = str; *p; p++) {
for(q = p + 1; *q; q++) putchar(*q);
for(q = str; q <= p; q++) putchar(*q);
putchar('\n');
if(*p == '\0') break;
}
return 0;
}
0835デフォルトの名無しさん
2011/10/26(水) 13:44:08.42文字を入力する際にはこちらを使うということですね、ありがとうございます。
>>830と>>834はまだ勉強していないやつがあったので、>>831を使ってみようと思います。
様々な回答ありがとうございました。
0836デフォルトの名無しさん
2011/10/26(水) 15:40:06.89[2] 問題文(含コード&リンク):以下の実行例のように,標準入力からgetchar 関数
を使って文字を次々と読み込み,アルファベットの小文
字は大文字に,大文字は小文字に変えて,それ以外の文
字はそのまま表示するプログラムを作成せよ
例hELLO!
I’m Taro KOUKA. <--(入力)
i’M tARO kouka.
I was born in Tokyo in 1991. <--(入力)
i WAS BORN IN tOKYO IN 1991.
<--(Ctrl-d で入力終了)
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C言語
[4] 期限: 10月27日9:00
0837デフォルトの名無しさん
2011/10/26(水) 16:05:14.42#include <stdio.h>
#include <ctype.h>
int main(void)
{
char c;
while ((c = getchar()) != EOF)
{
if (isalpha(c))
{
if (islower(c))
c = toupper(c);
else
c = tolower(c);
}
putchar(c);
}
return 0;
}
0838デフォルトの名無しさん
2011/10/26(水) 19:06:26.15インスコしてみたらクソ遅くてわろた 1.2になりかけの頃のやつ
Win7 64bit Core3 でEEのIndigo(日本語後入れ)使ってるけど
動作の遅さよりファイル関連の反映の遅さが気になる
EclipseをSSDにいれてるヒトの感想がききたい
0839デフォルトの名無しさん
2011/10/26(水) 19:25:56.34なんでこのスレからコピペしてんの?
Eclipse統合M31【Java/C++/Ruby/Python/Perl】
http://hibari.2ch.net/test/read.cgi/tech/1295886572/
0840デフォルトの名無しさん
2011/10/26(水) 20:13:49.00>>831の回答をもらったのですが、strlenがどんな働きをするのかと、
a=b = strlen(str);
while(a--) {
*(p+b)=*p;
*(p+b+1)='\0';
printf("%s\n",++p);
この部分が一体全体どうなっているかわかりません。教えてください。
pには文字が入っているはずなのに、どうして*(p+b+1)='\0'のように数字を足すことができるのでしょうか。
また、a=b=strlen(str)とaも文字が入っているはずなのに、a--と数字のように扱えるのはなぜですか?
初歩的な質問で申し訳ありませんが、お願いします。
0841デフォルトの名無しさん
2011/10/26(水) 21:55:45.86>pには文字が入っている
えっ!?
0842デフォルトの名無しさん
2011/10/26(水) 22:40:26.85abcd
の入力では4が返ってる。
pは配列strのどこかを指すポインタ
初期化時は配列strの先頭を指してる。
whileループはiが偽(0)になるまで、例では4回ループする。
*(p + l) = *p はポインタpが指す位置からl番目、'\0'が入ってる位置にポインタpが指してる文字、
1ループ目では先頭のaが代入される。
*(p + l + 1) = '\0' は、↑で代入した位置の次に'\0'を代入して終端文字の修正をしてる。
printf("%s\n", ++p) は、分解すると
++p;
printf("%s\n", p);
ポインタpの指す位置から末尾に1文字移動したので、ポインタを一つずらして表示させてる。
長ったらしいのでまとめると、
配列strに文字を入力した後は
abcd\0
abcda\0
abcdab\0
abcdabc\0
って具合に一文字ずつ追加しながらポインタpも一つずつずらし、
結果入力された文字が一つずつずれて表示されてる。
0843デフォルトの名無しさん
2011/10/26(水) 22:40:53.81>>842
>>840
0844デフォルトの名無しさん
2011/10/26(水) 22:55:25.07[2] 問題文(含コード&リンク):
明治元年以降の西暦年を4桁の数で入力すると、
和暦で年を表示するプログラムを作成せよ。
ただし、2つの元号を持つ年
は両方の年を表示すること。
(例: 1989年 → 昭和64年、平成元年)
(2つの元号を持つ年の扱いについては
余裕がある人は、月、日も入れて、その日の正しい
元号を表示することによって元号を一つ表示す
るプログラムとしてもよい。)
提出例
=== プログラム ===
#include <stdio.h>
int main()
{
[3] 環境
[3.1] OS:Windows7
[3.2] コンパイラ名とバージョン:
[3.3] 言語: visualC++2010
[4] 期限: 10月27日 19:00
よろしくお願いします
0845デフォルトの名無しさん
2011/10/27(木) 00:52:19.43ユーザ関数を定義して作成しなさい.
その際の区分間距離も任意に入力できるようにすること。
実行例
積分範囲を入力せよ
x0 = 0
xl = 10
区分間距離を入力せよ
length = 1
ans = 9.949055
積分範囲を入力せよ
x0 = 0
xl = 100
区分間距離を入力せよ
length = 5
ans = 49.588107
お願いします。
0846デフォルトの名無しさん
2011/10/27(木) 01:03:29.78>>1
0847デフォルトの名無しさん
2011/10/27(木) 01:46:50.62http://ideone.com/PmuJg
0848デフォルトの名無しさん
2011/10/27(木) 02:02:10.84847をちょっと修正
http://ideone.com/eGfeM
0849デフォルトの名無しさん
2011/10/27(木) 11:18:07.83[2] 問題文(含コード&リンク):
設問1-1
プログラム例6.3.1を配列変数xの要素数(変数memberの値)と各要素の値をキーボードから入力するように変更しなさい。
プログラム例6.3.1
#include <stdio.h>
int main(void)
{
int x[10] = {80, 56, 68, 75, 45, 100, 92, 73, 63, 95};
int member = 10;
int total;
float average;
int i;
for (i = 0, total = 0; i < member; ++i )
total += x[i];
average = (float)total / (float)member;
printf("総和=%d\n",total);
printf("平均点=%7.2f\n", average);
return 0;
}
設問1-2
上記設問1-1と同じ配列変数xの要素をその並びを逆順にして配列変数yへ代入し、yの全要素を表示するプログラムを作りなさい。
[3] 環境
[3.1] OS:Windows vista
[3.2] コンパイラ名とバージョン:visual studio 2008
[3.3] 言語:C
[4] 期限:[2011年11月1日8:00まで]
[5] その他の制限:変数、算術演算、printf、scanf、繰り返し処理while文、do-while文
繰り返し処理for文、繰り返し処理for文による総和の計算、配列変数は習いました。
宜しくお願いします。
0850デフォルトの名無しさん
2011/10/27(木) 12:44:45.55int number, *x, i;
printf("要素数:");
scanf("%d", number);
x = malloc(sizeof(*x) * number);
for (i = 0; i < number, i++)
scanf("%d", x + i);
1-2
revert(x, y, 0, 10);とでもして呼び出して。
void revert(int *x, int *y, int i, j)
{
j--;
if (i >= j)
return;
y[j] = x[i];
x[i] = x[j];
reverse(x, y, i++, j--);
return;
}
0851デフォルトの名無しさん
2011/10/27(木) 12:51:29.61/*設問1-1*/
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int *x;
int member;
int total;
float average;
int i;
printf("member > ");
scanf("%d", &member);
x = (int *)malloc(sizeof(int) * member);
for (i = 0; i < member; ++i)
printf("x[%d] > ", i), scanf("%d", &x[i]);
for (i = 0, total = 0; i < member; ++i)
total += x[i];
average = (float)total / (float)member;
printf("総和=%d\n", total);
printf("平均点=%7.2f\n", average);
free(x);
return 0;
}
つづく
0852デフォルトの名無しさん
2011/10/27(木) 12:52:10.69/*設問1-2*/
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int *x, *y;
int member;
int i;
printf("member > ");
scanf("%d", &member);
x = (int *)malloc(sizeof(int) * member);
y = (int *)malloc(sizeof(int) * member);
for (i = 0; i < member; ++i)
printf("x[%d] > ", i), scanf("%d", &x[i]);
for (i = 0; i < member; ++i)
y[member - 1 - i] = x[i];
for (i = 0; i < member; ++i)
printf("y[%d]=%d\n", i, y[i]);
free(x);
free(y);
return 0;
}
0853デフォルトの名無しさん
2011/10/27(木) 15:13:36.09[2] 問題文(含コード&リンク):(列挙体)
Sunday, Monday, Tuesday, Wednesday, Thursday,
Friday, Saturday という曜日を表す列挙体
enum Days を定義せよ.以下の実行例のように,
曜日を入力すると,enum Days の列挙定数を利用して
週末,平日,それ以外の場合にそれぞれメッセージを
表示するプログラムを作成せよ.
例 % ./q3-3
曜日を入力して下さい
(0:日1:月2:火3:水4:木5:金6:土):0
やった!週末だ
曜日を入力して下さい
(0:日1:月2:火3:水4:木5:金6:土):5
今日も講義頑張ろう!
曜日を入力して下さい
(0:日1:月2:火3:水4:木5:金6:土):7
この日はないぞう...
[3] 環境
[3.1] OS:Windows7
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C言語
[4] 期限: 10月28日 10:00
簡単に説明もいただけると大変助かります。
よろしくお願いいたします。
0854デフォルトの名無しさん
2011/10/27(木) 15:40:35.36#include <stdio.h>
int main(void){
enum Days {Sunday, Monday, Tuesday, Wednesday, Thursday,
Friday, Saturday
};
char s[][100]= {"やった!週末だ","今日も講義頑張ろう!","この日はないぞう..."};
int n[]= {0,1,1,1,1,1,0};
int d;
while(1) {
printf("曜日を入力して下さい¥n");
printf("(0:日1:月2:火3:水4:木5:金6:土):");
scanf("%d",&d);
if((d<Sunday)||(d>Saturday))
printf("%s¥n¥n",s[2]);
else
printf("%s¥n¥n",s[n[d]]);
}
return 0;
}
0855デフォルトの名無しさん
2011/10/27(木) 16:04:32.08有難う御座います
0856デフォルトの名無しさん
2011/10/27(木) 16:24:59.71[2] 問題文(含コード&リンク): bmp、jpg形式の画像の輝度値を表示させるプログラムを作成せよ
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc opencv
[3.3] 言語: C
[4] 期限: 2011年10月29日まで
[5] 以下のURLの画像のような、元々の白黒画像を白と黒の輝度値を表示した画像に変換したいのですが、どうしていいか
全く分からなくて、困っています
http://mcm-www.jwu.ac.jp/~physm/buturi07/robo/genri02.html
画像だけ載せることができればいい課題なので、最悪このような事を行えるソフトウェアがあればいいのですが
ネットでたくさん検索を行ったのですが、私の浅知恵のせいか、よく分かりませんでした
ヒントだけでもいいので、よろしくお願い致します
0857デフォルトの名無しさん
2011/10/27(木) 16:38:59.380858デフォルトの名無しさん
2011/10/27(木) 17:17:25.89入門編で聞いたんですけどこっちで聞けと言う事なので
5人の学生の成績(100点満点)の値をキーボードから読み込み,それらの平均点と分散(標準偏差の二乗)を求めるプログラムを作れ。
授業の課題です
解説付きでお願いします。
0859デフォルトの名無しさん
2011/10/27(木) 17:41:48.12>>1
0860デフォルトの名無しさん
2011/10/27(木) 18:06:23.12#include <stdio.h>
#define NINZU 5
int main(void){
int seiseki[NINZU], i, sum = 0;
double average; /* 平均 */
double sampleVariance = 0; /* 標本分散 */
double w;
/* 5人の学生の成績(100点満点)の値をキーボードから読み込み、点数の合計値を出す */
for (i = 0; i < NINZU; i++) {
printf("seiseki[%d] = ", i + 1);
scanf("%d", &seiseki[i]);
sum += seiseki[i];
}
average = (double) sum / NINZU; /* 平均 */
/* 平均との差の二乗の合計値を出す */
for (i = 0; i < NINZU; i++) {
w = seiseki[i] - average;
sampleVariance += w * w;
}
sampleVariance /= NINZU; /* 標本分散を出す */
printf("answer = %g¥n", sampleVariance);
return 0;
}
0861デフォルトの名無しさん
2011/10/27(木) 18:09:22.01#include <stdio.h>
#define f ((a+b+c+d+e)/5)
#define g(x) ((x-f)*(x-f))
main(){int a,b,c,d,e;scanf("%d%d%d%d%d",&a,&b,&c,&d,&e);/*キーボードから読み込み*/
return printf("平均:%d\n分散:%d\n",f,(g(a)+g(b)+g(c)+g(d)+g(e))/5);/*平均と分散を求める*/
}
0862デフォルトの名無しさん
2011/10/27(木) 18:09:58.26http://codepad.org/rTokMRii
0863858
2011/10/27(木) 18:36:35.29あ、ごめんなさい
[1] 授業単元:数学関数と数値計算
[2] 問題文(含コード&リンク):>>358
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: ごめんなさい。分かんないです。
[3.3] 言語: おそらくどちらでも
[4] 期限: [2011年10月28日15:00まで]
[5] その他の制限: printfとscanfまで習いました。
授業全然ついていけてないんで、あやふやなところ多いです。すいません
0864デフォルトの名無しさん
2011/10/27(木) 18:37:22.65問題文は>>858です
0865デフォルトの名無しさん
2011/10/27(木) 18:39:17.59>>860-862
0866デフォルトの名無しさん
2011/10/27(木) 20:51:39.05すみません、初めはこちらにレスしようと思ったのですが
見ていた他のスレにレスしてしまいました
0867デフォルトの名無しさん
2011/10/27(木) 21:41:31.20コードを読み返して、書き直してを繰り返して、
自力で書けるようにならないと今後どんどん悲惨な事になるぞ。
0868デフォルトの名無しさん
2011/10/27(木) 21:51:05.25ソースを壊しても困らない状態(オリジナルは別フォルダに保存、とか)にしておいてから、ソースを色々いじって、なにが起こるかを見るのも役に立つと思う。
0869デフォルトの名無しさん
2011/10/27(木) 23:44:31.48printfとscanfしか理解してないぽいからちゃんと一から勉強した方が良い
0870デフォルトの名無しさん
2011/10/27(木) 23:55:02.00正直printfとscanfもあいまいな感じです
分かって無い状態で出すのも気が引けるんで今回の課題は未提出で行こうと思います
一回しっかりと勉強せんとダメですわ
みなさんありがとうございました
0871867
2011/10/28(金) 00:25:22.64俺が書いたわけじゃないけど、>>860のコードが分かりやすい、
点数入力して合計計算
↓
平均計算
↓
偏差二乗和計算
(コメント/* 平均との差の二乗の合計値を出す */ の部分)
↓
分散を求めて表示
ってなってるから、コードから
点数入力して合計計算
以外を削除して、printf()とscanf()でどうやって表示、点数入力してるかを関数仕様書(cppreferenceとか)見ながら確認するといい。
それがわかると次の
平均計算
部分を追加して確認、本当に平均が計算出来ているかは自分で追加してみてもいい。
それがわかると次のーーー
って具合に、全部一片に勉強するより、コードを処理単位の固まりで捉え、少しずつ勉強するのが分かりやすい。
行数的には>>861が少ないけど、こっちのコードはトリッキーだから>>870にはまだ早い。
0873デフォルトの名無しさん
2011/10/28(金) 01:02:58.04>分かって無い状態で出すのも気が引けるんで今回の課題は未提出で行こうと思います
出したほうが、説明をせざるをえない状況に自分を持っていける、という考え方もある。
0874デフォルトの名無しさん
2011/10/28(金) 02:23:05.35やっぱ簡単に聞こうなんて思ったらダメですね
みなさんありがとう!
一応貼っときます
# include <stdio.h>
int main(void){
int a, b, c, d, e;
double f, g;
printf(" a, b, c, d, e=");
scanf("%d%d%d%d%d", &a, &b,&c, &d, &e);
f=(a+b+c+d+e)/5.0;
g=((f-a)*(f-a)+(f-b)*(f-b)+(f-c)*(f-c)+(f-d)*(f-d)+(f-e)*(f-e))/5.0;
printf("平均点%lf\n, 分散%lf\n", f, g);
return 0;
}
0875デフォルトの名無しさん
2011/10/28(金) 05:19:32.66∧∧ そ〜ら、属国犬取って来るアル
/ 支\ ,,,_
( `ハ´)つ `''‐、,
⊂ ノ ∧_∧ ウェー、ハッハッハ `ヽ, ●
人 Y (( 〜(⌒:<*`∀´> ゙:、 r''
レ (_フ (/ーし'ー-J ゙、,,:'゙
∧∧
宗主さまぁ /中\ オー、ヨシヨシ!
∧_(`ハ´ )
(( 〜(⌒:<*`∀´> と )
し し し (__(_フ
0876デフォルトの名無しさん
2011/10/28(金) 08:08:57.97[2]D, C, B, A, S, Invalid という成績を表す列挙体
enum result を定義し,点数(int 型)を引数として
enum result 型の値を返す関数
seiseki_hantei(int sc)
と,enum result 型の値を引数として,成績を表示する関数も作成する
点数と成績は以下の通とする
0〜59 点: D
60〜69 点: C
70〜79 点: B
80〜89 点: A
90〜100 点: S
それ以外: Invalid
る関数
print_seiseki(enum result res)
を作成せよ.この2 つの関数を使用して,以下の実行例
のように点数を入力すると成績を表示するmain 関数も
作成すること.点数と成績の関係は以下の通りとする.
例.
点数(整数)を入力してください:91
成績はS です。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C言語
[4] 期限: 10月27日9:00
0877デフォルトの名無しさん
2011/10/28(金) 08:09:55.86[2]D, C, B, A, S, Invalid という成績を表す列挙体
enum result を定義し,点数(int 型)を引数として
enum result 型の値を返す関数
seiseki_hantei(int sc)
と,enum result 型の値を引数として,成績を表示する関数も作成する
点数と成績は以下の通とする
0〜59 点: D
60〜69 点: C
70〜79 点: B
80〜89 点: A
90〜100 点: S
それ以外: Invalid
る関数
print_seiseki(enum result res)
を作成せよ.この2 つの関数を使用して,以下の実行例
のように点数を入力すると成績を表示するmain 関数も
作成すること.点数と成績の関係は以下の通りとする.
例.
点数(整数)を入力してください:91
成績はS です。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C言語
[4] 期限: 10月28日11:00
0878デフォルトの名無しさん
2011/10/28(金) 14:39:37.620879デフォルトの名無しさん
2011/10/28(金) 14:57:25.26http://ideone.com/fZL1V
0880デフォルトの名無しさん
2011/10/28(金) 15:26:17.96https://gist.github.com/4ef2174c695ab92d704c
0881デフォルトの名無しさん
2011/10/28(金) 15:43:20.172次元配列の問題です
m行n列の配列aの
各行ごとの合計 gyouwa[i] i=0,1,・・・,m
各列ごとの合計 retuwa[j] j=0,1,・・・,n
を計算するプログラムの作成をお願いします
•行列サイズ m,n は実行時に 100以内であれば自由に設定してデータを再入力させる機能をつける
◦配列サイズの上限はプログラム中で配列を宣言するとき「100 個」として下さい。これは,プログラム中で大き目の配列を宣言しておいて,指定されたサイズに応じて必要分を使うための練習です。
【3】c言語
【4】10月30日まで
0882デフォルトの名無しさん
2011/10/28(金) 16:52:05.64http://ideone.com/VimHM#ul_inouterr
0883デフォルトの名無しさん
2011/10/28(金) 22:20:22.34配列の最大値を求めたくて
下のプログラムを作ったのですが,うまく動作しません。
for( maa=1 , qxr = qxxr[0] ; maa < 10; maa++) {
if( qxr < qxxr[maa] ) {
qxr = qxxr[maa];
qxxxr = maa;
}
}
printf("最大のq*rは%dのとき%f\n",qxxxr,qxr);
最大のq*rは0のとき0
と表示されるのですが間違っているところがわかれば教えてください。
配列は下のような感じです.
qxxr[0]=40.800000
qxxr[1]=41.600000
qxxr[2]=0.000000
qxxr[3]=0.000000
qxxr[4]=40.000000
qxxr[5]=0.000000
qxxr[6]=0.000000
qxxr[7]=40.000000
qxxr[8]=0.000000
qxxr[9]=0.000000
0884デフォルトの名無しさん
2011/10/28(金) 22:31:21.70qxxr[0]=40.800000は浮動小数点だけど、
printf("最大のq*rは%dのとき%f\n",qxxxr,qxr);
表示はintになってるから。
0885884
2011/10/28(金) 22:32:37.090886デフォルトの名無しさん
2011/10/28(金) 22:42:30.24多分宣言がおかしい
0887デフォルトの名無しさん
2011/10/28(金) 23:03:33.99これでいいのか?
#include <stdio.h>
int main(void){
double qxxr[]= {
40.800000
,41.600000
,0.000000
,0.000000
,40.000000
,0.000000
,0.000000
,40.000000
,0.000000
,0.000000
};
double qxr;
int maa,qxxxr;
for( maa=1 , qxr = qxxr[0] ; maa < 10; maa++) {
if( qxr < qxxr[maa] ) {
qxr = qxxr[maa];
qxxxr = maa;
}
}
printf("最大のq*rは%dのとき%f¥n",qxxxr,qxr);
return 0;
}
実行結果:最大のq*rは1のとき41.600000
0888デフォルトの名無しさん
2011/10/29(土) 00:07:23.62マルチならせめて、2番目のスレに書き込む時に判るようにしようぜ。
0889デフォルトの名無しさん
2011/10/29(土) 00:49:50.08qxxxr の初期化は?
0890デフォルトの名無しさん
2011/10/29(土) 00:57:57.20↓
for( qxr = qxxr[qxxxr=maa=1] ; maa < 10; maa++) {
0891デフォルトの名無しさん
2011/10/29(土) 02:01:08.25qxxxr を1で初期化しちゃ駄目だろ
0892デフォルトの名無しさん
2011/10/29(土) 02:31:27.880893デフォルトの名無しさん
2011/10/29(土) 18:01:41.27さっぱり分かりません
for文の課題なのでfor文を使って頂けるとありがたいです
0894デフォルトの名無しさん
2011/10/29(土) 18:02:58.53島本町の学校で暴力やいじめを受け続けて、心も身体も
壊されて廃人同様になってしもうた僕が言うんやから、
まちがいないで。
教師も校長も、暴力やいじめがあっても見て見ぬフリ。
そればかりか、イジメに加担する教師もおった。
誰かがイジメを苦にして自殺しても、「本校にイジメは
なかった」と言うて逃げるんやろうなあ。
僕をイジメた生徒や教師の名前をここで書きたいけど、
そんなことしたら殺されて、天王山に埋められるかもしれ
へん。それで誰にも発見されへんかったら、永久に行方不明のままや。
0895デフォルトの名無しさん
2011/10/29(土) 18:22:36.93大きい順に並べかえ、真ん中に来た値。
>>1に書いてあるテンプレを使って依頼して。
0896デフォルトの名無しさん
2011/10/29(土) 18:31:45.090897デフォルトの名無しさん
2011/10/29(土) 18:33:02.91ttp://ja.wikibooks.org/wiki/%E4%B8%AD%E5%AD%A6%E6%A0%A1%E6%95%B0%E5%AD%A6_1%E5%B9%B4%E7%94%9F-%E6%95%B0%E9%87%8F/%E8%B3%87%E6%96%99%E3%81%AE%E6%95%A3%E3%82%89%E3%81%B0%E3%82%8A%E3%81%A8%E4%BB%A3%E8%A1%A8%E5%80%A4
0898デフォルトの名無しさん
2011/10/29(土) 19:22:56.07#include <stdio.h>
#include <stdlib.h>
#define DIMX 5
int compare(const void *a, const void *b) {
return *(int*)a - *(int*)b;
}
int main() {
int d[DIMX], i;
for ( i = 0; i != DIMX; ++i ) {
int n;
printf( "数値を入れなさい:" );
scanf( "%d", &n );
d[i] = n;
}
qsort( d, DIMX, sizeof d[0], compare );
printf( "中央値は%d\n", d[DIMX/2] );
return 0;
}
ところでピストグラムとピスト自転車ってなんか関係があるのかなー。
0899デフォルトの名無しさん
2011/10/29(土) 22:50:24.680900デフォルトの名無しさん
2011/10/29(土) 23:54:50.53例えば3個の要素からなる集合{a,b,c}でa,b,cは0〜24の任意の数をとるとします。
また一方で{0+i,3+i}(i<=24,i++)のものをredと定義します。
そして、{a,b,c}の中で部分集合{a,b}{b,c}{c,a}がすべてredであるような{a,b,c}の数はいくつであるか計算する方法を教えてください。
0901デフォルトの名無しさん
2011/10/29(土) 23:57:52.19>・質問は【質問テンプレ】を利用してください。 >>2以降にあります。
0902デフォルトの名無しさん
2011/10/30(日) 00:57:29.80http://codepad.org/4gg8jlY4
0903デフォルトの名無しさん
2011/10/30(日) 01:31:24.00ありがとうございます!
0904デフォルトの名無しさん
2011/10/30(日) 01:52:28.40>そして、{a,b,c}の中で部分集合{a,b}{b,c}{c,a}がすべてredであるような{a,b,c}の数はいくつであるか計算する方法を教えてください。
0個だと思うんだが、例えば{a,b,c}の例は何だろう?
0905デフォルトの名無しさん
2011/10/30(日) 02:07:30.710906デフォルトの名無しさん
2011/10/30(日) 08:27:09.77疑うことすらできないんだな
0907デフォルトの名無しさん
2011/10/30(日) 09:30:23.44win7でBccでstdio.hでやって欲しいです。それと出来ればfor文で作って頂けると嬉しいです
0908デフォルトの名無しさん
2011/10/30(日) 09:42:27.34algorithmをインクルードして
for(random_shaffle(a[0],a[5]);;);
レス数が900を超えています。1000を超えると表示できなくなるよ。