C/C++の宿題やらせてください。おながいします
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNG今まで1年*ヶ月、ほとんど毎日休まず一生懸命C++を勉強してきた。
ついでに今はJavaと基本情報もやっている。
わからない宿題若しくは処理があったら私にやらせてくださいm(_ _)m
4代目(前スレ): http://pc2.2ch.net/test/read.cgi/tech/1045074808/l50
3代目: http://pc2.2ch.net/test/read.cgi/tech/1041992392/l50
2代目: http://pc3.2ch.net/test/read.cgi/tech/1039772622/l50
宿題手伝いますYO!!: http://pc3.2ch.net/test/read.cgi/tech/1038024989/l50
0002デフォルトの名無しさん
NGNG0003デフォルトの名無しさん
NGNG前スレの話だが汎用の値交換に興味のある向きは
BSD や GNU の libc/stdlib/qsort.c を見るといいやも
0004C初心者
NGNGn行m列の表を作ろうと思ったのですがうまくいきません。
超初心者的な質問で申し訳ないですが、どなたかご教授下さい。
#include "sfcgl.h"
void display()
{
BGColor(0, 0, 0);
int i,j;
double n,m,x,y;
for(i = 0; i < n; i++){
x = 10.0 + 10*i;
DrawLine(x, 0.0, 0.0, x, n*100 , 0.0);
}
for(j = 0; j < m; j++){
y = 10.0 + 10*j;
DrawLine(0.0, y, 0.0, m*100, y, 0.0);
}
SGSwapFrames();
}
int main(int argc, char** argv) {
int n,m;
scanf("%d%d",&n,&m);
SGInit(argc, argv);
SGOpenWindow(50, 50, 500, 500);
SG2DMode();
SGSetDisplay(display);
SGCallBack();
return 0;
}
mainで読み込んだn,mをvoid displayに関連させる方法が分りません。
0005デフォルトの名無しさん
NGNGvoid display(double n,m) /* ←引数にする */
{
BGColor(0, 0, 0);
int i,j;
double x,y; /*←ローカル変数のm,nは削除*/
for(i = 0; i < n; i++){
x = 10.0 + 10*i;
DrawLine(x, 0.0, 0.0, x, n*100 , 0.0);
}
0006デフォルトの名無しさん
NGNGglibcはdo{}while(0)マクロを使っていたと思う。
0007C初心者
NGNGでもそれをやると
parse error before m と
m undeclared, n undeclared
とエラーが出ます。引数にするのは正しいと思うのですが、
なぜかできない・・・。
スマソ
0008bloom
NGNG0009デフォルトの名無しさん
NGNGvoid display(double n,double m)
0010デフォルトの名無しさん
NGNG質問の問いのを作ってるのですが、カーソルにあたった時の処理ってどうでしたっけ?
・ボールの角度が垂直×真ん中にあたった=垂直のボールが飛ぶ
・ボールの角度が垂直×端にあたった=端にあたるほど角度の無いボールが飛ぶ
・ボールの角度が垂直でない×真ん中にあたった=その角度を反転させたボールが飛ぶ
・ボールの角度が垂直でない×端にあたった=?
?の部分を教えてください。元のボールの角度に関係なくあたった位置により角度を作るか、
元のボールの位置とあたった位置を平均して角度を作るのどちらかっぽいのですが。
0011C初心者
NGNGしかしできず。萎え・・・。
passing arg 1 of SGSetDisplay from imcompatible pointer type
と出ます。
何度も何度もスマソですがこのエラーの対処方わかります?。
0012デフォルトの名無しさん
NGNGお前はそのエラーメッセージが読めんのか?
0013デフォルトの名無しさん
NGNG0014デフォルトの名無しさん
NGNGヒント。
自分自身の書いた関数名を渡そうとしていないか?
そのSGなんたらには何を渡すべきか判っているのか?
0015C初心者
NGNG問題は上の()の中に入れる関数だと思うのですが、
(display(n,m))と入力しても voidエラーが出て実行できません。
英語が駄目駄目なんでエラー文の意味もまともに解釈できず困ってます。
神の方どうかご教授下さい。
0016デフォルトの名無しさん
NGNGとりあえず関数ポインタについて勉強してからにした方がいいよ
0017デフォルトの名無しさん
NGNG博識者を神とおだてるより自分で調べろよ。
英語がわからないならオンライン辞書でも使えばいいしさ。
エラーをヘルプで検索するってのもできるだろ?
0018C初心者
NGNG勉強いたしたいと思います。ですがとりあえずこのプログラムが
上手くいく方法をご教授願えないでしょうか?よろしくお願いします。
0019デフォルトの名無しさん
NGNG英語も勉強しろ。
sageも覚えろ。
さて、「とりあえず」のコードをやろう。
#include "sfcgl.h"
int n,m;
void display()
{
BGColor(0, 0, 0);
int i,j;
double x,y;
〜〜〜〜〜〜〜〜〜〜〜〜
〜〜〜〜〜〜〜〜〜〜〜〜
}
int main(int argc, char** argv) {
scanf("%d%d",&n,&m);
SGInit(argc, argv);
SGOpenWindow(50, 50, 500, 500);
SG2DMode();
SGSetDisplay(display);
SGCallBack();
return 0;
}
このライブラリは描画関数に引数を渡せんのか・・・。不便だな。
0020デフォルトの名無しさん
NGNG> sageも覚えろ。
これは余計
0021デフォルトの名無しさん
NGNG0022デフォルトの名無しさん
NGNGヒントなんかくれなくていいから答えだせ、と
0023C初心者
NGNGありがとうございます。おかげさまで実行できますた。
0024デフォルトの名無しさん
NGNG0025デフォルトの名無しさん
NGNG質問スレ乱立防止策には成り得ませんか?ダメ?
0026デフォルトの名無しさん
NGNGなんでnとmへの入力をmain関数で受けるの?
0027デフォルトの名無しさん
NGNGchar *p = 'A';
char *p = "A";
次に上記のようにポインタ変数に初期値を与えるのでなく、
代入によって与えるような次のプログラムを書いた。
このプログラムに誤りがあるとすれば指摘しなさい。
#include<stdio.h>
int main(void)
{
char *p;
*p = 'A';
printf("*p = %c",*p);
return 0;
}
よろしくお願いします。
0028デフォルトの名無しさん
NGNG0029デフォルトの名無しさん
NGNG怪しい問題だな。写し間違いか?
0030デフォルトの名無しさん
NGNG>char *p = "A";
上、ろくな事にならんぞ。
0031デフォルトの名無しさん
NGNG>char *p;
>*p = 'A';
>printf("*p = %c",*p);
pは有効な変数を指してないのでまともに動かね
0032デフォルトの名無しさん
NGNGmain(){
int i;
float f;
f=1234.0098;
i=f;
printf("%f %d",f,i);}
1234.0098 1234 と表示されるはずが
1234.009766 1234 と表示されます。
どうしてですか?教えてください。
ちなみに環境はwinXP,bcc5.5です
0033デフォルトの名無しさん
NGNG重箱の隅だが「pは有効な変数を指してない」はいかがなものか
0034デフォルトの名無しさん
NGNG> char *p = 'A';
> char *p = "A";
Cではcharはintと等価だから、上のは代入の時点で普通Warning吐かれるよ。
まあ、そういうことを言いたいんじゃないと思うけど。
とりあえず'A'は値を代入、"A"はアドレスを代入することになるから。
char *p = 'A'は多分、コンパイル通ってもAccess Viorationで落ちるね。
このプログラム、なんか少し前のVCLの某文字列クラスのバグを皮肉ってるようでなんかムカつく。
>>32
C、というかprintfはfloat型を出力できません。
すべてdouble型に暗黙の型変換されます。
0035デフォルトの名無しさん
NGNG2進数 →10進数
00000000 → 0
10000000 → -128 でいいの?
10000001 → -1
01111111 → 128 ?
助けて
0036デフォルトの名無しさん
NGNG× int型って-127〜128だったっけ?
○ 00000000 → 0
○ 10000000 → -128
× 10000001 → -1
× 01111111 → 128
× 助けて
003735
NGNG00000000 → 0
10000000 → -128
11111111 → -1
01111110 → 127
助けて
0038デフォルトの名無しさん
NGNG× char型って-128〜127だっけ?
○ 00000000 → 0
○ 10000000 → -128
○ 11111111 → -1
× 01111110 → 127
× 助けて
003935
NGNG00000000 → 0
10000000 → -128
11111111 → -1
01111111 → 127
10000001 → -127
10000010 → -126
分かった!
0040デフォルトの名無しさん
NGNGそうなんですか?でも、誤差はでませんよね??
0041デフォルトの名無しさん
NGNG× char型って-128〜127だろ!
○ 00000000 → 0
○ 10000000 → -128
○ 11111111 → -1
○ 01111111 → 127
○ 10000001 → -127
○ 10000010 → -126
× 分かった!
0042デフォルトの名無しさん
NGNG004335
NGNG中略
分かりません。
0044デフォルトの名無しさん
NGNG型の取り得る値の範囲は処理系依存。(CHAR_MIN〜CHAR_MAX)
char型が符号付か符合無しかも処理系依存。
0045デフォルトの名無しさん
NGNG丸め誤差とかのことでしょ?
0.0098に対して0.009766は誤差がありすきでしょう。
0046デフォルトの名無しさん
NGNGprintf("%f",FLT_EPSILON);
0047デフォルトの名無しさん
NGNGsigned charなら確実にその範囲は表せる。
004847
NGNG004935
NGNGchar型は1バイトでしょう?8ビット。
256個の整数を表せるのでは?
-128〜127は256個
-127〜127では255個です。
unsigned charでは0〜255なので256個
リナックスとウィンドウズは想像以上に違うの?
つうかリナックスの何処に<stdio.h>ってあるのですか?
#include <stdio.h>
って書いて意味あるの?
0050デフォルトの名無しさん
NGNG補数って知ってますか?
0051デフォルトの名無しさん
NGNG最低8ビットだけど、8ビットとは限らない。
limits.hの中のCHAR_BITがビット数
で、8ビットかつ1の補数表現なら最低は-127
1の補数表現だと全ビット0と全ビット1がどちらも値として0になる。
> つうかリナックスの何処に<stdio.h>ってあるのですか?
多分/usr/include
stddef.hとかは別の場所にあるかも。
005235
NGNGありがとうございました。
0053デフォルトの名無しさん
NGNGIEEE754ならfloatの32bitの内訳は符号sが1bit, 指数eが8bit, 仮数mが23bitなので
有効数字は2進で24桁、約7桁だから期待通りの結果だと思うが?
ttp://www.bohyoh.com/CandCPP/FAQ/FAQ00046.html
読めば全て解決。
昔、漏れも C の先生に
sizeof int 以外は処理系に依らず決まってる
と嘘つかれますた。
0055デフォルトの名無しさん
NGNGttp://www-ccs.ucsd.edu/c/types.html#Basic%20Integer%20Types
ttp://www-ccs.ucsd.edu/c/limits.html
ttp://www-ccs.ucsd.edu/c/
0056デフォルトの名無しさん
NGNG{
for (i = 0; i < 2; i++) {
int temp = vc[i];
vc[i] = vc[4 -i];
vc[4 -i] = temp;
}
return(vc[i]);
}
どこをどう治したらいいかわからん
あと
c:7: warning: declaration of `i' shadows a parameter
これはなに?
0057デフォルトの名無しさん
NGNGなぜint vcを配列として扱う?
0058デフォルトの名無しさん
NGNGその程度の英語くらい何とかしろよ。
そのソースには書いてないようだが、
パラメータでiを宣言しているのに関数内でも宣言してないか?
0059デフォルトの名無しさん
NGNGただのループカウンタを引数にすんなよ。
0060デフォルトの名無しさん
NGNG何をしたいプログラムなの?
0061デフォルトの名無しさん
NGNG% echo 'void f(int i){
int i;};' | gcc -c -xc -
: In function `f':
:2: warning: declaration of `i' shadows a parameter
0062デフォルトの名無しさん
NGNG{
int i;
for (i = 0; i < 2; i++) {
int temp = vc[i];
vc[i] = vc[4 -i];
vc[4 -i] = temp;
}
return(vc[n]);
}
0063デフォルトの名無しさん
NGNG中途半端なスワップ関数だなぁ・・・。
0064デフォルトの名無しさん
NGNG006556「
NGNG使わないやり方教えてください
0066デフォルトの名無しさん
NGNGおいおい、それ以前にやることがあるだろ。
・自分がどんな関数を書きたかったのか
・書かれたことは理解できたか
・ついでにお礼も
ここは質問スレじゃないんだからネタ提供せずに質問だけするなよ。
#あ、ネタにはなってるのか。
0067デフォルトの名無しさん
NGNGvoid one(int i, int *vc)
{
for (; --i > 0; vc++) {
int temp = *vc;
*vc = vc[i];
vc[i] = temp;
}
}
0068デフォルトの名無しさん
NGNGvc[n]はintだから型もあっているし。
0069デフォルトの名無しさん
NGNG007056「
NGNG#include <stdio.h>
#define NUMBER 5
void one(int i, int *vc)
{ for (; --i > 0; vc++) {
int temp = *vc;
*vc = vc[i];
vc[i] = temp;
} }
int main(void)
{
int i;
int vc[5];
puts("5個の整数を入力してください。");
for ( i = 0;i < 5; i++){
printf("%2d番目:", i + 1); scanf("%d", &vc[i]);
}
puts("逆に並べると");
for (i = 0;i < 5; i ++)
printf("vc[%d]=%d\n", one(i, *vc ));
return(0);
}
: In function `main':
:26: warning: passing arg 2 of `one' makes pointer from integer without a cast
:26: invalid use of void expression
さっぱりでつ お願いします
0071デフォルトの名無しさん
NGNG> printf("vc[%d]=%d\n", one(i, *vc ));
なぜ*vcと間接参照する。参照しないでポインタを渡すの。
007271
NGNG007356「
NGNG0074デフォルトの名無しさん
NGNG#include <stdio.h>
#define NUMBER 5
void one(int i, int *vc)
{ for (; --i > 0; vc++) {
int temp = *vc;
*vc = vc[i];
vc[i] = temp;
} }
int main(void)
{
int i;
int vc[5];
puts("5個の整数を入力してください。");
for ( i = 0;i < 5; i++){
printf("%2d番目:", i + 1); scanf("%d", &vc[i]);
}
puts("逆に並べると");
one(i, vc );
for (i = 0;i < 5; i ++)
printf("vc[%d]=%d\n", i,vc[i]);
return(0);
}
0075デフォルトの名無しさん
NGNG漏れは礼はいらんと思う。理解できたかどうかだけが意味がある。
0077デフォルトの名無しさん
NGNG紛らわしかったかもしれんが75≠56
0079デフォルトの名無しさん
NGNGもう一つ引かないといけないんじゃない?
void one(int i, int *vc)
{
for (; --i > 0; vc++, i--) {
int temp = *vc;
*vc = vc[i];
vc[i] = temp;
}
}
0080デフォルトの名無しさん
NGNGfor (; --i > 0;)
*vc++ ^= vc[i--] ^= *vc ^= vc[i];
}
0081__
NGNG( ・∀・)/< こんなのみつけたっち♪
http://www.yamazaki.90.kg/moe/hankaku07html
http://yamazaki.90.kg/mona/index.html
http://www.yamazaki.90.kg/moe/hankaku08.html
http://yamazaki.90.kg/moe/hankaku10.html
http://www.yamazaki.90.kg/moe/hankaku07.html
http://yamazaki.90.kg/moe/hankaku03.html
http://www.yamazaki.90.kg/moe/hankaku05.html
http://yamazaki.90.kg/moe/hankaku01.html
http://www.yamazaki.90.kg/moe/hankaku06.html
http://yamazaki.90.kg/moe/hankaku04.html
http://www.yamazaki.90.kg/moe/hankaku09.html
0082デフォルトの名無しさん
NGNG1.1926以上2002以下の数(西暦)をキーボードから入力すると、「昭和45年です」とか
「平成6年です」とか和暦に直すプログラム。1926年の場合は「昭和元年です」
1989年の場合は「平成元年です」と表示するように。
で、1925以下や2002以上が入力されると「入力は1926-2001の間にして下さい」と表示。
2.Aさん、Bさんが階段じゃんけんゲームをシュミレーションするプログラム。
ルールは・・・
○プレイヤー2人は、最初階段の0段目にいてじゃんけんする。
○じゃんけんの勝者はグーで勝てば1段、チョキで勝てば2段、パーで勝てば5段
階段を登ることが出来る。あいこは0段。
○10回のじゃんけんの結果、より高い段に居た方が勝ち。
3.「2のn乗 −2」がnで割り切れるなら素数であるという定理を使って、2〜20までの
素数を全て求めよ。
0083デフォルトの名無しさん
NGNGおまえら、無駄が多い。
0084デフォルトの名無しさん
NGNGお前は無駄レスだけ。
0085デフォルトの名無しさん
NGNG> 3.「2のn乗 −2」がnで割り切れるなら素数であるという定理を使って、2〜20までの
この定理、なんか変じゃないか???
0088デフォルトの名無しさん
NGNG2^3-2=6
2^4-2=14 ×
2^5-2=30
...
0089デフォルトの名無しさん
NGNG0090デフォルトの名無しさん
NGNGn=341の時はその定理は成り立たない。nが20以下には全部適用できるね。
009187
NGNGなるほど「問題文の日本語が変」なだけだw
3.「2のn乗 −2」がnで割り切れるなら "nが" 素数であるという定理を使って、2〜20までの
素数を全て求めよ。
ってことね。
0092デフォルトの名無しさん
NGNG0093デフォルトの名無しさん
NGNG配列を上位桁から表示するようにして欲しいです。
関数は
int card_conv(unsigned x, int n, char d[])
{
int i;
char dchar[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
int digits = 0;
if (x == 0)
d[digits++] = dchar[0];
else
while (x) {
d[digits++] = dchar[x % n];
x /= n;
}
for (i = 0; i < n / 2; i++)
swap(int, d[i], d[n - i - 1]);
return (digits);
}
0094デフォルトの名無しさん
NGNGint main(void)
{
int i;
unsigned no;/* 変換する整数 */
int cd;/* 基数 */
int dno;/* 変換後の桁数 */
char cno[100];/* 変換後の各桁を格納する文字の配列 */
int retry;/* もう一度? */
do {
printf("正の整数値を入力してください:");
scanf("%u", &no);
do {
printf("何進数に変換しますか(2-36):");
scanf("%d", &cd);
} while (cd < 2 || cd > 36);
dno = card_conv(no, cd, cno);/* noをcd進数に変換 */
printf("%d進数では", cd);
for (i = dno - 1; i >= 0; i--)/* 上位桁から順に表示 */
printf("%c", cno[i]);
printf("です。\n");
printf("もう一度しますか(1…はい/0…いいえ):");
scanf("%d", &retry);
} while (retry == 1);
return (0);
}
0095デフォルトの名無しさん
NGNGswap(int, d[i], d[n - i - 1]);
for (i = 0; i < digits / 2; i++)
swap(int, d[i], d[digits - i - 1]);
0096デフォルトの名無しさん
NGNGこの書式指定では駄目なのでしょうか?
#include <stdio.h>
#include <string.h>
struct tell{
char name[20];
char tele[20];
};
main(){
char *a,*b;
struct tell c[255];
int i,j=0;
while(1) {
printf("全角5字以内で、氏名を入力せよ。 終了:e\n");
scanf("%s",&a);
if (a == "e") break;
strcpy(c[j].name, a);
printf("半角20字以内、ハイフン編集して、電話番号を入力せよ。 終了:e\n");
scanf("%s",&b);
if (b == "e") break;
strcpy(c[j].tele, b);
j++;
}
printf("氏名 電話番号\n");
for (i=0;i>j;i++) {
printf("c[i].name c[i].tele\n");
}
}
009796
NGNG0098デフォルトの名無しさん
NGNGchar a[1000]
0099デフォルトの名無しさん
NGNGscanf("%s",a);
0100デフォルトの名無しさん
NGNGexploitコードの見本ですか?
0101デフォルトの名無しさん
NGNG> char cno[100];/* 変換後の各桁を格納する文字の配列 */
変換対象が unsigned no なら 100 もとることはなかろう。
■ このスレッドは過去ログ倉庫に格納されています