ぼるじょあがC/C++の宿題を片づけますYO! 24代目
レス数が1000を超えています。これ以上書き込みはできません。
0001ぼるじょあ ◆yBEncckFOU
NGNGわからない宿題を片づけますYO!
【注意点】 -------------------------------------------------
・問題はしっかりと解いてもらう方にわかりやすいように
問題文などの省きはやめ、エラーなどは適切に書きましょう
全文を書いてしまうか、分かりやすくまとめましょう。
・後になって問題につけたしをするのはやめましょう。
解いてもらっている方に失礼になってしまいます。
------------------------------------------------------------
【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
http://do.sakura.ne.jp/%7Ejunkroom/cgi-bin/megabbs/lounge/index.html
【歴代スレは>>2-10】
0002デフォルトの名無しさん
NGNG22代目: http://pc5.2ch.net/test/read.cgi/tech/1083050221/
21代目: http://pc5.2ch.net/test/read.cgi/tech/1078157730/
20代目: http://pc5.2ch.net/test/read.cgi/tech/1075217631/
19代目: http://pc5.2ch.net/test/read.cgi/tech/1073566342/
18代目: http://pc5.2ch.net/test/read.cgi/tech/1071407728/
17代目: http://pc5.2ch.net/tech/kako/1070/10704/1070469896.html
16代目: http://pc5.2ch.net/tech/kako/1069/10698/1069837000.html
15代目: http://pc5.2ch.net/tech/kako/1068/10689/1068950713.html
14代目: http://pc5.2ch.net/tech/kako/1067/10671/1067175933.html
13代目: http://pc5.2ch.net/tech/kako/1064/10645/1064541405.html
12代目: http://pc5.2ch.net/tech/kako/1060/10607/1060706382.html
11代目: http://pc5.2ch.net/tech/kako/1058/10582/1058283913.html
10代目: http://pc5.2ch.net/tech/kako/1057/10570/1057070174.html
9代目: http://pc5.2ch.net/tech/kako/1055/10559/1055944101.html
8代目: http://pc5.2ch.net/tech/kako/1055/10550/1055056940.html
7代目: http://pc5.2ch.net/tech/kako/1053/10539/1053963794.html
6代目: http://pc5.2ch.net/tech/kako/1053/10530/1053045530.html
5代目: http://pc5.2ch.net/tech/kako/1051/10515/1051594046.html
4代目: http://pc5.2ch.net/tech/kako/1045/10450/1045074808.html
3代目: http://pc5.2ch.net/tech/kako/1041/10419/1041992392.html
2代目: http://pc3.2ch.net/tech/kako/1039/10397/1039772622.html
宿題手伝いますYO!!: http://pc3.2ch.net/tech/kako/1038/10380/1038024989.html
0003デフォルトの名無しさん
NGNG0004デフォルトの名無しさん
NGNG>>1 乙!
0005デフォルトの名無しさん
NGNG⊂ つヽ (;⌒`;⌒`)
ノ ノ ノ \ \ (`⌒ )
(_ノ、_ノ ` \\ ( ⌒)
彡 \ ヽヽ ( )
ヽ `\从从从从人火
゚,.(´;(´⌒(;・"⌒`);`):';⌒`)`)。
゚,.(´;(´⌒(;・"⌒`);`):';⌒`)`´;(´>>1(;・"⌒`);`):';⌒`)`)..
从从从从゚,.(´;(´⌒(;・"⌒`);`):';⌒`゚,.(´;(´⌒(;・"⌒`);`):';⌒`)`)。.
゚,.(´;(´⌒(;・"⌒`);`):';⌒`)`)。.゚,.(´;(´⌒(;・"⌒`);`';⌒`)`)。.゚,.(´;(´⌒(;⌒`);`):';⌒`)`)。.
l || ___ ||
l\ l
l |
l ___l
0006デフォルトの名無しさん
NGNG0007デフォルトの名無しさん
NGNGCan I fly ?
0008デフォルトの名無しさん
NGNG{50.0, 75.0, 62.0, 65.5, 80.0, 95.0, 90.5, 87.0, 80.0, 99.5}
この10個のデータを配列に入れ、main関数の中で平均と分散を求めるプログラムを、
ポインタを用いて画面に出力せよ。平均、分散の式は以下のこと。
_ 1 n 1 n _ 2
x=− x σ=− (x−x)
n i=1 i n i=1 i
です。平均分散の式わかりにくいかと思いますがわかる方回答よろしくお願いします・・
00098
NGNG0010デフォルトの名無しさん
NGNG0011デフォルトの名無しさん
NGNG#include <stdio.h>
int main()
{
static double data[10] = {50.0, 75.0, 62.0, 65.5, 80.0, 95.0, 90.5, 87.0, 80.0, 99.5};
double sum, avg, var;
double* p;
sum = 0.0;
for( p = data ; p != data+10 ; ++ p ) { sum += *p; }
avg = sum / 10;
var = 0.0;
for( p = data ; p != data+10 ; ++ p ) { var += (*p - avg) * (*p - avg); }
var /= 10;
printf( "平均=%f\n分散=%f\n", avg, var );
return 0;
}
問題文には「プログラムを画面に出力せよ」と書いてあるようだけど、
その辺はフィーリングで解釈してみました(笑)
0012デフォルトの名無しさん
NGNGなぜにstatic?
0013デフォルトの名無しさん
NGNG0014デフォルトの名無しさん
NGNGに読み込み以下の二つの条件を同時に満足するもののデータ(出席番号・年齢・身長・体重)と人数を画面に表示するプログラム
を作成せよ。
条件
1 身長が全員の平均値よりも高い。
2 体重が全員の平均値以下である。
と言う問題なんですが厨房のオレにはさっぱりで
数値などは自由で良いみたいなので模範解答みたいのをお願いします。
よろしくお願いします。
001514
NGNG0016デフォルトの名無しさん
NGNG0017デフォルトの名無しさん
NGNG0018デフォルトの名無しさん
NGNG#define SUTADIO <stdio.h>
#include SUTADIO
#define mein main
#define mosi if
#define boid void
#define faibu 5
#define wan 1
#define tuu 2
boid mein(){
float caunto;
float age[faibu];
float date[faibu][tuu];
int tincyo_heikin;
int taijuuu_heikin;
for(caunto=0; caunto<faibu; caunto=caunto=caunto+=wan){
printf("年齢 身長 体重? ");
scanf("%f %f %f",&age[(int)(char)(int)caunto],&date[(int)(char)(int)caunto][0],&date[(int)(char)(int)caunto][1]);
}
tincyo_heikin=taijuuu_heikin=tincyo_heikin=taijuuu_heikin=0;
for(caunto=0; caunto<faibu; caunto=caunto=caunto+=wan){
taijuuu_heikin+=date[(int)(char)(int)caunto][1];
tincyo_heikin+=date[(int)(char)(int)caunto][0];
}
taijuuu_heikin=tincyo_heikin=taijuuu_heikin/faibu;
tincyo_heikin=tincyo_heikin=tincyo_heikin/faibu;
for(caunto=0; caunto<faibu; caunto=caunto=caunto+=wan){
mosi(tincyo_heikin<date[(int)(char)(int)caunto][0] && taijuuu_heikin>date[(int)(char)(int)caunto][1]){
printf("年齢%f 身長%f 体重%f\n",*&age[(int)(char)(int)caunto],*&date[(int)(char)(int)caunto][0],*&date[(int)(char)(int)caunto][1]);
}}}
0019デフォルトの名無しさん
NGNG0020デフォルトの名無しさん
NGNG0021デフォルトの名無しさん
NGNG初期値を変えて学習を行ったときの学習回数と正答率の関係を求めよ。
但し、初期値は非常に小さな値、大きな値に変化させ、学習回数は
各初期値に対して100回とする。
学習パターンは乱数を使って生成する。
次のパターンを認識するパーセプトロンを構成せよ。
http://page.freett.com/sabotenga/c.GIF
重みの更新式:Wi(t+1)=Wi(t)+c*(Te(t)-y(t))*xi(t)
開始
|
ループ1
学習回数だけ繰り返す
|
入力と教師出力を与える
|
出力を計算
|
重みを更新
|
ループ1
|
終了
どうかよろしくお願いします。
0022デフォルトの名無しさん
NGNGこういうのがわからんから,図より式で示して欲しい。
0023デフォルトの名無しさん
NGNG実数「255.0」を浮動小数点,指数形式で各1行ずつ,合計5行に出力するプログラムを作りなさい。
なんですが、
#include<stdio.h>
void main(void)
{
printf("%o\n", 255);
printf("%d\n", 255);
printf("%x\n", 255);
printf("%f\n", 255.0);
printf("%e\n", 255.0);
}
でよろしいでしょうか?
002623
NGNG0027デフォルトの名無しさん
NGNG0028デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=101
cの値次第で収束速度と精度にエライ差が付くわけだが,どうすんだ?
初期値は W0(0)==W1(0)==W2(0)
>>24のパターン式もフィーリングで修正。
0029デフォルトの名無しさん
NGNG003121
NGNGこっちには人がいないと思い前スレにも書いてしまいました…
>>28
error C2374: 'i' : 再定義されています。2 回以上初期化されています。
: 'i' の宣言を確認してください。
error C2065: 'lround' : 定義されていない識別子です。
cl.exe の実行エラー
と出るのですが、どうすればよいでしょうか?
0032デフォルトの名無しさん
NGNGこれなら通るだろうよ
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=102
初心者なのに古いVC使ってんなぁ。
0034デフォルトの名無しさん
NGNG"test.txt"に書き込むプログラムを作成せよ
問2 ファイル"test.txt"から文字列を読み込み並びを逆にしてファイル"sample.tet"
に出力するプログラムを作成せよ。(test.texは問1のを使用すること)
この2つ御願いいたします
0035デフォルトの名無しさん
NGNGareaを作成しなさい。なおmain関数ではこの関数が正しく働いていることを
示すようなプログラムを書きなさい。
という問題なのですが、ど素人の自分にはどうしても分からなくて・・・
どうかよろしくお願いします。
0036デフォルトの名無しさん
NGNG0.gif
0.gif
0.gif
0.gif
0.gif
1.gif
と表示して終了します。
次に起動すると
0.gif
0.gif
0.gif
0.gif
0.gif
2.gif
と表示して終了します。
0037デフォルトの名無しさん
NGNG0.gif
0.gif
0.gif
0.gif
0.gif
3.gif
と表示して終了します。
* 10回めに起動すると
0.gif
0.gif
0.gif
0.gif
1.gif
0.gif
と表示して終了するプログラムの作り方を教えろ禿
0038デフォルトの名無しさん
NGNG0039デフォルトの名無しさん
NGNGmain(){
FILE *f; int count;
f = fopen("data","r");
if( fscanf(f,"%d", &count) == EOF ) count=0;
fclose(f);
f = fopen("data", "w");
fprintf(f, "%d", ++count);
fclose(f);
print_count(count, 7);
}
print_count(int c, int i){
if( i == 0 ) return;
print_count(c/10, --i);
printf("%d.gif\n", c%10);
}
0040デフォルトの名無しさん
NGNG0041デフォルトの名無しさん
NGNG0042デフォルトの名無しさん
NGNG0043デフォルトの名無しさん
NGNG#include <stdio.h>
int main( void )
{
FILE *iFp;
char iStr[32] = {'\0'};
int iCount = 0;
int i;
iFp = fopen( "count.txt", "r" );
if( iFp )
{
fscanf( iFp, "%d", &iCount );
fclose( iFp );
}
iCount++;
sprintf( iStr, "%06d", iCount );
for( i=0; iStr[i]; i++ )
{
printf( "%c.gif\n", iStr[i] );
}
iFp = fopen( "count.txt", "w" );
if( iFp )
{
fprintf( iFp, "%d", iCount );
fclose( iFp );
}
return 0;
}
0044デフォルトの名無しさん
NGNGこのプログラムを書き換えてUNIXコマンド"ls"の機能を提供するプログラムを創れ。
お願いします。
0045デフォルトの名無しさん
NGNG・1次元で7文字7行入力。
↓
・表示を押すと、入力した7*7が表示ボックスに表示される。
↓(ここまではできました)
・縦・横の倍率を指定して拡大ボタンを押す
↓
・表示ボックスから文字列を全部取ってきて、拡大処理。
↓
・拡大処理結果をまた表示ボックスへ。
っていう処理なんですけど…
初心者なんでぜんぜんわからないんです;;
例>>
12345
123
12
って表示してあった場合、縦・横を2倍と入力すると、
1122334455
1122334455
112233
112233
1122
1122
ってな感じになるんですけど。。。。。。
メモリの確保も使わなくちゃいけなくて…
わからなくて困ってます。。。。
0046デフォルトの名無しさん
NGNG藻前の言う「拡大」が、
どういう事なのか理解に苦しむ。
0047デフォルトの名無しさん
NGNG123456って打ってあって、
縦1倍横2倍に設定したら、
112233445566ってなる。
0048デフォルトの名無しさん
NGNG先頭からn番目よりm個の特定文字列を取り出すプログラム
任意の文字列を入れ替えるプログラム
この三つが宿題で出されてるんですが、さっぱりの状態です。
どうかどなたか教えてくれないでしょうか
004934
NGNG0050デフォルトの名無しさん
NGNG縦2倍だとどうなる?
>>48
わけわからん。全文こぴぺ汁
0051p53
NGNG0052デフォルトの名無しさん
NGNG使う前。関数の外。
005348
NGNG一応これが全文でして…
0054デフォルトの名無しさん
NGNGint search(const char *str1, const char *str2){
int n = 0, ret;
const char *cp;
cp = str2;
while(*str1){
n++;
if( *str1 == *str2 ){
ret = n;
while(*str1 == *str2){
str1++; str2++; n++;
}
if(*str2 == '\0') return ret;
str2 = cp;
}
str1++;
}
return 0;
}
005548
NGNGおお!どうもありがとうございます!
0056デフォルトの名無しさん
NGNG#include <stdio.h>
struct triangle
{
double x1, y1;
double x2, y2;
double x3, y3;
};
double area( const triangle& t )
{
double vx1 = t.x1 - t.x3;
double vy1 = t.y1 - t.y3;
double vx2 = t.x2 - t.x3;
double vy2 = t.y2 - t.y3;
return (vx1 * vy2 - vy1 * vx2) / 2;
}
int main()
{
triangle t;
t.x1 = 0; t.y1 = 0;
t.x2 = 1; t.y2 = 0;
t.x3 = 0; t.y3 = 1;
printf( "%f", area(t) );
return 0;
}
0057デフォルトの名無しさん
NGNGどの部分を作って欲しいのかわからん。
1次元で7文字7行とは、どういうデータ構造を言っているのかわからん。
表示ボックスとは何なのかわからん。
表示ボックスなるものから文字列を取り出さなければならないのなら、
そのアクセス方法もわからん。
倍率の値もやはり、どこかから取り出さなければならないのか、
それともint型等のデータで与えられているのか、わからん。
扱う文字列は全角なのか半角なのか、それともどちらでもいいのかわからん。
005856
NGNGreturn fabs(vx1 * vy2 - vy1 * vx2) / 2;
#include <math.h>
も追加
0059p53
NGNG0060デフォルトの名無しさん
NGNG>>57がいうようにようわからんから参考程度
#include <iostream>
#include <string>
using namespace std ;
int main()
{
const char org_str[] = "12345" ;//\n123\n12\n" ;
const char* end_p = &org_str[sizeof( org_str )] ;
int v = 2 ;//倍率縦
int h = 2 ;//倍率横
string new_str ;
string buf ;
for( const char* p = org_str ; p <= end_p ; ++p ){
switch( *p ){
case '\r': case '\n': case '\0':
buf += '\n' ;
for( int j = 0 ; j < v ; j++ ) new_str += buf ;
buf.clear() ;
break ;
default:
for( int j = 0 ; j < h ; j++ ) buf += *p;
}
}
cout << new_str ;
return 0;
}
0061デフォルトの名無しさん
NGNG{
int i;
for (i = 0; b[i] != '\0'; i++)
a[i] = b[i];
}
void strncpy(char *t, char *s, int n)
{
while (n > 0 && *s != '\0') {
*t = *s;
t++;
s++;
n--;
}
}
↑の2つコードの間違いを指摘し修正しろというのなんですがどこが間違ってるのでしょうか?
0062デフォルトの名無しさん
NGNGナル文字がコピーされない。
0063デフォルトの名無しさん
NGNG0064?
NGNG{
int i;
for (i = 0; b[i] != '\0'; i++)
a[i] = b[i];
a[i] = '\0';
}
0065デフォルトの名無しさん
NGNGそれってナル文字で埋めてるだけじゃん。
0066?
NGNG{
int i;
for (i = 0; b[i] != '\0'; i++)
{
a[i] = b[i];
a[i] = '\0';
}
}
0067デフォルトの名無しさん
NGNGはぁ?
0068デフォルトの名無しさん
NGNG/ ノ ヽ ( ノ⊂ ̄))) ̄⊃
/|ヽ (_ノ ._ ̄ 0'ヽ 0'
/ |ノ .) (_) ヽ i ( むしゃむしゃしていた。
∋ノ | /――、__ ./(∩∩) 草なら何でもよかった。
/ /| ヽ__ノ | / ./ 今は反芻している。
| ( | ( ’’’ | ( /
|__ヽ.L_ヽ Lヽ_ヽ
''" ""''"" "'''''" ""''"" ''" ""''"" ''" ""''"" ''" ""''"" "'''.
0069デフォルトの名無しさん
NGNG下の方のはコレでいいのかな・・・・・・
void strncpy(char *t, char *s, int n)
{
while (n > 0 && *s != '\0') {
*t = *s;
t++;
s++;
n--;
}
while (n--) *t++ = '\0'; /* sの長さがnより短ければヌル・・・で埋める */
}
ヌルポ
0070デフォルトの名無しさん
NGNG0071デフォルトの名無しさん
NGNG間違いは>>62の通りだと思う。
void strncpy(char *t, char *s, int n)
{
for (;n > 0 && *s != '\0';n--)
*t++ = *s++;
*t = '\0';
}
コンパイラは通してないけど、多分大丈夫。
007269
NGNGおいらへのレスかな?
>while (n--) *t++ = '\0';
条件式って「真:0以外、偽:0」で評価されるから、nが0になったら抜けるから負にならないでしょ?
0073デフォルトの名無しさん
NGNG関数の引数に指定されたnが最初から負の値の場合だと思われ。
0074デフォルトの名無しさん
NGNG0075デフォルトの名無しさん
NGNGあ、そういうことか・・・
0076デフォルトの名無しさん
NGNGnをint型にして条件式でn > 0としてるから考える必要ありそうだね。
0077デフォルトの名無しさん
NGNG0078デフォルトの名無しさん
NGNGvoid convertToUppercase(char*);
int main()
{
char string[]="characters";
printf("変換前の文字列は:%s\n",string);
convertToUppercase(string);
printf("変換後の文字列は:%s\n",string);
return 0;
}
void convertToUppercase(char*s)
{
while(*s!='\0'){
if(*s>='a'&&*s<='z')
*s-=32;
++s;
}
}
このプログラムを改造してアルファベットの大文字を小文字に変更するプログラムを作成してください。
0079ぼるじょあ ◆yBEncckFOU
NGNG#include <stdio.h>
#include <ctype.h>
void convertToUppercase(char*);
int main()
{
char string[]="characters";
printf("変換前の文字列は:%s\n",string);
convertToUppercase(string);
printf("変換後の文字列は:%s\n",string);
return 0;
}
void convertToUppercase(char*s)
{
for(;*s!='\0';s++)
*s=toupper(*s);
}
0080ぼるじょあ@79 ◆yBEncckFOU
NGNG#include <stdio.h>
#include <ctype.h>
void convertToLowercase(char*);
int main()
{
char string[]="FUCKASSHOLE";
printf("変換前の文字列は:%s\n",string);
convertToUppercase(string);
printf("変換後の文字列は:%s\n",string);
return 0;
}
void convertToLowercase(char*s)
{
for(;*s!='\0';s++)
*s=tolower(*s);
}
0081デフォルトの名無しさん
NGNG*s+=32;
0082デフォルトの名無しさん
NGNGgettimeofdayを使って現在の西暦を出したいんですが、使い方がよくわかりません。
宜しく、お願いします。
0083デフォルトの名無しさん
NGNG前に3つのさいころがどうのこうのってあったので、2つのでやってみたいと思ったのですが、
全くわかりません・・・。 2つのさいころの和の平均値を求めたいのですが
どのようにしたらよろしいでしょうか? 配列とかわからないので、おべんきょしたいのです。
お願い致します。
0084デフォルトの名無しさん
NGNGできれば宿題に限定していただけるとありがたいのですが。
>>82
そんなもんを使わんでも、timeとか使った方が手軽じゃないかと思いますが。
>>83
おべんきょしたいなら、何か入門書を一冊片づけるのが早いかと思いますが。
0085デフォルトの名無しさん
NGNG現在の西暦を出すだけならtime()とlocaltime()でできるだろ。
#文字列の加工はstrftime()でいいし。
008683
NGNGそですか・・・ 板汚しすみません。
お勧めの一冊はございますか?
板違いsage
0088デフォルトの名無しさん
NGNG1.
要素数がnであるint型配列xから、値がkである要素の添え字を返却する関数
int search (int x[] ,int n, int k) {/*........*/}を作成せよ。
値がkである要素が存在しなければ-1を返却するものとし、そのような要素が複数
の場合は先頭側の最も小さい添え字を返却すること。
2.
異なるn個の整数からr個の整数を取り出す組み合わせの数nCrを求める関数。
int combination(int n, int r){/*......*/}
を作成せよ。なお、nCrは以下のように定義する。
nCr= n-1 C r-1 + n-1 C r (ただしnC0= nCn = 1, nC1 = n)
上の式は見にくいかもしれませんが、数学のcombinationのことです。
0089デフォルトの名無しさん
NGNG#include <stdio.h>
#include <stdlib.h>
int ft(int n)
{
if (n > 0)
return (n * ft(n - 1));
else
return (1);
}
int ncr(int n, int r)
{
return (ft(n) / (ft(r) * ft(n - r)));
}
int main(int argc, char *argv[])
{
if (argc != 3) {
fprintf(stderr, "usage %s n r\n", argv[0]);
return (0);
}
printf("%d\n", ncr(atoi(argv[1]), atoi(argv[2])));
return (0);
}
0090デフォルトの名無しさん
NGNG0091デフォルトの名無しさん
NGNG#include <cstdio>
#include <cstdlib>
using namespace std;
int ft(int n)
{
if (n > 0)
return n * ft(n - 1);
else
return 1;
}
int ncr(int n, int r)
{
return ft(n) / (ft(r) * ft(n - r));
}
int main(int argc, char *argv[])
{
if (argc != 3) {
fprintf(stderr, "usage %s n r\n", argv[0]);
return 0;
}
printf("%d\n", ncr(atoi(argv[1]), atoi(argv[2])));
return 0;
}
0092デフォルトの名無しさん
NGNG0093デフォルトの名無しさん
NGNG1.
int search(int x[],int n,int k) {
for(int i = 0;i < n; i++) if(x[i] == k) return i;
return -1;
}
ってかC++なら参照つかうとか、、、
009483
NGNG気になって2つのさいころの和と確率分布、期待値を求めてみたのですが、
ミスがありまして・・・
手解きを受けたいのですが こちらでもよろしいでしょうか?
0095デフォルトの名無しさん
NGNG0096デフォルトの名無しさん
NGNG暇だからカモン
009783
NGNGint main(void){
int a, b, c, dice[6][6];
float i[12], j[13], k[13];
for(c = 1; c <= 11; c++)
i[c] = 0.0;
for(a = 0; a <= 5; a++)
{for(b = 0; b <= 5; b++)
{dice[a][b] = a + b + 2;
for(c = 1; c <= 11; c++)
{if(dice[a][b] == c + 1)
i[c]++;
}
}
}
for(c = 1; c <= 11; c++)
printf("%2dの時の確率は%f\n", c + 1, i[c] / 36);
printf("んで\n");
for(c = 1; c <= 11; c++)
{ j[c] = i[c+1]*c / 36;
k[1] = j[1];
k[c + 1] = k[c] + j[c + 1];
}
printf("期待値は%f\n", k[11]);
return 0;
}
009883
NGNGよろしくお願いします。
0099デフォルトの名無しさん
NGNG作ってもらえないか?
またはそういう掲示板を教えてくれ
頼む
0100デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1085867636/509
http://pc5.2ch.net/test/read.cgi/tech/1084544243/802
http://pc5.2ch.net/test/read.cgi/tech/1086612317/99
http://pc5.2ch.net/test/read.cgi/tech/1076157613/853
0101きょんちゃん
NGNGへんかんしないような、プログラムです。判断するプログラムCASLください
0102きょんちゃん
NGNGへんかんしないような、プログラムです。判断するプログラムCASLください
0103デフォルトの名無しさん
NGNGこのスレッドのタイトルを読め。
0104きょんちゃん
NGNG010596をさしおいて
NGNGint main(int args, char **argc) {
int a, b, c;
int i[13], s;
for(c = 2; c <= 12; c++) i[c] = 0;
for(a = 1; a <= 6; a++) {
for(b = 1; b <= 6; b++) {
i[a + b]++;
}
}
for(c = 2; c <= 12; c++) printf("%2dの時の確率は%1.5f\n", c, ((float)i[c])/36.0);
printf("んで\n");
s = 0;
for(c = 2; c <= 12; c++) s += i[c]*c;
printf("期待値は%2.5f\n", ((float)s)/36.0);
return 0;
}
冗長だなぁ。と思ってすこし縮めた。
添え字だなんだで混乱するときは、添え字のほうは後回し。目のほうを表すよう優先した。
プログラムは目的があってつくってるんだから、
変数の値も目的に合わせたほうがいいんじゃないかな、と俺は思ふ。
メモリの節約とか「添え字 0, 1 が使われないのは気持悪い」とかは、あとから考えな。
0106デフォルトの名無しさん
NGNGfloatにキャストしても、36.0じゃ結局doubleにされるぞ。
0107デフォルトの名無しさん
NGNG010883
NGNGありがとうございます。
ちょっとまだ私には高度すぎるようですので、一から出直してまいります。
ついでで申し訳ないのですが、何故私のでは期待値がNaNと出てしまうのでしょうか?
0109デフォルトの名無しさん
NGNGまぁ単純に計算方法が間違ってんでしょう
j のうち、初期化されてない部分を足し算してない? それとか
なんでこんなまわりくどいことしてるか分からんから これ以上レクチャーしにくいが
011090
NGNG0111デフォルトの名無しさん
NGNGスレ汚し失礼いたしました
011261
NGNG0113デフォルトの名無しさん
NGNG関数 reverse の定義を追加し,プログラムを完成させよ.
なお,入力される文字列の長さ(文字数)は任意であるが, 99文字以内であることが保証されているものとする.
/* reverse.c: reverse a given string */
#include <stdio.h>
#include <string.h>
void reverse(char *);/* プロトタイプ宣言 */
int main(void)
{
char str[100];
scanf("%s", str);
reverse(str);
printf("%s\n", str);
return (0);
}
どうかお願いします。
0114デフォルトの名無しさん
NGNG・扱う数値は整数値でよい(実数ならもっといい)
・数値と演算子の区切りは改行(リターンキー)でよい
・対話的に使えるものとするー終了は数値の代わりに一文字
の入力をすればよい
・演算は加減乗除のみ(ほかのがあってもよい)
・演算子の優先順位は考慮しなくてもよい
・括弧は扱えなくてもよい
・メモリ機能は扱えなくてよい
0115デフォルトの名無しさん
NGNG表示させよ。表示には、putcharを用い、文字列の長さは事前にわからないものとし、プログラムの中で調べること。 (先頭1文字ずつ表示し、null文字が見つかったら表示を中止する)
お助けくださいorz/
0116デフォルトの名無しさん
NGNGマルチ死ね
http://pc5.2ch.net/test/read.cgi/tech/1085867636/512-524n
http://pc5.2ch.net/test/read.cgi/tech/1033876116/546
http://pc5.2ch.net/test/read.cgi/tech/1086612317/114
0117デフォルトの名無しさん
NGNG#include <stdio.h>
#include <string.h>
void reverse(char *);/* プロトタイプ宣言 */
int main(void)
{
char str[100];
scanf("%100s", str);
reverse(str);
printf("%s\n", str);
return 0;
}
void reverse(char *s){
int len, t, i;
len = strlen(s) - 1;
for (i = 0; i < len / 2; i++){
t = s[i]; s[i] = s[len - i]; s[len - i] = t;
}
}
0118デフォルトの名無しさん
NGNG今時、シュミレーターは無いな
0119デフォルトの名無しさん
NGNG#include <stdio.h>
#include <string.h>
#define N 16
int main(void){
int i, ch;
char name[N];
scanf("%16s", name); /*fgets(buf, sizeof buf, stdin)*/
for (i = 0; name[i] != '\0' && i < N;i++) putchar(name[i]);
return 0;
}
0120119
NGNGコメントのところにミスがあったので一応修正。
buf→name
あとfgetsの場合は改行も読み込むので、0に変えるなどをするべき。
0121117
NGNG0122デフォルトの名無しさん
NGNGありがとうございました。
言われてみたので問題をよく見ると本当に書き損ねてました・・・スイマセン
0123デフォルトの名無しさん
NGNGどうしたら良いでしょうか?
0124デフォルトの名無しさん
NGNGそのランダムにいれる数字はどんな値にしたいの?
全部ばらばらなのか
1〜5、0〜4、または適当な5つの決められた数字をかぶりのないように入れたいのか
0125デフォルトの名無しさん
NGNGランダムつったらランダムなんだよボケー!!
0127デフォルトの名無しさん
NGNG配列を持ち出してきたからシャッフルのことも考えたんだろ、
つねに質問者が問題に沿った書き方をするとは限らないから
一応聞いてるだけだろ、氏ね。
0128デフォルトの名無しさん
NGNGかぶりはあり、なし?
0129123
NGNGかぶりなしってことです
0130デフォルトの名無しさん
NGNG#include <stdlib.h>
#include <time.h>
#define N 5
int main(void){
int s[N], change_index, temp, i;
srand((unsigned)time(NULL));
for (i = 0; i < N; i++) s[i] = i + 1;
for (i = 0; i < N; i++){
change_index = (double)rand() / (RAND_MAX + 1) * N;
temp = s[change_index];
s[change_index] = s[i];
s[i] = temp;
}
for (i = 0; i < N; i++){
printf("s[%d]=%d\n",i , s[i]);
}
return 0;
}
//randのとこは解らなければ change_index = rand() % 5;で
0131130
NGNGchange_index = rand() % N;
0132デフォルトの名無しさん
NGNGRAND_MAX の値によってはオーバーフローするから、
(RAND_MAX + 1) の部分は ((double)RAND_MAX + 1) にしないといけない。
0134デフォルトの名無しさん
NGNGなるほど、勉強になった。
>>133
別に動作には問題はない。
0135デフォルトの名無しさん
NGNG>(RAND_MAX + 1) の部分は ((double)RAND_MAX + 1) にしないといけない
実は(RAND_MAX + 1)が定数項(コンパイル時にケテーイ)だから,いらない罠。
まぁ,教える分にはエエけどね。
0136デフォルトの名無しさん
NGNGコンパイル時にオーバーフローするのがわかるからと言って付けなくてもよい理由にはなりませんが?
0137デフォルトの名無しさん
NGNG課題;
漸化式a=0,
a1=1,
an=an-1+an-2 (n≧2) a1の1やanのn、n-1,n-2は下付き文字ですが変換できませんでした。
によって定義される数列をフィボナッチ数列と言う。サイズ20の整数型配列fib[]
を宣言し、fib[0],fib[1],・・・,fib[19]にフィボナッチ数a0,a1,・・・,a19を求めよ。
また、この値をprintf()関数を使って出力せよ。
0138137
NGNG#include <stdio.h>
int main(void)
{
int i;
int fib[20];
for(i=0;i<20;i++)
fib[i]=
for(i=0;i<20;i++)
printf("fib[%d]=%d\n",i,fib[i]);
return(0);
}
0139デフォルトの名無しさん
NGNG#include <stdio.h>
int main(void){
int fib[20], i;
fib[0] = 0; fib[1] = 1;
for (i = 2; i < 20; i++){
fib[i] = fib[i-1] + fib[i-2];
}
for (i = 0; i <20; i++){
printf("fib[%d]=%d\n", i, fib[i]);
}
return 0;
}
0142デフォルトの名無しさん
NGNG>>88,89,90
#include <iostream>
using namespace std;
int combination(int n, int r)
{
if(n < r) return -1; // エラー
if(n == r || r == 0) return 1;
if(r == 1) return n; // 本当は不必要
return combination(n - 1, r - 1) + combination(n - 1, r);
}
int main(void)
{
int n = 10, r = 2;
cout << n << "C" << r << " = " << combination(n, r) << endl;
return 0;
}
あとで>>94,96,105もやってみる。バグったままだよね?
0143デフォルトの名無しさん
NGNGdoubleの定数でコードに埋まる
0144デフォルトの名無しさん
NGNGあえて嫌がらせでこんなのも
#include <stdio.h>
int fib(int n);
int main(void)
{
int a,i;
printf("何項目まで求めるか入力してください\n");
scanf("%d",&a);
for(i=1;i<=a;i++){
printf("%d\n",fib(i));
}
return 0;
}
int fib(int n)
{
if(n==1||n==2){
return 1;
}else{
return fib(n-1)+fib(n-2);
}
}
0145デフォルトの名無しさん
NGNG#include<cstdio>
using namespace std;
template<int N>
struct Fib {
enum { n = Fib<N-1>::n + Fib<N-2>::n };
};
template<>
struct Fib<0>{
enum { n = 0 };
};
template<>
struct Fib<1>{
enum { n = 1 };
};
int main(){
int i;
int fib[] = {
Fib<0>::n, Fib<1>::n, Fib<2>::n, Fib<3>::n,
Fib<4>::n, Fib<5>::n, Fib<6>::n, Fib<7>::n,
Fib<8>::n, Fib<9>::n, Fib<10>::n, Fib<11>::n,
Fib<12>::n, Fib<13>::n, Fib<14>::n, Fib<15>::n,
Fib<16>::n, Fib<17>::n, Fib<18>::n, Fib<19>::n
};
for( i=0; i < 20; ++i ) printf( "fib[%d]=%d\n", i, fib[i] );
}
0148デフォルトの名無しさん
NGNG8進数y=037427を右側に3ビット分シフトし、捨てられたビットを8進数x=0の左側から順につめて、
y=03742,x=0160000となるようにしなさい。
0149デフォルトの名無しさん
NGNG仮定:xは16bit
#include<stdio.h>
void hoge( unsigned short *y, unsigned short *x ) {
unsigned long z = ( *y<<16 );
z >>= 3;
*y = (z>>16);
*x = z&0xffff;
}
int main(){
unsigned short x, y=037427;
hoge( &y, &x );
printf( "y=0%o, x=0%o\n", y, x );
return 0;
}
0150デフォルトの名無しさん
NGNGオーバーフローの結果なんて未定義だろ
0151デフォルトの名無しさん
NGNG>j[c] = i[c + 1] * c / 36.;
>k[1] = j[1];
>k[c + 1] = k[c] + j[c + 1];
この部分が問題。
j[1]代入→j[2]参照→j[2]代入→j[3]参照→…
なんて繰り返し,つまり値を代入する前に参照しているのが悪い。
プログラム全体に無駄な操作が多いのが間違える原因だろうな。
>for(c = 1; c <= 11; c++)
>{if(dice[a][b] == c + 1)
>i[c]++;
>}
↓
i[dice[a][b]-1]++;
さらにその上の
dice[a][b] = a + b + 2;
と統合すれば
>dice[a][b] = a + b + 2;
>for(c = 1; c <= 11; c++)
>{if(dice[a][b] == c + 1)
>i[c]++;
>}
↓
i[a+b+1]++;
0152デフォルトの名無しさん
NGNG#include <stdio.h>
void shift_right( unsigned short* y, unsigned short* x )
{
unsigned char bit = *y & 1;
*x >>= 1;
*x |= *y << 15;
*y >>= 1;
}
int main()
{
unsigned short x = 0;
unsigned short y = 037427;
int i;
for( i = 0 ; i <= 3 ; i ++ )
{
printf( "y=%o\tx=%o\n", y, x );
shift_right( &y, &x );
}
return 0;
}
0153デフォルトの名無しさん
NGNGマイナスの数が入力されるまでの入力データを使って平均値を求め、
個々のデータと平均値の差の二乗和の平均値を表示するプログラム(ただしデータは一回だけしか入力できない)
例
入力データが1,2,4,1なら、平均値は2なので平均値との差の二乗和は(-1)^2+0+2^2+(-1)^2=6となる。
�A
rand()/32768.0としてn個の乱数を作成し、その度数分布をつくるプログラム
ただし、度数分布のクラスの数は10とする
ぜんぜんわかりません。c言語です。よろしくおねがいします。
0154デフォルトの名無しさん
NGNG#include <stdio.h>
#define N 10
int main()
{
float data[N], sum = 0.0, avg;
float nvar = 0.0;
int num = 0, i;
while(1) {
printf( "%d番目の値は?", num+1 );
scanf( "%f", &data[num] );
if ( data[num] < 0.0 )
break;
sum += data[num];
num ++;
if ( num == N ) {
printf( "バッファが足りないので、入力を打ち切りますorz\n" );
break;
}
}
avg = sum/num;
for( i = 0 ; i < num ; i ++ ) nvar += (data[i] - avg) * (data[i] - avg);
printf( "データ数=%d\n", num );
printf( "平均値=%f\n", avg );
printf( "平均値との差の二乗和=%f\n", nvar );
return 0;
}
0155デフォルトの名無しさん
NGNG�@ 入力データx_i(i=1..n)の平均をX、(x_n)^2の平均をXと書くと
(1/n)Σ(x_i-X)^2 = X-X^2
と変形できることを利用する。高校数学の分散を思い出せ。
#include <stdio.h>
int main(void)
{
int data, i;
double avg, avg2;
avg = avg2 = 0.0;
for(i = 0; ; i++) {
scanf("%d", &data);
if(data < 0) break;
avg += data;
avg2 += data * data;
}
avg /= i;
avg2 /= i;
printf("平均は%f\n分散は%f\n", avg, avg2 - avg * avg);
return 0;
}
0156デフォルトの名無しさん
NGNG>>152
ありがとう。
勉強に励みます。
0157デフォルトの名無しさん
NGNG#include <stdlib.h>
#include <time.h>
int main(void){
int n, i, j, a[10] = {0,};
double t;
srand((unsigned)time(NULL));
printf("n >>"); scanf("%d", &n);
for (i = 0; i < n; i++){
t = rand() / 32768.0;
for (j = 0; j < 10; j++){
if (t < 0.1 * (j + 1)){
a[j]++;
break;
}
}
}
for (i = 0; i < 10; i++){
printf("\n%.1f〜%.1f", i*0.1, (i+1)*0.1);
for (j = 0; j < a[i]; j++){
putchar('*');
}
}
return 0;
}
0158デフォルトの名無しさん
NGNG0159デフォルトの名無しさん
NGNGどうぞ、遠慮せずにやってください。
0160デフォルトの名無しさん
NGNG日記は自分のメモ帳にでも書いておけ。
0161デフォルトの名無しさん
NGNG0162158
NGNG作り方をおしえてください。
0163デフォルトの名無しさん
NGNG1.フィボナッチ数列の1項から10項までを表示するプログラムを作りなさい。
フィボナッチ数列は第1,2項が共に1で、第n項はn-2項とn-1項で求める。
2.整数nを入力し、1項からn項までのフィボナッチ数列を表示するプログラム
を作りなさい。また1行に表示するのは5項までとする。
学習範囲から言ってcontinueかbreakかreturnを使って作るのだと思うのですが
よく分かりません。ちなみにまだ関数までいっていません(void mainのみ)。
どなたかよろしくお願いします。
0164153
NGNG0165デフォルトの名無しさん
NGNG(1)一時的な変数を確保
(2)パターンに一致するものを検索する
(3)見つかったら最終位置から一致する以前の文字列+置換後の文字列を一時変数に追加
(4)終端についていなければ(1)へ
(5)ぬるp・・・NULLを入れる
(6)元の変数に代入する
意図的に無駄なことをしています。自分で無駄を省きましょう
0166デフォルトの名無しさん
NGNG無理矢理break;を使って作った。
#include <stdio.h>
int main(void)
{
int a, b, c, i;
printf("F[ 1] = 1\nF[ 2] = 1\n");
b = 1;
c = 1;
for(i = 3; ; i++) {
if(i > 10) break;
a = b;
b = c;
c = a + b;
printf("F[%2d] = %d\n", i, c);
}
return 0;
}
2は面倒なので略。もしこれを改造するつもりなら、nが1の時の表示に注意。
0167デフォルトの名無しさん
NGNGbreakもcontinueも使って無いけど。
#include <stdio.h>
#include <stdlib.h>
int main(){
int n,v1,v2,tmp,col;
printf(">"); scanf("%d",&n);
if(n<1){printf("error.\n"); exit(0);}
v1=0; v2=1; col=0;
while(n>0){
printf("%d ",v2);
tmp=v1; v1=v2; v2+=tmp; n--; col++;
if(col>4){printf("\n"); col=0;}
}
return 0;
}
0168163
NGNG早速の御回答ありがとうございます。
まだ#include<stdio.h> voidmain(void)から始まる書き方しかやっていなくて、
int main()などは習っていないのです。でも、早速参考にさせて頂きます。
夜中にどうもありがとうございました。非常に助かりました。
0169デフォルトの名無しさん
NGNG配列 a はコンピュータのメモリにどのように割り当てられるか説明しなさい。
{問 2} 文字列を記憶するには char型配列を使用する。
char s[] = "Practice"; としたとき、配列 s の各要素はどのような値(文字)になっているか説明しなさい。
お願いします
0170デフォルトの名無しさん
NGNG問1 問題を出した人間に文句を言う
問2 s[0] = 'P',s[1] = 'r' (中略) s[7] = 'e' , s[8] = '\0'
0172high
NGNG長いので2回に分けます。
サフィックス記法(逆ポーラント記法)は数式の記法の1つで,一般の記法との対応は下表の通りである.ただし,ここでは簡単のため,数式には加算(+)と乗算(*)しか含まれていないものとする.
一般記法 サフィックス記法
(数式A)+(数式B) (Aのサフィックス記法)(Bのサフィックス記法)+
(数式A)*(数式B) (Aのサフィックス記法)(Bのサフィックス記法)*
例えば,以下のような変換ができる.
一般記法 サフィックス記法
a+b ab+
a*b ab*
a+b*c abc*+
a*b+c ab*c+
(a+b)*c ab+c*
(a+b)*(c+d) ab+cd+*
0173high
NGNGサフィックス記法が求まると,カッコのある任意の数式を順序よく計算できる.つまり,読み込んだ文字に従って次のようにスタックに入れながら計算することで値を求めることができる.
文字 操作
数(変数) スタックにpush
演算子(+,*) スタックから2つpopしてその演算を行い,結果をpush
次の数式をサフィックス記法に直せ.(解答は以下で作成するプログラム先頭部分にコメント文として含めよ)
a*(b+c)
((a+b*c)+d)*e
((a+b)*(c+d))+e*f
サフィックス記法により記述された数式(変数の値は自然数1桁とする.例えばa=2,b=3,c=4,d=5,e=6,f=7として,
「234+*」とせよ)をキーボードから入力し,スタックを用いて数式の値を計算するプログラムsuffix.cを作成せよ.
動作確認は上記の3式について数値を入れて行い,答が一致することを確かめよ(例えば通常の数式「2*(3+4)」の値と
サフィックス記法の式「234+*」をプログラムで計算させた値が一致することを確認せよ).
0174デフォルトの名無しさん
NGNG0175high
NGNG0176デフォルトの名無しさん
NGNG空白で区切って入力した1行(正整数並びの文字列)を項に分解して
i番目の項を配列X[i]に累計しながら格納していく(Xの要素数は10)
要素数より多い入力は11項目以降を棄却
入力の終了は改行のみの入力で判定
入力にはfgets、整数並びの文字列の項の分解にはisspace、isdigitで判定
して行い、文字列の数値化にはatoi()を使えというのなんですが
ご教授お願いします
0177デフォルトの名無しさん
NGNGダルー
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=103
0178デフォルトの名無しさん
NGNGわざわざatoi使ってるくせに,平気でスタック破壊する。
そんなところがステキ♪
0179デフォルトの名無しさん
NGNGえ?どこ?
0180デフォルトの名無しさん
NGNG練習問題
/* xの階乗を計算する */
#include <stdio.h>
float kaijo( int ); /* 関数のプロトタイプ宣言 */
main()
{
int x;
printf("x = ");
scanf("%d", &x);
printf("%d! = %.0f\n", x,kaijo(x));
}
/* 階乗を計算する関数 */
float kaijo( int n )
{
int i;
float v = 1.0;
for(i = 1; i <= n; i++){
v = v * i ;
}
return v ;
}
0181180
NGNG課題
sin x は、マクローリン展開によって次のように表せられる。
x^3 x^5 x^(2n+1)
sinx = x - --- + --- -・・・+(-1)^n------- +・・・
3! 5! (2n+1)!
ただし、コンピュータでの計算では第 n 項までとする。
この式と練習問題の kaijo 関数を組み合わせて sin x の値を計算する関数 float mysin( float x ) を作成せよ。
このとき、項の数 n はプログラム内で適当な値を代入する。
また、キーボードから実数値 x を入力して、 mysin(x) の値と数学関数 sin(x) の値を表示する処理を main 関数の中に作成せよ。
練習問題をいじって課題を完成させたいです。結構悩んでます。
お願いします
0182180
NGNG修正です
x^3 x^5 x^(2n+1)
sinx = x - --- + --- -・・・+(-1)^n------- +・・・
3! 5! (2n+1)!
0183180
NGNG\[\sin x = x-\frac{x^3}{3!}+\frac{x^5}{5!}-\cdots+(-1)^n\frac{x^{2n+1}}{(2n+1)!}+\cdots\]
Tex用の展開式
何度もすみません
0184デフォルトの名無しさん
NGNG入力例:[dump.txt]
B7 82 B5 8D 9E 82 DD 2C 0D 0A 25 83 52 83 7D 83
93 83 68 82 DC 82 BD 82 CD 83 74 83 40 83 43 83
8B 96 BC 82 AA 88 E1 82 A2 82 DC 82 B7 2E 0D 0A
出力例:[binary.txt]
キし込み,..%コマン
ドまたはファイル
名が違います...
0185デフォルトの名無しさん
NGNGfloat mysin(float x){
int i, n = 2; /*nは適当*/
float t, sum = 0.0;
for (i = 0; i <= n; i++){
t = pow(x, 2*i+1) / kaijo(2*i+1);
if (i%2 == 1) t *= -1;
sum += t;
}
return sum;
}
0186180
NGNG#include <stdio.h>
#include <math.h>
float kaijo( int );
float mysin(floatx);
main()
{
int x;
printf("x = ");
scanf("%d", &x);
printf("%d ")
printf("%d ")
printf("%d! = %.0f\n", x,kaijo(x));
float mysin (floatx)
{
n = 5;
v = 0
for(i=0 ,i<=n i++){
v = v +(-1)*
}
x =sin(i)
}
return x
}
0187180
NGNG{
int i;
float v = 1.0;
for(i = 1; i <= n; i++){
v = v * i ;
}
return v ;
}
0188デフォルトの名無しさん
NGNG0190デフォルトの名無しさん
NGNGすいません。
元の16進ダンプはJISコードの値範囲を逸脱していますが,何か?
0191デフォルトの名無しさん
NGNG生きててすいません。
0192デフォルトの名無しさん
NGNGすみませんというべきでした。
0193デフォルトの名無しさん
NGNG(・3・)アルェー 出題者の言語能力は相当低いですYO!
日本語の出来ていない人と付き合うのは大変ですね。同情するYO!
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
int main(){
char buf[1024];
int x [10];
memset(x,sizeof(x),0);
while( fgets(buf,sizeof(buf),stdin) ){
char *p = buf;
char *start;
int i;
if( buf[0] = '\n' ) break;
if( buf[strlen(buf)-1] != '\n' ) exit(EXIT_FAILURE);
for(i=0;i<10;++i){ start = p; while(isdigit(*p++)); *p++='\0';
x[i]+=atoi(start); while(isspace(*p++));}
}
}
0194デフォルトの名無しさん
NGNGmemset(x,sizeof(x),0);
↓
memset(x,0,sizeof(x));
0195デフォルトの名無しさん
NGNGint x [10]={0};で十分だろ。
0196デフォルトの名無しさん
NGNGシフトJISでした
0197high
NGNGありがとうございます。
今後ともよろしくお願いしますm(__)m
0198最小値をとる配列要素の番号わかりません
NGNG標準偏差= 22.80
最小値= 5
最小値をとる配列要素の番号= 50
最大値= 99
最大値をとる配列要素の番号= 50
0- 9 |** 2
10-19 |* 1
20-29 |*** 3
30-39 |** 2
40-49 |****** 6
50-59 |********** 10
60-69 |******** 8
70-79 |******* 7
80-89 |****** 6
90-99 |***** 5
続行するには何かキーを押してください .
0199198
NGNG#include <stdio.h>
#define NUM 50
int a[NUM] = {
99,45,89,62,61,93,55,78,56,26,
81,49,99,77,38,73,54,20,62,59,
63,59,63,93,74,37,71,49,48,56,
5,47,82,83,85,17,74,56,69,50,
51,82,24,99,66,65,73,53,48, 5};
void main(void)
{
double average , std_v ;
int i , j , k , histo[10] ={0} , min , max , s , ss ,min_suffix =
0,max_suffix = 0;
for (i=0; i<NUM; i++) {
s+=a[i];
ss+=a[i]*a[i];
histo[a[i]/10]++;
if(a[i]<min) min=a[i] ;
if(a[i]>max) max=a[i] ;
}
0200199に ◆3VUXqvbfSY
NGNGmax_suffix = 0;
for (j=0; j<NUM; j++) {
if (a[j] < a[min_suffix]) min_suffix = j;
if (a[j] > a[max_suffix]) max_suffix = j;
}
average=(double)s/NUM;
std_v=sqrt((double)ss/NUM - average*average);
printf("平均=%6.2f\n",average);
printf("標準偏差=%6.2f\n\n",std_v);
printf("最小値=%3d\n",min);
printf("最小値をとる配列要素の番号=%13d\n\n",j);
printf("最大値=%3d\n",max);
printf("最大値をとる配列要素の番号=%13d\n\n",j);
for (k=0; k<10; k++) {
printf("%2d-%2d |", k*10, k*10+9);
for (i=1; i<=histo[k]; i++)
printf("*");
printf(" %d\n", histo[k]);
}
}
どこがまちがってるのか教えてください
0201198〜200
NGNG最小値をとる配列要素の番号
最大値をとる配列要素の番号
がなぜか50 になってしまいます。
教えてください
0202デフォルトの名無しさん
NGNGfloatなんか使うなよ。
0203デフォルトの名無しさん
NGNG・扱う数値は整数値でよい(実数ならもっといい)
・数値と演算子の区切りは改行(リターンキー)でよい
・対話的に使えるものとするー終了は数値の代わりに一文字
の入力をすればよい
・演算は加減乗除のみ(ほかのがあってもよい)
・演算子の優先順位は考慮しなくてもよい
・括弧は扱えなくてもよい
・メモリ機能は扱えなくてよい
マルチで非常にすいませんでした。
本当に困ってます。助けてーm(><)m
0204デフォルトの名無しさん
NGNG釣り?
>printf("最小値をとる配列要素の番号=%13d\n\n",j);
jを表示したら、そりゃぁ50だろうよ。
0205デフォルトの名無しさん
NGNGprintf("最小値をとる配列要素の番号=%13d\n\n",min_suffix);
printf("最大値=%3d\n",max);
printf("最大値をとる配列要素の番号=%13d\n\n",max_suffix);
0206デフォルトの名無しさん
NGNGprintf("最小値をとる配列要素の番号=%13d\n\n",min_suffix);
printf("最大値=%3d\n",max);
printf("最大値をとる配列要素の番号=%13d\n\n",max_suffix);
でつね
0207198〜200
NGNGmax_suffix = 0;
for (j=0; j<NUM; j++) {
if (a[j] < a[min_suffix]) min_suffix = j;
if (a[j] > a[max_suffix]) max_suffix = j;
}
で最小値、最大値を与える配列要素の番号をだそうと
おもったのですが…
0208デフォルトの名無しさん
NGNG>204読んだ?
0209デフォルトの名無しさん
NGNGたまたま0で初期化されたかもしれんが。
0210デフォルトの名無しさん
NGNGはき出されるソース中に、ソースの名前と、行番号を残したい
で、こんなマクロつくったんだけど、ダメですた。
#define __LLL // __FILE__ __LINE__
こんな風になってほしんだけど
// "test.c" 10
マクロで指定した"//"がコメントと認識されちまって、その後に続く、
"__FILE__ __LINE__"もコメントとして認識されちゃう。
何か回避方法ないすか?
とりあえず、後処理で、sed通すとかは無しの方向で
0211198〜200
NGNG>204〜208ありがとうございます
最小値をとる配列要素の番号が複数になる時どうすればいいんですか?
0212デフォルトの名無しさん
NGNG0213>212
NGNG0214デフォルトの名無しさん
NGNG何がいけないんでしょうか。。。
問題のコードとエラーメッセージです↓
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/lounge/file/1074774948_16/code.txt
0215デフォルトの名無しさん
NGNGbcc と g++ でならコンパイルとおるし、実行も出来る。
0216デフォルトの名無しさん
NGNG0217デフォルトの名無しさん
NGNG全角文字を入れずにやってみましたがだめでした。
visualC++では無理なのか。。。。
0218デフォルトの名無しさん
NGNGそういや漏れも昔この内部エラーとかいうの出た。
どうやったか忘れたけど、とりあえずリビルドしてみた。
ビルドフォルダ削除してみてみ。
0219デフォルトの名無しさん
NGNGビルドフォルダってのはdebugって名前のフォルダですかね。
削除してビルドしたりリビルドしたりクリーンを実行したりしましたがだめでした。。。
何がいけないというのですか。。。。visualC++先生。。。
0220デフォルトの名無しさん
NGNGおれもよく見たよ。VCに処理できないようなコードを書くと死んでわびてくれる。
んで、こういうときは仕方がないので少しづつコメントアウトしながら問題の記述を特定するしかない。
というわけでがんばれ。
なお、おれの勘ではコンストラクタの引数にデフォルト値があるのと
operator+の片方がintになってるののとで、
関数オーバーロードの解決に失敗しているくさい。
試しにコンストラクタの引数にデフォルト与えるのやめてみたら
0221デフォルトの名無しさん
NGNG読み込み、構造体オブジェクトを動的な記憶域を確保し、そこに格納する。
(1)データを読み込んだ記憶域から、スタックにデータをプッシュしたり、ポップ
したりする。
(2)データを読み込んだ記憶域から、キューにデータをエンキューしたり、デキュー
したりする。
2つもあって申し訳ないですが、どうかよろしくお願いいたします。
0222221
NGNG言語はC言語です。あと、ファイルはtxtファイルです。
よろしくお願いいたします。
0223デフォルトの名無しさん
NGNGVC++6ならサービスパック当てるとなおるかも
VC++6はサービスパック当てないと演算子のオーバーロードで
エラーでた記憶がある
ttp://www.microsoft.com/downloads/details.aspx?FamilyID=a8494edb-2e89-4676-a16a-5c5477cb9713&displaylang=ja
0224デフォルトの名無しさん
NGNGキューやスタックも作れってこと?
それとも過去の課題で作ったのを使ったりするのかな…
0225221
NGNGキューやスタックは、数字一つをプッシュしたりするのならあるのですが、
今回は、構造体になってたり文字が含まれていたりしてるので、よろしけ
れば、キューやスタックもお作り願いたいのですが。。。
0226デフォルトの名無しさん
NGNG0227デフォルトの名無しさん
NGNGわからないので
こーどを
かいてください
おねがいします
0228デフォルトの名無しさん
NGNG>お作り願いたいのですが。。。
キミの場合,プログラムは人に任せて,
まずは,日本語の勉強をしたほうがよさそうだね。
0229デフォルトの名無しさん
NGNGCげんごでおながいします
0230デフォルトの名無しさん
NGNGそんなキューやスタックでも書いて、流用して貰えば
人に頼んだことがばれにくくなって( ゚Д゚)ウマー
0231デフォルトの名無しさん
NGNG#define __LLL /##/ __FILE__ __LINE__
これはどうだ
0232デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=104
めんどくせぇから,遅いけどLISTで手抜き実装。
そして,C99的な構造体を使ってみるテスト。
0233デフォルトの名無しさん
NGNG0234デフォルトの名無しさん
NGNG#include <stdio.h>
int main()
{
struct{char n[4000]; int a; double w;} a,b;
printf("名前 > ");
fgets(a.n,sizeof a.n,stdin);
printf("年齢 > ");
scanf("%d",&a.a);
printf("体重 > ");
scanf("%lf",&a.w);
b=a;
printf("%s%s\n%d\n%d\n\n%f\n%f\n",a.n,b.n,a.a,b.a,a.w,b.w);
return 0;
}
0235221
NGNG本当にありがとうございました!!助かりました!!
0236232
NGNGクヤチー!!
0237デフォルトの名無しさん
NGNG#include <stdio.h>
int main(){char a[99],b[99],*e="+-*/",*f;int s=0,c;float m=0,n;while(1){printf(
"%f :",m);fgets(a,99,stdin)?0:exit(0);if(sscanf(a,"%s",b)>0){if(sscanf(b,"%f",
&n)>0){m=s?c?c-1?c-2?m/n:m*n:m-n:m+n:n;s=0;continue;}else{if(!b[1] && (f=strchr
(e,*b))){s=1;c=f-e;continue;}}}*a-'q'?0:exit(0);puts("Input errror (type 'q' t"
"o exit)");}}
使用例
0.000000 :1
1.000000 :25
25.000000 :/
25.000000 :9
2.777778 :+
2.777778 :3
5.777778 :-
5.777778 :7
-1.222222 :*
-1.222222 :5
-6.111112 :/5
Input errror (type 'q' to exit)
-6.111112 :
Input errror (type 'q' to exit)
-6.111112 :q
0238すみませんが
NGNGダイレクトXを使えば自分でもできますが、C++のAPIを使って
やれとのことでよくわかりません。教えてもらえますか?
0239デフォルトの名無しさん
NGNGjoyGetPosExとかいうカビ生えた関数使うんだったっけ
0240デフォルトの名無しさん
NGNG>めんどくせぇから,
めんどくせぇなら、レスするな。
自分の無能を隠すのに下らない言い訳するなよ。
そんなものは世の中の害にこそなれど、役には立たない。
0241デフォルトの名無しさん
NGNG0242デフォルトの名無しさん
NGNG0243厨房・・・
NGNGvoid main (void)
{
char s,e;
printf("開始文字を入力==>");
scanf("%c",&s);
printf("終了文字を入力==>");
scanf("%c",&e);
printf("\n開始文字%c\n終了文字%c",s,e);
return;
}
どうやって入力すれば良いのでしょうか?
これだと一回目で終わってしまいます。
0244デフォルトの名無しさん
NGNGscanf("%c %c",&s,&e);
0245デフォルトの名無しさん
NGNGJISじゃなくShift-JISでお願いします。
0246デフォルトの名無しさん
NGNGご回答有難う御座います。
ただ課題で実行画面が書かれており、そのとおりに表示しないと駄目なんです。
開始文字==>A 「Enter」
終了文字==>Z 「Enter」
と表示しなければ駄目なんです。
もっとも、開始・終了文字を入れて処理を行い、その結果を表示するのですが、
int と %d で数値を入力するのなら、普通に出来るのですが、文字をやろうとすると
上手く行きません・・・。
0247デフォルトの名無しさん
NGNG0248デフォルトの名無しさん
NGNGscanf() は必要部分を読んだあと残りを 『食い残す』 癖があるので、
fgets() などで一行丸々読んでから sscanf() で切り出すのが定石。
0249デフォルトの名無しさん
NGNG>printf("開始文字を入力==>");
>scanf("%c",&s);
>printf("終了文字を入力==>");
>scanf("%c",&e);
printf("開始文字を入力==>");
scanf("%c\n",&s); /* こうする */
printf("終了文字を入力==>");
scanf("%c",&e);
0250厨房・・・
NGNGfgets()を早速調べてみたのですが、fflush(stdin);というのもあるみたいですね。
fflush(stdin);よりfgets()の方が確実だとかなんとか・・・fgets()について、もう少し調べてみます。
有難う御座います。
>>249さん
試してみました。
ただ最初に入力した後に、一文字入れなければ終了文字を入れられません。
%cの後に\nを入れることで、どのような動作になるのでしょうか?
0251デフォルトの名無しさん
NGNG0252デフォルトの名無しさん
NGNGhttp://www.linux.or.jp/JM/ の 『man on WWW』 のセクション 2,3 で検索すると、
大概の C の関数は調べられるので紹介しておく。
ただし、準拠の欄に ANSI C、POSIX のどちらも書かれていない関数は、特定の
環境でしか使えないので注意
0253デフォルトの名無しさん
NGNG作らなくてはいけないのですが
どこかにいいサンプルなどないでしょうか?
0254253
NGNG多重比較の方法はボンフェローニかシェッフェの方法を検討しています
よろしくお願いします。
0255デフォルトの名無しさん
NGNG#include <stdio.h>
#include <stdlib.h>
int main() {
FILE * fpIn = fopen("dump.txt", "r");
FILE * fpOut = fopen("binary.txt", "wb");
while (fscanf(fpIn, "%02x", &cd) == 1) {
fputchar(cd, fpOut);
}
fclose(fpIn);
fclose(fpOut);
return EXIT_SUCCESS;
}
0256デフォルトの名無しさん
NGNGcdはどこで定義されているのー?
0258デフォルトの名無しさん
NGNG0259255
NGNGfputc()だね。
#ダメだ、寝てこよう_/ ̄|⌒γ⌒γ⌒γ⌒γ⌒γ⌒○
0260デフォルトの名無しさん
NGNGぼるじょあどんになったり、ならなかったりするの
でつが慣例でつか?
0261ぼるじょあ ◆yBEncckFOU
NGNG0262デフォルトの名無しさん
NGNG0263デフォルトの名無しさん
NGNG,.':: ,、- ''"´ `゙゙゙''‐ 、 ゙' , ,,、、、
,.'::: .,. " ゙'.、r'" ゙'、
,.':::: , " , ., , ,, 、, , 、 、 ,r" ',
_,i、 ,.' .i ,','l !l .!l l. ! ',, l .l、/ ........ !
゙,~ ,.ri. .{ .!.!,i,',l ,',!,! l', l',l,,,!/ .::::::::::::::!
゙、:::::,.' .::! l゙、'l"l,' !,'!'!'.レ !' .'''.,' .:::::::::::::::::l
. ,>' .:r"l ',.l,、‐''''i- ''i;' .:::::::::::::::::::,'
〈-、::::゙'‐!. ,. '、ゝ;;;:j /. .::::::::::::::::::::,'
. ゙、 ゙''‐-l ', .ヽ`.´ ' ,.' .::::::::::::::::::::/
`,i‐、..}i '.;:. ゙ヽ ヾソ' .:::::::::::::::::::,.' ぼるじょあは天才
. / ;. ゙,゙, ';: ノ,,、-''" .::::::::::::::::::,r'
/ ,.'-‐゙'',-,、,i'"゙! " .::::::::::::::::,r'"', 憶えた!
/ i'r"゙'´` `'''>' ゙,::::::::::;r':! ',
. / .,、'´ ::、 .:,r'" ゙、:::::'::::::',. ',
/ .,.! .. :゙'::,' 、.l. ゙、:::::::::: ゙、. ',
/ /,', ...::.:::::::,' ゙'i. ゙、:,',:::::. ゙、 '゙、
. / , ', ' .i、:::::::::,r' ', ゙、':::::::::. ゙、 ヽ
/ ,.'.,.' ,゙、:::::::i ゙、. '、 ..:::::::l::::::::::::::. ヽ ヽ
/ ././ ,.' '、;:::! ', ゙、::::::::::::::::::::::!::::::::::: ,''-、..,,゙、、,,,.__
/ / / ./ .::::::`゙'、. '、 .:::::゙.、::::::::::::::::!:::::::: .,.',, ,,-,-‐'
0264デフォルトの名無しさん
NGNG画像を1/2に縮小するプログラムを作ってください!
#include "_wmgraph.h"
#include "_stdfunc.h"
main()
{
_init_wmimage();
printf("JPEGファイルを表示します.\n");
printf("何かキーを押して下さい.\n");
getchar();
char fname[256];
if(_fileopen(fname)) {
_bmap *b = _read_bmap(fname);
_newpage(1,"JPEG FILE",10,10,-b->w,-b->h);
_setactivepage(1);
_put_bmap(b, 10);
_putimage(0,0,10);
_setactivepage(1);
_bmap *bb = new _bmap(b->w, b->h); //空の画像を生成
unsigned char *c = b->b;
int blw=b->lw;
unsigned char *cc = bb->b;
int bblw=bb->lw;
0265デフォルトの名無しさん
NGNGfor (int i=0; i<b->h; i++)
for (int j=0; j<b->w; j++) {
cc[bblw*i+3*j+0]=c[blw*i+3*j+0]; //Blue
cc[bblw*i+3*j+1]=c[blw*i+3*j+1]; //Green
cc[bblw*i+3*j+2]=c[blw*i+3*j+2]; //Red
}
_newpage(2,"JPEG FILE",20,20,-bb->w,-bb->h);
_setactivepage(2);
_put_bmap(bb, 10);
_putimage(0,0,10);
_setactivepage(2);
delete b;
delete bb;
}
return 0;
}
0266デフォルトの名無しさん
NGNGint red=0, green=0, blue=0;
for (int ii=2*i; ii<2*i+2; ii++)
for (int jj=2*j; jj<2*j+2; jj++) {
red = red + c[blw*ii+3*jj+2];
green = green + c[blw*ii+3*jj+1];
blue = blue + c[blw*ii+3*jj+0];
}
red = red/4;
green = green/4;
blue = blue/4;
0267デフォルトの名無しさん
NGNGあ、ご丁寧にどうも!
って長いYO!w
0268デフォルトの名無しさん
NGNG面積が1/2?
辺の長さが1/2だよね。
0269デフォルトの名無しさん
NGNG-for (int i = 0; i < b->h; i++)
- for (int j = 0; j < b->w; j++) {
-cc[bblw * i + 3 * j + 0] = c[blw * i + 3 * j + 0];//Blue
-cc[bblw * i + 3 * j + 1] = c[blw * i + 3 * j + 1];//Green
-cc[bblw * i + 3 * j + 2] = c[blw * i + 3 * j + 2];//Red
を抜いて、代わりに
+for (int i = 0; i < b->h/2; i++)
+ for (int j = 0; j < b->w/2; j++) {
+int red = 0, green = 0, blue = 0;
+for (int ii = 2 * i; ii < 2 * i + 2; ii++)
+ for (int jj = 2 * j; jj < 2 * j + 2; jj++) {
+red = red + c[blw * ii + 3 * jj + 2];
+green = green + c[blw * ii + 3 * jj + 1];
+blue = blue + c[blw * ii + 3 * jj + 0];
+ }
+cc[bblw * i + 3 * j + 0] = blue / 4;//Blue
+cc[bblw * i + 3 * j + 1] = green / 4;//Green
+cc[bblw * i + 3 * j + 2] = red / 4;//Red
を入れるんじゃ駄目?
0270デフォルトの名無しさん
NGNG配列要素の番号,最大値,最大値をとる配列要素の番号および10 ごとに区切ったヒストグラムを
(B)のように表示するプログラムを完成せよ。(ソースプログラムを提出)
ただし,平均,標準偏差,各区間での度数,最小値,最小値をとる配列要素の番号,最大値,
最大値をとる配列要素の番号を計算するためのコードではfor 文は最大2回まで用いてよいこと
にする。(うまくアルゴリズムを工夫すればfor 文は1 回の使用でも実現できる。)
ヒント
for 文を1 回だけ使用するアルゴリズムは難しいので,for 文を2 回使うことを前提としたヒント
を与える。まず,最初のfor 文で最小値を求める。次に,2 度目のfor 文で,その最小値と配列
要素が等しいかどうかをみていくことにより,最小値をとる配列要素の番号を探す。このとき,
最小値をとる配列要素の番号が複数になる可能性があることを考え(実際にこの問題では複数あ
る。),配列要素の番号を記憶する配列変数とこの配列変数のどの要素までを使ったかを記憶する
変数が必要となる。最大値についても,同様に考えればよい。
平均,標準偏差,各区間の度数を求めるためコードは,最初,2 回目のどちらのfor 文の中に
書いてもよい。
a[NUM] = {
99,45,89,62,61,93,55,78,56,26,
81,49,99,77,38,73,54,20,62,59,
63,59,63,93,74,37,71,49,48,56,
5,47,82,83,85,17,74,56,69,50,
51,82,24,99,66,65,73,53,48, 5};
0271デフォルトの名無しさん
NGNGC/C++どちらでも構いません
できれば関数(?)みたいに一行で宣言できるようにしてくれるとありがたいです
(要素x y zの数を引数で渡すと生成されるみたいな)
しょうもない質問かと思いますが,是非ともよろしくお願いします
0272デフォルトの名無しさん
NGNGstd::vector
0273デフォルトの名無しさん
NGNGありがとうございます。
早速アップデートを試して再開したところ今度はエラーメッセージの内容が変わってやがる。。。
f:\c++\レッスン15サンプル1.cpp(39) : error C2512: 'Point' : クラス、構造体、共用体にデフォルト コンストラクタがありません。
f:\c++\レッスン15サンプル1.cpp(46) : error C2512: 'Point' : クラス、構造体、共用体にデフォルト コンストラクタがありません。
f:\c++\レッスン15サンプル1.cpp(53) : error C2512: 'Point' : クラス、構造体、共用体にデフォルト コンストラクタがありません。
エラー数だけで言えば前のほうが少なかった。。。のだろうか。
コード(エラーメッセージは上に書いたのになりました)↓
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/lounge/file/1074774948_16/code.txt
0274デフォルトの名無しさん
NGNG271のレベルを推測するに,それだとvector単純に宣言したら出来るんだって思うんでね?
0275デフォルトの名無しさん
NGNG↑ここのprob-3について教えていただけますか?
我々はコレを完璧に解かないと 卒業できずと教員免許もでない と いう事態になりますので皆様の力を貸してください。
なお、適当にURLをいじればコレまでの経過に関するページへ飛びます。
0276デフォルトの名無しさん
NGNG内藤さんにちくりました。レポートの注意くらいは読んでおこうね。
0277デフォルトの名無しさん
NGNG> 卒業できずと教員免許もでない
こんな日本語書く奴が教師になろうとしてるのか...、世も末だな。
0278デフォルトの名無しさん
NGNGC99対応のコンパイラなら普通の配列と同じように作れるんだけど
そうじゃないの使っているから質問したんだよな……。
int hoge[x][y][z];
0279デフォルトの名無しさん
NGNG0280デフォルトの名無しさん
NGNG(B)がない
0281デフォルトの名無しさん
NGNGGJ!
0282デフォルトの名無しさん
NGNG>>198- あたりを参照のこと。てか、(・3・)同じ課題かYO!
0283デフォルトの名無しさん
NGNGunsigned int uint_power(unsigned int a, unsigned int n)
{
if(n == 0)
return 1;
if(n == 1)
return a;
else {
if(n % 2)
return uint_power(a, n/2) * uint_power(a, n/2 + 1);
else
return uint_power(a, n/2) * uint_power(a, n/2);
}
}
動的に求めれば O(log n) よりも早くなるが。
これでいい?
0284デフォルトの名無しさん
NGNGPointクラスにデフォルトコンストラクタがないって教えてくれてるでしょーが
class Point
{
//略
Point(int a=0,b=0);
}
↓
class Point
{
//略
Point(int a=0,b=0):x(a),y(b){}
}
あとoperator++,operator++(int)はその実装だとまずいかも。
0285デフォルトの名無しさん
NGNG>Point(int a=0,b=0):
↑なんかすげーきもちわるい。
Point(int a=0, int b=0):
↑きもちいい。
0286Bです
NGNG平 均 = 60.46
標準偏差 = 22.80
最小値 = 5
最小値をとる配列要素の番号 = 30 49
最大値 = 99
最大値をとる配列要素の番号 = 0 12 43
0- 9 |** 2
10-19 |* 1
20-29 |*** 3
30-39 |** 2
40-49 |****** 6
50-59 |********** 10
60-69 |******** 8
70-79 |******* 7
80-89 |****** 6
90-99 |***** 5
0287デフォルトの名無しさん
NGNGだーかーらー、>>198- を見れと。同じ課題やった君の友人がいるから。
0288デフォルトの名無しさん
NGNGもう一度訊いてたりしてw
0289デフォルトの名無しさん
NGNG(・3・)アルェー
それのどこが O(log n)???
O(n)にしか見えないYO!
0290デフォルトの名無しさん
NGNGヤコビ法とガウス・ザイデル法のそれぞれで
連立3元1次方程式を解くプログラムをつくりなさい。
ただし、途中の解の近似値も出力されるようにすること。
0291デフォルトの名無しさん
NGNGどうもありがとうございます。
しかし書籍に載っているコードが動作しないなんてどういうことなんだ。。
やさしいC++ってやつのサンプルですけどこの本だめですかねぇ。。?
配列やらポインタやら一応覚えた気でいるけどもう少しやりたいので完全な素人ではないけど初心者向けみたいな書籍ってないですかね〜
って板違いですかな。
0292デフォルトの名無しさん
NGNGせめてその数式を書いてください。
屋媚法とかガウス・財出るほうを調べるのはプログラムのスキルとは違うと思うので…
0293デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=105
に置いときますた。
収束しない場合の扱いとか、解が 0 になって errmax がとち狂ったりする
のは適当に書き直してください。
なお、>>292 にもあるとおり、数学計算の問題の場合は、どんな計算なのか十分に
説明してくれないと、知ってる人しかできないので、その辺よろしく
0294デフォルトの名無しさん
NGNGコンパイルエラーはコンパイラが腐ってるだけ。
それとは全く別に,例えば p1++.setX(-1) が変になるから糞。
http://pc5.2ch.net/test/read.cgi/tech/1083665944/
0295デフォルトの名無しさん
NGNGどうもありがとうございます。
以後気をつけます。
0296デフォルトの名無しさん
NGNGプッ
unsigned int uint_power(unsigned int a, unsigned int n)
{
if(n == 0)
return 1;
if(n == 1)
return a;
int tmp = unit_power(a, n / 2);
return n % 2 ? tmp * tmp * a : tmp * tmp;
}
0297high
NGNGデータの個数と,その個数分の整数データが保存されているファイル(データ例)を読み込み,データを木の節点に保存する,各データがどの節点に保存されるかは任意
とする.
このとき,ユーザがキーボードで前順,中順,後順を選択すると,その順で木をなぞる(データを画面上に順に表示する)プログラム order.cを作成せよ.(表示するの
はデータの値の大小順ではないことに注意せよ.)
データ例
8
3 7 5 8 2 1 4 9
0298デフォルトの名無しさん
NGNG0299デフォルトの名無しさん
NGNGファイル入力が分からないw
0300デフォルトの名無しさん
NGNG0301デフォルトの名無しさん
NGNG不備があるため結果が得られません。
間違いを指摘して修正しなさい。
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(){
int i,me,j,n;
int a[6];
float b[6];
srand(time(NULL));
for(j=0;j<6;j++){
a[j]=0;
}
続く
0302デフォルトの名無しさん
NGNGscanf("%d",&n);
for(i=0;i<n;i++){
me=rand()%6;
switch (me){
case 1:a[0]+=1;break;
case 2:a[1]+=1;break;
case 3:a[2]+=1;break;
case 4:a[3]+=1;break;
case 5:a[4]+=1;break;
case 6:a[5]+=1;break;
}
}
for(j=0;j<n;j++){
b[j]=a[j]/n;
printf("%d の目の出る確率= %d\n",j,b[j]);
}
return(0);
}
どなたか助言お願いします。
0303デフォルトの名無しさん
NGNGb[j]=a[j]/n;
printf("%d の目の出る確率= %d\n",j,b[j]);
}
n回まわすとかぶっちゃけありえない。
0304デフォルトの名無しさん
NGNGすいません、タイプミスでした
おっしゃる通り、
for(j=0;j<6;j++){
です。
その他で何かあったらお願いします。
0305デフォルトの名無しさん
NGNG↑
%f
0306デフォルトの名無しさん
NGNG0307デフォルトの名無しさん
NGNG0308デフォルトの名無しさん
NGNG↑
j+1
0309デフォルトの名無しさん
NGNGfor文で特定の回数繰り返しprintf関数を使って出力するときに
scanf関数で出力ごとに独自の値を入力できるようにするにはどうすればいいのでしょうか
1つ目の値 **
2つ目の値 ++
3つ目の値 ==
**、++、==はscanf関数を使用して入力した値です
何方かご教授願います
0310301
NGNG>>306
>>307
>>308
ご教授ありがとうございます。
>>307
caseで指定した値も全部1大きすぎるとは、具体的にどういうことなんでしょうか?
知識不足ですみませんです。
0311サイコロ1
NGNGfor文の中のrand()の値が一定になってしまうようです。どうすればよいのでしょうか?
0313デフォルトの名無しさん
NGNG日本語が不明瞭でよく分からないけど、要するに"nつめの値 "と表示してから
配列の n 番目に値を読み込みたいって事?
0314サイコロ2
NGNG#include <stdlib.h>
#include <time.h>
int main(){
int i,me,j,h;
int a[6];
float b[6],n;
srand(time(NULL));
for(j=0;j<6;j++){
a[j]=0;
}
printf("繰り返しの回数<=30000\n");
printf("サイコロをふる回数は:");
scanf("%d",&n);
for(i=0;i<n;i++){
me=rand()%6;
switch(me){
case 0:a[0]+=1;break;
case 1:a[1]+=1;break;
case 2:a[2]+=1;break;
case 3:a[3]+=1;break;
case 4:a[4]+=1;break;
case 5:a[5]+=1;break;
}
}
for(j=0;j<6;j++){
b[j]=a[j]/n;
printf("%dの出る目の確立=%f\n",j,b[j]);
}
return(0);
}
0315デフォルトの名無しさん
NGNGrand()%6 は、6で割ったあまりなので 0〜5 の範囲しか取らない。しかし
case では、1〜6 で指定しているので case 「6」 (a[5]) には絶対にこない。
0316HSPは万能
NGNGじゃなかったか。
b[j]=(float)a[j]/n;
これでも駄目か?
あと、switchはいらない。↓で十分。
for(i=0;i<n;i++)
a[rand()%6]++;
0317デフォルトの名無しさん
NGNG>switch(me){
>case 0:a[0]+=1;break;
>case 1:a[1]+=1;break;
>case 2:a[2]+=1;break;
>case 3:a[3]+=1;break;
>case 4:a[4]+=1;break;
>case 5:a[5]+=1;break;
>}
a[me]++;
1文ですむでしょ
0318サイコロ
NGNG本当にすみません。
0319デフォルトの名無しさん
NGNGfloat n を scanf("%d") で読み込んじゃまずいでしょ。
0320サイコロ
NGNGとしてみましたがダメみたいです
0321309
NGNGいえ、"nつ目の値"と固有の値をそれぞれfor文でn番目まで読み込ませたいのです
int z,a;
for(z=1;z<=3;z++){
printf("%dつ目の値 ",z);
scanf("%d",a);
}
でaの部分を表示されるたびに打ち込めるようにしたいのです。
なんとなく伝わったでしょうか・・・?
0322HSPは万能
NGNGそれだな。
↓これでできるはず。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(){
int i,n,a[6]={0};
srand(time(NULL));
printf("繰り返しの回数<=30000\n");
printf("サイコロをふる回数は:");
scanf("%d",&n);
for(i=0;i<n;i++)
a[rand()%6]++;
for(i=0;i<6;i++)
printf("%dの出る目の確立=%f\n",i,(float)a[i]/n);
return 0;
}
0324デフォルトの名無しさん
NGNGa の部分ってのは、配列になってるの?それともばらばらの変数?
配列になってると仮定すると、↓で、 1番目の値を a[0]、2番目の…(ry に読み込む。
int z,a[3];
for(z=1;z<=3;z++){
printf("%dつ目の値 ",z);
scanf("%d",&a[z-1]);
}
0325サイコロ
NGNGみなさん、ほんとうにありがとうごさいました!!
0326デフォルトの名無しさん
NGNGとりあえず
確立→確率
は直しておこう。どんなに頑張ってもコンパイラは教えてくれないバグ(w
0327デフォルトの名無しさん
NGNG「0」 の目が出る確率は 0 だけど、その辺は直した?
0329サイコロ
NGNG本当にありがとございましたm(--)m
0330デフォルトの名無しさん
NGNG配列やってないとすると、switch() もやってないのかな?そうすると変数を a, b, c として
d でいったん入力を受け取って、
int z,a,b,c,d;
for(z=1;z<=3;z++){
printf("%dつ目の値 ",z);
scanf("%d",&d);
if(z==1)
a=d;
if(z==2)
b=d;
if(z==3)
c=d;
}
# 良い子はまねをしないでください系のコードになったかも。
0331309
NGNGif、switch、for文の順で習いました。
この後にはここで出す値とifを使い、
それぞれに対応した場合分けの出来るようにするところまでが宿題です
これを使ってやってみます。ありがとうございました。
0332デフォルトの名無しさん
NGNG<問題>
############
#...#......#
..#.#.####.#
###.#....#.#
#....###.#..
####.#.#.#.#
#..#.#.#.#.#
##.#.#.#.#.#
#........#.#
######.###.#
#......#...#
############
この2次元配列で、#は迷路の壁、ドットは迷路の道を表す。配列の中でドットのあるところだけが通ります。
迷路の出口(1つあると仮定)に必ず行き着く簡単なアルゴリズムがある。このアルゴリズムでは出口がないと入り口に戻ってくる。
まず、右手で右側にある壁に触りながら前方に歩き出す。決して壁から手を離してはいけない。迷路が右に折れていたら壁に沿って右に曲がる。
このようにして進んでいけば、壁から手を離さないかぎり必ず迷路の出口に着く。
迷路を通り抜ける再帰関数mazetraverseを書け。この関数は引数として迷路の入った12×12の文字型配列およpび入り口の位置を受け取る。
mazetraverseは出口に向って進むたびに文字Xを置いていく。
出口に着いたら、迷路から脱出できたことを示すため迷路全体をプリントすること。
以上です。どうかよろしくお願いします。
0333デフォルトの名無しさん
NGNG文字列「Evercool」をメモリ領域に格納し、ポインタの概念を利用して文字列「Eeco」と「lorv」を
画面に表示するプログラムを作成せよ。
って言う問題です。
ポインタまで来て少しつまずいてます。
よろしくお願いします。
0334デフォルトの名無しさん
NGNGchar *str = "Evercool";
int i;
for(i=0; i<4; i++){ putchar(*str); str+=2; }
putchar('\n'); str--;
for(i=0; i<4; i++){ putchar(*str); str-=2; }
0335デフォルトの名無しさん
NGNG選んで飛び移る(対象単純ランダムウォーク)とき、再帰確率をシミュレーション
によって求めるには?
3次元までは分かるがd次元に拡張する良い方法はないかのう…。
0336デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=106
に置いておきますた。
なお、以下の仮定が外れていたら適当に修正してください。
1. 通り抜けた部分に置いた X マークは道が間違っていても消さなくていい。
2. 呼び出し元の迷路データを書き換えても良い。
3. 迷路のゴールは端にある。
0337デフォルトの名無しさん
NGNG再帰確率とかよくわからなかったけど、
ようするに一度通った座標を覚えておけばいいのだろ?
#include <vector>
#include <map>
#include <iostream>
#include <iterator>
#include <cstdlib>
using namespace std ;
int main()
{
const int d = 6 ;
const int loop_num = 1024 * 8 ;
vector<int> pos( d, 0 ) ;
map<vector<int>,int> count ;
for( int i = 0 ; i < loop_num ; i++ ){
if( rand() % 2 ) ++pos[ rand() % d ] ;
else --pos[ rand() % d ] ;
++count[pos] ;
}
cout << "ゆにーくな座標の数/移動した数="
<< count.size() << "/" << loop_num << "="
<< static_cast<double>( count.size() ) / loop_num
<< endl ;
return 0 ;
}
0338デフォルトの名無しさん
NGNG文字を含む)の文字列を表示するプログラムです.空欄を埋めてプログラムを完成してください.
#include <iostream.h>
#define STR_LENG 100
char *wherechar(char *p,char ch);
void main(void)
{
char str[STR_LENG+1], ch, *p;
cout << "文字列入力"; cin >> str;
cout << "検索文字?"; cin >> ch;
if((p=wherechar(str,ch)) == NULL){
cout <<"文字"<< ch << "は見つからない"<<endl;
}
else{
cout<<"文字"<<ch<<"の後ろの文字列は"<<p<<endl;
}
}
char *wherechar(char *p,char ch)
{
//埋めていただきたいところ
}
という問題です。よろしくお願いします。
0339デフォルトの名無しさん
NGNGfor(;*p;p++)
if(*p==ch)
return p;
if(!ch)
return p;
return NULL;
0340疲
NGNG(**は数字の1から15)
以外しか読み込めないように制御する式はどうやったら良いんでしょうか?
ずっと悩んでいるんですが教えてください。
0341デフォルトの名無しさん
NGNGを解いてください。
0342デフォルトの名無しさん
NGNG0343デフォルトの名無しさん
NGNGint a[2][3];
こうすれば確保されます。
0344デフォルトの名無しさん
NGNG>>343
ありがとうございます。
では、二次元配列のメモリの動的確保ってできますか?
0345デフォルトの名無しさん
NGNG0346デフォルトの名無しさん
NGNG順番にやるだけ
0347346
NGNG0348デフォルトの名無しさん
NGNGえっと、mallocでやりたいんですけども…
0349デフォルトの名無しさん
NGNGと
どうやるんですか
は全然違う質問です。
0350デフォルトの名無しさん
NGNG>>349
質問のしかたが悪く、すみませんでした。
0351デフォルトの名無しさん
NGNG>順番にやるだけ
>念のため補足すると、高次からね。
int **a,i;
a=(int *)malloc(sizeof(int *)*2次の大きさ);
for(i=0; i<2次の大きさ; ++i) a[i]=malloc(sizeof(int)*1次の大きさ);
0352デフォルトの名無しさん
NGNGa=(int **)malloc(sizeof(int *)*2次の大きさ);
ぢゃねーのか?
0353デフォルトの名無しさん
NGNG0354デフォルトの名無しさん
NGNG0355デフォルトの名無しさん
NGNGmalloc(n*m*sizeof(int)) じゃないのか?
0356デフォルトの名無しさん
NGNGint a[2][3];
って話しか出てない気がするのはもれの目が悪いせいか?もまえがデムパなのか?
0357デフォルトの名無しさん
NGNG0358デフォルトの名無しさん
NGNG0359デフォルトの名無しさん
NGNGこの場合のjとiのメモリを動的確保したいのですが、
どうすればいいのでしょうか?
0360デフォルトの名無しさん
NGNGi=malloc(sizeof(int)*1);
j=malloc(sizeof(int)*1);
ぢゃないのか?
0361デフォルトの名無しさん
NGNGありがとうございます。
intの箇所をcharにしてもできますか?
0362デフォルトの名無しさん
NGNGchar *i,*j;
i=malloc(sizeof(char)*1);
j=malloc(sizeof(char)*1);
別に問題なかろ
0363デフォルトの名無しさん
NGNG>例えばg[j][i]という配列があるとします。
>この場合のjとiのメモリを動的確保したいのですが、
質問文章が全然ダメなんだが、
意図はg[0][0]〜g[i][j]の配列を確保したい、って事ぢゃねーのか?
iとiのメモリを動的確保したいのではなく(w
0364デフォルトの名無しさん
NGNG質問内容がめちゃくちゃですみません。
363さんが言っている
>g[0][0]〜g[i][j]の配列を確保したい
ってことをしたいのですが、どうすればいいのでしょうか?
0365363
NGNG>351,352 読め
>355ぢゃねーぞ(w
0366デフォルトの名無しさん
NGNGそうかな?
ま、364が何をしたいのかは、この状態ではわからんけどな。
0367デフォルトの名無しさん
NGNG>g[0][0]〜g[i][j]
って話しか出てない気がするのはもれの目が悪いせいか?もまえがデムパなのか?
0368デフォルトの名無しさん
NGNG0369デフォルトの名無しさん
NGNGその二つを一緒にするのは配列とポインタを混同するようなものかと。
0370デフォルトの名無しさん
NGNG*(p+i) としようが p[i] としようが同じ訳なんだが、
違う意味の所もあるしな
0371デフォルトの名無しさん
NGNG近似計算する関数定義、
double exp2(double x);
を作成し、eの値を求めよ。
この課題をどなたかお願いします。力不足ですみません
0372デフォルトの名無しさん
NGNGあと求めるのはdoubleの精度まででいいのか?
0373デフォルトの名無しさん
NGNG>372 にもあるとおり、数学計算の問題の場合は、どんな計算なのか十分に
説明してくれないと、知ってる人しかできないので、その辺よろしく
double exp2(double x)
{
double n = 0;
double n_kaijo = 1;
double oldans;
double x_njo = 1;
double newans = 0;
double err, e = (1/(10000000000.0));
do {
oldans = newans;
newans = oldans + x_njo / n_kaijo;
n++;
n_kaijo *= n;
x_njo *= x;
err = fabs((newans - oldans) / newans);
} while (err > e);
return newans;
}
0374デフォルトの名無しさん
NGNG課題
n次正方行列x、yの積を行列zに求める関数mul_mat()を定義せよ。
定義した関数により、
2 1 -3 -1 1 -2
5 -7 1 1 2 -1 ←三次正方行列同士の積
0.5 4 -2 3 -2 1
を計算し、結果を印刷せよ。
0375374
NGNG#define N 5
double a[N][N]={{2.0,1.0,-3.0},{5.0,-7.0,1.0},{0.5,4.0,-2.0}};
double b[N][N]={{-1.0,1.0,-2.0},{1.0,2.0,-1.0},{3.0,-2.0,1.0}};
double c[N][N];
void mul_mat(double z[][N],double x[][N],double y[][N],int n)
{
int i,j;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
z[i][j]=x[i][j]*y[i][j];
}
void print_mat(double x[][N],int n)
{
int i,j;
for(i=0;i<n;i++){
for(j=0;j<n;j++)
printf("%5f",x[i][j]);
printf("\n");
}
}
0376374
NGNG{
print_mat(a ,3);
printf("\n");
print_mat(b ,3 );
printf("\n");
mul_mat(c ,a ,b ,3);
printf("\n");
print_mat(c ,3 );
}
>>374の行列がずれてしまって読みにくくてすみません。
0377デフォルトの名無しさん
NGNG行列の積は、成分であらわすと
z_ij = Σ a_ik*b_kj
だから、mul_mat 内で新しい for ループを使って k を 0〜2 間で動かして、積の総和を
z_ij に入れてやればいいかと。
ちなみに N の 5 は 3 の間違い?
0378374
NGNGforループを使って考えてみます。
また分からなかったら教えてください。m(_ _)m
0379デフォルトの名無しさん
NGNGすみません。マナー違反でした、、
そして、ありがとうございます!
まさかこんなに早いとは思いませんでした、感謝です。
めげずにC言語がんばります
0380374
NGNGvoid mul_mat(double z[][N],double x[][N],double y[][N],int n)
{
int i,j,k;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
for(k=0;k<=0;k++)
z[i][j]=x[i][k]*y[k][j]+x[i][k+1]*y[k+1][j]+x[i][k+2]*y[k+2][j];
}
としたら、結果は正しく出たのですが、
無駄が沢山あるように思えます。もう少しスマートに出来ないでしょうか?
0381374
NGNG{
int i,j,k;
k=0;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
z[i][j]=x[i][k]*y[k][j]+x[i][k+1]*y[k+1][j]+x[i][k+2]*y[k+2][j];
}
としてみました。連レスすみません。
もっと良いのがあったらご教授下さい。
有難う御座いました!!
0382デフォルトの名無しさん
NGNGdouble maxi(double a,double b);
と小さい方の数に対応する関数定義
double mini(double a,double b);
を作成し、それらの動作テストのためのプログラムを作成せよ
どうかお願いしますm(__)m
0383デフォルトの名無しさん
NGNGせっかく k のループ入れたんだから、ループさせようよ(^^;;;
void mul_mat(double z[][N], double x[][N], double y[][N], int n)
{
int i, j, k;
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
z[i][j]=0; /* まず積算前に初期化しておく */
for (k = 0; k < n; k++)
z[i][j] += x[i][k] * y[k][j]; /* k ごとに積算していく */
}
}
}
0384デフォルトの名無しさん
NGNG0386デフォルトの名無しさん
NGNG絶対必要
もし、c=a*b を計算して表示した後に、今度はc=b*a を計算しようとかしたら、
c には前の計算結果が残っているから、0 で初期化しないと、それも足しちゃうよ?
# ついでに言うと、>380-381 がだめな理由は、3次以外のn次正方行列(→問題
# 参照)でおかしくなるから
0387374
NGNGよく考えます!!
0388デフォルトの名無しさん
NGNG332です。どうもありがとうございました。助かりました!またお願いします。
0389デフォルトの名無しさん
NGNG二つの整数を入力してください。
整数A:40
整数B:45↓
平均値の符号を反転した値は-42です。
平均値の符号を反転した値って何?どうやって計算するの?教えてください
0390デフォルトの名無しさん
NGNG0391デフォルトの名無しさん
NGNG-a
0392389
NGNG実行結果
長さcmを入力してください:25.4↓
それは10.000000インチです。
cmの単位を、インチに変換した値にするんですけどどうすればいいんでしょうか
0393デフォルトの名無しさん
NGNG0394デフォルトの名無しさん
NGNG0395デフォルトの名無しさん
NGNG>平均値の符号を反転した値って何?
類推できないのかよ。恐ろしいな。
int 切捨てになってること以外は、小学生向けの知能テストのレベルだよ。
0396デフォルトの名無しさん
NGNG0397デフォルトの名無しさん
NGNG0398デフォルトの名無しさん
NGNG友達に聞くほうが早いで。
0399デフォルトの名無しさん
NGNGint x,yをメンバとする構造体coordinateを作成し、coordinate positionと
color lightをメンバとする構造体dotinfoを定義せよ
(@�u@ .:;)御願い
0400デフォルトの名無しさん
NGNG>(1)構造体の型枠(テンプレート)の宣言
ここ見たらできるでしょう。めちゃくちゃ簡単ですよ。
0402ぼるじょあ ◆yBEncckFOU
NGNG無限の知識と無尽蔵の体力を持ってるんだYO!24時間、いつでも質問オッケー♪
(・3・) エェー こっちが嫌になるほど質問しろYO!
名前欄に「ぼるじょあ#ぶるじょあ」って書けば、キミも今日から ぼるじょあ◆yBEncckFOU だYO!
名前欄に「ぼるじょあ#セV8cLFセz」って書けば、キミも今日から ぼるじょあ◆yEbBEcuFOU だYO!
*ぼるじょあ◆yBEncckFOUはコテハンじゃないYO!
*ぼるじょあ◆yBEncckFOUはいつだって全力投球ダジェ!!
*ぼるじょあ◆yBEncckFOUは共同体で連続体で群生体だYO!
*ぼるじょあ◆yBEncckFOUはみんななれるからイイぼるじょあも悪いぼるじょあもいるYO!
*ぼるじょあ◆yBEncckFOUはエムエクースとニーはよくわからないYO!
*ぼるじょあ◆yBEncckFOUは2ちゃんねるの人気者だYO!
*ぼるじょあ◆yBEncckFOUはちょっと基地外はいっているYO!
0403デフォルトの名無しさん
NGNG>int red,green,blueとdouble brightnessをメンバとする構造体colorと、
struct color {
int red, green, blue;
double brightness;
};
>int x,yをメンバとする構造体coordinateを作成し、
struct coordinate {
int x, y;
};
>coordinate positionと
>color lightをメンバとする構造体dotinfoを定義せよ
struct dotinfo {
coordinate position;
color light;
};
もう>400の勉強しに逝ってしまったかな?
0404デフォルトの名無しさん
NGNG・文字列を受け取り、その中の最小(コード)の文字を返す関数min
よろしくお願いします。どう考えるのかご教授下さい。
0405デフォルトの名無しさん
NGNGその値を近似計算する関数定義
double exp2(double x);
を作成しeの値を求めよ
これを誰かお願いします。
0406デフォルトの名無しさん
NGNG�A検索したい文字列をキー入力
�Bマッチする文字列のメモリ番地の範囲を出力
というものなのですが、お願いします。
メモリ番地の先頭番地だけの出力ではなくお願いします。
「あいうえおえおえお」とかの場合で検索語「えお」ならば
1つめの番地 4〜5
2つめの番地 5〜6
3つめの番地 6〜7 という感じです。
0407デフォルトの名無しさん
NGNG引数2 int型 税率(%)
戻り値 int型 税込価格
引数から税込価格の計算をする。
main
整数型変数に税抜き価格を入力する。
整数型変数に税率を入力する
gctpriccを用いて税込価格を計算する。
税込価格を表示する。
関数って難しいです。おながいします。
0408デフォルトの名無しさん
NGNG同級生がこのスレでもう聞いてるよ。
0409デフォルトの名無しさん
NGNGC++でいいのかな?
#include <iostream>
using namespace std;
char min(char[]);
int main() {
char test[] = "fieiVj aEFLjfQelha BHue ha";
cout << min(test) << endl;
return 0;
}
char min(char s[]) {
char m = s[0];
int len = strlen(s);
for (int i = 1; i < len; i ++)
if (s[i] >= 'A' && s[i] <= 'z' && s[i] < m)
m = s[i];
return m;
}
アルファベットに限定する必要ないなら最後の方の if の中身は
if (s[i] < m) だけでいいでしょう。
Cだったら・・・自分で書き換えて。
0410デフォルトの名無しさん
NGNG>371- あたりを参照のこと。
>>404
#include <stdio.h>
char min(char const *str)
{
unsigned char lowest;
for(lowest = 0xff;*str != 0; str ++)
{
if (((unsigned char) *str) < lowest)
lowest = *str;
}
return lowest;
}
int main()
{
char s[] = "The quick brown fox jumps over the lazy dog.";
printf("'%s'の最小のコード: '%c'\n", s, min(s));
return 0;
}
0411デフォルトの名無しさん
NGNG0412デフォルトの名無しさん
NGNG熾烈な争いだ・・・。
0413デフォルトの名無しさん
NGNGかぶりませんように・・・(ドキドキ)。
#include <iostream>
using namespace std;
int gctpricc(int, int);
int main() {
int zenuki;
cout << "税抜き価格は?";
cin >> zenuki;
int zeritsu;
cout << "税率は?";
cin >> zeritsu;
cout << "税込みで" << gctpricc(zenuki, zeritsu);
cout << "円かよ〜ヽ(`Д´)ノウワァァン" << endl;
return 0;
}
int gctpricc(int zenuki, int zeritsu) {
double zekomi = static_cast<double>(zenuki);
zekomi *= 1.0 + static_cast<double>(zeritsu) / 100;
return floor(zekomi);
}
ところで gctpricc ってなんだぁ!?
もしかして getprice だったのかな・・・?
0414デフォルトの名無しさん
NGNG本当に ascii コードじゃなくて日本語でやるの? それとも ascii だけでいいの? まさか混在?
日本語だとしたら、文字コードとかはどうなってる?
もしかして wcs <-> mbs とかいう問題?
0415406
NGNG日本語じゃなくて良いんです。すいませんでした。
お願いします。
0416デフォルトの名無しさん
NGNGint length( list *pt),リスト要素の数字の和を計算する関数 int sum( list
*pt ) および2つのリストのそれぞれの対応する要素の和を要素するリストを計算する
関数 list *add_list( list *list_a, list *list_b) をつくれ.ただし,
add_listについては,長さが一致しない場合には短い方に値0の要素を適当に後ろに詰
めるようにして長さを一致させたリストとの和をとると考えよ
0417デフォルトの名無しさん
NGNGここを見てみると strstr 関数は日本語入ってても大丈夫そうだぞ。
http://ryu8.pinoko.jp/memo/cpp/SerchTxt/SerchTxt.txt
0418417
NGNGttp://ryu8.pinoko.jp/memo/cpp/SerchTxt/
0419デフォルトの名無しさん
NGNGいや、文字コード次第だが境界の問題がある。要はある字の第二バイトと次の字の
第一バイトが検索文字の第一、第二バイトに一致する可能性がある。
加えて、>406 の問題文を見ると漢字一個で番地が 1 増えてるし、ascii と混ざると
めんどい事になりそう。
0420デフォルトの名無しさん
NGNG>線形リストが与えられたとき
その線形リストについてもうちょっと詳しく書いて。
先頭のノードはダミーなのかそうじゃないかとか
終端のノードはNULLをさしてるかどうかとか
だいたいメンバーに要素の長さを保持しておくんだったらlength関数めっちゃ短いし。(一行?)
いやむしろメンバーに和の値を保持しておくんだったらsumもいらないに近いな・・・(あんまそんなことしないと思うけど)。
0422406
NGNGキー入力でお願いしたいんですが・・・
配列とかを使うっぽいんですが分かりません。
どなたか・・・どなたか・・・・(´ω`)
0423デフォルトの名無しさん
NGNGiswap(a,b)
を実現せよ
誰か助けてくださいm(__)m
0424423
NGNGmain()も作成せよとあります。
間に合ったかな、、
0425423
NGNGmain() ×
0426デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=107
に置いておきますた。
入力する文字列は、あくまで一続きであると仮定。空白で区切られているとそこで
読み込みを打ちきります。また、「文字の番地」の意味を「先頭から何文字目か」の
ことと解釈して作ったので、違ってたら適当にいじってください。
0427デフォルトの名無しさん
NGNG0428デフォルトの名無しさん
NGNGw=a
a=b
b=w
a,bに適当な数字入れてやってみ
0429デフォルトの名無しさん
NGNG#include <stdio.h>
#include <stdlib.h>
struct list{
int no;
struct list *next;
};
typedef struct list list;
list *add_to_list( int no, list *l )
{
list *pt = (list *)malloc( sizeof(list) );
pt->no = no;
pt->next = l;
return pt;
} /* add_to_list */
0431デフォルトの名無しさん
NGNGint main()
{
list *pt = NULL;
list *ptx;
int i;
/*---- make a list ----*/
for ( i = 0; i < 20; i++ ) pt = add_to_list( i, pt );
/*---- print the list ----*/
ptx = pt;
while ( ptx != NULL ){
printf( "%d:", ptx->no );
ptx = ptx->next;
} /* while */
printf( "\n" );
/*---- free the list ----*/
ptx =pt;
while ( ptx != NULL ){
list *n = ptx->next;
free( ptx );
ptx = n;
} /* while */
return 0;
} /* main */
0432423
NGNG#define iswap(a,b) としてそのあとに
w=a
a=b
b=w
でいいんですか?
0433デフォルトの名無しさん
NGNGマクロの使い方がまったく分かってないでしょ。
たとえば、こんな感じ。
↓
#define iswap(a,b) ¥
do {¥
int temp = a;¥
a = b;¥
b = temp;¥
} while (0)
0434デフォルトの名無しさん
NGNG#define iswap(a,b) w=a ,a=b, b=w;
int main(void)
{
int a , b,w;
a = 4, b = 6;
printf("aは%d bは%d\n", a,b);
iswap(a,b);
printf("aは%d bは%d\n", a,b);
return 0;
}
>>432
ちっとは脳みそ使ってみたらどうなんだ
0435423
NGNGおっしゃる通りマクロについて無知です
この分野の難解さにがくぜんとしてます、、
教えてくれて感謝です!
0436399
NGNGlightのメンバ変数red,green,blueの初期値を20,40,90とし、
positionのメンバ変数x,yの初期値を240,180とするプログラムを作成せよ
よろしゅうたのんます
0438423
NGNGはかなり理解するのに苦労しました?
自分はかなり苦労してるんでまじでアフォなんじゃと悩んでます
0439406
NGNG0440デフォルトの名無しさん
NGNG横着せんと、質問以降のレスはちゃんと全部嫁。特に >426
0441デフォルトの名無しさん
NGNGCPad for Borland C++コンパイラーってソフトで実行すると
致命的エラー F1003 C:\borland\bcc55\Include\stdcomp.h 5: error 指令: Must use C++ for STDCOMP.H
と出ますた。
ともかく乙です。ありがとう。
「"円かよ〜ヽ(`Д´)ノウワァァン"」には笑ったYO!
0442デフォルトの名無しさん
NGNGかけらも。
0443デフォルトの名無しさん
NGNGどこまで対処すればいいのかよくわからんので2バイト文字に変換して処理するようにした。
入力文字数を限定したくないのでC++ね。
#include<iostream>
#include<string>
using namespace std;
wstring to_wide(std::string const & s){//2バイト文字に変換
int len = mbstowcs(NULL, s.c_str(), s.size());
wchar_t * buffer = new wchar_t[len + 1];
mbstowcs(buffer, s.c_str(), len);
wstring result(buffer, len);
delete[] buffer;return result;
}
int main(){
string source,pattern;
string::size_type pos=0;//検索場所
int hitNum=1;
cin>>source;//ソース文字列を入力
cin>>pattern;//検索文字列を入力
wstring wSource=to_wide(source),wPattern=to_wide(pattern);
while(1){
pos=wSource.find(wPattern,pos);
if(pos==string::npos)break;//検索終了
int start=(int)&wSource[pos],end=start+wPattern.size()*sizeof(wchar_t)-1;
cout.unsetf(ios::oct);cout.unsetf(ios::dec);cout.setf(ios::hex|ios::showbase);
cout<<hitNum<<"つめの番地:"<<start<<"〜"<<end<<endl;//番地を16進数で画面に出力
pos++;hitNum++;
}
return 0;
}
0444デフォルトの名無しさん
NGNGこちらの環境が腐ってるのでしょうか? 。・゚・(ノД`)・゚・。
D:\tmp\syuku>g++ -g 406wc.cc
406wc.cc:4: error: syntax error before `const'
406wc.cc:7: error: `len' was not declared in this scope
406wc.cc:8: error: `s' was not declared in this scope
406wc.cc:8: error: `len' was not declared in this scope
406wc.cc:8: error: ISO C++ forbids declaration of `mbstowcs' with no type
406wc.cc:8: error: `int mbstowcs' redeclared as different kind of symbol
/usr/include/stdlib.h:93: error: previous declaration of `size_t
mbstowcs(wchar_t*, const char*, unsigned int)'
406wc.cc:8: error: initializer list being treated as compound expression
406wc.cc:9: error: `len' was not declared in this scope
406wc.cc:9: error: 'wstring' is used as a type, but is not defined as a type.
406wc.cc:10: error: syntax error before `delete'
406wc.cc: In function `int main()':
406wc.cc:21: error: `wstring' undeclared (first use this function)
406wc.cc:21: error: (Each undeclared identifier is reported only once for each
function it appears in.)
406wc.cc:21: error: syntax error before `=' token
406wc.cc:23: error: `wSource' undeclared (first use this function)
406wc.cc:23: error: `wPattern' undeclared (first use this function)
D:\tmp\syuku>
0445デフォルトの名無しさん
NGNG#include <stdlib.h>
typedef struct {
int value;
list *next;
} list;
int length(list *pt){ int i;for(i=0; pt; ++i, pt=pt->next); return i; }
int sum(list *pt){ int s; for(s=0; pt; s+=pt->value, pt=pt->next); return s; }
list *add_list(list *pa, list *pb){
int a=length(pa); int b=length(pb); int len=a>b?a:b;
list *ret=malloc(sizeof(list)*len);
for(int i=0; i<len; ++i, pa=pa?pa->next:NULL, pb=pb?pb->next:NULL){
ret[i].value=(pa?pa->value:0)+(pb?pb->value:0); ret[i].next = ret+i+1;
}
ret[len-1].next = NULL;
return ret;
}
0446406
NGNGで、機動させて文字を入力すると”Error: 入力 stdin が変です”
というエラーしかでませんでした。(´ω`)
プログラムは動いてるんですが・・・
>443
有り難うございます。ですが、あまりに高度な内容?
で、全く理解できません。
0447426
NGNG以下のコード (main() 内二箇所)を
if (fgets(buff, sizeof(buff), stdin) == 0) {
fprintf(stderr, "Error: 入力 stdin が変です。。。\n");
return 1;
}
このコードに置き換えるとどうなりますか? うまくいけば原因を表示してくれるんですが…
if (fgets(buff, sizeof(buff), stdin) == 0) {
if (feof(stdin))
fprintf(stderr, "Error: 入力 stdin が変です: eof\n");
if (ferror(stdin)) {
fprintf(stderr, "Error: 入力 stdin が変です: %s\n",
strerror(errno));
}
return 1;
}
0448デフォルトの名無しさん
NGNG文字列は必ず最後に\0が付くといってみる。
0449デフォルトの名無しさん
NGNG0450406
NGNGというか自分が未熟なもので良く分からないからなんですが・・・
426さんのプログラムはきちんと動いているみたいです。
ただ文字を打ち込むと
if (fgets(buff, sizeof(buff), stdin) == 0) {
fprintf(stderr, "Error: 入力 stdin が変です。。。\n");
return 1;
の部分が表示されるので・・・でも自分では何がなんだか・・・
0451426
NGNGエラーはコンパイル時ですか? それとも実行時?
どんなエラーがでますか? エラーを「そのまま」コピペしてください。
# 後よろしければ参考程度に OS とコンパイラの名前も。
0452426
NGNG> 置き換えたらただのエラーで機動しませんでした。
についての質問です。
0453デフォルトの名無しさん
NGNGちなみにgcc3.3.1
0454406
NGNGOSはXPです。エラーメッセージというか・・・
ifで飛ばされてError: 入力 stdin が変です。。。
の部分が表示されるので、プログラム自体は動いてます。
0455デフォルトの名無しさん
NGNGttp://www.hi-ho.ne.jp/jun_miura/bccdev.htm
エラーは起こらなかったけど?
0456406
NGNG455さんのコンパイラは無料ですか?
そっちにしようかな・・・
Light Cはexeファイル作成したり作業が面倒なんですよね・・・
まぁ426さんのがそのまま動くのであればコチラに問題ある訳ですからね・・・。
0457404
NGNGわざわざ解いて頂いて、どうもありがとうございました。
ノートに書き写したので、これからじっくり考えてみます。
>>448様
優しいヒントをありがとうございます。文字列の問題が出題
された時には気をつけて解くようにします。
0458デフォルトの名無しさん
NGNGタダで使えるBorland C++ Part3
http://pc5.2ch.net/test/read.cgi/tech/1054390397/
0459C初心者
NGNGプログラムをつくってください。
e^x= 1+x+x^2/2!+x^3/3!+…
(forループのループ変数を使って)
また,x=1の場合について,nの値が1から20までのそれぞれの
計算結果と真値e=2.718281828459045...とを比較して下さい.
という問題です。
何をforループのループ変数にすれば良いのかも分かりません。
どなたか助けて下さい。
0460デフォルトの名無しさん
NGNGこの学校はダメ生徒ばっかりだな
0461デフォルトの名無しさん
NGNG>371- あたりを参照のこと。君で三人目
0462デフォルトの名無しさん
NGNG↓こんな感じかなぁ。
double exp(double x)
{
double e = 1;
double xn = x;
double factorial = 1;
for(int i=2; i<MAX; ++i)
{
e += xn / factorial;
xn *= x;
factorial *= i;
}
return e;
}
0463デフォルトの名無しさん
NGNGCX::DX=3 AH=42H AL=00H で INT 21H して返り値 DX:AX != 3 でエラーっぽいです。
要約すると、標準入力をシークしようとして、シークできないって文句言ってます (・д・)ポカーン
406 氏へ:
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄」
―――――――――――――‐┬┘
|
____.____ |
| | | |
| | ∧_∧ | |
| |( ´∀`)つ ミ |
| |/ ⊃ ノ | | [LIGHT C]
 ̄ ̄ ̄ ̄' ̄ ̄ ̄ ̄ |
|
そんなコンパイラ、窓から投げ捨てろ!
0464デフォルトの名無しさん
NGNG文章を空白やカンマなどから判別して単語に分け、
かつ各単語の出現回数を計算して出現回数の多いものから順にトップ5の単語と
その出現回数を出力するプログラムを作りなさい。
・単語は空白から空白までの文字列を1つの単語とみなす。
('you your'の場合にはyouの個数は1カウントとする。)
・ポインタ変数を用いて作ること。
誰か助けてください・・・。
0466デフォルトの名無しさん
NGNG0467デフォルトの名無しさん
NGNG0468デフォルトの名無しさん
NGNG思わない。
C的にはぜんぜん初歩だし。むしろ数学の問題。
0469デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=108
回答貼りましたが、どうでもよさげな部分(ソート等)は一部C++です。
こんな課題が出るのならソート、一般的なデータ構造等はすでにやってるでしょうし、
以下のことが分かれば大丈夫だと思います。
文字列をスペースかカンマで区切る時はstrtokを使ったら楽。
あと、scanfだと空白を読みこめないので
getsを使う必要があるのも注意点です。
0470デフォルトの名無しさん
NGNG漏れの学校でも1年でやったが、一万桁は求める羽目になったぞ。
0471デフォルトの名無しさん
NGNGscanf()を使わないと言うのには賛同するが、
scnaf()で空白を読み込めないと言うのは嘘だし
gets()を勧めるのは如何な最中と。
0472471
NGNG0473デフォルトの名無しさん
NGNGおれはCで書いてみた
ttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=110
0474デフォルトの名無しさん
NGNGおれは STL 使って書いたので、たぶん課題としてはダメっぽいのでうpしません。
0475デフォルトの名無しさん
NGNGdouble frac(int n)
{
if(n == 1) return 1.0;
else return frac(n - 1) * n;
}
int main(void)
{
const double e = 2.718281828459045235360287471;
double exp1 = 1.0;
int n;
for(n = 1; n <= 20; n++)
{
exp1 = exp1 + 1.0 / frac(n);
printf("%.24f %2d %.24f\n", exp1, n, e - exp1);
}
return 0;
}
0476デフォルトの名無しさん
NGNGいまおじさんマになってる奴の中には
! の意味さえ教えりゃ小学校のうちから同等のことができた奴も多かろうて
同じ一年でも中学一年生にはきつかろうが
がっこでΣ習った奴はできなきゃあかんだろ
0478デフォルトの名無しさん
NGNGアドレスを出力せよ。出力されたアドレスを解析し、どのように割り当てが行われるか
考察せよ。
| 操作列1 | 操作列2 |
1 | 200バイト割当て | 200バイト割当て |
2 | 200バイト割当て | 200バイト割当て |
3 | 1で割当てた領域の開放 | 1で割当てた領域の開放 |
4 | 250バイト割当て | 150バイト割当て |
5 | 150バイト割当て | 2で割当てた領域の開放 |
6 | 2で割当てた領域の開放 | 250バイトの割当て |
7 | 200バイトの割当て | 200バイトの割当て |
0479デフォルトの名無しさん
NGNG文字列操作なんてC言語でやりたくねぇ・・・。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=111
>>474
STL使うのもありじゃない?
map使って既出単語の検索を高速化しましたとかやれば
それなりに評価してもらえそうな気が。
0480デフォルトの名無しさん
NGNGとりあえず、すべきことそのまんま書いてあるじゃん。
考察する部分が難しいって言うなら、とりあえず結果出してみて
アドレスがどうなったか書いてみ。
0481デフォルトの名無しさん
NGNGtemplate <> struct F<0>{
enum{ value = 1 };
};
template <int n> struct F{
enum{ value = F<n-1>::value * n };
};
template <int n> struct E;
template <> struct E<0>{
static inline double value(){ return 1; }
};
template <int n> struct E{
static inline double value(){ return E<n-1>::value() + 1 / (double)F<n>::value; }
};
#include <iostream>
int main(void){
std::cout << E<1>::value() << std::endl;
std::cout << E<2>::value() << std::endl;
std::cout << E<3>::value() << std::endl;
std::cout << E<4>::value() << std::endl;
std::cout << E<5>::value() << std::endl;
std::cout << E<6>::value() << std::endl;
std::cout << E<7>::value() << std::endl;
std::cout << E<8>::value() << std::endl;
std::cout << E<9>::value() << std::endl;
std::cout << E<10>::value() << std::endl;
}
0482デフォルトの名無しさん
NGNGJava 厨です。こういう例(というか templete の宣言例) 、はじめてみました。
とても面白いです。でも僕の脳には難解で、日常的に読みたくはないです
0483デフォルトの名無しさん
NGNG#include<stdio.h>
int A(int n)
{
if(n==0) return 0;
if(n==1) return 1;
return (A(n-1)+A(n-2));
}
main()
{
int n;
for(n=0; n<10; n++){
printf("A(%d) = %d\n", n, A(n));
}
}
0484デフォルトの名無しさん
NGNG#include<stdio.h>
int A(int n)
{
if(n==0) return 0;
if(n==1) return 1;
return (A(n-1)+A(n-2));
}
main()
{
char n;
for(n=0; n<10; n++){
printf("A(%d) = %d\n", n, A(n));
}
}
0485デフォルトの名無しさん
NGNG体積の異なる5個の球がある。それぞれの体積は、{1.20,3.65,2.70,8.93,7.62}である。
これらの値を配列に代入し、球の半径を求めよ。
お願いします。
0486デフォルトの名無しさん
NGNG遅れましたが、非常に助かりました。
ありがとうございます。
0487デフォルトの名無しさん
NGNGはい・・
0488デフォルトの名無しさん
NGNG#include <stdio.h>
main()
{
double taiseki[] = {1.20,3.65,2.70,8.93,7.62}
for(int i=0; i<5; i++)
{
printf("%f\n", sqrt(sqrt(taiseki[i] * 4.0 / 3.0 / M_PI));
}
}
0489464
NGNG>>473
>>479
本当にありがとうございます。
実は、構造体もソートもまだ習ってないのです。
2次元配列に単語を入れていき、それをまた一つずつ取り出して
新しい2次元配列にコピーしつつ出現回数をカウントしてました。
今回みなさんのを見て本当に勉強になりました。
まだ書いてる途中ですが、がんばってみようと思います。
ありがとうございました。
0490デフォルトの名無しさん
NGNGなんか計算間違ってないかい?
0491デフォルトの名無しさん
NGNG立方根の求め方が違う
0492デフォルトの名無しさん
NGNGどなたか、助けてください・・・。
0493デフォルトの名無しさん
NGNG#include <stdio.h>
#include <math.h>
int main(void)
{
double vol[5] = {1.20,3.65,2.70,8.93,7.62};
double r;
for(int i=0; i<5; i++)
{
r = pow(vol[i] * 3.0 / 4.0 / M_PI , 1 / 3.0);
printf("V=%.2f -> r=%f\n", vol[i], r);
}
return 0;
}
0494ぼるじょあ ◆yBEncckFOU
NGNG0495デフォルトの名無しさん
NGNG0497デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=112&fi=no
0498デフォルトの名無しさん
NGNG#include<stdio.h>
int main()
{
int an=1,an_1=1;
printf("%d %d ",an,an_1);
for(int i=0;i<10;i++)
{//とりあえず10ループ
int an_2=an+an_1;
printf("%d ",an_2);
an=an_1;
an_1=an_2;
}
return 0;
}
0499デフォルトの名無しさん
NGNGNバイト割り当て
C: char *x = (char *)malloc(N);
C++: char* x = new char[N];
領域の解放
C: free(x);
C++: delete[] x;
アドレスの出力
C: printf("%ld", (long)x);
C++: cout << (long)x;
0500デフォルトの名無しさん
NGNG真っ当なコンパイラで機動させたトコロ
きちんと動きました。やはりLIGHT Cは使えませんね・・・
>463さん
わざわざ面倒なことご苦労さんです。
で、動いたので良いのですが・・・
メモリ番地を出力して頂きたかったんです・・・(;´Д`)うは
勘違いしてお願いしていました・・・(´ω`)ショボーン
ex)1つめの単語は:1000〜1001番地
2つめの単語は:1003〜1004番地 みたいな感じで・・・
どうもすいません(´ω`)・・・
0501デフォルトの名無しさん
NGNG(業界によるが)
0502デフォルトの名無しさん
NGNG感謝してるのに「ご苦労さん」という言葉を使うのは不適切だと思う。
0503デフォルトの名無しさん
NGNG>>492
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/lounge/file/1064150088_113/Source1.cpp
0504デフォルトの名無しさん
NGNGこれを
printf("%dつめの番地 %d〜%d\n", c + 1, s - str1 + 1,
s - str1 + lenstr2);
このコードに差し替えてください。
printf("%dつめの番地 %p〜%p\n", c + 1, s, s + lenstr2 - 1);
表示はこうなります(メモリ番地は通常こういう表記):
1つめの番地 0x22ef58〜0x22ef5a
0505C初心者
NGNG「平成元年から16年までを西暦に変換して、
うるう年であれば、Lと出力するプログラム。
うるう年は西暦が4で割り切れるとする。」
期待される出力
1 1989
2 1990
3 1991
4 1992 L
わけ分かりません><
if whitch forなどを使うらしいんですが…
誰か教えてください!
0506デフォルトの名無しさん
NGNG∀{日本人}において
{日本語の出来ない人} ⊂ {プログラム言語のできない人}
∴{日本語が出来ない} ⇒ {プログラム言語もできない}
でファイナルアンサー?{
0507デフォルトの名無しさん
NGNGwhitch?
>>506
プログラム言語?
0508503
NGNGスマン、流してくれ
0509C初心者
NGNGすいません。
whileでしたm(__)m
では訂正:
C言語で、
「平成元年から16年までを西暦に変換して、
うるう年であれば、Lと出力するプログラム。
うるう年は西暦が4で割り切れるとする。」
期待される出力
1 1989
2 1990
3 1991
4 1992 L
if while forなどを使うらしいんですが…
0510デフォルトの名無しさん
NGNG#include <stdio.h>
void whitch(void)
{
int i;
for (i = 1; i <= 16; i++) {
printf("%d %d", i, i + 1988);
if (i % 4 == 0) puts(" L");
else puts("");
}
}
int main(void)
{
whitch();
return 0;
}
0511デフォルトの名無しさん
NGNG文句はJISで大好評受付中。
0512デフォルトの名無しさん
NGNG昇順ソートは上手くいくのに降順だとちょっとおかしいんで、間違いを指摘してください
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1060403548&res=77
読み込みファイルのrandom.datの書式は、
要素数
乱数 乱数 乱数 乱数 乱数 ・・・・
みたいな感じです
692 231 699 801 404 999 840 988 688 519
を降順でソートすると、↓のようになるので困ってます
53977 999 988 840 801 699 692 688 519 404
元のデータ列の後ろに関係ないデカイ数字がたくさん格納されているようですが・・・これどうしたらいいですかね?
mallocの使い方がおかしいのかな
0513デフォルトの名無しさん
NGNGj = right; これが原因。
data[data_num] にアクセスしちゃうでしょ。
0514513
NGNG> quicksort(0,data_num,data,order);
いや、むしろ ↑か。
こうすればいいね。
quicksort(0, data_num - 1, data, order);
0515デフォルトの名無しさん
NGNGそうでしたか、ありがとうございます
0516デフォルトの名無しさん
NGNGint s=0, a=1, b=1, n, i;
n = 求めたい番目;
if( n==1 || n==2 ) return 1;
for(i=3; i<n; ++i){
s = a + b;
a = b;
b = s;
}
return s;
0517478
NGNGchar *p1,*p2,*p3,*p4,*p5,*p6,*p7;
p1 = (char *)malloc(200);
printf("1のアドレス=%p\n",&p1);
p2 = (char *)malloc(200);
printf("2のアドレス=%p\n",&p2);
free(p1);
printf("3のアドレス=%p\n",&p3);
p4 = (char *)malloc(250);
printf("4のアドレス=%p\n",&p4);
p5 = (char *)malloc(150);
printf("5のアドレス=%p\n",&p5);
free(p2);
printf("6のアドレス=%p\n",&p6);
p7 = (char *)malloc(200);;
printf("7のアドレス=%p\n",&p7);
return 0;
}
こうやったら
1のアドレス=0012FF88
2のアドレス=0012FF84
3のアドレス=0012FF80
4のアドレス=0012FF7C
5のアドレス=0012FF78
6のアドレス=0012FF74
7のアドレス=0012FF70
って表示されました。あってますか?
0518デフォルトの名無しさん
NGNG0519604
NGNG>504さん
またまた有り難う御座いました。
新しいコンパイラをインストールしてやってみます。
どうもでした(≧∀≦)
0520デフォルトの名無しさん
NGNG馬鹿にしてるようにしか読めないぞ。>>500 なんか特に。
そのつもりならそれでいいけど
0521デフォルトの名無しさん
NGNGというか、社会不適合者ばかりが集まってるのか?
0522デフォルトの名無しさん
NGNGただしデータの読み込み部分はinpdateとし、平均値、最大値、最小値を求める部分は
関数avemxmnとして作りなさい。
この問題が分かりません・・・・馬鹿なりに必死で考えてみたんですが全然ダメでした。
どなたかご教授お願いします。
0523Soket774
NGNG0524デフォルトの名無しさん
NGNG#include <stdio.h>
int main(){
int i = 0;
while(++i <= 16){
printf("%2d %d ", i, 1988 + i);
if(i % 4 == 0) putchar('L');
putchar('\n');
}
return 0;
}
// ※ 2000年はうるう年ではないが、あなたの出題に答えるとこうなります。
0526デフォルトの名無しさん
NGNGa = a の持ってる値。
&a = a のアドレス。
int *b = &a;
b = b の持ってる値 = a のアドレス。
&b = b のアドレス。
0527デフォルトの名無しさん
NGNG&イラネ
0528デフォルトの名無しさん
NGNG> // ※ 2000年はうるう年ではないが、あなたの出題に答えるとこうなります。
おいおい
0529デフォルトの名無しさん
NGNGごめん、うるう年だったね・・。
0530478
NGNG2のアドレス=009028F8
3のアドレス=00000000
4のアドレス=009029C4
5のアドレス=00902AC4
6のアドレス=009021D0
7のアドレス=00902B60
といった結果になりました。あとはどうすればいいか解りません。
教えてください。。。
0531デフォルトの名無しさん
NGNG0533デフォルトの名無しさん
NGNG最終的にはメモリが足りなくなりメモリを確保できなくなる。
それを以下の方法で確認せよ。
・無限ループを生成し、その中で、
−動的にメモリを確保する。
−メモリを確保できなかった場合(malloc関数の返り値がNULL)
は、ループから抜ける。
−確保したメモリのアドレスを出力する。
・この関数を呼び出すメインプログラムを作り、実行する。
っていう問題がでました。皆さんお願いします。
0534デフォルトの名無しさん
NGNGvoid *p;
while ((p = malloc(1024 * 1024) != NULL)) printf("%d\n", p);
}
書き込みを見る限りでは、こんなのしか出てこない
実行する気が全く起きない…
0536534
NGNG何やってんだ漏れorz
0537デフォルトの名無しさん
NGNGstatic struct ST{
unsigned char st;/* 状態 */
unsigned char priority;/* 優先度 */
void (*func) (unsigned char st);/* 実行関数 */
};
struct ST State[] = {
1,2,a
0,1,b
1,0,c
1,0,d
0,3,e
};
void test(unsigned char num, unsigned char st)
{
}
例えば上のようにあったとします。test関数の引数numはST構造体
の配列n番目が入ります(今の例だと0〜4)。、stはnumで指定した配
列番号のstを設定します(0か1)。
何がしたいかっていうと、test関数の中で、stが1のものの中で、
優先度がもっとも高い(0が一番高い)関数に1を引数として、またそ
れ以外でstが1のもには0を引数として渡し、また最高優先度でほか
に同じ優先度のもの(例だと最高優先度が2つある)があれば、それ
にも引数として1を渡す処理を作りたいのですが、いいやり方が思い
浮かびません。なにとぞよろしくお願いします。
0538デフォルトの名無しさん
NGNG優先度を示す値struct ST::priorityを第二優先キー
として,予め,配列をソートしておくべき。
ソートされていれば,至極単純な処理で済む。
何も難しいことは無い。
0539デフォルトの名無しさん
NGNG>526 を参考にしながらちゃんと教科書などで復習したほうがいいよ。
ここちゃんと理解しておかないと、後でつまづくよん(脅
0540デフォルトの名無しさん
NGNG有難うございました!
0542522
NGNG0543ぼるじょあ ◆6gVmS8Qrys
NGNG0544デフォルトの名無しさん
NGNG必死に考えた「過程」を示してくれるとうれしいな。
多分いろんな人の勉強になると思う。
0545デフォルトの名無しさん
NGNG操作列2:
操作列2は、操作列1の4の操作を6と7の間に動かしただけ。
操作列1用をちょっと書き換えれば操作列2用のプログラムはすぐできるっしょ?
考察:
16進数は分かってるものとして、紙の上にそれぞれの割り当てられたメモリの
位置関係を図示してみると、なんか見えてこない?
0546492
NGNG497さんありがとうございます
0547デフォルトの名無しさん
NGNG2,9,4,5,1,8,0,7,6,3
ただし、どのような並べ替えが進行するのかわかるように表示させてください。
わかりません。お願いします
0548 ◆yEbBEcuFOU
NGNG0549522
NGNG>必死に考えた「過程」を示してくれるとうれしいな。
俺は平均、最大値、最小値を求めるプログラムを作るためにはどうすればよいのか考えた
平均、最大値、最小値を求めるプログラムなのだからどんなこともできる
手始めに全裸で姉の部屋にアンゲロ、アンゲロとつぶやきながら飛び込む
タンスをこじ開けブラジャーを腰に巻きパンティーを頭にかぶる
姉が呆然としながら見てくるが平均、最大値、最小値を求めるプログラムなので気にしない
姉のベッドに潜りこみ「幸せだから!幸せだから!」と絶叫
姉は無言で部屋から立ち去る
だがまだ平均、最大値、最小値を求めるには不十分
次は妹の部屋にムッシュムッシュと叫びながら飛び込む
妹は着がえをしている最中だったが最大値、最小値を求めるプログラムなので無視
半裸で逆立ちをしながら
「俺に充電しろ!!俺に充電しろ!!」と絶叫
妹は大泣きで退散
確実に平均、最大値、最小値を求めるプログラムに近づく
開脚後転でトイレに飛び込み便座を外し首に掛ける
ゾンビの真似をしながら母の部屋に突撃
タンスを開けると一枚の写真発見
死んだ親父が俺を抱いている写真発見
俺は泣いた
0550デフォルトの名無しさん
NGNG0551537
NGNGう、うあまりソートってしたことなくて苦手なんですよ。
ソートするってことはtest関数の頭で
struct ST State[] = {
1,2,a
0,1,b
1,0,c
1,0,d
0,3,e
}; を
ローカル変数をとって
struct ST a[] = {
1,0,c
1,0,d
1,2,a
0,1,b
0,3,e
};
とするっていうことですか?ソート詳しい人助けてください。
0552デフォルトの名無しさん
NGNG生徒のデータってのはなんなのか
読み込むのはファイルからか標準入力なのか
inpdateじゃなくてinpdataじゃないかのか
等をちゃんと書けば誰か答えてくれるよ、たぶん。
0554デフォルトの名無しさん
NGNG0556デフォルトの名無しさん
NGNGint *inpdate (int *n) {
int i, *buf, *tmp;
scanf("%d", n);
tmp = buf = (int *) calloc(*n, sizeof(int));
for (i = 0; i < *n; i++) scanf("%d", tmp++);
return buf;
}
void avemxmn (int n, int *d, int *max, int *min, double *ave) {
int i; *max = INT_MAX; *min = INT_MIN; *ave = 0;
for (i = 0; i < n; i++, d++) {
*max = *max<*d?*max:*d; *min = *min>*d?*min:*d; *ave += *d;
}
*ave /= n;
}
int main () {
int size, max, min, *data = inpdate(&size);
double ave;
avemxmn(size, data, &max, &min, &ave);
printf("max = %d\nmin = %d\nave = %lf\n", max, min, ave);
free(data);
return 0;
}
駄目っぽかったら自己訂正よろ
中途半端に酔った頭ではコレが限界
0557デフォルトの名無しさん
NGNGわからない言葉を検索する癖をつけることは上達への近道かと
バブルソートで検索してでてきたサイト↓
ttp://www.miyagi-ct.ac.jp/ee/lecture/E3_01/Bubble_sort.html
#include<stdio.h>
int main()
{
int i,j,k;
int data[]={2,9,4,5,1,8,0,7,6,3};
int max=sizeof(data)/sizeof(int);
for(i=0;i<max-1;i++)
{
for(j=i+1;j<max;j++)
{
if(data[i]>data[j])
{
data[i]=data[j]-data[i];
data[j]-=data[i];
data[i]+=data[j];
for(k=0;k<max;k++)//途中経過を表示
printf("%d ",data[k]);
printf("\n");
}
}
}
return 0;
}
0558デフォルトの名無しさん
NGNG#include <stdio.h>
void print_array(int a[], int size, int n){
int i;
for(i = 0; i < size; i++){
putchar(a[i] + '0');
if(i == n) putchar('-'); else putchar(' ');
}
putchar('\n');
}
int main(){
int a[] = {2,9,4,5,1,8,0,7,6,3};
int i, j, tmp, flg, size = sizeof(a) / sizeof(int);
flg = 1;
for(i = 0; i <size; i++){
if(flg) flg = 0; else return 0;
for(j = 0; j < size - 1; j++){
print_array(a, size, j);
if(a[j] > a[j + 1]){
tmp = a[j]; a[j] = a[j + 1]; a[j + 1] = tmp;
flg = 1;
}
}
}
return 0;
}
0559558
NGNG0560557
NGNG0561デフォルトの名無しさん
NGNG0562デフォルトの名無しさん
NGNG中央揃えで、左右に均等に分割できない場合は、前半を一文字多くせよ。
void print_binary(unsigned int num,int dnum,char pos);
num: 表示する数字
dnum: 表示する桁数
pos: 表示位置
numをdnum桁で表示する。このとき、posの内容により、左詰('L')、中央揃え('C')、右詰('R')
にせよ。また確認の為に、空白の代わりに_を表示せよ。例えば、
print_int(100,10, 'C'); __1100100_
print_int(100,10, 'L'); 1100100___
print_int(100,10, 'R'); ___1100100
のように表示する。
0563デフォルトの名無しさん
NGNGたいていの場合、最大値と最小値がINT_MAXとINT_MINになってしまうね。
0564562
NGNG●与えられた整数を2進数で表示するときの桁数を求める関数の作成
(例えばint count_bit(int num);)
下記のように再帰的に桁数を求める。
(a)num < 2 の場合: 1桁なので1を返す。
(b)num > 2 の場合: count_bitにnum/2を与えて呼び出すことで、2桁目以上の桁数を求め
それに1を加えて返す。
●与えられた整数を2進数で表示する関数の作成(例えばint print_bin(int num);)
(a)num < 2 の場合: numに対応する文字を出力する(0の場合は'0'、1の場合は'1')。
(b)num >= 2 の場合: print_binにnum/2を与えて呼び出すことで、2桁目以上の桁を出力し
そのあと1行目を表示する。
●上記の関数を使用して空白の数を求め、dnumとposの値によって適当な空白を
数字の印刷の前後に入れるようにする。
0565522
NGNGあーすみませんでした。生徒のデータは身長で
読み込みは標準入力(キーボードからって意味?)と思います。
あとindateじゃなくてindataです。dateて、何なのよ俺。
教科書見てると配列使ってavemxmnとinpdataって関数作ってやるのかなと思ったんですが
まず配列からよく分かりません。今までだと配列は50以下とか条件あったけど今回は特に指定がないので・・・
あと関数もaveを平均みたいに一つならいいんですが複数だともうさっぱり分かりません。
いや正直1個でもよく分かんないんですけど。
要するにほとんど全部分かりませんスミマセンスミマセン。
>>556
お答えありがとうございます。でもtmpとかbufとかcallocとかが何のことか分からないです・・・
0566556
NGNG修正したものあげ直し
int *indata (int *n) {
int i, *buf, *tmp;
scanf("%d", n);
tmp = buf = (int *) calloc(*n, sizeof(int));
for (i = 0; i < *n; i++) scanf("%d", tmp++);
return buf;
}
void avemxmn (int n, int *d, int *max, int *min, double *ave) {
int i; *max = INT_MIN; *min = INT_MAX; *ave = 0;
for (i = 0; i < n; i++, d++) {
*max = *max<*d?*d:*max; *min = *min>*d?*d:*min; *ave += *d;
}
*ave /= n;
}
int main () {
int size, max, min, *data = indata(&size);
double ave;
avemxmn(size, data, &max, &min, &ave);
printf("max = %d\nmin = %d\nave = %lf\n", max, min, ave);
free(data);
return 0;
}
まだ違うかも
0567デフォルトの名無しさん
NGNG0568デフォルトの名無しさん
NGNG学籍番号(五桁の文字列)、英語、数学、国語の点数(各100点満点)を次々に読み込んで、
各人の総得点を計算の上、(1)総得点の高い順に各人のデータを、さらに(2)各々の平均と
標準偏差を、次の形に出力するCプログラムを作成せよ。
Id−No Eng Math Jap Total
−−−−− −−−− −−−− −−−− −−−−−
T0802 83 100 84 267
T0809 85 80 90 255
・・・・・・・・・・・
T0804 58 30 57 145
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
Ave 72.5 75.8 68.1 216.4
Dev 15.3 19.6 12.4 33.3
但し、プログラム作成においては
・学生一人のデータは構造体としてまとめて、それにStudentとデータ型名を付けよ。
・総得点の高い順にデータを並び替える際に、線形リストを用いよ。
初心者でCしか使えません。誰か親切な方教えてください。
0569556
NGNG配列版
#define DATA_MAX 50
int indata (int d[]) {
int i, n;
scanf("%d", &n);
for (i = 0; i < n; i++) scanf("%d", &d[i]);
return n;
}
void avemxmn (int n, int d[]) {
int i, max = INT_MIN, min = INT_MAX, ave = 0;
for (i = 0; i < n; i++) {
max = max<d[i]?d[i]:max; min = min>d[i]?d[i]:min; ave += d[i];
}
printf("max = %d\nmin = %d\nave = %lf\n", max, min, (double)ave / n);
}
int main () {
int data[DATA_MAX], size = indata(data);
avemxmn(size, data);
return 0;
}
多分これも間違ってる
0570556
NGNG言い忘れてたけど、>>566 は確保後の確認を行うこと
>>566>>569 両方とも、最低限の入出力しか行っていないので
「n = 」とかのプロンプト出したかったら任意で追加してください
0571C初心者
NGNG本当にありがとうございました!
どうしてもわかんなかったらまた来ます。
0572デフォルトの名無しさん
NGNGprint_binaryかprint_intかはっきりせい。
void print_binary(unsigned int num,int dnum,char pos){
int bits = count_bit( num );
if( bits > dnum ) print_binary( num >>(bits-dnum), dnum, 'L' );
else if( pos == 'L' ) { print_bin( num ); fill_space( dnum-bits ); }
else if( pos == 'R' ) { fill_space( dnum-bits ); print_bin( num ); }
else { /* 'C' */
if( (dnum-bits)%2) { printf( "_" ); print_binary( num, dnum-1, pos ); }
else{
int n = ( dnum - bits ) /2;
fill_space( n ); print_bin( num ); fill_space( n );
}
}
}
あと、count_bit、print_bin、それから fill_space(int n){ n個空白を表示; }
は自作しれ。
0573デフォルトの名無しさん
NGNG結構でかくなりそうでつね。
というわけで構造体の宣言だけかいときますね。
typedef struct student {
int eng ;
int math ;
int japanese;//japはまずかろう
int total ;
int average ;
int hyoujunnhennsa;//...
} student_t ;
typedef struct node {
student_t *data;
node_t *prev;
node_t *next;
} node_t ;
typedef struct list {
node_t *head;
node_t *tail;
} list_t ;
いじょ、あとはまかせた
0575572
NGNG「150.99874ポンドをキログラムに換算せよ。
1ポンドは0.4536キログラムである。」
という問題で、出力の精度・書式が重要なのですが、
何故か正確な値が出力されません。
#include <iostream>
#include <string>
#include <iomanip>
using namespace std;
int main()
{
const float KILOGRAMPERPOUND = 0.4536;
double pounds;
double kilograms;
cout.setf(ios::fixed,ios::floatfield);
cout.setf(ios::showpoint);
cin >> pounds;
kilograms = pounds * (double)KILOGRAMPERPOUND;
cout << setprecision(9) << kilograms ;
return 0;
}
とすると、150.99874*0.4536=68.493028464なのに、
68.493026866という微妙に違う値が表示されてしまう。。。
KILOGRAMPERPOUNDをdouble型にすれば解決なのですが、
必ず1箇所はfloat型を使うこと、とされています。
何が原因なのでしょうか?
ご教授ください。
0576デフォルトの名無しさん
NGNG0577デフォルトの名無しさん
NGNG#define float double
0578537
NGNG0579デフォルトの名無しさん
NGNG>371-373 >405 >459-462 参照のこと。
0580デフォルトの名無しさん
NGNGa='5'-'0';
これを利用してキーボードから3個以内の連続する数字を文字として入力し、
それを2進数へ変更して整数型変数へ代入するプログラムを作成しなさい。
Cです。いまいち問題の意味がわかりません。お願いします。
0581デフォルトの名無しさん
NGNGStateがあまりでかくならないんならループ回して終わり、のような気がするんだがそれじゃまずいのか?
0582デフォルトの名無しさん
NGNG#include<stdio.h>
int main(void){
double k=77.7;
printf("%lf\n",k);
}
このプログラムのkの値を コマンドラインから与えたいのですか
よく分かりません。
test.c 88.8 test2.c
↑
出力を書き出す
atofなどを使うようです
0583デフォルトの名無しさん
NGNG0584537
NGNGードにするとうまく書けないんです。能力不足で。
0585デフォルトの名無しさん
NGNG#include <stdio.h>
#include <stdlib.h>
int main(int argc, char **argv)
{
if (argc != 2) {
printf("Parameter Error!\n");
return 1;
}
printf( "%lf\n", atof(argv[1]) );
return 0;
}
0586572
NGNG#defineは許されないと思います。
ほかにちゃんと正確な値を得る方法ないでしょうか?
そもそもどうして、こうなっちゃうのでしょうか?
どうか助けてください。。。
0587デフォルトの名無しさん
NGNGvoid test(unsigned char num, unsigned char st)
{
int nmin=-1;
int c;
for(c=0; c<5; c++)
{
if(State[c].st == 1 && State[c].priority < nmin)
nmin = State[c].priority;
}
for(c=0; c<5; c++)
{
if(State[c].st == 1)
{
if(State[c].priority == nmin)
(*State[c].func)(1);
if(State[c].priority == nmin)
(*State[c].func)(0);
}
}
}
0588568
NGNGありがとうございます。しかし、力不足でへたれな自分はこれでもまだできません。
何回かに分けてでいいので、続きを書いてくれると助かります。
0589デフォルトの名無しさん
NGNG誤 int nmin=-1;
正 unsigned char nmin=0xff;
0590デフォルトの名無しさん
NGNGほれ、ヒントだ。
int compare(const void *a, const void *b)
{
struct ST *x = (struct ST *)a;
struct ST *y = (struct ST *)b;
return (x->priority == y->priority)? 0: (x->priority < y->priority)? 1: -1;
}
struct ST[] = { ... };
void test(...)
{
/* ... */
/* State[]をpriorityでソート */
qsort(State, sizeof(State)/sizeof(struct ST), sizeof(struct ST), compare);
/* ... */
}
0591584
NGNGすごくわかりやすいです。
ただ最後って
if(State[c].priority == nmin)
(*State[c].func)(1);
if(State[c].priority == nmin)
(*State[c].func)(0);
じゃなくて
if(State[c].priority == nmin)
(*State[c].func)(1);
else
(*State[c].func)(0);
ですよね?
>>590
う、難しい。
0592コンパイルは通ったのですが…
NGNG#include <stdio.h>
#define NUM 9
double linear_lsm(double [], double [], int, double *, double *);
void main(void)
{
double x[NUM]={3.4,1.3,6.1,9.5,8.2,8.9,7.7,2.0,4.8},
y[NUM]={0.20,0.04,1.37,13.73,6.17,8.76,3.77,0.07,0.50};
double a,b,r2;
r2=linear_lsm(x, y, NUM, &a, &b);
printf("y=%fe^%fx\n", a,b);
printf("R^2=%f\n", r2);
}
0593正解の値と異なるんです…
NGNGdouble linear_lsm(double x[], double y[], int n, double *a, double *b)
{
double xi, yi, x2, xy, d, y2, fy, s;
int i;
/*y=ax+bのa,bを求める部分*/
xi = yi = x2 = xy = 0.0;
for (i=0; i<n; i++) {
xi += x[i];
yi += y[i];
x2 += x[i] * x[i];
xy += x[i] * y[i];
}
d = n*x2 - xi*xi;
*a = (n*xy - xi*yi)/d;
*b = (yi*x2 - xi*xy)/d;
0594592〜593
NGNG0595592〜595
NGNGどこが間違っているのか教えてください
0596デフォルトの名無しさん
NGNGそうです。else にしといてください。寝ぼけてました。
# もう今日は寝まつ。
0597デフォルトの名無しさん
NGNGとりあえず、以下のようなコードを作ってみたんですけど、
for (;i < 5000;) がすっきりしなくて困っています。
なんかすっきりしたいい方法ないでしょうか?
#include <iostream.h>
int main(void)
{
int i = 1;
for (;i < 5000;)
{
for (int j = 1; j <= 4; j++)
{
if ( i < 5000 )
{
i = i * 2;
cout.width(4);
cout << i << " ";
}
}
cout << "\n";
}
return(0);
}
0598デフォルトの名無しさん
NGNG0599デフォルトの名無しさん
NGNGなんか問題文が説明不足な気が・・
0600デフォルトの名無しさん
NGNGやっぱりそうですかね?
実は模範解答らしきものがあるんですが、何入力しても0しか出ないし、これでいいのか謎です。
#include <stdio.h>
int main(void)
{
int c,d=0;
printf("3桁以内の整数を入力してください\n");
scanf("%c",&c);
if(('0'<=c)&&(c<='9'))
{
d=c-'0';
scanf("%c",&c);
if(('0'<=c)&&(c<='9'))
{
d=10*d+c-'0';
scanf("%c",&c);
if(('0'<=c)&&(c<='9'))
d=10*d+c-'0';
}
}
printf("%d\n",d);
return 0;
}
0601デフォルトの名無しさん
NGNG0602デフォルトの名無しさん
NGNGC言語の視点では求めていることにならないよな。
0603デフォルトの名無しさん
NGNG少なくともそんな支離滅裂な質問しか出来ない香具師に論理的思考力があるとは思えない。
0604デフォルトの名無しさん
NGNG0605デフォルトの名無しさん
NGNG0606デフォルトの名無しさん
NGNG5 6 7 8 26
9 0 1 2 12
3 4 5 6 18
7 8 9 0 24
25 20 25 20 90
を出力するプログラムを作れ
教えて
0607デフォルトの名無しさん
NGNGint main(){
printf("1 2 3 4 10\n");
printf(" 5 6 7 8 26\n");
printf(" 9 0 1 2 12\n");
printf(" 3 4 5 6 18\n");
printf(" 7 8 9 0 24\n");
printf("25 20 25 20 90\n");
return 0;
}
0608デフォルトの名無しさん
NGNG#include <stdio.h>
int main(void)
{
printf(
"1 2 3 4 10\n"
"5 6 7 8 26\n"
"9 0 1 2 12\n"
"3 4 5 6 18\n"
"7 8 9 0 24\n"
"25 20 25 20 90\n"
);
return 0;
}
0609デフォルトの名無しさん
NGNG0611290
NGNGなかなかうまくいかないので、再度質問したいのですが、
ttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=105
↑初期値をいじるにはどこを変えればいいのでしょうか?
0612デフォルトの名無しさん
NGNG2次元配列を使って解いてほしいのですが…
一番右の列と一番下の行がそれぞれの合計になっているとおもいます
0613デフォルトの名無しさん
NGNG#include <iostream>
int main(void)
{
std::cout <<
"1 2 3 4 10\n" <<
"5 6 7 8 26\n" <<
"9 0 1 2 12\n" <<
"3 4 5 6 18\n" <<
"7 8 9 0 24\n" <<
"25 20 25 20 90\n";
return 0;
}
0614デフォルトの名無しさん
NGNGvoid main(void){
const double e = 2.718281828459045235360287471;
double exp = 1.0;
double factorial = 1.0;
int n;
for (n = 1; n <= 20; n++){
factorial = factorial * n;
exp = exp + 1.0 / factorial;
printf("%.20f %2d %.20f\n", exp, n, e - exp);
}
}
0615デフォルトの名無しさん
NGNG#include <iostream>
int main() {
int i = 2,cnt = 1;
std::cout.width(5);
while(i<10000) {
std::cout.width(5);
std::cout << i;
if(cnt % 4 == 0) std::cout << std::endl;
cnt++; i <<= 1;
}
return 0;
}
0616デフォルトの名無しさん
NGNG{
int i,j,tbl[6][5]={
{1, 2, 3, 4, 10},
{5, 6, 7, 8, 26},
{9, 0, 1, 2, 12},
{3, 4, 5, 6, 18},
{7, 8, 9, 0, 24},
{25, 20, 25, 20, 90}
};
for(i=0; i<6; ++i){
for(j=0; j<5; ++j) printf("%d",tbl[i][j]);
putchar('\n');
}
return 0;
}
0617デフォルトの名無しさん
NGNGsrandの種子と乱数の関係が宿題です。
─漏れ的考え─
1.でっかい乱数表のなかから種子の値を開始値みたいにつかって乱数を生成
2.乱数表はいくつもあって、種子の値で、表が変わる
3.表などなく、種子の値を使って乱数を生成する
このうちのどれかだとおもうのですが・・・
問題がわかりずらくてすいません。。。
0618デフォルトの名無しさん
NGNG確かに問題は分かりづらい。
実装に限った話でいえば、「よくある」のは3.
0619617
NGNG標準ライブラリのrandとsrandを使った場合です。
0620デフォルトの名無しさん
NGNGここは?
ttp://cutie.dip.jp/pc/report/random/
このX0が「種」にあたる。
0621617
NGNG>>618
今読み直すとホント分かりにくいですね(汗
>>620
ほほー こんな風にも乱数は生成できるのですねー 勉強になりました
だいぶ問題の書き方が悪かったみたいです^^;;
randとsrandを使った場合、乱数はどのように生成されているのですか?
やっぱり>>620の教えてくれた方法を勝手にやってくれているのかなぁ・・・。
0622デフォルトの名無しさん
NGNGtbl[5][4]={
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 0, 1, 2},
{3, 4, 5, 6},
{7, 8, 9, 0}}
だけを入力して6行目と5列目は計算で出して欲しいです
s+=tbl[i][j]を使ってた気がします
0623デフォルトの名無しさん
NGNG0624デフォルトの名無しさん
NGNG0625デフォルトの名無しさん
NGNG>>573の構造体定義をちょこっと流用しますた。
あと入力については何も書いてなかったので自分で書いてくれ。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=114
0626デフォルトの名無しさん
NGNG出題内容を理解せずに質問する人が増えたよね。
0627デフォルトの名無しさん
NGNG{
int i,j,tbl[5][4]={
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 0, 1, 2},
{3, 4, 5, 6},
{7, 8, 9, 0}
};
for(i=0; i<5; ++i){
int s=0;
for(j=0; j<4; ++j){
printf("%d",tbl[i][j]);
s+=tbl[i][j];
}
printf("%d\n",s);
}
{int total=0;
for(j=0; j<4; ++j){
int s=0;
for(i=0; i<5; ++i) s+=tbl[i][j];
printf("%d",s);
total+=s;
}
printf("%d",total);
}
return 0;
}
0629デフォルトの名無しさん
NGNG要するに
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char buff[4];
printf("3桁以下の数値を入力: ");
fgets(buff, 4, stdin);
printf("%d\n", atoi(buff));
return 0;
}
がやりたいんだろう。
0630デフォルトの名無しさん
NGNGx=1 y=2 z=3 を初期値にしたい場合、jacob() の方は
ans_xyz newans = { {1, 2, 3}, 0 }, oldans;
gauss_seidel() の方は
ans_xyz oldans = { {1, 2, 3}, 0 };
にする。
0631290
NGNGなるほど、やってみることにいたしやす。
�dクスでした。
0632C初心者
NGNGputcharとは?
0633デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=115
0634デフォルトの名無しさん
NGNGちなみに3月〜5月を「春」、6月〜8月を「夏」、9月〜11月を「秋」、12月〜2月を「冬」です
0635デフォルトの名無しさん
NGNGif(x>=3 && x<=5){//春
}else if(x>=6 && x<=8){//夏
}else if(x>=9 && x<=11){//秋
}else if(x==12 || (x>=1 && x<=2)){//冬
}
0636デフォルトの名無しさん
NGNGプログラム側で4桁の乱数(1000〜9999)を発生させて、こちらが4桁の数を入力した時に
桁数と数字が合っていれば+1ホームラン、
桁数は違うが同じ数字が違う桁数に存在すれば+1ヒットという具合です。
ホームランした数字はヒットの検索には含めない。
(例1)乱数;3633
入力;3663
2ホームラン!1ヒット!
(例2)乱数;1234
入力;3303
0ホームラン!1ヒット!
てな感じです。
一応自分では乱数と入力の4桁のint型の整数を
4つに分割して別々の配列に格納して比較しているんですが…。
{ホームランした数字はヒットの検索には含めない}がうまくいきません。
0637デフォルトの名無しさん
NGNG(例1)は乱数;3633
入力;3663
3ホームラン!0ヒット!
です。
0638デフォルトの名無しさん
NGNGエスパーでもない限りどう巧くいかないのか判らんのだが。
>>635
最後のifは蛇足。∵それ以前に春夏秋の判定が終わっているのだから。
0639数当て
NGNGうまくいかないのは乱数にある1つの数に対して
その数が入力に複数あるような時です。
乱数4344
入力3132
のような時に2ヒットになってしまいます
0640デフォルトの名無しさん
NGNG乱数の中に同じ桁の数が入っちゃいけないんじゃないっけ?
0641デフォルトの名無しさん
NGNG「ヒット」、「ホームラン」それぞれのフラグを入れていけばいい
ただしホームランをヒットで上書きしない また、ホームランの数は別途数える
最後に、結果的にヒットになった数字がいくつあるか数える
0642デフォルトの名無しさん
NGNG※乱数と入力文字は、桁ごとに配列に入れてあるとして
int flag[10]; //要ゼロ初期化
for (i = 0; i < 桁数; i++) flag[乱数[i]] = 1;
for (i = 0; i < 桁数; i++) {
if (flag[入力[i]]) {
ヒット++;
flag[i] = 0;
}
}
0643642
NGNG0644デフォルトの名無しさん
NGNGフラグを1個準備するのが妥当かな…
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=116
0646数当て
NGNGなんとか終わらせれそうです。
0647デフォルトの名無しさん
NGNGこのプログラムでは辞書順に表示されるが、
これを逆順に表示するようにプログラムを変更せよ。以下のように行う。
(1)入力する場合に逆順に並べておく方法で変更する。
(2)表示するときに逆順に表示する方法で変更する。
0648デフォルトの名無しさん
NGNG>252 参照
0649デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1060403548&res=79
ここまで出来たんですがあとは如何すれば仕上がりますか?
0650デフォルトの名無しさん
NGNG(1) 65行目くらいの、if (strcmp のとこの符号を書き換える
(2) person の仕様を変えないとすれば、再帰かな
main の最後の3行消して代わりに print(root);
関数の実装は
void print(struct person *cur) {
if (cur->next != NULL) {
print(cur->next);
}
printf("%s\n%s\n%s\n%s\n\n",cur->address,cur->name,cur->hname,cur->phone);
}
1個先以降の表示を先にやって、今のところを表示する
0651デフォルトの名無しさん
NGNG○不等号
0652568
NGNGありがとうございます。問題文はあれで全文なんです。入力については一言も・・・
scanfをつかえばできますかね? 教科書の例題を見てなんとかやってみます。
本当に助かりました。
0653デフォルトの名無しさん
NGNG遅れましたがありがとうございます〜助かりました
0654デフォルトの名無しさん
NGNG>int print_bin(int num){
> if(num < 2) printf("%s\n",num);
> else if(num >= 2) return print_bin(num/2);
>}
おいおい,その printf, %s に (int) 渡してどうする?
これをやりたいのか?
void print_bin(int value){
if( value ){ print_bin(value>>1); printf("%d", value&1L); }
}
0655デフォルトの名無しさん
NGNG文字列「ERADRE」を1次元配列に格納し、各配列要素に格納されたデータの番地とその内容をポインタを用いて
表示するプログラムを作成せよ。
また、1次元配列に格納された文字列を「READER」と表示するプログラムをポインタを用いて作成せよ。
と言う問題です。
後半が良く分らないので「また、〜」以降の答えを教えてください。
0656デフォルトの名無しさん
NGNGint main(void)
{
char szStr[] = "ERADRE";
int order[] = {1, 0, 2, 3, 5, 4}, i;
for(i = 0; i<6; i++)
printf("%c", *(szStr+order[i]));
return 0;
}
0657デフォルトの名無しさん
NGNG某M橋が、「添え字を使ってアクセスしといて、文句言われたら"単なるシンタックスシュガーじゃないですか!"
って反論しなさい」って言ってるタイプの問題そのままな気がw
0658デフォルトの名無しさん
NGNG>char szStr[] = "ERADRE";
動けばいいというものではない。減点。
>int order[] = {1, 0, 2, 3, 5, 4}, i;
無理に1行に詰め込んで可読性を下げるな。減点。
>printf("%c", *(szStr+order[i]));
空白明けろ。減点。
0659デフォルトの名無しさん
NGNGputchar()を使えとの指摘がない。減点。
0660デフォルトの名無しさん
NGNG好みに関わるコーディングスタイルまで採点対象にしない。減点。
模範例を示さない。0点。
0661デフォルトの名無しさん
NGNG> 模範例を示さない。0点。
> 模範例を示さない。0点。
> 模範例を示さない。0点。
> 模範例を示さない。0点。
> 模範例を示さない。0点。
> 模範例を示さない。0点。
> 模範例を示さない。0点。
> 模範例を示さない。0点。
> 模範例を示さない。0点。
0662デフォルトの名無しさん
NGNGこれだけポインタ使えば,出題者も満足だろう。
int main(){
char *p; int i;
char str[]="ERADRE";
const char *TARGET="READER";
for(TARGET; *TARGET; ++TARGET){
for(i=0,p=str; i<strlen(p); ++i)
if( *TARGET == p[i] ){ putchar(p[i]); braek; }
}
}
0663デフォルトの名無しさん
NGNG>>char szStr[] = "ERADRE";
>動けばいいというものではない。減点。
これ意味わかんね。
0664デフォルトの名無しさん
NGNG>動けばいいというものではない。減点。
これは別にふつーでは?
>>int order[] = {1, 0, 2, 3, 5, 4}, i;
多分そうじゃなくて、二字ずつに区切って後ろから表示するんではなかろうか?
>模範例を示さない。0点。
こんなのはどうですかね?
#include <stdio.h>
#include <string.h>
int main(void)
{
char szStr[] = "ERADRE";
char *p;
for (p = szStr + ((strlen(szStr) - 1) / 2) * 2; p >= szStr; p -= 3) {
putchar(*p);
p++;
if (*p != 0)
putchar(*p);
}
return 0;
}
0665デフォルトの名無しさん
NGNG>動けばいいというものではない。減点。
>>658は
char szStr[] = "ERADRE";
と
char *szStr = "ERADRE";
が同じだと思ってるのかな。
とりあえず>>656
>char szStr[] = "ERADRE";
ハンガリアン ダメゼッタイ。減点。
0666デフォルトの名無しさん
NGNGsizeofだろ。
0667デフォルトの名無しさん
NGNG0669デフォルトの名無しさん
NGNGそれに似たような問題をやったあとに宿題出されてるんだろうからさ
0670デフォルトの名無しさん
NGNG0671デフォルトの名無しさん
NGNG(1)このプログラムを改良することにより、読み込んだ英文から単語を切り出すプログラムを作成せよ。
単語の区切りは、スペースやコンマ、ピリオド、ダブルクォーテーションなどを手がかりにすること。
単語に余計な記号が付かないように注意すること。また、出力に関しては1行1単語でファイルに出力せよ。
※空行は除くこと。標準関数(ctype.h)や==演算子を利用する。
(実行例)One two three,four.
(出力ファイル例)
One
two
three
four
(2)(1)で切り出した単語には、大文字と小文字が混じっている。全て小文字で構成される単語に変換する
プログラムを作成せよ。結果は別のファイルに出力せよ。
(3)(2)で切り出した単語をアルファベット順にソートするプログラムを作成せよ。結果は別のファイルへ出力せよ。
※バブルソートを用いるとよい。
お願いします。
0672デフォルトの名無しさん
NGNG……改良?
0673デフォルトの名無しさん
NGNG改造でしたw
0674デフォルトの名無しさん
NGNG実行したら
エラー E2356 list.c 80: 'print' の再宣言で型が一致していない
と出ました・・
0675デフォルトの名無しさん
NGNG0676デフォルトの名無しさん
NGNGうおおおお
さんくす
あなた天才ね
0677デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=117
0678デフォルトの名無しさん
NGNGp[0]とp[1]使えばいいのに。
"ポインタ"変数は既に使っているのだからな。
0679デフォルトの名無しさん
NGNG有難うございます!
0680デフォルトの名無しさん
NGNGいや、出題者的には、ポインタの理解と練習のためには p[1] とか使って
ほしくないとか思うんじゃないかなと思ったもんで。
0682デフォルトの名無しさん
NGNG2つ毎の参照という点から出題意図を考えるに
むしろ,使うべきだと思われる。
アドレス演算で変化させた任意のポインタ変数を基準に,
配列と同様の,[]演算子によるインデックス参照が可能 …とな。
char *p;
for (p = szStr + ((strlen(szStr) - 1) / 2) * 2; p >= szStr; p -= 2) { /***ポインタ演算でpの値を変化***/
putchar(p[0]); /*** 配列じゃないけど,インデックス参照 ***/
if (p[1] != '\0') putchar(p[1]); /*** インデックス値が固定で,ポインタのアドレス値が変化する ***/
}
0683デフォルトの名無しさん
NGNGchar szStr[] = "ERADRE";
だと無駄なコピーが発生するね。
0684デフォルトの名無しさん
NGNGをいをい…、無駄なポインタ変数が出るのは
char *szStr = "ERADRE";
だよ。
0685('A`)<ヒロシです…
NGNG0686デフォルトの名無しさん
NGNGこのスレで最も間抜けなレスに認定。
0687デフォルトの名無しさん
NGNG>無駄なポインタ変数
……
0688デフォルトの名無しさん
NGNG無駄なコピーって何だ?
>>655は
>文字列「ERADRE」を1次元配列に格納し
って書いてるけど
0689デフォルトの名無しさん
NGNG0690デフォルトの名無しさん
NGNG0691デフォルトの名無しさん
NGNG0692デフォルトの名無しさん
NGNGその人達のソースを参考にして作ってみたら、やっぱできませんでしたorz
自分の場合、x=-5.5のときの真値e^-5.5=0.00408677…と
e^x= 1+x+x^2/2!+x^3/3!+…
e^x=1/e^-x=1/(1+-x+(-x)^2/2!+(-x)^3/3!+…
の二通りで計算し比較せよという課題です。結果が違うらしいけどなんでだろ?
>>459のソース
>>614をいじって改造してみたんですが力不足で上手くいきませんでした・・
どなたか>>614みたいな分かり易いソースをお願いします!
0693デフォルトの名無しさん
NGNG0694デフォルトの名無しさん
NGNGじゃ、その 614 を改造して…
double myexp(double x)
{
double exp = 1.0;
double factorial = 1.0;
double x_n = 1.0;
int n;
for (n = 1; n <= 50; n++) {
factorial = factorial * n;
x_n *= x;
exp = exp + x_n / factorial;
}
return exp;
}
int main(void)
{
const double ans = 0.0040867714384640669934647026847208;
printf("e^-5.5 %.20f ��=%.20f\n", myexp(-5.5), ans - myexp(-5.5));
printf("1/(e^5.5) %.20f ��=%.20f\n", 1 / myexp(5.5),
ans - (1 / myexp(5.5)));
}
0695デフォルトの名無しさん
NGNG<問題>
英語のフレーズを読み込んで、それをモールス符号に変換するプログラムを書け。また、モールス符号のフレーズを読み込んで、それを英語に変換するプログラムを書け。
ただし、モールス符号の各文字は1個の空白で区切り、各単語は3個の空白で区切ること。
モールス符号の国際規格
A .- B .--- C -.-. D -.. E . F ..-. G--. H .... I .. K -.- L .-..
M -- N -. O --- P .--. Q --.- R .-. S ... T - U ..- V ...- W .--
X -..- Y -.-- Z --..
1 .---- 2 ..--- 3 ...-- 4 ....- 5 ..... 6 -.... 7 --... 8 ---..
9 ----. 0 -----
以上です。どうかよろしくお願いします!
0696デフォルトの名無しさん
NGNG0697デフォルトの名無しさん
NGNGえと、恐縮ですがなんか難しいです、、あと>>614同様
void main(void)だと嬉しい、、
0698デフォルトの名無しさん
NGNGJがないのは仕様ですか?
>>697
>void main(void)だと嬉しい、、
ワロタ
0699デフォルトの名無しさん
NGNG{
for(;;);
}
0701デフォルトの名無しさん
NGNGエラーがでます。指摘お願いします。search関数ら辺がエラー見たいです。
ソースここです↓
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1060403548&res=81&fi=no
0702デフォルトの名無しさん
NGNG>1.>>699が起こるので省略
わかんね。教えてケロ
0703デフォルトの名無しさん
NGNGエラーメッセージぐらい貼れよ。
それにしてもインデントの仕方がすごいな。
0704デフォルトの名無しさん
NGNG元々 614 にあった
e^x= 1+x+x^2/2!+x^3/3!+… (1)
と言う計算部分を、myexp() の中に移動しただけです。それは判りますか?
二番目の
e^x=1/e^-x=1/(1+-x+(-x)^2/2!+(-x)^3/3!+… (2)
の式は、(x=-5.5 の時、-x=5.5なので)、(1)式を用いて
=1/mpexp(-x)=1/myexp(5.5)
と書いているだけです。printf() の引数の所にこの記述があります。
なお、OS から呼び出されて起動するようなプログラムでは、必ず int main(〜) で
ないといけないという決まりがあります。void main(void) でも動いているのなら、
それは単にあなたのコンパイラや環境が運に恵まれていただけです。
0705デフォルトの名無しさん
NGNG#include <string.h>
void main() {
char *codes[] = {
".-", ".---", "-.-.", "-..", ".", "..-.", "--.", "....", "..", "J", "-.-", ".-..",
"--", "-.", "---", ".--.", "--.-", ".-.", "...", "-", "..-", "...-", ".--",
"-..-", "-.--", "--..",
".----", "..---", "...--", "....-", ".....", "-....", "--...", "---..",
"----.", "-----"
};
char *chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
char *word = "SOS HELP HELP ME 945YEN YARU KARA TASUKETE";
for (int i=0; i<strlen(word); i++) {
char c = word[i];
for (int j=0; j<strlen(chars); j++) {
if (chars[j] == c) {
printf("%s", codes[j]); break;
}
}
printf(" ");
}
}
J がぬけとる
0706デフォルトの名無しさん
NGNG0707デフォルトの名無しさん
NGNGsearch関数内のnatって・・・
初歩的なミスだな。
0708デフォルトの名無しさん
NGNG0709701
NGNGエラーがでます。指摘お願いします。search関数ら辺がエラー見たいです。
エラーは11parase error before cahracter 0201
16`nat` undeclared
ソースここです↓
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1060403548&res=81&fi=no
0710698
NGNGほい。
ttp://www.kouno.jp/home/c_faq/c11.html#14
>>699が起こるってのは
______
| ↓
| 「int main(void) が正しい」
↑ ↓
| 「void main(void) でもいいじゃん」
| ↓
 ̄ ̄ ̄ ̄ ̄ ̄
という無限ループが繰り返されるってこと。
0711707
NGNG0712デフォルトの名無しさん
NGNGreturn を返したかったら int main にしろってこと(>>699)
0713デフォルトの名無しさん
NGNG#define MAX 100
struct member {
int number;
int count;
}data[MAX];
int datanum = 0;
int search(int nat);
main()
{
省略
return 0;
}
int search(int nat){
int i;
for( i = 0; i < datanum; i++ )
if( nat == data[i].number )
{return ( i );}
return -1;
}
0714デフォルトの名無しさん
NGNGはウンコ的な文字が入力されてるため。
0716714
NGNG日本語入力の空白文字とか・・・
0717697
NGNGエディタ?
>>704
運に恵まれた?
intとかvoidとか習ってないんです、、今までずっとvoid main(void) だし。
つってもまだ初めて一月あまりですが、、
0719デフォルトの名無しさん
NGNGおまいがインデントに全角スペース使ってるからだよ!
あとwhileの中で初回とそうでないときを分ける必要は
別にないかと。
0720デフォルトの名無しさん
NGNGint も知らないやつになぜ実数の数値計算の宿題が出るのかと小一時間(ry
0721697
NGNGvoid main は おまじないだと教わりました。いずれわかると。
でもそうもいってられないようなのでどっかで調べます。
ソースを作ってくれた方有難うございました。
0722デフォルトの名無しさん
NGNGこの双方向循環リストのプログラムで、要素が一個もないときに
新たに要素を挿入する場合のプログラムの動きを追い、その様子を図示せよ。
ただし、ポインタの動き、ポインタの変更がわかるように図示しなさい。
と言われたんですがどういう風に描けばいいんですか?
0723デフォルトの名無しさん
NGNG「赤ちゃんはコウノトリがはこんでくるんだよ」
0724デフォルトの名無しさん
NGNGint a;
とかは判るよね? float x; もしくは double x; を使う宿題もらうくらいだから。
その int なんだけど。 関数は分かる? 以下分かると仮定して:
int main(〜) { 〜 } と言う風に書く時、それは、main と言う関数が int 型の返り値を返す
と言う意味。int の代わりに void を書くと、(void は中身のない、空の、という意味なので)
何も返さないという意味になる。
ただし、main 関数はプログラムが開始する時に呼び出される特別な関数なので、
勝手な形で作ってはいけなくて、int main (int argc, char *argv[]) と言う形である
こと、と決められてる。
そして、 int argc, char *argv[] の部分は、利用しないんなら省略できることになっ
てるが、だからといって勝手に ***別の型に変更してはいけない***
0725デフォルトの名無しさん
NGNGtypedef struct node *Tree
typedef struct node {
int data;
Tree left_subtree;
Tree right_subtree;
} Node;
という風に定義された構造体を木の接点とし、これらをポインタで繋げることに
よって表すことができる。 この様に表された二分木の根へのポインタが引数と
して与えられた時、その二分木の大きさ(接点の個数)を調べて返すCの関数
int size(Tree t)
を定義せよ。
構造体は習ったばっかりなので、理屈はなんとなくわかりますがプログラムが書けません。
言語はCでお願いします。
0726デフォルトの名無しさん
NGNG>ただし、main 関数はプログラムが開始する時に呼び出される特別な関数なので、
>勝手な形で作ってはいけなくて、int main (int argc, char *argv[]) と言う形である
>こと、と決められてる。
>
>そして、 int argc, char *argv[] の部分は、利用しないんなら省略できることになっ
>てるが、だからといって勝手に ***別の型に変更してはいけない***
おいおい、規格では
int main(void)
int main(int argc, char *argv[])
上記2つのいずれかと等価な方法
上記3つ以外の処理系定義の方法
と決まっている(C99)。
0727デフォルトの名無しさん
NGNG>int argc, char *argv[] の部分は、利用しないんなら省略できる
の省略なしの場合が
>int main(int argc, char *argv[])
省略の場合が
>int main(void)
のことのつもりで書いたわけです。
>上記3つ以外の処理系定義の方法
は「運に恵まれた」ってやつね。
0728デフォルトの名無しさん
NGNGif(t)
return 1+size(t->left_subtree)+size(t->right_subtree);
else
return 0;
}
0729デフォルトの名無しさん
NGNG!!!英語のフレーズを読み込んで!!!
!!!!また、モールス符号のフレーズを読み込んで!!!!
!!!!各単語は3個の空白で区切ること。!!!!!
よって,ボツ
0730デフォルトの名無しさん
NGNGint size(Tree &t) じゃないの?
あと
> 1+
根はひとつだから再帰に含むと重複してカウントされるかと
0731726
NGNG>...のつもりで書いたわけです。
了解です。
けど「省略」っていうと
"int main(int argc, char *argv[])" ⊃ "int main(void)"
って感じちゃうな。オレだけかもしれないけど。
前者と後者は対等だと思うのでちょっと引っかかりました。
>>上記3つ以外の処理系定義の方法
>は「運に恵まれた」ってやつね。
んー「処理系定義」と「運がいい」は違う気がする。
例が思いつかなくてごめんなさい。
スレ違いなんでこの辺で失礼します。
0732デフォルトの名無しさん
NGNGこれに従ったもので・・
●与えられた整数を2進数で表示する関数の作成(例えばint print_bin(int num);)
(a)num < 2 の場合: numに対応する文字を出力する(0の場合は'0'、1の場合は'1')。
(b)num >= 2 の場合: print_binにnum/2を与えて呼び出すことで、2桁目以上の桁を出力し
そのあと1行目を表示する。
0733デフォルトの名無しさん
NGNGって宿題が出た漏れはどうしたらいいのやら・・・OTZ
0734デフォルトの名無しさん
NGNG>Cの関数
> int size(Tree t)
>を定義せよ。
C++の国の人はお帰り下さい。
0735デフォルトの名無しさん
NGNGvalue=0の時に何も表示されませんよ?
0736デフォルトの名無しさん
NGNGじゃあ,何が正しいの?
ちゃんと,宿題を片付けてあげたら?
0737735
NGNGいや、私572なんですけど。
0738695です
NGNGありがとうございます!助かりました!
0739デフォルトの名無しさん
NGNG入力してその演算を行う。これを繰り返すプログラムを作りなさい。
アルファベット1文字に対して以下の演算を対応付ける。
p ・・・ +
m ・・・ −
d ・・・ ÷
t ・・・ ×
文字qを入力した場合にプログラムを終了することとする。これ以外の文字
が入力された場合は無視する(何もしない)。
という問題です。文字の授業に入ってからなんかわからなく
なってしまいました・・・。わかる方どうぞよろしくお願いします<(_ _)>
0740デフォルトの名無しさん
NGNGLatexとか…、たしかフローチャート作成支援のスタイルファイルが落ちてたはず。
0741デフォルトの名無しさん
NGNG人二モノヲ尋ネル態度デハナイ 減点10
0742デフォルトの名無しさん
NGNG0743デフォルトの名無しさん
NGNGtimes なの
0744728
NGNG>> 1+
>根はひとつだから再帰に含むと重複してカウントされるかと
何を言いたいのかわけわからん。
お前さんの正しいと思うコードを晒してくれ。
>int size(Tree &t) じゃないの?
出題がC言語限定な上に,
typedef struct node *Tree;
だぞ。
0745デフォルトの名無しさん
NGNG#include <stdio.h>
int main(void)
{
int ch;
double x, y;
for (;;){
puts("input operation");
ch = getchar();
if (ch == 'q') break;
printf("x:"); scanf("%lf", &x);
printf("y:"); scanf("%lf", &y);
switch(ch){
case 'p': printf("%f + %f = %f\n", x, y, x+y); break;
case 'm': printf("%f - %f = %f\n", x, y, x-y); break;
case 'd': printf("%f / %f = %f\n", x, y, x/y); break;
case 't': printf("%f * %f = %f\n", x, y, x*y); break;
}
getchar(); /*改行飛ばし*/
}
return 0;
}
0746デフォルトの名無しさん
NGNG古い規格で組まれてるコードだと言ってる人もいるんですが
どこをなおさないといけないのやらわかりません。
おしえてください
#include <stdio.h>
#include <string.h>
class String {
protected:
intl;
char*s;
public:
String(char *str) {
l = strlen(str);
s = new char[l+1];
strcpy(s, str);
}
voidset(char *);
String*append(char *);
String *append(String *);
};
0747デフォルトの名無しさん
NGNGint len;
if((len = strlen(str))>=l) {
if(s != 0) delete s;
l = len + 1;
s = new char[l];
}
strcpy(s,str);
}
0748デフォルトの名無しさん
NGNGint len;
char *os;
len = strlen(str);
if(s != 0) len += strlen(s);
if(len >= l) {
l = len + 1;
os = s;
s = new char[l];
if(os != 0) {
strcpy(s, os);
delete os;
}
}
strcat(s, str);
return this;
}
String *String::append(String *str) {
String *ps = new String(s);
ps->append(str->s);
return ps;
}
0749デフォルトの名無しさん
NGNGint d[256];
void setd();
public:
Pattern(char *s):String(s) {
setd();
}
int find(const char *);
};
void Pattern::setd() {
char *pt;
int i;
int length = strlen(s);
for(i = 0; i<256; i++)
d[i] = i;
for(pt=s,i=length-1;i>0;i--,pt++) {
d[(unsigned int)*pt] = i - length + 1;
}
};
0750デフォルトの名無しさん
NGNG{
int i,j;
const char *pt;
int textlength;
int nvd;
int maxd;
int length = strlen(s);
textlength = strlen(text);
maxd = 0;
i = 0;
j = length -1;
pt = text + i + j;
0751デフォルトの名無しさん
NGNGwhile(j>=0) {
nvd = d[(unsigned int) *pt] +j;
if(nvd > maxd)
maxd = nvd;
if(*pt !=s[j]) {
i += maxd;
j= text+i+j;
maxd = 0;
break;
} else {
if(j==0)
return i+1;
else
j--, pt--;
}
}
}
return 0;
}
0752デフォルトの名無しさん
NGNGエラーメッセージとかは?
あと長いソースを貼るときは>>1とか活用しる。
0753デフォルトの名無しさん
NGNGmain(int argc, char** argv)
{
const int maxLen = 200;
char line[maxLen+1];
int len = 1;
int cn;
int n;
Pattern *pp;
if(argc!=2) exit(1);
pp = new Pattern*(argv+1);
while(gets(line)!=0) {
if((n = pp->find(line))>0) {
printf("(%3d):found at %d", ln, n);
cn = n;
while((n = pp->find(line+cn))>0) {
cn += n;
printf(",%d", cn);
}
printf(".\n");
}else
printf("(%3d):not found.\n",ln);
ln++;
}
}
0754デフォルトの名無しさん
NGNGerror C2059: 構文エラー : ';'
error C2449: '{' を見つけました (関数のヘッダーがないかもしれません)。
error C2059: 構文エラー : '}'
error C2143: 構文エラー : '{' が '*' の前に必要です。
error C2143: 構文エラー : '{' が ':' の前に必要です。
error C2059: 構文エラー : ':'
error C2143: 構文エラー : '{' が '*' の前に必要です。
error C2143: 構文エラー : '{' が ':' の前に必要です。
error C2059: 構文エラー : ':'
error C2061: 構文エラー : 識別子 'Pattern' がシンタックスエラーを起こしました。
error C2059: 構文エラー : ';'
error C2059: 構文エラー : ':'
error C2143: 構文エラー : '{' が ':' の前に必要です。
error C2059: 構文エラー : ':'
error C2143: 構文エラー : '{' が ':' の前に必要です。
0755デフォルトの名無しさん
NGNG0756デフォルトの名無しさん
NGNG0757デフォルトの名無しさん
NGNGerror C2057: 定数式が必要です。
error C2466: サイズが 0 の配列を割当てまたは宣言しようとしました。
error C2133: 'line' : サイズが不明です。
error C2065: 'Pattern' : 定義されていない識別子です。
error C2065: 'pp' : 定義されていない識別子です。
warning C4552: '*' : 演算子にプログラム上の作用がありません。作用を持つ演算子を使用してください
warning C4013: 関数 'exit' は定義されていません。int 型の値を返す外部関数と見なします。
error C2065: 'new' : 定義されていない識別子です。
error C2146: 構文エラー : ';' が、識別子 'Pattern' の前に必要です。
error C2297: '*' : 不正な右オペランドです。
error C2223: '->find' : 左側が構造体か共用体に対するポインタではありません。
error C2065: 'ln' : 定義されていない識別子です。
error C2223: '->find' : 左側が構造体か共用体に対するポインタではありません。
0758デフォルトの名無しさん
NGNG0759デフォルトの名無しさん
NGNGあ、あの〜・・・
0760デフォルトの名無しさん
NGNGソースがバグってる。
0761デフォルトの名無しさん
NGNGまずexit()使うんならstdlib.hもインクルードしとく。
×intl; ○int l;
×voidset ○void set
Pattern::find()内、j= text+i+j;これじゃint型の変数にchar *ポインタ代入してる。
あとmain()の中身にlnとかいう変数がある。lenか?
ついでに122行目が意味不明。pp = new Pattern(argv[1]);のことか?
中身ちゃんと読んでないので悪しからず。
0762デフォルトの名無しさん
NGNGありがとうございました。
exit()をreturn()にし、スペースを直し、打ち込みミスを訂正し、
122行目を仰るとおりになおし、
mainの前にint、メインの終わりにreturn 0を書き足し、
lnをlenに直したところ
無事にうごきました!!
しかしちゃんと読んで無くてもそこまで分かるなんて761さんは
すごいですね。
連続ソース投稿どうもご迷惑おかけしました
0763デフォルトの名無しさん
NGNGおお、これを参考にしつつ文字のプログラムも理解できるように頑張ります
本当にありがとうございました<(_ _)>
0764デフォルトの名無しさん
NGNG例えばこれはどこが間違っているのでしょうか?
よろしくお願いします。
【suuji.dat】
640 83.7
【main】
#include <stdio.h>
#include <math.h>
int main (void){
int hatyou;
double a;
FILE *S;
S=fopen("suuji.dat","r");
fscanf(S,"%d%f",&hatyou,&a);
printf("%d %f\n",hatyou,a);
fclose(S);
return 0;
}
【実行結果】
640 -9255960488578375300000…0.000000
↑になってしまいます。
0765デフォルトの名無しさん
NGNGかな?
0766デフォルトの名無しさん
NGNGすっごい!できました!
感激です。ありがとうございました!
1年半Cから離れていただけで、こんなにも忘却している自分が恥ずかしいです。
(ファイル操作は初めてやったんですけど…。)
0767デフォルトの名無しさん
NGNGなお方角は八方位で北:0 北西:1 西:2 南西:3 南:4 南東:5 東:6 北東:7として数値で表す。
座標は第一象限のみの場合でよい(↓こんな感じです)
北
│
│
│ ・P(px,py)
│
│
│
│
│ ・N(nx,ny)
│
│
西.. ─┼─────────────東
多分arctanとか使ってやると思うのですが数学苦手で。
あと例えば東と判定するのは真東だけじゃなく
東北東気味、東南東気味のものも含むようにしなくてはいけないそうです。
言語はCでお願いします。
0768デフォルトの名無しさん
NGNG0769デフォルトの名無しさん
NGNG構造体で極座標表現しれ
0770デフォルトの名無しさん
NGNG+-----+P
|
|
+
N
角度計算するだけだろ?
0771デフォルトの名無しさん
NGNGそれとも自分で作らなくてはならないのでしょうか?
提出期限の迫った課題に追われています。
ご存知の方、教えてください。
よろしくお願いします。
0772デフォルトの名無しさん
NGNGこの場合、角度を求めるならatan2を使えば簡単。
方角が多すぎてここには貼れなかった…。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=118
0773jpg
NGNGR、G、Bごとに画素値のヒストグラムを作るプログラムを作りたいのですが
jpg画像の色情報はどのように取得すればよいのでしょうか?
よろしくお願いします。
0774772
NGNGすまん、ミス。角度がマイナスになる場合を忘れてた。
double angle = RadToDeg(atan2(ny-py,nx-px));
の次の行に
if(angle<0)angle+=360;
を加えてください。
0776デフォルトの名無しさん
NGNG0777772
NGNG課題をよく読んでなかったです…。
でもatan2で角度を求めたら似たようなことやるだけなので
後はがんがれ…(-_-
0778デフォルトの名無しさん
NGNGこれってそれぞれの色の数の総計がわかればよいのでしょうか
1)IPictureとIStreamを使ってJPGを読みこむ、
2)ビットマップハンドルを取得
3)GetPixelで1ピクセルずつアクセスして色を取得
くらいでいいのかな…
↓クラスにまとめましたが、違ってたら適当に書き直してください。
貼り付けてあるソースではmain関数で"test.jpg"を読むようになっています。
JPGを読みこんで、ビットマップハンドルを取得している時点で
なんとでもできると思います。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=119
0779デフォルトの名無しさん
NGNG0781デフォルトの名無しさん
NGNG0782デフォルトの名無しさん
NGNG0783デフォルトの名無しさん
NGNGコンピューターがランダムでグー、チョキ、パーを出す、
ジャンケンのプログラムを作成しなさい。
また、勝ち、負け、あいこの結果も表示させなさい。
例)
g(グー)c(チョキ)p(パー)のどれかを入力してください。 (printfで表示させる。)
g (プレイヤーが入力。)
じゃんけんぽん! (printfで表示させる。上がgcp以外の時は「エラー」を表示させ、最初の処理に戻る。)
チョキ (コンピュータがランダムで表示。)
あなた【グー】、コンピュータ【チョキ】で【あなたの勝ち】です。(結果表示。)
よろしくお願いします。
0784デフォルトの名無しさん
NGNG#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int get_index(int h){
switch(h){
case 'g': h = 0; break;
case 'c': h = 1; break;
case 'p': h = 2; break;
default: h = -1;
}
return h;
}
int main(){
char buf[256];
int h1, h2;
char *hand[] = {"グー","チョキ", "パー"};
char *result[] = {"引き分け", "あなたの負け","あなたの勝ち"};
srand(time(NULL));
for(;;){
printf("g(グー)c(チョキ)p(パー)のどれかを入力してください。\n");
h1 = get_index(*fgets(buf, sizeof(buf), stdin));
if(h1 == -1){ printf("エラー"); continue;}
printf("じゃんけんぽん!\n");
h2 = rand() % 3;
printf("あなた【%s】、コンピュータ【%s】で【%s】です。\n",hand[h1], hand[h2], result[(h1 - h2 + 4) % 4]);
}
return 0;
}
0785デフォルトの名無しさん
NGNG×printf("あなた【%s】、コンピュータ【%s】で【%s】です。\n",hand[h1], hand[h2], result[(h1 - h2 + 4) % 4]);
○printf("あなた【%s】、コンピュータ【%s】で【%s】です。\n",hand[h1], hand[h2], result[(h1 - h2 + 3) % 3]);
0786教えてください
NGNGVC++6.0では動きませんでした。
どこが変なのでしょうか
どこをどうなおすと動くのか教えてください
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1060403548&res=83
0787デフォルトの名無しさん
NGNG0788デフォルトの名無しさん
NGNG0789教えてください
NGNGせめて何をしようとしているコードなのか説明して、
もう少しコメントのはいったソースにして欲しい…。
漠然と全ソースをULして読めってのは…。
何をやろうとしているのか調べてませんが、
↓以下エラー訂正部分。これらを直したら実行はできました。
class Dimension 宣言内
virtual Dimension* operator-(Dimension+);
→virtual Dimension* operator-(Dimension*);
Input::getToken内
LUNITTIME→未定義
Dimensionクラスのいろんなメソッド
getbaseがメンバではない→getBaseの間違い
int main()内
戻り値が無い→return 0;でも書いて
0790デフォルトの名無しさん
NGNGtimeというのは使ったことがありません。
すいません、もう少し具体的に教えていただけないでしょうか?
0791デフォルトの名無しさん
NGNG閏秒情報が無いので正確に変換できない。
0792デフォルトの名無しさん
NGNG閏秒は無視してくださって結構です。
0793デフォルトの名無しさん
NGNG秒数を入力ってことは
取得するのではなくキーで入力するってことですか?
それなら普通にscanfで入力すればいいのでは。
>>791
ワロタ
意地悪っすなw
#include<stdio.h>
int main()
{
int time,hour,minute,second;
printf("時間を入力\n");
scanf("%d",&time);
second = time % 60;//秒を求める
time /= 60;//timeを秒以下を切り捨てて分に変換
minute = time % 60;//分を求める
hour = time / 60;//分以下を切り捨てて時間に変換
printf("%d時間%d分%d秒\n",hour,minute,second);
return 0;
}
0794教えてください
NGNG失礼しました。
これは単位つき電卓のプログラムで、
2m + 3mなどと入力すると Result = 6mとでるようなソースです。
あと、Input::getTokenのLUNITTIMEはLUNITNAMEの間違いでした。
仰るように訂正してみたのですが、
いまだにInput.hの中の
char getToken(Dimension*&);がシンタックスエラーになってしまいます…。
他のエラーはなくなったのですが…
???なぜ???
0795教えてください
NGNGいやそりゃ…Input.h内ではDimensionなんて定義されてないですから。
Input.h内に#include "Dimension.h"を書いてください。
実行したら演算子の優先順位を考慮した電卓として機能しました。
ソースは大丈夫そうです。
0797デフォルトの名無しさん
NGNGint型変数nに数値(>3)を読み込み、n個分の配列を(動的に)用意し、任意の実数値を入力できるようにせよ。
次に、入力された数値の中から任意の2つの(異なる)数値を取り出し、掛け算、割り算の計算を行い、その結果が最も大きくなる組み合わせと計算結果を表示するプログラムを作成せよ。
ただし、用いる変数はn以外はすべてポインタを用いて表現すること(動的に配列を宣言して使用してもよい)。
Cです。よろしくおねがいします。
0798教えてください
NGNGInput.h内に#include "Dimension.h"を加えると
シンタックスエラーはでなくなりましたが
error C2011: 'Dimension' : 'class' で示される型としてすでに定義されています。
というエラーがでてしまいました…。
頭がウニになってしまいそうです。
今度はどこがいけないんだろう、Dimension.hのインクルードがどっかでかぶってるってことですか???
0799教えてください
NGNGすまん。実は手を抜いて
1つのファイルにコピーしてコンパイルしていた。
多重定義を回避するには
Dimension.h内の一番最初に
#ifndef __DIMENSION__
#define __DIMENSION__
Dimension.h内の最後に
#endif
とでもかいてください。
これは多重定義を回避するために
よく使うので覚えておいた方がいいと思います。
VC6なら↑の代わりにに
最初に#pragma onceとかくだけでもいいです。
0800教えてください
NGNGうお〜無事実行できました。
どうもありがとうございました。
感涙
0801デフォルトの名無しさん
NGNG>予想と南北が逆でしたが理解できました
180度回して考えるのが普通だと思う。
// 0 ==d000 ==rad -PI
// 4 ==d180 ==rad 0
// 8 ==d360 ==rad PI
int main(){
char buf[1024]; char *string;
double px, py; double nx, ny;
int octal_dir;
printf("input P:"); fgets(buf,sizeof(buf),stdin);
px = atof( strtok(buf,",") ); py = atof( strtok(NULL,",") );
printf("input N:"); fgets(buf,sizeof(buf),stdin);
nx = atof( strtok(buf,",") ); ny = atof( strtok(NULL,",") );
if( px==py && nx==ny )
octal_dir = 0;
else
octal_dir = 4.*atan2(px-nx,py-ny)/M_PI + 4.5;
printf("Octal direction: %d\n",octal_dir);
return 0;
}
0802デフォルトの名無しさん
NGNGint main(){
int n;
char buf[1024];
fgets(buf,sizeof(buf),stdin);
if( !((n=atoi(buf)) > 3)) return 1;
{ double array[n]; double *p=array,*q;
double div_max=0, mul_max=0;
while(1){
printf("input value:");
fgets(buf,sizeof(buf),stdin);
if( !buf ) break;
*p++=atof(buf);
if( p == array+n ) break;
}
for(p=array; p<array+n; ++p){
for(q=array; q<array+n; ++q){
if(p==q) continue;
mul = p*q; div = p/q;
if(mul>mul_max) mul_max=mul; if(div>div_max) div_max=div;
}
} printf("mul_max:%g div_max:%g\n",mul_max, div_max);
}
return 0;
}
0803デフォルトの名無しさん
NGNG0804デフォルトの名無しさん
NGNG0805デフォルトの名無しさん
NGNG解答ありがとうございます。しかし私の環境では、コンパイルではじかれてしまいました。
2ch.c: In function `main':
2ch.c:4: `stdin' undeclared (first use in this function)
2ch.c:4: (Each undeclared identifier is reported only once
2ch.c:4: for each function it appears in.)
2ch.c:18: `mul' undeclared (first use in this function)
2ch.c:18: invalid operands to binary *
2ch.c:18: `div' undeclared (first use in this function)
2ch.c:18: invalid operands to binary /
あと、mulやdivについてですが、おそらくこれらもポインタで処理しなければならないようです。
0806デフォルトの名無しさん
NGNG変更部分のみ
冒頭に付け加える
+#include <stdio.h>
+#include <stdlib.h>
途中を差し替える
- mul = p*q; div = p/q;
- if(mul>mul_max) mul_max=mul; if(div>div_max) div_max=div;
+ if (*p * *q > mul_max)
+ mul_max = *p * *q;
+ if (*p / *q > div_max)
+ div_max = *p / *q;
0807デフォルトの名無しさん
NGNGありがとうございました。
無事コンパイルも通り、動作も確認できました。
後は自分でいろいろいじってみようと思います。
0808デフォルトの名無しさん
NGNG※与えられた整数を2進数で表示するときの桁数を求める関数(再帰的に桁数を求める)と
与えられた整数を2進数で表示する関数(再帰的に表示する)を作成すればよい。
0809デフォルトの名無しさん
NGNGvoid dispBinary( unsigned long n )
{
struct Printer
{
unsigned char b;
Printer( unsigned long n ) : b ( (unsigned char)( n & 1 ) ) { if ( !n ) throw b; }
~Printer() { putchar( '0' + b ); }
};
Printer p( n );
dispBinary( n >> 1 );
}
int main()
{
try { dispBinary( 0x1234 ); }
catch( unsigned char ) {}
return 0;
}
0810デフォルトの名無しさん
NGNG0811これでいけるかな?
NGNGint mona(int num)
{
int x=0;
if(num )
x = mona(num/2) * 10;
return x + num%2;
}
int main()
{
int num;
scanf("%d",&num);
printf("%d",mona(num));
return 0;
}
0812デフォルトの名無しさん
NGNGtypedef struct node *Tree
typedef struct node {
int data;
Tree left_subtree;
Tree right_subtree;
} Node;
という風に定義された構造体を木の接点とし、これらをポインタで繋げることに
よって表すことができる。 この様に表された二分木の根へのポインタが引数と
して与えられた時、その二分木の大きさ(接点の個数)を調べて返すCの関数
int size(Tree t)
を定義せよ。
自分Cしか使えないので、Cでわかりやすくお願いします。
構造体やったばかりでよくわからない・・・
0813デフォルトの名無しさん
NGNGすみません。まちがえてもう一回載せてしまいました。無視してください。
0815jpg
NGNGありがとうございます。
宿題の内容は、が措置の合計を出す、ではなく
画素値のヒストグラムを作ることなので
Rが100であるピクセルがいくつ、とかRGBごとに数えていくように
したかったんです。
大変参考になりました。これから頑張ってみます。
0816デフォルトの名無しさん
NGNGCでなくていいなら面倒なことしないでも、適当にツール入れてこんな感じでR値の出現数出せるけどね。(G,Bは -f 1を2,3にする)
%cat HOGE.jpg | jpegtopnm | ppmhist -noheader | sed -e 's/ */ /'g -e 's/^ //' | cut -f 1 -d " " | sort -n | uniq -c
0817デフォルトの名無しさん
NGNGどうかお願いできますでしょうか.
以下,問題文全文です.
===========================================
1から999間での間の整数N個(つまり整数配列AI[N])をランダムに発生させ
,その平均値と分散(いずれも実数値)を表示するプログラムを以下の仕様
に従って作成しなさい.
・main関数で,整数の配列AI[N]を確保する.
・整数配列AI[]とサイズNを引数にして,その配列の要素全てに題意の
ランダムな整数(1〜999)を格納する初期化関数myinit(...)を作成する.
・整数配列とサイズを引数にして,その配列の全ての要素を10個ずつ
表示する関数mydisplay(...)を作成する.(注:1行に10個ずつという意味.
N=100なら10個×10行)
・整数配列とサイズとフラグ(平均値か分散かを決める)を引数にした
関数mycalc(...)を作成する.戻り値は,フラグによって変わるように設計
すること.
・mainから初期化関数と計算の関数をフラグを変えて呼び出し,すなわち
まず平均値を求めるように指示して呼び出し,次に分散を求めるように
指示して呼び出し,それぞれの結果を表示させる.
注)Nの値ははじめに#defineを用いてN>100の範囲内で適当に与えなさい.
============================
以上です.よろしくお願いします.
0818デフォルトの名無しさん
NGNG0819デフォルトの名無しさん
NGNG何いってんだおまいは。
0820デフォルトの名無しさん
NGNG0821デフォルトの名無しさん
NGNGこれでいいんかな。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1060403548&res=84
0822デフォルトの名無しさん
NGNG0823デフォルトの名無しさん
NGNG#include <stdlib.h>
#include <stdio.h>
#define N 99999
enum MODE{ AVERAGE, VARIANCE };
void myinit(int *AI,int N){ for(--N;N>=0;--N) AI[N]=1000.*rand()/(RAND_MAX+1.); }
double mycalc(int *AI,int N, enum MODE mode){
double avg=0,var=0; int *p;
for(p=AI;p<AI+N;++p) avg+=*p;
avg/=N; if( mode == AVERAGE ) return avg;
for(p=AI;p<AI+N;++p) var+=pow(*p-avg,2);
var/=N-1; if( mode == VARIANCE ) return var;
return 0;
}
int main(){
int *AI = malloc(sizeof(int)*N);
myinit(AI,N);
printf("Average:%g Variance:%g\n",mycalc(AI,N,AVERAGE),mycalc(AI,N,VARIANCE));
return 0;
};
0824822
NGNG0825823
NGNG0826817
NGNGただ,ランダムな数を取るやり方が未習なやり方な気がするのですが,
授業ではたとえば0〜9の16個のランダムな数の取り方として
srand(time(NULL));
for (i=0;i<N16;1++){
ai[i]=rand()%10;
みたいなのを習いましたので,もしよろしければこれに準じたバージョンも
作っていただけるとうれしいです.
注文多くてすいません.
0827デフォルトの名無しさん
NGNG>>821 であってる。
0828823
NGNG分散は自由度平均だから /(N-1)
0829デフォルトの名無しさん
NGNGさすがに、その部分くらいは自分で書き換えた方が…
0830817
NGNG…そうですね(;´д`)
甘えすぎました.スマソ.
0831デフォルトの名無しさん
NGNG0832デフォルトの名無しさん
NGNG自己組織化臨界?
0833デフォルトの名無しさん
NGNGデータ値が dt であるものを探してそのノードへのポインタを返す関数
node_t * find_node(node_t * nd_ptr, data_t dt)
を作れ。
C言語でお願いします。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1060403548&res=85
0834デフォルトの名無しさん
NGNG自 分 で 作 れ
0835デフォルトの名無しさん
NGNGいつかの質問の使いまわしですが、解答を貼りました。
main関数内でとりあえず"test.txt"を読んでいます。
あと、STLを使って楽しています。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=120
0836デフォルトの名無しさん
NGNG大阪大学・工学部・電子情報エネルギー工学科・計算機システム。
実は何回もここで質問していた俺(;´Д`)
0837デフォルトの名無しさん
NGNG0838デフォルトの名無しさん
NGNGさらにヤル気がうせました
0839デフォルトの名無しさん
NGNG多次元配列って言っても内部では一次元配列として存在してるわけで。
3次元配列 int a[10][10][20]; というのは
1次元配列 int a[2000]; と意味は同じ。
x=5、y=9、z=13とおいた場合
a[x][y][z]=13; を一次元配列で書きたい場合は
a[x+(x*y)+(x*y*z)]=13; とすればいい。
空間図形って理解してます?
小学生でも分かると思いますがw
0840デフォルトの名無しさん
NGNG0841デフォルトの名無しさん
NGNGむしゃくしゃしてやった。あまり反省する気はない。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=121&fi=no
0842デフォルトの名無しさん
NGNG4次元以上の表現は?
GUIで
0843デフォルトの名無しさん
NGNGへぇーへぇーへぇー
でもそれだとa[9][9][2]とa[7][7][4]が
どっちもa[252]になるような。
0844デフォルトの名無しさん
NGNG#include <iostream>
#include <string>
#include <map>
using namespace std;
int main()
{
map<string, int> hindo;
string str;
while(cin >> str)
hindo[str]++;
for(map<string, int>::iterator i = hindo.begin(); i != hindo.end(); i++)
cout << i->second << " : " << i->first << endl;
return 0;
}
0845デフォルトの名無しさん
NGNGa[x+(y*MAX_X)+(z*MAX_X*MAX_Y)]=13;
じゃないんですかね
0846839
NGNGA=10
B=20
C=30
Box[A][B][C]
このような多次元配列の場合、一次元配列で表すと
Box[A*B*C]
となる。上記の設定で
Box[3][7][21]=255
のようなことを一次元配列で表すと
Box[3+(7*A)+(21*(A*B))]=255
となる。
0849デフォルトの名無しさん
NGNGその過程で、モデルを構成する1000個の粒子のdt毎の位置座標
を二次元配列を用いて算出を行いたいのですが、うまくいきま
せん。具体的には、プログラムのコンパイルとビルドは行える
のですが、実行段階でスタックエラーが発生してしまいます。
使用ソフトは、Visual C++6.0です。また、プログラムの全文
は以下のURLになります。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1060403548&res=86
ご指導よろしくお願い致します。
0850デフォルトの名無しさん
NGNG自動変数としてとるには配列が大きすぎる。
VC++6.0ならオプションでスタックの大きさを変更すればもしかしたらできるかもね。
もしくはstaticをつけるか。
0851デフォルトの名無しさん
NGNG[プロジェクト]→[設定]の[リンク]タブ開く。カテゴリを[アウトプット]に。
[スタックアロケーション]の[予約]のところに0x400000と入力してリビルド。
それでもエラーが出るようだったら値をもっと大きくしてくれ。
あと、178行目rad[i][j]とかなってるぞ。radは一次元配列のようだが。
0852849
NGNG>851
ありがとうございます。早速試してみます。
178行目は、一次元配列に変更するさい、見落としていた
ものと思われます。ご指摘ありがとうございます。
0853849
NGNGありがとうございました。
0854デフォルトの名無しさん
NGNG最初に四則演算を示すアルファベット1文字を入力し、次に二つの実数を
入力してその演算を行う。これを繰り返すプログラムを作りなさい。
アルファベット1文字に対して以下の演算を対応付ける。
p ・・・ +
m ・・・ −
d ・・・ ÷
t ・・・ ×
これ以外の文字を入力した場合に、プログラムを終了することとする。
余力のある人は大文字でも対応できるようにしなさい。
0855デフォルトの名無しさん
NGNG0856デフォルトの名無しさん
NGNG>>739-辺り。この頃、同じ学校のヤシの質問多いな。
>>855
できる。
0857デフォルトの名無しさん
NGNG0858デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=122&fi=no
0859858
NGNG訂正後:q(Exit)
でよろしく
0860フォルトの名無しさん
NGNG乱数を基本挿入法を使ってソートするプログラムを作成してください。
ポインタ使用不可です。
よろしくお願いします。
0861デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=123&fi=no
0862デフォルトの名無しさん
NGNG0863862
NGNG貼らなくて良かったけど恥ずかしい、、。すんません独り言で。
0864デフォルトの名無しさん
NGNGDont'mind.
0865デフォルトの名無しさん
NGNG0866フォルトの名無しさん
NGNGありがとうございましたm(__)m
0867フォルトの名無しさん
NGNG>861
ありがとうございました^^
0868デフォルトの名無しさん
NGNGユーザーがa,bを入力すると
ax-by=1となるx,yを出力するプログラムをつくれ
ただし、ユーザーが互いに素でない
a,bを入力することを考慮する必要はない
a,bは1<a<bを満たす自然数です
x,yは負でも大丈夫です
どなたかおながいします。
拡張ユークリッドの互除法などを
いろいろと具具って見たのですが
わたしにはユークリッドの互除法を理解することで精一杯でした
0869デフォルトの名無しさん
NGNGx,yは正となる最小の自然数でお願いします。
0870845
NGNG0871デフォルトの名無しさん
NGNGx,yは整数でつか?
0872871
NGNG0873デフォルトの名無しさん
NGNGa=49, b=237が入力されたとする。
237と49に対してユークリッド互除法を解くと
237 = 49*4+41 (r1 = 41 = b-4*a)
49 = 41*1 + 8 (r2 = 8 = a-r1)
41 = 8*5 + 1 (r3 = 1 = r1-5*r2)
8 = 1*8
したがって
1 = r1-5*r2 = r1-5*(a-r1) = 6*r1-5*a = 6*(b-4*a)-5*a = 6*b-29*a
したがって
6*b-29*a = 1
これを237*x-49*y=1と比較すると、a=-49, b=237なので
x = 6, y = -49 が1つの解の組だとわかる。
0874デフォルトの名無しさん
NGNG単語登録,リスト表示,終了の各機能が選択可能なメニュー画面を表示する.ただし,登録可能な単語数を表示し,リスト内と同一単語の登録は受付けない.また,リスト表示は登録した英単語を含めるものとする.
0875デフォルトの名無しさん
NGNG0876デフォルトの名無しさん
NGNGprintf("%.2f",a);
0877デフォルトの名無しさん
NGNG***** 英単語管理 *****
[1] 英単語登録
[2] 英単語リスト
[99] 終了
機能を選択してください:2
***** 英単語リスト *****
No. 1: programming
No. 2: exercise
No. 3: information
(省略)
No. 19: science
No. 20: function
20個の英単語が登録されています.
0878874
NGNG[1] 英単語登録
[2] 英単語リスト
[99] 終了
機能を選択してください:1
***** 英単語登録 *****
[0] メニューへ戻る
登録可能な英単語数: 80
英単語No. 21:exercise
この英単語は登録済みです.
登録可能な英単語数: 80
英単語No. 21:mathmatics
登録可能な英単語数: 79
英単語No. 22:0
お願いします。
0879デフォルトの名無しさん
NGNGありがとうございました〜
0880デフォルトの名無しさん
NGNG割り切れることを判別するのは、%で余りがなければその結果は「真」である。
例えば、5%3は2であるから、5%3は偽(真ではない)である。
a=5;
if(a%3==0)printf(“割り切れる“);
else
printf(“割り切れない“);
となる。
お願いします。
0881デフォルトの名無しさん
NGNG#include <stdio.h>
#include <stdlib.h>
int main(){
int a,i;
printf("input a=");
scanf("%d",&a);
for(i=2;i<a;i++){
if(!(a%i)){
printf("%dで割り切れる",i);
return 0;
}
}
printf("素数\n");
return 0;
}
0882725
NGNGヒントだけでもおねがいします。
0884デフォルトの名無しさん
NGNGこんなんでどうでしょう。
再帰を使って、右・左の枝の個数を数える、それに自分の分を足して返す。
int size(Tree t){
int r_num=0,l_num=0;
if(t->right_subtree!=NULL){
r_num=size(t->right_subtree);
}
if(t->left_subtree!=NULL){
l_num=size(t->left_subtree);
}
return (r_num+l_num+1);
}
0885デフォルトの名無しさん
NGNG行単位で、3個以下の単語を入力する。
4個以上の入力には、無効メッセージを出す。
よろしくお願いします。
0886デフォルトの名無しさん
NGNGこんな感じか。
char buf[256], s1[16], s2[16], s3[16];
char c;
fgets(buf, sizeof buf, stdin);
if (sscanf(buf, "%s%s%s %c", s1, s2, s3, &c) > 3){
puts("無効");
}
0887デフォルトの名無しさん
NGNGありがとうございます。
要するに%c の所に何かあったら無効と表示するということですか?
0888デフォルトの名無しさん
NGNG#include <string.h>
int
main(int argc, char **argv) {
int op_cnt;
char str[1024];
if (argc>4) {
fprintf(stderr,"argument is less than Three");
}
memset(str,0,1024);
for (op_cnt=1;op_cnt<argc;op_cnt++){
sscanf(argv[op_cnt],"%s",str);
printf("%s\n",str);
}
return 0;
}
0889デフォルトの名無しさん
NGNGそこに入るとsscanfの戻り値が4になるからね。
その前の空白はfgetsのときに入る改行を飛ばすため。
0890デフォルトの名無しさん
NGNG理解できました。
感謝いたします!!
0891デフォルトの名無しさん
NGNG繰り返しにはfor文を用いる
よろしくお願いします。
0892デフォルトの名無しさん
NGNG#include <stdio.h>
int main(void){
int n, i, j;
printf("n >>"); scanf("%d", &n);
for (i=0;i<n;i++){
for (j=0;j<n;j++){
printf("* ");
}
puts("");
}
return 0;
}
0894デフォルトの名無しさん
NGNGputchar('\n');
でもいいけど。
0895891
NGNGありがとうございました
0896デフォルトの名無しさん
NGNG#include <stdlib.h>
#include <string.h>
int main (int argc, char **argv){
int n,i;
char **matr_2;
char *ptr;
fscanf(stdin,"%d",&n);
if(n<0){
fprintf(stderr,"invalid value!\n");
exit(1);
}
matr_2 = malloc(sizeof(char*)*n);
if (!matr_2) {
fprintf(stderr,"can not allocate\n");
exit(1);
}
for (i=0; i<n; i++) {
ptr = malloc((sizeof(char)*n+1));
if (!ptr) {
fprintf(stderr,"can not allocat\n");
exit(1);
}
memset(ptr,'*',n);
ptr[n] = '\n';
matr_2[i] = ptr;
}
for (i=0;i<n;i++) {
fprintf(stdout,matr_2[i]);
}
return 0;
}
0897デフォルトの名無しさん
NGNGおっさん,目ぇ節穴か?
すぐ下の>>728にあるじゃねぇか。
0898デフォルトの名無しさん
NGNGa[(x * y) * (x * y + 1) / 2 + y] = 13;
とすれば幅(高さ)に関係なく2次元が扱える。
#(10 * 5)の空間だろうが(10 * 20)の空間だろうが関係ない。
これを拡張すれば3次元でもつかえるのだが、
↑の式の分子の部分が(x * y * z) * (x * y * z + 1) * (x * y * z + 2)となった時点で馬鹿馬鹿しくなった。
#でもこれ、なんかに応用できないかなぁ。
0899デフォルトの名無しさん
NGNG>a[(x * y) * (x * y + 1) / 2 + y] = 13;
3次元扱っているようにしか見えないよぅ。・゚・(ノД`)・゚・。
0900デフォルトの名無しさん
NGNG次の動作を行うプログラムheap.cを作成せよ.
ファイルに保存された整数データ(データの保存形式は自由)を1つずつ読み込み,ヒープを構成する.
プログラムはデータをひとつ読み込むごとにヒープの状態を表示する.
すべてのデータを読み込んだら,ヒープに保持している最小のデータを1つずつ削除する.この時再構成されたヒープの状態を削除の都度表示する.
表示された結果をソースファイルの最後にコメントとしてつけること
0901デフォルトの名無しさん
NGNGどこまでも突き詰めて、究極のハッシュ関数に応用すれ
0902874
NGNG0903デフォルトの名無しさん
NGNGまず次のような二つの関数を作成する。
�@一つの正整数を引数として受け取り、その整数の各桁の和(345なら3+
4+5=12)を返す関数。
�A一つの正整数を引数として受け取り、それが3で割り切れなければ0、割り
切れれば0以外を返す関数。
これらの関数を用いて、いくつかの正整数を入力して、それが3で割り切れるか
否かを表示する。入力の終わりは0または負のデータが現れたことで判定する。
(ただしbreak contineは用いない)
0904デフォルトの名無しさん
NGNG2つの関数使う意味ないけど、使えってことだよな。
ほれ。
#include <stdio.h>
int foo(unsigned int n)
{
if( n )
return n % 10 + foo(n / 10);
return 0;
}
int bar(unsigned int n)
{
return n % 3;
}
int main(void)
{
int n;
do{
scanf("%d",&n);
if( n <= 0 )
return 0;
if( bar( foo(n) ) )
printf("3で割り切れない。\n");
else
printf("3で割り切れる。\n");
}while( 1 );
return 0;
}
0905
NGNG0906デフォルトの名無しさん
NGNG但し 入力データの終わりを0であらわすものとする。
1 入力されたデータをそのまま表示するプログラム
2 入力されたデータを合計して平均を求めるプログラム
3 MAXとMINを求めるプログラム
初歩的なことだと思うんですが できません 教えてください
0907デフォルトの名無しさん
NGNG0908デフォルトの名無しさん
NGNG#include<stdlib.h>
#include<stdio.h>
#include<string.h>
int compare_int(const void *a, const void*b)
{ if(*(int*)a==*(int*)b)return 0; return (*(int*)a>*(int*)b)?-1:1; }
void print_heap(int *heap, size_t heap_size){
int *h; printf("\nheap_size: %d\n",heap_size);
for(h=heap; h!=heap+heap_size; ++h) printf("address:%p value:%d\n",h,*h);
}
int main(int argc, char**argv){
int *heap=NULL; size_t heap_size=0;
char buf[1024]; FILE *fp;
if( !(argc>1) || !(fp=fopen(argv[1],"r")) ) return EXIT_FAILURE;
while( fgets(buf,sizeof(buf),fp) ){
char *p;
for(p=strtok(buf," \n"); p; p=strtok(NULL," \n")){
heap=realloc(heap,++heap_size*sizeof(*heap));
heap[heap_size-1]=atoi(p); print_heap(heap,heap_size);
}
}
for(--heap_size;heap_size!=0;--heap_size){
int *h; int *min_h=heap;
for(h=heap; h!=heap+heap_size; ++h)
if( *min_h >= *h ) min_h = h;
if( min_h != heap+heap_size-1 )
memmove(min_h,min_h+1,(heap+heap_size-min_h)*sizeof(int));
heap=realloc(heap,heap_size*sizeof(*heap)); print_heap(heap,heap_size);
}
return EXIT_SUCCESS;
}
0909デフォルトの名無しさん
NGNG#include<stdlib.h>
#include<stdio.h>
#include<string.h>
#define N 10
void print_heap(int *heap, size_t heap_size){
int *h; printf("\nheap_size: %d\n",heap_size);
for(h=heap; h!=heap+heap_size; ++h) printf("address:%p value:%d\n",h,*h);
}
int main(int argc, char**argv){
int *heap=NULL; size_t heap_size=0; char buf[1024];
for( printf("input Number: "); fgets(buf,sizeof(buf),stdin); printf("input Number: ") ){
char *p;
for(p=strtok(buf," \n"); p; p=strtok(NULL," \n")){
heap=realloc(heap,++heap_size*sizeof(*heap));
heap[heap_size-1]=atoi(p);
}
if(heap[heap_size-1]==0){ --heap_size; break; }
if(heap_size >= N){ heap_size=N; break; }
}
print_heap(heap,heap_size);
{ int *h; int *min_h=heap; int *max_h=heap; double sum=0;
for(h=heap; h!=heap+heap_size; ++h){
sum+=*h;
if( *min_h >= *h ) min_h = h;
if( *max_h <= *h ) max_h = h;
}
printf("avg: %g, max: %d, min: %d\n", sum/heap_size, *max_h, *min_h);
}
return EXIT_SUCCESS;
}
0910デフォルトの名無しさん
NGNGありがとうございます すみませんが1,2,3の問題でわけるとどうなるんですか?
どこからどこまでがなにのプログラムかわかりません お手数かけてすみませんが教えてください
0911デフォルトの名無しさん
NGNGstruct CELL{
char a[10];
char b[10];
char c[10];
char d[10]:
struct CELL *next;
struct CELL *prev;
};
って構造体のリストがあるとして,その要素の中からある文字列s[ ](例えば"asd")ってのを含む
要素をすべて文字列としてとりだして表示するプログラムってどんなのですかね?
0912デフォルトの名無しさん
NGNGa,b,c,dとsをstrcmp()で比較して、一致したのだけ表示すればいい。
0913デフォルトの名無しさん
NGNG{
int i;
float height[100],x;
i=height[0]=x=0;
while(1){
scanf("%f",&x);
height[i+1]=height[i]+x;
i++;
printf("平均は%f,\n",height[i+1]/i);
printf("入力数は%d,\n",i);
}
}
入力された数の個数とその平均値を求めるプログラムを作ったつもりなのですが
実行結果が
C:\c>height2.exe
100
平均は-1810926403
入力数は1,
200
平均は-2362138731
入力数は2,
となってしまいます、どこがおかしいのでしょうか?
0914デフォルトの名無しさん
NGNGprintf("平均は%f,\n",height[i+1]/i);
↓
printf("平均は%f,\n",height[i]/i);
0915デフォルトの名無しさん
NGNGprintf("平均は%f,\n",height[i+1]/i);
0916デフォルトの名無しさん
NGNG0917デフォルトの名無しさん
NGNG次や次の次のCELLの中のaやbなどはどうすれば?
0918デフォルトの名無しさん
NGNG次にx=0のとき直前に入力した値を削除するような機能
例えば実行結果が
C:\c>height.exe
100
平均は100.000000
入力数は1,
200
身長の平均は150.000000
入力数は2,
0
平均は100.000000
入力数は1
となるようにしたいのですが どのようにすればいいでしょうか?
0919デフォルトの名無しさん
NGNGstruct CELL *p = head; // headはリストの先頭
while( p ){
if( !strcmp(p->a,s) || !strcmp(p->b,s) || !strcmp(p->c,s) || !strcmp(p->d,s) )
disp(p); // CELLを表示する関数(自分で定義)
p = p->next;
}
みたいな感じでループまわす。
つか、ポインタ一つ用意してnext使って辿ればいいだけ。
0920デフォルトの名無しさん
NGNGそんな感じですか、どうも
0921デフォルトの名無しさん
NGNGif(x!=0){
height[i+1]=height[i]+x;
i++;
} else {
if( i>0)i--
}
0922デフォルトの名無しさん
NGNG今日覚えたよ!!
0923デフォルトの名無しさん
NGNG0924デフォルトの名無しさん
NGNG問題を小出しにしないほうがいいような
0925デフォルトの名無しさん
NGNGあの〜、例えばsが"asd"でaが"ruasdf"の時もaが表示されないといけないのですが
上のプログラムでそれもいけますか?
0926デフォルトの名無しさん
NGNG0927デフォルトの名無しさん
NGNGC言語であらわすプログラムを教えてください。お願いしますm(__)m
0928デフォルトの名無しさん
NGNG関数factorialを作り、
それを用いて0から5までの階乗の結果を表示するプログラム
出力例
0! = 1
1! = 1
2! = 2
3! = 6
4! = 24
5! = 120
お願いします。
0929デフォルトの名無しさん
NGNGint factorial(int n){
int i,f=1;
for(i=1;<=n;i++)
f=f*i;
}
return f;
}
int main(){
int i;
for(i=0;i<=5;i++)
printf("%d\n",factorial(i));
return 0;
}
0930デフォルトの名無しさん
NGNG#include <stdio.h>
int factorial(int n) {
if (n == 0) return 1;
else return n * factorial(n-1);
}
int main() {
int i;
for (i=0; i<=5; i++) {
printf("%d! = %d\n", i, factorial(i));
}
return 0;
}
0931929 = 飲んだ後
NGNG0932929 = 飲んだ後
NGNG0933デフォルトの名無しさん
NGNG928の関数factorialを参考にして、
キーボードから入力した2つの正または0の整数nとmの
組み合わせnCmを計算する関数combinationを作り、
それを用いてnCmを計算するプログラム。
ヒント)
nCm = n!/(n−m)!m!
出力例
Input n: 8
Input m: 6
8C6 = 28
0934デフォルトの名無しさん
NGNGどうかよろしくお願いしますm(__)m
0935デフォルトの名無しさん
NGNGそれってfactorial使うとすぐに桁溢れするぞ。
パスカルの公式(三角形とcombinatorialを結びつけるやつ)使っとけ。
0936デフォルトの名無しさん
NGNGint combination(int n, int m) {
return factorial(n) / (factorial(n-m) * factorial(m));
}
int main() {
int n, m;
printf("Input n: ");
fflush(stdout);
scanf("%d", &n);
printf("Input n: ");
fflush(stdout);
scanf("%d", &m);
printf("%dC%d = %d\n", n, m, combination(n, m));
return 0;
}
0937デフォルトの名無しさん
NGNG構造体つかってやろうとおもうのですが、それだけだと新しい人を登録くするときにいちいちコンパイル
しないといけませんよね?
コマンドラインから入力する方法ってどうやってやるんですか?
具体的(プログラム例など)におしえていただけるとうれしいです。
0938デフォルトの名無しさん
NGNG>新しい人を登録くするときにいちいちコンパイル
(´д`)・・・
ぼくはどうしたらいいんでしょう?
0939デフォルトの名無しさん
NGNG入力は二つです。10進数で入力しますy。それを2進に変換して浮動小数点数にして、演算をします。。
出力結果も10進で表示します。
0940デフォルトの名無しさん
NGNG0941↑
NGNG0942デフォルトの名無しさん
NGNGmain(){
puts("狼狽するね_| ̄|○ ");
}
0943デフォルトの名無しさん
NGNGとりあえず>>940しましょう
0944デフォルトの名無しさん
NGNG>939
はマルチくんです。
http://pc5.2ch.net/test/read.cgi/tech/1087913517/l50
の3.
0945デフォルトの名無しさん
NGNG狼狽するね_| ̄|○
0946938
NGNG0947デフォルトの名無しさん
NGNGそのスレってひょっとして次スレ?
スレ番が入ってないけど・・・
0948デフォルトの名無しさん
NGNG/* 質問内容を理解できている自信はないが */
/* $ ./program_name Nanashi Mona ItteYoshi */
#include<stdio.h>
int main(int argc, char *argv[]){
int i;
for(i=0;i<argc;i++)
printf("%s\n",argv[i]);
return 0;
}
0949デフォルトの名無しさん
NGNGそれだとコマンドそのものも印字されるよ_| ̄|○
0950デフォルトの名無しさん
NGNGまぁ、>937 が求めているのは別のことかも知れんけど。
0951デフォルトの名無しさん
NGNGスレ番を入れて立て直したよ。
0952デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1076054000/684
0953デフォルトの名無しさん
NGNG0954デフォルトの名無しさん
NGNG>939
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/lounge/index.html#1
ここにもいます
┐(´∇`)┌
0955954
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1087941284&res=1
on_
0956ぼるじょあ ◆yBEncckFOU
NGNG0957デフォルトの名無しさん
NGNGint factorial(int n){
int i,f=1;
for(i=1;<=n;i++)
f=f*i;
}
return f;
}
int main(){
int i;
for(i=0;i<=5;i++)
printf("%d\n",factorial(i));
return 0;
}
の関数factorialを利用して
キーボードから入力した2つの正または0の整数nとmの
組み合わせnCmを計算する関数combinationを作り、それを用いてnCmを計算するプログラム。
ヒント)
nCm = n!/(n−m)!m!
出力例
Input n: 8
Input m: 6
8C6 = 28
です。
関数を3つ書いてやるらしいです。もう1度お願いします。
0958デフォルトの名無しさん
NGNG0959デフォルトの名無しさん
NGNGint factorial(int n){
int i,f=1;
for(i=1;i<=n;i++){
f=f*i;
}
return f;
}
int combination(int a,int b){
return (factorial(a)/factorial(a-b)/factorial(b));
}
int main()
{
int i,n,m;
printf("Input n:");
scanf("%d",&n);
printf("Input m:");
scanf("%d",&m);
printf("%dC%d = %d",n,m,combination(n,m));
return 0;
}
0960デフォルトの名無しさん
NGNG画面に表示される数字を答よ。
#include <iostream>
using namespace std;
int main()
{
int i, k;
k = 11 / 4 * 3;
for ( i=0; i<5; i++ ) {
if ( i <= 2 ) {k = k + 2*(i+1);}
else {k = k - i;}
}
cout << k << endl;
}
これって数字いくつになりますか?
0961デフォルトの名無しさん
NGNGコンパイルしろよ
0962デフォルトの名無しさん
NGNG0963デフォルトの名無しさん
NGNGワロタ
0964デフォルトの名無しさん
NGNGじゃあ>>960を君の好きなスクリプト言語でリライトしれよ
0965デフォルトの名無しさん
NGNGこの宿題は某電機大学の講義で出された課題でつ。
みんな必死だね...
0966デフォルトの名無しさん
NGNG0967デフォルトの名無しさん
NGNG必死なのはいいんだけどね。
必死なだけなのは困るよね。
0968デフォルトの名無しさん
NGNGこれをアイコンのダブルクリックで起動するとここの部分で終了してしまいますが,
なぜでしょうか?
char *index[3];
int i,j;
for(i = 0;i < 3 ; i++){
index[i] = (char *)malloc(j+1);
}
0969968
NGNGjは事前の処理で高々100以下の整数が収まっています.
処理が中断してしまうのはmallocの命令文に問題があるようなのですが.
0970デフォルトの名無しさん
NGNGプログラムの実行が終了したから
0971デフォルトの名無しさん
NGNG0972968
NGNG0973デフォルトの名無しさん
NGNG頭の中でやっただけだから間違ってるかも。
6
0974デフォルトの名無しさん
NGNG脳内インタープリタで実行したところ11が出力されました。
0975デフォルトの名無しさん
NGNGってことで、>973の脳内インタプリタはバグってるらしい。
0976デフォルトの名無しさん
NGNGバイナリファイルが生成されました
シンボル解決は見てみぬふり
0977デフォルトの名無しさん
NGNG宿題なんですがコンパイルしたときに
*q[*(p+i)-0x61]+=1;
このへんがおかしいってエラーが出るんですが、何がおかしいんでしょ・・・?
ポインタはムヅイ・・・
0978デフォルトの名無しさん
NGNG○q[*(p+i)-0x61]+=1;
○*(q+*(p+i)-0x61)+=1;
0979デフォルトの名無しさん
NGNG0980デフォルトの名無しさん
NGNGおぉ、即レスどうもです。
うまく動きました。
しかし、どこかが間違ってるのかzの個数がすごいことになる(つД`)
0981デフォルトの名無しさん
NGNGとりあえず,が抜けてるけど
0982デフォルトの名無しさん
NGNGstatic int alpha[25];
0983デフォルトの名無しさん
NGNG助言どもっす・・_ト ̄|○
0984デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1087929711/
0985デフォルトの名無しさん
NGNG0986デフォルトの名無しさん
NGNG0987今日からC言語始めますた!宜しく!!!
NGNGvoid main()
{
printf("俺はロリコン(爆");
}
0988デフォルトの名無しさん
NGNG・main()は本来int型の値を返すものです。
・標準出力の最後は改行をつけたほうが無難です。
0989デフォルトの名無しさん
NGNG直径15cmの円周と面積を求めよ。
0990デフォルトの名無しさん
NGNG直径15cmの円周と面積を求めよ。
0991デフォルトの名無しさん
NGNGprintf("面積:56.25π\n", );
0992デフォルトの名無しさん
NGNGmain()
{
printf("円周%f面積%f\n", 15*2*3, 15*3*3
}
0993デフォルトの名無しさん
NGNGワロタ
0994デフォルトの名無しさん
NGNG0995デフォルトの名無しさん
NGNGint main(void)
{
printf("俺は%d\n",995);
return 0;
}
0996デフォルトの名無しさん
NGNGint main(void)
{
int i = 996;
while(i<1001) printf("俺は%d\n",i++);
return 0;
}
0997デフォルトの名無しさん
NGNG0998デフォルトの名無しさん
NGNG0999デフォルトの名無しさん
NGNG↓↓1000ゲットどうぞ↓↓
1000デフォルトの名無しさん
NGNGぼるじょあがC/C++の宿題を片づけますYO! 25代目
http://pc5.2ch.net/test/read.cgi/tech/1087929711/
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。