C/C++の宿題は私におまかせくださいませ 23代目
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
NGNGわからない宿題は私におまかせくださいませね。
【注意点】 -------------------------------------------------
・問題はしっかりと解いてもらう方にわかりやすいように
問題文などの省きはやめ、エラーなどは適切に書きましょう
全文を書いてしまうか、分かりやすくまとめましょう。
・後になって問題につけたしをするのはやめましょう。
解いてもらっている方に失礼になってしまいます。
------------------------------------------------------------
【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
http://do.sakura.ne.jp/%7Ejunkroom/cgi-bin/megabbs/lounge/index.html
【歴代スレは>>2-10】
0002デフォルトの名無しさん
NGNG21代目: 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デフォルトの名無しさん
NGNG0005デフォルトの名無しさん
NGNG口で言うのは簡単だ
0006デフォルトの名無しさん
NGNG乙
0007デフォルトの名無しさん
NGNG下ネタいれんなくそ。
0008デフォルトの名無しさん
NGNG0009デフォルトの名無しさん
NGNGなんだお前異論があるのか?
前スレからは明らかに近親相姦の臭いが漂っていただろうが?
0010デフォルトの名無しさん
NGNGでは気を取り直して宿題どうぞ↓
0011デフォルトの名無しさん
NGNGC/C++の宿題はウリに任せるニダ 24スミダ
0012デフォルトの名無しさん
NGNG0013デフォルトの名無しさん
NGNG0014デフォルトの名無しさん
NGNG0015デフォルトの名無しさん
NGNG配列にデータコピーしてqsortに渡してして元に戻す
0016デフォルトの名無しさん
NGNGCでお願いします
0017デフォルトの名無しさん
NGNG単にtailの位置を毎回headとcountを使って計算すればいいのでは
tail= ( head + count ) % QUEUE_SIZE
てなかんじで
0018デフォルトの名無しさん
NGNGint enqueue(queue_t *que, data_t newdata){
if (que->count < QUEUE_SIZE - 1) {
que->data[que->count++] = newdata;
return SUCCESS;
} else {
return FAILURE;
}
}
data_t dequeue(queue_t *que){
data_t d;
if (que->count > 0) {
d = que->data[que->head];
que->head = que->head + 1
que->count --;
return d;
}
動作確認して無い。
0019デフォルトの名無しさん
NGNG>>18 以後気をつけます
0020デフォルトの名無しさん
NGNG0021デフォルトの名無しさん
NGNGするプログラムはどうすればできるのでしょう??
0022デフォルトの名無しさん
NGNG0023デフォルトの名無しさん
NGNG(1)1!+3!+5!+7!+・・・+(2n+1)!
(2)1+1/1!+1/3!+1/5!+・・・+1/(2n+1)!
をCで求めよ。という課題が出ましたが全然わかりません。
助けてください。
0024デフォルトの名無しさん
NGNG@(o・ェ・)@
おさるもわからん問題
0025デフォルトの名無しさん
NGNG0026デフォルトの名無しさん
NGNG0027デフォルトの名無しさん
NGNG0028デフォルトの名無しさん
NGNG(1)
#include <stdio.h>
#include <stdlib.h>
int kaijo(int n);
int main(int argc, char *argv[])
{
int n;
int i;
int s = 0;
printf("奇数を入力してください\n");
scanf("%d", &n);
for(i = 1; i <= n; i+=2){
s += kaijo(i);
}
printf("%d\n", s);
return 0;
}
int kaijo(int n)
{
int k = 1;
while(n > 0){
k *= n;
n--;
}
return k;
}
0029デフォルトの名無しさん
NGNG0030デフォルトの名無しさん
NGNG@(o・ェ・)@ > @(・ω・)@
0031仕様書無しさん
NGNGcin.unsetf( ios_base::skipws );
stringstr( (istream_iterator<char>(cin)), istream_iterator<char>() );
0032デフォルトの名無しさん
NGNGって、プゲラ
0033デフォルトの名無しさん
NGNGstringstr((istreambuf_iterator<char>(cin)), istreambuf_iterator<char>());
ではだめなん?て言うか宿題じゃないよね?
0034デフォルトの名無しさん
NGNG悪かったよ。
プログラミングなんてほとんどやったことないんで赦してくれ。
0035チキン野郎 ◆/73ORiYgDY
NGNG#include <stdio.h>
int factorial(int i)
{
int j,k=1;
for(j=1;j<=i;j++)
k*=j;
return k;
}
int main()
{
int n,i,ans=0;
printf("1!+3!+・・・+(2n-1)!を求める。\nnを入力 : ");
scanf("%d",&n);
for(i=1;i<=2*n-1;i+=2)
ans+=factorial(i);
printf("Ans = %d",ans);
return;
}
0036デフォルトの名無しさん
NGNGint factorial(int n){
if (n <= 1) return 1;
else return n * factorial(n - 1);
}
int f(int n){
if (n < 0) return 0;
else return factorial(2 * n + 1) + f(n - 1);
}
int main(void){
int n;
printf("n >> "); scanf("%d", &n);
printf("(1) = %d\n", f(n));
return 0;
}
0037デフォルトの名無しさん
NGNGこなんですけどね、offsetとdataはどういう扱いになるかサッパリです。
0038デフォルトの名無しさん
NGNG0039デフォルトの名無しさん
NGNG見本になりそうなソースをぐぐって探したのですが、JAVAのソースはあってもCのソースは見つけられませんでした。
参考になるソースをご存知の方いませんか?
0040デフォルトの名無しさん
NGNGグラフィカルなものは環境依存です。
こちらへどうぞ。
【初心者歓迎】C/C++室 Ver.6【環境依存OK】
http://pc5.2ch.net/test/read.cgi/tech/1082182233/l50
ちゃんと環境を書きましょう。
0041デフォルトの名無しさん
NGNG% command abcd
と入力すると
a b c d
a b cd
a bc d
a bcd
ab c d
ab cd
abc d
abcd
% command abc
ならば
a b c
a bc
ab c
abc
のように文字をグループ化して全てのパターンを表示するというものなのですが、
文字数が分かっている場合には沢山ループをまわせばできるのですが、
文字数が分からない場合はどうするかということで再帰を考えてみたのですが
実装できず、上手い方法をご存知の方がいらっしゃいましたらどうかよろしくお願いいたします
0042デフォルトの名無しさん
NGNG普通に文字数はわかりますが。
ひょっとして、配列で処理してる?
0043デフォルトの名無しさん
NGNG1+1/1!+1/3!+1/5!+・・・+1/(2n+1)!
さっぱりわかりません。
どうかよろしくお願いします
0044デフォルトの名無しさん
NGNG(文字数-1)個ある、「隙間」ごとにスペースが入るか否かだから、
(文字数-1)桁の2進数と対応付ける。ただし文字数が多いとオーバーフローする。
# include <iostream>
# include <cstring>
int main(int, char **argv)
{
const char *const str = argv[1];
if(!str)
return 1;
const std::size_t len = std::strlen(str);
for(unsigned long c = 0; c < (1ul << len-1); c++)
{
for(std::size_t i = 0; i < len; i++)
{
std::cout << str[i];
if(c & (1ul << i)) std::cout << ' ';
}
std::cout << '\n';
}
}
>>42
コンパイル時に文字数がわかるかどうかって事じゃないか?
0045デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=67
こんなんでどうでしょ
0046デフォルトの名無しさん
NGNG#include <stdio.h>
int factorial(int n){
if (n <= 1) return 1;
else return n * factorial(n - 1);
}
int main(void){
int i, n;
double y = 0.0;
printf("n >> "); scanf("%d", &n);
for (i = -1; i <= n; i++) /*気持ち悪いが*/
y += 1 / (double)factorial(2 * i + 1);
printf("(2) = %f", y);
return 0;
}
0047デフォルトの名無しさん
NGNGfor (i = 0; i <= n; i++)のほうが良かったな・・・
0048デフォルトの名無しさん
NGNG小さい順にソートなのですが、うまくいきません。
どこが間違っているのでしょう?
int main(void)
{
int num[20];
int i, j, n, tmp;
printf("いくつの整数データを入力しますか?(~20)\n");
scanf("%d", &n);
printf("%d個の整数を入力してください\n", n);
for(i = 0; i < n; i++){
scanf("%d", &num[i]);
}
printf("\n");
for(i = 0; i < n - 1; i++){
for(j = 1; j < n; j++){
if(num[i] > num[j]){
tmp = num[j];
num[j] = num[i];
num[i] = tmp;
}
}
}
for(i = 0; i < n; i++){
printf("%d", num[i]);
}
printf("\n");
return 0;
}
0049デフォルトの名無しさん
NGNG具体的にどうおかしいのか書いてくれ
入力と出力てなかんじで
0050デフォルトの名無しさん
NGNG隣の要素と比較しないといけない。
0051デフォルトの名無しさん
NGNGを
for(j=i+1;j<n;j++){
としたらどうだすか
0052デフォルトの名無しさん
NGNGnに3と入れて、3 2 1と入れると正常に
1 2 3 と出るのですが
nに4と入れて4 3 2 1 と入れると
1 4 2 3 と誤って出ます。
nに4以上の数を入れると全て誤って出てくるようです。
0053デフォルトの名無しさん
NGNGあ、あれ?うまくいきました。
(j = 1)と(j = i + 1)って違うんですかね?
0054デフォルトの名無しさん
NGNGそりゃ違う。
0055デフォルトの名無しさん
NGNG有難うございました。
お騒がせしました。
0056デフォルトの名無しさん
NGNG19の平方根を小数点以下第4位の精度で求め、これを表示するプログラムを作成せよ。なお4の2乗は16で、5の2乗は25なので、19の平方根は4と5の間であることはわかっているものとする。(sqrt関数は用いずに。)
よろしくお願いします。
0057デフォルトの名無しさん
NGNG頭悪い解法
double a=4;
double d;
for(d=0.5; d > 0.00005; d/=2){
a=(a+d)*(a+d)>19?a:(a+d);
}
printf("%1.4f\n",d);
0058デフォルトの名無しさん
NGNGsqrt関数が禁止されてるのか・・・
pow(19.0,0.5)
0059デフォルトの名無しさん
NGNGあほな質問ですいません。
お願いします
0060デフォルトの名無しさん
NGNG入れてみました。
0061デフォルトの名無しさん
NGNGどう手をつけたらいいのかわかりません。
教えていただけないでしょうか?
0062デフォルトの名無しさん
NGNG数字はだぶらないようにしたいの?
0063デフォルトの名無しさん
NGNGint rand()={0,1,2,3,4,5,6,7,8,9};
古い処理系ではエラーになる。
0064デフォルトの名無しさん
NGNG筆算の三桁の数同士を掛け合わる問題で、
○○○
×○○○
 ̄ ̄ ̄ ̄
○○○
○○○
○○○
 ̄ ̄ ̄ ̄ ̄ ̄
○○○○○
この中に0〜9を各2回づつ入れろというものです。
図がきたなくてすいません・・・
0065デフォルトの名無しさん
NGNG0066デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=69
こんなんでどうでしょ
0067デフォルトの名無しさん
NGNG100行以上のBASICのソースが見つかりません。
どこか、ソースを公開している場所を知っていれば教えてください。
006841
NGNG文字列が4文字なら4個のループを入れこにするとか
すごいアホな事を考えていました_| ̄|○
>>44
全くこんな方法は思いつきませんでした
原理は分かったのですが、十分に理解できていないので
これから考えてみたいと思います
ありがとうございました
0069デフォルトの名無しさん
NGNG#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 9
int r(int n){
return (double)rand() / (RAND_MAX + 1) * (n + 1);
}
void f_1(int *s, int n){
int i;
for (i = 0; i < n; i++) s[i] = r(N);
}
void f_2(int *s, int n){
int i, index, temp;
for (i = 0; i < n; i++) s[i] = i;
for (i = 0; i <10; i++){
index = r(N);
temp = s[i]; s[i] = s[index]; s[index] = temp;
}
}
void print(int *s, int n){
int i;
for (i = 0;i < n; i++) printf("s[%d] = %d\n", i, s[i]);
}
int main(void){
int s[10];
srand((unsigned)time(NULL));
puts("かぶりあり"); f_1(s, 10); print(s, 10);
puts("かぶりなし"); f_2(s, 10); print(s, 10);
return 0;
}
0070デフォルトの名無しさん
NGNG解いてもらっている方に失礼になってしまいます。
007169
NGNGindex = r(N);→index = r(n)
だった。
007269
NGNGもとのほうがたまたまあってた藁。
007356
NGNG0074デフォルトの名無しさん
NGNG奇数×奇数の迷路を作成 できるだけ難しい迷路を作成する。
探索のときは その迷路の最短ルートをできるだけ早く見つけ出す。
対戦形式で行い 迷路マップを交換し相手の作った迷路の最短ルートを制限時間5分でみつけた方が勝ち
どちらも最短ルートを求められた場合 早く解いたほうが勝ち
どちらも最短ルートが求められなかった場合 早く解いたほうが勝ち
また作成時は (偶数,偶数)の場所には壁は置かないものとする
1 2 3 4 5
1壁壁壁壁壁
2S 壁
3壁 壁壁壁
4壁 G
5壁壁壁壁壁
こんな感じ
マスの数はこちらで指定する。
このプログラムのアルゴリズム教えてください
特に探索側の最速のアルゴリズムは何でしょう? 色々調べましたが
どのアルゴリズムが最速か分からなくて・・・
0075デフォルトの名無しさん
NGNG速く解くってだけが目的ならHand-on-wall(右手法、左手法などの別名も?)が
いいんじゃない?とにかく迷路はゴールまで行ける。
最短経路を求めるには
・各マスで上下左右の全てに行くよう再帰
・既に通ったマスには何らかのマークを付ける
・行き止まりなどの場合はマークを外しながら、他の道が見つかるまで戻る
みたいなアルゴリズムが使えるみたいだけど。手元に持ってる
河西朝雄「C言語による初めてのアルゴリズム入門」(技術評論社)
には、まんまのプログラムが載ってる。
0076デフォルトの名無しさん
NGNG>int rand()={0,1,2,3,4,5,6,7,8,9};
こんなの初めて見るが新しい規格?
0077デフォルトの名無しさん
NGNG迷路の作成は今月のCマガに載ってたよ
最難のものを作るってのはよくわからんけど。
0078デフォルトの名無しさん
NGNGプログラミングに読み込みたいんですけど
どうしたらいいですか?
007978
NGNGお願いします。
0080デフォルトの名無しさん
NGNGかかってこいやー
008180
NGNGもちょっと具体的にかいてくれないかなー
怠慢の仕様がない
0082デフォルトの名無しさん
NGNGPoint move(double a,double b){
x += a;
y += b;
return *this;
}
void print(void){
cout << "Point [ " << x << " . " << y << " "<< endl;
}
のようなものを作成しました。コンストラクタは定義されているとします。
ここで、main関数内で
Point o(0.0,0.0);
( o.move(1.0,2.0) ).print();
のように書いたところ、g++では[ 1 . 2 ]
のような感じで表示されたのですが、Toolkit2003のcl.exeと、bcc32.exeでは
表示されません。何故なのか教えてください。
008378
NGNGまじでいいんですか?
http://49uper.com/up-s/index.php?mode=list
最初にここにあるうpローダーの一番上のzipファイルに目を通して
頂くとありがたいのですが、、、、、。
でもちょっと問題が、、、。
英語何ですよ、、、、。
お願いします。
008478
NGNGpdfファイルが入っているはずです。
ごめんなさい、偉そうに、、、。
008578
NGNG0-0.545
50.462
102.163
154.446
207.304
2510.782
3014.962
3519.613
4025.034
4530.882
5037.558
5544.505
6052.241
6560.568
7069.435
7578.947
8089.156
8599.876
90111.294
95123.2
100135.618
008678
NGNG0 -0.545
5 0.462
10 2.163
15 4.446
20 7.304
25 10.782
30 14.962
35 19.613
40 25.034
45 30.882
50 37.558
55 44.505
60 52.241
65 60.568
70 69.435
75 78.947
80 89.156
85 99.876
90 111.294
95 123.2
100 135.618
上のは失敗しました。
008780
NGNG今よんどります
ぱっとみこれから線形最小2情報かな?
とりあえず読み込みだけ書きますわ
008878
NGNGで、このyとxの関係を y = ax^2 + bx + c で表せのことです。
a, b, c を c言語でプログラムをつくって
求めるということです。
008978
NGNG情報遅くてすいません。
009080
NGNGごめん眠いから返信ちょっと遅れるかも。
心強い味方はいないっすかね〜
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
FILE *f_load;
int i;
int x[20];
double y[20];
if (( f_load = fopen("in.dat" , "r") ) == 0) {
printf("Can't open %s \n", "in.dat" );
exit(1);
}
for( i=0 ; i<20 ; i++ ){
fscanf( f_load , "%d %lf" , x[i],y[i]) ;
}
fclose( f_load );
}
009178
NGNGこんな時間にほんとすいません。
頼れる人が回りにいなくて、、。
009278
NGNGありがとうございます。
ちょっとborlandぶち込んで試してみますね。
009378
NGNGというエラーがまたでてしまいました。
でもここまでやってくれてありがとうございました。
009480
NGNGfscanf( f_load , "%d %lf" , x[i],y[i]) ;
}
を
for( i=0 ; i<=20 ; i++ ){
if(i==0){
}
fscanf( f_load , "%d %lf" , x[i-1],y[i-1]) ;
}
にしてみ。in.datの最初の行のx,yを読んでるんじゃないかな?
今コンパイラなくて頭でコンパイルのため動作未確認w
ってかif(i=0){}でコンパイルとうるかギモンだが。
確実なのはin.datの最初の行を修正
009578
NGNGin.dat の最初の行の修正とは?
x y
0 -0.545
5 0.462
10 2.163
15 4.446
20 7.304
25 10.782
30 14.962
35 19.613
40 25.034
45 30.882
50 37.558
55 44.505
60 52.241
65 60.568
70 69.435
75 78.947
80 89.156
85 99.876
90 111.294
95 123.2
100 135.618
また説明不足だったんですが、一行目のx、yはin.datにはふくまれていません。
追加したほうがいいですよね?
0096デフォルトの名無しさん
NGNGfor( i=0 ; i<20 ; i++ ){
fscanf( f_load , "%d %lf" , x[i],y[i]) ;
}
を
for( i=0 ; i<20 ; i++ ){
fscanf( f_load , "%d %lf" , x+i,y+i) ;
}
にするべし。fscanfの後ろはアドレスを渡さないと。
009778
NGNG一応エラーは出なくなりましたが、exeファイルを
オープンしても一瞬でてすぐ閉じてしまうのですけど
どうしてでしょうか?
009878
NGNGというのはin.datファイルの先頭にx、yを追加したら
エラーはなくなりました
0099デフォルトの名無しさん
NGNGプログラムの最後にキーを押すまで終了させないようなコードを書けば大丈夫。
010078
NGNGprintf("Press any key followed by Enter\n");
scanf(" %c", &check);
で、できました。
が肝心のテーブルがでてきません。
何がいけないんしょうか?
それとも普通出るものではないのですか?
010178
NGNGお礼言うの忘れてました。
ありがとうございました。
0102デフォルトの名無しさん
NGNGもはや流れて,問題探すのメンドイ。
ガンガレ
0103デフォルトの名無しさん
NGNGデータファイルが最初の形に戻っていいなら
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=70
計算の途中までを書いてる。
010478
NGNGここまでやってくれてありがとうございます。
でもいまだに何も理解できない自分が悔しいです。
それと
>データファイルが最初の形に戻っていいなら
と言うことはどういうことでしょうか?スイマセン
010578
NGNG0106デフォルトの名無しさん
NGNG最初の行に「x y」が含まれていない形。要するに
----ここから下----
0 -0.545
5 0.462
(中略)
90 111.294
95 123.2
100 135.618
----ここまで----
ということ。ついでにΔ(=a[0])とa1〜a3を求める所まで進んだ。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=71
010780
NGNG僕も間違ってたのですが
#define N 20ではなく
#define N 21ですね.
もうすこしで完成ですね
みまもりつつねまーす(^^;
010878
NGNGだんだんついていけなくなってきましたが
がんばってください、、。
010978
NGNG011078
NGNGそういえばa1,a2,a3等はfloat, int 等はしなくていいんですか?
011178
NGNG0112デフォルトの名無しさん
NGNGfloatは色んな意味で無駄なので、浮動小数はdoubleで統一してる。
あと、a1,a2,a3は1未満の値になっているので、intにキャストすると0になってしまいます。
えぇっと、今はコメントをつけて分かりやすくしているつもりです。
0113デフォルトの名無しさん
NGNGΔと係数の書き込みまで完了。ついでにコメントつけました。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=72
次コードを上げるのは多分完成してから。
011478
NGNGほんとにありがとうございます。
例えば普段ある数式が一未満になる場合 int じゃなくて float を使えばいいんですよね?
この問題を例外として。
>floatは色んな意味で無駄なので、浮動小数はdoubleで統一してる。
これについて詳しく教えてください。
011578
NGNGまってください!!
ここからは自分でやらさせてください!!
と思ったんですけど
完成版うpしてください!!
なんか言ってることがわからないですが
お願いします。
ありがとうございました。
0116デフォルトの名無しさん
NGNGとりあえず質問への返答だけ。
�@floatはCPUの内部演算としては一旦doubleに変換されている、と以前どこかのスレで見た。
�Afloatは有効桁数(つまり精度)がdoubleの半分くらい。
ということで、こういう(浮動小数を使う)計算をする時は大抵精度が大事なので
しかも�@が事実ならキャストする分、floatの方が遅くなるわけで
敢えてfloatを選ぶのは、そこまでしてメモリを確保したい時だけ。
>>115
まあこっちは好きでやってるだけなんで、うpする/しないはどっちでもいいんですよ。
011778
NGNG返答ありがとうございました。
ではうpお願いします。待ってます。
失礼な態度でスイマセン
0118学生A
NGNG平均点の高い順にソーティングして
下に示すように結果を出力するようなプログラムを作成してください。
入力データ
学生番号 国語 算数 英語 平均点
2001 70 85 60 71.67
2002 100 65 70 78.33
2003 80 85 75 80.00
2004 60 85 90 78.33
2005 70 100 60 76.67
出力の結果
順位 学生番号 国語 数学 英語 平均点
1 2003 80 85 75 80.00
2 2002 100 65 70 78.33
3 2004 60 85 90 78.33
4 2005 70 100 60 76.67
5 2001 70 85 60 71.67
よろしくお願いします!!
0119デフォルトの名無しさん
NGNG0120デフォルトの名無しさん
NGNG取り敢えず、問題文を正確に書き直してみてくれ。
ランダムに数字を放り込むだけなのか、その筆算を正確に実現しなければならないのか、
それすらよくわからんぞ。
#つーか、後者ならプログラムを作るまでもなく解けるパズルなのだが。
0121デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=73
一応できました。
最後はデータの入力元を指定されていなかったので、内部に書き込みました。
全部理解できていれば、外部ファイルからの入力だったとしても対応できるでしょう。
あと、解を求めるとこは煩雑になってますが、よく見ると普通のことしかやってないです。
012278
NGNGキターーーーーーーーーーーほんとにありがとうございます。
こんな朝からほんとにすいません。
決してただこれをコピーするだけでなく
ここからもっと学べればイイと思ってます。
お疲れ様でした。
ちょっとみてみますね。
012378
NGNG大将、完璧でゴワス。
お礼のしようがないです。
ほんとに長い時間掛けてやって
頂いてありがとうございました。
012478
NGNGありがとうございました。
0125デフォルトの名無しさん
NGNG喜んで頂けて何よりッス。
んじゃ寝ます。
>>118はもう少し情報があったらやってみようと思ったけど…
入力元はファイル?平均って計算させないの?
んで一応構造体使って
struct Gakusei {
int gaku_num;
int kokugo;
int sansu;
int eigo;
double avg;
};
struct Gakusei* students[5];
みたいにしたら、swapが簡単かな、ということまでは考えた。では。
0126デフォルトの名無しさん
NGNG>floatはCPUの内部演算としては一旦doubleに変換されている・・
>キャストする分、floatの方が遅くなるわけで敢えてfloatを選ぶのは、そこまでしてメモリを確保したい時だけ。
floatの方が早い処理系も多い。
VCとか。
手持ちの処理系で実際に比較してみることを勧める。
0127kinkyuu
NGNG人名○○○○
番号XXXX
希望順位A
希望順位B
:
:
希望順位N
という情報が複数並んでいます。
人名はあいうえお順になっていて、番号は000101,000102,・・・000120
まであります。
希望順位は1〜4までの数字が、数字のみランダムで書かれています。
つまり
Asahi Kenji
000101
1
3
2
4
というようになっています。
このファイルを読み込んで、その人の希望順位のみを配列に入れたいのですが、どうしたらいいのでしょうか。
よろしくお願いします。
0128デフォルトの名無しさん
NGNGよくわかんない。
>>1を読んでから質問しなおした方がいいと思うよ。
0129kinkyuu
NGNG0130デフォルトの名無しさん
NGNG次に80〜100、70〜79、60〜69、59以下の個数を出力するプログラムを作成せよ。
ただしC言語限定かつデータ個数N、各データはキーボードから入力すること」
教えて偉い人!
0131デフォルトの名無しさん
NGNGscanf("%d",&N);
tbl=(int *)malloc(sizeof(int)*N);
sum=0;
rank_a=rank_b=rank_c=rank_d=0;
for(i=0; i<N; ++i){
scanf("%d", tbl+i);
sum+=tbl[i];
if(tbl[i]>=80) ++rank_a;
else if(tbl[i]>=70) ++rank_b;
else if(tbl[i]>=60) ++rank_c;
else ++rank_d;
}
printf("総和:%d,平均:%.1f\n",sum,(double)sum/N);
prinf("80〜100:%d、70〜79:%d、60〜69:%d、59以下:%d\n",rank_a,rank_b,rank_c,rank_d);
0132デフォルトの名無しさん
NGNGif(!scanf("%d", tbl+i) || nTmp < 1 || nTmp > 100)
{
printf("入力された値が異常です。\n");
--i;
continue;
}
0133132
NGNGif(!scanf("%d", tbl+i) || *(tbl+i) < 1 || *(tbl+i) > 100)
0134kinkyuu
NGNG…01…
Asahi Kenji 氏名
000101 学生番号
2
1 }希望順位。ランダム
3
4
中略
…20…
Tokuda Shin
000120
1
2
4
3
があります。
これらを次の構造体
typedef Jouhou{
char name[80]; 氏名
char serial[80]; 学生番号
int hope[20]; 希望順位
int result; 結果(プログラムの最後に入力)
}JOUHOU;
に格納したいのですが、どうやったらいいのかわかりません。
よろしくお願いします。
0135デフォルトの名無しさん
NGNG>もう少し頭の中で練ってから出直してきます。
頭の中で練るから分かりづらくなるんだYO!
問題そのまま全文丸写しの方がたぶん分かりやすいYO!
0137デフォルトの名無しさん
NGNG1!
3!
5!
7!
:
(2n+1)!
全部を足すのではなく各階乗について求めるのですがわかりません。
どうかお願いします
0138デフォルトの名無しさん
NGNG0139デフォルトの名無しさん
NGNG分からないのは次のどれ?
1.ファイルからの読み込み
2.文字列のコピー
3.構造体のメンバへのアクセス
あとtypedef Jouhou じゃなくて typedef struct Jouhou ね。
>>137
/* n!を求める関数 */
int fact(int n)
{
int ret = 1;
int i;
for (i = 1; i <=n; ++i) ret *= i;
return ret;
}
0140kinkyuu
NGNGわからないのは、文字列をコピーして構造体へ格納する事です。
あと、ご指摘はそのとおりです。すみませんでした。
0141デフォルトの名無しさん
NGNG#include <stdio.h>
int factorial(int);
int main()
{
int Max = 0, i;
printf("n > ");
scanf("%d", &Max);
for(i = 1; i <= Max * 2; i++)
printf("%d! = %u\n", i, factorial(i));
return 0;
}
int factorial(int Source)
{
int i, Result = 1;
for(i = 1; i <= Source; i++) Result = Result * i;
return Result;
}
0142141
NGNG訂正
for(i = 1; i <= Max * 2 + 1; i++)
0143チキン野郎 ◆/73ORiYgDY
NGNGint factorial(int i)
{
int j,k=1;
for(j=1;j<=i;j++)
k*=j;
return k;
}
int main()
{
unsigned int n,i;
printf("1!,3!,・・・+(2n-1)!を求める。\nnを入力 : ");
scanf("%d",&n);
for(i=1;i<=2*n-1;i+=2)
printf("%d! = %d\n",i,factorial(i));
return;
}
0144デフォルトの名無しさん
NGNG> !scanf("%d", tbl+i)
これダメだろ。
戻り値は
代入された入力項目の数 - 正常終了。
0 - 失敗。
EOF - 読み取りエラー。
だ
0145学生A
NGNGそれでは問題を丸写しします。
五人の学生の国語、数学、英語の成績を入力して各学生の平均点を求め、
平均点の高い順にソーティングして下に示すように結果を出力するような
プログラムを作成してください。なお、入力したデータを確認するために
出力を最初に行うこと。
入力データ
学生番号 国語 数学 英語 平均点
2001 70 85 60 71.67
2002 100 65 70 78.33
2003 80 85 75 80.00
2004 60 85 90 78.33
2005 70 100 60 76.67
結果の出力
順位 学生番号 国語 数学 英語 平均点
1 2003 80 85 75 80.00
2 2002 100 65 70 78.33
3 2004 60 85 90 78.33
4 2005 70 100 60 76.67
5 2001 70 85 60 76.67
という問題です。入力するのは3科目の点数だけだと思います。
どうかよろしくお願いします!
0146デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1082632296&res=6
とりあえずファイルの中身を表示するまで書きました
では買い物に行ってきます (^o^)/
0147146
NGNGこっち使ってほしいな > 続き書く人
struct Gakusei {
int gaku_num;
int kokugo;
int sansu;
int eigo;
double avg;
};
struct Gakusei* students[5];
0148デフォルトの名無しさん
NGNGテキスト、バナー以外にリンクしちゃいけないんですかね?
0149デフォルトの名無しさん
NGNGttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=74
0150デフォルトの名無しさん
NGNG死ねば?
0151デフォルトの名無しさん
NGNGこれら3種類の方式について、利点、欠点をそれぞれ記述せよ。
というような問題が出ました。
この問題の前に構造体、配列、リングバッファの3方式でプログラムを書いてみたのですが、利点や欠点がいまいちわかりません。
教えてもらえないでしょうか?お願いします。
0152デフォルトの名無しさん
NGNGstruct A {
int data;
struct A* next;
}
とか?
0153151
NGNGなにか利点や欠点があるのでしょうか?
0154デフォルトの名無しさん
NGNG漏れもさっき書いたんだがアク禁になっていて書き込めなかった・・・
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1074774948&res=9
0155デフォルトの名無しさん
NGNG0156153
NGNGstruct cell{
double num;
struct cell *next;
};
このような条件があたえられて作ったスタックやキューのことです。(多分)
0157デフォルトの名無しさん
NGNG使用される記憶領域の大きさが"いつ"決定されるかとか、リストの要素
の入れ換えや削除のときに"どれだけ時間がかかるか"とかを考えてみ。
0158デフォルトの名無しさん
NGNGクリックしたら Text プロパティをintに変換したい
private: System::Void button1_Click(System::Object * sender, System::EventArgs * e)
{
int a;
a=textBox1->Text->ToInt32;
}
4行目を↓のようにしてもうまくいかず・・・どうやれば上手くいくのでしょうか?
a=atoi((char)textBox1->Text);
0159デフォルトの名無しさん
NGNG0160デフォルトの名無しさん
NGNG0161デフォルトの名無しさん
NGNGbuttonと見ただけでGUIと決め付けたり、
知らない振りしてVCスレへ誘導しようとしたり
MS叩きたいだけのアホが沸いてますな。
0162デフォルトの名無しさん
NGNGすいませんVC++スレに行ってきます
0163デフォルトの名無しさん
NGNG0164デフォルトの名無しさん
NGNG0165デフォルトの名無しさん
NGNGなんでVC++スレなんだよ
C#スレへ行けよ
0166デフォルトの名無しさん
NGNG0167デフォルトの名無しさん
NGNG0168デフォルトの名無しさん
NGNG0169デフォルトの名無しさん
NGNG0170デフォルトの名無しさん
NGNGガウス積分のnを色々変えれるプログラムがどうしても欲しいのですが、
どなたか作っていただけないでしょうか?
0171デフォルトの名無しさん
NGNG1+(1+2)2乗×2+(1+2+3)2乗×3+・・・+(1+2+・・・+n)2乗×n
見にくくてすみません。
初心者でよくわからないのでお願いします。
0172デフォルトの名無しさん
NGNGまあ、宿題的には多分、
int result = 0;
for(int m=1; m<=n; ++m)
{
int sum = 0;
for(int l=1; l<m; ++l)
sum += l;
result += sum * sum;
}
として欲しいだろうけど、下式で計算できる。
result = 農{m=1}^{n} {農{l=1}^{m} l}^2
= 農{m=1}^{n} {(1/2)m(m+1)}^2
= (1/4)農{m=1}^{n} {m^4 + 2m^3 + m^2}
= (1/4){(1/30)n(n+1)(3n^2 + 3n - 1) + (1/2)n^2(n+2)^2 + (1/6)n(n+1)(2n+1)}
= (1/120)n(n+1)(18n^2 + 28n + 4)
↑途中、計算間違いしてないかどうかは自信ない。
0173170
NGNG以下のプログラムをどう直せばよいのでしょうか?
#include <stdio.h>
#include <math.h>
double f(double x)
{ return 1./(x*x*x); }
double gauss1d(a, b)
double a, b;
{
double r[2]={.652145158, .3478548451}, s[2]={.3399810435, .8611363115};
double x2, x1, y, u=0.0, q;
int k;
for (k=0; k<2; k++){
x1 =(s[k]*(b-a)+a+b)/2.; x2 = (-s[k]*(b-a)+a+b)/2.;
y=f(x1)+f(x2);
u=u+r[k]*y;
}
q=(b-a)*u/2.;
return q;
}
main()
{ printf("f(x)dx = %f\n", gauss1d(1., 2.)); }
0174デフォルトの名無しさん
NGNGこ ん ば ん は だろっ!
0175デフォルトの名無しさん
NGNG↓
------
620 名前:615[sage] 投稿日:04/05/23(日) 21:06
>>619
俺もぐぐったのですが、
nの数を変えれるプログラムが見つからなくて。
すいません。教えてください。
621 名前:デフォルトの名無しさん[sage] 投稿日:04/05/23(日) 21:55
どれがnなのか。
------
621に激しく同意。
0176デフォルトの名無しさん
NGNG1−1 n=10のとき sin(0.25), P(0.25)を比べる。
2 x=x[i], y[i]=P(x)となっていることを確認せよ。
ニュートン補間のプログラムを作成する。
2−1 n=10のとき sin(0.25), P(0.25)を比べる。
2 補間点で0であることを確認せよ。
という問題です。
初心者で本当に分からないので、どうか教えてください。
お願いします。
0177デフォルトの名無しさん
NGNG指定が多くて全部書くと長くなるのでweb上においときました
http://sora0206.hp.infoseek.co.jp/index_kakimono.html
よろしくおねがいします
0178デフォルトの名無しさん
NGNG(1/120)n(n+1)(n+2)(5n^3+12n^2+4n-1)の間違い
0179デフォルトの名無しさん
NGNGどこのボンクラ大学ですか?
0180デフォルトの名無しさん
NGNGn,P(x),x,x[i],y[i]がそれぞれ何の意味なのかが分からない。
その課題の前に他の説明か、それぞれのプログラムが示されているだろう?
情報を充分に伝えないのに教えてくれなんて無茶を言うな。
0181176
NGNG無茶苦茶なことを言ってすみませんでした。
double φ[n]
double x[n];
y[n];
for ( k=0 ; k<n ; k++ ){
for ( l=0 ; l<n ; l++ ){
if ( l != k ){
φ[k]=φ[k]×(x-x[l])/(x[k]-x[l]);
}
}
double P=0;
for ( i=0 ; i<n ; i++ ){
P=P+y[i]×φ[i];
}
for ( i=0 ; i<n ; i++ ){
x[i]=-1+2i/n;
}
for ( i=0 ; i<n ; i++ ){
y[i]=sin(x[i]);
}
]
ラグランジュ補間についてなされた説明は上の通りです。
これで伝わりましたでしょうか?
ニュートン補間についてなされた説明をこれから書きます。
0182デフォルトの名無しさん
NGNG>・プログラムのheaderファイルの中で、研究室数、学生数を定義して良い
>・研究室情報、学生情報はそれぞれ構造体でまとめて扱う
/* 研究室設定定義ファイル(研究室情報) */
struct _lab{
char name[256];
int limit;
};
#define NUM_OF_LAB 4
/* 研究室設定定義ファイル(学生情報) */
struct _stu{
char label[256];
char name[256];
char id[256];
int wish[NUM_OF_LAB];
};
まずはここらへんから
0183176
NGNGn
PN(x)=巴kωk(x)
k=0
b[0]=y[0];
for ( n=0 ; n<=N ; n++ ){
b[n]=y[n];
for ( l=0 ; l<n ; l++ ){
b[n]=(b[n]-b[l])/(x[n]-x[l]);
}
}
P=b[N];
for ( n=N ; n>0 ; n-- ){
P=b[n-1]+(x-x[n-1])×P;
}
どうかお願いします。教えてください。
018474
NGNG>>75
その本ありました。 一応それをもとにも作ったのですが
最速かどうか自信なくて・・・
テキストをスキャンしてみました ちょっと目を通して
どなたかアルゴリズムだけでも考えて教えてください
http://49uper.com:8080/img-s/1874.jpg
http://49uper.com:8080/img-s/1875.jpg
0185デフォルトの名無しさん
NGNGにおいて n=5 のとき任意の係数 (a0),(a1),(a2),(a3),(a4),(a5)
をキーボードより入力し、f(x)=0 となる
x の値を求めよ。
ただし、a0=0のとき終了、それ以外は繰り返しとする。
実行結果ファイルも作成すること。
お願いします
0186デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=75
0187185
NGNGお願いします
#include <stdio.h>
#include <math.h>
#define Eps 0.000000000001 // 収束条件
double a0, a1, a2, a3, a4, a5;
double b0, b1, b2, b3, b4, b5, c0, c1, c2, c3, c4;
double x0, x1, tmp;
double p0, p1, p2, p3, p4;
double f(double x) // サブ関数 f(x)
{
return ((((x + b1) * x + b2) * x + b3) * x + b4) * x + b5;
}
double df(double x) // サブ関数 f'(x)
{
return (((c0 * x + c1) * x + c2) * x + c3) * x + c4;
}
0188185
NGNG{
printf(" f(x) = a0*x^5 + a1*x^4 + a2*x^3 + a3*x^2 + a4*x + a5\n\n");
printf(" InputData a0 : "); scanf("%lf", &a0);
printf(" InputData a1 : "); scanf("%lf", &a1);
printf(" InputData a2 : "); scanf("%lf", &a2);
printf(" InputData a3 : "); scanf("%lf", &a3);
printf(" InputData a4 : "); scanf("%lf", &a4);
printf(" InputData a5 : "); scanf("%lf", &a5);
b0 = 1.0; b1 = a1 / a0; b2 = a2 / a0; b3 = a3 / a0; b4 = a4 / a0; b5 = a5 / a0;
c0 = 5.0 * b0; c1 = 4.0 * b1; c2 = 3.0 * b2; c3 = 2.0 * b3; c4 = b4;
printf("\n");
printf(" f(x) = a0*x^5 + a1*x^4 + a2*x^3 + a3*x^2 + a4*x + a5 元の式\n");
printf(" f(x) = b0*x^5 + b1*x^4 + b2*x^3 + b3*x^2 + b4*x + b5 標準化\n");
printf(" f'(x) = c0*x^4 + c1*x^3 + c2*x^2 + c3*x + c4 微分\n\n");
0189185
NGNG{
printf(" f(x) = a0*x^5 + a1*x^4 + a2*x^3 + a3*x^2 + a4*x + a5\n\n");
printf(" InputData a0 : "); scanf("%lf", &a0);
printf(" InputData a1 : "); scanf("%lf", &a1);
printf(" InputData a2 : "); scanf("%lf", &a2);
printf(" InputData a3 : "); scanf("%lf", &a3);
printf(" InputData a4 : "); scanf("%lf", &a4);
printf(" InputData a5 : "); scanf("%lf", &a5);
b0 = 1.0; b1 = a1 / a0; b2 = a2 / a0; b3 = a3 / a0; b4 = a4 / a0; b5 = a5 / a0;
c0 = 5.0 * b0; c1 = 4.0 * b1; c2 = 3.0 * b2; c3 = 2.0 * b3; c4 = b4;
printf("\n");
printf(" f(x) = a0*x^5 + a1*x^4 + a2*x^3 + a3*x^2 + a4*x + a5 元の式\n");
printf(" f(x) = b0*x^5 + b1*x^4 + b2*x^3 + b3*x^2 + b4*x + b5 標準化\n");
printf(" f'(x) = c0*x^4 + c1*x^3 + c2*x^2 + c3*x + c4 微分\n\n");
0190185
NGNGif(a5 != 0.0) // 5次式の判定
{
x1 = 0.0; x0 = -100.0;
printf(" x1 = x0 - f(x0) / df(x0)\n\n");
while(fabs((x1 - x0) / x0) > Eps)
{
x1 = x0 - f(x0) / df(x0);
printf("%20.14lf %20.14lf %28.16lf %28.16lf\n", x1, x0, f(x0), df(x0));
tmp = x0; x0 = x1; x1 = tmp;
}
}
else
x0 = 0.0;
printf("\n");
printf(" 一実根 : %20.14lf\n", x0);
p0 = 1.0; p1 = b1 + x0; p2 = b2 + x0 * p1; p3 = b3 + x0 * p2; p4 = b4 + x0 * p3;
printf("\n");
printf(" g(x) = p0*x^4 + p1*x^3 + p2*x^2 + p3*x + p4 四次式の係数\n\n");
printf(" p0 :%20.14lf\n p1 :%20.14lf\n p2 :%20.14lf\n p3 :%20.14lf\n p4 :%20.14lf\n",
p0, p1, p2, p3, p4);
return 0;
}
かぶった・・・。
すいません。。。
あと、汚してごめんなさい
0191デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=76
0192191
NGNGf2() はメモリアクセス違反防止のインチキ
0193デフォルトの名無しさん
NGNG>>191
のソースでコンパイルすればできるんですよね?
エラーがでるんですが・・・・
0194デフォルトの名無しさん
NGNG0195デフォルトの名無しさん
NGNGエラー E2140 103 ここでは宣言できない(関数 f1)
エラー E2141 103 宣言の構文エラー(関数 f1)
エラー E2139 153 宣言に;がない(関数 f1)
エラー E2190 153 不要な}
警告 W8060 175 :おそらく不正な代入(関数 main)
警告 W8060 176 :おそらく不正な代入(関数 main)
警告 W8070 209 :関数は値を返すべき(関数 main)
とこんな感じです
0196デフォルトの名無しさん
NGNG0197デフォルトの名無しさん
NGNGの(プログラム例6.3) 大文字から小文字への変換 の解答を教えてください。
0198仕様書無しさん
NGNGある文字xを大文字にする。
x = toupper(x);
でも、そこのページだとこれは不正解だそうだ。
+32するのが正解なんて、アホかと。
0199デフォルトの名無しさん
NGNGtolower()
0200仕様書無しさん
NGNG鬱死
0201デフォルトの名無しさん
NGNG0202デフォルトの名無しさん
NGNGX,Y,Zの3人の国語、数学、英語のそれぞれの平均点を表示するプログラムを構造体を用いて作成せよ
って言う問題なのですが見本回答を教えてください。
データ(数字とか)は自由です。
よろしくお願いしますm( )m
0203デフォルトの名無しさん
NGNG各教科についてのXYZ3人の平均
XYZ3人の各教科の平均
どっち?
0204デフォルトの名無しさん
NGNGXYZ3人の各教科の平均です。
0205超初心者
NGNGvoid main(void)
{
float a,b,c;
printf("----addition and subtraction----\n");
a=1e-7;
b=1.0+a;
c=b-1.0;
printf("a=%e=%23.17e\n",a,a);
printf("b=%e=%23.17e\n",b,b);
printf("c=%e=%23.17e\n",c,c);
printf("a=%23.17e\n",a);
printf("b=%23.17e\n",b);
printf("c=%23.17e\n",c);
}
で、c=(1.0+a)-1.0=aにならない理由はなんでですか?
どなたか助けて下さい。お願いします。
0206仕様書無しさん
NGNGfloat型はせいぜい6〜7桁しか有効でないから。
0207仕様書無しさん
NGNG最適化なし:
----addition and subtraction----
a=1.000000e-007=1.00000001168609740e-007
b=1.000000e+000=1.00000011920928960e+000
c=1.000000e-007=1.00000001168609740e-007
a=1.00000001168609740e-007
b=1.00000011920928960e+000
c=1.00000001168609740e-007
最適化あり(/O2):
----addition and subtraction----
a=1.000000e-007=9.99999999999999950e-008
b=1.000000e+000=1.00000010000000010e+000
c=1.000000e-007=1.00000000058386720e-007
a=9.99999999999999950e-008
b=1.00000010000000010e+000
c=1.00000000058386720e-007
結果が変わるんだね。ちょっと勉強になった。
0208海亀
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1055157603&res=32&fi=no
迷路の生成は鷹月ぐみな氏の「棒倒し法」を参考にしました。
http://www.campus.ne.jp/~ishigami/CREATION/GENERAL/MAZE.htm
0209207
NGNG恥ずかしい質問ですけど1e-1はなんで
1.00000001490116119e-01になるんですか?
0210207
NGNG0211仕様書無しさん
NGNG207って名前使ってるけど、オマイはオレか?w
2進数の小数表現について習っていないのかい?
1e-1というのは0.1のことだ。0.1を2進数で表現すると無限小数になる。
どっかで丸めないとならないわけで、その分誤差が生じるわけだ。
0212205
NGNG2進数なんて知りませんでした。
有難うございました。m( )m
0213仕様書無しさん
NGNGベタなCプログラムを作ったけど改行が多すぎてカキコできなかった。残念だ。
0214デフォルトの名無しさん
NGNG0215デフォルトの名無しさん
NGNGどうしたらよいでしょうか?
int sample(void* x,size_t size) {
…
}
上記の関数内で、xを sizeの大きさの型のポインタとして扱いたいんです。
ご教授ください。m(_ _)m
0216デフォルトの名無しさん
NGNGif (size == 1) {
c = *(char*)x;
} else if (size == 2) {
s = *(short*)x;
} else if (size == 4) {
i = *(int*)x;
l = *(long*)x;
f = *(float*)x;
}
こんな感じにすれば?
0217仕様書無しさん
NGNGどういうシチュエーションでそういうキャスト変換が発生するの??
0218215
NGNGレス、ありがとうございます。
しかし、構造体のポインタでも扱えるようにので、
他にやり方があれば、ご教授お願い致します。
0219デフォルトの名無しさん
NGNGわかんないかな、ネタだよ。
サイズ->型と一意に決定できるものじゃないから、解決手段はなし。
0220215
NGNG標準関数の、bsearch() と同じ引数で、
配列が昇順で並んでいなくても検索できるように、
線形探索のアルゴリズムで検索する関数を作成しなさい。
と、いう宿題なんです(T_T)。
bsearch() については、こちらを↓
http://docs.hp.com/ja/B2355-60104-06/rn03re46.html
0221デフォルトの名無しさん
NGNG検索する人が比較関数で型を決め打ちできるので、
サイズから型を認識する必要はないよ。
0222215
NGNG解決手段はなしですか…。
ご回答ありがとうございました。
0223デフォルトの名無しさん
NGNG0224デフォルトの名無しさん
NGNG考え方が間違っているだけだよ。
どうして型を知る必要があると考えたんだ?
一度bsearch()を利用したプログラム書いてごらん。
それとも宿題丸投げしてみる?
0225デフォルトの名無しさん
NGNG0226215
NGNG関数内で、配列のポインタを進める必要があるのですが、
void*型のままだと、エラーになるんです。
>>223
そうですね。その方法でやってみます。
ありがごうとざいました。
0227215
NGNG関数内で、配列のポインタを進めた値を比較関数に渡す必要があるのですが、
void*型のままだと、ポインタを進めた値が求められずエラーになるんです。
>>223のやり方で行うのがよさそうですね。
ありがとうございました。
0228223
NGNGvoid *lsearch(const void *key,const void *base,size_t nmemb,size_t size,int (*compar)(const void *,const void *))
{
size_t i;
const unsigned char *pbase=(const unsigned char *)base;
for(i=0;i<nmemb;i++,pbase+=size)
if(!(*compar)(key,pbase))
return pbase;
return NULL;
}
0229仕様書無しさん
NGNGまず大前提として、bsearch()を使ったことはあるのか?
charにキャストすればコンパイルは通るが、望み通りの結果は得られないだろうな。
0230215
NGNGそんな感じでいけそうです。ありがとうございます。
>>229
bsearch()はテキストに載っているサンプルリストで使ったことがあるぐらいです。
一応、意味はわかっているつもりなんですが…。
>>223 のように、
char型にキャストして、進めたい値にsizeを掛けた分進めれば、
できそうですね。
0231202
NGNGええそんなーー。。
誰か教えてくだせー。。
X,Y,Zの3人の国語、数学、英語のそれぞれの各教科についてのXYZ3人の平均点を表示するプログラムを構造体を用いて作成せよ
って言う問題なのですが見本回答を教えてください。
データ(数字とか)は自由です。
よろしくお願いしますm( )m
0232仕様書無しさん
NGNG213だけど、どうがんばっても行数が収まらなかったんで、考え方だけ伝えておくよ。
構造体は、下のようになる。
struct TestScore {
double kokugo, suugaku, eigo;
};
XYZの三人だから、配列を使うのがいいだろ。struct TestScore students[3];
あとは各々配列と構造体要素にscanfでもなんでも使って代入、平均値計算しておわり。
構造体にdoubleをつかってるのは、平均値を管理するのにも使いたいから。
0233デフォルトの名無しさん
NGNG>>1のうpろだ使えばいいじゃん
0234仕様書無しさん
NGNGああ、なるほどね。
>>231
ほれ。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=77
0236デフォルトの名無しさん
NGNG日本語で『こんにちはと、言う。』と入力すれば
ダイアログに『こんにちは』と出るプログラミング言語登場!!
PNGもサポートしてるので、かなりおすすめです!!
また、【『http://www.xxxx.xx/』を、『index.htm』へ、HTTPダウンロード。】
とすれば自動的にダウンロードできる優れ物です!!
↓日本語プログラミング言語『ひまわり』
http://hima.chu.jp/index.htm
↓日本語プログラミング言語『ひまわり』スレッド
http://pc5.2ch.net/test/read.cgi/tech/1083053283/l50
0237デフォルトの名無しさん
NGNG計算しなさい。
1!
3!
7!
:
(2n+1)!
どうかお願いします。
0238デフォルトの名無しさん
NGNGそれちょっとまえに答え出なかったか?
#include <stdio.h>
int factorial(int n)
{
/*このスレのどっかにあるから探せ。*/
}
int main(void)
{
int i, n;
scanf("%d", &n);
for (i = 0; i <= n; i++)
printf("%d! = %d\n", 2 * i + 1, factorial(2 * i + 1));
return 0;
}
0239デフォルトの名無しさん
NGNGまあ引数がiになってるやつのほうが再帰使ってなくていいかな。
0240デフォルトの名無しさん
NGNGx=a^4+b^4=c^4+d^4を満たす組み合わせのうち
xが最小となるa,b,c,dを求めよ。
わかりません、教えてください。
0241デフォルトの名無しさん
NGNGコンパイラの互換性を良くした。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=78
0242デフォルトの名無しさん
NGNGunsigned int で0〜4294967296
まで入るのはありますけど
0〜-4294967296まで入るのは無いんですか?
0243242
NGNG0244デフォルトの名無しさん
NGNG今号のCマガ見たら?
乱数使うけど迷路について載ってるよ
0245デフォルトの名無しさん
NGNGー(マイナス)は自分で管理シロ!
0246デフォルトの名無しさん
NGNGされるプログラムがわかりません。for文を使ったりいろいろやってみましたが
ド初心者なものでやっぱりわかりません…。どなたかC言語の簡単でわかり易い
プログラムを教えてください!お願いします!
表示月を入力してください。 >5
1:日 2:月 3:火 4:水 5:木 6:金 7:土 >6
*** 5月 ***
日 月 火 水 木 金 土
↑一応ここまでできています…。
0247デフォルトの名無しさん
NGNG0248デフォルトの名無しさん
NGNGどうでもいいけど、問題の意味が分からない。
問題文は、全部書いて。
0249デフォルトの名無しさん
NGNG数学板へGO
0250246
NGNG「表示する月とその月の1日の曜日を入力すると、1ヶ月分のカレンダーを表示する
プログラムを作りなさい。ただし、うるう年は考えないこととする。」 です。
0251名無しさん@お腹いっぱい。
NGNGとりあえず総当たりするしかないだろ。
0252デフォルトの名無しさん
NGNG上のリンク先の内容のことをCで書きたいんですけどよくわかりません。
教えていただけないでしょうか?
0253デフォルトの名無しさん
NGNG#include <stdio.h>
#include <stdlib.h>
#define BUFSIZE 256
main(){
int days[] = {31,28,31,30,31,30,31,31,30,31,30,31};
int month, start, i;
char buf[BUFSIZE];
fputs("表示月を入力してください。 >", stdout);
if(NULL == fgets(buf, BUFSIZE, stdin)) return 1;
month = atoi(buf);
if(month < 1 || month > 12) return 1;
fputs("1:日 2:月 3:火 4:水 5:木 6:金 7:土 >", stdout);
if(NULL == fgets(buf, BUFSIZE, stdin)) return 1;
start = atoi(buf);
printf("*** %d月 ***\n日 月 火 水 木 金 土\n", month);
for(i = 0; i < 4 * (start - 1); i++) putchar(' ');
for(i = 0; i < days[month - 1]; i++){
printf("%2d ", i + 1);
if((start + i) % 7 == 0) putchar('\n');
}
}
0254デフォルトの名無しさん
NGNGint main(void){
int i, m, d;
int cal[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
printf("表示月を入力してください。>"); scanf("%d", &m);
printf("1:日 2:月 3:火 4:水 5:木 6:金 7:土 >"); scanf("%d", &d);
printf("\n日 月 火 水 木 金 土\n%*s", (d - 1)*3, "");
for (i = 0; i < cal[m]; i++){
printf("%2d ",i + 1);
if ((d++) % 7 == 0) puts("");
}
return 0;
}
0255253
NGNG#include <stdio.h>
#include <stdlib.h>
#define BUFSIZE 256
int main(){
int days[] = {31,28,31,30,31,30,31,31,30,31,30,31};
int month, start, i;
char buf[BUFSIZE];
fputs("表示月を入力してください。 >", stdout);
if(NULL == fgets(buf, BUFSIZE, stdin)) return 1;
month = atoi(buf);
if(month < 1 || month > 12) return 1;
fputs("1:日 2:月 3:火 4:水 5:木 6:金 7:土 >", stdout);
if(NULL == fgets(buf, BUFSIZE, stdin)) return 1;
start = atoi(buf);
if(start < 1 || start > 7) return 1;
printf("*** %d月 ***\n日 月 火 水 木 金 土\n", month);
for(i = 0; i < 4 * (start - 1); i++) putchar(' ');
for(i = 0; i < days[month - 1]; i++){
printf("%2d ", i + 1);
if((start + i) % 7 == 0) putchar('\n');
}
return 0;
}
0256246
NGNG助かりました…。本当にありがとうございます!
0257超超初心者
NGNGしまうんですが、手詰まり状態です。誰か助けてくれませんか?
「単精度実数型の配列aを四行三列で宣言します。各要素の値は、行と
列の和とします。たとえば2行3列は2+3=5とします。もう一つ、
別の配列bを宣言します。こちらの要素は、m行n列の場合、nーmと
します。まず、二つの配列を表示し、その後、二つの配列の和を表示します。表示するときは、小数点以下2桁まで表示します」
0258デフォルトの名無しさん
NGNG0259デフォルトの名無しさん
NGNGコードだせ!
0260デフォルトの名無しさん
NGNG0261超超初心者
NGNGsumがどうのこうのがわからんのです
0262デフォルトの名無しさん
NGNG0263デフォルトの名無しさん
NGNG超能力者が現れるのを待つか、わかりやすく説明してください。
0264超超初心者
NGNG0265デフォルトの名無しさん
NGNGで作りたいのですが下のプログラムではどのように書いたらよろしいのですか?
超初心者なので教えて下さる方おねがいします
int main()
{
int a[50];
int n;
int i;
scanf("%d")
for(i = 0;i < n; ++i){
printf("a[%d] = %d\n",i,a[i]);
}
0266デフォルトの名無しさん
NGNGCの教科書とか無いのか?
0267名無しさん@お腹いっぱい。
NGNGおおかた、配列どうしの和を計算するのに、
配列名どうしを加算してんだろ。
double aa[4][3], bb[4][3];
aa + bb;
みたいに。
0268デフォルトの名無しさん
NGNG#include <stdio.h>
int main(void)
{
int a[50], n = 5, i;
for(i = 0;i < n; ++i) scanf("%d,", a + i);
for(i = 0;i < n; ++i) printf("a[%d] = %d\n", i, a[i]);
return 0;
}
0269デフォルトの名無しさん
NGNG入力されるまで継続するプログラム作りたいのですが、初心者でわかりません。
(例)
% a.out
prom> xxxx 3
xxxx
xxxx
xxxx
prom>xxx yyy zzz 5
xxx yyy zzz
xxx yyy zzz
xxx yyy zzz
xxx yyy zzz
xxx yyy zzz
prom> quit
%
prom>は自分で表示させます。
教えてくださる方お願いします。
0270超超初心者
NGNGa[4][3]+b[4][3];みたいなことしていました
どうもすみません
0271デフォルトの名無しさん
NGNG0272デフォルトの名無しさん
NGNGint factorial(int i)
{
int j,k=1;
for(j=1;j<=i;j++)
k*=j;
return k;
}
int main()
{
unsigned int n,i;
printf("1!,3!,・・・+(2n+1)!を求める。\nnを入力 : ");
scanf("%d",&n);
for(i=1;i<=2*n+1;i+=2)
printf("%d! = %d\n",i,factorial(i));
return;
}
これでnに8をいれるとマイナスの値が出るのは何ででしょうか?
違うところの指摘をお願いします。
0273デフォルトの名無しさん
NGNGソース全部書いてよ。長かったら>>1のところにでも。
0274名無しさん@お腹いっぱい。
NGNGn=8ってことは、17!でしょ?
桁あふれ。
0275デフォルトの名無しさん
NGNGオーバーフロー。int型で計算できる範囲を超えている。
0276デフォルトの名無しさん
NGNGあと、それを使って、標準入力からカンマ区切りの整数値を入力として受け取り(入力終了はEOF),
大きい方から順にカンマ区切りで標準出力に出力するプログラムを作成せよという問題
なのですが、ただ、配列に入るだけになってしまいます。どうすれば改善されるのでしょうか?
#include <stdio.h>
void shellsort(int[],int );
int main()
{
int a[50];
int n=10;
int i;
for(i = 0;i < n; ++i) scanf("%d,", a + i);
for(i = 0;i < n; ++i) printf("a[%d] = %d\n", i, a[i]);
shellsort(a,n);
return 0;
}
void shellsort(int v[], int n)
{
int gap, i, j, temp;
for(gap = n/2; gap > 0; gap /= 2)
for(i = gap; i<n; i++)
for(j=i+gap; j >= 0 && v[j]<v[j+gap]; j+=gap) {
temp = v[j];
v[j] = v[j+gap];
v[j+gap] = temp;
return ;
}
}
0277IEEE規格のによる実数表現
NGNG仕方はIEEE規格754に従うものと仮定する)
(−1)のs乗×(1+M)×2のE乗 if −127<E<128
{ (−1)のs乗×M×2の(E+1)乗 if E=−127
Inf(無限大) if E=128、M=0
NaN(非数、Not a Number) if E=128、M≠0
ここで、M=煤ii=1から23)di×2の−i乗、E=煤ii=0から7)ei×2のi乗−127
を出力するCプログラムを作成せよ。なおその際pow関数は使わず作れ。
という問題です。見にくいですがどうかお願いします。
0278デフォルトの名無しさん
NGNGc++に対応するものってないのかな?
_tempnamはmallocで確保した領域を返すから
freeで開放しなくちゃだめ。
c++のコードに突然freeが出てきてちょっとやだ。
0279デフォルトの名無しさん
NGNG#include <stdio.h>
#include <string.h>
int main(void){
int i, num;
char buf[128], str[100];
for(;;){
printf("prom>");
fgets(buf, sizeof buf, stdin);
if (sscanf(buf, "%s %d", str, &num) != 2){
if (!strcmp(str, "quit")) break;
else continue;
}
for (i = 0;i < num; i++) puts(str);
}
return 0;
}
0280279
NGNG0281名無しさん@お腹いっぱい。
NGNGそれだと、%sは空白をデリミタにするからまずくない?
0282デフォルトの名無しさん
NGNG#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#define BUFSIZE 256
main(){
char buf[BUFSIZE], *p;
int i, n;
for(;;){
printf("prom> ");
fgets(buf, BUFSIZE, stdin);
if(!strcmp(buf, "quit\n")) break;
for(p = buf + strlen(buf) - 1; ;p--){
if(p == buf){break;}
else if(!isdigit(*p) && !isspace(*p)){p++;break;}
}
n = atoi(p);
*p = '\0';
for(i = 0; i < n; i++) printf("%s\n", buf);
}
}
0283デフォルトの名無しさん
NGNGそれは,CじゃなくPOSIX(UNIX規格)。
あきらめろ。
0284282
NGNG0285282
NGNG#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#define BUFSIZE 256
main(){
char buf[BUFSIZE], *p;
int i, n;
for(;;){
printf("prom> ");
fgets(buf, BUFSIZE, stdin);
if(!strcmp(buf, "quit\n")) break;
for(p = buf + strlen(buf) - 1; ; p--){
if(!isdigit(*p) && !isspace(*p)){
p++;
break;
}
else if(p == buf){
break;
}
}
n = atoi(p);
*p = '\0';
for(i = 0; i < n; i++) printf("%s\n", buf);
}
}
0286282
NGNG0287184
NGNG>>208
棒倒し法ですか 自分もこれで作成したのですが
伸ばしていこうとした所に すでに壁があった場合 残りの場所に
置く方法がいまいち分かりません ソース見たのですが 結構知らない文とかもあって難しいです・・・
自分はこんな風にしたんですが・・・ これで一応正解は一通りになるんですが なんかいまいちな気がして
ransu=rand()%3;
switch(ransu)
{
case 0:
if(map[i-1][j]!=1){
map[i-1][j]=1;
break;
}
case 1:
if(map[i+1][j]!=1){
map[i+1][j]=1;
break;
}
case 2:
map[i][j+1]=1;
break;
}
また、ルールの関係上 正解ルートは1本じゃないほうがいい気もしますし
どう思われますか?
また 探索の方もいまいちわかりません どんなアルゴリズムなのですか?
今 再起でやってるんですが 再起だと処理時間遅いですかね?
どうかお時間ある方はちょっと考えてみてもらえませんか?
0288デフォルトの名無しさん
NGNG入力終了EOFでカンマ区切りってのがよくわからんな。
1,
3,
こういうふうに入力するってことか?
あとそのシェルソートはおかしくないか?
0289デフォルトの名無しさん
NGNGどなたかどうかお願いします!!
0290デフォルトの名無しさん
NGNG1+(1+2)2乗×2+(1+2+3)2乗×3+・・・+(1+2+・・・+n)2乗×n
見にくくてすみません。
初心者でよくわからないのでお願いします。
0291279
NGNG#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main(void){
int i, num;
char buf[128], *p = buf, *q = buf;
for(;; p = buf, q = buf){
printf("prom>");
fgets(buf, sizeof buf, stdin);
while(*++p != '\n') if(isspace(*p)) q = p;
if (sscanf(q, "%d", &num) != 1){
if (!strcmp(buf, "quit\n")) break;
else continue;
}
*q = '\0';
for (i = 0;i < num; i++) puts(buf);
}
return 0;
}
0292名無しさん@お腹いっぱい。
NGNGもう寝るから、明日のお昼前でいいならうpするよ。
0293デフォルトの名無しさん
NGNGお願いします!!
0294デフォルトの名無しさん
NGNG#include <stdio.h>
int siguma(int n){
int i, sum = 0;
for (i = 1; i <= n; i++) sum += i;
return sum;
}
int main(void){
int sum = 0, n, i;
scanf("%d", &n);
for (i = 1; i <= n; i++) sum += siguma(i) * siguma(i) * i;
printf("%d", sum);
return 0;
}
0295デフォルトの名無しさん
NGNGそういう捨て台詞はもっとマンドクサーな奴に残せよ(藁
>>293
#include <stdio.h>
int main() {
int n;
enum { S=24, E=8 };
double s=0;
int e=0;
char buf[S+2];
fgets(buf,sizeof(buf),stdin);
for(n=0;n<E;++n){ e += (buf[n]=='1')*(1<<(E-1-n)); }
for(n=0; n<S; ++n){ s += (buf[n+E]=='1')*1.0/(1<<n); }
for(n=0; n<((1<<(E-1)-1); ++n) s /= 2;
for(n=e; n>0; --n) s *= 2;
printf("%e\n", s);
}
0296295
NGNG鬱だ…
#include <stdio.h>
int main() {
int n;
enum { S=24, E=8 };
double s=0;
int e=0;
char buf[E+S+2]; //←訂正
fgets(buf,sizeof(buf),stdin);
for(n=0;n<E;++n){ e += (buf[n]=='1')*(1<<(E-1-n)); }
for(n=0; n<S; ++n){ s += (buf[n+E]=='1')*1.0/(1<<n); }
for(n=0; n<((1<<(E-1)-1); ++n) s /= 2;
for(n=e; n>0; --n) s *= 2;
printf("%e\n", s);
}
0297デフォルトの名無しさん
NGNG↑のソースなのですがちゃんと動かすにはどこを修正すればよいでしょうか・・・
0298デフォルトの名無しさん
NGNG素直に作り直した方がよさげ
ストライク、スペアは"次の"フレームが必要だが、それを考慮してないし
0299デフォルトの名無しさん
NGNG一応考慮してあるようだよ。
>>297
とは言うものの、ストライク取ったフレームの点数は確定するまでは表示しない方がいい。
それに、ストライクのときに10/0を入力させるのも今一つ使い勝手が悪い。
先に全部入力させて、計算は後からにすればストライク/スペア周りの処理がすっきるするのでは?
途中経過を表示するのはそれができてから改めて作ればいい。
0300184
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=79
今 ゴールできるすべての経路を表示するようにしてあります
今 このなかで最短経路の道順にだけ配列の値を0→4にしたいのです
配列に正解経路にだけ4を格納したら もう すべての経路を表示させる必要はなく
マップの横 縦の幅と 正解ルートに4を格納したマップを出力するだけでいいです
5 5
1 1 1 1 1
2 4 4 4 1
1 0 1 4 1
1 0 1 4 3
1 1 1 1 1
この方法を考えていただけませんか?
ちなみにマップを作るプログラムはこれです
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=80
両方とも実行時にコマンドプロンプトでファイルに入出力します。
0301デフォルトの名無しさん
NGNG問題のソースは、これでいいかな?
http://www.isse.kuis.kyoto-u.ac.jp/acm-japan/icpc99/problems/ant/ant.html
0302184
NGNGさきほどの解くほうのプログラム
if(sucs==1)
map[tate][yoko]=4;
if(map[tate][yoko]==5)
map[tate][yoko]=0;
は要らないですね 消してください。
また現在のプログラムだと 迷路が大きくなりすぎると
pathの値が大きくなりすぎためか 実行できなくなります
どうすればいいのでしょうか お願いします 助けてください。
0303184
NGNGすみません 英語読めません
問題の元のテキストはこれです
http://49uper.com:8080/img-s/1874.jpg
http://49uper.com:8080/img-s/1875.jpg
0304184
NGNG多くなりすぎる気がするんですよね 迷路を 39×39
なんかにするだけでも pathすごい数いくし・・・
実際にはもと大きい迷路も扱うんです それこそ100超えるようなものも・・・
あ ちなみに迷路は正方形とはかぎりません 奇数×奇数なら長方形もありえます
あと もう学校行かないと行けないんです また昼ごろ顔出します
実はこれ今日提出なんで結構やばいのですが
0305デフォルトの名無しさん
NGNGプログラムなんですが、
#include<stdio.h>
void main(){double t[N];int nt=4;nt=4;
FILE *in;
in=fopen("ファイル場所","r");
if(in=NULL) printf("ファイルが見つかりません。パスを確認して下さい。\n");
else{for(i=1;i<=nt;i++) fscanf(in,"%lf",&t[i]);}
fclose(in);}
といった風にプログラム打ったんですけど、
未定義のシンボル N、おそらく不正な代入、未定義のシンボル i、'nt' に代入した値は使われていない
とエラーが出て、もうどうすればよくわからないんです。
どどうすればいいのか教えてほしいです、お願いします。
0306デフォルトの名無しさん
NGNG#define N 5
void main(){double t[N];int i,nt=4;;
FILE *in;
in=fopen("ファイル場所","r");
if(in=NULL) printf("ファイルが見つかりません。パスを確認して下さい。\n");
else{for(i=1;i<=nt;i++) fscanf(in,"%lf",&t[i]);}
fclose(in);}
0307デフォルトの名無しさん
NGNGこれも直せ
0308仕様書無しさん
NGNGはい。結果が合ってるかどうか知らん&結果の出し方がこれでいいのかもわからんけど。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=81
0309デフォルトの名無しさん
NGNGはっきりいって、生きている価値なし。
いや、肉体労働やって、税金や年金は納めてもらおうかな。
俺のために働けや、虫けらども。
0310デフォルトの名無しさん
NGNG宿題丸投げスレで(ry
0311仕様書無しさん
NGNGそういうスレだしな。
ここでもらった回答を参考に、自分でカスタマイズしたり作り直したりすればいいと思う。
0312デフォルトの名無しさん
NGNGおまえ、いい奴だな。
0313デフォルトの名無しさん
NGNGpassの値は全く問題ない。
時間がかかるのは組み合わせ爆発と、同じルートの繰り返しによる。
試しに、壁の全く無い大部屋を通らせてみ。小さいものでもハマると思う。
ソースの美しさに欠けるが一応書いてみた。
ttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=82
迷路に印をつけながら進んで、最後に逆から辿る、いわゆるパンくず法。
cleanupの前にオリジナルのoutputを実行すると何をやってるか分かると思う。
0314313
NGNG>313 は >184宛て。
0315デフォルトの名無しさん
NGNGint main(){
struct game{
int win[6],lose[6],draw[6];
};
struct game gm={
68,52,75,78,60,63,
65,77,59,54,73,70,
2,4,1,3,2,2
};
int i,avr[7];
for(i=0;i<=6;i++)
avr[i]=(gm.win[i]/((gm.lose[i]+gm.draw[i])-gm.draw[i]));
for(i=0;i<=6;i++)
printf("%c : %f\n",'a'+i,(float)avr[i]);
return 0;
}
構造体に関しての質問なのですが、
7つのチーム(a〜f)の勝数、負数、引き分け数を
勝率=勝数/全試合-引き分け数
の式で計算し、各チームの勝率を求めるプログラムなのですが、
↑のプログラムだと上手くいきません、、、
何方かどこが悪いのか教えていただけないでしょうか?
0316デフォルトの名無しさん
NGNG0317デフォルトの名無しさん
NGNGなんか釣りっぽいけど。
・int / int は int だ
・(float)8 が 7.7 になるようなことはない
0318デフォルトの名無しさん
NGNG>struct game{
>int win[6],lose[6],draw[6];
>};
どう見ても6つしかない訳だが…
0319仕様書無しさん
NGNGまあ、初心者にありがちなわけだよ。
「Cでは0から数えはじめる」と習うので、7つ必要なら6と宣言してしまう。
変数の型というのも理解できない。整数→実数への自動変換があると考えている。
「プログラムに書いたことがすべて」ということを理解していなくて、「そのへんはうまいこと勝手にやってくれるんじゃないかな。Windowsなんだし」とか意味不明な期待をする。
0320デフォルトの名無しさん
NGNGstruct siken{
char simei[20];
int sugaku, buturi, eigo, gokei;
};
siken input_data( void);
void output_data( siken);
void main( void)
{
siken data[100];
int n, i;
cout << "何人入力しますか"; cin >> n;
if ( n <= 100){
i=0;
while( i < n){
data[i] = input_data();
i++;
}
i=0;
while( i< n){
output_data( data[i]);
i++;
}
}
}
0321320
NGNGsiken data;
cout << "名前"; cin >> data.simei;
cout << "数学の点数"; cin >> data.sugaku;
cout << "物理の点数"; cin >> data.buturi;
cout << "英語の点数"; cin >> data.eigo;
data.gokei = data.sugaku + data.buturi + data.eigo;
return ( data);
}
void output_data( siken data){
cout << "名前:" << data.simei << endl;
cout << "数学の点数" << data.sugaku << endl;
cout << "物理の点数" << data.buturi << endl;
cout << "英語の点数" << data.eigo << endl;
cout << "合計" << data.gokei << endl;
}
0322320
NGNGること.上記 で作成したプログラムを,学籍番号が入った新しい構造体で動くように修正する
こと.
(2) (1)で作成した構造体を使用して,入力したすべてのデータを学籍番号の昇順に出力する次の仕様
の関数を作成し,プログラムを実行せよ.
(注意)学籍番号には数字だけでなく文字も含まれる場合がある.
(3) 各科目の平均点を計算する次の仕様の関数を作成し,プログラムを実行せよ.
double average_data(int sw, siken data[], int n);
第1 引数:sw が1 ならば数学,2 ならば物理,3 ならば英語,
4 ならば合計 の平均点を求める.
第2 引数:siken 型の配列
第3 引数:配列の全要素数
戻り値:各教科の平均点(倍精度実数型)
(4) 各人の合計点の偏差値を求めて,全員の偏差値を出力する次の仕様の関数を作成し実行せよ
void deviation_data( siken data[], int n);
第1 引数:siken 型の配列
第2 引数:配列の全要素数
戻り値:なし
0323320
NGNGよろしくお願いします。
長々としている上に見づらくて申し訳ないです。
0324デフォルトの名無しさん
NGNGint main(){
struct game{
int win,lose,draw;
} gm[] = {
{68,52,75}, {78,60,63},
{65,77,59}, {54,73,70},
{2,4,1}, {3,2,2}
};
int i;
for (i=0;i<6;i++)
printf("%c : %f\n",'a'+i,(double)gm[i].win/(gm[i].lose+gm[i].win));
return 0;
}
struct game {...} とstruct game gmの2つはこういう風にまとめられる。
int win[6], lose[6],draw[6]だと>>316の言う通り構造体の意味がない。
チームのデータを1つの変数として扱うための構造体がある。それをA〜Fでまとめて扱うんでgmを配列にするってイメージで。
さらに定義と同時に初期化すればこのように最外周の配列に限り要素数を省ける。(これは文章の7つ、A〜Fの6つ、どっちでもいいようにw)
avrは直接printfの引数に勝率計算の式を書いたんで消滅。
ところで全試合-引き分け数==勝ち数+負け数だろ。ここ間違ってどうする。
それとprintfとかの可変個引数ではfloatも呼び出すときにdoubleにされるんで一応doubleにしておいた。
0325デフォルトの名無しさん
NGNGフ━━━( ´_ゝ`)━━━ン!!
0326デフォルトの名無しさん
NGNGおねがいします。
for使った奴で
0327仕様書無しさん
NGNGほらよ。(4)は偏差値計算の仕方わすれたから、パスな。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=83
0328デフォルトの名無しさん
NGNGおめー次のページ見てみたのかよ
0329仕様書無しさん
NGNG// http://pc5.2ch.net/test/read.cgi/tech/1085149383/326
#include <stdio.h>
int main() {
double aa;
printf("入力して> "); fflush(stdout);
scanf("%lf", &aa);
for(int nn = 0; nn <= 10; nn++) {
printf("%g + %d = %g\n", aa, nn, aa+nn);
}
return 0;
}
0331デフォルトの名無しさん
NGNGで解くアルゴリズムを書きなさい.
2.特に,a = 2 として,√2を実際に求める過程を
書きなさい.求める精度は,5桁とします
お願いします。
0332デフォルトの名無しさん
NGNG1のアルゴリズムを書きなさい は
C++の表記でお願いします。
0333デフォルトの名無しさん
NGNG#include <stdio.h>
main()
{
int ia,ib;
scanf("%d",&ia);
printf("%d ",ia);
for(ib=0; ib<=10;ib++){
printf("%d",ia+ib);
}
}
これで解決しましたありがとうございました
0334デフォルトの名無しさん
NGNGその桁数以下を切り捨てて出力する関数を作れってのなんですが
教えてくだいさい、おながいします
0335デフォルトの名無しさん
NGNGEX)
Initial value=>2.1254525
Input =>3
Output =>2.125
だよな?
0336デフォルトの名無しさん
NGNGprintf("%d",(int)a);
printf(".");
int i;
for(i=1;i<=b;i++){
a = 10*a;
printf("%d",(int)a%10);
}
printf("\n");
}
aを小数点以下b桁まで出力。桁落ちとか数値の上限とかそういう事は知らん。
問題文を俺なりに解釈した結果、引数で入力し、出力はstdoutという結論に達した。
0337デフォルトの名無しさん
NGNGそのとおりです
0338デフォルトの名無しさん
NGNGありがとうございます!でけますた!
ほんとに感謝です
0339C ◆b2MFuqSvyQ
NGNG「マクローリン展開を用いて、sin(x)を計算する関数sineを,
xと計算に用いる項数nとを引数とする関数として作成しなさい」
#include <stdio.h>
#include <math.h>
int sine(int x, int n);
int main() {
int k;
printf("項数nを入れてください n = "); scanf("%d", &n);
k = sine(x, n)
}
int sine(int x, int n) {
int n, j, k;
for(n = 1; n<=k; n++)
j = 1;
j = j * n; /**jはマクローリン展開した際の分母の!の計算です**/
if(n%2==0)
{・・・ /**偶数項はマイナスが付くのでif文を使ってマイナスを付けたいのですが、案が浮かびません。**/
ここまでやったのですが、ここから進みません。どなたかお教えください。よろしくお願い致します。
0340C ◆b2MFuqSvyQ
NGNGx/1!-x^2/2!+x^3/3!-x^4/4!+x^/5!-・・・
を求めて、さらに何項目までを求めるかも指定するという問題です。
ここの方たちは分かってると思われますが、一応追記させていただきました。
0341デフォルトの名無しさん
NGNG2項毎に通分すれ。
0342デフォルトの名無しさん
NGNG三項演算子、-1の累乗、偶奇で処理を丸ごと分ける、など。
0343C ◆b2MFuqSvyQ
NGNGすみません。まだ初心者のためそのようなことができる自信がありません。
>>342
「偶奇で処理を丸ごと分ける」とはどのようにすればよいのでしょうか?
0344デフォルトの名無しさん
NGNG関数sine
ちょっとワロタ
0345デフォルトの名無しさん
NGNG0346デフォルトの名無しさん
NGNGif(偶数)
合計 -= x^n/n!
else
合計 += x^n/n!
}
と、別々に書けばいい。
美しくないが、そんな事は自力で何とかできるようになってから考えればいい事。
0347デフォルトの名無しさん
NGNGx - x^3/3! + x^5/5! - x^7/7! ・・・
じゃないっけ?
0348デフォルトの名無しさん
NGNGsin()との比較もしたけど、10項目まで計算すると小数点以下10桁くらいの精度になった。
double sine(double x, int n) {
double ret = 0;
double jj = x;
for(int nn = 1; nn <= n; nn++) {
ret += jj;
jj *= - x * x / ((2*nn) * (2*nn+1));
}
return ret;
}
0349C ◆b2MFuqSvyQ
NGNG( ´・ω・`)ショボーン
>>345
なるほど!thxです^^
>>346
なるほど。その方法でもやってみたいと思います。
>>347
そのとおりです^^;
ついつい1から並べてしまいましたm(_ _)m
>>348
なんとなくおっしゃってることは分かるのですが、まだ初心者のため、完全に理解できません^^;
コピーさせていただき、上達してから熟考したいとおもいます。
皆様、親切にどうもありがとうございましたm(_ _)m m(_ _)m m(_ _)m
0350デフォルトの名無しさん
NGNGvoid round(double a, int b)
{
printf("%.*f\n", b, a);
}
0351デフォルトの名無しさん
NGNG英語でサインはsineと綴りますが何か。
0352デフォルトの名無しさん
NGNG0353344
NGNG352様は僕じゃないです
関数sine ヒイィィィ!!(´Д`ノ)ノ
でも言いたいことは352様が代弁しくれました。
いっちゃったいっちゃった
ヽ(ヽ´Д`)ヒイィィィ!! ヒイィィィ!!(´Д`ノ)ノ
0354176
NGNG説明不足で無茶苦茶なことを言っていたのに、
教えていただいて本当にありがとうございました。
「補間点」の意味していることがわかりましたら、
投稿させていただきます。
よろしければ、また教えてください。
今後丸投げしないよう努力しますので、ご指導お願いします。
0355デフォルトの名無しさん
NGNG不偏分数、標準偏差、標準誤差を計算し、更にファイル入力でt[ ]を読み込み
上記変数の値をプリントアウトするプログラムを作れという宿題なのですが、
全くvoid main()以降何も書けなくて困っています。どなたか救いの手をお願いします…
0356デフォルトの名無しさん
NGNG0357デフォルトの名無しさん
NGNGなるほど…やってみます!
0358デフォルトの名無しさん
NGNG「void」 main()かぁ
0359デフォルトの名無しさん
NGNGどうもです
0360デフォルトの名無しさん
NGNGそこからして何か間違ってるんでしょうか…(;´Д`)
0361デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=85
ちょっとだけ書いてみた。
あとは計算式を追加するだけー
0362デフォルトの名無しさん
NGNGそういう時期なのかね。
0363デフォルトの名無しさん
NGNGそういう時期なんでしょうなー
時期によってどんな問題が多くなってるのかって。。
調べてみようっと
0364デフォルトの名無しさん
NGNGわわ!本当にありがとうございます!!
やっぱり自分が書いたのは全然ダメだ(;´Д`)
0365デフォルトの名無しさん
NGNGmainはint(成功で0、失敗でそれ以外)を返すのが標準規格。
主義の問題と言っていいレベルだとは思うけどな。
void mainだとコンパイラによっては文句をいう事があるし、intの方が無難なのは確か。
358はvoid mainを見たこともないレベルの初心者、ってのは穿った見方かなぁ…
0366184
NGNGありがとうございました!!
ですが読んでみたのですが・・・ いまいち分かりません
オリジナルのoutputとはmain関数でcleanup呼び出す前にoutput()を
呼び出せって意味ですか? ゴールが0になってることしか分かりません・・・
また 仮想壁とは何のためにしてるのかも分からないです。
0367デフォルトの名無しさん
NGNG昔はmain()だけだったときもあったんですが、先生が変わってからvoid main()になりました(;´Д`)?
本当はint mainだったんですね…
0368デフォルトの名無しさん
NGNGttp://www.kouno.jp/home/c_faq/c11.html#15
0369デフォルトの名無しさん
NGNG>たぶんその本の著者は自分も対象読者の一人に数えているのだろう。
ワロタ
0370313
NGNGoutputとcleanupを分かりやすいものに差し替えて同じ場所にうpってある、と言うのを忘れてた。
元々のソースはイマイチなんで、新しい方見てくれ。うpろだ84番。
仮想壁は迷路の外周(1行目とか1列目)に壁でないマスがある場合の用心。
外周が常に壁である事がルールで保証されてるなら不要。
#define PATH 4
とかはマクロ。プログラム中のPATHという単語が全て4に置換される。
イメージとしては変数のようなもの。プログラム中に数字が出てくるよりは多少見やすいだろ。
アルゴリズムを一応解説。visit。
スタートから一歩ごとに値(step)を1増やしつつ、通ったマスにstepをセットして行ってる。
新しいバージョンのプログラムを見ると、最短ルート上に数字が順に並んでるのが分かると思う。
visitの冒頭の条件式。値がセットしてあるところはもうルートとして探索し終えた場所って事なので探索終了。
ただし、その時点でのstepの方が小さいなら、同じ場所により早くたどり着いたって事なので探索続行。
あと、184では移動直前に壁かどうかの判定を行なっていたのも、移動直後に変更。
こっちはちょっときれいに見える以上の深い意味はない。趣味の域だな。
cleanupはまずゴールから初めて最短ルートを4で塗りつぶしてる。
その後、関係ない道を0で埋めてる(この処理は変更後のプログラムで追加)。
0371デフォルトの名無しさん
NGNGmain() /* 型を省略するとint */
も
void main() /* 論外 */
もお行儀が悪いです。
正しくは
int main(void)
または
int main(int argc, char *argv[])
(あるいはこれと等価な宣言)
です。
0372デフォルトの名無しさん
NGNGがアレだってことは常識として知ってるけど、何で悪いのかわからんのだけど。
どういうときに困るの?
0373デフォルトの名無しさん
NGNG0374デフォルトの名無しさん
NGNG0375デフォルトの名無しさん
NGNGどこがおかしいのでしょうか?
-------------
#include<stdio.h>
int strchno(const char *str,char *ch){
int i=0,count = 0;
while(*(str+i) !='\0'){
if(*(str+i) == *ch) count++;
i++;
}
return count;
}
int main()
{
char str[200],ch[1];
printf("文字列を入力してください\n");
scanf("%s",str);
printf("検索したい文字を入力してください\n");
scanf("%s",ch);
printf("文字列中に%sは%d個あります\n",ch[0],strchno(str,ch));
return 0;
}
---------
0376デフォルトの名無しさん
NGNGにでもしとけ。あと、scanfつかわないように。
0377デフォルトの名無しさん
NGNGCげんごではいわゆる文字列は'\0'で終わっていないとダメだろが
0378デフォルトの名無しさん
NGNG0379デフォルトの名無しさん
NGNGvoid sort(int *a.int *b,int *c)を使ってつくりなさい。
この問題をお願いします。
0380デフォルトの名無しさん
NGNG並べ替えた結果をどうすればよいのかわかりません。:5点
0381313
NGNG>新しいバージョンのプログラムを見ると、最短ルート上に数字が
新しいバージョンのプログラムを実行すると、最短ルート上に数字が
に訂正。
ちなみに、速度について言えばかなり速い部類に入るアルゴリズム。
解のある迷路で解けないものは無い…はず。
少なくとも、ループや大部屋などのありがちなトラップは回避できるし、スタート/ゴールの場所が外壁沿いでなくても問題ない。
改善点を挙げるとすれば、もうちょっと速度上昇が可能なところ。
分かりやすさを優先したので、メモリ消費、計算量ともに改善の余地は大いにある。
あと、解が無い場合の処理を(比較的簡単なのに)サボってたりする。
0382デフォルトの名無しさん
NGNG実行する。
0383デフォルトの名無しさん
NGNGsort()の仕様が分かりません。:15点
0384デフォルトの名無しさん
NGNGtypedef void (*F)(void);
void sort(int *a.int *b,int *c){
int array[3];int *ptr;
array[0]=*a;array[1]=*b;array[2]=*c;
ptr=array;
if(*ptr > *(ptr+1)){*ptr^=*(ptr+1); *(ptr+1)^=*ptr; *ptr^=*(ptr+1);}
ptr=array+1;
if(*ptr > *(ptr+1)){*ptr^=*(ptr+1); *(ptr+1)^=*ptr; *ptr^=*(ptr+1);}
ptr=array;
if(*ptr > *(ptr+1)){*ptr^=*(ptr+1); *(ptr+1)^=*ptr; *ptr^=*(ptr+1);}
for(ptr=array; ptr<sizeof(array); ++ptr){
((F*)*ptr)();
}
return;
}
0385デフォルトの名無しさん
NGNG「./a.out filename コマンド 引数1 引数2 … < 標準入力データファイル」
と実行すれば、「 コマンド 引数1 引数2 …」を
(標準入力データを上記のようにリダイレクションによって入力して)
実行し、かつその標準入力データを、ファイル「filename」にバックアップする
プログラムを作れ。
(コマンドにはmoreなどが適当。
例: 「./a.out filename more -10 < data.txt」 )
また、この時ファイル「filename」と「data.txt」の中身は一致するか。
という問題が分かりません。
特に、どういう風にパイプを用いればよいか分からないのですが。
0386デフォルトの名無しさん
NGNGありがとうございます。参考にします。
>>380>>383
とりあえず、氏ね
0388デフォルトの名無しさん
NGNG配列を使えないレベルだったはずだから、以下のようなのが答えかな。
swap()が使えるならもっと分かりやすいだろうけれど。
void sort(int *a.int *b,int *c)
{
int tmp;
if (*a > *b)
tmp = *a, *a = *b, *a = tmp;
if (*b > *c)
tmp = *b, *b = *c, *c = tmp;
if (*a > *b)
tmp = *a, *a = *b, *a = tmp;
}
0390デフォルトの名無しさん
NGNGふふふ,>>380=>>384だというのに…
青い,青い。
0391デフォルトの名無しさん
NGNG次のように表示するプログラムを作ってください。
OECU
ECU
CU
U
0392デフォルトの名無しさん
NGNGint main(void)
{
char *str = "OECU";
while(*str){
printf("%s\n",str++);
}
return 0;
}
0393デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/prog/1085510173/l50
誰か一瞬で解いてやってくれ。
0394デフォルトの名無しさん
NGNGやってもいいが、納期と予算を明記してくれ。
0395仕様書無しさん
NGNG0396デフォルトの名無しさん
NGNG以下のように10個の整数を入力して、次に入力した数(1〜10)番目
の配列を表示するプログラムを0が入力されるまで続ける。という問題です。
(例)
>>>1 3 56 43 23 -11 3 5 8 9
>>>5
23
>>>6
-11
>>>10
9
>>>0
0397デフォルトの名無しさん
NGNGe = 1+1/1!+1/2!+1/3!+.......1/n!+.....
= 2+1/2(1+1/3(1+1/4(1+....1/n(1+...))..))
0398仕様書無しさん
NGNG#include <stdio.h>
int main() {
int indata[10], ii;
printf(">>> "); fflush(stdout);
for(ii = 0; ii < 10; ii++) scanf("%d", &indata[ii]);
while(1) {
printf(">>> "); fflush(stdout);
scanf("%d", &ii);
if (ii == 0) break;
else printf("%d\n", indata[ii-1]);
}
return 0;
}
0399デフォルトの名無しさん
NGNG#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void)
{
int a[10];
int i;
char s[1024];
char *t;
fprintf(stderr, ">>> ");
fgets(s, 1024, stdin);
t = strtok(s, " ");
for (i = 0; i < 10; i++) {
a[i] = atoi(t);
t = strtok(NULL, " ");
}
fprintf(stderr, ">>>");
while (fgets(s, 1024, stdin) != NULL && atoi(s) != 0)
fprintf(stderr, "%d\n>>>", a[atoi(s) - 1]);
return 0;
}
0400デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=86
L は表示桁数。貼った後に気付いたが、計算には使ってない。あとは見て分かれ。
0401デフォルトの名無しさん
NGNGキー入力でn個の数を入力して
そのn個の数の最大値、最小値、平均値を出力するプログラムは
どういったモノになるのでしょうか???
配列を使ってお願いしたいのですが・・・。
0403デフォルトの名無しさん
NGNG#define N 5
int main(void)
{
int array[N];
int i, num, max, min, sum;
for(i = 0; i < N; i++){
scanf("%d", &num);
array[i] = num;
}
sum = min = max = array[0];
for(i = 1; i < N; i++){
sum += array[i];
max = array[i] > max ? array[i] : max;
min = array[i] < min ? array[i] : min;
}
printf("最大値:%d\n", max);
printf("最小値:%d\n", min);
printf("平均値:%d\n", sum / N);
return 0;
}
0404デフォルトの名無しさん
NGNGそれじゃだめだろ。
0405401
NGNG有り難うございました。
(・∀・)スバラスィ
0406403
NGNGprintf("平均値:%f\n", (float)sum / N);
こう?
0407デフォルトの名無しさん
NGNG0408デフォルトの名無しさん
NGNG行列要素を読み込んで、行列の積C=A×Bを計算し、
その行列要素を印字するプログラムを作成せよ。た
だし、行列A,Bの要素は配列要素として読み込むこ
とにせよ。
上記の問題をお願いします。
0409デフォルトの名無しさん
NGNG0410401
NGNGで、早速プロンプトで確認しようとしたのですが
コンパイラでexeファイルを作成してクリックしても
一瞬で消えてしまって確認とか出来ないんですけど
作成したファイルってvisual Cのソフトとか無い人は
どうやって確認するんですか?
コンパイラは ttp://www.vector.co.jp/soft/win95/prog/se122244.html
です。
0411デフォルトの名無しさん
NGNG0412デフォルトの名無しさん
NGNG0413デフォルトの名無しさん
NGNG0414デフォルトの名無しさん
NGNGコマンドプロンプトにexeファイルを"ドラッグ&ドロップ"すると入力が楽。
0415デフォルトの名無しさん
NGNG入力例ぐらい晒してくれ。
0416401
NGNG下手にいじらない方が良かった・・・_| ̄|○
お陰様できちんと動いているのですが
n個の数を入力なので、いくつの数を入力するのか定かでは無い訳で
(いくつの数を入力しますか?\n); という文を挿入しようとしたら
入力の数が繰り返されないで「いくつの数を入力しますか」が繰り返されてしまって・・・
なんだか悲しくなってきました。
0417デフォルトの名無しさん
NGNG"n", "数" あほか
0418デフォルトの名無しさん
NGNGマチクタビレタ〜
☆ チン 〃 ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ヽ ___\(\・∀・) < >>408 まだ〜?
\_/⊂ ⊂_ ) \_____________
/ ̄ ̄ ̄ ̄ ̄ ̄ /|
| ̄ ̄ ̄ ̄ ̄ ̄ ̄| |
| 愛媛みかん |/
typedef double DATATYPE;
typedef struct _matrix MATRIX;
struct _matrix{
int rows;
int cols;
DATATYPE **array;
};
int matrix_init(MATRIX *mat, int rows, int cols){
DATATYPE *data;
size_t data_size = rows*cols*sizeof(DATATYPE);
int i;
mat->rows = rows;
mat->cols = cols;
data = (DATATYPE*)malloc(data_size);
memset(data,0,data_size);
mat->array = (DATATYPE**)malloc(rows*sizeof(DATATYPE*));
for(i=0; i<rows; ++i){
mat->array[i] = data + i*cols;
}
return 1;
}
0419デフォルトの名無しさん
NGNGint row, col, tmp;
if( a.cols != b.rows ) {
fprintf(stderr, "matrix_mul: Imcompatible matrix\n");
return 0;
}
matrix_init(mat, a.rows, b.cols);
for(row=0; row < mat->rows; ++row){
for(col=0; col < mat->cols; ++col){
mat->array[row][col]=0;
for(tmp=0; tmp<a.cols; ++tmp){
mat->array[row][col]+=a.array[row][tmp]*b.array[tmp][col];
}
}
}
return 1;
}
0420デフォルトの名無しさん
NGNG(2n+1)!
初心者なのでさっぱりわかりません。
お願いします
0421デフォルトの名無しさん
NGNG初心者でわからないので教えてください。よろしくお願いします。
(例)
% a.out
> 23 + 12
35
> 56 - 26
30
> 23+45
?
("+","-"記号の前後はスペースが入るものとします)
0422デフォルトの名無しさん
NGNG' ! ' が階乗ってのはわかるかな
(階乗ってのは、たとえば a! だと 1*2*3*.....*n っていうの)
だから、この場合階乗を求める関数でも作っておいてn+1を渡せばいいと思います。
階乗を求める関数で一番よく出てくるのは再帰というのを使うやつですね。
つまり、自分自身を呼び出す関数。
これを踏まえて書いてみて。わからなければヒント出そう。
0423デフォルトの名無しさん
NGNG+-記号の前後にスペースを入れろと問題にあるのがミソ。
scanf関数で読み取るときに数字、一文字、数字と読んでみよう。
あとは+-記号で足し算引き算を判断すればいい。
それからスペースがなかったりしたら(?を出すとき)、どこでそれを見つけるかも、少し考えてみよう。
0424デフォルトの名無しさん
NGNGごめんほんっとごめん!つっこませて!
>(階乗ってのは、たとえば a! だと 1*2*3*.....*n っていうの)
a!なら1*2*3*.....*aね。
3!なら、1*2*3で、6
0425401
NGNG0426デフォルトの名無しさん
NGNGその手の宿題は、みんな飽きてるからな・・・>>130-131あたりを
参考にしてがんがれ
0427デフォルトの名無しさん
NGNG#include<stdio.h>
long kaijo(int n);
int main(void)
{
double ans=1;
int i,n;
printf("1+1/1!+1/3!+1/5!+・・・+1/(2n+1)! \n");
printf("n:");
scanf("%d",&n);
printf("1 ");
for(i=0;i<=(2*n+1);i++){
if(i%2!=0){
ans=ans+(double)1/kaijo(i);
printf(" + 1/%d!",i);
}
}
printf(" =%lf\n",ans);
}
long kaijo(int n)
{
if(n==0)
return 1L;
else
return n*kaijo(n-1);
}
このプログラムの下から4行目のreturn 1L;とreturn n*kaijo(n-1);というのはどこに戻っているのでしょうか?
初心者なのでわかりません。教えてください。
0428デフォルトの名無しさん
NGNGチン マチクタビレタ〜 チン ♪
♪
♪ ☆チン .☆ ジャーン! マチクタビレタ〜!
☆ チン 〃 ∧_∧ ヽ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ヽ ___\(`A´ #) /\_/ < >>408の入力仕様まだー?
チン \_/⊂ つ ‖ \__________
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄/| ‖ マチクタビレタ〜!
|  ̄  ̄ ̄ ̄ ̄ ̄ ̄:| :| /|\
| |/
0429デフォルトの名無しさん
NGNGreturn 1L;
は普通のreturnと一緒で1を返すだけ。Lはlong型にしてるだけだからあんま気にすんな。
return n*kaijo(n - 1);
は、「n*kajio(n-1)の返却値」を返す。最初は分かりづらいけど分かれば簡単。
高校数学の漸化式とか覚えてたら余裕。
0430デフォルトの名無しさん
NGNG#include <stdio.h>
int main(void)
{
int num1, num2;
char str[BUFSIZ], str2[BUFSIZ], enzan;
while(1)
{
printf("> ");
if(fgets(str, sizeof(str), stdin) == NULL) break;
if(sscanf(str, "%d%s%d", &num1, str2, &num2) != 3) break;
if(sscanf(str2, "%c", &enzan) != 1) break;
if(enzan == '+') printf("%d\n", num1 + num2);
else if(enzan == '-') printf("%d\n", num1 - num2);
else break;
}
return 0;
}
0431デフォルトの名無しさん
NGNG小さい順に並び替えるプログラムを作成せよ。
という問題です。
0432デフォルトの名無しさん
NGNGGoogleでバブルソートとかクイックソートとか。
たぶん解説つきで出てくる。
0433デフォルトの名無しさん
NGNG言語はC言語です。
1
配列を使ってプログラムを書いてください。二つのベクトルA,Bを考えます。
二つのベクトルの内積A・B=a1・b1+a2・b2+c1・c2を計算してください。
ようその値は、a1=1、a2=2、a3=3、b1=2、b2=3、b3=4です。for文を使った場合と使わない場合を書いてください。
2
スーパーの売り上げを配列に入力し、今日の売り上げと消費税(5%)を計算してください。入力する情報は、
(1)単価、(2)数量、(3)売り上げ{単価と数量の積}、(4)消費税。計算するだけでなく、
一覧表にように表示してください。最後に、本日の売り上げの合計と消費税の合計も計算して表示すること。
配列はa[8][4]と宣言して下さい。
取引1 サクランボ25キロ、単価4000円/kgを売る
取引2 メロン3個、単価2000円を売る
取引3 スイカ75個、単価1000円を売る
取引4 バナナ1kgを売る。単価200円/100g
取引5 ジュースを15本売る。単価120円
取引6 にんじん2kg、単価500円/kg、ジャガイモ3kg、単価400円/kg、玉ねぎ1kg、単価350円/kgを売る。
☆↓あとこれは先輩に聞いたら先輩もわからなくて、ついでにこれもできる人いないか探せって言われた奴です^^;
問題 f(x)=4x-xe^(2x)+2=0の根をニュートン法とラフソン法でもとめろ。ただし、初期値 x1=1、
収束判定定数ε=0.00001とする。また計算回数の違いを考察せよ。
0434デフォルト名無しさん
NGNG詳しく説明してくれないか?
0435デフォルト名無しさん
NGNG#include <stdio.h>
#define TAX 0.05
main()
{
int a[8][4];
printf("取引1 サクランボ\n");
printf("単価 /kg ");
scanf("%d", &a[0][0]);
printf("How many?");
scanf("%d", &a[0][1]);
a[0][2] = a[0][0] * a[0][1];
a[0][3] = a[0][2] + (a[0][2] * TAX);
printf("uriage is %d\n", a[0][2]);
printf("total is %d\n", a[0][3]);
}
とりあえず取引1だけ。取引2も同じように作ればいいでないか?配列を一つずらすだけ。
ループも使おうかと思ったけどこんな問題で迷ってるんならまだループを習ってないと
思うから使わなかった。もしなにか違うようなことがあればまた随時書き換えるので。
こっちも初心者ですまん。Cは最近使ってないからあまり覚えてないがまあ動くでしょ。
0436418=428
NGNGvoid matrix_print(MATRIX mat){
int row, col;
printf("%d x %d matrix\n", mat.rows, mat.cols);
for(row=0; row < mat.rows; ++row){
for(col=0; col < mat.cols; ++col){
printf("%g ", (double)mat.array[row][col]);
}
printf("\n");
}
return;
}
int read_data_matrix(MATRIX *mat, FILE *fp){
int row,col;
char buf[1024];
for(row=0; row < mat->rows; ++row){
char *p;
fgets(buf,sizeof(buf),fp);
for(col=0,p=strtok(buf," "); col < mat->cols; ++col,p=strtok(NULL," ")){
mat->array[row][col] = (DATATYPE)(p?atof(p):0);
}
}
return 1;
}
0437418=428
NGNGint l,m,n;
char buf[128];
fgets(buf,sizeof(buf),fp);
sscanf(buf,"%d %d %d", &l, &m, &n);
matrix_init(a, l, m);
matrix_init(b, m, n);
read_data_matrix(a, fp);
read_data_matrix(b, fp);
return 1;
}
int main(){
MATRIX a;
MATRIX b;
MATRIX mat;
FILE *fp;
if( NULL == (fp = fopen("matrix.txt", "r")) ) return EXIT_FAILURE;
read_data(&a,&b, fp);
matrix_mul(&mat,a,b);
matrix_print(mat);
return EXIT_SUCCESS;
}
0438デフォルトの名無しさん
NGNG>>435
もれの解釈
int a[8][4]={ /* 単価,数量,売り上げ(単価と数量),消費税 */
{4000, 25, 0, 0}, /* 取引1 サクランボ */
{2000, 3, 0, 0}, /* 取引2 メロン */
{1000, 75, 0, 0}, /* 取引3 スイカ */
{200/100, 1000, 0, 0},/* 取引4 バナナ */
{120, 15, 0, 0}, /* 取引5 ジュース */
{500, 2, 0, 0}, /* 取引6 にんじん */
{400, 3, 0, 0}, /* 取引6 ジャガイモ */
{350, 1, 0, 0}, /* 取引6 玉ねぎ */
};
int total,totalTax,i;
total=totalTax=0;
for(i=0; i<8; ++i){
total+=(a[i][2]=a[i][0]*a[i][1]);
totalTax+=(a[i][3]=a[i][2]*TAX);
}
/* 表示 */
for(i=0; i<8; ++i)
printf("取引%d 単価[%4d]×数量[%4d]=[%6d](TAX:%d)\n",
(i<5)?(i+1):6, a[i][0],a[i][1],a[i][2],a[i][3]);
printf("\n本日の売り上げ[%6d](TAX:%d)\n", total, totalTax);
0439名無しさん@お腹いっぱい。
NGNGニュートン法とラフソン法ってのは、ニュートン・ラプソン法の間違いでは?
ググればサンプルプログラムがどっちゃり出てくるぞ。
0441443
NGNG一週間後の再提出まで自分でまたやってみます、わからかなったらまたきますんでよろしくです。
協力感謝します。
先輩大丈夫かな^^;
先輩のやつは5月いっぱいが期限らしいです。
0442デフォルトの名無しさん
NGNGhttp://www2.realint.com/cgi-bin/tarticles.cgi?pointc+14270
>「%*sで…」とか習ってないことでやっぱりわからなかったんです。
#include <stdio.h>
int main(void){
int i, m, d;
int cal[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
printf("表示月を入力してください。>"); scanf("%d", &m);
printf("1:日 2:月 3:火 4:水 5:木 6:金 7:土 >"); scanf("%d", &d);
printf("\n日 月 火 水 木 金 土\n");
for (i = 0;i < d - 1; i++) printf(" ");
for (i = 1; i <= cal[m]; i++){
printf("%2d ", i);
if ((d++) % 7 == 0) putchar('\n');
}
return 0;
}
0443442
NGNG0444デフォルトの名無しさん
NGNGキーボードから二つの数値と演算子を入力して入力された演算子に対応した計算結果
を表示するプログラムを作成してください。演算子は+,-,*,%で、
0445デフォルトの名無しさん
NGNGほんとにそんな問題なのか?もっと詳しかったりしないか?
#include <stdio.h>
int main(void)
{
int x, y, result;
scanf("%d%d", &x, &y);
switch (getchar()) {
case '+': result = x + y; break;
case '-': result = x - y; break;
case '*': result = x * y; break;
case '%': result = x % y; break;
default: puts("error"); return 1;
}
printf("%d\n", result);
return 0;
}
0446デフォルトの名無しさん
NGNGn*nの大きさの実行列A,Bをキーボードより読み込んで、
行列の積C=A*Bを計算し、その結果を画面に出力する
プログラムを作りなさい。
という課題で困っています。
お願いします。
for文を何度か使って、配列でプログラムするみたいなのですが...
0447名無しさん@お腹いっぱい。
NGNGちょっとまえのレスに、ほとんど同じ質問と回答が載っているぞ。
参考にされたし。
0448デフォルトの名無しさん
NGNGそれぞれを求め、画面に表示させるプログラムを作成しなさい。
剰余のところで詰まってます。エラーなしになるものを教えてください。
お願いします。
0449デフォルトの名無しさん
NGNGそれぞれを求め、画面に表示させるプログラムを作成しなさい。
剰余のところで詰まってます。エラーなしになるものを教えてください。
お願いします。
0450デフォルトの名無しさん
NGNGそれぞれを求め、画面に表示させるプログラムを作成しなさい。
剰余のところで詰まってます。エラーなしになるものを教えてください。
お願いします。
0451デフォルトの名無しさん
NGNG0452デフォルトの名無しさん
NGNGふかわりょうでさえ二回だぞ?
0453デフォルトの名無しさん
NGNG過去ログを調べずに質問してしまって、ごめんなさい。
それなのに、親切にこたえてくださって、感謝しています。
参考にして、少し自力でがんばってみます。
0454デフォルトの名無しさん
NGNG過去ログを調べずに質問してしまって、ごめんなさい。
それなのに、親切にこたえてくださって、感謝しています。
参考にして、少し自力でがんばってみます。
0455デフォルトの名無しさん
NGNG過去ログを調べずに質問してしまって、ごめんなさい。
それなのに、親切にこたえてくださって、感謝しています。
参考にして、少し自力でがんばってみます。
0456デフォルトの名無しさん
NGNG整数だからintかlongを使ってるんだろうし、剰余は%で求められるし、
+,-,*,/でエラーが出ないのに%だけエラーが出るのは何故だ?
そっちの方が気になるぞ。
0457385
NGNG☆ チン 〃 ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ヽ ___\(\・∀・) < >>385 まだ〜?
\_/⊂ ⊂_ ) \_____________
/ ̄ ̄ ̄ ̄ ̄ ̄ /|
| ̄ ̄ ̄ ̄ ̄ ̄ ̄| |
| 愛媛みかん |/
0458デフォルトの名無しさん
NGNG0459デフォルトの名無しさん
NGNG>コマンドにはmoreなどが適当。
って何よ? 意味わからん。
0460デフォルトの名無しさん
NGNG0461デフォルトの名無しさん
NGNG0462デフォルトの名無しさん
NGNGチン マチクタビレタ〜 チン ♪
♪
♪ ☆チン .☆ ジャーン! マチクタビレタ〜!
☆ チン 〃 ∧_∧ ヽ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ヽ ___\(`A´ #) /\_/ < >>457説明マダー?
チン \_/⊂ つ ‖ \__________
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄/| ‖ マチクタビレタ〜!
|  ̄  ̄ ̄ ̄ ̄ ̄ ̄:| :| /|\
| |/
0463たか
NGNG簡単な問題だと思うのですが初心者なのでどう考えていいのか分かりません。。。
誰か助けてください。お願いします
0464デフォルトの名無しさん
NGNG質問ってこれでいいの?
ttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1085675635&res=1
6乗を求めるなら2乗したのを3回かける
7乗を求めるなら2乗したのを3回かけてから1回足す
ってかんじでいんじゃないかな。
0465デフォルトの名無しさん
NGNG要は
>「./a.out filename コマンド 引数1 引数2 … < 標準入力データファイル」
pipe 作って
fork() して
子プロセスなら {
標準入力を pipe の片方に振って
execvp(コマンド 引数1 引数2 …)
}
while (標準入力が EOF() でない間) {
標準入力読んで
ファイル「filename」に書いて
pipe のもう一方に書いて
}
ってことか?
0466デフォルトの名無しさん
NGNG大事なことが抜けている。
pipeの入力側ちゃんと閉じろよ。
0467デフォルトの名無しさん
NGNG正方形の周りの長さと面積、立方体の体積を求め、画面に表示させるプログラム
を作れ。
1年の最初から説明もなしに正直これはつらいです。
詳しい人お願いします。
0468デフォルトの名無しさん
NGNG素直に担当教授にギブアップを申し出てみろ。
まとも教授なら,それなりの対応してくれるだろう。
皆で行けば,講義予定が変わるかもよ(w
0469デフォルトの名無しさん
NGNG#include <stdio.h>
int main() {
double n;
scanf("%lf",&n);
printf("%f\n", n * 4 ); /* 正方形の辺 */
printf("%f\n", n * n ); /* 面積 */
...
0470デフォルトの名無しさん
NGNGprintf("%g\n", n * n * n);
0471デフォルトの名無しさん
NGNGいちおう
return 0;
もかいておこうかね
0472デフォルトの名無しさん
NGNG}
も書いておくよ。
0473デフォルトの名無しさん
NGNGどういったことが起きているのか詳しく教えてもらえませんか?お願いします。
#include<stdio.h>
int count;
void func1(int val, int *called)
{ int count;
count = 2;
printf("func1: count は %d です.\n", ++count);
printf("func1: called は %d です.\n", *called);
++count;
++(*called);
}
void func2(int val, int *called)
{ printf("func2: count は %d です.\n", ++count);
printf("func2: called は %d です.\n", *called);
printf("func2: val は %d です.\n", val);
++count;
}
void main(int argc, char *argv[])
{int called = 1;
count = 1;
printf("main: count は %d です.\n", count);
func1(count, &called);
printf("main: count は %d です.\n", count);
func2(count, &called);
printf("main: count は %d です.\n", count);
}
0474デフォルトの名無しさん
NGNGローカル変数count
の振る舞いを説明すればええんでないの?
0475デフォルトの名無しさん
NGNG0477仕様書無しさん
NGNG0478たか
NGNGすいません。そのプログラムの書き方がわからないんです...
0479デフォルトの名無しさん
NGNGスコープで探してもない?
0481デフォルトの名無しさん
NGNG0482デフォルトの名無しさん
NGNGint power( int m, int n )
{
int p,i;
p = 1;
if(n%2==0) {
for( i = 1; i <= n/2; i++ ) {
p = p * m;
}
p *= p;
return p;
}
else {
for( i = 1; i <= n/2; i++ ) {
p = p * m;
}
p *= p;
p *= m;
return p;
}
}
nがintだからこれでいいんじゃなかろうか
0483デフォルトの名無しさん
NGNGこんなもんかな。
int power(int m, int n)
{
if (n < 0) {
return 0;
}
switch (n) {
case 0:
return 1;
case 1:
return m;
}
if (n % 2) {
return power(m, n - 1) * m;
}
int r = power(m, n / 2);
return r * r;
}
条件判断の順序の調整や再帰の廃止でまだ速くなるけど。
0484デフォルトの名無しさん
NGNGそこまでやるんじゃ
int power( int m, int n )
{
int p,i;
for( i = 1; i <= n/2; i++ ) {
p = p * m;
}
p *= p;
if(n%2) {
p *= m;
}
return p;
}
こうだろう。プログラム自体が正しいかは分からんけど。
0485464
NGNG「足す」じゃなくて「かける」ね。
0486デフォルトの名無しさん
NGNGにゃるほど
0487デフォルトの名無しさん
NGNG0488デフォルトの名無しさん
NGNG> int p,i;
int p = 1, i;
じゃないとマズいでしょ。。。
> p = p * m;
> p *= m;
使い分ける必要ってあるの・・?
0489デフォルトの名無しさん
NGNG値の大きい順に表示をするプログラムを作成せよ。
#include <stdio.h>
main()
{
int i, max ;
int a[8],;
for(i = 0; i < 8; i++){
printf("a[%d] = ", i);
scanf("%d",&a[i]);
}
max = a[0];
for(i = 0; i < 8; i++){
if(a[i] > max){
max = a[i];
}
}
printf("値の大きい順に表示\n");
printf("%d\n", max);
}
ここまでできてます
これをいじりたいんですがわかりません
0490デフォルトの名無しさん
NGNGサンプル書く暇が無いので、ソートアルゴリズムの紹介だけ・・・スマソ
http://www.ics.kagoshima-u.ac.jp/~fuchida/edu/algorithm/sort-algorithm/
0491たか
NGNG以下のプログラムで出力してみると答えが1になってしまいました
#include <stdio.h>
int power( int m, int n );
int main()
{
int i ;
printf( "%d\n", power( 2, i ));
return 0 ;
}
int power( int m, int n )
{
int p = 1,i ;
for( i = 1; i <= n/2; i++ ) {
p = p * m;
}
p *= p ;
if(n%2) {
p *= m;
}
return p ;
}
0492デフォルトの名無しさん
NGNG0493デフォルトの名無しさん
NGNG0494デフォルトの名無しさん
NGNG2の何乗を求めたいんでちゅか?
0495デフォルトの名無しさん
NGNG#include <stdio.h>
#include <stdlib.h>
int intcmp(const int *a, const int *b)
{
return *a < *b ? 1 : -1;
}
int main()
{
int i, int a[8];
for(i = 0; i < 8; i++){
printf("a[%d] = ", i);
scanf("%d",&a[i]);
}
qsort(a, 8, sizeof(int), (int(*)(const void*, const void*))intcmp);
printf("値の大きい順に表示\n");
for(i = 0; i < 8; i++)
printf("%d\n", a[i]);
return (0);
}
0496デフォルトの名無しさん
NGNGif (b == 0) return 1;
if (b % 2 == 0) return power(a * a, b / 2);
else return a * power(a * a, (b - 1) / 2);
}
0497デフォルトの名無しさん
NGNG(b - 1) は冗長だな。
0498たか
NGNG2の11乗を求めるプログラムはこれであってますよね。
符合なし整数にしてますが。
#include <stdio.h>
unsigned int uint_power(unsigned int a, unsigned int b );
int main()
{
unsigned int i;
i = 11 ;
printf( "%d\n", uint_power( 2, i ));
return 0 ;
}
unsigned int uint_power(unsigned int a, unsigned int b){
if (b == 0) return 1;
if (b % 2 == 0) return uint_power(a * a, b / 2);
else return a * uint_power(a * a, (b - 1) / 2);
}
0499たか
NGNG2の11乗を求めるプログラムはこれであってますよね。
符合なし整数にしてますが。
#include <stdio.h>
unsigned int uint_power(unsigned int a, unsigned int b );
int main()
{
unsigned int i;
i = 11 ;
printf( "%d\n", uint_power( 2, i ));
return 0 ;
}
unsigned int uint_power(unsigned int a, unsigned int b){
if (b == 0) return 1;
if (b % 2 == 0) return uint_power(a * a, b / 2);
else return a * uint_power(a * a, (b - 1) / 2);
}
0500デフォルトの名無しさん
NGNG0501たか
NGNG2の11乗を求めるプログラムはこれであってますよね。
符合なし整数にしてますが。
#include <stdio.h>
unsigned int uint_power(unsigned int a, unsigned int b );
int main()
{
unsigned int i;
i = 11 ;
printf( "%d\n", uint_power( 2, i ));
return 0 ;
}
unsigned int uint_power(unsigned int a, unsigned int b){
if (b == 0) return 1;
if (b % 2 == 0) return uint_power(a * a, b / 2);
else return a * uint_power(a * a, (b - 1) / 2);
}
0502たか
NGNGしかもうまいこと予測されてました。。
0503デフォルトの名無しさん
NGNG3回目ネタじゃなかったのw
0504デフォルトの名無しさん
NGNGワロタ
0505デフォルトの名無しさん
NGNG#include<fcntl.h>
main()
{
int fd;
fd = open("file",O_WRONLY|O_CREAT,0644) ;
close(1);
dup(fd);
close(fd);
execlp("ls","ls","-lag",NULL);
}
を実行したとき、作られた「file」の中の「file」のサイズは
なぜ0になるのか示せ。
0506デフォルトの名無しさん
NGNG#include<fcntl.h>
main()
{
int fd;
fd = open("file",O_WRONLY|O_CREAT,0644) ;
close(1);
dup(fd);
close(fd);
execlp("ls","ls","-lag",NULL);
}
を実行したとき、作られた「file」の中の「file」のサイズは
なぜ0になるのか示せ。
0507デフォルトの名無しさん
NGNG0508デフォルトの名無しさん
NGNG但し、main関数では適当なデータをキー入力して、関数を呼び出した後はxのn乗の値を出力せよ。
0509デフォルトの名無しさん
NGNGその後からn個のデータを配列aに入力し、合計、平均、標準偏差を求めるプログラムを作成しなさい.」
という問題を教科書見ながらやってみたのですが
家のコンピュータでVC++6.0を使うと、学校で教えてもらったとおりの操作をしているはずなのに
エラーや警告はないのにビルドすると「リンク中...」と表示されたまま一切の操作を受け付けなくなります。
なんででしょう?コンピュータのスペック等は特に問題はないはずですけど...
0510デフォルトの名無しさん
NGNG#include <stdio.h>
#include <math.h>
int main(void)
{
int n;
double x;
scanf("%f%d,\n",&x,&n);
printf("%f\n",pow(x,n));
return 0;
0511デフォルトの名無しさん
NGNGその課題の前提条件となる命題は誤りである。
なぜなら,既にファイル"file"が存在した場合,実行後のそのサイズはゼロとは限らない。
0512デフォルトの名無しさん
NGNG>483はスルー?
つーか、高速化が目的なら元の版と速度比較するべきじゃないの?
>>508
ほぼ同じ目的のネタがあるから自力でできるところまでやってみたら?
>>506
そういう宿題なの?
>>509
VCスレ行きかな?
0513デフォルトの名無しさん
NGNGint power(double x, int n, double *y){
double sum = 1.0;
while(n--) sum *= x;
*y = sum;
return 0;
}
int main(void){
int n;
double x, y;
printf("x:"); scanf("%lf", &x);
printf("n:"); scanf("%d", &n);
power(x, n, &y);
printf("y = %f", y);
return 0;
}
0514デフォルトの名無しさん
NGNG適当なデータを初期値代入せよ。その後そのデータを配列bには順方向に配列cには逆方向に
代入し、最後に配列a,b,c,の要素を出力せよ(for文を必ずつかわないといけない)
順方向とは、a[0]をb[0]に、a[1]をb[1]に・・・、a[9]をb[9]に代入すること
逆方向とは、a[0]をc[9]に、a[1]をc[8]に・・・、a[9]をc[0]に代入すること
0515デフォルトの名無しさん
NGNG#include <stdio.h>
int main() {
int i,a[10] = { 0,1,2,3,4,5,6,7,8,9} ,b[10],c[10];
for(i=0;i<10;i++) {
b[i] = a[i];
c[i] = a[10-i-1];
}
for(i=0;i<10;i++) {
printf("a[%d] = %d b[%d] = %d c[%d] = %d\n",i,a[i],i,b[i],i,c[i]);
}
return 0;
}
0516デフォルトの名無しさん
NGNG0517デフォルトの名無しさん
NGNGありがとうございます^^
0518デフォルトの名無しさん
NGNG#include<stdio.h>
#include <fstream.h>
bool (*pfunc)(char * str);
bool func(char * str)
{
if(!str) return false;
printf(str);
return true;
}
void main()
{
pfunc = func;
unsigned char * cfunc = (unsigned char *)pfunc;
ofstream out_file("関数.func",ios::binary);
for(unsigned long i = 0;i < 225275;i++)
{
out_file.put(cfunc[i]);
}
}
0519518
NGNG#include <fstream.h>
#include <sys/types.h>
#include <sys/stat.h>
void main()
{
struct _stat st;
unsigned char* file = NULL;
bool(* func)(char *str) = NULL;
ifstream InFile("関数.func",ios::binary);
_fstat(InFile.fd(),&st);
file = new unsigned char[st.st_size];
for(long i = 0;i < st.st_size;i++)
{
InFile.get(file[i]);
}
InFile.close();
func = (bool (__cdecl *)(char *))file;
func("がちょ〜ん");
}
という様にいざファイルから読み出して関数funcを使用しようとしてもなぜだ
かうまく行きません。どなたか原因がわかる方いらっしゃいませんでしょうか?
0520デフォルトの名無しさん
NGNGんな器用なことは大抵のOSでできない。できる場合も、工夫が必要になる。
何がやりたいか知らんが、OSの勉強しなされ。
0521デフォルトの名無しさん
NGNGそういうのは普通DLLという特殊なライブラリをコンパイル/リンクしておき,
後で呼び出す。
とあるUNIX系システムでの例。
dll.c:
#include<stdio.h>
#include <fstream.h>
bool func(char * str)
{
if(!str) return false;
printf(str);
return true;
}
dllの作成:
gcc -fPIC -shared -nostartfiles -o dll.so dll.c
DLLを呼び出すmain関数。
#include <dlfcn.h>
int main(){
void *handle;
bool (*f)(char*);
handle = dlopen("dll.so",RTLD_LAZY);
f = dlsym(handle,"func");
f("がちょ〜ん");
}
>関数funcを保存したのです
奇天烈な君の保存した内容は,プログラムが終了した瞬間,
その意味が失われる。
0522デフォルトの名無しさん
NGNGこれはどのようなものなのでしょうか?
0523デフォルトの名無しさん
NGNGhow-are youのとき"I'm fine,thank you"
fuck youのとき"son of bitch!"
それ以外のとき"Ouch!"
と出力するプログラムをかけ。
�A引数として与えられた文字列を、辞書的順序で出力するプログラムを書け。
(例) FILENAME January February March
(結果) February January March
�B引数として与えられた数字を全て足し合わせた数を出力するプログラムを書け。
(例) FILENAME 1 2 3 4
(結果) 10
お願いします。
0524デフォルトの名無しさん
NGNG2) http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=88
3) http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=89
0525デフォルトの名無しさん
NGNG0526デフォルトの名無しさん
NGNG三角形が成立するときにはさらに正三角形、直角二等辺三角形、直角三角形、二等辺三角形、そのいずれでもない三角形
に分類し、その結果を表示せよ。
0527526
NGNGint main()
{
int a,b,c,temp;
char *triangle;
printf("正数a,b,c=");
scanf("%d,%d,%d",&a,&b,&c);
if(b>a){
temp=a;
a=b;
b=temp;
}
if(c>a){
temp=a;
a=c;
c=temp;
}
0528526
NGNGif(a==b==c){
printf("正三角形です");
}
else if(b*b+c*c=a*a&&b==c){
printf("直角二等辺三角形です");
}
else if(b*b+c*c=a*a){
printf("直角三角形です");
}
else if(a==b||b==c||c==a){
printf("二等辺三角形です");
}
else{
printf("その他の三角形です");
}
}
return 0;
}
エラー E2277 triangle.c 28: 左辺値が必要(関数 main )
エラー E2277 triangle.c 31: 左辺値が必要(関数 main )
0529526
NGNGお願いします。
0530526
NGNGエラーは消えたんですが結果が上手くいきません
0531デフォルトの名無しさん
NGNG(b*b+c*c)=(a*a)
どう思う?
0532524
NGNG一応、2) の修正版
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=90
>527
> if(a==b==c)
a, b, c が全て同じ時、というif文を書いているつもりなんだろうけど、
a == b で算出される真偽値が c と比較されてしまって意味が違うので駄目ぽ。
if(a==b&&a==c) と書く。
0533526
NGNGありがとうございます。
こういうミスがないように気をつけます。
0534名無しさん@お腹いっぱい。
NGNG#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[]) {
if (!strcmp(argv[0], "a.out")) {
printf("Give me name¥n");
} else if (!strcmp(argv[0], "how-are-you")) {
printf("I'm fine, thank you¥n");
} else if (!strcmp(argv[0], "fuck-you")) {
printf("son of bitch¥n");
} else {
printf("Ouch!¥n");
}
return 0;
}
0536デフォルトの名無しさん
NGNG勉強よりも藍が足りない
0537デフォルトの名無しさん
NGNG(・∀・)!?
0538デフォルトの名無しさん
NGNG0539デフォルトの名無しさん
NGNG0540523
NGNG0541デフォルトの名無しさん
NGNG皆さんの力を貸してください
問題分をそのまま書きます
テキストファイルに、1〜nまでの素数を書き込む関数fileSosu()を作成せよ。
void fileSosu( char *fileName, int n)
・fileName : 素数を書き込むファイル名
・n : 素数を求める最大の数
上記の関数を以下のプログラムで実行し1〜100までの素数がファイルに出力されたか動作を確認せよ。
#include<stdio.h>
//ここにfileSosu()関数を開く。
void main()
{
//ファイル名を格納する文字列
char wFileName[20];
printf("素数を出力するファイル名=");
//ファイル名をキーボードから入力する
scanf("%s", wFileName);
fileSosu( wFileName, 100);
}
よろしくお願いします
0542デフォルトの名無しさん
NGNGvoid fileSosu(char *fileName, int n)
{
FILE *fp = fopen(fileName, "w");
int prime;
int i, j;
for(i = 2; i <= n; i++) {
prime = 1;
for(j = 2; j <= i / 2; j++) {
if((i % j) == 0) {
prime = 0;
break;
}
}
if(prime == 1)
fprintf(fp, "%d\n", i);
}
}
あってるかな〜
0543デフォルトの名無しさん
NGNGfprintf(fp, "OS に close させるのもなかなか乙\n");
0544デフォルトの名無しさん
NGNGj*j <= iとしても
10万まできちんと表示されたんだが、j*jのとこでオーバーフローしないの?
0545デフォルトの名無しさん
NGNGj はその平方根くらいまで
0546デフォルトの名無しさん
NGNGあ・・・・・・、バカな質問ですた。。。
0547デフォルトの名無しさん
NGNGfclose しなきゃなのね。
0548デフォルトの名無しさん
NGNG0549デフォルトの名無しさん
NGNG問題とかのレベルに達していなくてすいません。。。
0550デフォルトの名無しさん
NGNGdouble pow(double x, double y);
0551デフォルトの名無しさん
NGNG0552デフォルトの名無しさん
NGNG十文字腹して喉掻っ切って死んできます。
0553デフォルトの名無しさん
NGNGPOD型の演算子の多重定義はできない。
0554デフォルトの名無しさん
NGNGありがとうございました
0555デフォルトの名無しさん
NGNG0556デフォルトの名無しさん
NGNGまあ機能が無い訳じゃないんだから、素直にpowっとけ。
0557デフォルトの名無しさん
NGNG0558デフォルトの名無しさん
NGNGfloat f = (float)num;
0559デフォルトの名無しさん
NGNG教えてください
0560デフォルトの名無しさん
NGNG>powっとけ。
表現(・∀・)イイネ!!
0561デフォルトの名無しさん
NGNGどこがおかしいでしょうか?
つ#include <stdio.h>
void main(void)
{
double a[5][5];
double b[5][5];
double c[5][5]={{0,0,0,0,0},{0,0,0,0,0},{0,0,0,0,0},{0,0,0,0,0},{0,0,0,0,0}};
int i;
int j;
int k;
for(i=0; i<=4; i++)
{
for(j=0; j<=4; j++)
{
printf("input A %5d\n",a[i][j]);
scanf("%lf",&a[i][j]);
}
}
for(i=0; i<=4; i++)
{
for(j=0; j<=4; j++);
0562デフォルトの名無しさん
NGNGfor(k=0; k<=4; k++)
{
c[i][j]=c[i][j]+a[i][k]*b[k][j];
}
}
}
printf("matrix A and B \n");
for(i=0; i<=4; i++)
{for(j=0; j<=4; j++)
{
printf("%5f ",a[i][j]);
printf("%5f ",b[i][j]);
}
printf("\n");
}
printf("output C=A*B \n");
for(i=0; i<=4; i++)
{
for(j=0; j<=4; j++)
{
printf("%5f ",c[i][j]);
}
printf("\n");
}
}
printf("output C=A*B \n");
for(i=0; i<=4; i++)
{
0563デフォルトの名無しさん
NGNG}
printf("\n");
}
return 0;
}
0564デフォルトの名無しさん
NGNG二次元配列を使って九九の表を作成せよって言う問題が出たんですがどうもよく分からなくて
模範解答を誰か教えて下さい。
よろしくお願いしますm( )m
0565デフォルトの名無しさん
NGNG0566デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=91&fi=no
0567566
NGNGすっかりわすれてた煎ってくる
0568デフォルトの名無しさん
NGNG#include <stdio.h>
int main() {
int i,j,table[9][9];
for(i=0;i<9;i++) {
for(j=0;j<9;j++) {
table[i][j] = i * j;
}
}
printf(" ");
for(i=0;i<9;i++) printf(" %2d",i+1);
printf("\n");
for(i=0;i<9;i++) {
printf("%d",i+1);
for(j=0;j<9;j++) {
printf(" %2d",table[i][j]);
}
printf("\n");
}
return 0;
}
0569デフォルトの名無しさん
NGNGint main(void)
{
int i, j , t[10][10];
for (i = 1; i <= 9; i++) for (j = 1; j <= 9; j++) t[i][j] = i * j;
for (i = 1; i <= 9; i++){
for (j = 1; j <= 9; j++) printf("%2d ",t[i][j]);
puts("");
}
return 0;
}
0570デフォルトの名無しさん
NGNGアプロダが重いので
#include <stdio.h>
#define N 2
int main(void)
{
double a[N + 1][N + 1], b[N + 1][N + 1], c[N + 1][N + 1] ={0,};
int i, j, k;
for (i = 0; i < N; i++) {
for (j = 0; j < N; j++) {
printf("input A a[%d][%d]\n", i, j);
scanf("%lf", &a[i][j]);
}
}
for (i = 0; i < N; i++) {
for (j = 0; j < N; j++) {
printf("input B a[%d][%d]\n", i, j);
scanf("%lf", &b[i][j]);
}
}
0571続き
NGNGfor (i = 0; i < N; i++)
for (j = 0; j < N; j++)
for (k = 0; k < N; k++)
c[i][j] += a[i][k] * b[k][j];
printf("matrix A and B \n");
for (i = 0; i < N; i++) {
for (j = 0; j < N; j++) printf("%5f ", a[i][j]);
printf("\t");
for (j = 0; j < N; j++) printf("%5f ", b[i][j]);
printf("\n");
}
printf("output C=A*B \n");
for (i = 0; i < N; i++) {
for (j = 0; j < N; j++) printf("%5f ", c[i][j]);
printf("\n");
}
return 0;
}
0572571
NGNGは 5 にしといてね。
0573564
NGNG0574デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=92&fi=no
>printf("input A %5d\n",a[i][j]);
この行は
printf("input A[%d][%d]\n",i ,j);
っていう意図かな
それとBを入力させてない
>>561の最後の行の
>for(j=0; j<=4; j++);
はセミコロンが邪魔
あと"{"と"}"の数がおかしい
0575デフォルトの名無しさん
NGNG0576570
NGNG+1必要なかったな。
0577デフォルトの名無しさん
NGNG複素数の問題なんですが、絶対値, 偏角を与えて1つの複素数を返す関数を作りたいんです。
関数tan(タンジェント、角度が与えられたときに傾きを返す)を使います。
お願いします!
0578デフォルトの名無しさん
NGNGreal = absVal * cos(theta);
imag = absVal * sin(theta);
だろうからtan()は使わんと思うが。
0579デフォルトの名無しさん
NGNGtanからcos,sinを求めるとかw
0580デフォルトの名無しさん
NGNG0581デフォルトの名無しさん
NGNG結果を返すとき
構造体があってそれを用いて返り値として渡すのか
引数としてポインタを渡すのかどうなのかわからんのだが
0582デフォルトの名無しさん
NGNGgmpライブラリを用いて
3+4を出力するプログラムを作ってもらえませんか?
3と4はgmp数でおねがいします。
gmpライブラリを使おうとかれこれ
2週間たちました。
いろいろなとこを巡ってみました。
でも、だめでした
どうかどうかおしえてください。
お願いします。
0583デフォルトの名無しさん
NGNGu'' = [ u, v, u' , v']
v'' = [ u, v, u' , v']
'は1回微分です。微分は時間で行っています。
上の式を4次のルンゲクッタでルンゲクッタでu'、v'を
求めたいのですがどうすればいいでしょうか?
0584デフォルトの名無しさん
NGNGまず日本語を整理しよう。
Runge-Kuttaは4次に限定すれば非常に単純だけど、583みたいに
記号の定義に不備がある場合には解けないよ。
0585デフォルトの名無しさん
NGNGすみません、いろいろ考えていたらおかしくなっていました^^;
とりあえず2回微分のu、vから一回微分のu、vを求めたいです。
よろしくお願いします。
0586デフォルトの名無しさん
NGNGhttp://na-inet.jp/tutorial/
gmp-mpz.c
0587577
NGNGtanを使うものとばかり思ってました!
ひいぃぃぃーーー先生方、有難うございました。
ひいいーーーー
0588デフォルトの名無しさん
NGNGマルチ野郎は質問する資格なんてありませんよ?消えてください。
0589デフォルトの名無しさん
NGNGπ/4 = 4*arctan(1/5)-arctan(1/239)
arctan(1/m) = 1/m - 1/3m^3 +1/5m^5 - 1/7m^7 + ・・・・
stdio.h以外のヘッダファイルを使ってはいけないそうです。
0590デフォルトの名無しさん
NGNGこれを参考にプログラムを作っていきたいと思います。
hellowとあるのが少し不安ではありますが・・・
0591助けてください
NGNGint inc1(int);
int inc2(int *);
void main(void)
{
int a=2;
printf("inc1(a)=%d, ", inc1(a));
printf("a=%d\n",a);
printf("inc2(a)=%d, ", inc2(&a) );
printf("a=%d\n",a);
}
int inc1(int i)
{
return ++i;
}
int inc2(int *i)
{
return ++(*i);
}
<結果>
inc1(a)=3, a=2
inc2(a)=3, a=3
<理由>
関数inc2の方は、借引数をポインタとして宣言していて結果を呼び出し側
に送っている。よって&aには関数inc2でa(=2)に+1された3が割りあれたれている。
一方、関数inc1の方は、先にprintf("a=%d\n",a)のaに2が入り次に関数inc1の処
理によってa(=2)に+1された3がinc1(a)に送られている。
結果が上のようになった理由が間違ってて再提出をくらいました。
理由を教えてください
0592デフォルトの名無しさん
NGNG実数型の変数に長辺と短辺の長さを入力し、その長さ
の辺を持つ長方形の周りの長さと面積を求め画面に表示させる
プログラムを作れ。
長辺と短辺の入力の違いはあるのですか?
0593デフォルトの名無しさん
NGNG関数呼び出しというプロセスを理解していないからだと思われ。
0594デフォルトの名無しさん
NGNG入力の値の大きい方が長辺で、小さい方が短辺だろ。
つか、プログラム以前の問題が君の脳にあるようだ。
0595デフォルトの名無しさん
NGNG1.日本語がおかしい
2.関数に送られているとか、送っているとかいう意味不明な用語
3.つまり、あんたの理解不足
0596デフォルトの名無しさん
NGNGハァ?
お前の頭が一番おかしいと思われー
0597助けてください
NGNG私の<理由>のどこがおかしいですか?
指摘してください
0598デフォルトの名無しさん
NGNGおかしいところを抜き出してみました。
>借引数をポインタとして宣言していて
>結果を呼び出し側に送っている。
>よって&aには関数inc2でa(=2)に+1された3が割りあれたれている。
>先にprintf("a=%d\n",a)のaに2が入り
>次に関数inc1の処理によってa(=2)に+1された3がinc1(a)に送られている。
0599デフォルトの名無しさん
NGNG>&aには関数inc2でa(=2)に+1された3が割りあれたれている。
&aの値は変更されません。
意思を伝える程度の言語能力を保有していないのなら、
自分の言葉でアレンジせずに問題文をそのまま書きましょう
0600デフォルトの名無しさん
NGNGその問題、演習レベルの課題ではないな。
多数桁演算ルーチンを作らないと計算が大変だ。
0601デフォルトの名無しさん
NGNGオレは昔まったく同じ問題を演習で解いたが...
0602助けてください
NGNGこんな人達に頼んだ自分が馬鹿でした。
二度と来ません。さようなら
0603デフォルトの名無しさん
NGNG君の<理由>の文章に含まれている単語単語、単語の組み合わせはおかしくなさそうだが、文章としてはおかしい。
だいたいにして、処理の流れの順番に関数を説明していない時点でおかしい。
0604デフォルトの名無しさん
NGNGえ、ホントに?
収束演算だから上位桁を確定させながら、下位桁だけを演算し続けるのかな。
0606デフォルトの名無しさん
NGNG煽りが下手くそ。
0607デフォルトの名無しさん
NGNG処理 とか ポインタ とか 関数 とかの単語は合ってる。
でもよくよくみたら、借引数 とか 割りあれたれている とか間違ってるな。
うん、訂正。
>>591
すべてがダメ。
0608デフォルトの名無しさん
NGNGそんなことして何が楽しいんだろw
0610デフォルトの名無しさん
NGNG煽りが下手くそ。
0611デフォルトの名無しさん
NGNG0612デフォルトの名無しさん
NGNG「送る」も聞いたことない
0613デフォルトの名無しさん
NGNG文字列の長さを判定せずに逆順に表示させる方法ってあるんですか?
----
#include <stdio.h>
/* 入力した文字列を順番どおりに出力する */
void putstring(const char *str){
int i=0;
while(*(str+i) != '\0'){
putchar(*(str+i));
i++;
}
}
void putreverse(const char *str){
int i, length=0;
for(i=0; *(str+i)!='\0'; i++) length++; /* 文字列の長さを求める */
for(i=length-1; i >= 0; i--) putchar(*(str+i)); /* 逆順に出力 */
}
int main(void)
{
char word[200];
printf("文字列を入力してください\n");
gets(word);
printf("実行結果は以下のとおりです。\n");
putstring(word); printf("\n");
putreverse(word); printf("\n");
return 0;
}
---
0614デフォルトの名無しさん
NGNG文字列の長さがわからない状態で
最初に表示するべき文字(=文字列の最後の文字)がわかるとでも?
0615デフォルトの名無しさん
NGNGやっぱりこれしか方法がないんですか・・・どもでした。
0616デフォルトの名無しさん
NGNGこんなのは?
str2[0] = '\0';
for (i = 0; str[i] != '\0'; ++i) {
for (j = 0; j <= i; ++j) str2[j + 1] = str2[j];
str2[0] = str[i];
}
0617デフォルトの名無しさん
NGNG多少問題有るけど、
ケツのナル文字からstrの指す
文字の先頭のアドレスまでポインタ比較しながら
表示させれば?
0618デフォルトの名無しさん
NGNGarctanの項が二つあって収束速度が全然違うので、桁合わせするだけでも面倒ぽいんですけどね。難しく考えすぎてるのかなあ。。。
0619デフォルトの名無しさん
NGNG>>591
printf("inc1(a)=%d, ", inc1(a));
関数inc1に変数aを与え、その結果をprintfにより表示する。
printf("a=%d\n",a);
変数aは関数inc1の影響を受けないので、元の値のままである。
printf("inc2(a)=%d, ", inc2(&a) );
関数inc2に変数aのアドレスを与え、その結果をprintfにより表示する。
printf("a=%d\n",a);
変数aは関数inc2の影響により、値が変わる。
したがって、変数をアドレス渡しすることにより、呼び出し側の変数を
呼び出された側の関数で操作することができる。
0620デフォルトの名無しさん
NGNGケツのナル文字を見つけることと文字数を求めることはほぼ等価だからなぁ。
コードとしては漏れもポインタでループ回すと思う。
0621デフォルトの名無しさん
NGNGだって、再提出の理由を聞いてるからw
0622デフォルトの名無しさん
NGNG次の条件に従ってじゃんけんを行うプログラムをC言語で書け。
【条件】
・ユーザは0,1,2を入力。(getchを使うこと)
・入力は、1:グー、2:チョキ、3:パー、4:プログラムを終了する
・4が入力されるまでは、じゃんけんを繰り返す。
・画面に勝ち、負け、引き分けを表示する。
・if文とswitch文と三項演算子は使用不可。
0624デフォルトの名無しさん
NGNG・ユーザは0,1,2を入力。(getchを使うこと)
・入力は、1:グー、2:チョキ、3:パー、4:プログラムを終了する
0625617
NGNG>ケツのナル文字を見つけることと文字数を求めることはほぼ等価だからなぁ。
俺もそう思った。
スタック実装して、やるっていう手もあるけど
メモリ食うのあほだしな。
0626622
NGNG>>624
thanks.
【問題】
次の条件に従ってじゃんけんを行うプログラムをC言語で書け。
【条件】
・ユーザは0,1,2,3を入力。(getchを使うこと)
・入力は、0:グー、1:チョキ、2:パー、3:プログラムを終了する
・3が入力されるまでは、じゃんけんを繰り返す。
・画面に勝ち、負け、引き分けを表示する。
・if文とswitch文と三項演算子は使用不可。
0627デフォルトの名無しさん
NGNG0628デフォルトの名無しさん
NGNGじゃんけんの対象は?
コンピュータが乱数で対戦するの?
入力履歴からクセを見て対戦するの?
それとも、更に人間に入力させる?
0629デフォルトの名無しさん
NGNG0630デフォルトの名無しさん
NGNG#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void win()
{ printf("勝ち\n"); }
void lose()
{ printf("負け\n"); }
void draw()
{ printf("引き分け\n"); }
void (*table[][3])() = {
{ draw, win, lose },
{ lose, draw, win },
{ win, lose, draw },
};
main()
{
int ch;
srand(time(0));
while (ch = getch(), ch != '3') {
table[ch - '0'][rand() % 3]();
}
}
0631601
NGNGケタアワセ?
>>600の言うとおり多倍長計算しろってもんだいでしょ。
とりあえず足し算だけ貼っときます。
/*
* a[] <- a[] + b[]
*/
void add(int a[], int b[], int n)
{
int carry = 0;
for (int i = n - 1; i >= 0; --i) {
a[i] += b[i] + carry;
if (a[i] >= 10000) {
a[i] -= 10000;
carry = 1;
}
else
carry = 0;
}
}
/*
* int a[] = { 1234, 5678 };
* int b[] = { 2345, 6789 };
* add(a, b, 2); a <- 12345678 + 23456789
*/
0632デフォルトの名無しさん
NGNGvoid (*table[3])() = { draw, win, lose };
table[(rand()%3 + (ch-'0')*2) % 3]();
0633デフォルトの名無しさん
NGNG英字おされたらこけない?
0634デフォルトの名無しさん
NGNG0635デフォルトの名無しさん
NGNG>>631
なんだ、結局は四則演算の多数桁演算ルーチン作れってことかあ。
わり算ルーチン作るのがめんどいな。
いやね、多数桁演算しないで、arctanをテイラー展開した各項について
適宜10^N倍して収束が終了した整数部を別途保存して削除、小数部のみを生かして
演算の有効桁数を維持しつつ計算するのかと思ったのよ。説明ヘタですまんが。
0636デフォルトの名無しさん
NGNG>>1のラウンジが重い&ソースが長いんで2chあぷろだ借りてきた
http://up.isp.2ch.net/up/53ef3b7b55e6.c
…ら、やっぱり重かったんで、ここに直接載せる。長かったので7行スレみたいに詰めてみた。
#include <stdio.h>
#define L 1000 /* 計算桁数 */
#define N (L/4)+1 /* 配列数 */
#define LIM1 (L/1.39794)+1 /* L/log25…arctan(1/5)の収束範囲 */
#define LIM2 (L/4.7568)+1 /* L/log239^2…同様。logの底は10 */
void add(int*,int*,int*);void sub(int*,int*,int*);void div(int*,int*,int);
void printpi(int*);int main(void){int a[N],b[N],p[N];int i;for(i=0;i<N;i++)
{/* 配列初期化 */a[i]=b[i]=p[i]=0;}/* 16arctan(1/5)を計算する */a[0]=16*5;
for(i=0;i<LIM1;i++){div(a,a,25);div(b,a,2*i+1);if(i%2){/* 奇数項の時 */sub(p,
p,b);}else{add(p,p,b);}}for(i=0;i<N;i++){/* 配列初期化 */a[i]=b[i]=0;}
/* 4arctan(1/239)を計算する */a[0]=4*239;for(i=0;i<LIM2;i++){div(a,a,239);
div(a,a,239);/* div(a, a, 239 * 239); はオーバーフロー */div(b,a,2*i+1);
if(i%2){/* 奇数項の時 */add(p,p,b);}else{sub(p,p,b);}}printpi(p);return 0;}
/* a[] <- b[] + c[]; */
void add(int*a,int*b,int*c){int i,tmp=0;for(i=N-1;i>=0;i--){if((a[i]=b[i]+
c[i]+tmp)>=10000){a[i]-=10000;tmp=1;/* 繰り上げ */}else{tmp=0;}}}
/* a[] <- b[] - c[]; */
void sub(int*a,int*b,int*c){int i,tmp=0;for(i=N-1;i>=0;i--){if((a[i]=b[i]-
c[i]-tmp)<0){a[i]+=10000;tmp=1;/* 繰り下げ */}else{tmp=0;}}}
/* a[] <- b[] / c */
void div(int*a,int*b,int c){int i,mod=0;long tmp;for(i=0;i<N;i++){tmp=mod*
10000L+b[i];a[i]=tmp/c;mod=tmp%c;}}
/* 結果表示 */
void printpi(int *p){int i;printf("%3d.",p[0]);for(i=1;i<N;i++){printf("%04d",
p[i]);}printf("\n");}
インデントし直せば見やすいはずだ。
0637仕様書無しさん
NGNG>>636
あ、なるほどね。前の項の演算結果を使ってわり算するのか。
多数桁÷多数桁の実装が面倒だって思っていたよ。霹靂。
0638デフォルトの名無しさん
NGNG【西暦何年であるかを読み込んで、それに応じて、対応する世紀、次の世紀、次の世紀までの年数を出力する】
という問題が分かりません。どなたか教えて下さい、お願いします。
0639デフォルトの名無しさん
NGNG#include <stdio.h>
int main()
{
int nowYear;
int nowCentury, nextCentury = 1;
int cntDownNextCentury;
printf("現在の西暦を入力してください\n");
scanf("%d", &nowYear);
if (nowYear%100 != 0)
{
nowCentury = nowYear/100+1;
}
else
{
nowCentury = nowYear/100;
}
nextCentury += nowCentury;
cntDownNextCentury = 101 - (nowYear % 100);
printf("現在の世紀は: %d 世紀\n次の世紀は: %d 世紀\n次の世紀まであと %d 年", nowCentury, nextCentury, cntDownNextCentury);
return 0;
}
0640639
NGNG#include <stdio.h>
int main()
{
int nowYear;
int nowCentury, nextCentury = 1;
int cntDownNextCentury;
printf("現在の西暦を入力してください\n");
scanf("%d", &nowYear);
if (nowYear%100 != 0)
{
nowCentury = nowYear/100+1;
cntDownNextCentury = 101 - (nowYear % 100);
}
else
{
nowCentury = nowYear/100;
--nowCentury;
cntDownNextCentury = 1;
}
nextCentury += nowCentury;
printf("現在の世紀は: %d 世紀\n次の世紀は: %d 世紀\n次の世紀まであと %d 年", nowCentury, nextCentury, cntDownNextCentury);
return 0;
}
0641デフォルトの名無しさん
NGNG早速の対応ありがとうございます。助かりました。
0642デフォルトの名無しさん
NGNGわざわざ修正まで、どうもです。
0643デフォルトの名無しさん
NGNG紀元前は?
0644デフォルトの名無しさん
NGNG0645489
NGNG当方、C言語をならったばっかの大学生なんで。
キーボードから入力された 8個の整数値を配列へ格納し、
値の大きい順に表示をするプログラムを作成せよ。
#include <stdio.h>
main()
{
int i, h,max ;
int a[8],b[8];
for(i = 0; i < 8; i++){
printf("a[%d] = ", i);
scanf("%d",&a[i]);
}
max = a[0];
for(h = 0; h < 8; h++ )
for(i = 0; i < 8; i++ ){
0646489
NGNGif(a[i] > max)
{
max = a[i] && b[h] > a[i];
b[h] >= a[i] max;
b[h] = max;
max <= a[i] && max <= b[h-1];
}
}
printf("値の大きい順に表示\n");
printf("%d\n", max);
課題として配列を用いて作成するレポートです。
for文以下でa[i]、b[h]の配列で表示結果をだしたいのですがif文以下の条件式がよくわからないです。
あとprintfの内容とか。
どうすればいいでしょうか?
0647デフォルトの名無しさん
NGNG0648デフォルトの名無しさん
NGNG#include <stdio.h>
main() {
int i, j, tmp;
int a[8];
for(i = 0; i < 8; i++){
printf("a[%d] = ", i);
scanf("%d",&a[i]);
for(j = i; j > 0; j--){
if(a[j] > a[j - 1]) {
tmp = a[j];
a[j] = a[j - 1];
a[j - 1] = tmp;
}
}
}
printf("値の大きい順に表示\n");
for(i = 0; i < 8; i++)
printf("%d\n", a[i]);
return 0;
}
0649645
NGNGb[h]がa[i]の最大値がより小さくa[i-1]より大きいとかやってるうちに
わけわかんなくなって....
>>648 修正ありがとうございます。tmpやj--はどういういまいなんでしょうか?
0650デフォルトの名無しさん
NGNGtmp はスワップのためのテンポラリ。
j-- はj の値のデクリメント。
0652デフォルトの名無しさん
NGNG0653デフォルトの名無しさん
NGNG0654デフォルトの名無しさん
NGNGという課題をやっているのですが下記のソースではコンパイルは通るものの
うまく動かないので、何が悪いのか分からず困っています。
使用しているコンパイラはborland c++5.5.1 for win32です。
どうかよろしくお願いします。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1060403548&res=68
0655デフォルトの名無しさん
NGNGコンパイルし直していないが、パッと見てわかる分だけ。
Cで ^ は累乗ではなく XOR を表わす。勘違いはBASICの影響か?
e=10^(-2); → e=10e-2;
(1+4*x-2)^(1/2) → sqrt(1+4*x-2)
ついでなので、一般に累乗を計算する時は pow 関数を使う。
0656デフォルトの名無しさん
NGNG0657デフォルトの名無しさん
NGNG0658デフォルトの名無しさん
NGNGswap
【名】 取り替え、交換(品)
【自動-1】 場所{ばしょ}[もの]を交換{こうかん}する
>tmp はスワップのためのテンポラリ
訳)変数tmpは(a[j]とa[j-1]の)値の入れ替えのために値を一時的に記録しておくためのもの
0659デフォルトの名無しさん
NGNGint main(){
char *str="language";
char *cpy;
int i=0;
cpy=str;
while(*(str+i)!='\0'){
printf("%c",*(str+i));
i+=2;
}
i--;
while(*(str+i)<=*cpy)
printf("%c",*(str-2));
return 0;
}
languageをlnug(ひとつ飛ばし)と表示させた後、今度は逆から eaga
をポインタを使って表示させるプログラムのはずなのですが、上手にいきません。
どこが悪いのか教えていただけないでしょうか?
0660659
NGNG0661デフォルトの名無しさん
NGNGwhile(*(str+i)<=*cpy) 比較してる値はなんだと思う?
printf("%c",*(str-2)); どこをさしてると思う?
0662659
NGNGはstr[7]番目を指していると思います。
-2でcpyの1番目になるまでstr-2が続くと思ってやってましたが・・・
str[i]の値からどう引いて行くのか分からなかったので、-2を入れました。
0663デフォルトの名無しさん
NGNG0664デフォルトの名無しさん
NGNG0666デフォルトの名無しさん
NGNGその出現回数の一覧を出力するプログラムを作れ。
という問題が分かりません。
どなたか教えていただけないでしょうか?
0667デフォルトの名無しさん
NGNG0668デフォルトの名無しさん
NGNG0669デフォルトの名無しさん
NGNG「ヒストグラム」でググってみ
0670デフォルトの名無しさん
NGNG0671デフォルトの名無しさん
NGNG0672デフォルトの名無しさん
NGNGint main(void)
{
int month;
printf("何月ですか?:");
scanf("%d",&month);
switch(month){
case 3: printf("春です。\n"); break;
case 4: printf("春です。\n"); break;
case 5: printf("春です。\n"); break;
case 6: printf("夏です。\n"); break;
case 7: printf("夏です。\n"); break;
case 8: printf("夏です。\n"); break;
case 9: printf("秋です。\n"); break;
case 10: printf("秋です。\n"); break;
case 11: printf("秋です。\n"); break;
case 12: printf("冬です。\n"); break;
case 1: printf("冬です。\n"); break;
case 2: printf("冬です。\n"); break;
}
return(0);
}
0673デフォルトの名無しさん
NGNGSegmentation Fault
0674デフォルトの名無しさん
NGNGint main(void)
{
int month;
printf("何月ですか?:");
scanf("%d",&month);
switch(month){
case 3: printf("春です。\n"); break;
case 4: printf("春です。\n"); break;
case 5: printf("春です。\n"); break;
case 6: printf("夏です。\n"); break;
case 7: printf("夏です。\n"); break;
case 8: printf("夏です。\n"); break;
case 9: printf("秋です。\n"); break;
case 10: printf("秋です。\n"); break;
case 11: printf("秋です。\n"); break;
case 12: printf("冬です。\n"); break;
case 1: printf("冬です。\n"); break;
case 2: printf("冬です。\n"); break;
default: printf("そんな月ありませんよ!\n"); break;
}
return(0);
}
0675デフォルトの名無しさん
NGNG何月ですか?:神有月
Segmentation Fault
0676デフォルトの名無しさん
NGNG1)N個の要素数をもつ整数型の配列array[N]と数値データの入った変数Xがある。
配列arrayの中に変数Xと等しいものがあるかを調べる。等しいものがあればその個数を表示する。
2)N子の要素数をもつ整数型の配列array[N]gaある。この配列を逆順に入れ替える。
簡単なプログラムだと思うんですが厨房の私には少し分からない部分があるんでよろしくお願いします。
0677デフォルトの名無しさん
NGNG型が指定されていないのでとりあえずintにしておくが。
1)
int i,count = 0;
for(i=0;i<N;i++) if(array[N] == X) count++;
if(count > 0) printf("%d個あった\n",count);
else printf("見つからんかった\n");
2)
int i,temp;
for(i=0;i<N/2;i++) {
temp = array[i];
array[i] = array[N-i-1];
array[N-i-1] = temp;
}
0678デフォルトの名無しさん
NGNG先輩レスサンクスです!!
0679デフォルトの名無しさん
NGNG揚げ足鳥スマソ
0681デフォルトの名無しさん
NGNG#include<stdio.h>
int main(void){
printf("1)N個の要素数をもつ整数型の配列array[N]と数値データの入った変数Xがある。\n");
printf(" 配列arrayの中に変数Xと等しいものがあるかを調べる。等しいものがあればその個数を表示する。\n");
printf("2)N子の要素数をもつ整数型の配列array[N]gaある。この配列を逆順に入れ替える。\n");
return 0;
}
揚げ足取りとはこうやるのだ。
0682デフォルトの名無しさん
NGNG才能をひしひしと感じるw
0683デフォルトの名無しさん
NGNG#include<stdio.h>
int main(void){
printf("%s\n%s\n%s\n"
,"1)N個の要素数をもつ整数型の配列array[N]と数値データの入った変数Xがある。"
," 配列arrayの中に変数Xと等しいものがあるかを調べる。等しいものがあればその個数を表示する。"
,"2)N子の要素数をもつ整数型の配列array[N]gaある。この配列を逆順に入れ替える。");
return 0;
}
だよな。
0684デフォルトの名無しさん
NGNGint main(void){
printf("%s",
"1)N個の要素数をもつ整数型の配列array[N]と数値データの入った変数Xがある。"
" 配列arrayの中に変数Xと等しいものがあるかを調べる。等しいものがあればその個数を表示する。"
"2)N子の要素数をもつ整数型の配列array[N]gaある。この配列を逆順に入れ替える。\n");
return 0;
}
で充分。
0685デフォルトの名無しさん
NGNG0686デフォルトの名無しさん
NGNG0687654
NGNG完成させてからお礼をと一晩頑張ってみましたが未だに思い通りには動いてくれません_| ̄|○
が、大分近づいているように感じるのでもう少し悩んでみようと思います。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1060403548&res=69
0688たすけて!!!
NGNG1. 整数型配列 data 内の, data[0] から data[n-1] までの総和を返す関数 int sum(int data[], int n) を作れ.
2. 整数型配列 data 内の data[0] から data[n-1] までの値の中で,最大の値を返す関数 int max(int data[], int n) を作れ.
3. 整数型配列 data 内の data[0] から data[n-1] までの中で,2番目に大きな値をもつ要素の添字を返す関数 int secondBiggestIndex(int data[], int n) を作れ.
ただし,同じ値の要素が複数個ある場合には,添字の順序で早い方の要素の値がより大きいと見なす.このことにより,2番目の大きい要素,というものが一意的に定まる.次の具体例を参照のこと(2番目に大きいと見なされる要素を赤くしている).
{1, 2, 3, 2, 3, 3} (三つある3は 3 > 3 > 3 と見なされる)
{1, 3, 2, 1, 2, 1} (二つある2は 2 > 2 と見なされる)
そして,作った関数を用いて次の計算をして,その結果を求めよ.
0689デフォルトの名無しさん
NGNGC言語でやってください。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=225
0690デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=226
0691デフォルトの名無しさん
NGNGint i, ret = 0;
for (i = 0; i < n; i++) ret += data[i];
return ret;
}
int max(int data[], int n) {
int i = 0, ret = data[i++];
for (; i < n; i++)
if (data[i] > ret) ret = data[i];
return ret;
}
int secondBiggestIndex(int data[], int n) {
int i, top[2];
if (n < 2) {
fprintf(stderr, "ERROR: number of data is less than 2!\n");
exit(1);
}
if (data[0] >= data[1]) {
top[0] = 0; top[1] = 1;
} else {
top[0] = 1; top[1] = 0;
}
for (i = 2; i < N; i++)
if (data[i] > data[top[0]]) {
top[1] = top[0]; top[0] = i;
} else if (data[i] > data[top[1]]) {
top[1] = i;
}
return top[1];
}
最大値の初期化はINT_MIN使ったほうが手続きが統一的にできるんだけど……
0692デフォルトの名無しさん
NGNGなんか難しく考えすぎてるんじゃないかな。
とりあえず俺が書いたソースを貼っときました(質問ソースを貼るスレに張っちゃった)。
ttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1060403548&res=70
0694デフォルトの名無しさん
NGNG全ての組み合わせを出力するプログラムをつくれ(120通り重複なく)
0695デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1060403548&res=71
0696お願いします
NGNGただし、1/14 = 0.0'714285' のように循環部分を “'”でくくって表示すること
ヒント
int rr[SIZE], qq[SIZE];
/* 余り 商 */
int n, r; /* 割る数、割られる数(余り)*/
int i; /* 桁位置 */
r= 1; i= 1; /* 小数点以下i桁目に下りてきた余りはr */
--- まだ循環し始めてない
while( !((r==0) || (循環し始めた)) ){
rr[i]= r;
r= r*10;
qq[i]= r/n; r= r%n;
--- 循環し始めたかどうか検査する
i= i+1;
}
0697デフォルトの名無しさん
NGNG文字列から指定した1文字がいくつあるかを表示させるプログラムは自力でできたんですが。。。
#include <iostream>
#include <string>
using namespace std;
int count(char str[], char c[], mojinagasa);
int mojinagasa(char* c);
int main()
{
cout << "文字列を入力してください\n";
char str[100];
cin >> str;
cout << "文字列から探す文字列を入力してください\n";
char ch[100];
cin >> ch;
int nagasa = mojinagasa(ch);
int ans = count(str, ch, nagasa);
cout << str << "の中に" << ch << "は全部で" << ans << "個あります\n";
return 0;
}
int count(char str[], char c[], mojinagasa)
{
この辺からお手上げ。。。(涙
}
int mojinagasa(char* c)
{
int i =0;
while(c[i]!='\0'){
i++;
}
return i;
}
0698デフォルトの名無しさん
NGNGまず「数え方」をきちんと決めなきゃ。
たとえば、
aaaaa
という文字列の中に aaaa という文字列がいくつ含まれるか。これが明確になるように。
数え方によっては1にも2にもなる。
2chのトップページみてびっくり。
0699デフォルトの名無しさん
NGNGそういえばそうですね。。。
上のだと1か2のどちらでとらえるかによってプログラム変わってきますね、説明不足でスイマセン。
数え方で2になるようなプログラムを作りたいのですがいかがでしょうか。。。
0700デフォルトの名無しさん
NGNG>>698です。
0701デフォルトの名無しさん
NGNG0702デフォルトの名無しさん
NGNG求めて表示するプログラムを作る。(計算にはfor文を用いること。)
なお、入力は以下のように行うこと。
a11a12a13=1.0 2.0 3.0
a21a22a23=5.0 6.0 3.1
a31a32a33=1.3 2.5 9.0
お願いします。
0703デフォルトの名無しさん
NGNGメンドクサイので却下。
0704デフォルトの名無しさん
NGNG入力が限定されているなら答えをコード中に書けば良い。
行列のサイズが限定されているなら数式をコードに書けば良い。
サイズに汎用性を持たせる必要があるならばmalloc()とか。
あと、C.H.の定理を使うのもあり。
0705デフォルトの名無しさん
NGNG#include<iostream>
using namespace std;
int main(){
double a[3][3] = { // 行列 A
{1.0, 2.0, 3.0},
{5.0, 6.0, 3.1},
{1.3, 2.5, 9.0}};
double b[3][3]; // 行列 B
// まず、B = A * A
for(int i=0; i<3; ++i)
for(int i=0; i<3; ++i){
b[i][j] = 0;
for(int k=0; k<0; ++k) b[i][j] += a[i][k] * a[k][kj];
}
// B = B + 3A (= A*A + 3A)
for(int i=0; i<3; ++i)
for(int i=0; i<3; ++i){
b[i][j] += 3 * a[i][j];
}
return 0;
}
0706デフォルトの名無しさん
NGNG0707デフォルトの名無しさん
NGNGstd::string使うなら
int count_substring(const string& str1, const string& str2) {
int retVal = 0;
for (string::size_type i = 0; i < str1.size(); ++i)
if (str1.find(str2, i) != string::npos)
++retVal;
return retVal;
}
で一応できる。
(比較部分ちゃんと作れば多くの場合でもっと効率的に動くような実装ができるだろうがな)
コンパイル試してないんで動かなかったら悪い。
std::string 使ってよいかわからなかったんでそこまでしなかった。
つーか使わないなら std::cin からの入力は std::getline 使ってバッファ長指定しないと危険だぞ
0708デフォルトの名無しさん
NGNGそういえばそうでした(汗
0709デフォルトの名無しさん
NGNGどうもありがとうございます。
しかしこのアドバイスに頭がまだついていけていない。。。(汗
もっと勉強して出直してきます。
0710デフォルトの名無しさん
NGNGBM法 KMP法
とかでぐぐると文字列比較のアルゴリズムの解説が見つかると思う。頑張れ。
0711デフォルトの名無しさん
NGNGんだ後、文字列c0,c1,…cn-1をアルファベット
順に並び替えるプログラムを作成せよ。
この問題をお願いします。
0712デフォルトの名無しさん
NGNG示すASCIIコードが付加されている。即ち、ファイル
のもつ行数は復帰・改行の数をカウントすることに
よって計算できる。
上記の性質を利用して、テキストファイルの行数を計
算するプログラムを開発せよ。但し、復帰・改行に対
応するASCIIコードは10である。
上記の問題をお願いします。
0713デフォルトの名無しさん
NGNGgrep -c '\$' file
0714デフォルトの名無しさん
NGNGどぞ。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=95
0715714
NGNGfopen() のエラーチェックはご自分でどうぞ。
0716デフォルトの名無しさん
NGNG0717712
NGNG0718デフォルトの名無しさん
NGNGポインタによるリストデータ構造を操作するプログラムを作成せよ.
ただし,セルに保存するデータを整数(int)型とせよ.
プログラムはLOCATE(x,L) 、FIND(i,L)、LAST(L)、INSERT(x,p,L)、
DELETE(p,L) の関数,およびリストLの要素を順に表示する
関数DISPLAY(L)をすべて含めること.関数の返し値としての
ポインタは,適当な変数 pに保存されるものとせよ.
動作確認は以下のようにして行うこと.
1.キーボードでINSERT関数を選択し,各自の学籍番号の数字部分
の各文字の値を順にリスト先頭へ追加・登録する.(たとえば,
学籍番号がH104321なら,「1→2→3→4→0のように入力順と逆順で
リストに保存される.).
2.キーボードから適切な関数を順次呼出し,リスト内のデータが
正しい学籍番号順になるように(「0→4→3→2→1」となるように)
並び替える.つまり,不要なデータの場所を探し(LOCATE関数や
FIND関数),そのデータを削除し(DELETE関数),追加すべき場所を
探し(LOCATE 関数やFIND関数),そこにデータを追加(INSERT関数)
することを繰り返す.このとき,操作を行うたびにDISPLAY関数を
呼出し,リストの要素がどのように並んでいるか表示させると
現在の並びが良くわかる.
上記の問題お願いします。番号は上のでいいです。
0719デフォルトの名無しさん
NGNGエスパー気分で書いてみる
ただし,使いこなすにもエスパーが必要な諸刃の剣
#include <stdio.h>
typedef struct _l { struct _l *next; int value; } L;
L*LOCATE(int x, L *list){ for(; x!=0&&list; --x,list=list->next); return list; }
L*FIND(int i, L *list){ for( ; list; list=list->next) if( list->value == i ) break; return list; }
L*LAST(L *list){ for( ;list->next; list=list->next); return list; }
L*INSERT(int x, L*p, L*list){ L*prev,*next;
for(prev=NULL,next=list; x!=0&&next; --x,prev=next,next=next->next);
if(prev){ prev->next=p; }else{ list=p; }; p->next=next;
return list;
}
L*DELETE(L*p, L*list){ L*prev,*cur;
for(prev=NULL,cur=list; cur; prev=cur,cur=cur->next){ if(cur==p){ if(prev){ prev->next=cur->next; }else{ list=cur->next; } break; } }
return list;
}
void DISPLAY(L*list){ for( ;list; list=list->next) printf("%d->",list->value); putchar('\n'); }
0720719
NGNGchar buf[1024]; L*p,*L; int i,x;
while(1){ switch(atoi(getchar())){
case 1://LOCATE(x,L)
fgets(buf, sizeof(buf), stdin); sscanf(buf,"%d %x",&x,&L);
printf("return: %x\n", (int)p=LOCATE(x,L)); break;
case 2://FIND(i,L)
fgets(buf, sizeof(buf), stdin); sscanf(buf,"%d %x",&i,&L);
printf("return :%x\n",(int)p=FIND(i,L)); break;
case 3://LAST(L)
fgets(buf, sizeof(buf), stdin); sscanf(buf,"%x ",&L);
printf("return: %x\n",(int)p=LAST(L)); break;
case 4://INSERT(x,p,L)
fgets(buf, sizeof(buf), stdin); sscanf(buf, "%d %x %x",&x,&p,&L);
printf("return: %x\n",(int)p=INSERT(x,p,L)); break;
case 5://DELETE(p,L)
fgets(buf, sizeof(buf), stdin); sscanf(buf, "%x %x",&p,&L);
printf("return: %x\n", (int)p=DELETE(p,L)); break;
case 6://DISPLAY(L)
fgets(buf, sizeof(buf), stdin); sscanf(buf,"%x",&L);
DISPLAY(L); break;
}}}
0721デフォルトの名無しさん
NGNG昔、ケーリーハミルトンの定理か、ハミルトンケーリーの定理かで、もめたことがあったな。
ちなみに私は、ハミルトンケーリー派。
0722デフォルトの名無しさん
NGNGいきなり課題出されて本見ながらやってるんですが明日に間に合いそうにありません。
どうかよろしくお願いします。
1.キーボードから正の整数nを読み込み、最初のn!個の奇数を加算し、ディスプレイ上に書き出す。例えばnが3ならn!=6で、1+3+5+7+9=36。
2.テストの採点をするプログラムを書く。テストは10問で、1問10点の100点満点。1問ごとに、正解ならば1,不正解なら0を入力する。採点結果を点数だけでなく解答状況もわかるようにファイルに出力する。
0723(・∀・)チンポー!!
NGNG0724デフォルトの名無しさん
NGNG引数として文字列配列stringと整数nを用いること。ここでstringは
文字列型ポインタ配列の先頭アドレスを、nは表示する文字数を意味する
↑の御願いします
0725デフォルトの名無しさん
NGNG0727725
NGNGprint()を作成せよ、との課題では??
#include <stdio.h>
void print(char *string, int n) { printf("%.*s", n, string); }
int main(void) { print("hello, world!\n", 5); return 0; }
0728デフォルトの名無しさん
NGNG0729デフォルトの名無しさん
NGNG初心者ですがよろしくお願いします!!
1)多項式(1+x)のn乗における、xのi乗の項の係数をP(n,i)としたときに、
キーボードからnを入力して、P(n,0) P(n,1) P(n,2)...P(n,n)
を印刷するプログラムを作成しなさい。
そのプログラムを拡張して、nを入力したら、
0からnまでのP(n,i)を画面に表示するプログラムにしなさい
2)2から100までの素数をすべて印刷するプログラムを作成しなさい。
もうダウンでつ
0731719
NGNGエスパーみたいな質問するから,てっきり使えるものと思ったのになぁ。
常人なら,常人でもわかるように宿題の説明をお願いします。
−ESP入ってる? 「ESP Inside(TM)プログラム」
0732デフォルトの名無しさん
NGNGまず1)。
#include <stdio.h>
int p(int a, int b)
{
if(b == 0 || b == a) return 1;
return p(a - 1, b) + p(a - 1, b - 1);
}
int main(void)
{
int n, i, j;
printf("n = ?");
scanf("%d", &n);
/* 拡張前 */
printf("拡張前\n");
for(i = 0; i <= n; i++) printf("P(%d,%d) = %d\n", n ,i, p(n, i));
/* 拡張後 */
printf("拡張後\n");
for(j = 1; j <= n; j++) {
printf("P(%d,i)->", j);
for(i = 0; i <= j; i++) printf(" %d", p(j, i));
printf("\n");
}
return 0;
}
0733デフォルトの名無しさん
NGNG> 2から100までの素数をすべて印刷するプログラムを作成しなさい。
#include <stdio.h>
int is_prime(int n)
{
int i;
if (n < 2)
return 0;
for (i = 2; i < n; i++) {
if (n % i == 0)
return 0;
}
return 1;
}
int main(void) {
int i;
for (i = 2; i < i++) {
if (is_prime(i))
printf("%d\n", i);
}
return 0;
}
0734デフォルトの名無しさん
NGNGとりあえず1。
誤:1+3+5+7+9=36
正:1+3+5+7+9+11=36 だろ。
k個めまでの奇数の総和はk^2になる事は中学生でも分かるが、宿題なんで実直に全部足し算した方がよさげと判断した。
#include <stdio.h>
int main(){
int i,n=0,fac=0,sum=0;
printf("input n: ");
scanf("%d",&n);
for(i=1;i<=n;i++) fac += i;
for(i=0;i<fac;i++) sum += 1 + i*2;
printf("%d\n",sum);
return 0;
}
2はファイルのフォーマットが分からんとどうしようもないのでパス。
0735デフォルトの名無しさん
NGNGdouble b[10]
char c[10]
と配列で定義したものの
[0]〜[9]までのメモリ番地を出力するプログラムってどんなですか?
0736デフォルトの名無しさん
NGNGfor (i = 0; i < 10; i++)
printf("%p\n", &hoge[i]);
0737デフォルトの名無しさん
NGNG>を印刷するプログラムを作成しなさい。
>そのプログラムを拡張して(中略)を画面に表示するプログラムにしなさい
>をすべて印刷するプログラムを作成しなさい。
これは、「印刷」と「画面への表示」の二つを制御させる問題なのかもよ?
0738デフォルトの名無しさん
NGNG0739デフォルトの名無しさん
NGNG0740デフォルトの名無しさん
NGNGscanf("%d",&num);
if( 10 < num)
{
printf("ダメポ");
exit(0);
}
と言う感じで、scanf文で入力したデシマル型の半角数字が、
10以下のみ通る様なプログラムを作りました。
ですが、このscanfの際に「a」等の数字以外の文字を入れると、
オカシナ処理をしてしまいます。
コレを判断するにはどの様な関数を使うべきなのでしょうか?
isdigit等を試したのですが、さっぱり出来ません_| ̄|○
0741デフォルトの名無しさん
NGNGscanfの戻り値をチェック汁
0742デフォルトの名無しさん
NGNG西暦を入力して閏年かどうかを求めるプログラムを作りなさい。
という問題なんですがぜんぜんわからないので教えてください。
0743デフォルトの名無しさん
NGNGでも、何かまだ出来ません。
半角数字以外を入れるとプログラムが止まってしまいます_| ̄|○
とりあえず詳細はこの様な感じなのですが……
for(;;)
{
int j = 10;
int test = 0;
test = scanf("%d",&num);
if(num <= j || test != 0)
{
break;
}
printf("\nもう一度入力し直して下さい −> ");
}
0744デフォルトの名無しさん
NGNGコンパイルはできたのですが、実行がされません
以下のようなメッセージが出てきました。
list in: end of file
apparent state: unit 10 named inpdt
last format: list io
lately reading direct formatetd externalIO
Aborted (core dumped)
どうすればいいのか.......
0745デフォルトの名無しさん
NGNG0746デフォルトの名無しさん
NGNGでも・・・簡潔な返答で・・・プログラム動かないし・・・
分かりません・・・(((゚Д゚;)))) オタスケオタスケ
0747デフォルトの名無しさん
NGNG誰だよ(w
0748デフォルトの名無しさん
NGNGほんとありがとうございます!!
でも最初の#include <stdio.h>あたりなんですが、
現講義段階ではファイル名を書いて、次にclass〜って書き方をしてる
状態なので、ちょっと分らないです(すいません…)
0749735=746
NGNG735です。ハイすいませんm
0750デフォルトの名無しさん
NGNG#include<stdio.h>
int year;
printf("年を入れろ。> ");
scanf("%d",&year);
if(year % 4 == 0 && (year%100 != 0 || year%400 == 0) )
printf("%d年はうるう年。",year);
exit(0);
}
キモはif文の条件式。ベン図描いて理解しろ。
4で割り切れる、かつ(100で割り切れない、あるいは400で割り切れる)
年がうるう年。
0751デフォルトの名無しさん
NGNG例) filename aram tmnet
結果) 11110aramtmnet
与えられたプログラムを変更して書く。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(int argc,char *argv[]){
int i;
char a[255],n,*l;
n=strlen(argv[1]);
for(i=0; i<n; i++){
a[i] = '1';
}
a[i+1]= '0';
l=strcat(strcat(a,argv[1]),argv[2]);
printf("%s",&l);
return 0;
}
0752デフォルトの名無しさん
NGNGmain(){
はどうしたよw
0753デフォルトの名無しさん
NGNGint main(int argc, char **argv)
{
char *a;
int l = strlen(argv[1]);
a = malloc(l*2+strlen(argv[2])+2);
memset(a, '1', l);
sprintf(a + l, "0%s%s", argv[1], argv[2]);
printf(a);
return 0;
}
0754デフォルトの名無しさん
NGNG#include<stdio.h>
void main()
{
int c[10]={0} ;
double d[10]={0} ;
char e[10]={0} ;
int i ;
int *pc ;
double *pd ;
char *pe ;
pc=&c[0] ;
pd=&d[0] ;
pe=&e[0] ;
for(i=0 ; i<10 ; i++ )
{
printf("%d " ,pc+i ) ;
printf("%d " ,pd+i ) ;
printf("%d\n" , pe+i) ;
}
自信ねえ……
0755735=746
NGNG一部分抜粋だと意味分からないんです・・・マジです・・・
0756754
NGNG0757754
NGNGvoid main()
{
int c[10]={0} ;
double d[10]={0} ;
char e[10]={0} ;
int i ;
for(i=0 ; i<10 ; i++ )
{
printf("%p " ,&c[i] ) ;
printf("%p " ,&d[i] ) ;
printf("%p\n" , &e[i]) ;
}
頭悪いぞ俺。
>740
fgets() > 数値判定 > atoi()
か?
0758デフォルトの名無しさん
NGNGint main(void)ね。
配列初期化する必要ないね。
0759735=746
NGNGなんか{}内でファイルが終了しました
とエラーが出ますが、自力でも頑張ります。
ウン(;´Д`)ナントカ・・・ナルカナァ・・・???
0760735=746
NGNG} が1つ足りないだけ?でした。
多分そうだと思います。
動きましたので、それ以外は自分でも分かりません
動いたので良しです。有り難う御座いました。
0761デフォルトの名無しさん
NGNG収束判定定数ε=0.00001とする。また計算回数の違いを考察しろ。
もう明日締め切りなんですけどこれって誰か答えおしえていただけませんかね?
0762デフォルトの名無しさん
NGNG0763デフォルトの名無しさん
NGNGニュートン法とかでぐぐるとモロなのが出てくるんですけど。。
0764デフォルトの名無しさん
NGNGまだ解決してなかったのか>>433
0765デフォルトの名無しさん
NGNG初心者なもので分かりません。お願い致します。
0766デフォルトの名無しさん
NGNGint main(void)
{
int a = 1, b = 1;
int i;
for(i = 1; i <= 30; i++)
{
printf("第%d項:%d\n", i, a);
b = a + b;
a = b - a;
}
}
0767765
NGNG有難うございます。配列を使うとどうなりますか?
0768デフォルトの名無しさん
NGNG10行目でエラーが出てしまいます。
関数は値を返すべき(関数 main ) だそうです。
どなたか申し訳ありませんがお願いします。
#include <stdio.h>
main()
{
float a,b,h,s;
printf("a= \n");scanf("%f",a);
printf("b= \n");scanf("%f",b);
printf("h= \n");scanf("%f",h);
s=(a+b)*h/2;
printf("s=%f\n",s);
}
0769デフォルトの名無しさん
NGNG}の前に
return 0;
0770デフォルトの名無しさん
NGNG0771デフォルトの名無しさん
NGNG#include <stdio.h>
int main(void)
{
int array[30];
int a = 1, b = 1;
int i;
for(i = 0; i < 30; i++)
{
array[i] = a;
b = a + b;
a = b - a;
}
for(i = 0; i < 30; i++)
{
printf("第%d項:%d\n", i + 1, array[i]);
}
}
0772768
NGNGありがとうございました。
0773765
NGNGありがとうございます。
最後の方が負の値になってしまうのは やっぱりしょうがないのですか?
しつこくてごめんなさい
0774デフォルトの名無しさん
NGNG30までだったらlongでいけると思う
#include <stdio.h>
int main(void)
{
long array[30];
long a = 1, b = 1;
long i;
for(i = 0; i < 30; i++)
{
array[i] = a;
b = a + b;
a = b - a;
}
for(i = 0; i < 30; i++)
{
printf("第%d項:%d\n", i + 1, array[i]);
}
}
0775デフォルトの名無しさん
NGNGprintf("第%ld項:%ld\n", i + 1, array[i]);
0776anm7935
NGNGSQLのデータ取得について教えて頂けないでしょうか。
宜しくお願いします。
T_NYUKIN(テーブル名)
CRE_YMD(作成日)SEIKYU_NO(請求番号)TOKUI_CD(得意先コード).............
上記のテーブルからCRE_YMD(作成日)を取得してSYSDATEで今日の日付と比較して昨日までの
日付がCRE_YMD(作成日)に入っていれば取得T_NYUKINの行全体を取得してファイルに出力するように
したいのですが、下記の条件式でためしても上手くいきませんでしたどのように改良すれば良いでしょうか。
SQL[0]='\0';
sprintf(SQL,"SELECT CRE_YMD,SEIKYU_NO,TOKUI_CD,NYUKIN_YMD,NYUKIN_KG, KESSAI_YMD"
"FROM T_NYUKIN WHERE CRE_YMD < '%s',SYSDATE");
ORASetPTable(defp,CRE_YMD,SEIKYU_NO,TOKUI_CD,
NYUKIN_YMD,NYUKIN_KG,KESSAI_YMD,NULL);
iFlag = ORASelect(handle,NULL,defp,SQL);
if(iFlag==-1 || iFlag==0){
/* エラー処理2(11) */
writeLogFile(logfp, PAYMENTSELECT,'ファイルの取得に失敗');
/* ログテーブル書き込み */
strcpy(Link_Status,FAILURE);
sprintf(GET_CNT,"%d",iRecCnt);
LinkTable("S",handle,Link_Status,PUT_CNT,GET_CNT);
ORACommit(handle);
return FALSE;
}
0777デフォルトの名無しさん
NGNG時刻x時y分のdy分後の時間を求める関数
void spend (int& x,int& y,int dy) {/*・・・・・・・・・・・・・・*/}
を作成せよ。なお時刻の表現は24時間制であるものとする。したがって
23時59分の2分後の時刻は0時1分とすること。
よろしくお願いします。
0778デフォルトの名無しさん
NGNGconst int allday = 24 * 60;
void spend(int &x, int &y, int dy){
int m = (x * 60 + y + dy) % allday;
x = m / 60;
y = m % 60;
}
0779デフォルトの名無しさん
NGNGすばやい回答ありがとうございました。
0780デフォルトの名無しさん
NGNG0781デフォルトの名無しさん
NGNG{
if (*s) { f(s+1); putchar(*s); }
}
main()
{
char buf[256];
fgets(buf, sizeof buf, stdin);
f(buf);
}
0782デフォルトの名無しさん
NGNGおいおい,宿題スレでORACLEかよ(w
0783デフォルトの名無しさん
NGNGtest=scanf(...);
↓
char buf[128];
fgets(buf,sizeof(buf),stdin);
test=sscanf(buf,...);
0784デフォルトの名無しさん
NGNG#include <stdio.h>
typedef struct _l { struct _l *next; int value; } L;
L*LOCATE(int x, L *list){ for(; x!=0&&list; --x,list=list->next); return list; }
L*FIND(int i, L *list){ for( ; list; list=list->next) if( list->value == i ) break; return list; }
L*LAST(L *list){ for( ;list->next; list=list->next); return list; }
L*INSERT(int x, L*p, L*list){ L*prev,*next; for(prev=NULL,next=list; x!=0&&next; --x,prev=next,next=next->next); if(prev){ prev->next=p; }else{ list=p; }; p->next=next; return list; }
L*DELETE(L*p, L*list){ L*prev,*cur; for(prev=NULL,cur=list; cur; prev=cur,cur=cur->next){ if(cur==p){ if(prev){ prev->next=cur->next; }else{ list=cur->next; } break; } } return list; }
void DISPLAY(L*list){ for( ;list; list=list->next) printf("%d->",list->value); putchar('\n'); }
L*CREATE(int i){ L*p=malloc(sizeof(L)); p->value=i; return p; }
int main(){ char buf[1024]; L*p=NULL,*L=NULL; int idx,value,c;
while(1){ printf("1:DISPLAY(), 2:CREATE(value), 3:INSERT(index), 4:LOCATE(index), 5:FIND(value), 6:LAST(), 7:DELETE()\n");
if( (c = getchar()) == EOF ) return 1; fgets(buf, sizeof(buf), stdin);
switch( c - '0' ){
case 1://DISPLAY(L)
printf("DISPLAY\n"); DISPLAY(L); break;
case 2://CREATE(i)
sscanf(buf, "%d",&value); printf("CREATE value:%d\n",value); p = CREATE(value); break;
case 3://INSERT(x,p,L)
sscanf(buf, "%d",&idx); printf("INSERT index:%d\n",idx,value); L=INSERT(idx,p,L); break;
case 4://LOCATE(x,L)
sscanf(buf,"%d",&idx); printf("LOCATE index:%d\n", idx); p=LOCATE(idx,L); break;
case 5://FIND(i,L)
sscanf(buf,"%d",&value); printf("FIND value:%d\n", value); p=FIND(value,L); break;
case 6://LAST(L)
printf("LAST\n"); p=LAST(L); break;
case 7://DELETE(p,L)
printf("DELETE\n"); L=DELETE(p,L); break;
}}}
0785デフォルトの名無しさん
NGNG式の入力はファイルから読み込む。
読込むファイル形式はメモ帳で、以下のような感じ。
例えば、4元方程式で5a+7b+6c+11d=6(以下略)ならば
4.0
5.0 7.0 6.0 11.0 6.0
4.0 6.0 7.0 2.0 15.0
3.0 8.0 5.0 4.0 32.0
7.0 6.0 9.0 13.0 5.0
0786デフォルトの名無しさん
NGNG#include <gmp.h>
int main(void)
{
mpz_t a, b, c, d, e, f;
mpz_init_set_ui(a, 1000000000000UL);
mpz_init_set_ui(b, 2000000000000UL);
mpz_init(c);
mpz_init_set_ui(d, 3000000000000UL);
mpz_init_set_ui(e, 4000000000000UL);
mpz_init(f);
mpz_add(c, a, b);
mpz_add(f, d, e);
mpz_out_str(stdout, 10, c);
printf("\n");
mpz_out_str(stdout, 10, f);
printf("\n");
mpz_add(f, f, c);
mpz_out_str(stdout, 10, f);
printf("\n");
mpz_clear(a);
mpz_clear(b);
mpz_clear(c);
mpz_clear(d);
mpz_clear(e);
mpz_clear(f);
return 0;
}
0787786続き
NGNGwarning: integer constant is too large for "unsigned long"type
warning: large integer implicitly truncated to unsigned type
とでてきて困っています。
どうやったら青天井で数字を扱えるのでしょうか
0788デフォルトの名無しさん
NGNGどうやればいいんでしょう?
プログラム中からcmdを実行させたいんですが。。。
0789デフォルトの名無しさん
NGNGstdlib.h -> system()
0790デフォルトの名無しさん
NGNGなにかインクルードしなきゃいけなかったはずだけどわすれた
コンパイルしたらエラーとしておこってくれると思うから
インクルードせずにコンパイルやってみて
0791デフォルトの名無しさん
NGNG以下のようにして、実行できました。
ありがとうございました。
これから、BCBでランチャー作成に挑戦します。
#include<stdlib.h>
int main(void){
system("cmd.exe");
return 0;
}
0792デフォルトの名無しさん
NGNG計算し合計を返却値(戻り値)で返す関数を作成しなさい。ただしmain関数では適当なデータを初期値代入し、関数を呼び出した後は合計値を出力せよ。
0793デフォルトの名無しさん
NGNG#define MAX 5
int Sum(int[] , int ) ;
void main(void)
{
int num[MAX]={1,2,4,4,5} ;
printf("合計 %d\n" , Sum(num , MAX));
}
int Sum(int num[] , int max)
{
int i , sum=0 ;
for(i=0 ; i<max ; i++ )
sum+=num[i] ;
return sum ;
}
0794デフォルトの名無しさん
NGNG釣りか?コンピュータで工夫もせずに好きなだけでかい
桁数の数を扱えるわけがなかろう。自分で多倍長演算の
ルーチンを組みなさい。
0795デフォルトの名無しさん
NGNG参考とするプログラムが載せられていたのですが、なぜかこのプログラムが動きませんでした。
参考とするプログラムの間違っている部分共々回答よろしくお願いします。
以下参考プログラムと課題内容です。
参考プログラム
ttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1060403548&res=72
スライダークランク参考
ttp://o-kan.web.infoseek.co.jp/page_folder/mecpage_folder/cam03.html
課題
*入力クランクの角度Θを2゜きざみで計算して機構を表示する。
*ピストンの速度と加速度を表示する(速度ベクトルを緑色の水平線、加速度を赤色の水平線で描く)部分も付け加えよ。
よろしくお願いします
ちなみにC言語さっぱりです
0796デフォルトの名無しさん
NGNG問題文などの省きはやめ、エラーなどは適切に書きましょう
全文を書いてしまうか、分かりやすくまとめましょう。
・後になって問題につけたしをするのはやめましょう。
解いてもらっている方に失礼になってしまいます。
入力はどんなデータだ?クランクやピストンの大きさは?その他つっこみ所多すぎ。
0797デフォルトの名無しさん
NGNG1次元Random WalkでN人がそれぞれn歩歩いた時の
止まった点xの分布グラフを求めるプログラムを作りなさい。
入力は歩く人数N、歩数n、左に行く確立p(右はq=1−p)、
乱数の種ISEED
出力はxの平均値、xの標準偏差
グラフィックスは歩くひとの歩いた軌跡(N人分)、
xの分布グラフ(平均値の位置と標準偏差の位置も)
と出ました。
どなたか助けてください。
0798デフォルトの名無しさん
NGNGコンパイルが通らないの?プログラム実行時にエラーが出るの?
どこでどういうエラーが出るのかを詳しく。つかエラー文を書き写せ。
なんとなくヘッダファイルかライブラリが足りないに一票。
0799デフォルトの名無しさん
NGNGたな文字列を生成するプログラムを生成せよ。また、得られた文字列の右か
らn文字を取り出す機能もつけよ。その際次の関数を用いるものとする。
strncpy(str,str2,n)
strlen(str1)
この問題をお願いします。
0800デフォルトの名無しさん
NGNG自分で考えてみたのはこんなんですがエラー10個も出ましたorz。
情けない自分にどうか知恵を。。。
自分で考えたソースです http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/lounge/file/1074774948_10/test.txt
問題箇所を指摘してもらえるとありがたいです。。
0801デフォルトの名無しさん
NGNG1)numをhyoujiに渡していないのに使ってる
2)karadaの宣言がない
…とまぁ、これだけの訂正でBCCでは動いてくれたが…
エラー見るだけで充分わかる間違いだぞ?
0802デフォルトの名無しさん
NGNG1)staticをつかえば渡さなくても扱えるのかとおもったのですが渡さないとだめなんでしょうか?
習ったばっかで使ってみたもので。。。スミマセン。
2)karadaの宣言は person karada;でいいのでしょうか?
後から気づいてやってみたんですがkaradaの宣言がないとでまして。。。
structで宣言した型で配列は作れるのでしょうか?
質問ばかりでスイマセン。。。
0803デフォルトの名無しさん
NGNG1)staticはある枠の中でその変数が静的である事を表す。
mainの中でstaticな変数があってもmainの外の関数には関係ない。
喪前の言いたいのはグローバル変数とか、その辺だな。
望みの動作をするコードは書けるが、そうすべきではない。使う変数は原則として全て渡すべき。
2)yes。つか実際にやってみれ。
3)可能。つか実際に(ry
0804デフォルトの名無しさん
NGNGありがとうございました。
もうすこし自力で考えて見ます。
0805デフォルトの名無しさん
NGNG>グラフィックスは歩くひとの歩いた軌跡(N人分)、
>xの分布グラフ(平均値の位置と標準偏差の位置も)
こんな説明で組めるかアホ。
0806デフォルトの名無しさん
NGNG0807デフォルトの名無しさん
NGNG>>418に付け足すこと。
int matrix_sweep(MATRIX mat){
int diagonal;
for(diagonal=0; diagonal<mat.rows; ++diagonal){
int row,col;
DATATYPE coef;
coef = mat.array[diagonal][diagonal];
for(col=0; col<mat.cols; ++col)
mat.array[diagonal][col] /= coef;
for(row=0; row<mat.rows; ++row)
if( diagonal != row ){
coef = mat.array[row][diagonal];
for(col=diagonal; col<mat.cols; ++col)
mat.array[row][col] -= coef * mat.array[diagonal][col];
}
}
return 1;
}
int read_data_matrix(MATRIX *mat, FILE *fp){
int row,col;
char buf[1024];
for(row=0; row < mat->rows; ++row){
char *p;
fgets(buf,sizeof(buf),fp);
for(col=0,p=strtok(buf," "); col < mat->cols; ++col,p=strtok(NULL," "))
mat->array[row][col] = (DATATYPE)(p?atof(p):0);
}
return 1;
}
0808807
NGNGint n;
double dn;
char buf[128];
fgets(buf,sizeof(buf),fp);
sscanf(buf,"%lf", &dn);
n = dn;
matrix_init(a, n, n+1);
read_data_matrix(a, fp);
return 1;
}
int main(){
MATRIX mat;
read_data(&mat,fp);
matrix_sweep(mat);
matrix_print(mat);
return EXIT_SUCCESS;
}
0809デフォルトの名無しさん
NGNG「参考とするプログラム」をコンパイルするためのPC環境の作成方法を先生に聞いてこい。
0810デフォルトの名無しさん
NGNGまた、その確率分布、分散も求めよ。
助けて下さいませ。
0811デフォルトの名無しさん
NGNG#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define DICE 6 //サイコロの目の数
#define ROLL 3 //サイコロを振る個数
#define SIZE (DICE * ROLL + 1) //合計値の取り得るサイズ
#define CHECK 10000 //調べる回数
int dice(void)
{return (int)((DICE*1.0)*rand()/(RAND_MAX+1.0)) + 1;}
int main(void)
{
int c, r, i;
int total; //サイコロの合計値
int count[SIZE] = {0}; //それぞれの合計値の回数
srand((unsigned)time(NULL));
for(c=0; c<CHECK; c++)
{
for(r=0, total=0; r<ROLL; r++)total += dice();
count[total]++;
}
for(i=ROLL; i<SIZE; i++)printf("%2d:%d\n", i, count[i]);
return 0;
}
0812デフォルトの名無しさん
NGNGこのとき、2つのファイル名は各自で指定できるものとせよ。
を おながいすます orz
0813デフォルトの名無しさん
NGNG0814デフォルトの名無しさん
NGNGcygwin をソース込みでインスコして cp のソースをコピれ。
0815デフォルトの名無しさん
NGNG移すとなると写した上で元のファイルを消さなきゃならんのか。少し手間が増えるなぁ…。
勿論、移される先は元々あるファイルで、その中身は消しちゃいけないんだろ?
0816デフォルトの名無しさん
NGNG数を入力して桁数を出力するプログラムをつくれ。
0817デフォルトの名無しさん
NGNG0818デフォルトの名無しさん
NGNG0819デフォルトの名無しさん
NGNG#include <stdlib.h>
int main(int argc, char *argv[])
{
FILE *fin, *fout;
char buf[1024];
if (argc != 3)
fprintf(stderr, "input error\n"), exit(1);
if ((fin = fopen(argv[1], "r")) == NULL)
fprintf(stderr, "file open error\n"), exit(1);
if ((fout = fopen(argv[2], "w")) == NULL) /*追加なら"a"*/
fprintf(stderr, "file create error\n"), exit(1);
while (fgets(buf, sizeof buf, fin) != NULL)
fputs(buf, fout);
fclose(fin);
fclose(fout);
/*元のファイル消すならremove(argv[1])*/
return 0;
}
0820デフォルトの名無しさん
NGNG>sprintf(SQL,"SELECT CRE_YMD,SEIKYU_NO,TOKUI_CD,NYUKIN_YMD,NYUKIN_KG, KESSAI_YMD"
>"FROM T_NYUKIN WHERE CRE_YMD < '%s',SYSDATE");
↑
「TO_DATE(」が抜けているのは仕様か?
0821デフォルトの名無しさん
NGNG0822デフォルトの名無しさん
NGNG第二引数で指定されたファイルへ書き出す。
�Acat コマンドと同様のプログラムを書け。
引数なし→stdinからstdoutへコピー
引数あり→引数で指定されたファイル全てをstdoutへコピー
�B �@のプログラムと同様であるが、行単位で文字列を逆順にする。
�C �Bと同様であるが、ファイル全体で文字列を逆順にする。
0823812
NGNG「移す」じゃなく「写す」ですた 失礼しますた orz
ですから元のファイルは残ってて、例えばt1.textの内容がt2.textにコピーされる
というプログラムなのですが、、、
0824デフォルトの名無しさん
NGNG0825デフォルトの名無しさん
NGNG>>819のじゃだめか?
0826795
NGNG問1:教科書○○ページの問題を解け
問2:問1のモデルにおいて>>795を解け
もうしわけありませんでしたみなさん
何やってるんだ自分_| ̄|○|||
改めて必要なものを追加して書き込ませていただきます
課題
*入力クランクの角度Θを2゜きざみで計算して機構を表示する。
*ピストンの速度と加速度を表示する(速度ベクトルを緑色の水平線、加速度を赤色の水平線で描く)部分も付け加えよ。
動節b(節AB)上の点Aは原点Oを中心に半径OAの円の軌跡Saに沿って反時計回りに等速度10m/sで静止節dに対して運動し、更に節c(スライダー)の中心点Bは節d上を直線の軌跡Sbに沿って運動している
節OA=60mm、節AB=200mm
∠AOB=30゜の時、点Aの加速度=1666.67m/(s^2)、点Bの速度=-6.31m/s、加速度=-1705m/(s^2)、節bの角速度=-43.8rad/s、角加速度=3923.29rad/(s^2)
節OAが円運動をし、節ABのB端にある節cであるスライダーの中心点Bが静止節dの上を移動しています
ttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1060403548&res=72
>>798
for(td=0; td<361*9; td=td+5)
↑の場所まで来ると処理が止まってしまいます
普段はエラーを吐くのですが、↑の場所ではエラーを吐かずにただ止まってしまいます
この問題を作った教授に見せましたが、「知るか」の一言で終了しました
どうか私を見捨てないでください_| ̄|○|||
0827デフォルトの名無しさん
NGNGきっと写し間違えてるんでしょう。ほんとは
>for(td=0; td<361*9; td=td+5)
の後ろに { があったり
>ClearScreen()
の近くに } があったりするんじゃないかな?
0828デフォルトの名無しさん
NGNG1行毎に文字列が1つかかれているstring.datというファイルから文字列を1行ずつ順に取り出し、文字列を作成するプログラムを作ってみました。これで、やっていることはあっていますか?
#define MAXCHAR 1024
#define FILENAME "./string.dat"
void strngets(char *get_str, char *b_str, int n){
char *str; int len=0;
len = strlen(b_str);
str = &b_str[len-n];
strncpy(get_str,str,n);
*(get_str+n)='\0';
}
void stradd(char *a_str, char* b_str){
char *str; int n=0;
static int l=0;
str = a_str+l;
n=strlen(b_str);
b_str[n-1]='\0';
l+=n-1;
strncpy(str,b_str,n);
}
0829デフォルトの名無しさん
NGNG一度に書き込めなかったので分けて書き込みました。見終ったら828とこれは削除してもいいです。
void main(void){
char *str,str1[MAXCHAR],str2[MAXCHAR],str3[MAXCHAR];
FILE *fp;
printf("(1)\n");
//ファイルから複数の文字列を配列に読み込み読み込んだ順に文字列を連結させ新たな文字列を生成する
if((fp=fopen(FILENAME,"r"))==NULL){
printf("can't open file!!\n");
exit(-1);
}
while(fgets(str2,MAXCHAR,fp)!=NULL){
stradd(str1,str2);//文字列str1の右に文字列str2を連結する
}
printf("(2)\n");
strngets(str3,str1,6);//文字列str1の右から6文字を取り出し文字列str3に格納する
}
0830デフォルトの名無しさん
NGNGおい,そりゃ度数分布の表示だぞ?
問題は確率分布と分散だろ(w
0831デフォルトの名無しさん
NGNG暗号化する関数 short encode(short)というののつくり方を教えて下さい
0832デフォルトの名無しさん
NGNG0833デフォルトの名無しさん
NGNGshort encode(short sh){
union {short sh; char c[2];} x, y;
x.sh = sh;
y.c[0] = x.c[1];
y.c[1] = x.c[0];
return y.sh;
}
>>832
入れ替えが暗号化なんだと思われ。
0834デフォルトの名無しさん
NGNGどうもありがとうございます、暗号化は言われてる通り入れ替えのことだと思います
0835デフォルトの名無しさん
NGNG煽りは来ないでいいよ
0836デフォルトの名無しさん
NGNG>>824は正論っぽいけど
煽りにマジレス カコワル(ry
0837デフォルトの名無しさん
NGNG0838デフォルトの名無しさん
NGNGまる1、まる2、まる4の解答を載せといた。
ttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=97&fi=no
0839デフォルトの名無しさん
NGNG・・・お助けください
0840786=787
NGNG#include <gmp.h>
と書いているのですが
すいません言葉足らずでした
gmpライブラリを用いて
数兆の数の和をプログラムに求めさせたいんです。
0841デフォルトの名無しさん
NGNGchar *moji_renketu(char *str1, const char *str2)
{
sprintf(str1, "%s%s", str1, str2);
return str1;
}
0842デフォルトの名無しさん
NGNG{
char *p = to + strlen(to);
while (*p++ = *from++);
return to;
}
0843デフォルトの名無しさん
NGNGsprintf(str1, "%s%s", str1, str2);
↑ ↑
そもそもエスケープシーケンスが表示できなくなるから同じではない。
0844デフォルトの名無しさん
NGNGはぁ?なんか勘違いしてない?
0845843
NGNG0846デフォルトの名無しさん
NGNGmpz_set_str(a,"1000000000000",10);
0847デフォルトの名無しさん
NGNGありがとうございます
これで千兆の乗算とかできそうです。
ほんとにうれしいです
0848デフォルトの名無しさん
NGNG0849デフォルトの名無しさん
NGNG0850デフォルトの名無しさん
NGNG>>822
0851デフォルトの名無しさん
NGNG→>>838
�Bの答えは多分このスレを捜せばありそう
>>826
→>>827
きっと他にもいろいろ写し間違えてる
Line()の引数とか
0852デフォルトの名無しさん
NGNG速度に+-があるけど,基準もなしに+-付けてどうするんだ?
0853デフォルトの名無しさん
NGNG神様、お願いします
0854デフォルトの名無しさん
NGNG後,課題の文 と その下にある説明 とで用語が一致してない。
入力クランク=OA???
ピストンはBについてるスライダc???
算出可能な余計な数値ゴテゴテつけるより,もっと状況をちゃんと説明しろ。
0855デフォルトの名無しさん
NGNG文字列中の文字の順列?
それとも,一行1文字列で複数行読み込んで行の順列?
0856r
NGNGnPn?
0857デフォルトの名無しさん
NGNGvoid perm1(char *s, int i)
{
char *p = s + i, t, *c = p;
int len;
if (!*p) {
puts(s);
return;
}
for (; *p; p++) {
t = *p;
*p = *c;
*c = t;
perm(s, i + 1);
}
p = s + i;
len = strlen(p + 1);
t = *p;
memmove(p, p + 1, len);
p[len] = t;
}
void perm(char *s)
{
perm1(s, 0);
}
0859853
NGNGここにあるんですけど、ぜんぜんわかりません
0860デフォルトの名無しさん
NGNGヽ( ´∀`)ノ <ぬるぽぬるぽ
(へ ) ぬるぽ
ヽ( ´∀`)ノ <ぬるぽぬるぽ
(へ ) ぬるぽ
ヽ( ´∀`)ノ <ぬるぽぬるぽ
(へ ) ぬるぽ
ヽ( ´∀`)ノ <ぬるぽぬるぽ
(へ ) ぬるぽ
( ´∀`)ノ <ぬるぽぬるぽ
(へ ) ぬるぽ
ヽ( ´∀`)ノ <ぬるぽぬるぽ
(へ ) ぬるぽ
ヽ( ´∀`)ノ <ぬるぽぬるぽ
(へ ) ぬるぽ
ヽ( ´∀`)ノ <ぬるぽぬるぽ
(へ ) ぬるぽ
nurupoぬるぽ
nurupoぬるぽnurupoぬるぽnurupoぬるぽnurupoぬるぽ
nurupoぬるぽnurupoぬるぽnurupoぬるぽnurupoぬるぽ
nurupoぬるぽnurupoぬるぽnurupoぬるぽnurupoぬるぽnurupoぬるぽnurupoぬるぽ
nurupoぬるぽnurupoぬるぽnurupoぬるぽnurupoぬるぽnurupoぬるぽnurupoぬるぽ
nurupoぬるぽnurupoぬるぽnurupoぬるぽnurupoぬるぽnurupoぬるぽnurupoぬるぽ
0861デフォルトの名無しさん
NGNGAABBB だったら?
0863デフォルトの名無しさん
NGNGパネルを開いたときそのパネルが何も無い場合(1〜8、爆弾以外)
周りの何も無いパネルを開かせる動作がわかりません。
アルゴリズムでも良いのでお願いします。
0864デフォルトの名無しさん
NGNG0865デフォルトの名無しさん
NGNG自分を中心に周りをめくる処理を、再帰的にやっていくんだろうな。
0866デフォルトの名無しさん
NGNGキーボードより、AとSキーが同時に押された時、「うんこ」と
表示されるプログラムを作成せよ。
なお、Aのみもしくは、Sのみの入力では「ちんこ」と表示すること。
0867デフォルトの名無しさん
NGNG0868デフォルトの名無しさん
NGNGWindowsとかOS固有ならあるけどな。
0869857
NGNGperm(s, i + 1);
は
perm1(s, i + 1);
の間違いでした。
ソース全体を貼っときます。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=98
0870デフォルトの名無しさん
NGNGどなたか教えてください。
課題
データに含まれるビットのうち、最上位にあるものをMSB(Most Significant Bit)
最下位にあるものをLSB(Least Significant Bit)と言う。我々の使用しているC言語
では整数型データeは32ビットであるので、eのMSBをb31,eのLSBをb0であらわす事にする。
e=b31:b30:b29:...:b2:b1:b0
eに値が読み込まれた時、ビットの値を上位から順に調べてゆき、はじめて1になるビット
のビット名を表示するプログラムを作成しなさい。
0871デフォルトの名無しさん
NGNG未テストですけど。
for (i = 31; i >= 0; --i) {
if (e & (1 << i)) {
printf("b%dではじめて1になりました。\n", i);
break;
}
}
0872870
NGNG試してみます!
0873870
NGNGvoid print_bin (unsigned int n)
{
unsigned int mask=0x8000000;
while(mask){
printf("%1d",mask&n ? 1:0);
mask>>=1;
}
printf("\n");
}
main()
{
int i,n;
printf("値を入力\n");
scanf("n=%d\n",&n);
print_bin(n);
for (i = 31; i >= 0; --i) {
if (n & (1 << i)) {
printf("b%dではじめて1になりました。\n", i);
break;
}
}
}
0874870
NGNG10
0000100100000010000111101100
b23ではじめて1になりました。
Console>> 何かキーを押すと終了します。
となりました。どこか間違っていますか・・。何度も申し訳ありません。
0875デフォルトの名無しさん
NGNGscanfと入力が一致してない。
0876デフォルトの名無しさん
NGNG0877デフォルトの名無しさん
NGNG>scanf("n=%d\n",&n);
を
printf("n=");
scanf("%d\n", &n);
に分割しろってこと
0878877
NGNGn=10
みたいに「n=数字」って入力する
0880デフォルトの名無しさん
NGNG自分で作ったプログラムなんですが、スタックメモリが足りないらしく、エラーが起こります
プログラムを変えないでそのまま実行したいので、スタック領域の増やし方を教えてくださいおねがいします
WindowsXP Home
MS VC++6.0で作成したプログラムです。
0881870
NGNGn=10
10
0000000000000000000000001010
b3ではじめて1になりました。
Console>> 何かキーを押すと終了します。
となりましたが、数値(上の場合10)を2度入力しなければなりませんでしたが
どこを直せばよいでしょうか?お手数掛けてすみません。
0882デフォルトの名無しさん
NGNGの\nを消せばいいのかな。
0884デフォルトの名無しさん
NGNG0885デフォルトの名無しさん
NGNG[プロジェクト][設定]の[リンク]タブ開いて、カテゴリを[アウトプット]にする。
で、スタックアロケーションの予約のとこに必要な分を入力。C形式の十六進表記可。
まぁ正直、プログラムの構成を見直すことをオススメするが…
0887デフォルトの名無しさん
NGNG#define BBB __CCC(D)
#else
#define BBB __CCC(D)
#endif
すいません。これはどういう意味でしょうか?
0888デフォルトの名無しさん
NGNG再帰コールはマップの広さと爆弾の過密によっては深くなりそうなので、
使わない方がいいかも。
1. std::set型で位置データの集合を格納するコンテナsを用意する。
2. sに、開きたい位置を挿入する。
3. sから位置pを1つ取り出し、取り出した位置pはsから削除する。
4. 位置pを開く。
5. 位置pの周囲に爆弾が無いなら、pの周囲8箇所のうち、開いていない位置をすべてpに挿入する。
6. sが空でないなら、3へ戻る。
7. 終了
0889888
NGNG5. 位置pの周囲に爆弾が無いなら、pの周囲8箇所のうち、開いていない位置をすべてsに挿入する。
0890デフォルトの名無しさん
NGNGプリプロセッサ。
「プリプロセッサ 入門」とかでぐぐるといい感じの解説が見つかった。
0891デフォルトの名無しさん
NGNG複数の処理系で使うときで、処理系依存のコードがあるときには#ifdefを使う。
#ifdef __ENGLISH__
printf("Hello how are you?");
#define BBB __CCC(D)
#else ifdef __JAPANESE__
#define BBB __CCC(D)
printf("こんにちわ。ごきげんいかが");
#endif
って感じだな。
0892デフォルトの名無しさん
NGNG0893デフォルトの名無しさん
NGNGたとえばCドライブTESTというフォルダがあったときは
c:\\test\\test.txt
のようにしてできたのですが、
TESTというフォルダがない場合上記の方法ではできませんでした・・・
当方コンパイラはBCC++を使用しております。
0894デフォルトの名無しさん
NGNGできれば宿題のみにしていただけるとありがたい。
0895デフォルトの名無しさん
NGNG標準Cではディレクトリを作成する手段は標準ライブラリに含まれなかった。
よって、環境依存なので環境のスレで質問するべし。
0896デフォルトの名無しさん
NGNGC言語なら俺に聞け!
http://pc5.2ch.net/test/read.cgi/tech/1085806791/
で待ってるYO!
0897へたれ初心者
NGNGax^2+bx+c=0
の解を計算するプログラムを作ってください。その際,
a=0の場合や重根の場合などを場合分けして答えを求めるようプログラムを工夫.
(i)a=0のとき,
x=-c/b
(ii)a≠0のとき, 判別式
D=b^2-4ac
を計算。
(ii)-1 D=0のとき(重根)
x=-b/2a
(ii)-2 D>0のとき(実根),
-b±√D
X= −−−−−
2a
(ii)-3 D<0のとき(複素根),虚数単位iを用いて
-b± i √-D
x= −−−−−−
2a
という問題です。if文と算術関数を使え、とか虚数のiは表示されないから
printf文で自分でくっつけろとか色々指示されたんですが、全然わかりません。
どなたか助けて下さい!
0898デフォルトの名無しさん
NGNG#include <stdio.h>
#include <math.h>
int main()
{
double a,b,c,D;
char buf[256];
各係数の取得
printf("a?"); fgets(buf,sizeof(buf),stdin); a = atof(buf);
printf("b?"); fgets(buf,sizeof(buf),stdin); b = atof(buf);
printf("c?"); fgets(buf,sizeof(buf),stdin); c = atof(buf);
if(a == 0.0){//1次式の場合
printf("x = %f\n",-b/c);
}else{//2次式の場合
D = b*b - 4*a*c;//判別式の計算
if(D > 0){//判別式が正のとき=>普通の解の公式
printf("x = (%f,%f)\n",(-b+sqrt(D))/(2*a),(-b-sqrt(D))/(2*a));
}else if(D == 0){//判別式が0のとき=>重根
printf("x = %f\n",-b / (2*a));
}else{//判別式が負のとき=>解は複素数
printf("x = (%f%+fi,%f%+fi)\n",-b/(2*a),sqrt(-D)/(2*a),-b/(2*a),-sqrt(-D)/(2*a));
}
}
return 0;
}
0899デフォルトの名無しさん
NGNGそこまでわかっといて何がわからんかがわからん
>898
fgets使うなら、atofでエラーがでないようにしろよ……
0900デフォルトの名無しさん
NGNG>895が読めないのか?
0902io
NGNGif(b!=0.0) printf("x = %f\n",-c/b);
if (c = 0.0) printf("任意\n");
else printf("なし");
こんな感じだろ。
0903902
NGNGif (a==0.0){
if(b!=0.0) printf("x = %f\n",-c/b);
else if (c = 0.0) printf("任意\n");
else printf("なし");
0904902
NGNGif (a==0.0){
if(b==0.0){
if (c = 0.0) printf("任意\n");
else printf("なし");
} else printf("x = %f\n",-c/b);
0905902
NGNGスレ汚しすまん。
0907デフォルトの名無しさん
NGNGニュートン法という高級なのもあるらしい。
#define f(t) (a * t * t + b * t + c)
/* f(x) = a * x * x + b * x + c */
/* ya, yb (異符号) は 軸のx座標とそこからの相対距離とするといい模様 */
double hoge(double a, double b, double c, double ya, double yb)
{
double eps = 0.000001;
double w, x;
x = 0;
if ( f(ya) * f(yb) < 0.0) {
if (ya != yb) {
if (ya > yb) {
w = ya;
ya = yb;
yb = w;
}
while (fabs(yb - ya) > eps) {
x = (ya + yb) / 2.0;
if (f(x) == 0.0)
break;
if (f(ya) * f(x) > 0.0)
ya = x;
else
yb = x;
}
}
}
return (x);
}
0908893
NGNG0909へたれ初心者
NGNGここはfgetsでなくてscanfでも平気ですよね?
ご苦労様でした。
0910デフォルトの名無しさん
NGNGを作りたいです。例えば123なら1+2+3の計算をして6と表示する。
桁数は決まっていない。お願いします。
0911デフォルトの名無しさん
NGNG#include <stdio.h>
int main() {
int i = 0;
char *p,buf[80];
p = buf;
gets(buf);
while(*p != '\0') i += *p++ - '0';
printf("%d\n",i);
return 0;
}
0912デフォルトの名無しさん
NGNGint x[N]; // int が32ビットなら N は 10 かな。
int n = 何らかの方法で正整数を入力
int i = 0;
for(; n != 0; ++i, n/=10) x[i] = n % 10;
in sum = 0;
while(i != 0){ --i; sum += x[i]; }
0913デフォルトの名無しさん
NGNG>ここはfgetsでなくてscanfでも平気ですよね?
やめとけ
>ご苦労様でした。
無礼者
0914デフォルトの名無しさん
NGNG>無礼者
そうだな。
労をねぎらう所じゃなくって感謝の気持ちを(あるなら)伸べる所だ。
>>909にチョメ。
0915デフォルトの名無しさん
NGNGさすがにゲッツはやめようぜ。
0916デフォルトの名無しさん
NGNG0917デフォルトの名無しさん
NGNGアスキーコード表の体裁は、特別見にくくなければ自分なりに工夫して
表示させることになっています。
余裕があれば「あ〜ん」「ア〜ン」の50音のアスキーコードも表示する
ようにしなさいということでした。
よろしくお願いします。
0918デフォルトの名無しさん
NGNG0919デフォルトの名無しさん
NGNG#include <stdio.h>
#include <ctype.h>
int main() {
unsigned char c = '\0';
printf(" 0123456789ABCDEF");
while( c <= 0x7f ) {
if( c % 16 == 0) printf("\n%X ",c / 16);
putchar(isprint(c) ? c : ' ');
c++;
}
return 0;
}
工夫の方は自分でやっとくれ。
0921デフォルトの名無しさん
NGNG#include<math.h>
double pex(double v){
double m,g,s,r,ro,h,pa,pao,pex,pr,cd,cl;
m=4240;
g=9.81;
s=16.55;
ro=1.225;
r=1.225;
pao=(-0.0192*pow(v,2)+4.24*v+378)*1000;
pa=pao*pow(r/ro,1.4);
cl=2*m*g/(r*s*pow(v,2));
cd=0.03+0.0454*pow(cl,2);
pr=r*pow(v,3)*s*cd/2;
pex=pa-pr;
return pex; }
0922921
NGNGdouble va,vb,vn;
while(pex(va)*pex(vb)>0){
printf("Va=");
scanf("%lf",&va);
printf("Vb=");
scanf("%lf",&vb); }
do{
vn=va-pex(va)*(va-vb)/(pex(va)-pex(vb));
printf("Vn=%lf\nPex(Vn)=%lf\n",vn,pex(vn));
if(pex(vn)*pex(va)>0){
va=vn;
pex(va)=pex(vn); ←
}
else{
vb=vn;
pex(vb)=pex(vn); ←
}
}while(fabs(pex(vn))>0.1);
printf("最大水平速度Vmax=%lf",vn);
return 0;
}
上の←のとこで「左辺値が必要」とエラーがでるのですが誰か解決策を
お願いします。
0923デフォルトの名無しさん
NGNG>pex(va)=pex(vn);
って何がしたいの?
0924デフォルトの名無しさん
NGNG自信がないですがどうかよろしくおねがいします。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/lounge/file/1074774948_11/code.txt
0925デフォルトの名無しさん
NGNGそれでいんじゃね?
(pK+x)->age を pK[x].age にしたほうが分かりやすいと思うけど。
0926デフォルトの名無しさん
NGNG構造体へのポインタからメンバにアクセスするには->を使うと参考書に書いてあったので->を使ったんですが.でもできるんですね。
->を使うと便利と書いてありますが.とくらべてどう違うのでしょうか・・・?
また構造体へのポインタからメンバにアクセスするときに.を使っても問題ないのでしょうか?
質問が多くてスイマセン。
0927デフォルトの名無しさん
NGNGp->testと(*p).testはほぼ同じ意味。
0928デフォルトの名無しさん
NGNG論理を実現するに、適当な方を選べばよいのでは?
前者はポインタpKからx離れた構造体のメンバageで、
後者は配列と見做したpKの要素xのメンバageって感じで。
0929デフォルトの名無しさん
NGNGこう書くと,"."使って構造体メンバにアクセスするのは面倒。
"->"の方が便利。
for(Person* p=pK; p<pK+rupu1; p++)
{
cout << p-pK+1 << "番目の人のデータは" << "年齢" << p->age << "身長" << p->height << "体重" << p->weight << "です。\n";
}
0930デフォルトの名無しさん
NGNGint main(void){
int m1,m2,c1;
m1=mkdir("test-dir",0700);
printf("m1=%5d\n",m1);
c1=chdir("test-dir");
printf("c1=%5d\n",c1);
m2=mkdir("test-dir",0700);
printf("m2=%5d\n",m2);
}
このプログラムの機能を教えて下さい。
また複数回実行した場合 m1、m2の値が変化する理由を教えて下さい
0931デフォルトの名無しさん
NGNGてください.
#include<iostream.h>
void maxmin( int *, int, int*, int*);
void main( void){
int i, max, min, a[10];
i=0;
while( i < 3 ){
cout << i+1 << "番目のデータ入力";
cin >> a[i];
i++;
}
maxmin( a, 10, &max, &min);
cout << "最大=" << max << " 最小=" << min;
}
void maxmin(int *a,int n,int *mx,int *mn){
//埋めていただきたいところ
}
というものです。
よろしくお願いします。
0932デフォルトの名無しさん
NGNG・問題を書き写すときは正確に。
・環境を明記することも忘れずに。
mkdir()はディレクトリを作成する関数と思われ。
chdir()はディレクトリ(カレントワークディレクトリ、作業ディレクトリなど)を移動する関数と思われ。
m1、m2にはそれぞれmkdir()関数の戻り値が入るが、それはmkdir()関数の実行結果だと思われ。
0933デフォルトの名無しさん
NGNGvoid maxmin(int * a, int n, int * mx, int * mn)
{
if (n<= 0) {
return;
}
*mx = a[0];
*mn = a[0];
for (unsigned ic = 1; ic < n; ++ic) {
if (a[ic] > *mx) {
*mx = a[ic];
}
if (a[ic] < *mn) {
*mn = a[ic];
}
}
}
0934デフォルトの名無しさん
NGNGunsignedよりsize_tの方が適切かと
0935デフォルトの名無しさん
NGNGお願いします。
0936デフォルトの名無しさん
NGNGint mid(int a, int b, int c)
{
return (a + b + c) / 3;
}
0937デフォルトの名無しさん
NGNGint mid(int a, int b, int c)
{
if(b<a && a<c)return a;
if(a<b && b<c)return b;
return c;
}
0938デフォルトの名無しさん
NGNGif (((a > b)&&(a < c))||((a > c)&&(a < b))) return a;
else if (((b > a)&&(b < c))||((b > c)&&(a < a))) return b;
return c;
}
0939デフォルトの名無しさん
NGNG>936は平均値を求めている。
>937は条件が足りない。
>938がまぁ無難なところやね。
私が書くと
int mid(int a, int b, int c)
{
if (a > b && a < c || a < b && a > c) {
return a;
}
if (b > a && b < c || b < a && b > c) {
return b;
}
return c;
}
になるがな。
0940デフォルトの名無しさん
NGNG0941デフォルトの名無しさん
NGNGありがとうございました。
0942デフォルトの名無しさん
NGNGガソリン量をマイナスで入れてもbuyが実行されマイナスで入力していないナンバーもマイナスで表示されるしガソリン量はおかしな表示で出てくるし。。。
クラスのメンバ関数内ではグローバル関数は使用できないんですかね。。。
↓コードです
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/lounge/file/1074774948_13/code.txt
0943デフォルトの名無しさん
NGNGグローバル変数 handan は誰も値をセットしていないようだよ?
Car::setNumGas() のローカル変数 handan には値が入ってるようだけど。
つかグローバルやめれ。
0944デフォルトの名無しさん
NGNGCar::setNumGas()のhandanはローカル扱いになっているんですか、気づきませんでした。
グローバル変数で扱うには::を使用するみたいですが::handan = 1;でもint ::handan = 1;でもエラーが出るのでどうすればグローバル変数handanに1を入れることができますか?
グローバル使わなければ簡単にできるとおもいますがグローバルを使う練習を兼ねてやっておきたいので。。
0945デフォルトの名無しさん
NGNG文字列str内の全ての数字文字を削除する関数
void del_digit(char str[ ])
を作成せよ(たとえば "AB1C9" を受け取ったら、 "ABC" とする)。
わかる人にはくだらない問題のような気もしますが、
お願いします。
0946デフォルトの名無しさん
NGNG使う前に定義(または宣言)白。
0947デフォルトの名無しさん
NGNGvoid del_digit(char str[])
{
int i = 0, j = 0;
while (str[i] != '\0') {
if (isdigit(str[i]))
i++;
else
str[j++] = str[i++];
}
str[j] = '\0';
}
0948デフォルトの名無しさん
NGNGvoid del_digit(char str[ ])
{
char* pw = str;
char* pr = str;
do
{
*pw = *pr;
if( !isdigit( *pr ) )
++ pw;
} while( *pr++ );
}
0949947
NGNG0951デフォルトの名無しさん
NGNGいくらなんでもホントに助かったのならもう少しましな挨拶くらいしておけよ。
#それで何が減るわけでなし。
>>944
グローバル変数なんかの使い方を覚えるよりも先に、
グローバル変数を使わずに問題を解決できるようになる方がいいぞ。
0953デフォルトの名無しさん
NGNG「int handan;」と書くと変数を宣言することになり、外側で宣言されている同じ名前の変数は隠されてしまう。
Car::setNumGas()内で変数handanを宣言しないよう、「int」は削除し、「handan = 1;」とだけ書く。
そしてソース上の、Car::setNumGas()内で変数handanを使用する位置より前で変数handanを宣言しなければ、
「handan」が変数名であることがコンパイラに伝わらない。
よって、グローバル変数handanの宣言をもっと前へ移動する。
これでまともに動作するようになる。
::演算子は名前空間を解決するもの。
例えばCarクラスのstatic変数として「handan」が宣言されていれば、
「Car::handan」と「::handan」で使い分けが可能。
今の場合は不可。
0954デフォルトの名無しさん
NGNGこれでは失礼と言われても仕方ない。
0955デフォルトの名無しさん
NGNG0956デフォルトの名無しさん
NGNGint mainの前にint handan=0;でグローバル変数handanを定義していますがこれではだめなのでしょうか?
0957デフォルトの名無しさん
NGNGだからぁ、コード上で上の方になきゃダメなんだってば。
class Carの定義より上ね。
#つーかグローバル変数やめろや。
0958デフォルトの名無しさん
NGNG勘違いしてました、上の発言無視してください、スイマセン。
0959デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1086612317/
0960デフォルトの名無しさん
NGNG何度も迷惑かけてスイマセン、ようやく正常に動くものが作れました。
グローバル変数めんどうなんであんまり使わないことにします。
修正したコードです
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/lounge/file/1074774948_14/code.txt
0961デフォルトの名無しさん
NGNGたとえば>>939さんとかのコードで
int mid(int a, int b, int c)
{
if (a > b && a < c || a < b && a > c) {
return a;
}
if (b > a && b < c || b < a && b > c) {
return b;
}
return c;
}
比較の部分は
if (c > a && a > b || b > a && a > c) {
のように等符号をそろえたほうが見やすいような
気がするのですが、みなさん939さんのようなスタイル
のひとが多いような気がするのですがなんでですか?
0962デフォルトの名無しさん
NGNGそういうスタイルの人もいるが、漠然と「見やすい」というのは戴けないな。
さて、>>939に替わって答えると、
こっちのスタイルはテストの主体となる変数を左手側に配置するという基準でなされる。
この場合、 a に注目してる間は常に a が左という具合。
ただこの中にも、一次元的な順序を考える場合のみ不等号の向きを右向きに揃えるというような人もいて、
一般的な答えはない、結局スタイルの話になるからな。
0963デフォルトの名無しさん
NGNGどうもありがとうございます。
>こっちのスタイルはテストの主体となる変数を左手側に配置するという基準でなされる。
あっ、なるほど...
>ただこの中にも、一次元的な順序を考える場合のみ不等号の向きを右向きに揃えるというような人もいて
僕はこっちですね
そういや高校(中学?)のとき、2次関数かなんかで同じような問題(書き方)で
迷ったのを思い出しました。
いっぱいコーディングして、いいスタイルを身につけれるようにがんばります。
ありがとうございましたm(__)m
0964939
NGNG>962の言うとおり。
敢えて付け加えるなら、||の両側ともaとb、aとcを較べると言うポリシーもある。
#a > b && a < c || a > c && a < bは避けたと言うわけ。
##まぁ、自分のためであって、他人がそう理解してくれることまでは期待していないが。
0965デフォルトの名無しさん
NGNGキーボードから5人分の年齢身長および体重を繰り返し構文を用いて年齢は1次元配列(age)身長と体重は2次元配列(date)
に読み込み以下の二つの条件を同時に満足するもののデータ(出席番号・年齢・身長・体重)と人数を画面に表示するプログラム
を作成せよ。
条件
1 身長が全員の平均値よりも高い。
2 体重が全員の平均値以下である。
と言う問題なんですが厨房のオレにはさっぱりで
数値や変数の型などは自由で良いみたいなので模範解答みたいのをお願いします。
よろしくお願いします。
0966デフォルトの名無しさん
NGNG0967デフォルトの名無しさん
NGNG0968デフォルトの名無しさん
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]);
}}}
0969デフォルトの名無しさん
NGNG>int tincyo_heikin;
(;´Д`) ハァハァ…
0970デフォルトの名無しさん
NGNG↓
・表示ボタンを押すと入力したものが表示スペースに表示される。
↓
・縦、横の倍数指定して拡大ボタンを押すと拡大
っていう処理が作りたいんだけど……
何倍でもできるようにしたいんですが…
だれか助けてください。
0971デフォルトの名無しさん
NGNG0972デフォルトの名無しさん
NGNGたとえば以下のようなfunc()を繰り返す行うプログラムがあります。
for ( int i = 0; i < 1000; i++ ) {
for ( int i = 0; i < 10000; i++ )
func();
}
このfunc()は関数の場合かなり処理時間がかかってしまいますが、マクロだと速度が1/10ぐらいになります。
そこで、inlineにしてみましたが、関数と全く処理速度が変わりませんでした。
これはなぜなのかわかる方いましたら教えてください。
ちなみに定義は以下のようにしています。( 中身はあってもなくても同じでした )
void func() {}
#define func() {}
inline void func() {}
0973デフォルトの名無しさん
NGNG最適化OFFにしてない?
0974デフォルトの名無しさん
NGNGインライン関数の展開をONにしましたが、全く速度が変わりません。
う〜んどうすればいいんでしょうか。
0975デフォルトの名無しさん
NGNGDebugの状態で inlineを有効にすることはできないんでしょうか。
ものすごく不便;;
0976デフォルトの名無しさん
NGNGデバッグ中にインラインにすることも出来るが。
たが、デバッグし難くなるぞ。
0977デフォルトの名無しさん
NGNGinline指定は,コンパイラへのヒントに過ぎない。
inline展開されない可能性もあると心得よ。
これ以上踏み込んだ,強制指定や変換指定は環境依存。
その開発環境のスレいけば〜?
0978デフォルトの名無しさん
NGNGありがとうございました。
0979デフォルトの名無しさん
NGNGmonaと入力するとanomと出力するプログラム
要するに入力したものを逆の順序で出力するプログラムです。
出来るだけ簡単なプログラムでお願いしたいのですが・・・
時間的にも余裕無く・・・どなたかお願いしますm(;´Д`)m
0980デフォルトの名無しさん
NGNG適当だからあってないと思う。
char* reverse_string(char* str){
char* result;
int i;
result=(char*)malloc(strlen(str)+1);
for(i = 0, int j=strlen(str) ; j >= 0 ; i++, j--) {
result[i] = str[j];
}
result[i] = "\0";
return result;
}
result[]
0981デフォルトの名無しさん
NGNG*result++ = *str--ってことか?
0982デフォルトの名無しさん
NGNG#include <stdio.h>
#include <string.h>
main(){
int i;
char buf[256], *p;
fgets(buf, sizeof(buf) - 1, stdin);
for(p = buf + strlen(buf) - 2; p >= buf; p--)
putchar(*p);
}
0983982
NGNG0984979
NGNG有り難うございました。
でもなんか構文エラーでたり>980殿
関数mainにreturn文が無いと言われました>982殿
0985979
NGNG構造は知らないプログラムの仕方なので良く分かりませんが
完動しているようなので助かりました。有り難うございました。
0986デフォルトの名無しさん
NGNGもしやデバッグ版で公開するつもりか
0987デフォルトの名無しさん
NGNG単一パーセプトロンを使ったやつです。
初期値を変えて学習を行ったときの学習回数と正答率の関係を求めよ。
但し、初期値は非常に小さな値、大きな値に変化させ、学習回数は
各初期値に対して100回とする。
学習パターンは乱数を使って生成する。
次のパターンを認識するパーセプトロンを構成せよ。
http://page.freett.com/sabotenga/c.GIF
重みの更新式:Wi(t+1)=Wi(t)+c*(Te(t)-y(t))*xi(t)
開始
|
ループ1
学習回数だけ繰り返す
|
入力と教師出力を与える
|
出力を計算
|
重みを更新
|
ループ1
|
終了
どうかよろしくお願いします。
0988デフォルトの名無しさん
NGNGまず、問題を明確に記述する訓練をしような。
意味がわからん。以下補足/つっこみ。
(1)
×単一パーセプトロン
○単純パーセプトロン
(2)
正答率ってなんだ?
テスト問題の分布を仮定しないと意味がないぞ。
(3)
学習のアルゴリズムは?これくらい書け。
たぶんBPだろうけど。
(4)
入力層の素子数は?
(5)
Te(・)って何だ?シグモイドか?
(6)
つっこむときりがない…
0989988
NGNGもしかして教師と同じパターンでテストするの?
そうならば、学習後の正答率は100%だ。
100回で学習が収束するかどうかは学習アルゴリズムと入力層の素子数による。
0990988
NGNGすまん。
0991デフォルトの名無しさん
NGNGつーか学習回数が一定なのに「学習回数と正答率の関係を求めよ」って意味不明。
「初期値と」でもこれだけじゃきついものがある上に考察としてはあまり意味がない。
初期値依存性を確認するくらいの意味はあるだろうが
0992987
NGNG学習回数と正答率の関係は10回20回30回…毎にテストさせて、その度に
正答率がどうなるか。ということらしいです。
本人が完全に理解できてない為、ご迷惑をおかけしてすみません…
0993デフォルトの名無しさん
NGNGそれより>>988に答えろ。
素子数も関数もわからないし、
正答率は目的関数(というか誤差)の求め方を提示しないと算出しようがない。
たぶん適当な刻み幅で複数の入力を入れて教師との差の2乗和取るんだろうけど
0994987
NGNGすいません…
(2)
0〜1までの乱数を発生させます。
(3)
修正ヘッブ型アルゴリズム?
(4)
2つです
(5)
Te:教師出力
0995デフォルトの名無しさん
NGNG何だかなあ・・・。
入出力関数は何だ? ロジスティック関数か? 書いてあるだろ。
(2)も情報が足りなさ過ぎる。誤差関数の定義は書いてないのか?(つーか乱数ってマジ?)
(5)も教師出力=>>987の図のものでいいのか? 手抜きして用語だけ書くな。
文字通りにしかかけないのなら問題文全部写せ。
0996988
NGNG読み直すとオレの書き込み穴だらけだ…
>>987
パーセプトロンを扱うってことは学部の実験・演習か大学院ってことかな?
それとも、マニアックな授業?
単純パーセプトロンは数学面では単純だから学部2年までに習う線形代数と解
析学でたいていの答えは出せるよ。そこのところを理解した後だとプログラム
を組むのは簡単だと思う。甘利先生や中野先生の論文を読む必要はない。
馬鹿正直に計算してみ。
君が学部3年以上なら、たぶん理解できる。
0997987
NGNGもう、これが全文なんです…
出題しているのはマニアックな教授です…
0998デフォルトの名無しさん
NGNG0999デフォルトの名無しさん
NGNG1000デフォルトの名無しさん
NGNG10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。