C/C++の宿題を片づけ作戦指令 30代目
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
NGNGプログラミング能力がないにも関わらず授業を取った学生諸君が困り果てている。彼らは、いずれ単位を落とすだろう。
君の任務は持ち込まれる宿題を解き、質問者の窮状を救ったり足下を掬ったりすることだ。
例によって当局は一切関知しないからそのつもりで。
なおこのスレは1000まで達した後自動的に消滅する。
【注意点】 -------------------------------------------------
・問題はしっかりと解いてもらう方にわかりやすいように
問題文などの省きはやめ、全文を書きましょう。
・使用する言語(C/C++)や環境(CUI/ANSIとか
GUI/Windows32bitAPI など)は必ず書きましょう。
・計算問題は必ず数式自体をあげ、どのような計算をするのか
くわしく説明してください。
・エラーは、その行とエラーの詳細を書きましょう。
エラーメッセージが出た場合はそのままコピーしてください。
・後になって問題につけたしをするのはやめましょう。
解いてもらっている方に失礼になってしまいます。
------------------------------------------------------------
【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
http://do.sakura.ne.jp/%7Ejunkroom/cgi-bin/megabbs/lounge/index.html
【歴代スレは>>2-10】
0002デフォルトの名無しさん
NGNG28代目: http://pc5.2ch.net/test/read.cgi/tech/1089974839/
27代目: http://pc5.2ch.net/test/read.cgi/tech/1089448445/
26代目: http://pc5.2ch.net/test/read.cgi/tech/1088860889/
25代目: http://pc5.2ch.net/test/read.cgi/tech/1087929711/
24代目: http://pc5.2ch.net/test/read.cgi/tech/1086612317/
23代目: http://pc5.2ch.net/test/read.cgi/tech/1085149383/
22代目: http://pc5.2ch.net/test/read.cgi/tech/1083050221/
21代目: http://pc5.2ch.net/test/read.cgi/tech/1078157730/
20代目: http://pc5.2ch.net/test/read.cgi/tech/1075217631/
19代目: http://pc5.2ch.net/test/read.cgi/tech/1073566342/
18代目: http://pc5.2ch.net/test/read.cgi/tech/1071407728/
17代目: http://pc5.2ch.net/tech/kako/1070/10704/1070469896.html
16代目: http://pc5.2ch.net/tech/kako/1069/10698/1069837000.html
15代目: http://pc5.2ch.net/tech/kako/1068/10689/1068950713.html
14代目: http://pc5.2ch.net/tech/kako/1067/10671/1067175933.html
13代目: http://pc5.2ch.net/tech/kako/1064/10645/1064541405.html
12代目: http://pc5.2ch.net/tech/kako/1060/10607/1060706382.html
11代目: http://pc5.2ch.net/tech/kako/1058/10582/1058283913.html
10代目: http://pc5.2ch.net/tech/kako/1057/10570/1057070174.html
9代目: http://pc5.2ch.net/tech/kako/1055/10559/1055944101.html
8代目: http://pc5.2ch.net/tech/kako/1055/10550/1055056940.html
7代目: http://pc5.2ch.net/tech/kako/1053/10539/1053963794.html
6代目: http://pc5.2ch.net/tech/kako/1053/10530/1053045530.html
5代目: http://pc5.2ch.net/tech/kako/1051/10515/1051594046.html
4代目: http://pc5.2ch.net/tech/kako/1045/10450/1045074808.html
3代目: http://pc5.2ch.net/tech/kako/1041/10419/1041992392.html
2代目: http://pc3.2ch.net/tech/kako/1039/10397/1039772622.html
宿題手伝いますYO!!: http://pc3.2ch.net/tech/kako/1038/10380/1038024989.html
0003デフォルトの名無しさん
NGNGこの擦れはム板に珍しくネタが洗練されてるな。
0004デフォルトの名無しさん
NGNGイイヨ イイヨ
0005デフォルトの名無しさん
NGNGウ〜ン、発想はオモシロイんだが、AA がないんだよなぁ…
0006デフォルトの名無しさん
NGNG0007デフォルトの名無しさん
NGNG「テキストファイルから2つの整数を読み込み、和、差、積、商、余りを表示し、
結果を別のファイルに書き込むプログラムを作れ」というものです。
よろしくおねがいします。
0008デフォルトの名無しさん
NGNGどんな形式で2つの整数が書いてあるんだ?
たとえば
7 2
とか
7
2
とか色々あるだろ
0010デフォルトの名無しさん
NGNG良くわからないけど,こんな感じ?
#include <stdio.h>
int main(int argc, char** argv)
{
FILE* in = fopen(argv[1], "rb");
FILE* out = fopen(argv[2], "wb");
int a, b;
while(fscanf(in, "%d%d", &a, &b) > 0) {
fprintf(stdout, "wa:%d\nsa:%d\nseki:%d\nshou:%lf\namari:%d\n",
a + b, a - b, a * b, (double)a / b, a % b);
fprintf(out, "wa:%d\nsa:%d\nseki:%d\nshou:%lf\namari:%d\n",
a + b, a - b, a * b, (double)a / b, a % b);
}
fclose(in);
fclose(out);
return 0;
}
0012デフォルトの名無しさん
NGNGなかなかいいな。
0013デフォルトの名無しさん
NGNGprintf()系で%lf使うなボケ。
0015デフォルトの名無しさん
NGNGそう来ると思ったが、%lfと書くメリットはないな。
0016デフォルトの名無しさん
NGNGsscanfのときにdoubleなのにうっかり%fにしてしまうミスを防げる。
0017デフォルトの名無しさん
NGNG0018デフォルトの名無しさん
NGNGテンプレートの例を作るのですが、
#include <iostream>
using namespace std;
//テンプレートの宣言、定義
template <class T>
T max(T x, T y){
return x + y;
}
int main(void){
int a=1, b=3, c;
double d=1.9, e=0.8, f;
//int型での呼び出し
c = max(a, b);
//double型での呼び出し
f = max(d, e);
cout << c << "\n";
cout << f << "\n";
return 0;
}
で、コンパイルができません。
どうしたら、できるのか教えてください。
0019デフォルトの名無しさん
NGNGなんで加算するのにmaxなんだ。
0020デフォルトの名無しさん
NGNG俺んとこではコンパイルできたけど、C++にはmaxって関数が既にあるから
どこかでそのヘッダが組み込まれていて多重定義のエラーになっているんだと思う。
max→Maxだとどうなる?
002113
NGNG>15に同意。
>>16
printf()系とscanf()系の指定子が共通だと思っている時点で大間違い。
微妙に違うところがたくさんあるのだから別々に覚えればいい。
例えば、"%*d"における'*'の意味はそれぞれ全然違う。
>>17
同意。うっかりミスする香具師に限って、「今度から気をつけます」と言うよな。
#その挙句にまたミスをしたときに「気が付きませんでした」と言うわけだ。
##>16がそうかどうかは知らんが。
0022デフォルトの名無しさん
NGNGまずはその間違った名前を何とかしろ。
って書こうとしたら既に>20に書かれていた……_/ ̄|○
0024デフォルトの名無しさん
NGNG・・・・・・まあこの場合、間違ってるとまでは言い切れないが・・・
0025デフォルトの名無しさん
NGNGadd(ition) 加算
0026デフォルトの名無しさん
NGNG学生さんは「俺はうっかりしない」で構わないかもしれませんが、
仕事ではミスは起こりうるものとして防止策、対応策を講じるわけですよ。
難しくて分かりませんかね(´ー`)
0027デフォルトの名無しさん
NGNG>>26は%lf派なのだろうか
0028デフォルトの名無しさん
NGNG0029デフォルトの名無しさん
NGNG27 名前: デフォルトの名無しさん [sage] 投稿日: 04/08/09 15:19
28 名前: デフォルトの名無しさん [sage] 投稿日: 04/08/09 15:29
0030デフォルトの名無しさん
NGNG0031デフォルトの名無しさん
NGNG0032デフォルトの名無しさん
NGNG0033デフォルトの名無しさん
NGNGキーボードから文字列を入力し、配列に保存する
その配列の中の、最初にAまたはBまたはCが出てくる位置(何文字目か)
を返す関数を作成し、その文字の種類によってAならばalpha、Bならばblavo、Cならばcharlie
と表示するプログラムを作れというものです。
よろしくおねがいします
0034デフォルトの名無しさん
NGNG#include <stdio.h>
#define SIZE 256
int abc(char* buf);
int main(void)
{
char buf[SIZE];
fgets(buf, SIZE, stdin);
switch(buf[abc(buf)]) {
case 'A': printf("alpha\n");
break;
case 'B': printf("blavo\n");
break;
case 'C': printf("charlie\n");
break;
}
return 0;
}
int abc(char* buf)
{
int i = 0;
while(buf[i] && buf[i] != 'A' && buf[i] != 'B' && buf[i] != 'C') { i++; }
return i;
}
0035デフォルトの名無しさん
NGNG簡潔なプログラムありがとうございます
0036デフォルトの名無しさん
NGNG「コマンドラインで指定したファイルを読み、その中に出てくるアルファベットの
各文字の文字数をカウントする。カウントした結果を文字種と文字数をメンバとして
持つ構造体に保存する。カウント結果をソートして、たくさんカウントされたものから
順に文字を表示する。」というものです
なお大文字・小文字は同一視して構いません
よろしくお願いします
0037デフォルトの名無しさん
NGNG#include <stdio.h>
#include <ctype.h>
#define SIZE 26
struct Character {
char c;
int count;
};
int main(int argc, char** argv)
{
FILE* in = fopen(argv[1], "rb");
struct Character array[SIZE], tmp;
int c, i, j;
for(i = 0; i < SIZE; i++) {
array[i].c = 'a' + i;
array[i].count = 0;
}
while((c = fgetc(in)) != EOF) { if(isalpha(c)) { array[tolower(c) - 'a'].count++; } }
for(i = 1; i < SIZE; i++) {
tmp = array[i];
for(j = i - 1; j >= 0 && array[j].count < tmp.count; j--) { array[j + 1] = array[j]; }
array[j + 1] = tmp;
}
for(i = 0; i < SIZE; i++) { printf("%c %d\n", array[i].c, array[i].count); }
fclose(in);
return 0;
}
0038デフォルトの名無しさん
NGNGわからないところが解決して助かりました
ありがとうございます
0039デフォルトの名無しさん
NGNG>メーカー側としても嬉しい流れとも取れるわけで、問題になることは普通ありえないです
ゲーム作成者の意図しない結果を導くセーブデータの改造は、ゲームの著作権(同一性保持権)を侵害して
いて違法、と言う判決がある(通称ときメモ高裁判決: http://www.softic.or.jp/YWG/reports/tokimemo2.html )
ので、「まず問題にならない」とか「普通ありえない」といいきれるほどリスクの無い行為ではないよ。
# まあでも、非営利目的の個人を訴えて来るかどうかは疑わしいけど。
004039
NGNG0041デフォルトの名無しさん
NGNG0042デフォルトの名無しさん
NGNG0〜9までの数値をリスト構造のデータ構造(数値はdouble型)で保存し、
0〜9までの数値を昇順につながっているようにする
その状態からさらにキーボードより、0〜9までの実数を1つ読み込み、
数値の順序を乱さないようにリスト内に入力された数値をもつリストの要素を1つ追加する
そしてリストに入っているデータをリストの順に表示するというものです
よろしくお願いします
0043デフォルトの名無しさん
NGNGどっちですか
0044デフォルトの名無しさん
NGNG0045デフォルトの名無しさん
NGNGtypedef struct list{
double value;
struct list* next;
}LIST;
void print(LIST *l){
if(l->next){
printf("%f\n",l->next->value);
print(l->next);
}
}
0046デフォルトの名無しさん
NGNGLIST* temp;
if(!l->next || l->next->value>v){
temp=l->next;
l->next=(LIST*)malloc(sizeof(LIST));
l->next->value=v;
l->next->next=temp;
}
else{
add(l->next,v);
}
}
int main(void){
LIST l;
double d;
l.next=NULL;
while(1){
scanf("%lf",&d);
if(d<0)break;
add(&l,d);
print(&l);
}
}
0047デフォルトの名無しさん
NGNGヒープごと解放されると分かっていても気分が・・・( ´・ω・`)
まぁ良いんだけど・・・
004845
NGNGつい GC のある言語の気分で書いてたよw
void listfree(LIST *l){
if(l->next){
listfree(l->next);
free(l->next);
}
}
int main(void){
LIST l;
double d;
l.next=NULL;
while(1){
scanf("%lf",&d);
if(d<0)break;
add(&l,d);
print(&l);
}
listfree(&l);
return(0);
}
0049デフォルトの名無しさん
NGNG構造体のポインタの使い方がよくわからなかったのですが
このプログラムを参考にして理解できました
ありがとうございました
0050デフォルトの名無しさん
NGNG0051デフォルトの名無しさん
NGNGコマンドラインから指定したファイルを読み込み
ファイル中の各行の文字列をデータとしたリスト構造で、読み込んだ
ファイルを扱えるようにする(リスト構造は双方向を用いる)
読み込んだ後でリストを順方向、逆方向に辿りつつ
データ(各行の文字列)を表示する(両方向とも)
さらにキーボードから指定した行番号の行を削除する
その後再度リストを順方向に辿ってデータを表示するというものです
よろしくおねがいします
0052デフォルトの名無しさん
NGNG一体それの何処が質問なの?
0053デフォルトの名無しさん
NGNG何が分からないかを書いてくれ話はそれからだ
0054デフォルトの名無しさん
NGNGというゲームをなるべく簡単なc言語で作ってください。
おねがいします。
005551
NGNG単方向のリスト構造はなんとかわかるのですが、双方向になると途端に
イメージがつかみにくくなりました。双方向ではどのようにリスト構造を記述
すればよろしいのでしょうか?
疑問点がわかりづらく申し訳ありません・・・
0056デフォルトの名無しさん
NGNGp->next = q;
q->prev = p;
0057デフォルトの名無しさん
NGNGありがとうございます
これを足がかりになんとか作ってみます・・・
0058デフォルトの名無しさん
NGNG|Node 1 ||Node 2 .||Node 3 |
NULL─┼・prev || next・┼┼・prev |
| next・┼┼・prev || next・┼─NULL
└────┘└────┘└────┘
図で描くとこんな感じか?
0059デフォルトの名無しさん
NGNG#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(){
int i, j, money = 500;
srand(time(NULL));
while(money => 0){
printf("所持金 %d円\n[0]グー [1]チョキ [2]パー ", money);
scanf("%d", &i); if(i < 0 || i > 2) i = 0;
j = rand() % 3;
printf("YOU = %s ", i == 0 ? "グー" : (i == 1 ? "チョキ" : "パー"));
printf("COM = %s\n\n", j == 0 ? "グー" : (j == 1 ? "チョキ" : "パー"));
if((i + 1) % 3 == j)
money += 100;
else if((j + 1) % 3 == i)
money -= 100;
}
printf("Game Over\n");
return 0;
}
006059
NGNG#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(){
int i, j, money = 500;
srand(time(NULL));
while(money >= 0){
printf("所持金 %d円\n[0]グー [1]チョキ [2]パー ", money);
scanf("%d", &i); if(i < 0 || i > 2) i = 0;
j = rand() % 3;
printf("YOU = %s ", i == 0 ? "グー" : (i == 1 ? "チョキ" : "パー"));
printf("COM = %s\n\n", j == 0 ? "グー" : (j == 1 ? "チョキ" : "パー"));
if((i + 1) % 3 == j)
money += 100;
else if((j + 1) % 3 == i)
money -= 100;
}
printf("Game Over\n");
return 0;
}
0061デフォルトの名無しさん
NGNGという宿題です。お願いします。
0062デフォルトの名無しさん
NGNG#include <stdio.h>
int main(void) {
int i,j;
scanf("%d,%d",&i,&j);
printf("%d+%d=%d\n",i,j,i+j);
return 0;
}
0063デフォルトの名無しさん
NGNG#include <stdlib.h>
int main()
{
double n1, n2;
char szTemp[256];
printf("Input num[1] > ");
fgets(szTemp, sizeof(szTemp), stdin), n1 = atof(szTemp);
printf("Input num[2] > ");
fgets(szTemp, sizeof(szTemp), stdin), n2 = atof(szTemp);
printf("Input oparator > ");
fgets(szTemp, sizeof(szTemp), stdin);
switch(szTemp[0]){
case '+':
printf("%f + %f = %f\n", n1, n2, n1 + n2);
break;
case '-':
printf("%f - %f = %f\n", n1, n2, n1 - n2);
break;
case '*':
printf("%f * %f = %f\n", n1, n2, n1 * n2);
break;
case '/':
printf("%f / %f = %f\n", n1, n2, n1 / n2);
break;
default:
puts("Unknown operator!");
break;
}
return;
}
0064デフォルトの名無しさん
NGNG0065デフォルトの名無しさん
NGNGreturn; → return 0;
警告出なかったから気づかなかったorz
0066デフォルトの名無しさん
NGNGところで、インデントどうやってるの?
0067デフォルトの名無しさん
NGNG0068デフォルトの名無しさん
NGNGナルホド
0070デフォルトの名無しさん
NGNGどうしても解らなかったら参照されたし。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=203
0072デフォルトの名無しさん
NGNG文字列の前後のスペースを除去する関数
string trim(string);
を作成せよ
0073デフォルトの名無しさん
NGNG#include <iostream>
#include <string>
#include <cctype>
using std::string;
using std::isspace;
string trim (string str)
{
unsigned i = 0, j = str.length();
while (isspace(str[i]))
i++;
while (isspace(str[j]))
j--;
str.resize(j);
return string(str.c_str() + i);
}
int main(void)
{
for (;;)
{
string str;
std::cin >> str;
std::cout << trim(str) << std::endl;
}
return 0;
}
もしisblankがあればisspaceよりもそれを使う方がいい鴨
0074デフォルトの名無しさん
NGNGありがとうございました
0075デフォルトの名無しさん
NGNG宿題は次の通りです。
円の座標データから、最小二乗法により
円の方程式の係数を求める関数を作れ。
円の方程式は、y=(x-a)^2+(y-b)^2
ただし、引数は次のようにする
x[],y[]・・・円の(x,y)の座標データの入っている配列のポインタ
count・・・座標データの数
a・・・円の方程式のaの値
b・・・円の方程式のbの値
お願いします
0076デフォルトの名無しさん
NGNG文字列の結合のプログラムがうまく動きません。
エラーが出て終了してしまいます。
#include <iostream>
#include <string>
using namespace std;
int main(void){
char *str="def";
char *str2=(char *)malloc(128);
int na;
//文字列の結合
str2="abc";
strcat(str2 , str);
cout << str2 << "\n";
return 0;
}
どこがおかしいでしょうか?
0077デフォルトの名無しさん
NGNGstrcat(str2, str);
0078デフォルトの名無しさん
NGNG○ strcpy(str2, "abc");
0079デフォルトの名無しさん
NGNG#include <cstdlib>
#include <cstring>
あたりを入れるべきじゃ?
逆に#include <string> はこのプログラムだと意味ない。
008076
NGNG>>79さん
教科書には<string>とかいてあったのですが、
なくてもできました。
#includeはなんとなくおまじないみたいな感じで使っていたのでよくわかりません。
そのあたりのことについて詳しく紹介しているHPなどありましたら、
教えてください。
0081デフォルトの名無しさん
NGNG0082デフォルトの名無しさん
NGNGC言語を学んどけ。
0083デフォルトの名無しさん
NGNG0084デフォルトの名無しさん
NGNG0085デフォルトの名無しさん
NGNG問題がアレな感じもするけど
0086デフォルトの名無しさん
NGNG>y=(x-a)^2+(y-b)^2
y=なの?
(x-a)^2+(y-b-1/2)^2=b+1/4
0087デフォルトの名無しさん
NGNG>>86
円にならないだろ?
0088デフォルトの名無しさん
NGNG>(x-a)^2+(y-b-1/2)^2=b+1/4
は、(a, b+1/2)を中心とする半径√(b+1/4)の円。
008975
NGNGすいません
r^2=(x-a)^2+(y-b)^2
でした・・・
0090デフォルトの名無しさん
NGNG(x[i],y[i])なの?
(x[i],y[j])なの?
0091デフォルトの名無しさん
NGNG円の方程式を (x-a)^2+(y-b)^2=r^2 とする
誤差 dr を点から円への距離の差分とする。つまり dri = ((xi-a)^2+(yi-b)^2)^0.5 - r
dri^2 = (xi-a)^2+(yi-b)^2 - 2*r*((xi-a)^2+(yi-b)^2)^0.5 + r^2
この二乗の和を求める
S = Σdri^2 = Σ{(xi-a)^2+(yi-b)^2 - 2*r*((xi-a)^2+(yi-b)^2)^0.5 + r^2}
これを a , b , r で微分する
dS/da = -2Σxi + 2na -2rΣ((xi-a)/((xi-a)^2+(yi-b)^2)^0.5)
dS/db = -2Σyi + 2nb -2rΣ((yi-b)/((xi-a)^2+(yi-b)^2)^0.5)
dS/dr = -2Σ((xi-a)^2+(yi-b)^2)^0.5 + 2nr
dS/da = 0 , dS/db = 0 , dS/dr = 0 となる a , b , r が求める円の方程式の係数である。
方程式解くのはがんばれ
0093デフォルトの名無しさん
NGNG0094デフォルトの名無しさん
NGNGデータ数じゃねぇの?
0095デフォルトの名無しさん
NGNGnには任意の定数が入ります
0096デフォルトの名無しさん
NGNG0097デフォルトの名無しさん
NGNG0098デフォルトの名無しさん
NGNG実行ファイルがa.exeだとして、それを実行すると、そこの一つ上のフォルダに、
その実行ファイルを別名(b.exeとか)にしてコピーしたいのですが、いまいちできません。
ttp://ja5ytd.hp.infoseek.co.jp/copy.html
ここを参考してみたんですが、実行ファイルだと空っぽのファイルしか作れませんでした。
お願いします。
0099デフォルトの名無しさん
NGNG0100デフォルトの名無しさん
NGNG実行ファイルのみがうまくいかずに困っています。
0101デフォルトの名無しさん
NGNGバイナリモードでリード、ライトしてみては?
0102デフォルトの名無しさん
NGNGもしかして Windows 環境でやってない?
Windows では、たとえ実行時であっても OS が必要ないと思った実行ファイルの一部分は
いつでもメモリ上から捨てられ、ふたたび必要になった時に実行ファイルを読み直すという
動作をするので、実行中のファイルをいじらせてはくれないよ。
もしやるとしたら、全てのセグメント、リソースなどを PRELOAD, FIXED, NONDISCARDABLE
属性にするようにコンパイラに指示する (これによって実行ファイルの全部分が破棄禁止に
なる) か、もしくは二つの実行ファイルを作って交互に切り替えながら実行するしかないよ。
0103デフォルトの名無しさん
NGNG1234→4321
852→258
ってな風に・・・
頭弱くて素でわからん
0104103
NGNG0105103
NGNG0106デフォルトの名無しさん
NGNGなかなか面白い奴だな。
0107デフォルトの名無しさん
NGNG0108デフォルトの名無しさん
NGNG代入するプログラムを作成せよ。ただし変数宣言「(x,y)のみのファイル」
と計算プログラムは別にし、あわせてmakefileも作成せよ。
また、filenema.exe -a の時は式Aのみの計算結果を、
filename -b の時は式Bの計算結果を表示できるようにせよ。
よろしくお願いします。
0109デフォルトの名無しさん
NGNG0110デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=303&fi=no
makefileはgcc仕様で。
0111デフォルトの名無しさん
NGNG"popd"を入力することでディレクトリスタックのトップに保存されている
ディレクトリに移動するプログラムを作成しているのですが、
どうしてもバグが発生してしまします。
プログラムが非常に長くて全部は書けないのですが
/*ディレクトリスタックを実現するための構造体*/
struct dirStack{
char *dirName; //保存されているディレクトリ名
struct dirStack *next; //次のdirStackへのポインタ
};
/*ディレクトリスタックのトップへのポインタ.初期値はNULL*/
static struct dirStack *dirStackTop;
/*pushdが入力されたとき以下の行が実行される*/
dirStackTop=Cmd_pushd(dirStackTop);
0112デフォルトの名無しさん
NGNGstruct dirStack *Cmd_pushd (struct dirStack *top){
struct dirStack *newTop;
char curName[256];
/*メモリの確保*/
if ((newTop=(struct dirStack *)malloc(sizeof(struct dirStack)))==NULL){
fprintf(stderr,"memory error!\n");
return;
}
getcwd(curName,sizeof(curName));//カレントディレクトリをcurNameに保存
/*以下の2行でバグ発生*/
newTop->dirName=(char *)malloc(sizeof(strlen(curName)+1));
strcpy(newTop->dirName,curName);
if (top!=NULL){
newTop->next=top;
}
return newTop;
}
ややこしくてすみません…。
0113デフォルトの名無しさん
NGNG0114デフォルトの名無しさん
NGNGnewTop->dirName = (char *)malloc(sizeof(strlen(curName)+1));
sizeofいらね。
0115111
NGNGsizeofとったら上手くいきました。
メモリの割り当てのエラーだったみたいですね…。
どうもありがとうございました!
0116デフォルトの名無しさん
NGNGsizeof(strlen(curName)+1)
の値っていくつ?
sizeof(size_t)
と一緒?
0117デフォルトの名無しさん
NGNG0118デフォルトの名無しさん
NGNGどうしてでしょう。
教えてください。
#include <iostream>
using namespace std;
class JOK{
private:
static int all_sum;
int num;
char *str;
public:
static int all_get_JOK();
JOK(char *asd);
};
int JOK::all_get_JOK(){
return all_sum;
}
JOK::JOK(char *asd){
this->num = all_sum;
all_sum++;
}
int main(){
class JOK *obj = new JOK("nekoneko");
cout << JOK::all_get_JOK() << "\n";
return 0;
}
0119デフォルトの名無しさん
NGNGstatic.obj : error LNK2019: 未解決の外部シンボル "private: static int JOK::all_s
um" (?all_sum@JOK@@0HA) が関数 "public: static int __cdecl JOK::all_get_JOK(void
)" (?all_get_JOK@JOK@@SAHXZ) で参照されました。
です。
0120デフォルトの名無しさん
NGNGstaticなメンバ変数は、宣言とは別に定義されなければならない。
int JOK::all_sum;
すれちがい。
0121デフォルトの名無しさん
NGNGありがとうございます。
0122デフォルトの名無しさん
NGNGできるだけ早いコードが良いらしいです。
あらかじめ配列に答えを入れておいてそれを表示するだけ、とかはもちろんダメらしいです。
0123デフォルトの名無しさん
NGNG#include <stdio.h>
int main(void)
{
for(int i = 1; i < 3163; i++) printf("%d\n", i*i);
}
0124デフォルトの名無しさん
NGNG#include <math.h>
int main()
{
int i
const int max = sqrt(10000000);
for(i = 1; i < max; i++) printf("%d\n", pow(i, 2));
return 0;
}
0125124
NGNG正 i <= max
誤 i < max
0126デフォルトの名無しさん
NGNG出題者は >>123 の可能性を考えてないだろうなぁ
0127デフォルトの名無しさん
NGNGpowの結果はキャストしろ。
0128122
NGNGこのシリーズの問題はこれが5問目で最後なのでどうかお願いします
整数(分かりやすいようにコンマが入ってます)
X,000,999 ・ X,001,998 ・ X,002,997 …… X,100,899 ……X,999,000 について
ある整数の2条になっているものを表示せよ。ただし、Xの部分には1-9の数字の時を考える。
0129デフォルトの名無しさん
NGNG#include <iostream>
#include <algorithm>
#include <vector>
int main(){
std::vector<long> v;
for(long i = 1; i * i <= 9999000; i++) v.push_back(i * i);
for(long i = 0, k = 999; i <= 999; i++, k += 999 ){
for(long j = 1; j <=9; j++){
long n = k + j * 1000000;
if(v.end() != std::find(v.begin(), v.end(), n))
std::cout << n << std::endl;
}
}
return 0;
}
0130デフォルトの名無しさん
NGNGlongが32bitだとだめね。
__int64とかlong longとか、環境依存の型を使わないとか。
0132デフォルトの名無しさん
NGNG#include <stdio.h>
#include <math.h>
int main()
{
long x;
long n;
long count = 0;
long amari;
long min;
long max;
for (x = 1; x < 10; x++) {
min = sqrt(x * 1000000) + 1;
max = sqrt((x + 1) * 1000000 - 999);
amari = (x*1000000) % 999;
printf("X = %ld :\n", x);
for (n = min; n <= max; n++) {
if ((n * n) % 999 == amari) {
printf("\t%ld\n", n*n);
count++;
}
}
}
printf("\n%ld found.\n", count);
}
0133デフォルトの名無しさん
NGNG#include <stdio.h>
#include <stdlib.h>
#include <math.h>
long *TBL;
int MAX_INDEX;
int b_search(long n){
int m, l = 0, r = 3162;
while(r - l > 1){
m = (l + r) / 2;
if(*(TBL + m) == n) return 1;
if(*(TBL + m) > n) r = m; else l = m;
}
return 0;
}
int main(){
long i, j, k, n;
MAX_INDEX = sqrt(9999000);
TBL = malloc(MAX_INDEX * sizeof(long));
for(i = 0; i * i <= 9999000; i++) *(TBL + i) = i * i;
for(k = 999; k <= 999000; k += 999){
for(j = 1; j <= 9; j++){
n = k + j * 1000000;
if(b_search(n)) printf("%ld\n", n);
}
}
free(TBL);
return 0;
}
0134133
NGNG× int m, l = 0, r = 3162;
○ int m, l = 0, r = MAX_INDEX - 1;
0135デフォルトの名無しさん
NGNGやたらコアダンプすると思ったら
> TBL = malloc(MAX_INDEX * sizeof(long));
これ一要素分足りない
0136デフォルトの名無しさん
NGNG0137デフォルトの名無しさん
NGNG0138デフォルトの名無しさん
NGNG4774225
7958041
9678321
0139デフォルトの名無しさん
NGNG#include <math.h>
int main(){
int max, i, j, tmp;
for(j = 1, max = (int)sqrt(1999000); j <= 9; max = (int)sqrt(++j * 1000000 + 999000))
for(i = (int)ceil(sqrt(j * 1000000 + 999)); i <= max; i++){
tmp = (int)pow(i, 2);
if(tmp / 1000 % 1000 + tmp % 1000 == 999)
printf("%d\n", tmp);
}
return 0;
}
C版 兼 へたくそ版
0140デフォルトの名無しさん
NGNGの判定は tmp % 1000000 が 0 以外で 999 で割り切れるのと等価
0141デフォルトの名無しさん
NGNG「あらかじめ配列に答えを入れておいてそれを表示するだけ、
とかはもちろんダメらしいです。」
の条件クリアしてる?
0142デフォルトの名無しさん
NGNG禁止なのは
#include <stdio.h>
int main()
{
int ansmap[] = {1974025, 4774225, 7958041, 9678321}, i;
for(i = 0; i < 4; i++) printf("%d\n", ansmap[i])
return 0;
}
こんなんじゃないか?
0143デフォルトの名無しさん
NGNG0144デフォルトの名無しさん
NGNG#include <math.h>
int main(){
int i, j, k, m, next;
next = sqrt(1000999);
m = next * next;
for(i = 1000000; i <= 9000000; i += 1000000){
for(j = 999; j <= 999000; j += 999){
k = i + j;
if(k == m){
printf("%d\n", k);
}
else if(k > m){
next++;
m = next * next;
}
}
}
return 0;
}
0145デフォルトの名無しさん
NGNGどっちでも答えは一緒だけど、厳密にはこっちが正しい。
#include <stdio.h>
#include <math.h>
int main(){
int i, j, k, m, next;
next = sqrt(1000999);
m = next * next;
for(i = 1000000; i <= 9000000; i += 1000000){
for(j = 999; j <= 999000;){
k = i + j;
if(k == m){
printf("%d\n", k);
}
else if(k > m){
next++;
m = next * next;
continue;
}
j += 999;
}
}
return 0;
}
0146デフォルトの名無しさん
NGNG鈴木太郎,33
佐々木次郎,25
上記ファイルをカンマ区切りで読み込ませようとしているのですが、
そのように表示できません。どう変更したら良いでしょうか。
<目標とする画面表示>
名前:鈴木太郎 年齢:33
名前:佐々木次郎 年齢:25
<現状>
名前:鈴木太郎,33 年齢:0
名前:佐々木次郎,25 年齢:0
0147146
NGNG#include <stdlib.h>
struct LIST
{
char name[20];
int age;
}list[2];
void main(void)
{
FILE *file_p;
int i;
file_p = fopen("empfile.txt", "r");//empfile.txtを読み込み。
if(file_p == NULL)exit(1);
i = 0;
while(fscanf(file_p, "%s,%d", list[i].name, &list[i].age) != EOF)
i++;
for(i = 0; i < 2; i++)//構造体の内容を表示。
printf("名前:%s 年齢:%d\n", list[i].name, list[i].age);
}
0148デフォルトの名無しさん
NGNGfscanf の %s は 非空白文字全てを読み込むため、
"," 毎読み込まれているようです。
対策としては、
1. ","(カンマ)ではなく" "(スペース)を区切り文字として使う
2. fscanf ではなく、 fgets & strtok 等を使う
例えばこんな感じ。
変更点のみ
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char buffer[80];
while(!feof(file_p)){
fgets(buffer,80,file_p);
strcpy(list[i].name,strtok(buffer,",") );
list[i].age=atoi(strtok(NULL,","));
i++;
}
0149デフォルトの名無しさん
NGNG#include <stdio.h>
#include <stdlib.h>
struct LIST
{
char name[20];
int age;
}list[2];
int main(void)
{
FILE *file_p;
int i;
file_p = fopen("empfile.txt", "r");//empfile.txtを読み込み。
if(file_p == NULL)exit(1);
i = 0;
while(fscanf(file_p, " %[^,],%d", list[i].name, &list[i].age) != EOF)
i++;
for(i = 0; i < 2; i++)//構造体の内容を表示。
printf("名前:%s 年齢:%d\n", list[i].name, list[i].age);
return 0;
}
0150デフォルトの名無しさん
NGNGfgets の返り値を検査しないと EOF の時も strtok に突入しうる悪寒(汗
0151デフォルトの名無しさん
NGNG0152146
NGNG今まで、fscnaf以外の読み取り関数を避けていたので、
この機会に勉強します。
また、スペースを区切り文字として使う方法でも、成功しました。
ありがとうございます。
>>149
目標通りの表示が得られました。
ありがとうございます。
%[^,] これはどういう意味でしょうか。
はじめて見る書式です。
0153デフォルトの名無しさん
NGNG%[^無視するキャラクタの集合]
0154デフォルトの名無しさん
NGNGhttp://www.linux.or.jp/JM/ の 『man on WWW』 のセクション 2,3 で検索すると、
大概の C の関数は載っているので、調べてみる事をおすすめする。
0156デフォルトの名無しさん
NGNGfoo,bar,baz
ならいいけど
hage,,hoge
だと2番目が変換ミス(戻り値が1)になるんだよね。
0157デフォルトの名無しさん
NGNG0158デフォルトの名無しさん
NGNG0159デフォルトの名無しさん
NGNG宿題がほしいのか?
まぁ、焦らずとも夏休み終了間際にはどっとくるでしょ。
0160デフォルトの名無しさん
NGNGという問題の答えを教えていただきたいです。
0161デフォルトの名無しさん
NGNG0162デフォルトの名無しさん
NGNGマルチ氏ねや
0163デフォルトの名無しさん
NGNG向こうで誘導されたんだと思われ。
0164160
NGNG0165デフォルトの名無しさん
NGNG0166デフォルトの名無しさん
NGNGそうか?誘導された時点で向こうでは誰も答えないだろうから良いと思うんだが。
0167デフォルトの名無しさん
NGNGその誰も答えないという自信はどこから?
第三者からみて何も告げずにというのは関心できないと感じる
0168デフォルトの名無しさん
NGNG言い方が悪かった。誰も答えないと確信してる訳じゃない。
ただ、既に他の摺れに誘導された事を知って質問に答えるのは
回答者の酔狂であって、マルチと知って質問に答えるのと対した違いは無いから、
礼儀を尽くすに値しないんじゃないか、と言う事が言いたかった。
>第三者からみて何も告げずにというのは関心できないと感じる
俺はどうでも良いと感じる。
0169デフォルトの名無しさん
NGNGつーか、移動元スレだけ見ても移動したかどうかは判らんし。
0170デフォルトの名無しさん
NGNGできてるつもりなんですが、こんなのがでてしまいます
なぜなんでしょうか?
0171デフォルトの名無しさん
NGNG0172デフォルトの名無しさん
NGNGmain()
{
cout<<"I am genius\n";
}
という単純なプログラムのはずなんですが
0173デフォルトの名無しさん
NGNGint main()...
0174デフォルトの名無しさん
NGNG読めてないところを見るとこいつは日本語が読めないのか。
なら仕方ないな
0175デフォルトの名無しさん
NGNGvoid か int で return
0176170と同級生っぽw
NGNGC++!
って。。。
PC持ってない人はどうするんだろうねw
変な冊子渡されたけど意味プーだしw
つか、上で質問してる文盲のやってるプログラムは
その冊子の1題目。
おまえももうちょっとがんばれよw
0177デフォルトの名無しさん
NGNG古い規格を習わされて御愁傷様。
0178デフォルトの名無しさん
NGNG0179デフォルトの名無しさん
NGNGあらぬマルチ疑いをかけられ、回答して貰えなかった事あったなぁ・・・
0180デフォルトの名無しさん
NGNG0181デフォルトの名無しさん
NGNGcout<<"I am genius\n"; // この行がおかしい
0182デフォルトの名無しさん
NGNG0183デフォルトの名無しさん
NGNG0184デフォルトの名無しさん
NGNGiostream.h
0185デフォルトの名無しさん
NGNG基底クラスで純枠仮想関数を作って、派生クラスでその関数の中身を書くじゃないですか。
それで、基底クラスでその仮想関数を呼ぶ事って出来るんでしょうか?
上にある関数を下から呼び出すことは出来るのでしょうか?
0186デフォルトの名無しさん
NGNGそれに下にある関数を上からの間違いじゃないのか?
0187デフォルトの名無しさん
NGNG0188デフォルトの名無しさん
NGNGVBみたいに関数のはじめのほうで全部宣言しちまったほうがいいんですか?
{
int A,B,C,D,E;
char cA,cB,cC;
・・・;・・・;・・・;・・・;・・・;・・・;・・・;
・・・;・・・;・・・;・・・;・・・;・・・;・・・;
}
それとも
{
int A;
・・・;
int B;
・・・;
int C;
・・・;
int D;
・・・;
char cA;
・・・;
・
・
・
(略)
}
こんなふうにそのつど宣言したほうがいいんでしょうか?
どっちのほうが綺麗なコードになりますか?
0189デフォルトの名無しさん
NGNGC++ では途中で宣言出来る。
どっちがいいかは知らね。
漏れは無駄がなくなるように変数宣言は出来るだけ後回し。
そのほうが変数の意味も分かりやすくなるし。
0190デフォルトの名無しさん
NGNG上下なんて図示上の都合なんだから、どちらが上か下かなんて意味無いだろ
0191デフォルトの名無しさん
NGNGのアドレスが0x0000となるように)を昇順で出力するプログラムを作成しましょう。
char c;
short s;
int i;
long l;
ファイル名 : lesson10.c
l : 0x0000
i : 0x0004
s : 0x0008
c : 0x000a
ーーーーーーーーーーーーーーーーーー
これをお願いします
0192デフォルトの名無しさん
NGNGまとめて書きたがる香具師に限って関数が長くなる傾向があり、その変数が何者なのか不明になりがち。
それはさておき、君は事前に使う道具を全て揃えてから作業に取り掛かるのと、
必要になる都度道具を用意するのとどっちが好きかね。
0193デフォルトの名無しさん
NGNG#include <stdio.h>
#include <stdlib.h>
#define offsetof(s, m) ((char *) &(s).(m) - (char *) &(s))
int main(void)
{
struct {
long l;
int i;
short s;
char c;
} foo;
printf("l:%p\ni:%p\ns:%p\nc:%p\n", offsetof(foo, l), offsetof(foo, i), offsetof(foo, s), offsetof(foo, c));
return EXIT_SUCCESS;
}
0194デフォルトの名無しさん
NGNG0195191
NGNGでもオレのレベルが低すぎてマクロが理解できません(´・ω・`)ショボーン
マクロ部分を関数内に展開?してくれませんか?ごめんなさい
0196デフォルトの名無しさん
NGNG0197デフォルトの名無しさん
NGNG0198デフォルトの名無しさん
NGNGあー、(m)じゃなくてmのまんまじゃないと>194だった。
ついでによく見たらstddef.hにあるoffsetofマクロと仕様が違ってた。
マクロ定義を外して、
struct {
を
struct Foo {
に、
offsetof(foo, l)
を
offsetof(struct Foo, l)
にすれば通るはずだよ。
0199デフォルトの名無しさん
NGNGtypedef struct mystruct{
char c; short s; int i; long long l;
}MYSTRUCT;
int main(void){
MYSTRUCT ms[2];
int index[4];
char p[]="csil";
char c;
int i,j,temp;
index[0]=((void*)&(ms[0].c))-(void*)&ms[0];
index[1]=((void*)&(ms[0].s))-(void*)&ms[0];
index[2]=((void*)&(ms[0].i))-(void*)&ms[0];
index[3]=((void*)&(ms[0].l))-(void*)&ms[0];
for(i=0;i<4;i++){
for(j=3;j>i;j--){
if(index[j]<index[j-1]){
temp=index[j];
index[j]=index[j-1];
index[j-1]=temp;
c=p[j];
p[j]=p[j-1];
p[j-1]=c;
}
}
}
for(i=0;i<4;i++)printf("%c:%04x\n",p[i],index[i]);
printf("size %04x\n",(void*)&(ms[1])-(void*)&ms[0]);
}
0200199
NGNGバブルソート入れると行数きつきつ。
long だとうちのコンパイラ(cygwin gcc)じゃ int と同じサイズの 4 ビットだから
long long 型 8 ビットにしてみた。double 型でも可。
たぶん出題者の意図はこっち。
構造体の中身の順序をいろいろ変えて試すと面白いと思うよ。
ついでにおまけも入ってるよ。
0201デフォルトの名無しさん
NGNGunsignedで0〜15までしか表せないじゃん
0202191
NGNG本当に助かりました(´Д⊂グスン
この機会にマクロを勉強してきます
0203188
NGNG0204デフォルトの名無しさん
NGNGs/ビット/バイト
何やっているんだろう・・・・・。
0205デフォルトの名無しさん
NGNGみんな遊び呆ければいいのに。
0206191
NGNGchar p[]="csil";
が理解できません
教えてください
0207デフォルトの名無しさん
NGNGつかそれがマジならそんな宿題やるレベルじゃねーだろ
0208デフォルトの名無しさん
NGNG可変長の文字列配列の初期化
実質的には
char p[5];
p[0]='c';
p[1]='s';
p[2]='i';
p[3]='l';
p[4]='\0';
といっしょ。
0209191
NGNGcsilって文字列になにか意味があるって想ってしまいました
早とちりごめんなさい(´;ω;`)ウッ…
0210デフォルトの名無しさん
NGNG0211デフォルトの名無しさん
NGNG0212デフォルトの名無しさん
NGNGmain()
{
printf("GNU");
while(1)
printf(" is Not Unix");
}
0213デフォルトの名無しさん
NGNGがんもどき 煮込んだら 美味かった
ttp://www.sra.co.jp/public/doc/gnu/
0214デフォルトの名無しさん
NGNGANU = ANU's Not Unix
BNU = BNU's Not Unix
CNU = CNU's Not Unix
DNU = DNU's Not Unix
何でもいいじゃん
0215デフォルトの名無しさん
NGNGXI = G
0216デフォルトの名無しさん
NGNG0217デフォルトの名無しさん
NGNGhttp://img.esbooks.co.jp/bks/images/i4/30597574.jpg
0218デフォルトの名無しさん
NGNGバカでスマソ。
0219デフォルトの名無しさん
NGNGXI(ズィー)とG(ヂー)
英語だと発音違うのにな
0220デフォルトの名無しさん
NGNG0221デフォルトの名無しさん
NGNGchar Suzi[100];
double Result;
Suzi = "3.28"
Result = atof(Suzi);
こうすると
Result に 3.280000000002 が格納されてしまいます。
なぜ 3.280000000000 ではないのでしょうか?
//Suziの数によって右端が0だったり0じゃなかったりします・・・。
0222デフォルトの名無しさん
NGNG0223デフォルトの名無しさん
NGNG0224デフォルトの名無しさん
NGNGうーん、なにやら奥が深いんですね。
Result に 3.280000000000 というように正しい値が格納されるようにするには
どうすればいいですか?
0225デフォルトの名無しさん
NGNG0226デフォルトの名無しさん
NGNGchar Suzi[100];
Suzi = "3.28"
これ変じゃないか?
いいの?
0227デフォルトの名無しさん
NGNG3.28は例なので任意の数字を指定できるようにしたいです。
>>226
すいません";"が抜けてました。
Suzi = "3.28";
です。
0228227
NGNGchar Suzi[] = "3.28";
こう書けば大丈夫でしょうか?
0229デフォルトの名無しさん
NGNGそういう意味かな
二進数小数についてを調べるとよい。
で、有限長小数を丸め誤差なしで扱いたいなら文字列で管理する。
あとは、誤差なしで数値管理してくれるライブラリパッケージを使うとか。
0232218
NGNGなるほど、でもXIならどっちかというと「グィ」?
ん?って事はXINUはギニュー!?(特戦隊)
>>220
XI は 11 だと思います。
G は 7番目だと(ry
0233デフォルトの名無しさん
NGNG不覚にもギニューはつぼだった
0234デフォルトの名無しさん
NGNG英語の場合、X は S とか Z の発音する気が。
0235デフォルトの名無しさん
NGNG小文字を大文字に
大文字を小文字に
どっちでもなければそのまま
に変換するコードをC++でかっこよく書くにはどうしたらいいですか?
<*.h> および <cctype> の類は #include しないで実装するにはどうしたらいいですか?
0236デフォルトの名無しさん
NGNGかっこよくかww
がんばれ↓
0237236
NGNG0238デフォルトの名無しさん
NGNGこれじゃあ全然C++じゃないんだけどなにをどうしたらC++らしくなるのでしょう?
void henkan(char* target)
{
static const char s = ( 'a' - 'A');
for(char* t = target; *t; ++t){
if(*t >= 'a' && *t <= 'z') {
*t -= s;
}
else if(*t >= 'A' && *t <= 'Z') {
*t += s;
}
}
0239デフォルトの名無しさん
NGNGC++ どころか C すらやめたほうがいいよ
0240デフォルトの名無しさん
NGNG0241デフォルトの名無しさん
NGNG>C++でかっこよく
><*.h> および <cctype> の類は #include しない
これがおかしいわけだが
0242デフォルトの名無しさん
NGNG0243デフォルトの名無しさん
NGNG#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
struct UpperLower {
void operator()(char &c){
if(InRange(c, 'a', 'z'))
c = c - 'a' + 'A';
else if(InRange(c, 'A', 'Z'))
c = c - 'A' + 'a';
}
bool InRange(int val, int a, int b){
return val >= a && val <= b;
}
};
int main(){
string s = "absgd7382AHsufeAFDUE";
cout << s << endl;
for_each(s.begin(), s.end(), UpperLower());
cout << s << endl;
return 0;
}
0244デフォルトの名無しさん
NGNGto_upper_or_lower( char c )
{
const char d = 'A' - 'a';
char r = c;
if( c >= 'a' && c <= 'z' )
{
r += d;
}
else
if( c >= 'A' && c <= 'Z' )
{
r -= d;
}
return r;
}
void
henkan( char* target )
{
while( *target != '\0' )
{
*target = to_upper_or_lower( *target );
target ++;
}
}
普通にこれじゃダメなのか?
0245デフォルトの名無しさん
NGNGprintf("ヌルポ ヌルポ AutoRun♪ \n");
printf("ぬるぽ ぬるぽ オートラン♪\n");
printf("お前が踏まなきゃ誰が踏む!\n");
0246デフォルトの名無しさん
NGNG0247デフォルトの名無しさん
NGNGありがとうございました。
0248デフォルトの名無しさん
NGNG普通は以下のようなテーブルを作成して
テーブル参照一発で解決じゃないですか?
{
0x00, 0x01, 0x02, ...
0x10, 0x11, 0x12, ...
...
0x40, 0x61, 0x62, ...
0x70, 0x71, 0x72, ...
0x60, 0x41, 0x42, ...
0x50, 0x51, 0x52, ...
...
};
0249デフォルトの名無しさん
NGNGん〜、でも
きれいなソース、読みやすいソースをめざして、
コーディング技術の向上に努めるのはいいことかもしれませんよ。
0250デフォルトの名無しさん
NGNGオレがいつ
>きれいなソース、読みやすいソースをめざして、
>コーディング技術の向上に努めるのはいいこと
こんな話したよ?
0251デフォルトの名無しさん
NGNGミ∠_)
∧_∧/ \\
( ・∀/) | | ガッガッガッガッガッガッ
( つつ | |
Y /ノ 人
/ ) < >_∧∩
_/し' //. V`Д´)/
(_フ彡 / ←>>245
0252デフォルトの名無しさん
NGNGvoid init(void){
int i;
for(i = 0; i <= 0xff; i++) char_tbl[i] = i;
for(i = 'a'; i <= 'z'; i++) char_tbl[i] += 'A' - 'a';
for(i = 'A'; i <= 'Z'; i++) char_tbl[i] += 'a' - 'A';
}
void henkan(char *s){
while(*s){
*s = char_tbl[*s];
s++;
}
}
0253デフォルトの名無しさん
NGNG#include<numeric>
#include<iostream>
#include<string>
#include<functional>
#include<vector>
int main()
{
string s="This is a test.";
vector<char> cmap(256);
fill(cmap.begin()+1, cmap.end( ), 1 );
partial_sum( cmap.begin( ), cmap.end( ), cmap.begin( ));
swap_ranges( cmap.begin( )+'A', cmap.begin( )+'Z'+1, cmap.begin( )+'a' );
transform( s.begin( ), s.end( ), s.begin( ), bind1st( mem_fun1_ref(&vector<char>::operator[]), cmap ));
cout << s << endl;
}
0254デフォルトの名無しさん
NGNGそりゃ確かにすごくC++っぽいけれどもw
0255252
NGNG#include <iostream>
class Henkan {
int char_tbl[0xff + 1];
public:
Henkan();
char *operator()(char *s);
};
Henkan::Henkan(){
for(int i = 0; i <= 0xff; i++) char_tbl[i] = i;
for(int i = 'a'; i <= 'z'; i++) char_tbl[i] += 'A' - 'a';
for(int i = 'A'; i <= 'Z'; i++) char_tbl[i] += 'a' - 'A';
}
char *Henkan::operator()(char *s){
char *p = s;
do{*p = char_tbl[*p];}while(*p++);
return s;
}
int main(){
char s[] = "abcd123EFGH456ijkl789MNOPQR";
std::cout << Henkan()(s) << std::endl;
return 0;
}
0256デフォルトの名無しさん
NGNG0257248
NGNGちょっと寂しくなってきた。
0258デフォルトの名無しさん
NGNG宿題に飢えていて、ヒマだからです。
0259デフォルトの名無しさん
NGNG(順番に並んでいない文字コードも実際に存在する) 、
完全な移植性を求めるならテーブルでやるしかない
ロケールを考えるともっと大変
0260デフォルトの名無しさん
NGNG>>(順番に並んでいない文字コードも実際に存在する) 、
マジッスカ?Σ(゚д゚lll)
0261デフォルトの名無しさん
NGNG0262デフォルトの名無しさん
NGNG0263デフォルトの名無しさん
NGNG0〜9までの10個の整数を重複がないよう、
randを用いてランダムに配列a[10]へと格納し配列aの内容を表示せよ。
0264デフォルトの名無しさん
NGNG#include <iostream>
#include <algorithm>
int
main()
{
int i;
int a[ 10 ];
for( i = 0; i < 10; i ++ )
a[ i ] = i;
std::random_shuffle( &a[ 0 ], &a[ 10 ] );
for( i = 0; i < 10; i ++ )
std::cout << a[ i ] << " ";
return 0;
}
0265デフォルトの名無しさん
NGNGrandつかってなーい
0266デフォルトの名無しさん
NGNG0267デフォルトの名無しさん
NGNGワロタ
0268デフォルトの名無しさん
NGNG#include <stdlib.h>
int main( void ) {
int a[]={0,1,2,3,4,5,6,7,8,9};
int i;
for ( i = 0; i < 50; i++ ) {
int x = rand() % 10;
int y = rand() % 10;
if ( x != y ) { int t = a[y]; a[y] = a[x]; a[x] = t; };
}
for ( i = 0; i < 10; i++ ) printf( "%d\n", a[i] );
return 0;
}
0269デフォルトの名無しさん
NGNG#include <algorithm>
int
main()
{
int i;
int a[ 10 ];
std::fill( &a[ 0 ], &a[ 10 ], -1 );
for( i = 0; i < 10; ++ i )
{
int idx;
do
{
idx = rand() % 10;
}
while( a[ idx ] != -1 );
a[ idx ] = i;
}
for( i = 0; i < 10; ++ i )
std::cout << a[ i ] << " ";
return 0;
}
0270デフォルトの名無しさん
NGNGもしだよ仮にありえないかもしれないけど
50回xとyに同じ値が入ったらどうすんの?
0271デフォルトの名無しさん
NGNGそれも一つのランダムじゃないか
0273デフォルトの名無しさん
NGNG結果が出てくるまでの時間が一定じゃないんですけど・・・
0274デフォルトの名無しさん
NGNGリスト構造に0から9までの数字を入れておいて、
「先頭のノードをrand()%10番目に挿入」をn回繰り返せば
一定にならんかな?誰かコードヨロ。
0275デフォルトの名無しさん
NGNG#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define NUMBER_COUNT 10
#define SHUFFLE_COUNT 50
struct lst {
struct lst *next;
int val;
};
int main(int argc, char **argv)
{
struct lst *top, *cur;
int i;
for(i = 0; i < NUMBER_COUNT; i++){
struct lst *lp = (struct lst *)malloc(sizeof(lst));
lp->next = NULL;
lp->val = i;
if(i){
cur->next = lp;
cur = lp;
}else{
top = cur = lp;
}
}
0276デフォルトの名無しさん
NGNGsrand((unsigned int)time(NULL));
for(i = 0; i < SHUFFLE_COUNT; i++){
int r = rand() % NUMBER_COUNT;
int j;
for(j = 0, cur = top; j < r; j++, cur = cur->next) {}
if(j){
struct lst *tmp = top;
top = top->next;
tmp->next = cur->next;
cur->next = tmp;
}
}
for(cur = top; cur; cur = cur->next){
printf("%d\n", cur->val);
}
return 0;
}
0277デフォルトの名無しさん
NGNGfor(j = 0, cur = top; j < r; j++, cur = cur->next) {}
ここが一定時間にならない ... orz
0278デフォルトの名無しさん
NGNG>for ( i = 0; i < 50; i++ ) {
>int x = rand() % 10;
>int y = rand() % 10;
>if ( x != y ) { int t = a[y]; a[y] = a[x]; a[x] = t; };
>}
を以下に変更する。
for ( i = 0; i < 10; i++) {
int x = rand() % 10;
if ( x != i ) { int t = a[i]; a[i] = a[x]; a[x] = t; }
}
こんなもんでいいんじゃない?
0279デフォルトの名無しさん
NGNG#define TABLE_MIN 0
#define TABLE_MAX 9
#define TABLE_COUNT (TABLE_MAX - TABLE_MIN + 1)
int main(void)
{
int iIndex;
int iSet;
int iTable[TABLE_COUNT];
int a[TABLE_COUNT];
srand( (unsigned int)time( NULL ) );
for ( iIndex = 0; iIndex < TABLE_COUNT; iIndex++ ) iTable[iIndex] = iIndex + TABLE_MIN;
for ( iSet = 0; iSet < TABLE_COUNT; iSet++ ) {
iIndex = (int)((double)rand() / (double)(RAND_MAX + 1) * (double)(TABLE_COUNT - iSet));
a[iSet] = iTable[iIndex];
for ( ; iIndex + 1 < (TABLE_COUNT - iSet); iIndex++ ) iTable[iIndex] = iTable[iIndex + 1];
}
for ( iIndex = 0; iIndex < TABLE_COUNT; iIndex++ ) printf("a[%d] = %d\n", iIndex, a[iIndex]);
return 0;
}
0280デフォルトの名無しさん
NGNG#include <stdlib.h>
#include <time.h>
#define NUM 10
int main()
{
int iFlg[NUM], a[NUM], i, r;
srand((unsigned)time(NULL));
for(i = 0; i < NUM; i++) iFlg[i] = 0; /* 初期化 */
for(i = 0; i < NUM; i++){
for(; iFlg[r = rand() * NUM / (RAND_MAX+1)];); /* 空きを検索 */
iFlg[r] = 1; /* フラグを立てる */
a[i] = r;
}
for(i = 0; i < NUM; i++) printf("%d\n", a[i]);
return 0;
}
0281280
NGNGfor(; iFlg[r = rand() * NUM / (RAND_MAX+1)];);
↓
while(iFlg[r = rand() * NUM / (RAND_MAX+1)]);
0282デフォルトの名無しさん
NGNG#include <stdlib.h>
#define N 10
main(){
int a[N], i,j;
for(i = 0; i < N; i++)
a[i] = i;
srand(time(NULL));
for(i = 0; i < N; i++){
j = rand() % N;
if(i == j) continue;
a[i] ^= a[j] ^= a[i] ^= a[j];
}
for(i = 0; i < N; i++)
putchar('0' + a[i]);
return 0;
}
0283デフォルトの名無しさん
NGNGなにやってるの?
って一応聞いてあげる。
0284デフォルトの名無しさん
NGNG読めないの?そのままじゃないか
0285282
NGNGスワップのときは普通にいいと思うんだけど、世間じゃトリッキーコードとか抜かすやつ多い。
0286デフォルトの名無しさん
NGNGこれは未定義だろうが、ぼけ!
って一応突っ込んであげる。
0287デフォルトの名無しさん
NGNG0288デフォルトの名無しさん
NGNG0289デフォルトの名無しさん
NGNGじゃぁ、これでがまんするか。
a[i] ^= a[j]; a[j] ^= a[i]; a[i] ^= a[j];
0290デフォルトの名無しさん
NGNG0291デフォルトの名無しさん
NGNGが見えないのかと小一時間(ry
0292デフォルトの名無しさん
NGNG入り乱れてて訳がわからなくなりそうだ。
0293デフォルトの名無しさん
NGNG0294デフォルトの名無しさん
NGNG0295デフォルトの名無しさん
NGNGa[j] -= a[i];
a[i] += a[j];
んじゃこれ
0296デフォルトの名無しさん
NGNG宿題が提出されないから
0297デフォルトの名無しさん
NGNGそれぞれ変数に格納せよ。〜はURLとして妥当であり、関数は
sscanfを用いるものとする。
0298デフォルトの名無しさん
NGNG0299デフォルトの名無しさん
NGNG0300デフォルトの名無しさん
NGNG0301デフォルトの名無しさん
NGNGできればCでつくってほしー
0302デフォルトの名無しさん
NGNG0303デフォルトの名無しさん
NGNG#include <stdio.h>
#define SIZE 1024
int main( void )
{
char buf[SIZE];
while ( fgets(buf, SIZE,stdin) != NULL ) {
char a[SIZE],b[SIZE];
sscanf( buf, "<a href=\"%[^\"]\">%[^<]</a>", a, b );
printf( "%s\n%s\n", a, b );
}
return 0;
}
0304デフォルトの名無しさん
NGNG両方に共通する文字列で最も長いものを出力する
プログラムを作成せよ
おながいします
0305デフォルトの名無しさん
NGNG引数にファイル2つ指定しる。
#include <iostream>
#include <fstream>
#include <string>
#include <set>
int main(int argc, char *argv[])
{
std::ifstream f1(argv[1]), f2(argv[2]);
std::set<std::string> v;
int maxLen = 0;
std::string s, maxStr;
for (std::string s; f1 >> s, !f1.eof(); v.insert(s)) ;
while (f2 >> s, !f2.eof()) {
std::set<std::string>::const_iterator i = v.find(s);
if (i != v.end()) {
if (i->length() > maxLen) {
maxLen = i->length();
maxStr = *i;
}
}
}
std::cout << maxStr;
return 0;
}
0306304
NGNGすいません説明不足でした
2つのファイルは両方とも普通の (英文の) 文章が入っています
ですから、問題の趣旨としては、それぞれのファイルの全内容を比較して
一致する最も長い部分探せ、とのことのようです
再度よろしくですm(。_。 )m
0307デフォルトの名無しさん
NGNG0308デフォルトの名無しさん
NGNG文字単位でなく、単語単位での一致チェック。
#include <iostream>
#include <fstream>
#include <vector>
int main(int argc, char *argv[]) {
std::ifstream f1(argv[1]), f2(argv[2]);
std::vector<std::string> v1, v2;
std::string s;
while (!f1.fail()) { f1 >> s; v1.push_back(s); if (f1.eof()) break; }
while (!f2.fail()) { f2 >> s; v2.push_back(s); if (f2.eof()) break; }
std::vector<std::string>::const_iterator i1s = v1.end(), i1e = v1.end(), i2s, i2e, i;
int len;
for (i2s = v2.begin(); i2s != v2.end(); i2s++)
for (i2e = i2s; i2e != v2.end(); i2e++)
if ((i = search(v1.begin(), v1.end(), i2s, i2e + 1)) != v1.end())
if ((len = i2e + 1 - i2s) > i1e - i1s) i1e = (i1s = i) + len;
for (i = i1s; i != i1e; i++) std::cout << *i << " ";
std::cout << std::endl;
return 0;
}
0309デフォルトの名無しさん
NGNGhttp://www.tcp-ip.or.jp/~ikken/cpp/txt/o3.C.txt ・・・のサイトなんですが、
グローバルで動的にオブジェクト宣言している”CC”の配列の所なんですが、
コレ以降にあるCircleのメンバ関数を使う時に、なぜ’->’アロー演算子ではなく、
'.'ドット演算子なんでしょうか?
0310デフォルトの名無しさん
NGNGCC[0] = *(CC)
CC[2] = *(CC+2)
0311デフォルトの名無しさん
NGNG(*cc).set
cc[0].set
上の3つは同じ意味
0312デフォルトの名無しさん
NGNGttp://lecture.ecc.u-tokyo.ac.jp/~yamaguch/pub/cp2-10/LCS.html
これをしろということ?
0313デフォルトの名無しさん
NGNG制作者は分かっているのだろうけど、>>268 や >>282 のような置換えの場合、
配列の要素数が奇数の時にランダム性に偏りが生じます。(証明略)
(今回は 要素数 = 10、つまり偶数なので問題ない。)
ソフトを改造して使用する場合は注意してください。
0314309
NGNGありがとうございました☆
理解できました!
0315313
NGNG入れ替えランダムの場合、要素数 = 3以上の場合ランダム性に偏りが生じる。
0316デフォルトの名無しさん
NGNG同一の元パターンに対する二要素間の入れ替え操作の繰り返しでは、奇数回入れ替えで生成
できるパターンと偶数回入れ替えで生成できるパターンに共通のものがないって言う話?
0317デフォルトの名無しさん
NGNG>>282 を例に取らせて頂きます。
要素数 n のうちの 2 要素を入れ替える作業を x 回行う場合、n の x 乗個の答えが生成されるワケですが、(同じ要素同士で入れ替えない場合も1回置換えと数える)
要素数 n の最終的な組み合わせは n! 個しかありません。
そして、n >= 3 の場合、n の x 乗 は n! で割り切れません。
今回の場合、10 の 10 乗 = 10000000000、10! = 3628800 となり
10000000000 / 3628800 = 2755.731922
となり、偏りが生じている事が解ります。
0318313、317
NGNG// ramd()関数自体の偏りを無くす演算
#define N 10
int i, r;
for (i = 0, r = 0; i < N; i++) r = (r + rand() * N / (RAND_MAX + 1) + i) % N;
0319デフォルトの名無しさん
NGNGで、それはどういう並びが多くなるの?
「要素数 n のうちの 2 要素を入れ替える作業を x 回行う」作業をn!回行う時は偏りがあるの?
あと、>>318は (rand() * N / (RAND_MAX + 1) ) == 0 だと思うんだけど。
0320デフォルトの名無しさん
NGNG(つまりy=0.2と0.8)のときのy=sin*xとの交点におけるxの値を
それぞれ求め、以下の式からaの値を求めるプログラムを作成せよ。
y=5x+4xy+2a よろしくお願いします。
0321デフォルトの名無しさん
NGNG・・・・・摂氏・・・
0322デフォルトの名無しさん
NGNGgetcharを用いて、ポインタを使って逆から表示せよ。
まったくわかりませぬ・・・。
0323デフォルトの名無しさん
NGNG#include<stdio.h>
#include<math.h>
#define PI 3.1415926535897932
int main(void){
double y[2];
double x,a;
int i;
y[0]=0.2;
y[1]=0.8;
for(i=0;i<2;i++){
x=asin(y[i])/PI*180;
a=0.5*(y[i]-5*x-4*x*y[i]);
printf("x=%.6f\ny=%.6f\na=%.6f\n",x,y[i],a);
}
}
たぶん仕様は満たしてるよ。
ところで
y=5x+4xy+2a
に何か数学的若しくは物理的な意味があるのか?
0324デフォルトの名無しさん
NGNGその問題の仕様が
まったくわかりませぬ・・・。
課題全文掲載汁話はそれからだ。
0325デフォルトの名無しさん
NGNG多分こんなかんじ?
#include <stdio.h>
int main(){
char buf[512], *p;
p = buf;
fputs("input > ", stdout);
while('\n' != (*p++ = getchar()));
fputs("result > ", stdout);
for(p -= 2; p >= buf; p--) putchar(*p);
return 0;
}
0326325
NGNG#include <stdio.h>
int main(){
char buf[512], *p;
int i;
p = buf;
fputs("input > ", stdout);
for(i = 0; i < sizeof(buf); i++){
*p = getchar();
if(*p == '\n' || *p == '\0' || *p == EOF) break;
p++;
}
fputs("result > ", stdout);
for(--p; p >= buf; p--) putchar(*p);
return 0;
}
0327デフォルトの名無しさん
NGNG>>323 の返事が気になる。
0328デフォルトの名無しさん
NGNG大文字は小文字に、小文字は大文字に変換して出力せよ。
ただし、関数は2つ以上作成し、英文字以外はそのまま出力
また、標準ヘッダファイルのみで作成せよ。
0329デフォルトの名無しさん
NGNG>>235
0330デフォルトの名無しさん
NGNG上の例をちょっと改造することすら出来ないほど無能なのなら今後の身の振り方を考えた方がよい
0331デフォルトの317ではない名無しさん
NGNG>282 方式三要素の場合:
パターン分布
取りうるパターンは a)123 b)132 c)213 d)231 e)312 f)321 これを用いて初期状態を行列で表すと
(1 0 0 0 0 0) …A
入れ替え操作は
一回目 [0]<->[0] [0]<->[1] [0]<->[2]
二回目 [1]<->[0] [1]<->[1] [1]<->[2]
三回目 [2]<->[0] [2]<->[1] [2]<->[2]
よって全パターン間の置換確率行列は (手計算が間違ってなければ)
/4 5 5 5 4 4\
| 5 4 4 4 5 5 |
3^-3* | 5 5 4 5 4 4 | …B
| 4 4 5 4 5 5 |
| 5 5 4 4 4 5 |
\4 4 5 5 5 4/
分布は A*B=(4 5 5 5 4 4)/27 (行列の各要素がそれぞれ a〜f の場合に対応)
3要素では奇数回置換しているので、奇数回置換で生成できるパターンになる可能性が、偶数回
置換で生成できるパターンになる可能性より少しだけ大きい
0332デフォルトの317ではない名無しさん
NGNG1.パターン分布
取りうるパターンは a)123 b)132 c)213 d)231 e)312 f)321 これを用いて初期状態を行列で表すと
(1 0 0 0 0 0) …A
入れ替え操作は
[0]<->[0]:1 [0]<->[1]:2 [0]<->[2]:2 [1]<->[1]:1 [1]<->[2]:2 [2]<->[2]:1
よって全パターン間の置換確率行列は
/3 2 2 0 0 2\
| 2 3 0 2 2 0 |
9^-1* | 2 0 3 2 2 0 | …B
| 0 2 2 3 0 2 |
| 0 2 2 0 3 2 |
\2 0 0 2 2 3/
n回置換での分布は A * B^n。
n=1: 9^-1* (3 2 2 0 0 2)
n=2: 9^-2* (21 12 12 12 12 12)
n=3: 9^-4* (1161 1080 1080 1080 1080 1080)
2.各要素の追跡
前述の入れ替え操作より、それぞれの桁の置換確率行列は (以下行列の括弧省略)
5 2 2
9^-1* 2 5 2 …C
2 2 5
よって、例えば a[0] の要素の n 置換後の分布は (1 0 0) * C^n
C^2: C^4:
33 24 24 2241 2160 2160
9^-2* 24 33 24 9^-4* 2160 2241 2160 ……
24 24 33 2160 2160 2241
各要素は元の位置にいる確率が少し高い。置換対象をランダムに選ぶ限り、
偏りは残り続けると予想。
# 置換回数と対象をうまく制限すれば、例えば >282 で j=i+(rand()%(N-i));
# などとすれば置換が原因の偏りを無くすことができる場合もある
0333デフォルトの名無しさん
NGNG> で、それはどういう並びが多くなるの?
不定です。並び替えの回数によって変化します。
並び替えの回数が少ないほど偏りが大きくなり、並び替えの回数が多いほど偏りが小さくなります。
> 「要素数 n のうちの 2 要素を入れ替える作業を x 回行う」作業をn!回行う時は偏りがあるの?
それは答えの数(パターン)が n の n! 乗になり、結局のところ n >= 3 の場合 n! で割り切れません。
> あと、>>318は (rand() * N / (RAND_MAX + 1) ) == 0 だと思うんだけど。
rand()関数は 0 〜 RAND_MAX までの値を返します。例えば rand() を RAND_MAX に置換えると
(RAND_MAX * N / (RAND_MAX + 1) ) となり N - 1 という値が返ります。(N > 0)
なお、>>318 の式は「// ramd()関数自体の偏りを無くす演算」と書いてありますが、
偏りが小さくなるだけでなくなりはしませんでした。
0334322
NGNG322です。
325さんのソースで大体は理解できたんですが
fputsを使わない場合だとどうなるのでしょうか?
0335デフォルトの名無しさん
NGNG入力し、10進文字列に変換し出力するプログラムを作成せよ。
ただし、文字列に変換する部分は関数とすること。
以下のようにして関数部分を作成。
#include<stdio.h>
void inttod(int dec,char*str);
main(){
int num;
char str[7];
printf("input:");
scanf("%d,&num");
inttod(num,str);
printf("resulr:%s\n",str);
}
0336デフォルトの名無しさん
NGNG0337335
NGNGscanf("%d",&num);
でした。
申し訳ありません。
0338デフォルトの名無しさん
NGNG{
int i, n;
if(dec < 0){
dec = -dec;
*str++ = '-';
}
for(i = 1, n = 10; dec >= n; i++, n *= 10);
for(n /= 10; i; i--, n /= 10) *str++ = dec / n % 10 + '0';
*str = '\0';
return;
}
0339デフォルトの名無しさん
NGNGsprintf(str, "%d", dec);
return;
}
0340デフォルトの名無しさん
NGNG点A=(任意,y<5)、B=(任意,y>5)とする。
0341デフォルトの名無しさん
NGNG0342デフォルトの名無しさん
NGNGwhile文を使う事。
�@ 1の二乗、2の二乗、……、nの二乗を計算するための変数と、合計を格納する変数を宣言する。
�A 合計が2000以下の間、nの値を1ずつ増やしながらnの二乗を合計に加え、合計が200を超えたら、繰り返しを終了し、そのときの合計とnの値を出力する。
よろしくお願いします
0343デフォルトの名無しさん
NGNG#include<stdio.h>
int main(){
int n = 1, sum = 0;
while(sum <= 2000){
sum += n * n;
n++;
}
printf("n=%d 合計=%d\n", n-1, sum);
return 0;
}
0344デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=204
ホレ
0345デフォルトの名無しさん
NGNG#include <stdio.h>
#define power_n(n) ((n)*(n))
main()
{
int sum = 0, n = 0;
while (sum <= 2000 && ++n) sum += power_n(n);
printf("sum = %d\nn = %d\n", sum, n);
}
sum=2109, n=18
0346342
NGNG有難うございます。
でも、実行したらnが18になってしまいました。18の二乗は324なんですけど、表示結果は2109となっています。
2000を超えるnの値は45にならないと駄目だと思いますが、訂正してもらえますか?
0347デフォルトの名無しさん
NGNG釣りですか?
0348342
NGNG0349デフォルトの名無しさん
NGNG0350デフォルトの名無しさん
NGNGsystem()
0351デフォルトの名無しさん
NGNG0352デフォルトの名無しさん
NGNGお願いしますm(__)m
0353デフォルトの名無しさん
NGNG強い意味で例外安全を定義しる。
0354デフォルトの名無しさん
NGNG・例外によって終了してもプログラムの状態が変更されていない。
0355天才プログラマ
NGNG0356デフォルトの名無しさん
NGNGいい。永眠するとなおよい。
0357デフォルトの名無しさん
NGNG二つ目が分からん。
0358デフォルトの名無しさん
NGNG落ちろっ!夢のない眠りへ…
0359デフォルトの名無しさん
NGNG「例外が発生して制御が呼び出し元に移ったときに、例外を
投げた側の内部状態が呼び出し前と変更されていない。」
といった方が分かりやすくないか?
0360デフォルトの名無しさん
NGNG実装としては
・掛け算はO(N^2)
・割り算は 0 割のみ例外発生
・割り算はニュートン法にて収束させる
・出力と中間計算の領域確保失敗時に例外発生
このくらいだったら楽じゃない?
0361デフォルトの名無しさん
NGNG個人的にはスナップ、ロールバックと、演算は切り離したいな。
0362デフォルトの名無しさん
NGNG普通は状態をわざわざ保存してまで強い例外安全を保障しないと思う。
たとえば>>352の例のoperator+=なら、
・最初に例外を投げそうな処理(メモリ確保とか)を行う。
ここで失敗したら何もしないで例外を外に伝える(例外中立)。
・実際の計算(ここでは例外を投げる可能性があるとする。ない場合はもっと単純)
・例外を投げない処理(代入、delete)のみを使って内部状態を変更(ポインタのswapが非常に有効)
こんな感じかと。
0363デフォルトの名無しさん
NGNG0364デフォルトの名無しさん
NGNG今、とあるサイトでC++を勉強しているのですが、このクラスのメンバ関数addの部分の
elseより下の部分がわかりません。具体的に言うと、lt1やlt2などに何が入って、どのようにして追加されているのかが全然わかりません。
どのようにして動く?のかは理解できたのですが・・・。lt1=lt2やlt2=lt2->nextなどの代入がわかりません。
詳しくご説明をお願いします。
0365デフォルトの名無しさん
NGNGいやいや、あんたスレ違いだって…ここ宿題スレだしw
0366デフォルトの名無しさん
NGNG0367デフォルトの名無しさん
NGNG0368デフォルトの名無しさん
NGNGデジャヴかな。つい最近そのソース見て「こいつCの癖が抜けてないな」と思った記憶が……
0369シュトラッ仙
NGNGoutput 関数のprintf("")を
printf("[%p] [%p] data...%s \n", nt, nt->next, nt->st);
と 書き換えて
リストの保有するデータや List *型の nt , lt1, lt2
がどういう値かを確認してみるのが良いよ
0370デフォルトの名無しさん
NGNG0371デフォルトの名無しさん
NGNG03721/3
NGNG今回出題された課題は php の課題なのですが、アルゴリズムが分かれば私はそれで満足ですので
読みやすく慣れ親しんだ C での作成をお願いできればとこのスレに書き込みをさせて頂きました。
さて、課題の方なのですが以下の通りです。
----------------------------------------------------------------
高等数学の定理によって、円周率πは、次のような数列の無限和で求められることが知られています。
π = 4 * ( 1 - 1/3 + 1/5 - 1/7 + 1/9 - ... 無限に続く)
上の式には、第5項までの和しか明記されていないが、数列の第10000項までの和を計算するプログラムを作成せよ。
----------------------------------------------------------------
php を読める方がいらっしゃるかどうかは分かりませんが、私は以下のようにプログミングしました。
03732/3
NGNG$num = 50;// 項の数
$pi = 0;
echo "円周率πの".$num."項までの和を計算しますね★<br /><br />";
$pi += (1 - 1 / 3 );
$flg = TRUE;
for($i = 3; $i < $num * 2 + 3; $i += 2) {
if($flg) {
$pi += 1 / ($i + 2);
$flg = FALSE;
} else {
$pi -= 1 / ($i + 2);
$flg = TRUE;
}
}
$pi *= 4;
echo $num."項までの和は".$pi."ですょん★";
03743/3
NGNG先輩方のお知恵を拝借させて頂ければ幸いでございます。
どうか宜しくお願い致します。
0375デフォルトの名無しさん
NGNGint num = 50;
double pi = 0;
for(int i = 1; i < num; i += 2) {
pi += 1 / i;
pi -= 1 / (i+1);
}
pi *= 4;
俺ならこう書く。
0376デフォルトの名無しさん
NGNG0377デフォルトの名無しさん
NGNG0378デフォルトの名無しさん
NGNG#include <math.h>
int main(void)
{
int num = 100000;
int index = 0;
double pi = 0.0;
while (index < num) {
pi += 4.0 * pow(-1.0, (double)index) / (double)(index * 2 + 1);
index++;
}
printf("pi = %f\n", pi);
return 0;
}
0379デフォルトの名無しさん
NGNG動きましたありがとうございます。
php にも pow 関数はあるみたいなので課題をクリアできそうです。
どうも助かりましたです。
0380デフォルトの名無しさん
NGNG元のやつをいかして作ってみた。まだ見てるのかな?
符号の計算程度にpowとか使うと遅くなるよ。
// 円周率πの数列の第 num 項まで和を計算
$num = 50; // 項数
$pi = 0;
echo "円周率πの".$num."項までの和を計算しますね★<br /><br />";
$flg = 4;
$num = $num * 2; // 項数を何度も計算させない
for($i = 1; $i < $num; $i += 2) {
$pi += $flg / $i;
$flg = -$flg;
}
$num /= 2; // 項数を表示用に戻す
echo $num."項までの和は".$pi."ですょん★";
0381379
NGNGとても勉強になりました。
自分で頭を悩ませて考えてたものをベースに改良して頂いて大変嬉しく思います。
私の元のプログラムよりかなりすっきりしててキレイですね。
しかも php で書いて下さって感激しております。
本当にどうもありがとうございました。
0382デフォルトの名無しさん
NGNGprintf("■",)の
■四角の部分は何を書けばよいのですか?
0383デフォルトの名無しさん
NGNG0384デフォルトの名無しさん
NGNG0385デフォルトの名無しさん
NGNG精度って…有効桁たった2桁だぞw
>>382
%g
って、どう出力したいかによる。0.0000000012と表示したいなら
%.10f
0386ぽろじょあ ◆niBmDfC40k
NGNG0387ぽろじょあ ◆niBmDfC40k
NGNG0388ぽろじょあ ◆niBmDfC40k
NGNG0389デフォルトの名無しさん
NGNG0390デフォルトの名無しさん
NGNGメンテナンスせよ。ってところはやってやるから、前半よろしく。
0391デフォルトの名無しさん
NGNG0392デフォルトの名無しさん
NGNGラウンジでC言語
http://etc3.2ch.net/test/read.cgi/entrance/1093006298/l50
0393デフォルトの名無しさん
NGNG「VBで作ったTest.dllのTest(String型)という関数を、
VCからChar型の引数2つを渡して呼び出すプログラムを作りなさい。」
というものです。
どうかお力をお借しください。
0394デフォルトの名無しさん
NGNG・VCから?VC限定?
WinAPI質問箱とかあったような気がするよ
0395393
NGNG質問の仕方が悪かったです。
VB側の関数Testも引き数は2つです。
引き数の数は変わりません。
Testという関数そのものの型を(String型)と書いたつもりでした。
すみません。
strResult=Test(strA,strB)と書くべきでした。
ちなみにDLLの上記関数を呼び出すのはVCです。
VBの方の関数を、VC側でクラスとして定義したいのですが、やり方がわからないのです。
ご教授お願い致します
0396デフォルトの名無しさん
NGNGこの辺が参考にならないかな?
http://homepage2.nifty.com/DSS/VCPP/DLL/dllindex.htm
0397デフォルトの名無しさん
NGNG淡色表示にしたメニューの、淡色表示を解除させるにはどうしたらよいのでしょうか?
よろしくお願いします。
0398デフォルトの名無しさん
NGNG「次の記述内容を満足するプログラムをJavaで作成せよ。
10名(A,B,C,D,E,F,G,H,I,J)の成績(0点から100点まで)をコマンド入力の際の
引数として与える。このとき、引数の順番とA,B,C,D,E,F,G,H,I,Jとを対応つける。
平均点を出力した後、A,B,C,D,E,F,G,H,I,Jの順番に表示し、平均点以上○印、
平均点以下は△印、最高点は◎印、最低点は×印で表示せよ。」
実行結果例としては
例)
平均点:70点
A 75点:○
B 65点:△
C 55点:△
D 95点:◎
E 40点:×
… …
のような表示です。よろしくお願いします 。
0399397
NGNG淡色表示にしてあるものは、ポップアップ設定をしてあるのでIDはありません。
0400デフォルトの名無しさん
NGNGjavaは確か専用スレがあるからそこで訊くといい。
0402 ◆Z0vd5w812U
NGNGGetMenuItemInfo()/SetMenuItemInfo()で制御。
0403デフォルトの名無しさん
NGNG多分こっちの方が向いてると思う。
Win32API質問箱 Build22
http://pc5.2ch.net/test/read.cgi/tech/1092524669/
0404398
NGNG「以下のC++で書かれたプログラムは複素数を表すクラス
complexを作成して複素数の加算(+)、減算(-)、乗算(*)、除
算(/)および代入演算(=)を行っている。プログラム中(1)〜
(5)を記述してプログラムを完成させ、さらに出力結果を求
めよ。ここで、クラスcomplexでは複素数zを極形式z=r(cosθ
+isinθ)(rは絶対値(大きさ)、θは偏角)で表している。クラス
complexのメンバ変数rは複素数の絶対値(大きさ)を表し、th
etaは複素数の偏角(argument)を表す。偏角の単位はラジア
ンである。演算子+,-,*,/,=がクラスcomplexに対してオーバー
ロードされている。必要であれば以下の数学関数を使用せよ。
double aten2(double y, double x):
y/xのアークタンジェント(逆正接)を返す。
double sin(double arg):
引数arg(単位:ラジアン)のサイン(正弦)を返す。
double cos(double arg):
引数arg(単位:ラジアン)のコサイン(余弦)を返す。
double sqrt(double num):
引数numの平方根を返す。引数は負になってはならない。
また、計算の過程で現われる複素数の実部、虚部ともに0に
なることはないとしてプログラムを作成してもよい。
」
スミマセンがよろしくお願いします。
0405398
NGNG#include <iostream>
#include <cmath>
using namespace std;
class complex {
double r, theta; // r: absolute value,
//theta : argument
public:
complex() { r = 0.0; theta = 0.0; }
complex(double rr, double tt)
{ r = rr; theta = tt; }
void get_r_theta(double &rr, double &tt)
{ rr = r; tt = theta; }
complex operator+(complex ob2);
complex operator-(complex ob2);
complex operator*(complex ob2);
complex operator/(complex ob2);
complex operator=(complex ob2);
};
0406398
NGNG{
complex temp;
(1)
return temp;
}
complex complex::operator-(complex ob2)
{
complex temp;
(2)
return temp;
}
complex complex::operator*(complex ob2)
{
complex temp;
(3)
return temp;
}
complex complex::operator/(complex ob2)
{
complex temp;
(4)
return temp;
}
complex complex::operator=(complex ob2)
{
(5)
return *this;
}
0407398
NGNG{
complex c1(1.0, 3.1416*0.33),
c2(2.0, 3.1416*0.2), c3;
double rr, tt;
c3 = c1 + c2;
c3.get_r_theta(rr, tt);
cout << "(c1+c2) r: " << rr
<< ", theta: " << tt << endl;
c3 = c1 - c2;
c3.get_r_theta(rr, tt);
cout << "(c1-c2) r: " << rr
<< ", theta: " << tt << endl;
c3 = c1 * c2;
c3.get_r_theta(rr, tt);
cout << "(c1*c2) r: " << rr
<< ", theta: " << tt << endl;
c3 = c1 / c2;
c3.get_r_theta(rr, tt);
cout << "(c1/c2) r: " << rr
<< ", theta: " << tt << endl;
c3 = c2;
c3.get_r_theta(rr, tt);
cout << "(c3=c2) r: " << rr
<< ", theta: " << tt << endl;
}
0408デフォルトの名無しさん
NGNGすんごい糞なんだけど
0409デフォルトの名無しさん
NGNGconst char *str = "***class***";
int length = strlen(str);
char(length);
これの最後の行はどういう意味なんでしょうか?
charのコンストラクタに引数を渡してるのでしょうか
0410デフォルトの名無しさん
NGNG0411デフォルトの名無しさん
NGNG0412デフォルトの名無しさん
NGNG俺に命令するな!!
0413デフォルトの名無しさん
NGNG#include <stdio.h>
int main()
{
puts("俺に命令するな!");
return 0;
}
0414デフォルトの名無しさん
NGNGdouble tr, tt, re, im;
ob2.get_r_theta(tr, tt);
re = r * cos(theta) + tr * cos(tt);
im = r * sin(theta) + tr * sin(tt);
temp = complex(sqrt(re * re + im * im), atan2(im, re));
//(2)
double rr, tt, re, im;
ob2.get_r_theta(rr, tt);
re = r * cos(theta) - rr * cos(tt);
im = r * sin(theta) - rr * sin(tt);
temp = complex(sqrt(re * re + im * im), atan2(im, re));
//(3)
double rr, tt;
ob2.get_r_theta(rr, tt);
temp = complex(r * rr, theta + tt);
//(4)
double rr, tt;
ob2.get_r_theta(rr, tt);
temp = complex(r / rr, theta - tt);
//(5)
double rr, tt;
ob2.get_r_theta(rr, tt);
r = rr; theta = tt;
0415デフォルトの名無しさん
NGNG0416デフォルトの名無しさん
NGNGint main(void)
{
puts("俺が最強だ");
while(1) puts("あ");
return 0;
}
0417デフォルトの名無しさん
NGNG0419デフォルトの名無しさん
NGNGただ単に、コンソールに出力するだけで良いの?計算はしないのか?
だったら簡単。入力をトークンに切り分けて、次の再帰下降パーサに突っ込めばよい。
逆もまた同じ。逆ポ用のパーサに流し込んでやればよい。
Program → { Expression ";" }
Expression → Term { ("+" | "-") Term output_action() }
Term → num_literal { ("*" | "/" | "%") num_literal output_action() }
0420411
NGNG逆ポーランドの計算はスタック使うだけでできたけど、
1+2*3 ==> 1 2 3 * + の変換は二分木使うらしく、さっぱりなんですが
0422デフォルトの名無しさん
NGNGpublic:
virtual viod read( unsigned a,char& b) = 0;
この=0はどういう意味に解釈したら良いんでしょうか?
0423デフォルトの名無しさん
NGNG0424デフォルトの名無しさん
NGNGpublic:
virtual void read( unsigned a,char& b) = 0;
でした
0425デフォルトの名無しさん
NGNG標準の<complex>使え
0426デフォルトの名無しさん
NGNG純粋仮想関数と言う。
そのクラスでは実装しないが、そのクラスを派生したクラスではもれなく実装するようにという通達。
0427424
NGNGC++ってどれだけ勉強すればいいのか。。。。。
コード読むこともままならない。。。
0428デフォルトの名無しさん
NGNGhttp://www.1point.jp/~book_2ch/program/cpp.html
ここで色々探して読んでみな
0429424
NGNG結構難しいですね。。1冊でも完読してみます。今手もとにあるのは英語の訳本
なので日本語が変で読みにくいんですよね。お金ないから買いしぶってたけど
もっといい本さがしてみます。
ありがとうございました
0430デフォルトの名無しさん
NGNG中間記法→逆ポーランド記法
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=205&fi=no
仕様
・各項は1文字まで(12+3 などはダメ)
・↑をオーバーした場合、1文字目しか表示しない
・仕様可能な演算子は四則演算子のみ
・()は非対応
注意事項
・Cとしてコンパイルすること
・VisualC++以外で動かなくても知らない
・正しくない式を入れた場合の動作は保証しない
・正しい式を入れた場合でもバグがあるかもしれない
・もっとレベルの高い人の答えを待った方が良いかもしれない
0431デフォルトの名無しさん
NGNGx=4を新たなyの値とするとxの新たな値は-11である。
x=-11を新たなyの値とするとxの新たな値は60である。
x=60を新たなyの値とするとxの新たな値は-291である。
以下この操作を繰り返し、n番目のxの値を求めよ。
0432デフォルトの名無しさん
NGNGそれじゃ宿題にならんだろw
0433デフォルトの名無しさん
NGNGint main(){
int n = 10;
int i,x, y=1;
for(i=1;i<=n;i++){
x = 9 - 5*y;
printf("%3d番目 x=%d\n",i,x);
y = x;
}
return 0;
}
0434デフォルトの名無しさん
NGNG1、main関数
入力された数値データをもとに、偶数・奇数の判定をし、ユーザー関数sub1(奇数の場合)、sub2(偶数の場合)
を呼び出す。
2、sub1関数
性的変数で呼び出し回数をカウントupし、戻り値として返す。int sub1(void)
3、sub2関数
性的変数で呼び出し、回数をカウントupし、戻り値として返す。int sub2(void)
--------------------------
数値入力==>5
数値入力==>2
数値入力==>10
数値入力==>3
数値入力==>8
数値入力==>-1
sub1:2回(奇数)
sub2:3回(偶数)
---------------------------
えっと・・・・t:b亜lkhがkjdhkdsjんgばえl、mrんdhl
おながいします。
0435デフォルトの名無しさん
NGNG○静的
あ〜恥かしいですw
0436デフォルトの名無しさん
NGNG#include <iostream>
int sub1() {
static int count;
return count++;
}
int sub2() {
static int count;
return count++;
}
int main() {
int n;
for (;;) {
cin >> n;
if (n < 0)
break;
if (n & 1)
sub1();
else
sub2();
}
std::cout << "sub1:" << sub1() << "(奇数)" << '\n';
std::cout << "sub2:" << sub2() << "(偶数)" << std::endl;
return 0;
}
0438デフォルトの名無しさん
NGNG0439デフォルトの名無しさん
NGNGカウンタ値を読むの時にカウントアップしてちゃなあ
0440デフォルトの名無しさん
NGNGおいおい。(^^;
0441デフォルトの名無しさん
NGNGどういうものがあり、一番使いやすいものはどれになりますでしょうか?
freeソフトでも有料ソフトでもよいので教えてください。よろしくお願いします
0442デフォルトの名無しさん
NGNG0443デフォルトの名無しさん
NGNG【初心者歓迎】C/C++室 Ver.8【環境依存OK】
http://pc5.2ch.net/test/read.cgi/tech/1091264964/588
0444デフォルトの名無しさん
NGNG適当な整数型変数(例で36789)に代入して、金種計算をして下のように出力する
\36789
\10000 3
\5000 1
\1000 1
・
・
・
\1 4
というプログラムを作成しているのですが途中からわからなくなってしまいました。
#include<stdio.h>
void main(void)
{
int a=36789;
printf("\\%d\n\n",a);
printf("\\10000 %1d\n",a/10000);
この次からどのように入力すれば良いのかわからないですが
どうすればよいのでしょうか?
0445デフォルトの名無しさん
NGNG自分の将来を考えた方がいい
0446デフォルトの名無しさん
NGNGprintf("\\10000 %1d\n",a/10000);
a %= 10000;
printf("\\5000 %1d\n",a/5000);
a %= 5000;
0447デフォルトの名無しさん
NGNGありがとうございました。m(_ _)m
なんとかできました。
0448デフォルトの名無しさん
NGNG何かの処理その1
printf("AAAAA");←1番目は最初からある
printf("BBBBB");←2番目はここに追加
printf("CCCCC");←3番目はここに追加
printf("DDDDD");←4番目はここに追加
何かの処理その2
}
二番目以降n番目までのprintf〜を追加し、ソースを作成するプログラムを
作るにはどうすればいいのですか?
0449デフォルトの名無しさん
NGNG答え書いてもらってるのに「なんとかできた」って…
>>448
もっと具体的に
0450デフォルトの名無しさん
NGNGchar i;
printf( "main(){\n" );
printf( "\t何かの処理その1\n" );
printf( "\tprintf(\"AAAAA\");\n" );
for ( i = 1; i < n; i++ )
printf( "\tprintf(\"%c%c%c%c%c\");\n", 'A' + i, 'A' + i, 'A' + i, 'A' + i, 'A' + i );
printf( "\t何かの処理その2\n" );
printf( "}\n" );
0451デフォルトの名無しさん
NGNGマルチすんなどあほ
0452デフォルトの名無しさん
NGNG・OSはサーバ側はLinuxでクライアント側はWindows
・kterm(DOS)で文字列のやり取りをする
・通信は非同期式
・サーバ側のプログラムはあるのでクライアント側のプログラムを作らねばならない
http://www.ops.dti.ne.jp/~allergy/socket/socket.html#event
を参考にしてサーバから受信はできるようになったのですが、
標準入力で読み込んでサーバ側に送信するところの記述が分かりません
分からない部分のソースは>>453です
0453452
NGNG// ソケットへの接続が終了した
if (events.lNetworkEvents & FD_CLOSE)
{
printf( "Sever connection closed\n" );
closesocket(sd);// 通信が終わったらソケットを閉じる
WSACleanup();
WSACloseEvent(hEvent);// イベントクローズ
return 0;
}
// ソケットの受信バッファにデータがある
if (events.lNetworkEvents & FD_READ)
{
recvSize = recv(sd, buf, sizeof(buf), 0);
printf("Received %d bytes\n",recvSize);
printf( "Form Server->%s\n", buf );
}
// ソケットの送信バッファに空きができた
if (events.lNetworkEvents & FD_WRITE)// そもそもここのif文も違うかもしれません
{
//ここが分かりません
}
0454デフォルトの名無しさん
NGNGマルチって何?To Heart?
0455デフォルトの名無しさん
NGNGhttp://www.google.co.jp/search?hl=ja&ie=UTF-8&q=%E3%83%9E%E3%83%AB%E3%83%81%E3%83%9D%E3%82%B9%E3%83%88&lr=lang_ja
0456デフォルトの名無しさん
NGNGbufに送りたいデータをフォーマット揃えて、send関数とか使って飛ばすんじゃないの?
0457452
NGNGsendで送れば良いと思うんですが、プロンプトからの入力の取り込み方が分からないのです。
fegts()やgets()ではうまくいきませんでした。
0458デフォルトの名無しさん
NGNG正整数を1節点に1桁の数を持つ整数リストintlist(ただし逆順)によって表現することにする。(リストの先頭には頭の節点、終端は0で表す)。
型は
typedef struct node{ int element;struct node* next;}* intlist
で表す。例えば、1024と言う数を与えられたとき、
→□□→□(4)□→□(2)□→□(0)□→□(1)□(0)
head (四角の中には後ろの()の中の値が入ります)
ここで、正整数xを与えられたとき、それを表現した整数リストを返す関数createを書け。
ただし、節点を作るときはmallocを使う。
と言う問題をお願いします。
0459458
NGNG見てもらえますか。
intlist create(int x)
{
intlist head,rear,front;
head = (intlist)malloc(sizeof(struct node));
head->next=0;
rear = head;
while( x != 0 )
{
rear->next = (intlist)malloc(sizeof(struct node));
front = rear->next;
front->element = x % 10;
front->next = 0;
x /= 10;
rear = rear->next;
}
return head;
}
0460デフォルトの名無しさん
NGNGコンパイルできる環境を用意してから出直してこい。
それと重要なことだが、リストではheadに対応する語はrearではなくtailだボケ。
0461シュトラッ仙
NGNG質問の回答用ソースを貼るスレ の レス番「207」
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=207
0462デフォルトの名無しさん
NGNGないでしょうか。
0463デフォルトの名無しさん
NGNGラーメン屋でラーメン屋の場所を聞くような事すんなや
Perlについての質問箱 11箱目
ttp://pc5.2ch.net/test/read.cgi/tech/1090889189/l50
Perl言語に詳しい人に質問!
http://pc5.2ch.net/test/read.cgi/tech/1037383722/l50
0464デフォルトの名無しさん
NGNG0466デフォルトの名無しさん
NGNGint** a;
a = new int[3][4]; //javaならこんな感じでいけたとおもうんでふけど
0467デフォルトの名無しさん
NGNG0468466
NGNG返信ありがとうございます。
int** a;
a = (int**)new int[3*4];
これでも、とおりますかね?
コンパイルは通るんですけど、何か実行時エラーがでちゃうんですけど?
0469デフォルトの名無しさん
NGNGarray = (int **)new int*[m];
array[0] = new int[m * n];
for(i = 1; i < m; i++) array[i] = array[0] + i * n;
// 処理
delete[] array[0];
delete[] array;
int *とintのサイズが同じならこれもありかな。
// int i, m, n, **array;
array = (int **)new int[m + m * n];
for(i = 0; i < m; i++) array[i] = (int *)array + m + n * i;
// 処理
delete[] array;
C++詳しくないので間違ってたらスマソ
0470デフォルトの名無しさん
NGNGまとめてどっか行ってくださいな
0471デフォルトの名無しさん
NGNG勝手に「二次元配列を動的に確保しなさい」とか、そんな宿題とか解釈してた。
鬱だ・・・
0472デフォルトの名無しさん
NGNGこれが2ch
0473デフォルトの名無しさん
NGNGjavaとか激しくすれ違いなこと聞いてたり、
おまけにperlの宿題スレを教えてくれだ?
まとめて視界から消えろ
0474デフォルトの名無しさん
NGNG/ ヽ / ヽ イライライライラ
/ ヽ___/ ヽ イライライライラ
/ ノ( \
| ⌒ ● /\ ● | / ̄ ̄ ̄ ̄ ̄ ̄
へ | / \ |< 宿題まだー?
/ \\ \ / ̄ ̄ ̄\ / \______
/ /\\ .> ヽ
カンカンカン// \\/ i i _ |
カンカンカン i | ‖| / ̄ ヽ / __
カンカンカン Σ [ ̄ ̄ ̄ ̄ ̄ヽ / ̄ /|
\ ̄ ̄ ̄ ̄ ̄ ̄ ̄/ ̄ ̄ヽ_____ / / |
\回回回回回/ / |
0475デフォルトの名無しさん
NGNGC++相談室 part34
http://pc5.2ch.net/test/read.cgi/tech/1092018643/
こっちが最適。
0476デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1091264964/
こっちの方が。
初心者歓迎だし、C++ 関係ないし。
0477デフォルトの名無しさん
NGNG0478デフォルトの名無しさん
NGNGreadは?
あったっけ?
0479=>>475,477
NGNGint a[2][3];と書く場合、メモリ上は次のようなレイアウトになっている。
[00][01][02][10][11][12]
この時a+i(0<=i<=3)はint(*)[3]型になっている。そこで、例えばa+1とすると、
コンパイラはsizeof(int[3])だけポインタを進めねばならないことを「知っている」。
よって、[00][01][02][10][11][12]
↑a
となる。では、int** a = (int**)new int[2][3];とした場合a[1][1]はどうなるか。
a[1]はa+1と解釈される。問題は+1することによってポインタはどのように進め
られるか。new int[2 * 3];の返す型はint*であるが、ここではint**にキャスト
されているので、今はこうなっている。⇒[0][1][2][3][4][5]
a[1](≒a+1)によってaがsizeof(int*)だけ進められる。これは規格に則った
正常な解釈である。本当はsizeof(int(*)[3])だけ進んでほしいのだが、それは
無茶な話だ。a[1][1]はどうなるかというと、[0]からsizeof(int*)進んだところに
ある値(なんだか予想も付かないが)をポインタ値として解釈した場所(これも
どこだか分からないが)からsizeof(int)だけ進んだ場所の値だ。なぜならa[1][1]
≒*(*(a+1)+1)であるからだ。いったいここはどこだろう?世界の果てだろうか?
こう見てきたように、int** a = (int**)new int[2][3];と書いてもa[1][1]のような
使い方はできない。
「それでも」と、あなたは言うかもしれない。「a[1][1]と書いてもよいようにnewを
使いたい!」では、解答を与えよう。
0480=>>475,477
NGNGint m = 2, n = 3;
//初期化
// m個の要素を持ったint*型の配列を容易
int** array = new int*[m];
// それぞれにn個の要素を持ったintの配列
for (int i = 0; i < m; ++i) array[i] = new int[n];
// 処理
for (int i = 0; i < m; ++i)
for (int j = 0; j < n; ++j)
array[i][j] = foo();
// 後始末
for (int i = 0; i < m; ++i) delete[] array[i];
delete[] array;
…めんどくさい!あなたはそう叫ぶかもしれないが、これが現実だ。
どうか受け止めてもらいたい。現実は時として厳しい。これも厳しい
現実だ。
最後に1つだけ付け加えておこう。C++としては、std::vector<int>を使う
ことをお勧めする。最後の後始末はこれで必要ない。delete[]を忘れて
自分の書いたコードがメモリをリークするのを恐れて夜眠れなくなること
もない。これで万全だ。では、快適なC++ライフを楽しんでもらおう。
0481デフォルトの名無しさん
NGNGおねがい!本を出して!
0482デフォルトの名無しさん
NGNGうだうだ書いて、結論は否定だよ。(本としては)ダメじゃん。
0483デフォルトの名無しさん
NGNG0484デフォルトの名無しさん
NGNG>>479-480は質問に対する解答を示した後、余談としてvectorを挙げている
ように見えるけれど…
0485デフォルトの名無しさん
NGNG上位二桁と下位二桁を出力するようににプログラムを作ろうと
しているのですが、
#include<stdio.h>
void main(void)
{
int atai=1234;
printf("atai=%d\n\n",atai);
printf("jyoui2keta = %2d\n",atai)
と、入力したところでつまずいてしまいました。
また、printf("jyoui2keta = %2d\n",atai)の部分をコンパイルすると
2桁になって出力されません・・・
どのようにすれば上位二桁を下位二桁を出力できるか教えてくださいm(__)m
0486デフォルトの名無しさん
NGNGint main(void)
{
int atai=1234;
printf("atai = %d\n\n", atai);
printf("joui2keta = %2d\n\n", atai / 100);
printf("kai2keta = %2d\n\n", atai % 100);
return 0;
}
0487デフォルトの名無しさん
NGNG0488デフォルトの名無しさん
NGNGありがとうございました。
これですべての入力の宿題終わりました。
(あとは、フローチャートやコーディングや感想かかなきゃですけど・・w)
0489デフォルトの名無しさん
NGNG0490デフォルトの名無しさん
NGNG0491デフォルトの名無しさん
NGNG一本筋のフローチャートになるけど…
0492デフォルトの名無しさん
NGNG0493デフォルトの名無しさん
NGNG0494デフォルトの名無しさん
NGNG文章で書かれたことをチャートにおこすとか・・・。
0495デフォルトの名無しさん
NGNG一回も書いたことないし、書こうとも思わない
0496デフォルトの名無しさん
NGNGプログラムが分かってない人に説明するときにそこそこ役に立つ。
デバッグするときにたまに役に立つ。
0497デフォルトの名無しさん
NGNG0498デフォルトの名無しさん
NGNGまた、UMLは教える内容がわりと多いので半期ほどの授業時間が必要。
0499デフォルトの名無しさん
NGNG0500488
NGNG0501デフォルトの名無しさん
NGNG0502デフォルトの名無しさん
NGNGだから?
0503デフォルトの名無しさん
NGNGそのためにいやいやフローチャートを書くのもわかる。
だったらせめてループ記号くらい使おうよ。ワードにあるのがフローチャート記号の全てじゃないんだから。
0504デフォルトの名無しさん
NGNGどのようにすればよいのでしょうか
txtが以下のようなら
あいう
いうえ
あいう
うえお
新たに
あいう 2 /* 出現回数
いうえ 1
うえお 1
のようにしたいのですがわかりません
c言語を使用してます。よろしくお願いしますm(_ _)m
0505デフォルトの名無しさん
NGNG0506デフォルトの名無しさん
NGNGtxtがでかすぎてメモリに蓄積すると大変なんですよ(ノД`)シクシク
0507デフォルトの名無しさん
NGNGでかすぎるって、何100MBもあるの?
0508デフォルトの名無しさん
NGNGはい、あります(゚Д゚)ノ
0509デフォルトの名無しさん
NGNG0510デフォルトの名無しさん
NGNG総検索でがんばります、、、(+д+)マズー
0511シュトラッ仙
NGNGもう少し詳しく問題内容を聞きたいです。
1.その文字列はどういった内容ですか(具体的に)?
2.改行文字が出現するまでを「1つの文字列」とみなすのですか?
3.使用可能なディスクのサイズはいくらですか?
0512デフォルトの名無しさん
NGNG2.1行に5〜10文字程度を1つの文字列とみなし、語句の最後に改行があります
3.特に制限はありません
よろしくお願いしますm(_ _)m
0513デフォルトの名無しさん
NGNG0514デフォルトの名無しさん
NGNG504の例のように1行改行までを1つの文字列とした
かな全角5〜10文字程度の長さです。
0515デフォルトの名無しさん
NGNGとりあえず2GBくらいメモリ積んどけ。
金で解決できる問題ならそれで済ますのも一つの手だ。
0516デフォルトの名無しさん
NGNG#include <map>
#include <string>
using namespace std;
int main()
{
map<string, int> counter;
FILE *fp;
char str[22];
fp = fopen("temp.txt", "r");
while(fgets(str, sizeof(str), fp) != NULL){
if(str[strlen(str)-1] == '\n') str[strlen(str)-1] = '\0';
counter[str]++;
}
fclose(fp);
fp = fopen("temp2.txt", "w");
map<string, int>::iterator itr;
for(itr = counter.begin(); itr != counter.end(); itr++)
fprintf(fp, "%s %d\n", itr->first.c_str(), itr->second);
fclose(fp);
return 0;
}
C++(VisualC++の拡張使ってないか不安だが)ならこれで十分なんだよな。
………速度とメモリ無視してるけど。
0517癒 ◆xTtI333vNE
NGNG0518デフォルトの名無しさん
NGNG0519デフォルトの名無しさん
NGNG後でマージすれば良いし。それくらい考えられないのか?
>>504
0520デフォルトの名無しさん
NGNG> C++(-略-)なら
~~~~ ~~~~
0521デフォルトの名無しさん
NGNGどうもありがとうございますm(_ _)m
さっそくファイル分割してmergesortを試してみまっす!
0522デフォルトの名無しさん
NGNG最大8文字の英小文字からなる1億個の文字列(全て異なる。未ソート)が書かれたファイルを読み込んで、ある与えられた英小文字列αがあるかどうかを調べる。
もしあった場合には、このファイルを辞書順に並べた場合の何番目にあるか。また、その前後の文字列は何か。
ただしメモリは256MBしかない。
これを実現するプログラムの概要を示せ。
と言う問題で、効率がいいアルゴリズムってどんな感じですかね。
0523デフォルトの名無しさん
NGNG0524癒 ◆xTtI333vNE
NGNG>>504が
>c言語を使用してます。よろしくお願いしますm(_ _)m
って言ってたからなんだけど。。。
まぁ、本人満足してるみたいだからいいか
0525デフォルトの名無しさん
NGNG"C++(ここは略)ならこれで十分なんだよな。"(でも、Cでやるとな・・・。)
って感じで言ったんだけど。
0527デフォルトの名無しさん
NGNGこちらこそ、わかりにくい文章でスマソ
0528デフォルトの名無しさん
NGNG>>521
ファイル分割って言っても、行の途中で分割すると
カウントが正確でなくなるからな。
最後にそこだけケアしとけ。
0529デフォルトの名無しさん
NGNG2次元配列を用いて標準入力から文字列を入力して表示しなさい。
(入力にはfgetsを用いること)
さらにstrlenを使い文字数をカウントしなさい。
またその文字数は入力した文字列の数と違うことはなぜか?
その原因を突き止め、文字数を用いた方法で解決しなさい。
まったくわかりません(ノ_・、)
お願いします(T人T)
0530デフォルトの名無しさん
NGNGchar buff[1024];
がある時、
fgets(buff, 1024, stdin);
でbuffに標準入力から読み込める。無理に2次配列を使うなら
char buff[30][1024];
fget(buff[i], 1024, stdin); (i = 0 .. 29)
みたいになる、はず。
strlenでは最後の改行文字まで読み込む。そのことは
for(i=0;buff[i];i++)printf("%02X", buff[i]);
で確認できる。(最後に改行の0Cか0Aのどちらかは出てくる)
なので、その分入力した文字列の文字数と異なる。
解決法は…って、何を解決するの?
0531デフォルトの名無しさん
NGNG#include<stdio.h>
#include<string.h>
int main(void)
{
char test[1][10];
int tmp;
fgets(test[0] ,sizeof(test[0]),stdin);
printf("%s",test[0]);
//解決法?w
tmp=strlen(test[0]);
test[tmp-1]='\0';
printf("%s",test[0]);
return 0;
}
↑のようにやってみたけどさー
エラーはくぜぃ!教えてエロい人!
↓エラー内容
エラー E2277 a.c 14: 左辺値が必要(関数 main )
警告 W8004 a.c 19: 'tmp' に代入した値は使われていない(関数 main )
*** 1 errors in Compile ***
0532デフォルトの名無しさん
NGNG0533デフォルトの名無しさん
NGNGtest[0][tmp-1]='\0';
0534デフォルトの名無しさん
NGNGcool
0535デフォルトの名無しさん
NGNG#include<stdio.h>
#include<string.h>
int main(void)
{
char test[1][10];
printf("%s",(fgets(test[0],sizeof(test[0]),stdin), test[0]));
printf("%s",(test[0][strlen(test[0])-1]='\0', test[0]));
return 0;
}
0536デフォルトの名無しさん
NGNG課題内容ですが、
・各自でテーマを設定し、プログラミングをする
・C言語を用いて、LinuxもしくはWindowsで動作可能であること
・分岐構文と反復構文を用いること
・プログラム中にタイトルやコメントを十分に入れること
・A4用紙10枚以内
授業が分からないまま課題が出たのでテーマといっても全然思い付きません
高2なのでまだ難しい事は習ってません
何か適切なプログラムがあれば教えて下さい。
0537デフォルトの名無しさん
NGNG授業ではどの程度のことを学びましたか?
大まかな項目名だけでも書いてください。
0538デフォルトの名無しさん
NGNGとりあえずこのスレの宿題でよさげなやつでもパクっといたらどうでしょう?
0539536
NGNG変数・分岐構文・反復構文あたりだけです
授業で習ってない内容が入ってても構わないそうです
>>538
一応一通り目を通しましたが、理解できないものが大部分でした。。
0540デフォルトの名無しさん
NGNGgreat!
0541デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=208
こんなんどうかな?
これ昔俺が宿題用に作ったやつで単純利息で目標金額まで何年かかるかってゆーもの。
ちなみに複利計算っつーのもあるけど
またあとでUPしよう
間違っていたら訂正よろしゅー
0542デフォルトの名無しさん
NGNGすまん程度が低くて参考ににならんかったな
0543デフォルトの名無しさん
NGNG#include <time.h>
#include <math.h>
#define PRIME_MAX 258440
int main(void)
{
unsigned int sosuukouho,sosuu[258440],n,m/*配列の上限は258442個*/;
clock_t start, end;
start = clock();
sosuu[0] = 2;m = 1;sosuukouho=3;
/*このwhile文でPRIME_MAX個の素数を発見する*/
while(m<=PRIME_MAX-1){
for(n=0; n<=m; n++){
if(sosuukouho % sosuu[n] == 0)
break;
if((sosuukouho % sosuu[n] != 0) && (n == m-1)){
sosuu[n+1] = sosuukouho;
m += 1;
}
}
sosuukouho=sosuukouho+2;
}end = clock();
for(sosuukouho=0,sosuukouho<10000;sosuukouho++)
putchar('\a');/*終了を音で知らせる*/
/*ここのコメントは素数を表示する機能をなくすため*/
/*for(n=0;n<=m-1;n++){*/
/*printf("%d番目の素数は%dです\n",n+1,sosuu[n]);}*/
printf("処理にかかった時間: %f秒\n", (double)(end - start) / CLOCKS_PER_SEC);
printf("素数の数は%d個で、最後の素数は%dです。\n",m,sosuu[m-1]);
return 0;
}
>>536プレゼント これでも提出しとけ
0544デフォルトの名無しさん
NGNG0545536
NGNG簡単なものでも大丈夫なので十分参考になりました
とりあえずこの二つで頑張ってみます。
0546デフォルトの名無しさん
NGNGという宿題がでたのですがよくわかりません・・・
どなたか教えてもらえませんでしょうか?
0547デフォルトの名無しさん
NGNG0548デフォルトの名無しさん
NGNG0549デフォルトの名無しさん
NGNG宿題自体じゃなくて、アルゴリズムを"考える"ところに
意味があるんじゃなかろうか。
0550デフォルトの名無しさん
NGNGbaka
0551デフォルトの名無しさん
NGNGScanfとはだなつまりえーと、んじゃまず発音から教えるか。
発音はだな ス カ ン エ フ だ!
OK?そうだ勇気を出して口に出して言ってみるんだ!せーのっ
「・・・」
OKOK恥ずかしがりやなんだな。大丈夫だそんなに恥ずかしくないぞ。
勇気をだして言ってみるんだ!はいっせーのっ!
0552デフォルトの名無しさん
NGNG0553デフォルトの名無しさん
NGNG子音の後ろ f の発音は普通 フ[f] だろ?
そんなんじゃ英語の単位貰えないぜ?
0554デフォルトの名無しさん
NGNG0.3倍した時の値とその値がXがいくつの時かを求めるプログラムを
おねがいします。
(0.3倍のYの値が無ければ前後二つのYの値とそれに対応する二つのXの値を求めよ)
0555デフォルトの名無しさん
NGNGdouble f(double x){return 4*x+5;}
double fi(double y){return (y-5)/4;}
int main()
{
double x,y;
int x1,x2;
int i;
int n;
printf("n >");
scanf("%d",&n);
for(i=1;i<=n*10;i++)
x=i/10.0;
printf("x=%fの時 y=%f\n",x,f(x));
}
y=f(n)*0.3;
x=fi(y);
x1=(int)(x*10);
x2=(int)((x+0.09)*10);
printf("y=%f の時 x=%f",y,x1/10.0);
if(x1!=x2)printf(" , %f",x2/10.0);
printf("\n");
return 0;
}
0556デフォルトの名無しさん
NGNGprintf("y=%f の時 x=%f",f(x1/10.0),x1/10.0);
if(x1!=x2)printf(" , y=%f の時 x=%f",f(x2/10.0),x2/10.0);
0557デフォルトの名無しさん
NGNG釣り・・・だよな。
0558デフォルトの名無しさん
NGNG次の宿題まだー?
0559デフォルトの名無しさん
NGNG>>352 >>411
0560デフォルトの名無しさん
NGNG角田 熊沢 藤田 岸
松永 安田 渡辺 和田
・・・・・・
のようにTabで区切られた語群です。
「ファイル名」 eibun1.dat
「何行目」 N
「何番目の語」 M
ファイル名とN,M(数字)を入力したときに
M行目のN番目の単語を表示するプログラムを作成してください。
0561デフォルトの名無しさん
NGNG↓
N行目のM番目
0562デフォルトの名無しさん
NGNGそれだったらタブ以外に改行文字も入れないと。
0563デフォルトの名無しさん
NGNG夏休みの宿題として、C++で住所帳を書いています。
で、名前などの編集機能を付けようと頑張っています。
一応、名前で検索をかけて、同じ名前があった場合に、どちらの名前を編集するか選択させるようにしたいのですが、
その部分で困っています。
とりあえず、ダブった名前のあるオブジェクトをさすポインタをオブジェクトの配列に代入していき、
編集するようにしたいんですが、うまくいきません。
*pList2[?] = pList2->Next でやろうとしました。
で、その配列を表示しようとしたら、エラーになります。
どうかお願いします。
0564デフォルトの名無しさん
NGNGつべこべ言わずにソース晒せ
0565563
NGNGこんな感じです。
0566デフォルトの名無しさん
NGNG0567デフォルトの名無しさん
NGNGこれが見当たらないんだが・・・
0568563
NGNGpList[k - 1] = pList1->Next;
下のほ〜にあります!すみません。例えで、書いただけなので。
typedefっていらないんですね☆
ありがとうございます!勉強になります
0569デフォルトの名無しさん
NGNGpList[?]はAddress_listであって、Address_list*
じゃないですよ
0570デフォルトの名無しさん
NGNGどうだっけ?
0571563
NGNG0572デフォルトの名無しさん
NGNGAddress_list* pList1 = this->Next, *pList[10];
こうやったとしても
pList[k - 1] = pList1->Next;
cout << k++ << ":" << endl;
printf(" [名前] %s\n [年齢] %s\n [住所] %s\n [電話番号] %s\n",
pList[k - 1].pName, pList[k - 1].pAge, pList[k - 1].pAddress, pList[k - 1].pTelephone_number);
↑
最初pList[0]しか代入してないのでpList[1]が未定・・・
0573デフォルトの名無しさん
NGNGprintf(" [名前] %s\n [年齢] %s\n [住所] %s\n [電話番号] %s\n",
pList[k - 1]->pName, pList[k - 1]->pAge, pList[k - 1]->pAddress, pList[k - 1]->pTelephone_number);
0574563
NGNG0575デフォルトの名無しさん
NGNG×オブジェクトをさすポインタをオブジェクトの配列に代入
○オブジェクトをさすポインタをオブジェクトのポインタの配列に代入
あと、配列の要素も然り
0576563
NGNG代入できないのは理解しました☆
ところで、今僕がやってるやり方ってあんまり良くないんでしょうか?
0577デフォルトの名無しさん
NGNGこれじゃだめ?w
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=307
まぁよゆーのエラーありなんだが
0578デフォルトの名無しさん
NGNG0579563
NGNG同じ名前を2つ入力して、検索でその名前を入力したのですが、
2つ目が表示されませんでした。。。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1094053081&res=1
0580デフォルトの名無しさん
NGNG0581563
NGNG0582デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=210
3箇所修正しました
0583デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=211
0584563
NGNG問題を解決することができました!
0585デフォルトの名無しさん
NGNG0586デフォルトの名無しさん
NGNG[ ] (´∀` )←>>580
0587デフォルトの名無しさん
NGNG0588デフォルトの名無しさん
NGNGコンパイラが信用できません
そして何より自分が信用できません
0589デフォルトの名無しさん
NGNG一番信用できないのがヒューマンエラー
0590デフォルトの名無しさん
NGNGを初期化し、体重の合計と平均を求めるプログラムを作成しなさい。ただし、未測定者の体重値は0.0としてある。
とりあえず合計を出そうとしましたが答えが0.0になってしまいます。どなたかお願いします。
#include <stdio.h>
int main(void)
{
double data[10] = {67.2, 43.6, 78.9, 50.1, 0.0, 32.9, 44.4, 100.9, 62.5, 0.0};
int i, goukei=0;
for(i=0;i<10;i++);{
goukei += data[i];
}
for(i=0;i<10;i++);{
printf("%f\n", data[10]);
}
printf("体重の合計は%fです。\n", data[10]);
return 0;
}
0591デフォルトの名無しさん
NGNG1. data が double なのに
goukei が int なのはいかがなものか。
2. data[10] を printf するのはまずい。
有効なのは data[0] から data[9] まで。
3. 最後の printf、合計値が入っているのは data[10] じゃない。
4. for ループの printf もなぜ data[10] …
0592591
NGNG未測定者は平均値の計算に含めないこと、
という意味なんですかね?
まあ、がんばってください。
0593デフォルトの名無しさん
NGNG座標は、x,yともに順番になっています。例えば1つ目の座標は
(x1,y1)=(0.0000E+00,0.5240E+01) となります。
windowsXP,bccを使用しています。よろしくお願いします。
sample.txtの内容
x座標
0.0000E+00 0.1000E-01 0.2000E-01 0.5000E-01 0.1000E+00
0.2000E+00 0.5000E+00 0.1000E+01 0.1500E+01 0.2000E+01
0.3000E+01 0.4000E+01 0.5000E+01 0.6000E+01 0.8000E+01
0.9000E+01 0.1000E+02 0.1100E+02 0.1200E+02 0.1248E+02
0.1469E+02 0.1920E+02 0.2336E+02 0.2635E+02 0.2916E+02
0.3364E+02 0.4053E+02 0.4489E+02 0.4900E+02 0.5427E+02
0.5929E+02 0.6453E+02 0.7056E+02 0.7862E+02 0.1000E+03
0.1138E+03 0.1210E+03 0.1284E+03 0.1440E+03 0.1690E+03
0.2000E+03 0.2250E+03 0.2560E+03 0.3000E+03 0.3480E+03
0.4000E+03 0.5000E+03 0.6000E+03 0.7000E+03 0.8000E+03
0.9000E+03 0.1000E+04 0.5000E+04 0.1000E+05
y座標
0.5240E+01 0.5280E+01 0.5400E+01 0.5650E+01 0.5900E+01
0.6200E+01 0.6620E+01 0.6880E+01 0.6980E+01 0.7000E+01
0.6870E+01 0.6610E+01 0.6290E+01 0.6000E+01 0.5350E+01
0.5050E+01 0.4760E+01 0.4480E+01 0.4310E+01 0.4210E+01
0.3770E+01 0.3000E+01 0.2430E+01 0.2100E+01 0.1830E+01
0.1460E+01 0.1080E+01 0.9170E+00 0.7800E+00 0.6500E+00
0.5600E+00 0.4760E+00 0.4150E+00 0.3430E+00 0.2270E+00
0.1870E+00 0.1650E+00 0.1500E+00 0.1220E+00 0.9200E-01
0.6950E-01 0.5600E-01 0.4500E-01 0.3500E-01 0.2720E-01
0.2130E-01 0.1450E-01 0.1070E-01 0.8200E-02 0.6600E-02
0.5400E-02 0.4550E-02 0.3000E-03 0.9300E-04
0594デフォルトの名無しさん
NGNGエラーを信用するも何もないだろ?(age)
0595デフォルトの名無しさん
NGNGfor文の後に;はいらないですね
0596デフォルトの名無しさん
NGNG{
printf("%f\n", data[10]);
}
と同じだからコンパイルできるんだよな。
0597デフォルトの名無しさん
NGNG#include <stdio.h>
int main(void)
{
double data[10] = {67.2, 43.6, 78.9, 50.1, 0.0, 32.9, 44.4, 100.9, 62.5, 0.0};
int i,j=0;
double goukei=0,heikinn;
for(i=0;i<10;i++){
goukei += data[i];
if(data[i]==0.0){
j++;
}
}
for(i=0;i<10;i++){
printf("%f\n", data[i]);
}
heikinn=goukei/(i-j);
printf("体重の合計は%f 平均は %fです。\n", goukei,heikinn);
return 0;
}
0598590
NGNGint main(void)
{
double data[10] = {67.2, 43.6, 78.9, 50.1, 0.0, 32.9, 44.4, 100.9, 62.5, 0.0}, goukei=0;
int i;
for(i=0;i<10;i++);{
goukei += data[i];
}
for(i=0;i<10;i++);
printf("体重の合計は%fです\n", data[i]);
return 0;
}
こういう事ですか・・・・・?すみませんが全然わかりません
0600デフォルトの名無しさん
NGNG直線補間する座標は自分で入力するの?
0601デフォルトの名無しさん
NGNG座標はテキストファイルに入っているデータです。
「sample.txt」の内容そのまんまです。
0602デフォルトの名無しさん
NGNG入力したデータをファイルに書き込みできるようにしようと思ったのですが、
どう書いていいのか、全然わかりません。
で、ファイルに保存したデータを住所帳を開く度に使えるようにしたいのですが、
どうすればいいのでしょうか?
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1094188282&res=1
お願いします。
0603デフォルトの名無しさん
NGNGそこで質問です。
Basic関数でのLEFT関数(ttp://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vblr7/html/vafctleft.asp)
と同様の命令を出す、vc++で使える関数はあるのでしょうか?
よろしくお願いします。
0604デフォルトの名無しさん
NGNGstrncpy()
0605>593
NGNG#include <stdlib.h>
enum {MAXDATA = 100};
int ndata = 0;
double data_x[MAXDATA], data_y[MAXDATA];
void read_data(FILE *fp)
{
int i;
fscanf(fp, "%*s"); /* "X座標"を読み飛ばす */
for (ndata = 0; ndata < MAXDATA && fscanf(fp, "%lf", &data_x[ndata]); ndata++)
;
fscanf(fp, "%*s"); /* "Y座標"を読み飛ばす */
for (i = 0; i < ndata && fscanf(fp, "%lf", &data_y[i]); i++)
;
}
void print_data(FILE *fp)
{
int i;
for (i = 0; i < ndata; i++)
fprintf(fp, "%f,%f\n", data_x[i], data_y[i]);
}
int main(void)
{
read_data(stdin);print_data(stdout);
return 0;
}
/* 補完は仕様がよくわからんので、データのリードだけ。続きはだれかやってちょ */
0606デフォルトの名無しさん
NGNGどんな出力がほしいの?
それが解からないと…
0607デフォルトの名無しさん
NGNG名前欄に>593と書いてあるが。
0608デフォルトの名無しさん
NGNGデータから線形補間してxに対応するyの値を出力せよ、
といういう意味でOK?
0609605
NGNGx入力してyを出力するのか、入出力が逆か、
補完させるちゅーても、入出力どーすんのかわかんねーので。これ以上は難しいやね。
普通は、xの値からyを推定するって思うが・・・(>>608氏と同じこと)。ってことで、続きよろしくです。
・・・てか>>593氏が返事くれると、続きだれか作ってくれるでしょう・・・。
0611デフォルトの名無しさん
NGNG0612593
NGNG0614
NGNGマジでわからなくて、困ってるんですが・・・本当にお願いします。
0615593
NGNG0616デフォルトの名無しさん
NGNGうん や り 気 がなくなったんだよ。
0617デフォルトの名無しさん
NGNG住所録のデータをファイルに書き込むってMySQLつかったりできるといいね^^
0618デフォルトの名無しさん
NGNGで、MySQLって難しいってか、意味が全然・・・。
他に方法はないでしょうか?
0619デフォルトの名無しさん
NGNGもちろんありますよ。
たとえば、CVS形式で出力して読み込むだけなら簡単ですね。
名前1,年齢1,住所1,電話番号1
名前2,年齢2,住所2,電話番号2
・
・
のような形式でファイルに書き込んで、
読み込むときは
「,」でトークンをわけてやるようにすればできるでしょう。
0620デフォルトの名無しさん
NGNG難しい内容のような気がするんですが・・・。
解りやすく説明したサイトを知っていれば教えてもらえないでしょうか?
それと、>>619さんならどんな風にソースを書きますか?
0621デフォルトの名無しさん
NGNG過去ログに似たようなプログラムが何度も出てきたように思います。
詳しくは過去ログにて。
同じことはあまり書きたくない。
(Cのスレだったかな?まぁ宿題・質問スレの過去ログ参照のこと)
0622デフォルトの名無しさん
NGNGCVSではなく、CSVだ。
分かってるならすまん。
0623620
NGNGしかも、全然気づいてなかったです
0624デフォルトの名無しさん
NGNGCygwinでMeadowを開いて書いています。
作りたいのは簡易,会計処理プログラムです。
仕様コマンドは
・Input・Lord・Save・Sort・Search・Delere・Exit
を使ってExitコマンドをするまでは、プログラムは終了しないということです。
本当はもっと細かく仕様が決まっているんです。
作ってくれるという方は[email protected]までメールを下さい。
もちろんタダでとは言いません。
WebMoneyで2000円を払います。お願いします。
0625sage
NGNG0626605
NGNGうーん・・・C++は門外漢なんだが。
ttp://cm.bell-labs.com/cm/cs/tpop/csvgetlinec++.c
にCSVライブラリのコードがある。
ttp://cm.bell-labs.com/cm/cs/tpop/code.html
↑の使用条件(参考訳:著作権表示を消さない限り、自由に使ってよい)にしたがって使ってくれい。
和訳は『プログラミング作法』として売ってるんで本屋さんへGo!
0627デフォルトの名無しさん
NGNGboost::tokenizer
0628デフォルトの名無しさん
NGNGstrtok()
0631デフォルトの名無しさん
NGNGhttp://sylphys.ddo.jp/upld2nd/niji4/src/1094135967939.jpg
0632デフォルトの名無しさん
NGNG『CVS』Concurrent Versions System
http://e-words.jp/w/CVS.html
主に共同開発のためのシステム
『CSV』Comma Separated Values
http://e-words.jp/w/CSV.html
ファイルタイプ
0633デフォルトの名無しさん
NGNG0634624
NGNG0635デフォルトの名無しさん
NGNGならメアド公開しろよ。
0636デフォルトの名無しさん
NGNG>>624
0637デフォルトの名無しさん
NGNG#include <stdio.h>
main(){
nt aa;
aa=INT_MAX;
printf("型 = int , 値 = %d\n",aa);
return 0;
}
【結果】
型 = int , 値 = 32767
俺のパソコンは16ビットなのか・・・2147483647と出るのが理想なのですが。
環境はWin2kproでLSI C-86使ってます。
LSIなのがいけないのでしょうか。
0638637
NGNGちなみにsizeof(int)で見てみたらサイズはやはり2バイトでした。
0639デフォルトの名無しさん
NGNGLSI-Cはそうだね。無料版は制限もきついから早めに乗り換えた方がいいよ。
0640デフォルトの名無しさん
NGNG軟化上手い方法ある?
0642デフォルトの名無しさん
NGNGbcc32 hoge.cpp 1>/dev/null 2>&1
0643デフォルトの名無しさん
NGNG0644デフォルトの名無しさん
NGNGbccに警告レベルを切り替えるpragmaがあるなら、#include <vector>の前後で変えればいいやん。
0645デフォルトの名無しさん
NGNGなんでこんなのでるの?警告が出ないような美しいvector.cppは無いのかねぇ?
どこのcpp取ってきても同じかな
0646デフォルトの名無しさん
NGNG#pragma option push -w-
#include <vector>
#pragma option pop
0647デフォルトの名無しさん
NGNGOKかエラーかはっきりしろよっ!って感じ。
0648デフォルトの名無しさん
NGNG15の要素数を持つtokuten配列を用意する。画面より、コマンドを選択し任意のデータを配列へ
挿入しその時のデータ数、全データ(要素数)および平均点を表示するプログラムを作成せよ。
なお、データの挿入位置は配列の先頭とする。また、要素数が15を超えた時はエラー表示をする。
画面例:
挿入データを入力して下さい。
入力データ:60
データ数:3
要素1:60
要素2:70
要素3:80
平均:70
0649デフォルトの名無しさん
NGNGコマンドって何があんの?下の例を見る限り挿入するデータしか入力してないみたいだが?
0650デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=216
コマンドは q で入力終了というものを勝手に追加した
0651デフォルトの名無しさん
NGNG#include <stdio.h>
#include <math.h>
#define DIMENSION 3 /* N次元 */
double kyori(double a[],double b[]){
int i;
double k,k2=0;
for(i=0;i<DIMENSION;i++){
k2+=pow(a[i]-b[i],2);
}
k=sqrt(k2);
return(k);
}
void main(void){
double p1[]={1,2,3},p2[]={9,8,7};
printf("%f\n",kyori(p1,p2));
}
これを基にして点がp1、p2、p3、p4、p5・・・とある場合に
指定した点から近い順に表示するプログラムを作成してください
画面例:
どこから?
p1
近い順
p4
p3
・・・
p2
p5
これってどうなんですか?
0652デフォルトの名無しさん
NGNG0653デフォルトの名無しさん
NGNG0654デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=217
ダメーポ
0655デフォルトの名無しさん
NGNG実行したときにエラーダイアログが表示されてしまいます。エラー内容は「The value
of ESP was not properly saved across a function call. This is usually a result
of calling a function declared with one calling convention with a function
pointer declared with a different convention. 」
関数ポインタの定義に__stdcallを付けてみましたが、表示されるエラー内容は一緒で
した。どこがオカシイのか、ご教授お願いします。
(DLLに入っている関数を使用するプログラムです)
short num;
short arg_1, arg_2;
typedef short (*FUNC)(short, short);
FUNC num_start;
HINSTANCE hDLL;
hDLL = LoadLibrary("num232.dll");
if(hDLL){
num_start = (FUNC)GetProcAddress(hDLL, "NumStart");
}
arg_1 = 10; arg_2 = 100;
num = num_start(arg_1, arg_2);
0656デフォルトの名無しさん
NGNG0657デフォルトの名無しさん
NGNG0658デフォルトの名無しさん
NGNG2年もあればOS程度作れるでしょう。
0659デフォルトの名無しさん
NGNG既存のOSを模倣したものならできるでしょう。
ただし、新しいアイデアを採り入れたようなものは
いろいろな論文を読んだりして研究しないといけません。
0660デフォルトの名無しさん
NGNGOSというとドライバあたりが気になる所だが。
0661デフォルトの名無しさん
NGNG0662648
NGNG遅くなってすみません!本当に助かりました!
ありがとう〜
0663デフォルトの名無しさん
NGNG0664648
NGNG各データはプログラム内で設定し、合計を計算せよ。また、プログラム終了時に全データを印字せよ。
売上合計…各販売店の合計、各商品の合計、総合計
商品
x y z w 計
販 A 1234 2345 3456 4321 11356
売 B 2876 2765 4567 3987 14195
店 C 1907 3254 3243 2536 10940
計 6017 8364 11266 10844 36491
2次元配列を使えばいいとはわかったのですが解けません。
教えてください。お願いします…。
0665648
NGNG0666デフォルトの名無しさん
NGNG0668デフォルトの名無しさん
NGNGオブジェクトのアドレスを自動変数にコピーしておき、
そのオブジェクトを破壊(デストラクタ)させた後、
コピーしたアドレスに対してアクセスを行うと、
どうなりますか?
UNIX/gcc
では、オブジェクトがあるかの様に動かす(メソッドをコールする)ことができました。
間違いなく、やってはいけない手法だとは思いますが、
ANSIとかでこの辺の動きって規定されていますか?
こんぱいらや機種依存で動作はことなりますか?
0669デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=218
ほれ。ちゃーんと改造のよちを残しときましたんでー(^^;
0670デフォルトの名無しさん
NGNGここは宿題すれつってんだろーが >657 に一言残して去れ!
0671デフォルトの名無しさん
NGNG0672デフォルトの名無しさん
NGNGそんなわけで挫折に(地球上の人口)円
0673デフォルトの名無しさん
NGNG0674デフォルトの名無しさん
NGNG0675デフォルトの名無しさん
NGNG0676デフォルトの名無しさん
NGNG(1)の内容が… AAA\nBBB\nCCC\nDDD\nEEE\nFFF
(2)の内容が… XXX\nAAA\nFFF\nYYY\nZZZ
なら、
AAAとFFFが答えとなる。
0677デフォルトの名無しさん
NGNG#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main( int argc, char* argv[] )
{
if ( argc != 3 ) {
cerr << "usage:\nargv[0] <inputFileA> <inputFileB>" << endl;
}
set<string> stringSet;
string line;
ifstream finA( argv[1] );
ifstream finB( argv[2] );
while ( getline( finA, line ), !finA.eof() ) {
stringSet.insert( line );
}
while ( getline( finB, line ), !finB.eof() ) {
if ( stringSet.find( line ) != stringSet.end() ) cout << line << endl;
}
return 0;
}
0678デフォルトの名無しさん
NGNGint main(void)
{
system("cat text1.txt >> text2.txt | sort text2.txt | uniq -d");
}
こここここれどうかな>>676
0679デフォルトの名無しさん
NGNG素直に diff 汁!
0680デフォルトの名無しさん
NGNGint main
{
int i, j;
printf(" 10 11 12 13 14 15 16 17 18 19 20\n");
for(i=10=;i<20;j++) {
printf("%4d",i*j);
}
}
printf("\n");
return 0;
}
小さい方のループのjの値がループして戻ってくる度に10にリセットされるのはなんででしょうか?10の値がJに入れられるならj++しても帰ってくる度にjの値が10になって一生ループしても不思議じゃないと思うんですが...
0681デフォルトの名無しさん
NGNGC言語です
0682デフォルトの名無しさん
NGNGちゃんとコピーしてくれ。
> int main
仮引数リストはどこへ
> for(i=10=;i<20;j++) {
初期化がおかしい
> }
> }
括弧が対応していない
0683デフォルトの名無しさん
NGNGint main(void)
{
int i, j;
printf(" 10 11 12 13 14 15 16 17 18 19 20\n");
for(i=10;i<=20;i++) {
printf("\n%2d",i);
for(j=10;j<=20;j++){
printf("%4d",i*j);
}
}
printf("\n");
return 0;
}
sumimasen
泡立ててました
0684デフォルトの名無しさん
NGNGループして戻ってくる度にはリセットされてないけど?
forループ開始する度にはリセットするけど
0685
NGNGhttp://edit4.auctions.yahoo.co.jp/jp/config/review?aID=d51727231&rating=1001
0686デフォルトの名無しさん
NGNGクリックすると、投票させられるっぽい。
0687デフォルトの名無しさん
NGNG0688デフォルトの名無しさん
NGNGvoid putd(int a)
{
printf("%d\n",a);
}
int main(void)
{
int dt = 500;
putd(100);
putd(dt);
return 0;
}
三行目から六行目は全く意味がないように思うんですが..
aは空っぽで、一体何をしたいんでしょう?
Cの入門書に書いてあったんです。
何のための関数か教えてくたざい。
0689デフォルトの名無しさん
NGNG0690デフォルトの名無しさん
NGNG>三行目から六行目は全く意味がないように思うんですが..
>aは空っぽで、一体何をしたいんでしょう?
迷言だな
マジレスすると、putd は、渡された数値を標準出力に書き出して改行する関数。
基本をしっかりと身に付けられるよう、がんがれよ
0691デフォルトの名無しさん
NGNGお前ワープは物理的に無理って信じてるだろ
0692デフォルトの名無しさん
NGNG0693デフォルトの名無しさん
NGNGワープは無理だよ。
ホーキングもプラックホールでのワープは「ない」って、言い直したからね。
0694デフォルトの名無しさん
NGNG無理じゃない。
無理っぽいんだ!
0695デフォルトの名無しさん
NGNGどこかの雑誌で読んだ
0696デフォルトの名無しさん
NGNGhttp://members.at.infoseek.co.jp/yas1091/R3_temp.swf?inputStr=%83%7D%83W%82%C5%81H
0697デフォルトの名無しさん
NGNGワロタ
0698デフォルトの名無しさん
NGNG0699デフォルトの名無しさん
NGNG想像してごらん・・・
ほら。黒い穴(ブラックホール)がイメージできたろう?
0700デフォルトの名無しさん
NGNG質問をよく読みましょう。
0701デフォルトの名無しさん
NGNGPluck hole
勇気の 穴
0702デフォルトの名無しさん
NGNGその反動で星を構成していた物質がギュッと縮まることがある。
そうすると、元の物質よりも密度が高い物質が出来るわけで、
そうなると重力が大きくなって、回りの物をどんどん引き込んで
しまう。当然、そんな所に人間がいたら立っていることも出来ずに
ぺちゃんこになってしまう。そして光すらもその重力にまけてしまう。
つまり、その近くで仮に懐中電灯を付けても光らないわけだ。
そんなものが宇宙にあったら「黒い星(穴)」のように見えるだろう
ということでブラックホールと呼ばれる。
もちろん、実際に黒い色をしているかどうかすら本当は分からないが。
0703デフォルトの名無しさん
NGNG黒いのはあまり好きじゃない
0704デフォルトの名無しさん
NGNG0705デフォルトの名無しさん
NGNGこのような条件でtest1.fをコンパイルしたいのですが、
どのようにコンパイルすれば良いのでしょうか?
当方、Linux環境です。
0706デフォルトの名無しさん
NGNG拡張子 f って何?
0707デフォルトの名無しさん
NGNGCやC++でないならスレ違いだよ
C/C++でも宿題でなければスレ違いだけど
0708デフォルトの名無しさん
NGNGFortranだろ
0709デフォルトの名無しさん
NGNG.fはフォートランという言語だそうです。
内容はメイン関数だけみたいです。
>>707
一応、宿題なんですけど。。
別の言語?で書かれた関数も呼び出せることを
学ぶのが目的みたいです。
0710デフォルトの名無しさん
NGNG0711デフォルトの名無しさん
NGNGint c(int a, int b)で
aCbみたいな。
0712デフォルトの名無しさん
NGNGint c(int a, int b){return a==0||b==a?1:c(a-1, b)+c(a, b-1);}
0713712
NGNGint c(int a, int b){return b==0||b==a?1:c(a-1, b)+c(a-1, b-1);}
0714デフォルトの名無しさん
NGNGaに8、bに4を渡すとうちではSegmentation Faultになった。
0715デフォルトの名無しさん
NGNGprogram test
call ctest()
end
c:test2.c
void ctest_() {
printf("test");
return;
}
$g77 -c test1.f
$gcc -c test2.c
$g77 test1.o test2.o
$./a.out
0717デフォルトの名無しさん
NGNGできました!!ありがとう御座います!!!
0718‥
NGNG0719デフォルトの名無しさん
NGNG意味不明
0720デフォルトの名無しさん
NGNGそんな質問の仕方ではあなたがロンリーです
0721デフォルトの名無しさん
NGNGstruct N
{
int u, l, p, o
};
N n; // NG
N n[ 10 ]; // OK
ってことが言いたいのか?
0722デフォルトの名無しさん
NGNGstruct {
int a[10];
};//OK
struct {
int a;
};//NG
という意味で聞いているように見える。
でも聞きたいことはおそらく、構造体を動的にメモリ確保できるのか
どうかということじゃないかと推測。
0723デフォルトの名無しさん
NGNGint abara; ←配列にしてない
int abon[100];
int indo[100];
int mona[100];
これらを構造体にまとめて、例えば
[0]に設定した値を[20]に入れたら、
abara変数の立場はどうなるんでしょうか?
0724デフォルトの名無しさん
NGNGっていうか ガッ!!
0725デフォルトの名無しさん
NGNG何言ってんのかよくワカラン
この際長文でもいいからこれでもかってくらい詳しく説明してくれ
0726デフォルトの名無しさん
NGNG放置しろよ
0727デフォルトの名無しさん
NGNG出来た頃にスレをアゲますので、マターリしてお待ちください。
0728デフォルトの名無しさん
NGNG0729デフォルトの名無しさん
NGNGの文章は芸術
0730デフォルトの名無しさん
NGNG例)
Input number=>100
5^2*2^2
0731730
NGNGC言語でお願いします
(TдT)
0732デフォルトの名無しさん
NGNG↑何これ?
因数はすぐ見つかるけど表示はどうすりゃいいのさ
0733デフォルトの名無しさん
NGNGアルゴリズムは不問?全探索のみ?
0734デフォルトの名無しさん
NGNG顔文字はスルーで
表示は>>731にしめした通りですがわかりにくかったでしょうか。。
>>733さん
アルゴリズムは不問でもよいと思います。
0735デフォルトの名無しさん
NGNG#include <stdio.h>
#include <string.h>
int main(void) {
int i, j;
int num;
scanf("%d",&num);
if ( num == 1 ) printf("1");
else {
for ( i = 2; num != 1; i++ ) {
for ( j = 0; num % i == 0; j++ )
num = num / i;
if ( j != 0 ) {
printf("%d^%d", i, j);
if ( num != 1 ) printf("*");
}
}
}
printf("\n");
return 0;
}
0737デフォルトの名無しさん
NGNG氏ね
0738デフォルトの名無しさん
NGNG0739デフォルトの名無しさん
NGNGそんなに2byte文字が重要なの?
0740デフォルトの名無しさん
NGNG0741730
NGNG0742デフォルトの名無しさん
NGNG0743デフォルトの名無しさん
NGNGDLL側のcppファイルに
declspec(dllexport) int flag;
を宣言して、
EXE側のヘッダファイルに
declspec(dllimport) int flag;
を宣言して、cppにインクルードしました。
EXE、DLLの両方で共通のフラグを使おうと思ったのですが、
デバッガでトレースすると、EXE側で1に設定したflagが
DLL側の関数に入るとflagの値が0になってしまいました。
フラグのメモリアドレスを見ると、DLLとEXEで異なっていて
別領域が取られているようです。EXE、DLLの両方で共通の
同じフラグを使用するには、どのようにexport,importをすれば
よいのでしょうか?長くなってすいません。
0744デフォルトの名無しさん
NGNGWin32API質問箱 Build22
http://pc5.2ch.net/test/read.cgi/tech/1092524669/
0745デフォルトの名無しさん
NGNGよく考えたら宿題ではなかったです。
しかもVisualC++の使い方の質問かもしれない。
とりあえずそちらに質問してみます。
0746デフォルトの名無しさん
NGNG1 0 -1
1 1 0.5
・・・
・・・
(tabで区切られています)
のようになっていて、これが
p1(1,0,-1)
p2(1,1,0.5)
・・・
・・・
という座標を表しています。
このとき入力された基点から近い順に表示し、この結果を
kekka.txtに出力するプログラムを作成してください。
画面例
*基点の座標を入力してください
1
1
0
*基点から近い順に表示します
p2
p1
・・・
・・・
条件 zahyou.txtのデータの読み込みにfscanfを使用すること
0747デフォルトの名無しさん
NGNGコンパイルしてないのでフォローよろしく
1/2
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#define PMAX1000
#define INFILE"zahyou.txt"
#define OUTFILE"kekka.txt"
#define norm(a)sqrt((a)->x*(a)->x+(a)->y*(a)->y+(a)->z*(a)->z)
typedef struct{
double x,y,z;
int n;
}P3D;
P3D base;
int cmp(void* a,void* b){
double na=fabs(norm((P3D*)a)-norm(&base));
double nb=fabs(norm((P3D*)b)-norm(&base));
return (na>nb)?1:(na==nb)?0:-1;
}
0748デフォルトの名無しさん
NGNG2/2
int main(){
P3D p3d[PMAX];
FILE* fp;
int i,ct=0;
fp=fopen(INFILE,"r");
while(feof(fp)){
fscanf("%lf\t%lf\t%lf",&(p3d[ct].x),&(p3d[ct].y),&(p3d[ct].z));
p3d[ct]=ct+1;
ct++;
}
fclose(fp);
printf("*基点の座標を入力してください\n");
scanf("%lf",&(base.x));
scanf("%lf",&(base.y));
scanf("%lf",&(base.z));
qsort(p3d,ct,sizeof(P3D),cmp);
printf("*基点から近い順に表示します\n");
fp=fopen(OUTFILE,"w");// 使い回ししてごめんな
for(i=0;i<ct;i++){
printf("p%d\n",p3d[i].n);
fprintf(fp,"p%d\n",p3d[i].n);
}
fclose(fp);
return 0;
}
0749デフォルトの名無しさん
NGNGfscanf("%lf %lf %lf",&(p3d[ct].x),&(p3d[ct].y),&(p3d[ct].z));
0750デフォルトの名無しさん
NGNG>(tabで区切られています)
0751デフォルトの名無しさん
NGNGそれが何か?
0752デフォルトの名無しさん
NGNG(ごめん)
0753デフォルトの名無しさん
NGNGfscanf("%lf",&(p3d[ct].y));
fscanf("%lf",&(p3d[ct].z));
0754デフォルトの名無しさん
NGNG0755デフォルトの名無しさん
NGNGunix solaris環境。
問 %sと等価なプログラムをputcharで実現せよ。(ヒント '\0'が文字列の終端)
意味がわかりません。お願いします。
0756デフォルトの名無しさん
NGNG%sはプログラムではありません。
〜終了〜
0757デフォルトの名無しさん
NGNG厳密には>>756が正解だけど、%sというのは文字列s[]を出力するのに
printf("%s", s);
とすることだと思うから、
int i;
for (i = 0; s[i] != '\0'; i++)
putchar(s[i]);
でOK!
putchar()は1文字出力関数で、putchar('a');とputchar('1');は
それぞれaと1を出力する。
0758デフォルトの名無しさん
NGNG出題者が何も理解してない糞とでも書いとけ
0759デフォルトの名無しさん
NGNG質問者は質問したい内容を正確に書いてくれ
0761デフォルトの名無しさん
NGNG今月号のニュートン立ち読みしてみな
なんか初めのほうにある
小ネタをたくさん紹介してるページに書いてあった
0762デフォルトの名無しさん
NGNG"%lf%lf%lf"
0763成長した18歳<16歳にはかなわない
NGNG変数char ss[5000]にいっぱいいっぱいに平仮名片仮名が無作為に選ばれて入れられています。
この中から「ぬるぽ」「ぬるポ」「ぬルぽ」「ぬルポ」「ヌるぽ」「ヌるポ」「ヌルぽ」「ヌルポ」
という連続した小さな文字列を探したいのですが、その作業を関数にしたいんです。
丸投げだと思うようでしたら、せめてヒントでもいただければと思います。
お願いします。
0764デフォルトの名無しさん
NGNGわざわざ関数を作らなくてもstrstrという関数が用意されているんだけど。
0765エイティン
NGNG#include <stdio.h>
int nulpo(char ss)
{
int a,i,c;
a = strlen(ss);
c = 0;
for(i=1;i<=a;i++)
{
if(ss[i]==("ぬ"||"ヌ"))
{ ++i;
if(ss[i]==("る"||"ル"))
{ ++i;
if(ss[i]==("ぽ"||"ぽ"))
{ c=c+1;}
}
}
}
return c;
}
動きますか?
0766エイティン
NGNG#include <stdio.h>
int nulpo(char ss)
{
int a,i,c;
a = strlen(ss);
c = 0;
for(i=1;i<=a;i++)
{
if(ss[i]==("ぬ"||"ヌ"))
{ ++i;
if(ss[i]==("る"||"ル"))
{ ++i;
if(ss[i]==("ぽ"||"ぽ"))
{ c=c+1;}
}
}
}
return c;
}
動きますか?
0767デフォルトの名無しさん
NGNGつっこむ気にもなれん
0768作り直してみましたが、やはり動くかわかりません
NGNGint nulpo(char ss);
int main(void)
{
int a
char ss[5000];
gets(ss);
a = nulpo(ss)
printf("%d回、ガッ して下さい。",a)
return 0;
}
int nulpo(char ss)
{
int a,i,c;
a = strlen(ss);
c = 0;
for(i=1;i<=a;i++)
{
if(ss[i]==("ぬ"||"ヌ"))
{ ++i;
if(ss[i]==("る"||"ル"))
{ ++i;
if(ss[i]==("ぽ"||"ポ"))
{ c=c+1;}
}
}
}
return c;
}
0769デフォルトの名無しさん
NGNG1.動くかどうか分からないならまずはコンパイルしろ。そして動かしてみろ。コンパイラがなければフリーのものがあるからインストールしておけ。
2.「if(ss[i]==("ぬ"||"ヌ"))」 この1行だけでも突っ込み所が満載過ぎ。とりあえず2ヶ所に絞った。
2.1.|| 演算子で繋ぐのは条件の真偽だけだ。aが"ぬ"か"ヌ"であることを判断したい場合はif(a=="ぬ"||a=="ヌ")と書け。
2.2.ss[i]の型は分かってるのか?そして"ぬ"や"ヌ"の型は?答えを言ってやると前者がcharで、char*だ。違う型のものを比較して意味があることなんざ殆ど無い。
3.iのインクリメントは++i;としてるのにcのインクリメントをc=c+1;にする理由でもあるのか?というか、そもそも++i;よりi++;の方がメジャーじゃないのか?(後半は主観だが)
おとなしくstrstr使っとけ。
0770デフォルトの名無しさん
NGNG0771デフォルトの名無しさん
NGNG己は。ただ、一箇所だけ擁護しておく。
>そもそも++i;よりi++;の方がメジャーじゃないのか?
その通り、それは主観だ。ここはC++(特にiterator)に慣れてくると
そうでもなくなる。
0772デフォルトの名無しさん
NGNG0773デフォルトの名無しさん
NGNGfor(i=0; i<nsteps; i++){}で回しているのですが、
iを均等に回すのではなく、最初と最後だけより細かく(例えば0.01刻みで)、
中間をすっとばす方法を教えてください。
0774デフォルトの名無しさん
NGNGアルファベットで単語、読み方、単語の意味をファイルに書き込み&読み込みが
できる単語登録プログラムを完成せよ。ただし、クラスを使い作成せよ。さらに、
他に上記のような機能に+αする事により、点数をつける。
てな、感じのプログラムをお願いします☆ファイルに書き込む形式は自由で、↑に書いている事以外に
追加したら、点数が高くなるんで、もし、他にこんな機能があれば便利ってのがあれば、追加お願いします!
0775デフォルトの名無しさん
NGNGdouble time;
for (time = 0; time < 200; time += 0.01);
for (; time < 800; time += 0.1);
for (; time < 1000; time += 0.01);
#但し加算の精度に注意。
或いはこっちの方が元のに近いかな。
double time;
unsigned it;
double dt = 0.01;
for (it = 0; it < 200 / dt; ++it) time = it * dt;
for (it < 800 / dt; it += 10) time = it * dt;
for (it < 1000 / dt; ++it) time = it * dt;
0776773
NGNGy=a+5*xという式の場合、
for (it = 0; it < 200 / dt; ++it) {
a+5*x;}
for (it < 800 / dt; it += 10){
a+5*x;}
for (it < 1000 / dt; ++it){
a+5*x;}
でいいんですか?
0777デフォルトの名無しさん
NGNG0778デフォルトの名無しさん
NGNG関数の引数も使わないで作れです。
お願いします
0779デフォルトの名無しさん
NGNG0780デフォルトの名無しさん
NGNG0781デフォルトの名無しさん
NGNG#define DELIM '\t'
struct data{ string tango, yomi, imi; };
class dictionary{
protected: list<data> m_data;
public:
void add(data &d){ m_data.push_back(d); }
bool read(const char *file){
fstream f(file, ios::in);
if(f.fail()){ return false; } m_data.clear();
data d;
while(!f.eof()){
getline(f, d.tango, DELIM); getline(f, d.yomi, DELIM); getline(f, d.imi, DELIM); m_data.push_back(d);
}
f.close(); return true;
}
bool write(const char *file){
fstream f(file, ios::out);
if(f.fail()){ return false; }
for(list<data>::iterator i = m_data.begin(); i != m_data.end(); ++i)
f << i->tango << DELIM << i->yomi << DELIM << i->imi << DELIM;
f.close(); return true;
}
void show(void){
for(list<data>::iterator i = m_data.begin(); i != m_data.end(); ++i)
cout << "単語:" << i->tango << "\n" << "読み:" << i->yomi << "\n" << "意味:" << i->imi << "\n" << endl;
}
list<data>::iterator find(string tango){
for(list<data>::iterator i = m_data.begin(); i != m_data.end(); ++i){ if(i->tango == tango){ return i; } }
return NULL;
}
};
0782デフォルトの名無しさん
NGNG但し、自動変数(auto変数)は、一切使用しないで下さい。
入力した2つの数字に対して、選択した演算の結果が表示されます。
2つの数字のうち、いずれかに0を入力するとプログラムは終了します。
但し、上記で述べたように、自動変数を使用しないで、作成してください。
出来れば、関数の引数もなくして、
ret = func1() ;
のような形式で呼び出すようにしてください
ってなもんだいです 。
よく意味が自分もわかんないんですけど、わかりますか?
0783デフォルトの名無しさん
NGNGなんか出題者がダメポ
0784デフォルトの名無しさん
NGNGこんな感じ。メモ帳だけで作ってコンパイルしてないから
動かない可能性大。適宜修正してちょ。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1060403548&res=116&fi=no
0785デフォルトの名無しさん
NGNGfunc1( int a, int b, int c )
{
intresult ;// 計算結果−戻り値 *使用不可
/* 0演算は何? */
switch( c )
{
case '1' :// 加算
result = a + b ;
break ;
case '2' :// 減算
result = a - b ;
break ;
case '3' :// 乗算
result = a * b ;
break ;
case '4' :// 除算
result = a / b ;
break ;
case '5' :// 剰余算
result = a % b ;
break ;
}
/* 戻り値をセット */
return( result ) ;
}
0786デフォルトの名無しさん
NGNG#include <iostream>
int a, b, m;
void func(void)
{
switch(m){
case 0: cout << a << " + " << b << " = " << a + b << endl; break;
case 1: cout << a << " - " << b << " = " << a - b << endl; break;
case 2: cout << a << " * " << b << " = " << a * b << endl; break;
case 3: cout << a << " / " << b << " = " << a / b << endl; break;
};
}
int main(void)
{
cin >> a >> b >> m;
cout << endl;
if(a && b){ func(); }
return 0;
}
0787デフォルトの名無しさん
NGNG#include<stdlib.h>
/* func1関数プロトタイプ宣言 */
extern int func1( int a, int b, int c ) ;// *必要に応じて変更
void main(void)
{
inta,b ;// 数値 *使用不可
intc ;// getchar()戻り値 *使用不可
intret ;// func()戻り値 *使用不可
for( ; ; )// 無限ループ a,bどちらかに0が入力されたら抜けます
{
printf("数値1を入力してください。:") ;// 数値取り込み
scanf("%d",&a) ;
printf("数値2を入力してください。:") ;// 数値取り込み
scanf("%d",&b) ;
/* ループを抜ける条件(0の入力)の判定 */
if( a == 0 || b == 0)
{
printf("ループを抜けます!\n\n") ;
break ;
}
/* 何の演算をする? */
printf("演算は何? 1:加算 2:減算 3:乗算 4:除算 5:剰余算 ") ;
c = getchar() ;
c = getchar() ;
if( c > 1 && c < 5 )
{printf("1〜5以外の数字は無効です。\n") ;
continue ;}
/* func1()実行 */ // *できれば呼出形式を変更
ret = func1( a, b, c ) ;
0788デフォルトの名無しさん
NGNGswitch( c )
{
case '1' :
printf("計算は、加算です。\n") ;
break ;
case '2' :
printf("計算は、減算です。\n") ;
break ;
case '3' :
printf("計算は、乗算です。\n") ;
break ;
case '4' :
printf("計算は、除算です。\n") ;
break ;
case '5' :
printf("計算は、剰余算です。\n") ;
break ;
}
printf("結果は %d です!!!\n\n", ret) ;
を変えるみたいです。すいませんぜんぜんわかんなくて
0789デフォルトの名無しさん
NGNGわかりますか?
0790デフォルトの名無しさん
NGNGなるほどぬーとんに載ってたのかthx
0791デフォルトの名無しさん
NGNGfunc1( int a, int b, int c )
のパラメータ a, b, cと戻り値格納用変数をグローバルにしる!
0792791
NGNG○ 結果保存用変数
0793デフォルトの名無しさん
NGNG0794デフォルトの名無しさん
NGNG回答載せてくれるとすごくたすかるんですが・・
無理ですかね?
0795デフォルトの名無しさん
NGNG0796デフォルトの名無しさん
NGNG訳分からん
0797デフォルトの名無しさん
NGNG0799デフォルトの名無しさん
NGNG#include<stdlib.h>
int r, a, b, c;
void func1()
{
/* 0演算は何? */
switch( c )
{
case '1' :// 加算
r = a + b ;
break ;
case '2' :// 減算
r = a - b ;
break ;
case '3' :// 乗算
r = a * b ;
break ;
case '4' :// 除算
r = a / b ;
break ;
case '5' :// 剰余算
r = a % b ;
break ;
}
}
0800デフォルトの名無しさん
NGNG{
for( ; ; )// 無限ループ a,bどちらかに0が入力されたら抜けます
{
printf("数値1を入力してください。:") ;// 数値取り込み
scanf("%d",&a) ;
printf("数値2を入力してください。:") ;// 数値取り込み
scanf("%d",&b) ;
/* ループを抜ける条件(0の入力)の判定 */
if( a == 0 || b == 0){printf("ループを抜けます!\n\n") ; break ;}
/* 何の演算をする? */
printf("演算は何? 1:加算 2:減算 3:乗算 4:除算 5:剰余算 ") ;
c = getchar() ;
c = getchar() ;
if( c > 1 && c < 5 ){printf("1〜5以外の数字は無効です。\n"); continue ;}
/* func1()実行 */ // *できれば呼出形式を変更
func1() ;
/* 戻り値表示 */
switch( c ){
case '1' : printf("計算は、加算です。\n") ; break ;
case '2' : printf("計算は、減算です。\n") ; break ;
case '3' : printf("計算は、乗算です。\n") ; break ;
case '4' : printf("計算は、除算です。\n") ; break ;
case '5' : printf("計算は、剰余算です。\n") ; break ;
}
printf("結果は %d です!!!\n\n", r) ;
}
}
0801デフォルトの名無しさん
NGNGこれでなるんですか?
0802デフォルトの名無しさん
NGNGコンパイルしてみなはれ。
0803デフォルトの名無しさん
NGNGmain.cpp(37) : error C2065: 'c' : 定義されていない識別子です。
main.cpp(37) : error C2065: 'getchar' : 定義されていない識別子です。
main.cpp(41) : error C2065: 'func1' : 定義されていない識別子です。
main.cpp(50) : error C2065: 'r' : 定義されていない識別子です。
の実行エラー
main.obj - エラー 8、警告 0
ってでました。
0804デフォルトの名無しさん
NGNG799-800を全部コピペしてコンパイルしる!
0805デフォルトの名無しさん
NGNG0806デフォルトの名無しさん
NGNGまず、799にあるソースを自分の開発環境のエディタにコピペする。
次に、800にあるソースをさっきコピペした799のソースの下にコピペする。
そしてコンパイルしろ。
0807デフォルトの名無しさん
NGNGいやながながすいませんでした。
これでなんとかなりそうです感謝×2
0808デフォルトの名無しさん
NGNGint main()
{
try{
while((cin>>n>>c>>m)&&m) Do();
}catch(int){
cerr<<"四則演算エラー"<<endl;
}
return 0;
}
0809デフォルトの名無しさん
NGNG>>807
C++じゃなかっけ
#include <iostream>
#define MAKE(x, y, mark) cout<<((x)mark(y))<<endl;
int n,m;
char c;
void Do()
{
switch(c){
case '*':
MAKE(n,m,*) break;
case '+':
MAKE(n,m,+) break;
case '-':
MAKE(n,m,-) break;
case '/':
MAKE(n,m,/) break;
default :
throw -1;
}
}
0810デフォルトの名無しさん
NGNG0811デフォルトの名無しさん
NGNG0812806
NGNG多分、>>785のソースを改変して実現しろという事だったんでは?
質問者自体C/C++の違いがよくわかってないと思うので、
>>779の発言の意味は特にないと思う。
0813デフォルトの名無しさん
NGNG>>785と>>787と>>788を改変してやってほしかったです。
0814デフォルトの名無しさん
NGNG0815デフォルトの名無しさん
NGNGエノン関数とは?
http://www.google.co.jp/search?as_q=%E3%82%A8%E3%83%8E%E3%83%B3%E9%96%A2%E6%95%B0&num=100&hl=ja&ie=UTF-8&c2coff=1&btnG=Google+%E6%A4%9C%E7%B4%A2&as_epq=&as_oq=&as_eq=&lr=&as_ft=i&as_filetype=&as_qdr=all&as_occt=any&as_dt=i&as_sitesearch=
0816デフォルトの名無しさん
NGNG質問の仕方からしてメンドーになりそうなのでスルー。
0817814
NGNG0818814
NGNG0819デフォルトの名無しさん
NGNGちょっと待っててね
0820デフォルトの名無しさん
NGNGただし以下の定義を使用する事。
typedef struct {
double dX;
double dY;
double dZ;
} COORDINATES;
// 2 点以上の座標が一致した場合、または 4 点全てが平面上に存在する場合は FALSE を返す。それ以外は TRUE を返す。
// ans ... 中心座標用ポインタ
// quest ... 4 点の空間座標用ポインタ
int Function( COORDINATES *ans, COORDINATES *quest );
int main( void )
{
// 座標定義(値は可変するものとする)
COORDINATES Coord[] = {
{ 15.0, 7.0, 16.0 },
{ 8.0, -9.0, 1.0 },
{ 16.0, 6.0, -8.0 },
{ 24.0, 0.0, 8.0 }
};
// 関数 Function を使用
// 結果を表示
return 0;
}
よろしく御願いします。
0821784
NGNGコンパイルとかしてチェックして作り直した。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1060403548&res=117&fi=no
0822デフォルトの名無しさん
NGNGどうぞ。pgm画像に描画しています。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=219
0823デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1094724836&res=1
このプログラムで、bool Input(Node* pNode)の所で、わからないのです。
エラーは出ないのですが、永遠とReferecne関数の所で、ポインタがNULLになって?
全然進まなかったんですが、bool Input(Node* pNode)をbool Input(Node*& pNode)
とすることで、問題は解決しました。ですが、なぜ”&”をつける事で、解決したのかが
わかりません。
どなたか教えて下さい!お願いします☆
0824デフォルトの名無しさん
NGNG0825デフォルトの名無しさん
NGNGマジで教えてもらえませんか?
自分でも調べてみたんですが、本当にわからないんです。
お願いします。
0826デフォルトの名無しさん
NGNG発射した弾を消して3WAY弾を表示させるにはどうすればいいですか?
0827デフォルトの名無しさん
NGNG0828デフォルトの名無しさん
NGNGシューティングゲームで、
まず直線状に弾が飛んでいき、その後何らかの条件(一定時間経過とか)が成立すると、
斜め左・まっすぐ・斜め右の3方向に分かれて弾が飛んでいくということだろう。
たぶん。
>>826
if(分裂条件)
{
Make3wayBrid(直線弾のx座標, 直線弾のy座標);
Destroy(直線弾);
}
0829デフォルトの名無しさん
NGNG0830デフォルトの名無しさん
NGNG0831デフォルトの名無しさん
NGNG質問の仕方が悪すぎました
キャラクターが現在向いている方向に弾を発射して一定距離進むと
斜め左・真っ直ぐ・斜め右の3方向に分かれて飛んでいくプログラムで
一定距離進んだ弾を消して3方向に弾を飛ばすにはどうすればいいか
というものです
ご迷惑お掛けしました
0832デフォルトの名無しさん
NGNG0833デフォルトの名無しさん
NGNGそれなんていう宿題?
0834デフォルトの名無しさん
NGNGもしかしてデータの管理方法もアホなやりかたなんじゃないか
行き当たりばったりで作ってると後で苦労するから
最初に構造とかある程度全体を頭の中に思い浮かべてから
作り始めるといいよ
キャクタの削除とか生成は必ず出てくるものなんだから特にね
0835814
NGNGそして、説明不足でした。ごめんなさい。
C言語でエノン写像を計算して、DOSの画面にグラフを描写するプログラムを
お願いしたかったのです。
0836デフォルトの名無しさん
NGNGunsigned char** image で格納されてるんだからどうにでもなるだろ
あと、日本でDOSっていうとおっさんはA800hを思い浮かべるけどそっちでいいの?
0837デフォルトの名無しさん
NGNG0838デフォルトの名無しさん
NGNG0839デフォルトの名無しさん
NGNGどんなプログラムをくめばいいでしょうか?
基本式V=Asin(2πft)
V=電圧、A=振幅、π=円周率、f=周波数、t=時間
正弦波と方形波を選択可能
周波数と振幅を入力可能(周波数は0〜10M振幅は0〜10)
出力(信号波形データを)ファイルにセーブする(一列目時間二列目電圧値
以上です。
よろしくお願いします。
0840keita
NGNG#include <stdio.h>
#define N 50
int main( int argc, char *argv[] ) {
FILE *fp;
char *datafile;
int i, j, width, prime, count[N];
/* error*/
if ( argc != 2 ) { printf( "error : Invalid Usage\n" );
exit( 1 );}
datafile = argv[1];
if ( ( fp = fopen( datafile, "r" ) ) == NULL ) {
printf( "error : can't open %s\n", datafile );
exit( 1 );}
/* initialize*/
for ( i = 0; i < N; i++ ) count[i] = 0;
printf( "Enter the width => " );
scanf( "%d", &width );
/* read and count*/
j = 1;
while ( fscanf( fp, "%d", &prime ) != EOF ){ if ( prime < width * j )
count[j]++;
else
count[++j]++;}
fclose( fp );
putchar( '\n' );
for ( i = 1; i <= j; i++ )
printf( "%5d 〜 %5d : %3d\n", width*(i-1), width*i-1, count[i] );
exit(0); }
作ったプログラムをコンパイル実行するとerror : Invalid Usageと出てしまいます。
このプログラムのどこに何を足したら完成できるか教えてください。お願いします
0841デフォルトの名無しさん
NGNGよくわからんが、こんな感じ?
int main(){
double V,A,f,t;
//基本式V=Asin(2πft)
//V=電圧、A=振幅、π=円周率、f=周波数、t=時間
A = 1;
f = 10;
for( t = 0; t <= 59; t++)
{
V = A * (sin( 2.0 * M_PI * f * t * (M_PI / 180.0)) * 180.0 / M_PI);
printf("%f,%f\n",t,V);
}
return 0;
}
0842デフォルトの名無しさん
NGNGそのプログラムはあなたが作ったもの?
そうであれば何故メッセージが出てるのかわかるのでは。
0843デフォルトの名無しさん
NGNGprgname.exe prm1000.dat
ってすれば・・・
0844デフォルトの名無しさん
NGNG方形波か正弦波かを選べて
振幅と周波数を入力する画面があって入力するととその信号の計算結果が出て
その結果をファイルにセーブして
発生した信号波形を図に書くのが目的っす
みなおしたらいろいろわかりにくかったかな
V=A*sin(2*π*f*t)
周波数は0〜1000000振幅は0〜10.0
結果は2周期分くらいでるようにすればいいと思うんです。
0845デフォルトの名無しさん
NGNGこれが勘違いの元。細かいのを作ってるからもうちょっと待ちな。
0846デフォルトの名無しさん
NGNG0847デフォルトの名無しさん
NGNG0848デフォルトの名無しさん
NGNGカレー専門店で寿司を注文するような事をするな
0849デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=220
実行ファイルの後ろにデータ保存用のファイル名を書けばそこに記録される…はず。
何故か手元のgccでコンパイル通ってくれなかった…。
0850846
NGNG0851デフォルトの名無しさん
NGNG1.方形波
2.正弦波
ってでたあと2を打ってENTERおしても反応しないんですが
どうすればいいのでしょうか・・?
0852デフォルトの名無しさん
NGNG0853デフォルトの名無しさん
NGNG>while(0 < style && style < 3);
ここがミス。
while(style < 1 || 2 < style);
に変更してて。
0854デフォルトの名無しさん
NGNGおおなおしたらいけました。
あのよろしければ実行ファイルの後ろにデータ保存用のファイル名を書けばそこに記録される
っていうのは具体的にどうするのか教えてもらえないでしょうか?
0855デフォルトの名無しさん
NGNGa.out wave.dat
a.out > wave.dat
どちらでも可。
0856デフォルトの名無しさん
NGNG追記モードは"w"を"a"に
または
a.out >> wave.dat
0857デフォルトの名無しさん
NGNG私の知識不足でごめんなさいよくわからないです・・
コンパイル後実行したあとa.outというファイルができるのでしょうか・・?
0858デフォルトの名無しさん
NGNGこのスレの回答者は主にLinux環境を基準としています。
ですから、a.outというのを自分の環境でのコンパイラの出力した実行ファイル
だと読みかえてください。
0859デフォルトの名無しさん
NGNGメモ帳かなにかに結果を記録するにはどうすればいいんでしょうか?
0860デフォルトの名無しさん
NGNGなんだそりゃ
できたファイルをメモ帖でひらけよ・・・
0861デフォルトの名無しさん
NGNGどうもありがとうございました。
お世話になりました。
いろいろ迷惑かけてすみませんでした。
本当にありがとうございました。
0862デフォルトの名無しさん
NGNG何ですぐ人に聞くかな?
0863デフォルトの名無しさん
NGNG0864デフォルトの名無しさん
NGNG0865デフォルトの名無しさん
NGNG// DLL
#include <stdio.h>
__declspec(dllexport) int func(void);
int func(void)
{
printf("inside of the DLL");
return 0;
}
//EXE
#include <iostream.h>
extern __declspec(dllimport) int func(void);
int main(void)
{
int a;
a = func();
cout << a << endl;
return 0;
}
DLLはプロジェクトの新規作成→DLL→空のプロジェクトと作成してるんだけど
どうしてもリンクエラー
ource02.obj : error LNK2019: 未解決の外部シンボル "__declspec(dllimport) int __cdecl func(void)" (__imp_?func@@YAHXZ) が関数 _main で参照されました。
Debug/neko101a.exe : fatal error LNK1120: 外部参照 1 が未解決です。
がでるのでつ。
一体どうすれば・・・・。
0866デフォルトの名無しさん
NGNGそれは宿題かね?
0867865
NGNGと__cdeclつけたらできまんた。
0868デフォルトの名無しさん
NGNGコマンドライン引数で指定された文字列の英大文字を英小文字に、英小文字を英大文字にし
それ以外の文字はそのままで出力するプログラムを作成。
正し、コマンドライン引数が指定されなかった場合はエラーを出力し、二つ以上指定された場合は二つ目以降を無視する。
お願いします。
0869デフォルトの名無しさん
NGNG#include <stdlib.h>
#include <ctype.h>
int main(const int argc, char **const argv)
{
const char *str;
if(argc == 1)
{
fprintf(stderr, "error: an argument is required.");
exit(1);
}
for(str = argv[1]; *str; ++str)
if(isupper(*str)) putchar(tolower(*str));
else putchar(toupper(*str));
return 0;
}
0870デフォルトの名無しさん
NGNG#include <stdio.h>
#include <ctype.h>
int main( int argc, char** argv ) {
int i;
char* str;
if ( argc < 2 ) {
fprintf( stderr, "えらー");
exit(1);
}
str = argv[1];
while ( *str != '\0' ) {
printf( "%c", islower(*str)?toupper(*str):isupper(*str)?tolower(*str):*str );
str++;
}
printf("\n");
return 0;
}
0871デフォルトの名無しさん
NGNGhoge.c: 関数 `main' 内:
hoge.c:10: 警告: implicit declaration of function `exit'
hoge.c:5: 警告: unused variable `i'
0872デフォルトの名無しさん
NGNGstdlib.hをinclude
int i;を削除
0873868
NGNG0874デフォルトの名無しさん
NGNGchar SmallChar[] = "ぁぃぅぇぉっゃゅょゎァィゥェォッャュョヮ";
これでOutputCharに入っている文字がSmallCharと等しいか
判定するにはどうすればよいでしょう?
文字が等しいか判定するにはstrcmpで良いらしいのですが,
SmallCharの中の1文字と比較する方法がわかりませんでした.
0875デフォルトの名無しさん
NGNG>>763
0876デフォルトの名無しさん
NGNGstrstr関数をしらべれ
0877デフォルトの名無しさん
NGNG876の言うようにstrstrを使うか、
strncmpを使う
どうでもいいけど、ヵとヶが足りない
0878デフォルトの名無しさん
NGNGbool isSmall(const char * OutputChar)
{
char SmallChar[] = "ぁぃぅぇぉっゃゅょゎァィゥェォッャュョヮ";
for (const char * psc = SmallChar; psc[0] != '\0'; psc += 2) {
if (OutputChar[0] == psc[0] && OutputChar[1] == psc[1]) {
return true;
}
}
return false;
}
0879デフォルトの名無しさん
NGNGおいおい、smallcharの1文字っつてるだろ。
==でいんでないのか?
0880デフォルトの名無しさん
NGNG0881デフォルトの名無しさん
NGNG0882デフォルトの名無しさん
NGNGi=虚数 i*i=-1 π=円周率
ω=2*π*f
Z=(R+i*ω*L)/(1+i*ω*R*C-ω*ω*L*C)
L=0.001 C=0.0001としRについては0.1〜10.0の範囲で変化させ
Zの絶対値が最大になる周波数fを求める
出た結果をdata.txtというメモ帳ファイルにセーブする
(1列目抵抗2列目Zの絶対値3列目fの最大値)
またRが1と2と5の場合について
周波数fとZの絶対値の変化をおなじdate.txtにさっきの結果のあとにセーブする
(1列目R2列目f3列目Z)
というプログラムをCで作るという課題です
ツールはborlandのコンパイラでCpadという開発環境でやっています。
どなたかよろしくお願いします。
0883デフォルトの名無しさん
NGNGヒントくれー
0884883
NGNG0885882
NGNG0886883
NGNGまちがってたらやさしく指摘してね!
でかけるからコード書くのは午後になりそー
0887デフォルトの名無しさん
NGNG0888デフォルトの名無しさん
NGNGガイキチではなく、低能です。
0889882
NGNGどなたかよろしくお願いします。
0890デフォルトの名無しさん
NGNGどんな環境でも判定できるような方法はありますか?
ご存知の方よろしくお願いします。
0891デフォルトの名無しさん
NGNGそもそも、最大値を数値計算で求めるのが課題ではなくて?
0892882
NGNGの文が間違ってましたただしくは
(1列目 抵抗 2列目 最大になったときのZの絶対値 3列目 Zが最大値になったときのf)
>>891
はい、前半はRを変化させてそれぞれのZが最大値になるfを求めるのが目的です
後半はRが1と2と5の場合においてfを変化させてfとZの絶対値の関係を調べるのが目的です
周波数の最大値も書き忘れました・・・0〜1000000です。
0893デフォルトの名無しさん
NGNGfloat.hあたりしらべてYO。
float : FLT_MIN<X<FLT_MAX
double : DBL_MIN<X<DBL_MAX
0894デフォルトの名無しさん
NGNG数値計算で最大最小問題を解くのが主題じゃないのかなぁと思ったんだけど。
0895デフォルトの名無しさん
NGNG数値計算(プログラミング演習)で、たまたま電気回路の問題を
解いてるのか、はっきりしないのでそこんとこよろしく
0896882
NGNGまた間違えてた
>(1列目 抵抗 2列目 最大になったときのZの絶対値 3列目 Zが最大値になったときのf)
は(1列目 R 2列目 最大になったときのZの絶対値 3列目 Zが最大値になったときのf)
です。
>>894-895
プログラミングの授業で電気回路の問題がでたのほうだと思います。
メインはプログラムです。
0897デフォルトの名無しさん
NGNG0898デフォルトの名無しさん
NGNG手計算で解ける問題をプログラムで確認する
という問題なのかもしれない。
0899882
NGNG変化させるごとに周波数0〜1000000まで変えてZの最大値を求めるので
て計算ではつらいかもです。
後半もRが1と2と5のときにfとZの絶対値の関係を求めてグラフにするので
て計算ではつらいかもしれないです。
なんで?
0901883
NGNGえっとやっぱ周波数の領域があったんですね!
あとだしはだめよ
ということで解析的に解くな!ということか
では今からやってみっかなー
できなかったらごめんねw>>882
0902デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=221
こんなんできましたが、結果がとってもあやしーですw
ほかの方の検証求む!
0903デフォルトの名無しさん
NGNG0904デフォルトの名無しさん
NGNG1Hzきざみ?
結果が荒すぎる気がする
0905デフォルトの名無しさん
NGNGどうもありがとうございます
結果が5.0でとまってしまっているのは
私だけでしょうか・・・?
0906902
NGNGあー俺もそうだよ。。
その意味で結果がとってもあやしーとかきました。
んで解決方法ですが・・すいませんわかりませんon_
0907デフォルトの名無しさん
NGNGc=0.0000001
R=1000
E=5
初期値x(0)=0
で上の画像の方形波3周期分をあたえたときにでる
Vrを求めるのが目的で
x=∫idt
x'=(-1/c*r)*x+(1/r)*e(t)
Vr=(-1/c)*x+e(t)
(x'はxを微分したもの)
この式をオイラー法で解くんですが
周期Tは0.00005と0.001の2つから選べるようにするんです
結果は時刻tとe(t)とVrが出るようにするんですが
どんなプログラムを組めばよろしいでしょうか?
どんなプログラムを書けばよろしいですか
0908デフォルトの名無しさん
NGNGリンクをクリックしても画像が表示されませんでしたので変えました。
0909デフォルトの名無しさん
NGNGいえそんなあやまれても
ありがとうございました
>>882
>>892
>>896
>>899
どなたかこの問題を解いていただけませんでしょうか
よろしくお願いします。
0910デフォルトの名無しさん
NGNGとても感謝してます
どうもでした。
0911902
NGNG|Z|=sqrt(R^2+(ωL)^2) /sqrt( (1-ω^2LC)^2 +(ωRC)^2 )
んで左辺の分母分子を sqrt(R^2+(ωL)^2) でわる。
そしてむりやり分母に正の項をつくる。
そんでそこに相加相乗平均を使うと
(1-ω^2LC)^2=(ωRC)^2
ってのが分母最小値つまり|Z|の最大値となる。
ってことを利用してやったらさLCで割るってのが効いてくるのか0になりますね。
すいませんどうでもよい解析的手法でした。
0912デフォルトの名無しさん
NGNGどなたかよろしくお願いします。
0913デフォルトの名無しさん
NGNGmからnまでの和を求めるプログラムをつくりなさい。
ただし、m<nとすること
というプログラムはどう作れば良いんですか?
0914デフォルトの名無しさん
NGNG#include <stdio.h>
int main(void){
int i;
int m, n;
int sum = 0;
scanf("%d", &m);
scanf("%d", &n);
for(i=m;i<n+1;i++)
sum += i;
printf("合計 .. %d \n", sum);
return 0;
}
0915デフォルトの名無しさん
NGNG0916デフォルトの名無しさん
NGNGこっちのほうがm<nをみたすまでループしてbetter
#include <stdio.h>
int main(void){
int i;
int m, n;
int sum = 0;
do{
printf("Input m &n (m<n)\n");
printf("Input m:");scanf("%d", &m);
printf("Input n:");scanf("%d", &n);
}while(m>n);
for(i=m;i<n+1;i++)
sum += i;
printf("合計 .. %d \n", sum);
return 0;
}
0917デフォルトの名無しさん
NGNGしゅくだいまだー?
0919デフォルトの名無しさん
NGNG0920デフォルトの名無しさん
NGNG0921デフォルトの名無しさん
NGNG#include <stdio.h>
double e(double t,double T,double E)
{
for(;t-T>0;t-=T);
return (t*2>=T)?0:E;
}
#define dt10
int main()
{
double T[]={0.00005,0.001};
double c=0.0000001;
double r=1000;
double E=5;
double x=0;
double t,h,et,Vr;
int ts;// T[ts];
printf("0.00005なら'1' 0.001なら'2' を入力>");
do{
scanf("%d",&ts);
}while(ts!=0&&ts!=1);
h=T[ts]/dt;
for(t=0.0;t<T[ts]*3;t+=h){
et=e(t,T[ts],E);
x+=((-1/c*r)*x+(1/r)*et)*h;
Vr=(-1/c)*x+et;
printf("t=%f , e(t)=%f , Vr=%f\n",t,et,Vr);
}
return 0;
}
0922デフォルトの名無しさん
NGNGというエラーがでたっす
0923デフォルトの名無しさん
NGNG#define dt 10
0924デフォルトの名無しさん
NGNGどうもありがとうございました。
みなさんでもむずかしいのにどうしよう・・・
0925デフォルトの名無しさん
NGNG0926デフォルトの名無しさん
NGNG0927デフォルトの名無しさん
NGNG中卒プログラマはこれだから(ry
0928デフォルトの名無しさん
NGNG#include <stdio.h>
void main()
{
FILE *fp;
char str;
fp=fopen("test.txt","r");
if(fp==NULL){
printf("ファイルのオープンに失敗しました。\n");
}
else
{
while (feof(fp)!=0)
{
fscanf(fp,"%s",str);
printf(str);
}
}
}
feofはEOFになると0を返すようなので返さない間ファイルを読んで表示させたいのですが
何も表示されませんでした。
どなたかご教授願います・・
0929デフォルトの名無しさん
NGNG0930デフォルトの名無しさん
NGNG>>1
>>928
逆。 while(feof(fp)==0){
0931デフォルトの名無しさん
NGNGchar型の値を読み込むときは%cを使え。%sはcharへのポインタを渡す必要がある。
たぶんやりたいのはこうだと思う。
while (feof(fp) != 0)
{
fscanf(fp, "%c", str);
printf("%c", str);
}
だけどただ単に1文字ずつ読み込んで表示したいのなら、fscanf/printfよりもfgetc/putcharの方がいい。
0932デフォルトの名無しさん
NGNG>>928
char str[1024];
fscanf(fp, "%.1024s", str);
0933デフォルトの名無しさん
NGNG------------------------------------
・・・
pthread_t theThread;
void *thread_code(void *t)
{
・・・
}
main()
{
・・・
pthread_attr_init (&attr);
sched_param.sched_priority = 4;
pthread_attr_setschedparam (&attr, &sched_param);
ret = pthread_create (&theThread, &attr, thread_code, (void *) 0 );
・・・
}
優先度4のスレッド(thread_code 0)を作る部分なのですが、
main の中のこの4行を、優先度、スレッド名、スレッド番号を持つマクロに変換するには
どのようにしたらよいでしょうか?
0934デフォルトの名無しさん
NGNGattrは作業用変数か?
それだと不可能。
戻り値をマクロに引数として渡すか、マクロをやめて関数にすることを検討するといい。
0935デフォルトの名無しさん
NGNG1、2、3の駆動するモーターとスイッチが1つあり
1のモーターだけが3秒間、2のモーターだけが3秒間
モーター1と2が同時に10秒間駆動し、この3つの動きははランダムに行われて
スイッチが押されると1、2は駆動を止めて3が5秒間駆動し、5秒後はまた同じ事が繰り返される
というプログラムをできるだけ簡単に作って下さい
0936デフォルトの名無しさん
NGNG0937デフォルトの名無しさん
NGNG何のOSで組んでいるのですか?
WindowsやLinuxではあきらかに不向きのようなきが
0938デフォルトの名無しさん
NGNG0939デフォルトの名無しさん
NGNG組込みではOSが無しの場合も良くあるよ。
環境依存だし、もしここに書くなら環境をちゃんと書いてもらわないとダメかもね。
0940935
NGNGPICを使ってやるんですが、自分では何がなんやら全く分かりません…
自分の専門学校のパソコンはウインドウズです
0941デフォルトの名無しさん
NGNGそうか。
二度と来るな。
0942デフォルトの名無しさん
NGNG氏んでください。
君のPCに入っているOSなんか聞いていません。
PIC使うにしても回路図が解からないとどのポートに出力するのか解かりません。
C使うにしてもどの処理系を使うのか書いてもらえないと実装できません。
PICにもいろいろあります。メジャーなのはPIC16F84とか?
一番の問題はスレ違いということですね。
逝ってよし
0943デフォルトの名無しさん
NGNG0944933
NGNGレスありがとうございます。
遅れてすみません。
attrが他で使用されないと仮定の上ではどうでしょうか?
0945デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1095075678/
0946デフォルトの名無しさん
NGNG↑は偽スレです。飛ばないように。
0947デフォルトの名無しさん
NGNG出力するプログラムを作成しなさい。なお、各抵抗値の入力は整数型で行い、
合成抵抗は実数型で小数第二位まで表示するものとする。
と、いう宿題がでたのですが
#include <stdio.h>
void main(void)
{
int i1;
int i2;
float i3=1/(1/i1+1/i2);
printf("R1を入力してください→");
scanf("%d",&i1);
printf("R2を入力してください→");
scanf("%d",&i2);
printf("合成抵抗は %d です。",i3);
}
と、作ってみたのですがborlandのコンパイラでコンパイルすると
2エラーでてしまいます・・・・何が原因なのでしょうか?
0948デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1064150088&res=222&fi=no
モーターとスイッチの制御は勝手にやってくれ。
あと、unsigned int mode = 0, i;のiは消してくれ。
0950デフォルトの名無しさん
NGNGエラー名書けや氏ねボケカス
#include <stdio.h>
int main(void)
{
int i1;
int i2;
float i3;
printf("R1を入力してください→");
scanf("%d",&i1);
printf("R2を入力してください→");
scanf("%d",&i2);
i3=1.0/(1.0/i1+1.0/i2);
printf("合成抵抗は %d です。",i3);
return 0;
}
0951デフォルトの名無しさん
NGNGprintf("合成抵抗は %f です。",i3);
0953デフォルトの名無しさん
NGNGどこにレスしてんだおまえは
しかもおせえんだよ
0954デフォルトの名無しさん
NGNGdouble から float に変換してんじゃねーよクソボケ
#include <stdio.h>
int main(void)
{
int i1;
int i2;
double i3;
printf("R1を入力してください→");
scanf("%d",&i1);
printf("R2を入力してください→");
scanf("%d",&i2);
i3=1.0/(1.0/i1+1.0/i2);
printf("合成抵抗は %f です。",i3);
return 0;
}
0955947
NGNGありがとうございました!!
エラー名かきわすれ申し訳ございませんでした・・・
さっそく修正してみたいと思います。
0958デフォルトの名無しさん
NGNG極力マクロを使うな。inlineで十分だろ。デバッグやりにくいし。
マクロにしないと駄目な理由を書いてくれ。
0959デフォルトの名無しさん
NGNG0960947
NGNGすいません、入力してるときにカキコマレタようでみてませんでした・・・
0961デフォルトの名無しさん
NGNGああ、inlineの使えないCもあったんだった・・・
0962デフォルトの名無しさん
NGNGハァ?
0963933
NGNGでは inline を使うとどのようにできるのでしょうか?
すみません・・・
0964デフォルトの名無しさん
NGNG関数の頭にinlineをつける
0965デフォルトの名無しさん
NGNG調べたりする気のないヤツはプログラムするな
0966デフォルトの名無しさん
NGNG禿同
0967933
NGNG少し調べてみました。みなさん、レスありがとうございます。
inline はC++のようですが、Cでも使えるのでしょうか?
そこが心配なのですが・・・
例えば>>933だと
以下のようにnew というinline関数を定義すると
pthread_attr_init (&attr);
sched_param.sched_priority = 4;
pthread_attr_setschedparam (&attr, &sched_param);
ret = pthread_create (&theThread, &attr, thread_code, (void *) 0 );
は、どのように使用すればよいのでしょう?
--------------------------------------------
pthread_t theThread;
inline int new(priority, thread, number)
void *thread_code(void *t)
{
・・・
}
main()
{
・・・
}
0968デフォルトの名無しさん
NGNGそれは調べたなどと言わない。
0969デフォルトの名無しさん
NGNGC99に対応したコンパイラなら。
0970デフォルトの名無しさん
NGNG厳しいですね・・・(涙)
いろいろと調べてるのですが、なかなか分からなくて・・・
すみません・・・
0971969
NGNG- 仕様
0972デフォルトの名無しさん
NGNGインライン云々の前にふつうの関数がわからんのではないかという疑念を抑えることができない
0973マイク ◆yrBrqfF1Ew
NGNGコンパイラに対して意思表示ができる
0974デフォルトの名無しさん
NGNG0975デフォルトの名無しさん
NGNG試しもしないでできるかどうか聞いているのか?
0976デフォルトの名無しさん
NGNG虚数√-1ってどうやってやるんでしょうか
sqrt(-1)だとおかしくなってしまうんですが
0977デフォルトの名無しさん
NGNGそもそもiを数値に置き換える必要などない
『虚部』を使えばいいだけ
それ以前にここは宿題すれ
0978デフォルトの名無しさん
NGNG0979デフォルトの名無しさん
NGNG宿題で虚数をつかうのがあったのでここでもいいかと思いました。
iを虚数とすると
Z=X+iY
というのを入力するとこでどうやってあらわせばいいのかこまったので質問しました。
0980デフォルトの名無しさん
NGNG0981デフォルトの名無しさん
NGNG0982デフォルトの名無しさん
NGNGうまくいきました。
0983デフォルトの名無しさん
NGNGんなばヵな
0984デフォルトの名無しさん
NGNGこれでどう?
--------------------------------------------
pthread_t theThread;
inline int new(int priority, char thread, int number)
{
pthread_attr_init (&attr);
sched_param.sched_priority = priority;
pthread_attr_setschedparam (&attr, &sched_param);
ret = pthread_create (&theThread, &attr, thread, number );
}
void *thread_code(void *t)
{
・・・
}
main()
{
new(4, thread_code, 0)
・・・
}
0985デフォルトの名無しさん
NGNGsscanf(buff,"Z=%d+i%d",&x,&y);
こんなんちゃうかい
宿題で虚数を使うならその宿題をさらせ
俺は宿題に飢えているんだ
0986デフォルトの名無しさん
NGNG共通点を持つかどうか判定するプログラムを書け.
ただし 直線((x1, y1), (x2, y2)) と 直線((x3, y3), (x4, y4))
に対して
x1 y1 x2 y2 x3 y3 x4 y4
というフォーマットで入力する.
入力はすべて整数とする.
お願いします.
0987デフォルトの名無しさん
NGNG線分((x1, y1), (x2, y2))をA
線分((x3, y3), (x4, y4))をB
として、線分Aと線分Bの延長線上での交点C(x,y)を求め、
x1<x<x2&&y1<y<y2が真であれば線分が交差していると考えられる。
また、AとBが線形独立の場合は交点が無いので注意。
0988デフォルトの名無しさん
NGNGあ、ごめん、勘違いしていた
線形独立かどうかを判定するプログラムっていうわけか…
(y1-y2)/(x1-x2) != (y3-y4)/(x3-x4)が真になったとき共通点を持つ。
0989デフォルトの名無しさん
NGNG(y1-y2)*(x3-x4) != (y3-y4)*(x1-x2)
0990デフォルトの名無しさん
NGNG簡単なのにプログラム書かなきゃダメなの?
#include <stdio.h>
int linearly_independent( double x1, double y1,
double x2, double y2,
double x3, double y3,
double x4, double y4 ) {
return (y1-y2)*(x3-x4) == (y3-y4)*(x1-x2) ? 0 : 1;
}
int main( void ) {
double x1, y1;
double x2, y2;
double x3, y3;
double x4, y4;
printf( "変数を代入してね(はぁと):" );
scanf( "%lf %lf %lf %lf %lf %lf %lf %lf",
&x1, &y1, &x2, &y2, &x3, &y3, &x4, &y4 );
switch (linearly_independent( x1, y1, x2, y2, x3, y3, x4, y4 )) {
case 1:
puts( "共通点を持つ" );
break;
case 0:
puts( "共通点を持たない" );
break;
}
return 0;
}
0991デフォルトの名無しさん
NGNG入力は整数らしいぞ
double -> int
%ld -> %d
0992デフォルトの名無しさん
NGNG飢えてるならプログラム教えてるパソコン教室探して通え
0993デフォルトの名無しさん
NGNGププ
0994デフォルトの名無しさん
NGNG0995デフォルトの名無しさん
NGNG新スレ
http://pc5.2ch.net/test/read.cgi/tech/1095075678/
0996デフォルトの名無しさん
NGNGそんなネタスレでは質問も回答も無いな
実際に無いわけだが。
0997デフォルトの名無しさん
NGNG0998デフォルトの名無しさん
NGNG0999デフォルトの名無しさん
NGNG1000デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1095075678/
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。