C/C++の宿題なら俺にやらせろ!
レス数が1000を超えています。これ以上書き込みはできません。
0001C++房 ◇9ye75cT6
NGNG今まで8ヶ月、毎日休まず一生懸命C++を勉強してきた。
わからない宿題若しくは処理があったら俺にやらせてくださいm(_ _)m
ただしソート、2分木など俺が5分以上悩むの問題はお断りだ。
他の手強に聞いてくれ
0002デフォルトの名無しさん
NGNG0003C++房 ◆Mjk4PcAe16
NGNGC++房#2
0004C++房 ◆bK0oO/M0ho
NGNG0005C++房 ◆9J9ye75cT6
NGNG0006デフォルトの名無しさん
NGNGhttp://pc3.2ch.net/test/read.cgi/tech/1021862587/
0008お願い・・
NGNG二分探索法はO(log n),
↑
これらは分かるんですが、探索の計算量がO(1)の探索アルゴリズムを
C言語で教えてください、
ちなみにハッシュ法のような複雑な手法を用いないで。。
0009デフォルトの名無しさん
NGNG誰かO(1)のアルゴリズムを発明してあげてください。
0010デフォルトの名無しさん
NGNG0011デフォルトの名無しさん
NGNG0012デフォルトの名無しさん
NGNGハッシュ以上に簡単な方法ってあるのかな?
検索したいデータの特徴によっては、裏技があるかも
しれないけど。
0013デフォルトの名無しさん
NGNG2.計算量は、O(1)である。
3.ハッシュよりも単純である。
00148です。。
NGNG登録されているデータ値は0以上9999
以内の整数です、というのを書き忘れました。
0015デフォルトの名無しさん
NGNGキーが整数ってこと?
データは?
0016デフォルトの名無しさん
NGNG0017デフォルトの名無しさん
NGNGで解決ですね。
0018デフォルトの名無しさん
NGNG(これもハッシュといえばハッシュだけど)
00198です。。
NGNG線形探索法の検索の計算量はO(n),
二分探索法はO(log n)であった、それでは、探索の計算量が0(1)の探索手法
を考え、その探索アルゴリズムをC言語で記述せよ。またこれが、なぜO(1)なのか
説明せよ。
但し、登録されているデータ値は、0以上9999以内の範囲内の整数とする。
答えは簡単なアルゴリズムである。ハッシュのような複雑な手法は用いないこと。
0020デフォルトの名無しさん
NGNG誰が出題した問題か気になるな。目の前にいたらいちゃもんつけたる。(w
0021デフォルトの名無しさん
NGNG回答:
int *テーブル = (int*)malloc(テーブルサイズ); // 適当にデータ突っ込んどけや
int result = -1; // 見つかん無かったときは -1 とするよん
for( int i = 0; i<テーブルサイズ; ++i )
if ( テーブル[i]==検索してる値 ) result = i;
for( int i = テーブルサイズ; i<intで表現可能な最大値; ++i ) i==0;
O(1)な理由:
テーブルサイズに依存せず、比較回数は常にintの最大値、すなわち定数時間である。
0022デフォルトの名無しさん
NGNG0023デフォルトの名無しさん
NGNG002421
NGNG00258です。。
NGNG17様、21様のやり方で考えてみます。
0026gcc
NGNGプログラムがわかりません。
一応ここまでできました。
#include <stdio.h>
typedef struct date_time{
int hour;
int minute;
}ST_TIME;
ST_TIME add_time(ST_TIME x,ST_TIME y);
int main(void){
ST_TIME jikoku[2],diff;
int i;
for(i=0;i<2;i++){
printf("jikoku[%d].hour :",i);
scanf("%d",&jikoku[i].hour);
printf("jikoku[%d].minute:",i);
scanf("%d",&jikoku[i].minute);
}
diff=add_time(jikoku[0],jikoku[1]);
printf("時刻の和は、%d:%02d です。\n",diff.hour,diff.minute);
return 0;
}
ST_TIME add_time(ST_TIME x,ST_TIME y){
ここまでできました。
教えて下さい。
0027デフォルトの名無しさん
NGNGST_TIME sum;
sum.hour = x.hour + y.hour;
sum.minute = x.minute + y.minute;
return sum;
}
0028デフォルトの名無しさん
NGNGwhile (sum.minute >= 60) {
sum.minute -= 60;
sum.hour++;
}
0029デフォルトの名無しさん
NGNGsum.hour = x.hour + y.hour + sum.minute / 60;
sum.minute %= 60;
0030デフォルトの名無しさん
NGNG時刻に時間を足すんならわかるが・・・・
0031gcc
NGNG>29
return sum;
}
って最後につけますか?
0032デフォルトの名無しさん
NGNGST_TIME sum;
sum.minute = x.minute + y.minute;
sum.hour = x.hour + y.hour + sum.minute / 60;
sum.minute %= 60;
return sum;
}
0033gcc
NGNGのsumって何の事ですか?
0034デフォルトの名無しさん
NGNG0035デフォルトの名無しさん
NGNG0036デフォルトの名無しさん
NGNG0037コンパイラ
NGNGプログラムが何ですが、
60分は1時間
24時間は1日
とします。これはプログラムの
1部なんですが、何処が違って
ますか?教えて下さい。
ST_TIME add_time(ST_TIME x,ST_TIME y){
ST_TIME sum;
sum.hour = x.hour + y.hour;
sum.minute = x.minute + y.minute;
sum.day = sum.hour/24
while(sum.minute >= 60) {
sum.minute -= 60;
sum.hour++;
}
while(sum.hour >= 24) {
sum.hour -= 24;
sum.day++;
}
return sum;
}
0038デフォルトの名無しさん
NGNG>何処が違ってますか?教えて下さい。
実行してみれば分かるじゃん。
0039コンパイラ
NGNG0040デフォルトの名無しさん
NGNG26 と同じ話か?
0041デフォルトの名無しさん
NGNG0042コンパイラ
NGNG時間の桁上がりが生じなかったのです。
今度は24時間を1日とカウントします。
0043デフォルトの名無しさん
NGNGST_TIME add_time(ST_TIME x,ST_TIME y){
ST_TIME sum;
sum.minute = x.minute + y.minute;
sum.hour = x.hour + y.hour +sum.minute/60;
sum.day = x.day + y.day + sum.hour/24;
sum.minute %= 60;
sum.hour %= 24;
return sum;
}
0044デフォルトの名無しさん
NGNG(´-`).。oO(「悩むの問題」ってなんだよ…)
0045コンパイラ
NGNGwhile文などを使ってはできませんか?
0046デフォルトの名無しさん
NGNGできるよ。
0047デフォルトの名無しさん
NGNGできるけど、何で必要なの?
使わない方がすっきりしてると思うし。
void norm_time(ST_TIME *t)
{
t->hour += t->minute / 60; t->minute %= 60;
t->day += t->hour / 24; t->hour %= 24;
}
ST_TIME add_time(ST_TIME x,ST_TIME y){
x.minute += y.minute;
x.hour += y.hour;
x.day += y.day;
norm_time(&x);
return x;
}
norm_time() は、引き算とかに流用できる。
0048コンパイラ
NGNG確かにそうなのですが、>43のプログラム以外の
プログラムが勉強のために欲しかったのです。
ありがとうございました。
0049デフォルトの名無しさん
NGNG0050コンパイラ
NGNGでてない。
構造体の課題で、whileを使うかどうかなんて
関係ないでしょ
0051デフォルトの名無しさん
NGNG常に最適解を求める勉強をしてくれ。
0052デフォルトの名無しさん
NGNG0053デフォルトの名無しさん
NGNGつーか、結局課題なのかよ。
自分で解けよ。
0054デフォルトの名無しさん
NGNG腕試しでないと思われ
0055デフォルトの名無しさん
NGNG解けないから、ここに来てるんだろ
0056デフォルトの名無しさん
NGNGいや、ここはそのためのスレじゃないのか?
0057デフォルトの名無しさん
NGNGよく考えたらそうだな。
0058デフォルトの名無しさん
NGNGここの最適解を(以下略
0059デフォルトの名無しさん
NGNG任せた。
0060デフォルトの名無しさん
NGNGdouble kakudo = 0.0;
double pai = 3.14159265;
double rad = pai / 180;
double rad1 = kakudo * rad,
rad2 = (kakudo + 180) * rad;
POINT start, center, end;
double r = 30.0;
center.x = 90;
center.y = 90;
start.x = (int)(r * cos( rad1 )) + center.x;
start.y = (int)(r * sin( rad1 )) + center.y;
end.x = (int)(r * cos( rad2 )) + center.x;
end.y = (int)(r * sin( rad2 )) + center.y;
pDC->MoveTo(start);
pDC->LineTo(end);
メッセージハンドラOnLBUTTONDOWNを用いてkakudoの値を制御し、
線画の再描画を促すようにしたいのですがわかりません。
(線画が画面内で一回左クリックする毎にkakudoの値をインクリメントし、
傾きが増していくといった感じです。)
0061デフォルトの名無しさん
NGNG0062デフォルトの名無しさん
NGNGファイルを読み込むプログラムで
char string[10] の配列の中に
12_15_____
(_は空白です )
ていうふうに数字(char型)で入っているときに
12と15という数字を二つ取り出す(int型の変数として使いたい)にはどうすれば良いのでしょう??
ちなみに12とか15が124と4みたいに3桁になったり1桁になった時にもちゃんと取り出したいのですが・・・
お願いします!!
0063デフォルトの名無しさん
NGNG0064こういうことか?&rlo;?かとこういうこ
NGNG#include<stdio.h>
int main(void)
{
char string[10];
char *p;
string[0]=12; /* *(string+0)=12 */
string[2]=15; /* *(string+2)=15 */
p=string; /* p=&string[0] */
printf("char[0]..%d,char[2]..%d",*p,*p+2);
return 0;
}
006562
NGNG言葉足らずでした。なにせC言語がよくわからないもので・・・
実は参考にしたプログラム(ファイルの読み込むプログラム)で
fgets(string, 200, fp);
sscanf( string, "%d", &val );
という感じの部分があるのですが
fgets(string, 200, fp);
というのは
これはfpファイルの一行をstringに入れなさい!みたいな意味ですよね??
sscanf(string, "%d", &val );
それでその後のこれは
読み込んだstringをvalという変数に10進数でいれなさい!みたいな意味ですよね??
これを実行するとあたり前なのかもしれないですが
14_12______
というのがもとのファイルだと
14という数字しか認識されずに12というデータがなくなってしまいます。
12という数字を読み取るにはどうすれば良いのでしょう??
0066デフォルトの名無しさん
NGNG0067デフォルトの名無しさん
NGNG人に聞くときは、初心者であろうが、凡人であろうが
実装プログラムを書くのが一般的。
0069両津勘吉
NGNG#include <string.h>
#define TINTERVAL 4500000
int main()
{
int i,j, k;
char *a = "This is a test";
char *b;
printf("%s\n", a);
for (k=0; k < 5; k++) {
/* forward */
b =a; /* point to first character */
for (i=0; i <=strlen(a); i++){
if (i > 0) {
/* 必要なだけスペース出力 */
for (j = 0; j < i; j++)
printf(" ");
}
0070両津勘吉@つづきです
NGNGif (i < strlen(a)) {
printf("%c\r", *b);
}
else {
printf("\r");
}
fflush(stdout);
b++;
/* sleep(1); 少しポーズする */
for (j=0; j < TINTERNAL; j++) {
}
}
printf("\n");
return 0;
}
大ピンチになっています。上のプログラムを改良して両津勘吉という名前を
一文字づつ表示するプログラムはなんとかできました。
でもそこは提出しなくていいらしくて、今度はそれを改良して、両津勘吉という文字を、
一文字づつ左に表示して、左端についたら次に右に一文字づつ
表示するプログラムを作りたいのです。
どなたか暇な方がいたらよろしくお願いします。
0071両津勘吉
NGNG1 吉
2 勘
3 津
4 両
5 津
6 勘
7 吉
どなたか助けてくださいお願いします
0072両津勘吉
NGNG2 勘
3 津
4 両
5 津
6 勘
7 吉
0073デフォルトの名無しさん
NGNG0074デフォルトの名無しさん
NGNGWin32Consoleだからなのか?
0075デフォルトの名無しさん
NGNG#include <string.h>
#include <wchar.h>
#include <locale.h>
#include <windows.h>
int wmain()
{
int k;
wchar_t *a = L"両津勘吉";
int len = wcslen( a );
setlocale(LC_ALL, "jpn");
wprintf(L"%s\n", a);
for (k=-len+1; k < len+1; k++) {
wchar_t *b = &a[ abs(k)];
if( k )
wprintf(L"%*c", abs(k)*2 , L' ');
wprintf(L"%c%*c\r", *b, (len-abs(k))*2, L' ');
Sleep(1000);
}
wprintf(L"\n");
return 0;
}
つーか、これでいいのか?
0076両津
NGNGいまCCがうまくいきますた。何とかなりそうですありがとうございます。
0077デフォルトの名無しさん
NGNG0078デフォルトの名無しさん
NGNGそうです。
0079デフォルトの名無しさん
NGNGint hoge( short* a, short b )
引数
short* a 加算先
short b 加算数
戻値0 正常
1 加算でオーバーフロー
…という問題が出されたんですけど、わかりません。
008079
NGNG#include<stdlib.h>
short *wk;
int hoge( short *a, short b );
int hoge( short *a, short b )
{
int c=0;
printf("%d",wk);
if(abs((long)a+ (long)b)>0x7fffL)return(1);
elsereturn(0);
}
void main(void)
{
short b;
while(!(hoge(wk,b)))
{
rewind(stdin);
printf("input num... >");
scanf("%d",&b);
printf("%d\n",hoge(wk,b));
}
}
なんとかここまでできたんですけど、どなたか助けていただけませんか?
0081デフォルトの名無しさん
NGNG*a == -30000
b = -30000
だった場合どうするの?
008281
NGNG0083デフォルトの名無しさん
NGNG??ただ単に、
int hoge( short *a, short b ) {
int res = *a + (int)b;
if ( res > SHRT_MAX || res < SHRT_MIN ) return 1;
*a = res;
return 0;
}
こういうことじゃないの?
0086デフォルトの名無しさん
NGNG80ちゃんと読んでなかった。
アンダーフローの場合は?て聞こうとしたんだけど、
調べてみたらアンダーフローを勘違いしていることが
わかった。
スマン
0087デフォルトの名無しさん
NGNGその中に文字を入れるにはどうすればよろしいんでしょうか。。
windows.hを使ったような覚えがあるのですが忘れてしまって
0088デフォルトの名無しさん
NGNGちょっと待て。
コンソールウィンドウにテキストボックスを置こうと言うのか?
標準の方法で自分のコンソールウィンドウのハンドルを捕らえるのは無理だが。
普通に標準入力から読むわけには逝かないのか?
0089デフォルトの名無しさん
NGNG#include <vector>
・
・
・
vector<int> vct;
と宣言してもエラーが出るよーっ!
使い方教えて!
0090デフォルトの名無しさん
NGNG0091デフォルトの名無しさん
NGNG名前空間を知ってね。
009287
NGNGBorland C++ Compiler 5.5でした・・・
DOSプログラムを作っているのですが、おっしゃる通りコンソールウィンドウ(DOS画面)に
テキストボックスを作ろうとしているのです
なにやらDOSでタイピング練習ソフトを作れという課題でして、悩んでます
0093デフォルトの名無しさん
NGNGだから・・・。
普通に標準入力から読むわけには逝かないのか?
やってできない事は無いかもしれないが、確実な方法を実装できたらそれは神だぞ。
「コンソールウィンドウのハンドルを捕らえるのは無理」 = 「どのウィンドウに
テキストボックスを作ればいいか判断できない」 わけだから。
0094デフォルトの名無しさん
NGNGprintf("┌───────────┐");
みたいな。
0095デフォルトの名無しさん
NGNG汎用的にする改良や、使いやすくするための改良などを考えたいんですが、
どうしたら良いでしょうか?
マクロとか、グローバル変数、乗算などの減少などくらいでしょうか…
#include <stdio.h>
double m = 4.0, n = 8.0, mn = m*n,a0 = ((1 - n*n)*mn),a1 = (3*mn*n - m),
a2 = (-3*mn),a3 = m;
double f( double x );
void main (void)
{
double q0, q1, q2;
int k, i;
k = 31;
q0 = n - 0.5;
q1 = n + 0.5;
if ( f( q0 )*f( q1 ) < 0 ){
for ( i = 1; i <= k; i++ ){
q2 = ( f( q1 )*q0 - f( q0 )*q1 )/( f( q1 ) - f( q0 ) );
printf( "k =%3d x = %12.4le\n", i, q2 );
if ( f( q2 )*f( q1 ) > 0 ){
q0 = q2;
}
009695
NGNGq1 = q2;
if ( q2/8.0 >= 0.99 ){
break;
}
}
printf( "真の解との誤差1%%以下を得るのに必要な回数は%dです。\n",i );
}
else
printf( "初期値エラー\n" );
}
double f( double x )
{
double y;
y = a3*x*x*x + a2*x*x + a1*x + a0;
return y;
}
0097デフォルトの名無しさん
NGNG「それにはテキストボックスが必要」
と考えるにいたる経緯に興味がある。
0098デフォルトの名無しさん
NGNG0099デフォルトの名無しさん
NGNGprintf("┌ABCDEFGHIJK┐");
printf("┌LMNOPQRSTUV┐");
printf("┌CUTXYZ・・・・・┐");
printf("└───────────┘");
とでもしておけ。
0100デフォルトの名無しさん
NGNG>>95
変数見づらい。
オブジェクト化するなら
メンバ変数に vector<double> hoge
を使ってf(x)のn次関数を管理か。
hoge[n]でf(x)の係数を格納。
0101デフォルトの名無しさん
NGNGprintf("|ABCDEFGHIJK|");
printf("|LMNOPQRSTUV|");
printf("|CUTXYZ・・・・・|");
printf("└───────────┘");
とでもしておけ。
0102デフォルトの名無しさん
NGNG0104デフォルトの名無しさん
NGNGprintf("┃A B C D E F G H I J K ┃\n");
printf("┃L M N O P Q R S T U ┃\n");
printf("┃V W X Y Z .┃\n");
printf("┗━━━━━━━━━━┛\n");
とかこういうことだったりして名w
0105デフォルトの名無しさん
NGNG誤爆スマソ。
0106デフォルトの名無しさん
NGNG>>95
こんなのあった。
0107デフォルトの名無しさん
NGNG勤労感謝の日だって・・・いつだっけ?
0108デフォルトの名無しさん
NGNG0109デフォルトの名無しさん
NGNG10個予約して、
イテレータでベクタの先頭を見て、
イテレータを進めて、
1を入れたら実行時エラー。
vector<int> a;
a.reserve(10);
vector<int>::iterator i = a.begin();
++i;
a.insert(i, 1); // ここでエラー
これってなんかまずいことやってるんですか?
011095
NGNG変数は、何か単語みたいなの方が良いんでしょうか?
「使いやすさ」という点でそこら辺を考慮してみて、考察したいと思います。
オブジェクト化…(以下略
は、ちょっと良く意味が分からないので、調べてみます。
レスありがとうございました。
>>103
そうです、汎用化したいのです。#Define とか使えそうですかね?
>>106
今から見てみます。わざわざありがとうございます。
>>107
???
0111デフォルトの名無しさん
NGNG0114103
NGNG正 103
0115106
NGNG正 106
011695
NGNGメンバって構造体とかあの辺でしょうか?
実はまだ習ってないんです。いい機会なんでそこら辺読んで見ます。
乗算ってなるべく回数減らすように、うまく変形したほうが良いんですよね?
pow()ってのがありますが、これはアルゴリズム的にあまり優れてないんでしょうか?
これはlog計算してからというように遠回り(?)してるので、効率的でないと
聞いたことがあります。どうでしょうか?
0117デフォルトの名無しさん
NGNGa.reserve(10); → a.resize(10);
0119デフォルトの名無しさん
NGNGax^3+bx^2+cx+d
((ax+b)x+c)x+d
012095
NGNGいや、このくらいのプログラミングなら問題ないんですがね…
自分がやってるのは詳しく言うと、
f(x) = mx^3 - 3mnx^2 + (3mn^2 - m)x -mn^3 + mn
って、式があって、mとnは各人違う値が与えられて、
その解の一つの前後0.5で、はさみうちを実行して、真の解に対して1%
以下の誤差になるまで何回計算したらいいのか?
って感じです。
しかし、収束が早いのか1回で求まる。
ニュートン法も1回でした。2次収束でこれだけ速いのか…
0122デフォルトの名無しさん
NGNGdouble使ってる時点であんまり関係ないと思う。
再帰的にX^nを求めてやってX^2〜X^nをどこかに
ストックして再利用すれば、計算は減らせるね。
挟み込むべき点を導関数で求めてやる時にも
使えそうだし。
0125デフォルトの名無しさん
NGNGm,nの範囲の想定次第。
0127デフォルトの名無しさん
NGNGはさみうちってこうやるの?
q2 = (q0+q1)/2;
かと思った。
0129デフォルトの名無しさん
NGNGif ( f( q2 )*f( q1 ) > 0 ){
q0 = q2;
}
else
q1 = q2;
とあるじゃん。
少し違うけど。
0130103
NGNG長く考えた結果、こんなものしか出来なかったんですが。
class Func{
private:
vector<double>hoge;//係数を格納
double calc(double x);//xで求まる任意の数を計算
public:
Func(vector<double>);
//関数名:GetSol(2分法)
//引数eは誤差
//誤差が不適切だと計算が終わらなかったりするので注意。
//a,bが異符号であるチェックを仕込んでくれ
double GetSol(double a,double, b,double e);
//以下、ニュートン法等色々な関数が並ぶ事になる
//double GetSol(...);
//double GetSol(...);
//operator等仕込むと、更に汎用性が高くなって面白いかも。
};
0131デフォルトの名無しさん
NGNGそれじゃ一回目で終わるだろが。
013295
NGNGなんすか、それ?平均?
>>130
ありがとうございます。
しかし、見たことないのが一杯…く、くらす?
もしやC++っすか?すみません、Cの課題なんです。
言ってなかったですね。本当に申し訳ないです。
0133デフォルトの名無しさん
NGNGこんなんどう?作ってたら、いろいろ手が入っちゃった。
int hasami(double (*f)(double), double q0, double q1, double dx, double* x)
{
int k = 0;
double q, f_q0, f_q1, f_q;
f_q0 = f(q0);
f_q1 = f(q1);
if (f_q0 * f_q1 < 0) {
for (;;) {
k += 1;
q = (f_q1 * q0 - f_q0 * q1) / (f_q1 - f_q0);
f_q = f(q);
// printf( "k =%d x = %12.4le\n", k, q);
if (f_q * f_q0 < 0 ){
q1 = q;
f_q1 = f_q;
} else if (f_q * f_q0 > 0 ){
q0 = q;
f_q0 = f_q;
} else {
break;
}
if (fabs(q1 - q0) <= dx){
break;
}
}
*x = q;
}
return k;
}
0134133
NGNG> double m = 4.0, n = 8.0, mn = m*n,a0 = ((1 - n*n)*mn),a1 = (3*mn*n - m),
> a2 = (-3*mn),a3 = m;
Cでコンパイルしたら、ここの部分が通らなかった。
なんで、オレもC++だと思って、C++でしかコンパイル通してない。
0135デフォルトの名無しさん
NGNG中間値?
013795
NGNGなるほど。はさみうち自体を関数にしてしまって、回数を戻すってことですか。
(*f)(double)とdouble* xは何なんでしょうか?後者は真値でしょうか?
>>134
え!?マジっすか?VisualC++でやってるからコンパイルできたんでしょうか?
0138103
NGNGコンストラクタはdouble配列で渡すようにした方が汎用性よし。
SetFuncやらを追加して、関数の定義しなおしを定義するように
した方がいい。(その場合、コンストラクタをオーバーロードできて
いい感じかも)
もうぜんぜん関係なかったけど以上です。
0139デフォルトの名無しさん
NGNGdouble (*f)(double) 引数 double 戻り値 doubleの関数のポインタ。
double* x はxのポインタ。
将来Cを使い込むのであればポインタは理解しとくといい。
0141デフォルトの名無しさん
NGNGdouble Func(double a){
}
という関数があるとき
f=Funcと関数を値(アドレス)にできること。
0143139
NGNGシマツタ
0144デフォルトの名無しさん
NGNG014595
NGNGk = hasami( &f,q0, q1, 0.08,&x);
printf("回数 = %d\n",k);
って感じでいいんでしょうか?
はさみうちを関数にしたほうが汎用性は高いですね。
0147デフォルトの名無しさん
NGNGex + fy + gz = h
ix + jy + kz = l
という連立方程式について、x,y,zについて解くプログラムを教えてください。
a〜lは任意の文字式です。
0148デフォルトの名無しさん
NGNG0149デフォルトの名無しさん
NGNG1234と打ったら4321と表示されるようなプログラムを作成しなさい。
ただし、123400などの場合は4321とする。
ヒントは10で割った余りを使うらしいんですけど
for文がいまいち理解できてないので分かりません。お願いします。
0150PROBLEM 1: Outdoor Cow Friends [Brian Dean]
NGNGEvery morning, his cows leave the barn in a single-file line in a specified ordering.
FJ leaves N1 contiguous cows at the front of the line in the first field,
and continues with the rest of the fields,
leaving N2 cows at the front of the line in the next field, and so on,
until all of the cows have been deposited into some field.
The cows stay in the fields in which they are deposited and do not move around.
FJ's cows are very sociable, and each cow has a group of friends with
whom she prefers to graze. Define a friendship as an unordered pair
(i,j) such that cow i and cow j (i != j) prefer to graze in the same field.
Here i and j are indices from 1..N indicating the cows' positions in the single-file line leaving the barn.
We say a friendship (i,j) is satisfied if cows i and j end up grazing in the same field.
Pairs are unique in the input. So, if (i,j) is in the input,
it is listed only once, and (j,i) is not listed.
Given a list of friendships, determine the placements of cows FJ should use
in order to maximize the number of friendships that are satisfied.
Your output will be the maximum number of friendships that can be satisfied.
FJ insists that none of his K fields may remain empty and that no field contains only one cow,
since that cow will then feel outcast.
INPUT FORMAT:
* Line 1: Three integers, N, K, 4 <= 2*K <= N <= 150, and F
(1 <= F <= 200), the number of friendships.
* Lines 2..F+1: Each line contains a two integer friendship pair, each
integer is in the range 1..N.
0151デフォルトの名無しさん
NGNGz=z/10;
0152デフォルトの名無しさん
NGNG#include <stdio.h>
main()
{
char b[256];
gets(b);
if((!strcmp(b,"1234"))||(!strcmp(b,"123400など")))
puts("4321");
return 0;
}
0153デフォルトの名無しさん
NGNG専修・・・
0154デフォルトの名無しさん
NGNG#include <math.h>
int main(void)
{
int data[8];
int num_i;
int num_o=0;
int i,x;
printf("8桁の整数を入力してください:");
scanf("%d",&num_i);
for(i=0;i<8;i++)
{
data[i]=num_i%10;
num_i/=10;
}
for(i=0;data[i]==0;i++)
;
for(;i<8;i++)
num_o+=data[i]*pow(10,(7-i));
printf("%d\n",num_o);
return(0);
}
0155デフォルトの名無しさん
NGNG演習ですか?
0156デフォルトの名無しさん
NGNG専修の課題です。
0157デフォルトの名無しさん
NGNG0158デフォルトの名無しさん
NGNG0159149
NGNG0160デフォルトの名無しさん
NGNG0161149
NGNGあと123400などの場合は4321ってのも。
0162デフォルトの名無しさん
NGNG当たり前だろ。配列数8なんだから…
00のところは条件判断で捨てればいいんじゃないの?
0163デフォルトの名無しさん
NGNG可変長配列使うって手は?
0164154
NGNG#include <stdio.h>
#include <math.h>
int main(void)
{
int data[8];
int num_i;
int num_o=0;
int i;
int count=0;
printf("8桁までの整数を入力してください:");
scanf("%d",&num_i);
for(i=0;;i++)
{
data[i]=num_i%10;
count++;
if((num_i/10)<1)
break;
num_i/=10;
}
for(i=0;data[i]==0;i++)
;
for(;i<count;i++)
num_o+=data[i]*pow(10,((count-1)-i));
printf("%d\n",num_o);
return(0);
}
0165JPS ◆M0LaMzf5rY
NGNG0166デフォルトの名無しさん
NGNGそれでscanfして勝手に灰列数変えればいいか。マクロ使ったほうが良さそう。
0167149
NGNG0169103
NGNG#include <stdio.h>
int main()
{
int x;
printf("整数を入力してください");
scanf("%d",&x);
while(x != 0){
if( x - ( (x / 10) * 10 ) != 0 ){
printf("%d",x - (x / 10) * 10 );
}
x /= 10;
}
printf("\n");
return(0);
}
0170103
NGNG0171149
NGNGどうもありがとうございます。
0172デフォルトの名無しさん
NGNG余り使ってなくて?良いのか??
0173デフォルトの名無しさん
NGNGint main()
{
int x, y=0;
printf("整数を入力してください");
scanf("%d",&x);
for(;x != 0;x /= 10)
y=y*10+x%10;
printf("%d\n", y);
return 0;
}
0174デフォルトの名無しさん
NGNGint main()
{
int x;
scanf("%d", &x);
do {
printf("%d", x % 10);
x /= 10;
} while (x);
printf("\n");
return 0;
}
0175デフォルトの名無しさん
NGNG1001とか入れたら11にならん?
0176デフォルトの名無しさん
NGNGなるな。
0入れたら何も出てこないし。
0177デフォルトの名無しさん
NGNGint main(void) {
int target, print, zeroFlag=0;
scanf( "%d", &target );
if ( target == 0) {/*めんどかったので特殊扱い*/
printf("0");
}
do {
print = target % 10;
if ( print > 0 && zeroFlag == 0 ) {
zeroFlag = 1;
}
if ( zeroFlag == 1 ) {
printf( "%d", print );
}
} while ( target = target / 10, target > 0 );
printf("\n");
return 0;
}
0178デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=28
添削などしてもらえませんか?
ソース中のprintfを消すと正常に動作しません。
原因をできたら教えてください。
0179デフォルトの名無しさん
NGNGなんでオレはこんなに長ったらしくなるんだろう。
0180103
NGNG逝ってきます。
0181178
NGNG0182178
NGNG確かに値渡のほうが楽です。
ポインタなんて使う必要ないね(この場合)。
でもなんであんなことが起こったんだろう。
やっぱりkを初期化してなかったから k*=10 で何らかの不具合が出たのかな。
0183デフォルトの名無しさん
NGNGint change_num(int num)
{
int j,k = 0;
while (num > 0) {
j = num % 10;
num /= 10;
k = k * 10 + j;
}
return k;
}
0184デフォルトの名無しさん
NGNGint k = 0;
for (; num; num /= 10)
k = k*10 + num%10;
return k;
}
0185takeru
NGNG#include <string.h>
#define TINTERVAL 4500000
int main()
{
int i,j, k;
char *a = "yaamada takeru";
char *b;
printf("%s\n", a);
for (k=0; k < 5; k++) {
b =a;
for (i=0; i <=strlen(a); i++){
if (i > 0) {
/* 必要なだけスペース出力*/
for (j = 0; j < i; j++)
printf(" ");
}
if (i < strlen(a)) {
printf("%c\r", *b);
}
else {
printf("\r");
}
fflush(stdout);
b++;
0186takeru@つづき
NGNGfor (j=0; j < TINTERVAL; j++) {
}
}
/*行を消去 (一行文のスペース出力) */
printf(" \r");
}
printf("\n");
return 0;
}
上のプログラムを改良して自分の名前を一文字ずつ左に表示して左端についたら
逆に右に一文字ずつ表示するプログラムをつくれ。
ぼくにはこれ以上無理です。どなたかお願いします。
0187デフォルトの名無しさん
NGNG0188デフォルトの名無しさん
NGNG0189takeru
NGNGのほうの819のやつもCCはできてもa.outするとうまくいかない・・・
あきらめたほうがいいっぽいです・・・・
いろいろおしえてくれたみなさま。おれがアホですいません・・。
あと宿題手伝いますYO!の818のひともありがとうございました。
ただ主旨が少し勘違いされてしまいました・・・。
あといっかい出さないと補習だな・・・・・・
0190デフォルトの名無しさん
NGNG正直なところ補習を受けたほうが長い目で見るとおまえのためだろ。
0191149
NGNG>>169のプログラムで提出しちゃった。
0のときはif文でやっといたけど。
協力してくれたみなさん、ありがとー。
0192デフォルトの名無しさん
NGNGBorland C++ Compailerのbcc32.exeの32のところが
意味する内容を答えなさい。
32ビットてのはわかるんですが、何の32ビットなのか
?であります。よろしこです。
0193デフォルトの名無しさん
NGNG0194デフォルトの名無しさん
NGNG32ビットのCPUに対応するコンパイラですよー
て意味で大丈夫でしょうか?、
0195デフォルトの名無しさん
NGNGなぜ標準的なのかはMMXが64転送できるから
0196デフォルトの名無しさん
NGNGとなると、
CPUに最高32ビットで処理させるコンパイラですよー
て意味ですよね?
0197デフォルトの名無しさん
NGNGそれでよろしい
オソラク...
0198デフォルトの名無しさん
NGNGどうもありがとうございました!
0199デフォルトの名無しさん
NGNGこっちの方が正しいかも。。。
0200デフォルトの名無しさん
NGNG0201デフォルトの名無しさん
NGNGどういう時に使うのですか?
0202デフォルトの名無しさん
NGNG無理して使わなくていいよ。
0203デフォルトの名無しさん
NGNG/* ################## ATTENTION!! ################## */
0204デフォルトの名無しさん
NGNG0205デフォルトの名無しさん
NGNG0206デフォルトの名無しさん
NGNG0207デフォルトの名無しさん
NGNG0208デフォルトの名無しさん
NGNG##fusianasan[名前]
で書き込みすると、IDの位置と名前の位置が反転するんだよ。
終了。
0209デフォルトの名無しさん
NGNGfusianasan##[名前]
の間違いじゃないのか?##fusianasan[名前] だとトリップが出てしまうぞ。
0210ゆうじ
NGNGようにしたいのですが、まったくわかりません。どなたかちか力を貸していただけませんで
しょうか。
「書き込みすると」よくわかりません先生。
0212デフォルトの名無しさん
NGNGPostQuitMessage(0);
0213デフォルトの名無しさん
NGNG0214zdd2a43.ahobaka00.ap.so-net.ne.jp
NGNG終了。
0215ゆうじ
NGNGプログラムが終了するようにしたいのですがその場合はどのように記述すればいいでしょうか?
0216デフォルトの名無しさん
NGNGMSDN で MessageBox を調べれ。
0217ゆうじ
NGNG0218デフォルトの名無しさん
NGNGあなたが何がわからないのか、とってもわかりません。
0219デフォルトの名無しさん
NGNGPostQuitMessage(0);
0220デフォルトの名無しさん
NGNG0221ゆうじ
NGNGって出てしまうんですがなぜでしょう?
0222デフォルトの名無しさん
NGNG・・・メッセージボックスで終了確認の前に、ちゃんと動くプログラムは書けてる?
0223デフォルトの名無しさん
NGNGってかけ。理由は知らなくてよい。
0224ゆうじ
NGNG0225デフォルトの名無しさん
NGNG原因はそれじゃない。221 のエラーメッセージを良く見ろ。
0226デフォルトの名無しさん
NGNG#include <windows.h>
int main()
{
for(; ; )
if(MessageBox(HWND_DESKTOP,"終了しますか?","確認",MB_YESNO)==IDYES) break;
return 0;
}
0227ゆうじ
NGNG0228デフォルトの名無しさん
NGNG猫の 「C言語編」 第1〜57章、次に 「Windows SDK編 第1部」 第1〜8章を見れ。
http://www.kumei.ne.jp/c_lang/
0229デフォルトの名無しさん
NGNGStack Overflow 0xC00000FDというエラーが出て困ってます。
原因を考えるに
hairetu[1000][1000]
というようなことをしているのですが、ここが原因と考えて良いのでしょうか?
質問2
そこで、
動的に二次元配列を確保すると良いと書いてあったので
int size = 1000;
int **hairetu,
hairetu = (int **)malloc(sizeof(int *)*size);
for(int i=0;i<size;i++)
hairetu[i] = (int *)malloc(sizeof(int)*size);
if(image_in=NULL){
fprintf(stderr,"メモリが足りません!\n");
exit(1);
}
というプログラムをネットで見つけたので書いたのですが動きません。
エラーは
error C2040: 'hairetu' : 'int' は 'int ** ' と間接操作のレベルが異なります。
というものです。
このプログラムのバグを教えてください。
また、これで結果としてhairetu[1000][1000]というものが確保できるのでしょうか?
是非、助けてやってください
0230デフォルトの名無しさん
NGNGこれでhairetu[i][j]でアクセスできるけど。
0231229
NGNG今全文を投稿しようと思っていたら、エラーの場所に気づきました。
int **hairetu,
じゃなくて
int **hairetu;
ですよね。お騒がせしました。
ところで、この配列の宣言方法は
結果的には
hairetu[1000][1000]
と全く同じ扱いができるってことなのですか??
0232デフォルトの名無しさん
NGNG全くでもない。関数にこの値を引き渡す時、
void func(int (*)[1000])では受けられない。
void func(int **)で受けること。
0233デフォルトの名無しさん
NGNGその課題の期待するところは一体なんなのだろう....
商品名の由来は商品を作った会社の営業にきくのが正しいです。
# ここ、流れるの速いな...
0234 ◆vhNvUwv9iI
NGNGVAR(x,6) の呼び出しは,(x6) に展開されます。
0235234
NGNGに在った説明。
0236デフォルトの名無しさん
NGNGそれは調べたんだけど、どうつかったらいいかわからん。
普通に x6 と書けない場面があるのかな。
0237デフォルトの名無しさん
NGNGウインドうすのメッセージク落下とかで使われてる。
0238デフォルトの名無しさん
NGNG0239デフォルトの名無しさん
NGNG0240デフォルトの名無しさん
NGNG#define DUMMY /##/
ってのがあったな。
0241デフォルトの名無しさん
NGNG0242デフォルトの名無しさん
NGNGどこが間違ってるかよくわかりません。よろしくお願いします。
1#include<stdio.h>
2 main(){
3 char a[100],b[1];
4 int i,count=0;
0243デフォルトの名無しさん
NGNG6 scanf("%s",a);
7 printf(" Input character >> ");
8 scanf("%s",b);
9 for(i=0; a[i]!='\0'; i++){
10 if(a[i]==b[0]){
11 count++;
12 }
13 printf("a_cnt = %d\n",i);
14 printf("a[]= Number of %s = %d\n",b,count);
15 }
16 exit(0);
17 }
0244デフォルトの名無しさん
NGNGbの長さ1しかないのにscanfなんかしていいのか?
0245デフォルトの名無しさん
NGNGmain(){
char a[100], b[1];
int i,count=0;
printf(" Input string >> ");
scanf("%s",a);
printf(" Input character >> ");
scanf("%s",b);
for(i=0; a[i]!='\0'; i++){
if(a[i]==b[0]){
count++;
printf("a_cnt = %d\n",i);
}
}
printf("a[]= Number of %s = %d\n", b, count);
return 0;
}
0246デフォルトの名無しさん
NGNG知りませんでした。getsでいてみます
0247デフォルトの名無しさん
NGNG0248デフォルトの名無しさん
NGNGscanf(" %c",&b);
0249242
NGNGInput string >> afafe
Input character >> a_cnt = 0
a[]= Number of (null) = 0
a_cnt = 1
a[]= Number of (null) = 0
a_cnt = 2
a[]= Number of (null) = 0
a_cnt = 3
a[]= Number of (null) = 0
a_cnt = 4
a[]= Number of (null) = 0
0250242
NGNG文字の文字列中の最後の位置だけしか返すことしか分かりませんでした。
すべての位置を返すアルゴリズムアドバイスいただけるとうれしいです。
int serchchr(char str[], char c) {
int i, a=0;
for(i=0; str[i]!='\0'; i++) {
if (str[i]==c) {
a=i;
}
}
return a;
}
0251デフォルトの名無しさん
NGNGprintf("%d,", s-str);
0253デフォルトの名無しさん
NGNG入力データは男女混合なので、平均は、男女別に算出。入力データは、
身長データの前に男ならM、女ならFがあるものとする。
M178
F160
:
:
:
誰かやって下さい。わからんです。
0254デフォルトの名無しさん
NGNG#include <stdlib.h>
void main() {
int msum=0, fsum=0, mcount=0, fcount=0;
char buf[100];
while (gets(buf)) {
if (buf[0] == 'M') { msum += atoi(buf+1); mcount++; }
else if (buf[0] == 'F') { fsum += atoi(buf+1); fcount++; }
}
printf("男平均:%f\n", mcount?(double)msum/mcount:0);
printf("女平均:%f\n", fcount?(double)fsum/fcount:0);
}
0255デフォルトの名無しさん
NGNGまあお前等如きに敬語使っちまったけど、一度出来ちまえば用なしよ。
さっさと氏ねばーか。検索なんてくだらねーこといってるんじゃねーよ。
チョン
キチガイ
ばーかばーかばーか
うひゃひゃひゃ
俺に利用されて悔しいか?
精々喚いてろチンカスども。
0256デフォルトの名無しさん
NGNGいちいち悔しがってたら2chねらなんかやってられん。
というか人生ガンバレヨ。その調子だと将来大変だろうが。
0257デフォルトの名無しさん
NGNG0258デフォルトの名無しさん
NGNGHTMLのタグが編集できたぐらいでC/C++スレ来んな。
0259デフォルトの名無しさん
NGNG0260242
NGNGint str[100],b;
scanf("%s",str) /*文字列strを記憶*/
scanf("%c",b) /*文字列bを記憶*/
printf("%s %c",str,b) /*str,bを印字*/
これだと、いろいろ調べた結果、str(文字列)、改行の順で記憶するらしくbが記憶されないらしくて困ってます。
gets()使ってみたんですが、コンパイルエラーでました。(gcc使ってます)
fgetsはファイルポインタなしでつくれとのことなのでこれなしでつくりたいです。
誰かほんと困ってますので助けてください!
0261デフォルトの名無しさん
NGNG0262デフォルトの名無しさん
NGNGscanf(" %c",&b)
0263デフォルトの名無しさん
NGNGになるので、黙ってそういうもんだとおもっといたほうがいい。
0264242
NGNGほんと感謝します!
>>263
ポインタなんかもやもや感がとれないのでポインタの本図書館で借りてきます。
文字列中に含まれる文字の数と
文字列中の文字の最後の場所を印字するとこまでできました。
あとは>>251さんのを解読して組み込むだけです。
みなさんレスどうもありがとうございました。
0265251
NGNGfor (s = str; s = strchr(s, c); )
printf("%d,", s-str+1);
printf("\n");
で動くかな。ベタに表示するだけだが。
0267デフォルトの名無しさん
NGNGまあお前等如きに敬語使っちまったけど、一度出来ちまえば用なしよ。
さっさと氏ねばーか。検索なんてくだらねーこといってるんじゃねーよ。
チョン
キチガイ
ばーかばーかばーか
うひゃひゃひゃ
俺に利用されて悔しいか?
精々喚いてろチンカスども。
0268デフォルトの名無しさん
NGNG0269デフォルトの名無しさん
NGNGいちいち悔しがってたら2chねらなんかやってられん。
というか人生ガンバレヨ。その調子だと将来大変だろうが。
0270デフォルトの名無しさん
NGNGHTMLのタグが編集できたぐらいでC/C++スレ来んな。
0271デフォルトの名無しさん
NGNG0272教えて厨
NGNG神の降臨をお待ちしております。
0273神
NGNG答えてやろうぞ。
0274デフォルトの名無しさん
NGNG0275教えて厨
NGNGてか毎週この時間に出現しますので今後ともおながいします。
0276デフォルトの名無しさん
NGNG0277デフォルトの名無しさん
NGNG0278[無知無能の神]
NGNG今すぐうpするのじゃああああ
0279デフォルトの名無しさん
NGNG0280デフォルトの名無しさん
NGNG俺たちの青春をかえせー
0281デフォルトの名無しさん
NGNG0282デフォルトの名無しさん
NGNGCプログラムを作らなきゃいけないんですが、だれか教えてください。
ちなみに、モンテカルロ法はわかるのですが、Cで書けません。
お願いします。
0283デフォルトの名無しさん
NGNGただ「使ってる」だけ。
出直して来い。
0284デフォルトの名無しさん
NGNG> モンテカルロ法はわかるのですが、Cで書けません。
ならば、モンテカルロ法の手順を日本語で書いてみろ。
0285282
NGNGV=4×(乱数の組のうち、x+y≦1を満たす組の数)/(全組式N)
これでいいですか?
0286デフォルトの名無しさん
NGNG誰が公式書けって言ったんだか・・・。
手順とは違うぞ。
0287デフォルトの名無しさん
NGNG{
int i, j = 0;
float x, y;
for (int i = 0; i < 100; i++)
{
x = rnd();
y = rnd();
if (x * x + y * y < 1)
j++;
}
printf("pi = %f\n", 4 * j / i);
}
0288デフォルトの名無しさん
NGNGx = 0〜1のRND
y = 0〜1のRND
if (x^2 + y^2 <= 1) count++;
next
print "pi = "; count / N * 4
0289デフォルトの名無しさん
NGNGケコーンを前提にハァハァ
0290デフォルトの名無しさん
NGNGやめとけ、あんたは不真面目あっちは真面目。釣り合わんよ。
0291デフォルトの名無しさん
NGNGそれじゃだめだ
x = rnd()&255;
y = rnd()&255;
if (x * x + y * y <= 255)
0292デフォルトの名無しさん
NGNG実数にする
4.0 * j / i
0293デフォルトの名無しさん
NGNG0294デフォルトの名無しさん
NGNG0295お願いします!
NGNGもっとも身長の低い鶴の身長を表示するプログラムを作成。なお、鶴の身長はdouble型で表すものとする。
配列をつかって。
0296デフォルトの名無しさん
NGNG読み込むデータってファイルから?キーボード(標準入力)から?
0297デフォルトの名無しさん
NGNGint i, j;
for (i=0; i<5; i++)
scanf("%f", table+i);
for (i=0; i<5; i++) {
double tmp = table[i];
for (j=i, k=j; j < 5; j++)
if (table[j] < table[k]) k = j;
table[i] = table[k];
table[k] = tmp;
}
printf("min = %f\n", table[0]);
printf("max = %f\n", table[4]);
0298デフォルトの名無しさん
NGNGdouble hairetsu[5] = {40,30,60,20};
int i ;
double max = 0;
double min = 999;
for( i=0;i < 5;i++){
if( max < hairetsu[i]){
max = hairetsu[i];
}
if(min > hairetsu[i]){
min = hairetsu[i];
}
}
printf("最高身長:%lf",max);
printf("最低身長:%lf",min);
return 0;
}
0299デフォルトの名無しさん
NGNGdouble min = hairetu[0];
0300デフォルトの名無しさん
NGNGどうすればいい??
fprintfではうまくいかなかったよ。
0301デフォルトの名無しさん
NGNG0302デフォルトの名無しさん
NGNGint a[ SIZE ] ={ 0,1,2,3,4,5,6,7,8,9 };
FILE *lpFile;
lpFile = fopen( filename , "wb");
if( lpFile == NULL ){
return -1;
}
fwrite( a , sizeof( int ) * SIZE , 1 , lpFile );
( ´、_ヽ`) ?
0303デフォルトの名無しさん
NGNGあのさ、そのprogではさ、四つだけなんだけど五回ループしているよね?
0304デフォルトの名無しさん
NGNGバイナリデータで保存する時の、
ファイルオープン時の、パラメータ確認した?
0305303
NGNG0306デフォルトの名無しさん
NGNG相互に影響しあうオブジェクトって作れないんですか?
クラスAの中からクラスBを呼び出すためには、クラスBを先に作らなくちゃいけないので
クラスBの中でクラスAは呼び出せない・・・と。
あたりまえ?もしくは勘違い?
0307デフォルトの名無しさん
NGNG何がしたいの?
相互に影響しあう、とか、クラスAの中からクラスBを呼び出す、
ってどういうこと?
0308デフォルトの名無しさん
NGNGクラスを呼び出すってどういうことだ?
言ってることは良くわからんが、君のやりたいことはたぶん出来る。
0309デフォルトの名無しさん
NGNGクラスを先行宣言(前方宣言)しておけばいいんじゃない?
0310306
NGNG0311デフォルトの名無しさん
NGNGclass B {
class A* a;
};
class A {
int i;
};
みたいな事はできるが、
class A;
class B {
class A a;
};
class A {
int i;
};
はエラーです。
0312306
NGNG0313デフォルトの名無しさん
NGNGclass A;
class B {
public:
class A* a;
B() { a = new A; }
void func() { std::cout << "B" << std::endl; }
};
class A {
public:
class B* b;
A() { b = new B; }
void func() { std::cout << "A" << std::endl; }
};
int main()
{
A a;
B b;
a.b->func();
b.a->func();
}
0315デフォルトの名無しさん
NGNG正直C++は慣れていないんで、細かい作法は大目にみてくれ。
class A;
class B {
public:
A* getA();
B() { a = NULL; }
void func() { std::cout << "B" << std::endl; }
private:
class A* a;
};
class A {
public:
B* getB();
A() { b = NULL; }
void func() { std::cout << "A" << std::endl; }
private:
class B* b;
};
A* B::getA() { if (a == NULL) a = new A; return a; }
B* A::getB() { if (b == NULL) b = new B; return b; }
int main()
{
A a;
B b;
a.getB()->func();
b.getA()->func();
return 0;
}
0316デフォルトの名無しさん
NGNGできる。しかしなぜか動かない?
class A;
class B {
public:
class A* a;
B();
void func() { std::cout << "B" << std::endl; }
};
class A {
public:
class B* b;
A();
void func() { std::cout << "A" << std::endl; }
};
A::A() { b = new B; }
B::B() { a = new A; }
int main()
{
A a;
B b;
a.b->func();
b.a->func();
}
0317デフォルトの名無しさん
NGNGこのようなプログラムを書くと、aの実体を確保する際にA()が呼ばれ、
その中でbをnewするのでB()が呼ばれ、その中でaをnew・・・・・と
いうように堂々巡りになってスタックオーバーフローしていました。
だからやっぱりこんなおかしなプログラムは書いてはだめぽらしい
です。どなたか感想きぼん。
0318デフォルトの名無しさん
NGNG> B::B() { a = new A; }
ここでやんないで、あとでセットすれば、簡単にサイクルは作れるけど…
単にサイクルを作りたいだけなの?
0319デフォルトの名無しさん
NGNGわからん。最初に質問した奴は寝ているらしい。
単に異なるクラス間で情報を共有したいだけなら、staticメンバを使う手もあるな。
class base {
public:
static int i;
};
class A : public base {
public:
void func() { std::cout << i << std::endl; }
};
class B : public base {
public:
void func() { std::cout << i << std::endl; }
};
int base::i;
int main()
{
A a;
B b;
a.i = 111;
b.func();
}
0320デフォルトの名無しさん
NGNG一応その階乗を求めるプログラムは作成できたのですがOVERFLOWの時終了することが
できません。整数の最大値がINT_MAXに入っている時、どこでどうやって判断して終了をすればよいのでしょうか?
プログラムです
#include<stdlib.h>
#include<limits.h>
main () {
int i,n,fact;
printf("n=");
scanf("%d",&n);
fact=1;
i=1;
while(i<=n){
fact=fact*i;
i=i+1;
}
}
printf("%d\n",fact);
}
0321デフォルトの名無しさん
NGNGCでは残念ながらOVERFLOWを検知することは出来ないんで、
> i=1;
> while(i<=n){
> fact=fact*i;
> i=i+1;
> }
for(i = 1, fact = 1; i <= n; i++) {
if(fact < fact * i) {
printf("OVERFLOW!!\n");
break;
}
fact *= i;
}
かな?
# for文を使ったのは俺の趣味
0322デフォルトの名無しさん
NGNGOverflowになるnが割り出せると思うが(w
0323デフォルトの名無しさん
NGNGwhile(i <= n)
{
fact = fact * i;
__asm jno next;
printf("OVERFLOW!!\n");
break;
next:
i = i + 1;
}
0324デフォルトの名無しさん
NGNG0325デフォルトの名無しさん
NGNG静的に割り出せたりする?
0326デフォルトの名無しさん
NGNGjavaで、あるアプリケーションを作る課題がでました。
そこで「ユーザインターフェースはメニュー方式の文字インターフェースとしてよい」ってあるのですが、これはCUIでいい、というようにとって大丈夫ですよね?
教師に質問メール送ると返るのが遅いのでここで聞きました。
まぁ俺がいいたいのは、文字で
○○○をする:A
△△△をする:B
のように出力され、Aを入力したら○○○ができる、そんな感じでいいのかな、と。
0327デフォルトの名無しさん
NGNG超越的にスレ違いだから心配しなくていい。
0328デフォルトの名無しさん
NGNG#include <stdio.h>
int main()
{
int count;
for(count = 10; count > 0; count--)
{
printf("%d\n", count);
sleep(1);
}
printf("Bomb!!\n");
return 0;
}
こう書くと、10,9,8,7,...ときちんと1秒待ってから表示してくれるのですが
数字を改行しないで表示させようと始めのprintfの所を
printf("%d ", count);
とすると、先に10秒待ってから、10 9 8...と一瞬にして表示され、変になります。
これはどうしてでしょうか?
ただ改行するのとしないのとでは大違いなのですが...。
どうすれば改行せずに1秒待ったら表示して、また1秒待ったら表示して
というようになるのでしょうか?
ちなみに当方、UNIX+gccです。
0329rubyist@カラアゲうまうま
NGNG0330デフォルトの名無しさん
NGNG0331デフォルトの名無しさん
NGNG0332デフォルトの名無しさん
NGNG何がしたいのか、よくわからない。
#include <iostream>
#include <stringstream>
int
main()
{
stringbuf strbuf;
ostream ostr(&strbuf);
ostr << "Hello The C++ World" << endl;
cout << strbuf.str() << endl;
return 0;
}
こういうのと同じことをしたいってことか??
0333デフォルトの名無しさん
NGNGfflush(stdout);
sleep(1);
0334デフォルトの名無しさん
NGNGprintf() が呼ばれるのと画面に出力されるのは、同じタイミングとは限らないんだよ。
これは環境によって違う。
ちみの環境だと、通常の文字はすぐに出力されず、バッファにたまっていく。
で、¥nが出力されたときに、そこまでのバッファの内容が一気に出力される。
0335デフォルトの名無しさん
NGNG0336デフォルトの名無しさん
NGNG■noun (acronym) UNIted STates of Dankan.H
(FOXROAD DICTIONARY)
0337’N& ◆NAel5Y06Iw
NGNGfor palindromes in Farmer John's tax forms. Palindromes are numbers
that read the same forwards and backwards, e.g., 1234321 (but not
1231). A palindrome can be as short as 1 digit in length
Each tax form is an N x N (2 <= N <= 20) table of random single digits
(0..9). The cows wish to find paths on the grid such that the sequence
of digits the path traces is a palindrome.
The cows would like to know how many palindromic paths of a given
length L (1 <= L <= 18) exist. Write a program to determine the number
of palindromic paths of length L for a given table of digits. If a
path and its inverse are distinct, count them as two paths. That is,
if traversing a path backwards is not the same as traversing it
forwards, count it as two paths. In the example table above, count
122221 as two paths because it can be traversed either starting on
the 1 in the first row and ending on the 1 in the third row, or
starting on the 1 in the third row and ending on the 1 in the first
row. On the other hand, count `949' only once, as it can only be
traversed starting at 9, going to 4, and returning to the single 9.
0338デフォルトの名無しさん
NGNGおいおい、the example table above がないと意味が分からんぞ
(といっても推測できるが)
コピペするなら完璧にしろや(゚Д゚)ゴルァ
0339デフォルトの名無しさん
NGNG>で、¥nが出力されたときに、そこまでのバッファの内容が一気に出力される。
ダウト。\nをバッファに書き込んだからと言ってフラッシュされるとは限らないと
思うが。
0340デフォルトの名無しさん
NGNG> *ちみの環境だと* 、通常の文字はすぐに出力されず、バッファにたまっていく。
>で、¥nが出力されたときに、そこまでのバッファの内容が一気に出力される。
日本語の読めない奴か?
0341デフォルトの名無しさん
NGNG0342デフォルトの名無しさん
NGNG0343デフォルトの名無しさん
NGNGなるほど、単純かつ分かりやすい解答だ。
君の答えには私も思わずかつらを脱いだよ。
0344デフォルトの名無しさん
NGNG0345デフォルトの名無しさん
NGNG漢字の意味からしても「描く」ではなく「書く」だから
こっちの方がより正解に近いのかな。
0346デフォルトの名無しさん
NGNG0347デフォルトの名無しさん
NGNG0348デフォルトの名無しさん
NGNG0349デフォルトの名無しさん
NGNG間違っちゃいないよなぁ。
大体本当の円なんてドットで四角く区切られたディスプレイ上じゃ(以下略
0350デフォルトの名無しさん
NGNG0351デフォルトの名無しさん
NGNG0352デフォルトの名無しさん
NGNG誰か作ってくださいです。
0353デフォルトの名無しさん
NGNGクラスとか使ってくださいです。
0354デフォルトの名無しさん
NGNGできれば大文字のCを使ってください。小文字だと君の成績みたいに見えるでしょ。
0355デフォルトの名無しさん
NGNG{
public:
schedule();
}
schedule::schedule()
{
printf("管理が終了しました");
}
0356デフォルトの名無しさん
NGNG三角関数使えってことだろうね
0357デフォルトの名無しさん
NGNG0358デフォルトの名無しさん
NGNGOS書けやボケ。
0359デフォルトの名無しさん
NGNGdir か ls コマンドをsystem関数で呼び出しファイルにリダイレクトして
そのファイルを読み込んで整形
0360デフォルトの名無しさん
NGNG求めるプログラムお願いします。
0361デフォルトの名無しさん
NGNGy2=ax2+b
b=(y1+y2-(x1+x2)a)/2
これも誤差を無視した最小自乗法の一種じゃないか!
と主張してくれ
0362デフォルトの名無しさん
NGNGいやだ。
0363デフォルトの名無しさん
NGNG次の常微分方程式をオイラー法によって解きなさい。
dy/dx=-y (y(0)=1,0<=x<=1,h=0.1) 真値:e^-x
0364デフォルトの名無しさん
NGNG可能なのでしょうか?
可能でしたら使い方はどうすればいいのでしょうか?
0365Warez
NGNG{
const float h = 0.1;
a[0] = 1;
for (i = 0; i < 9; i++)
{
a[i+1] = a[i] - h * a[i];
}
return a[(int)x*10];
}
0366デフォルトの名無しさん
NGNG可能。exeから呼び出すのと全く同じ。
0367おねがい
NGNG0368デフォルトの名無しさん
NGNG誰かコテハンがやってたな。Delふさぎこだったっけ?
素数の定義を知ってるならスピードはともかく動く物は書けると思う。
0369367
NGNG0370デフォルトの名無しさん
NGNGこっから自分の好きなものを取ってこい
素数 "列挙" アルゴリズムを極めるスレ
http://pc3.2ch.net/test/read.cgi/tech/1018657457/
0371デフォルトの名無しさん
NGNG死ね。
0372デフォルトの名無しさん
NGNG#include <limits.h>
static unsigned long next_prime(unsigned long n);
static int is_prime(unsigned long n){
static unsigned long primes[65535] = { 2 };
static int init = 0;
unsigned long *p;
if (!init)
for (init=1, p = primes; *p++ <= 65535;)
*p = next_prime(*(p-1));
for (p = primes; *p * *p <= n; p++)
if (n % *p == 0) return 0;
return 1;
}
static unsigned long next_prime(unsigned long n){
while (!is_prime(++n));
return n;
}
int main(void){
unsigned long i;
for (i = 2; i <= 50000; i = next_prime(i))
printf("%10ld\n", i);
return 0;
}
0373367
NGNG0374デフォルトの名無しさん
NGNGスレ違い出て行け (プ
0375デフォルトの名無しさん
NGNGこの無知に何か助言を頂きたいですm(_ _)m
0376デフォルトの名無しさん
NGNG0377弁士
NGNG0378デフォルトの名無しさん
NGNG整数を入力し、素数かどうか判定を行う
素数の場合、「素数です」と表示
素数でない場合は、その因数を全て表示する
*整数Aを整数Bで割ったとき、余りが0ならBはAの因数(1とA自身は除く)
A%B=0
*素数:因数を持たない整数
ヒント:判定変数
初期値は1、 因数があれば0に更新、
ループ終了後も1のままなら素数
0379デフォルトの名無しさん
NGNG0380デフォルトの名無しさん
NGNGこれを10進数へ変換して表示するプログラムを作成せよ。
無知な私を助けてください。
0381デフォルトの名無しさん
NGNG#include <stdio.h>
#include <stdlib.h>
int main()
{
char buf[5];
fgets(buf,sizeof buf,stdin);
printf("%ld\n",strtol(buf,NULL,2));
return 0;
}
0382デフォルトの名無しさん
NGNGマルチポストくらいで怒るな
0383デフォルトの名無しさん
NGNGよくそんな事が言えるな。
マルチポストが何で敬遠されてるかわかってるか?
0384デフォルトの名無しさん
NGNGはいはい。
怒ってもいいからいちいち注意するな。
0385デフォルトの名無しさん
NGNGいや、注意してもらったほうがありがたい。
0387デフォルトの名無しさん
NGNGマルチうぜーよ。
0388デフォルトの名無しさん
NGNG何で敬遠されるんですか?
ぐぐって見たのですが、うまく調べることが出来ませんでした。
教えていただけるとありがたいです。
よろしくお願いします。
0389デフォルトの名無しさん
NGNGおまいは無能クンか。
「マルチポスト 嫌われる」 で検索すれば、しこたま出てくるわ。
とりあえずめぼしいのはこんなところ。
http://www.ippo.ne.jp/netiquette/common/04question/multipost.htm
http://www.so-net.ne.jp/ClubHouse/room/manner2.html#multi
0390389
NGNGA掲示板とB掲示板にポストして、A掲示板で回答が得られたとしたら、
B掲示板で調べてくれてた人の労力はどーなるん? とか。
0391デフォルトの名無しさん
NGNGどうもありがとうございます。
とてもよくわかりました。
ところで、388はマルチポストだったわけですが、
お気づきになられましたか?
0392また貴様か!&rlo;!ろり懲はし少 &lro;
NGNG/ \ \
∧_∧/
(;´Д`) i i i
/ ヽ _ i i i--、
./| | | |  ̄ ̄ ̄ |:::::|.
/ \ヽ/| | ノ__ノ..
/ \\| |
/ /⌒\ し(メ .i i i . .
/ / > ) \ ノノノ
/ / / / .\_ ザックザック
し' (_つ /:::::/::... /ヽ
; "ノ・ ./∴: / )i iヽ-、_へ ,ヘ
'',, : :―― / / i i i iヽ . ̄ ゙― ノ /
n_ _/; i .ノ / /ノ-' ̄ ゙ ― 、__ノ
_ノ 二二二、_( _Д_ ;)-ヽ_ノ-'>>391
゙ー ''~ ∨ ̄∨
0393デフォルトの名無しさん
NGNG0394デフォルトの名無しさん
NGNGボートは人しか漕げない。人がいないと犬は鶏を、鶏は野菜を食べてしまう。全員無事に
向こう岸にいく手順を出力するプログラムを教えてください。お願いします。
0395デフォルトの名無しさん
NGNG0396Warez
NGNG0397デフォルトの名無しさん
NGNG0398デフォルトの名無しさん
NGNG0399デフォルトの名無しさん
NGNGint main(void) {
puts(
"1. 鷄をボートに載せて向こう岸に行く\n"
"2. 鷄を置いて戻ってくる\n"
"3. 野菜をボートに載せて、ボートの横で犬を泳がせて向こう岸に行く\n"
"終了"
);
return 0;
}
0400デフォルトの名無しさん
NGNG0401デフォルトの名無しさん
NGNGイイ
0402デフォルトの名無しさん
NGNGバックトラックを使って試行させるだけ。
0403デフォルトの名無しさん
NGNG鶏を飛ばしておく
0404デフォルトの名無しさん
NGNG0405デフォルトの名無しさん
NGNG真面目に考えて損した
0406デフォルトの名無しさん
NGNGじゃあ、>>399と同じようなので、ただし文字列は
"1. 鷄をボートに載せて向こう岸に行く\n"
"2. 鷄を置いて戻ってくる\n"
"3. 野菜をボートに載せて向こう岸に行く\n"
"4. 野菜を置き、鶏を連れて戻ってくる\n"
"5. 犬を載せて向こう岸に行く\n"
"6. 犬と野菜を置いて戻ってくる\n"
"7. 鶏を載せて向こう岸に行く\n"
"終了"
0407デフォルトの名無しさん
NGNGプログラムの前に答えがでちゃったのでもういいです。
0409デフォルトの名無しさん
NGNG0410デフォルトの名無しさん
NGNG0411デフォルトの名無しさん
NGNG0412394
NGNGそう気を落とさずにお願いします。似たような問題でこんなのもあります。
宣教師と人食い人種が3人づつ、川の右岸におり、2人乗りのボートがある。
どこにおいても、宣教師の数が人食い人種より少なくなると、宣教師は食べられて
しまう。安全に川の右岸から左岸に渡るにはどうしたらよいか。
0413デフォルトの名無しさん
NGNG0414デフォルトの名無しさん
NGNG3回繰り返す。
0415デフォルトの名無しさん
NGNGSS HH >SH>
SS HH <H< S
SS H >HH> S
SS H <H< SH
S H >SH> SH
S H <H< SSH
S >HH> SSH
S <H< SSHH
>SH> SSHH
船頭を、人食い人種にまかせる事で、つねに人食い人種が一人足りない状況を作る。
0416デフォルトの名無しさん
NGNG0417デフォルトの名無しさん
NGNGSS HH >SH>
SS HH <H< S ← ここで喰われる。
0418デフォルトの名無しさん
NGNG0419デフォルトの名無しさん
NGNGSSHH |→<SH>|
SSHH |< >← .|SH
SH .|→<SH>|SH
SH .|< >← .|SSHH
|→<SH>|SSHH
| .< >|SSSHHH
0420デフォルトの名無しさん
NGNGSSHH |→<SH>|
SSHH |<SH>←|
SSHH |→<SH>|
SSHH |<SH>←|
SSHH |→<SH>|
SSHH |<SH>←|
0421デフォルトの名無しさん
NGNG0422Warez
NGNG1瞬(たとえばboatがついてからまた発つまで)でも人食い人種の方が多い状況があったらだめなのか?
0423デフォルトの名無しさん
NGNGSSHH .{<SH>|
SH |<SH>| SH
|<SH>| SSHH
|< >| SSSHHH
0424デフォルトの名無しさん
NGNGそうっす。
できれば自分で解かず、プログラムに解かせてください。
0425デフォルトの名無しさん
NGNGSSSH <H< H
SSS >HH> H
SSS <H< HH
SH >SS> HH
SH <SH< SH
自分で解いたほうが楽しい問題ってプログラム面倒くさいなあ。
0426デフォルトの名無しさん
NGNG↑これの中の、cannibal.cを読んでみそ。
「宣教師と土人」のプログラムがあるから。
#どうでもいいけどATOK15では「土人」が一発で変換しない。差別用語だからか。
0427デフォルトの名無しさん
NGNGじゃあ人工知能作るしかないな
こっちでロジック考えてプログラム書いちゃったら
「プログラムが解いた」ということにはならない
0428デフォルトの名無しさん
NGNG0430テストIME2000
NGNG0431デフォルトの名無しさん
NGNG0432デフォルトの名無しさん
NGNG0433デフォルトの名無しさん
NGNG0434デフォルトの名無しさん
NGNGdouble inner=0;
int i;
for (i=0; i<4; i++)
inner=a[i]*b[i];
0435takeru
NGNGを以下のように定義した。
struct Point{
float X;
float y;
};
struct Triangle
struct Point a,b,c;
);
この定義を用いて、構造体Triangle 型の変数 tri を宣言し、三頂点が(1。0、1。0)、
(5。0、3。0)、(4。0、2。0)になるように初期化するプログラムをつくり、頂点座標を
次のように出力せよ。
出力例
三角形の頂点
(1。0、1。0)、
(5。0、3。0)、
(4。0、2。0)
どなたかお願いします。もうしにそうです。
0436takeru
NGNG三角形の面積は(a,b),(c,d),(e,f)ならば、
面積=1/2×{(e-a)(d-b)-(c-a)(f-b)} の絶対値で表される。
頂点は>>435の値を用いよ。絶対値はifを使っても、fabs()を使っても良い。
出力例
三角形の頂点
(1。000000、1。000000)、
(5。000000、3。000000)、
(4。000000、2。000000)、
面積 1。000
どなたかお願いします。
0437デフォルトの名無しさん
NGNGstruct Point{ float X, y; };
struct Triangle { struct Point a, b, c; };
void PutFloat(float f)
{
char buf[1024], *p;
sprintf(buf, "%.1f", f);
for(p = buf; *p; p++)
{
if(*p == '.')
fwrite("。", 1, strlen("。"), stdout);
else
fwrite(p, 1, sizeof(*p), stdout);
}
}
void PutPoint(struct Point *pt)
{
fwrite("(", 1, strlen("("), stdout);
PutFloat(pt->X);
fwrite("、", 1, strlen("、"), stdout);
PutFloat(pt->y);
fwrite(")", 1, strlen(")"), stdout);
}
0438デフォルトの名無しさん
NGNG{
fwrite("三角形の頂点\n\n", 1, strlen("三角形の頂点\n\n"), stdout);
PutPoint(&tri->a);
fwrite("、\n", 1, strlen("、\n"), stdout);
PutPoint(&tri->b);
fwrite("、\n", 1, strlen("、\n"), stdout);
PutPoint(&tri->c);
fwrite("\n", 1, strlen("\n"), stdout);
}
void PutTriangleArea(struct Triangle *tri)
{
float area, a = tri->a.X, b = tri->a.y, c = tri->b.X, d = tri->b.y, e = tri->c.X, f = tri->c.y;
fwrite("面積 ", 1, strlen("面積 "), stdout);
area = 1.0f / 2.0f * ((e - a) * (d - b) - (c - a) * (f - b));
PutFloat(area < 0.0f? -area: area);
fwrite("\n", 1, strlen("\n"), stdout);
}
int main()
{
struct Triangle tri = { { 1.0f, 1.0f }, { 5.0f, 3.0f }, { 4.0f, 2.0f } };
PutTriangle(&tri);
PutTriangleArea(&tri);
return 0;
}
0439デフォルトの名無しさん
NGNG#include <string.h>
0440デフォルトの名無しさん
NGNG#include <math.h>
struct Point{
float X;
float y;
};
struct Triangle{
struct Point a,b,c;
};
void p(struct Point p){
printf("(%f %f)\n", p.X, p.y);
}
void main(void) {
struct Triangle tri;
tri.a.X = 1.0; tri.a.y = 1.0;
tri.b.X = 5.0; tri.b.y = 3.0;
tri.c.X = 4.0; tri.c.y = 2.0;
printf("三角形の頂点\n");
p(tri.a); p(tri.b); p(tri.c);
printf("面積%f", fabs(0.5*((tri.c.X - tri.a.X)*(tri.b.y - tri.a.y) -
(tri.b.X - tri.a.X)*(tri.c.y - tri.a.y))));
}
0441デフォルトの名無しさん
NGNG仕様をよく読めよ。
0442デフォルトの名無しさん
NGNG(1) 濃度移動
(2) 濃度変換
(3) 輝度分解能(階調数)
(4) 空間解像度変換
するプログラムをキボンヌ
0443デフォルトの名無しさん
NGNG画像ソフトを買え。
0444デフォルトの名無しさん
NGNGgimpってオープンソフトだっけ?
だったらそのソースコードを読む。
0445デフォルトの名無しさん
NGNG0446デフォルトの名無しさん
NGNG0447デフォルトの名無しさん
NGNG0448デフォルトの名無しさん
NGNGそのrを円を描く関数に渡して円を描くプログラムを…おながいします。
ちなみに、C言語です。。
0449デフォルトの名無しさん
NGNG0450448
NGNGそのneta 100くらい見た.死ね.
0451448
NGNGそのneta 100回くらい見た.死ね.
0452デフォルトの名無しさん
NGNG環境ぐらい書くもんだ。逝ね。
0453デフォルトの名無しさん
NGNG#include <stdlib.h>
int main(void)
{
double r;
scanf("%lf", &r);
//circle(x, y, r); //適当な関数に置換せよ
return EXIT_SUCCESS;
}
0454448
NGNGSotecのWindows Meです.
0455デフォルトの名無しさん
NGNG#define BEGIN do{
#define END }while(1)
#define mymalloc(s) BEGIN m=malloc(s); END
#define BYNARY (((((((
#define x )*2+
void *m;int main(void){mymalloc(BYNARY 1 x 1 x 1 x 1 x 1 x 1 x 1 x 1 );return 0;}
0456デフォルトの名無しさん
NGNG騙るわ、間違えて二重投稿するわ、「すれ立てるまでも」で名前消し忘れるわ、、、もっとしっかりしようぜ?
0457デフォルトの名無しさん
NGNG0458デフォルトの名無しさん
NGNG本気ですか?
0459デフォルトの名無しさん
NGNG結局コンパイラを書かないあたりネタだな、、、
0460デフォルトの名無しさん
NGNGこのマルチポストやろう!
0461デフォルトの名無しさん
NGNG#define BEGIN }
#define END {
これってどうよ?
0462デフォルトの名無しさん
NGNG0463デフォルトの名無しさん
NGNGchar screen[SCREEN_SIZE][SCREEN_SIZE];
#define pset(x, y) (screen[x][y] = 1)
void circle(int x0, int y0, int r)
{
int x, y, dy;
y = r;
dy = r - 1;
for (x = 0; x <= y; x++) {
pset(x0 + x, y0 + y); pset(x0 - x, y0 + y);
pset(x0 + x, y0 - y); pset(x0 - x, y0 - y);
pset(x0 + y, y0 + x); pset(x0 - y, y0 + x);
pset(x0 + y, y0 - x); pset(x0 - y, y0 - x);
dy -= x + x + 1;
if (dy < 0) {
y--;
dy += y + y;
}
}
}
int main()
{
int radius, x, y;
scanf("%d", &radius);
circle(49, 49, radius);
for (x = 0; x < SCREEN_SIZE; x++) {
for (y = 0; y < SCREEN_SIZE; y++) putchar(screen[x][y] ? '*' : ' ');
putchar('\n');
}
return 0;
}
0464デフォルトの名無しさん
NGNGinline void pset2(int x, int y) { screen[y][x] = 1; }
inline void swap(int *a, int *b) { int tmp = *a; *a = *b; *b = tmp; }
inline int abs(int x) { return x >= 0 ? x : -x; }
inline int signum(int x) { if (x > 0) return 1; else if (x < 0) return -1; else return 0; }
void line(int x1, int y1, int x2, int y2)
{
int x, y, dx = abs(x1 - x2), dy = abs(y1 - y2), d, delta;
void (*pset)(int, int) = pset1;
if (dy > dx) {
swap(&x1, &y1);
swap(&x2, &y2);
swap(&dx, &dy);
pset = pset2;
}
if (x1 > x2) {
swap(&x1, &x2);
swap(&y1, &y2);
}
delta = signum(y2 - y1);
d = dx / 2;
for (x = x1, y = y1; x <= x2; x++) {
pset(x, y);
d += dy;
if (d >= dx) {
d -= dx;
y += delta;
}
}
}
0465デフォルトの名無しさん
NGNG動くけど、なぜ動くか良く分らない…鬱だ
0466デフォルトの名無しさん
NGNGx+x,y+yなどは微分値を使用。
xで走査しながら、yで中心点から一定の距離のところを取得(微分値・変化率)。
よくわからん・・・
0467デフォルトの名無しさん
NGNG引数に与えられた整数が素数であるかどうかを判定する関数 is_primeを作成し、
入力された正の整数を素数分解して表示するプログラムを作りなさい。
(2)
年(西暦)月日を入力し、その日が1月1日から何日目になるかを表示するプログラムを作りなさい。
ただし、その年がうるう年であるかどうかを判定する関数is_leapを作成して利用しなさい。
うるう年は西暦の年が4で割り切れる年。
ただし、その年が100で割り切れて、かつ、400で割り切れない場合はうるう年ではない。
一度に2つもすみませんがよろしくお願いします。
0468デフォルトの名無しさん
NGNGで、いつからここは丸投げスレになったんだ?
正直、あんた向いてない。今いる学校なり会社なりやめて違う道探した方が良いと思う。
0469デフォルトの名無しさん
NGNG>で、いつからここは丸投げスレになったんだ?
スレできた当初から。
で、〇投げだめな宿題Cスレ
http://pc3.2ch.net/test/read.cgi/tech/1038024989/l50
0470デフォルトの名無しさん
NGNG最初から丸投げスレ。
何も出来ないくせに文句だけ言いたがる厨は、
お外に遊びに言ってなさい。
0471C言語暦 3ヶ月
NGNG正月を「経過日数1」とした。
今現在は16行制限みたいなんで
4/1000もレスを消費するともったいないので
姉妹スレのソーススレ借りました。
宿題のソースはここにおいてね
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=36
0472C言語暦 3ヶ月
NGNG0473デフォルトの名無しさん
NGNG良ろしいんじゃないですか?分りやすくて。
ツェラーの公式を使えばもっと短くなるだろうけど、
読んだ人は分らなくなるかも。
あ、文字列定数中の()は、エスケープする必要ない弟子。
0474デフォルトの名無しさん
NGNG0475C言語暦 3ヶ月
NGNG)で関数が閉じてしまって 「" がありません」になるかと思ってたよ、Thax.
ツェラーの公式って曜日を算出するものじゃないの?
どうやるのか ソースプリーズ?
0476デフォルトの名無しさん
NGNG0477C言語暦 3ヶ月
NGNG0478デフォルトの名無しさん
NGNGttp://www.ne.jp/asahi/futohen/sankaku/h102.htm
0479デフォルトの名無しさん
NGNG#defineマクロ文を使用し係数を読みこんで、判定し、
実数解がある時はそれぞれのマクロ文をコールし解を求め〜
判別式もマクロ文で作成すること
朝から何度も適当にやっても解が合いません
判定式と解を出すのを#defineで作っただけでは駄目ですか
仮引数が無いのが駄目ですか
一回講義を休んで分かりませんその時はIF文を習ってました
教科書はTurboC初級プログラミングです
0480デフォルトの名無しさん
NGNG書いたソース載せろや。
0481デフォルトの名無しさん
NGNG禿同。
ほんと厨房は実装プログラム載せないよな。
0482デフォルトの名無しさん
NGNG作ってください。
0483ねた
NGNGなんだか画面狭いし…
0484デフォルトの名無しさん
NGNG0485479
NGNG#include<math.h>
#define KAI_0 ((-b+m)/(2.0*a)
#define KAI_1 (-b-m)/(2.0*a))
#define KAI_2 (-b/2.0*a)
/*QR(a,b,c) (-b+sqrt(b*b-a*c*4))/(a*2)*/
#define DD (b*b - 4.0*a*c)
int main(void){
double a,b,c,m,x1,x2;
printf("ax^2+bx+c=0\n");
printf("a=");
scanf("%lf",&a);
printf("b=");
scanf("%lf",&b);
printf("c=");
scanf("%lf",&c);
0486479
NGNGprintf("a=%.1lf b=%.1lf c=%.1lf\n",a,b,c);
m=sqrt(DD);
printf("x1=%lf\nx2=%lf",KAI_0,KAI_1);
}
else if (DD==0.0){
printf("a=%.1lf b=%.1lf c=%.1lf\n",a,b,c);
printf("x=%lf", KAI_2);
}
else {
printf("解なし");
}
}
試行錯誤の末全てがおかしいんだ
0487デフォルトの名無しさん
NGNG>else if (DD==0.0){
浮動小数点でこういうことしない。
0488デフォルトの名無しさん
NGNGelse if (!DD) {
で充分。
0489デフォルトの名無しさん
NGNGアフォですか?
0490デフォルトの名無しさん
NGNG0491デフォルトの名無しさん
NGNG0492デフォルトの名無しさん
NGNGでは、判定出来ないもの。
abs(dat-0.0)<epsilon
だっけ?
そんな風に判定しないと
0493デフォルトの名無しさん
NGNG-0.0 は必要無いし
0494デフォルトの名無しさん
NGNGどんなプログラムになるんでしょう?
よろしければ、考えてもらえますか?
0495デフォルトの名無しさん
NGNG0496デフォルトの名無しさん
NGNG0497デフォルトの名無しさん
NGNGブレゼンハムのアルゴリズムだね。
>>464
デジタル微分解析による直線描画。
0498デフォルトの名無しさん
NGNGfabs(dat) <DBL_EPSILON
が、プレゼンハムのアルゴリズムで、
デジタル微分解析による直線描画で
hostコマンドと似たようなのものが実装できると
プログラム板は勉強になるなぁ。
0499デフォルトの名無しさん
NGNGKitty-Guy が発生しました
0500デフォルトの名無しさん
NGNG突っ込みにくいネタはヤメテ!
0501デフォルトの名無しさん
NGNGプログラムを学んでいる人の大半はプログラマどころか情報系に就職する
わけでもないのだが
0502デフォルトの名無しさん
NGNG112020343440474059510510606136
という結果を得たとき、これを復号化する際
〜106
を10番目の語句+6ではなく、1番目の語句+0+6番目の語句+…と解釈すると
1122333344445551203316612334となります。
辞書の番号が一桁なのか二桁なのかどう区別したらいいのでしょうか?
0503デフォルトの名無しさん
NGNG0504デフォルトの名無しさん
NGNGまたそのネタかよ…
LZ78は符号化じゃないってば。
符号化の勉強しろよ。エリアス符号とか、SSS符号とか、エントロピー符号化でもイイや。
圧縮スレ行けば?
0505デフォルトの名無しさん
NGNG宿題なら答えてやるから、宿題の問題文をそのまま示せ。
0506デフォルトの名無しさん
NGNGエントロピー符号はLZ78に適用出来ないだろ
LZ78自体が表現出来てないんだから
0507デフォルトの名無しさん
NGNGそのとおりだが、エントロピー符号化の勉強をすれば、
可変長のビット列をバイト指向のストリームに書く方法くらいは
わかるんではないかと思った。
0508デフォルトの名無しさん
NGNGLZ78,77のようなparsing法は、エントロピー符号化で書けます
1)Eliasのγ、δ符号のように指数部とバイナリ部をエントロピー符号化する
2)記号単位で符号化する(parsing to symbolwise でしらべてみてちょ)
0509デフォルトの名無しさん
NGNGグラフの辺を全て1度ずつ通る道筋(オイラー路)を出力する
Cのプログラムを書きなさい。
入力の形式は、
・最初の行に頂点の数N
・残りのN行は、それぞれ0番〜N-1番の頂点を表す。
最初に辺の数が書いてあり、その後に辺で結ばれる相手の頂点の番号が
並んでいる。区切り記号は1個の空白とする。
・グラフは連結であると仮定してよい。
出力は、頂点の番号をたとえば
12-24-179-3-...
のようにハイフンで結んで標準出力に書き出すこと。
よろしくお願いします。
0510デフォルトの名無しさん
NGNGこれってNP完全じゃないの?
0511デフォルトの名無しさん
NGNG大学院にも行ってないので理解できません。
0512デフォルトの名無しさん
NGNGちがう。ハミルトン路ならNP完全だが、
オイラー路はO(N)で求まるはず。
0513デフォルトの名無しさん
NGNG0514デフォルトの名無しさん
NGNG0515デフォルトの名無しさん
NGNGケーリーだ。ケーリー。
0516デフォルトの名無しさん
NGNGできるかどうかはデータによる。
できるとしたら、解がどのくらいの計算量で求まるかという話。
0517467
NGNG関数が出てきてから理解できなくなってきたんでお願いします。
0518デフォルトの名無しさん
NGNG再帰関数
0519デフォルトの名無しさん
NGNG2以上の整数で割れたら割って、を続けて行けば?
0520デフォルトの名無しさん
NGNG#include <stdio.h>
int is_prime( int x ) { /* x が素数なら 0、素数でなければ一番小さい素因数を返す */
int n, i;
if ( x < 2 ) return 0;
if ( x % 2 == 0 ) return 2;
n = x/2;
for ( i = 3; i < n; i+=2 )
if ( x % i == 0 ) return i;
return 0;
}
int main( void ) {
int n, d;
fputs( "正の整数を入力してください: ", stdout );
scanf( "%d", &n );
if ( n < 1 ) {
printf( "%d は正の整数ではありません。\n", n );
exit( 1 );
} else if ( n == 1 ) {
puts( "1" );
exit( 0 );
}
while ( (d = is_prime(n)) != 0 ) {
printf( "%d, ", d );
n /= d;
}
printf( "%d\n", n );
return 0;
}
0521デフォルトの名無しさん
NGNGfor(i=2; i<n; i++)
if(n%i==0){
printf("%d ",i);
n/=i;
i--;
}
}
0522467
NGNGどうもありがとうございました〜。
0523デフォルトの名無しさん
NGNGbool is_prime(int n, std::vector<int> &factor=std::vector<int>()) {
factor.clear() ;
for(int i=2;i*i<=n;i++) while(!(n%i)) factor.push_back(i),n/=i ;
if(n!=1) factor.push_back(n) ;
return factor.size()==1 ;
}
0524デフォルトの名無しさん
NGNGFileName = "test.csv"; を開いて 配列 TextData に 1行ずつ格納する プログラムを書け。
■問題2
問1の配列を逆順にする プログラムを書け。
■問題3
test.csv は タブ(\t)区切りフォーマットである。
<table> タグを利用し、CSVファイルの中身を全て表示するプログラムを書け。
C++
0525デフォルトの名無しさん
NGNG#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
#include <vector>
#include <algorithm>
void readFromStream(std::istream &is,std::vector<std::string> &result)
{
std::string temp;
while(std::getline(is,temp)) {
result.push_back(temp);
}
}
void writeToStream(std::ostream &os,const std::vector<std::string> csv)
{
os << "<table>" << std::endl;
for(std::size_t i = 0;i < csv.size();i++) {
os << "\t<tr>";
std::string line = csv[i];
std::istringstream iss(line);
std::string temp;
while(std::getline(iss,temp,'\t')){
os << "<td>" << temp << "</td>";
}
os << "</tr>" << std::endl;
}
os << "</table>" << std::endl;
}
0526デフォルトの名無しさん
NGNGint main(int argc,char **argv)
{
std::string fileName = "test.csv";
std::ifstream ifs(fileName.c_str());
if(!ifs.is_open()) return 1;
std::vector<std::string> csv;
readFromStream(ifs,csv); //読み込んで
std::reverse(csv.begin(),csv.end()); //逆順にして
writeToStream(std::cout,csv); //とりあえず標準出力に書き出してみる
return 0;
}
0527デフォルトの名無しさん
NGNG1:
std::list< std::string > TextData[1];
std::ifstream ifs(FileName);
std::string tmp;
while( std::getline(ifs,tmp) )
TextData[0].push_back(tmp);
2:
TextData[0].reverse();
0528デフォルトの名無しさん
NGNGどう記述すればいいか教えてください。
0529528
NGNG絵が出るというのは、北斗ののびたみたいにアニメチックにしたいです
053046
NGNG0531デフォルトの名無しさん
NGNG0532デフォルトの名無しさん
NGNGワラタヨ
0533デフォルトの名無しさん
NGNG標準入力で入力された文字列を暗号化するプログラムを作成しなさい。
0534デフォルトの名無しさん
NGNG{
int ch;
while(ch = fgetch(in), ch != EOF )
fputch( ch , out );
}
int main() { NullEncrypt( stdin, stdout); return 0;}
0535デフォルトの名無しさん
NGNGint main(void) {
int c;
while ( (c = fgetc(stdin)) != EOF )
putchar( c-1 );
return 0;
}
0536デフォルトの名無しさん
NGNG#include <stdlib.h>
int main(int artc, char *argv[])
{ int i, c;
char *p;
if (argc < 2) {
fprintf(stderr, "usage: %s keyword...\n", argv[0]);
return EXIT_FAILURE;
}
i = 1;
p = argv[1];
while ((c = getchar()) != EOF) {
if (! *p) {
if (++i >= argc) {
i = 1;
}
p = argv[i];
}
putchar(c ^ *p++);
}
return 0;
}
0537デフォルトの名無しさん
NGNG#include <stdio.h>
int encrypt(int code, char *keywords[])
{
if (keywords[0] == NULL) {
int c = getchar();
if (c != EOF)
putchar(c ^ code);
return c;
} else {
char *p;
for (p = keywords[0]; *p; p++)
if (encrypt(code ^ *p, keywords + 1) == EOF)
return EOF;
return 0;
}
}
int main(int argc, char *argv[])
{
while (encrypt(0, argv + 1) != EOF)
;
return 0;
}
0538デフォルトの名無しさん
NGNG平均点と標準偏差と偏差値得点を出力するプログラムを作成せよ。
負の数値を入力したら実行は終了するものとせよ
0539デフォルトの名無しさん
NGNG単純すぎてつまらない。
0540tekeru
NGNG協力してくれた方々感謝します。
0541533
NGNGまた来るかもしれないんでよろしくお願いします。
0542デフォルトの名無しさん
NGNGだれ?
0543デフォルトの名無しさん
NGNG0544デフォルトの名無しさん
NGNG0545デフォルトの名無しさん
NGNG整数が入力されたときにはint型の変数に代入させたい。
とりあえず、
#include <stdio.h>
int main( void ){
char buf[100]=" ";
int idata;
double ddata;
char sdata[100];
while( buf[0] != '\n' ){
printf("?");
fgets(buf , sizeof( buf ) , stdin );
if( sscanf( buf , "%d" , &idata ) == 1 )
printf("int型 : %d\n",idata );
else if( sscanf( buf , "%lf" , &ddata ) == 1 )
printf("double型 : %f\n",ddata );
}
return 0;
}
みたいなコードを書いて見たのだけれども、実行してみると、
?10[Enter]
int型
?10.0[Enter]
int型
になっちゃう。(RedHad Linux,gcc)
下の10.0の入力の時に、double型ってなってくれればうれしいのだけれども
0546教えて厨
NGNG[0,0.1],[0.1,0.2],・・・・[0.9,1]区間にいくつ乱数があるかカウントせよ
次に乱数の初期値を変えて、同じ処理をせよ
-----------------------------------
誰か、やってくれませんか?
0547教えて厨
NGNG0548デフォルトの名無しさん
NGNGC 標準では、文字列が何を表すかを判定する方法は無い。
さしあたり strchr() で、小数点を意味するドットがあるかどうかを
探してみろ。
0549デフォルトの名無しさん
NGNGdoubleとintで取ってから、値を比べて同じならintを使ったら?
>>546
[0,0.1)とかじゃなくていいのか?
0550546
NGNGいいです。
0551デフォルトの名無しさん
NGNG"10.0" を int にするのか?
あと [0,0.1) って何?
>>546
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
const unsigned int rand_initial = 12345; // ここに乱数の初期値を設定
const unsigned int rand_number = 10000; // ここに乱数を出す数を設定
unsigned int i, cnt[10] = { 0 };
srand(rand_initial);
for(i = 0; i < rand_number; i++)
cnt[(unsigned int)(rand() * 10.0 / RAND_MAX)]++;
for(i = 0; i < 10; i++)
printf("%1.1f 〜 %1.1f の出現数: %u\n", i / 10.0, (i + 1) / 10.0, cnt[i]);
getchar();
return 0;
}
0552デフォルトの名無しさん
NGNG数学的には 10.0 = 10 だからおかしくないだろ?
[0, 0.1) ってのは、0以上0.1未満の範囲。
0553546
NGNG0554デフォルトの名無しさん
NGNG10.0 は有効桁数が設定してあると考えた場合に = 10 にはならないだろ。
「有効桁数が設定してある」 という話を持ち出すべきでないと言うなら、
「数学的には」 という話も持ち出すべきではない。
まあ、545 が明確なルールを設定していないので無意味な議論だが。
0556デフォルトの名無しさん
NGNG>「有効桁数が設定してある」 という話を持ち出すべきでないと言うなら、
>「数学的には」 という話も持ち出すべきではない。
なんでやねん…
10 = 10.0 = 10.00 = 10.000
は、有効数字が何桁だろうが、有効数字という概念を仮定しようがしまいが
常に成り立つ。
0557デフォルトの名無しさん
NGNG>は、有効数字が何桁だろうが、有効数字という概念を仮定しようがしまいが
>常に成り立つ。
もうちょっと有効数字について勉強してくれ
0558デフォルトの名無しさん
NGNGハァ?
負け惜しみはもういいよアフォ。
0559デフォルトの名無しさん
NGNGここの
if (i>3]&=bit0[cell[i].len&7];
の行、コンパイルエラーになるんだけど、誰かおしえてー
0560デフォルトの名無しさん
NGNGつーか、整数って実数の特殊例でしょ。
0561デフォルトの名無しさん
NGNGどちらも10.00という同じ物として扱われる。
そう考えると、10.0は10と同一視するしかない。
0562デフォルトの名無しさん
NGNGそれは考え方次第
>そう考えると、10.0は10と同一視するしかない。
いくらなんでも論理展開が無茶苦茶
0563デフォルトの名無しさん
NGNGあと、554 の最後の行をちゃんと読んでくれ。
それと、556 はおそらく有効数字と言う言葉の解釈が間違ってるから、
本当に調べ直した方がいいぞ。
0565デフォルトの名無しさん
NGNG「内部表現が違うから」というなら、内部表現を決める前にそんなことを
いうのはおかしい。
プログラマのクセかもしれんが、10は整数で、10.0は浮動小数点数で表さな
きゃならないと決めてかかってるんじゃないか?
概念的には(つまり外部仕様としては)整数は実数の一種なんだから、
厳密に10.0として入力されたら、整数の10だと思って問題なかろう。
0566デフォルトの名無しさん
NGNG>おそらく有効数字と言う言葉の解釈が間違ってるから、
>本当に調べ直した方がいいぞ。
うん。調べなおした。間違ってなかった。
0567デフォルトの名無しさん
NGNG0568デフォルトの名無しさん
NGNG「概念的に整数は実数の一種」というのは中学校の先生が
言っていたのかな?中学校ではよくそう教えるからな
0569デフォルトの名無しさん
NGNGヤレヤレ…
有効数字は「桁数」で表します。
「有効数字2桁」とかね。
0570デフォルトの名無しさん
NGNGエロカイダ 同時多発エロ おっぱいが高層ビルに激突
http://tv2.2ch.net/test/read.cgi/eva/1038360362/l50
0571デフォルトの名無しさん
NGNG数⊃複素数⊃実数⊃有理数⊃整数
と大学院(数学専攻)で教わりましたが何か?
0572デフォルトの名無しさん
NGNG0573546
NGNG0574デフォルトの名無しさん
NGNG整数は複素数なの?
0575デフォルトの名無しさん
NGNG0576デフォルトの名無しさん
NGNG[0,0.1],[0.1,0.2]…[0.9,1]区間に幾つ乱数があるかカウントせよ
次に乱数の初期値を変えて同じ処理をせよ。
どういうことが判るか?
わかりましぇーん
救済キヴォンヴ
0577568
NGNG定義しだいだ、と言ってるだけだ
0578デフォルトの名無しさん
NGNG0579デフォルトの名無しさん
NGNGみぐるしいからもうやめれ。
実数に含まれない整数って何だよ(ワラ
0580デフォルトの名無しさん
NGNGネタだとしたら、2 点。
0581デフォルトの名無しさん
NGNG0583デフォルトの名無しさん
NGNGおいおい。ムズカシイ用語使って煙に巻いたつもりかしらんが、
実数なんていう非加算無限のものに構成的手法が適用できる
わけねーだろ。
0584デフォルトの名無しさん
NGNG0585デフォルトの名無しさん
NGNGその辺は勉強してくれ
デデキントの切断とかコーシー列の同値類とか
0586デフォルトの名無しさん
NGNGうん。したよ。
自然演繹など、構成論的な手法によって構築できる
公理系は可算無限の対象しか含まないものだけ。
だいたい、constructiveってことはintuitionistic
なんだから、「実数全体の集合」なんてものを扱わない。
0587デフォルトの名無しさん
NGNG0588デフォルトの名無しさん
NGNGそんな事は 546 に訊いてくれ。
ちなみに C/C++ の定数の話だったらマズイ。
0589デフォルトの名無しさん
NGNG0590デフォルトの名無しさん
NGNG数学の話を急にCの仕様の話に戻すのはズルイ、と思います。
まあ、[0, 1.0)という中学校の表記法を知らなかった奴だから、
無理もないんだが。
0591589
NGNG0592デフォルトの名無しさん
NGNG整数は実数じゃないと思っていて、
[0, 0.1)という表記法を知らなくて、
constructiveという言葉を知らないくせに
構成的手法という言葉を使ってごまかそうと試みる
厨房のいるスレはここですか?
0593デフォルトの名無しさん
NGNGアフォですか?
0594デフォルトの名無しさん
NGNGやるんだったら実装レベルの話しをしてくれ。
入力された文字列から小数点検索して処理すれば
いいだけのはなしだろ。入力データをdouble と
文字列で持たせてやればたいていのことができる。
0595デフォルトの名無しさん
NGNGこれどういう意味なんだ?
ポインタ本にも書いてあったけど意味わからん
0596デフォルトの名無しさん
NGNG閉区間 [0,1] 0 <= n<= 1
半開区間 [0,1) 0 <= n< 1
開区間 (0,1) 0 < n < 1
0597デフォルトの名無しさん
NGNG>>552
0598デフォルトの名無しさん
NGNG0599デフォルトの名無しさん
NGNG過ぎた話を蒸し返すのはやめてくれ。
0600デフォルトの名無しさん
NGNG書いたヤツがよっぽど高圧的な物言いをしたのか・・・?
0601デフォルトの名無しさん
NGNG最近の中学が進んでいるのか
昔の中学が進んでいたのか
俺の中学だけが遅れていたのか
どれなんだろう
ちなみに、俺は高校でやった記憶があるのだが
0602デフォルトの名無しさん
NGNGfor( ;(ima %= 12)!= i; printf("%d時\t",++ima));
というのがあるんですが、「%=」の意味はなんですか?
0603デフォルトの名無しさん
NGNG余りを代入。
0604デフォルトの名無しさん
NGNGimaを12で割った余りをimaに代入っていう意味
0605デフォルトの名無しさん
NGNG改行入りのデータをファイルに書き込みたいんだけど
\nの前に\rが入るのを防げませんか?
0606デフォルトの名無しさん
NGNGありがとうございました
0608デフォルトの名無しさん
NGNGwb・・・
成る程、バイナリモードで開くんですね。
多謝!
勉強し直してきます。
0609デフォルトの名無しさん
NGNGデータ1、データにを取り込んでそれぞれの平均値、最大値、最小値を求めるプログラムを作成しろとのことです。
ヒントプログラムがあるので書いておきます。
#include <stdio.h>
main() {
double ×××必要な変数を定義します.
int i;
FILE *fp1;
fp1=fopen("data4.txt","r");
for(i=0;i<3000;i++){
ファイルから読み込んでデータを代入していく処理を追加します
}
最大値,最小値を求める処理を追加します.
平均を求める処理を追加します.
printf("データ1の最大値=%f\n",data1max);
printf("データ1の最小値=%f\n",data1min);
printf("データ1の平均=%f\n",data1ave);
printf("データ2の最大値=%f\n",data2max);
printf("データ2の最小値=%f\n",data2min);
printf("データ2の平均=%f\n",data2ave);
fclose(fp1);
}
それでは、よろしくお願いいたします。
0611デフォルトの名無しさん
NGNGデータ1とデータ2の仕様(data4.txtの中身)が分からないと
答えようがありません
0612609
NGNG13.160653,-44.018177
6.428124,-36.433974
12.031670,-26.586817
9.300368,-74.639087
11.545353,-55.847211
5.894994,-4.096887
12.608508,-66.110320
8.221066,-9.025639
0613609
NGNG0614デフォルトの名無しさん
NGNG左がデータ1で右がデータ2なの?
はっきり書けよ。
0615609
NGNG左がデータ1、右がデータ2です。
共に3000個あります。
0616JPS ◆M0LaMzf5rY
NGNG右と左をいっこずつ比べるの?
っていうかforいらなくねー?
0617609
NGNG0618デフォルトの名無しさん
NGNGくらい宣言しておくか?
0619デフォルトの名無しさん
NGNG多分、こうしたいのでは
double data1[3000], data2[3000], buf ; /* 宣言 */
fscanf(fp1,"%lf,%lf",data1+i,data2+i) ; /* forの中身 */
0620619
NGNG0621JPS ◆M0LaMzf5rY
NGNGint main(void)
{
double max_1 = 0,max_2 = 0,min_1 = 0,min_2 = 0,ave_1 = 0,ave_2 = 0;
char buf[256];
FILE *fp1,*fp2;
fp1=fopen("in_data.txt","r");
fp2=fopen("out_data.txt","w");
while(fgets(buf,sizeof(buf),fp1) != EOF)
{
↓あとはたのんだ!
0622619
NGNG0623JPS ◆M0LaMzf5rY
NGNG0624デフォルトの名無しさん
NGNG乱数を使って6面体や8面体などの色々なサイコロを表現しようと思います。
様々な多面体のサイコロを考えるので、汎用性を持たせるために
乱数の部分を以下のような関数にしました。
int ran(int n)
{
srand((unsigned)time(NULL));
return (rand() % n);
}
とりあえず、まず6面体のサイコロを10回振ったことを考えようと思い、
これをmain文の中で
for(i = 0; i < 10; i++)
printf("%d", ran(6));
と呼び出して、結果を表示させるようにすると
結果は6666…のようになります。
これでは1回サイコロを振った結果をただ単に
10回表示させたようにしか見えません。
ループ用変数iを関数ranの引数として追加してやって、
srandのところを、
srand((unsigned)time(NULL) + i);
とすればうまくいくことは分かるのですが、
この方法はあまり使いたくありません。
他に正しい結果を得るにはどうしたらよいでしょうか?
0625デフォルトの名無しさん
NGNGsrandはプログラムの最初に一回だけ呼んでやれば
ranの中には必要ないです
0626デフォルトの名無しさん
NGNGコンピュータの実行速度が速いので、同じtime()のsrand()が何度も実行
されてしまうことが原因。
srand()をran()の外に出して最初に一回だけ実行するようにしてご覧。
0627デフォルトの名無しさん
NGNGsrand()をmain()に漏ってけ。
0628デフォルトの名無しさん
NGNGケコーン(w
0629デフォルトの名無しさん
NGNG{
struct STATINFO MinMax[2];
double in_dbl[2];
char buf[256];
int cnt, errcnt, i, at1st = 1;
FILE *iFP = fopen(DATA_FILE, "r");
if(!iFP)
{
perror("データファイルが見つかりません");
fputs(DATA_FILE, stderr);
return -1;
}
printf("ファイル %s の処理を開始します。\n", DATA_FILE);
for(cnt = errcnt = 0; fgets(buf, sizeof(buf), iFP); cnt++)
{
if(sscanf(buf, "%lf,%lf", &in_dbl[0], &in_dbl[1]) != 2)
{
perror("データが不正です");
fprintf(stderr, "%d 行目: %s", cnt, buf);
errcnt++;
}
else if(at1st)
{
for(i = 0; i < 2; i++)
MinMax[i].max = MinMax[i].min = MinMax[i].sum = in_dbl[i];
at1st = 0;
}
0630624
NGNGすばやいご解答ありがとうございました。
srandは一回だけでよかったんですね。
mainのfor文の前に持ってきたらランダムな数字が表示されるようになりました。
0631デフォルトの名無しさん
NGNG{
if(MinMax[i].max < in_dbl[i])
MinMax[i].max = in_dbl[i];
else if(MinMax[i].min > in_dbl[i])
MinMax[i].min = in_dbl[i];
MinMax[i].sum += in_dbl[i];
}
}
if(ferror(iFP))
{
perror("データファイルの読み込み中にエラーが発生しました");
fputs(DATA_FILE, stderr);
}
fclose(iFP);
printf("ファイル %s の処理が完了しました。\n", DATA_FILE);
printf("%d 件のデータを読み込みました。\n", cnt);
errcnt && printf("%d 件のエラーデータがありました。\n", errcnt);
if(cnt - errcnt) for(i = 0; i < 2; i++)
{
printf("データ %d の最大値 = %lf\n", i, MinMax[i].max);
printf("データ %d の最小値 = %lf\n", i, MinMax[i].min);
printf("データ %d の平均 = %lf\n", i, MinMax[i].sum / (cnt - errcnt));
}
return 0;
}
0632デフォルトの名無しさん
NGNGstruct STATINFO { double min, max, sum; };
こんなん。
0633デフォルトの名無しさん
NGNGあと、構造体の変数名が微妙なのを直すの忘れた。
まー動くから勘弁して。
0634デフォルトの名無しさん
NGNG0635デフォルトの名無しさん
NGNG#include <stdio.h>
int main() {
double data1[3000], data2[3000] ;
double data1max, data1min, data1ave, data2max, data2min, data2ave ;
int i;
FILE *fp1;
fp1=fopen("data4.txt","r");
for ( i = 0 ; i < 3000 ; i++ ) {
fscanf ( fp, "%lf,%lf", data1 + i, data2 + i ) ;
}
for ( i = 0 ; i < 3000 ; i++ ) {
最大値,最小値を求める処理を追加します.
平均を求める前処理を追加します.
}
平均を求める処理を追加します.
printf ( "データ1の最大値=%f\n", data1max ) ;
printf ( "データ1の最小値=%f\n", data1min ) ;
printf ( "データ1の平均=%f\n", data1ave ) ;
printf ( "データ2の最大値=%f\n", data2max ) ;
printf ( "データ2の最小値=%f\n", data2min ) ;
printf ( "データ2の平均=%f\n", data2ave ) ;
fclose ( fp1 ) ;
}
0636デフォルトの名無しさん
NGNGアフォですか?
0637636
NGNG> for(i=0;i<3000;i++){
> ファイルから読み込んでデータを代入していく処理を追加します
> }
> 最大値,最小値を求める処理を追加します.
> 平均を求める処理を追加します.
分かれてたのね。
・・・出題者はアフォですか?
0638デフォルトの名無しさん
NGNGdata1max<*(data1+i)?data1max=*(data1+i):(data1min>*(data1+i)?data1min=*(data1+i):void);
data2max<*(data2+i)?data2max=*(data2+i):(data2min>*(data2+i)?data2min=*(data2+i):void);
}
atteru?
0639638
NGNG0640デフォルトの名無しさん
NGNGint main() {
double data1[3000], data2[3000] ;
double data1max, data1min, data1ave, data2max, data2min, data2ave ;
int i;
FILE *fp1;
fp1=fopen("data4.txt","r");
for ( i = 0 ; i < 3000 ; i++ ) {
fscanf ( fp1, "%lf,%lf", data1 + i, data2 + i ) ;
}
data1max = data1min = data1ave = data1[0];
data2max = data2min = data2ave = data2[1];
for ( i = 1 ; i < 3000 ; i++ ) {
if(data1max < data1[i]) data1max = data1[i]; else if(data1min > data1[i]) data1min = data1[i];
data1ave += data1[i];
if(data2max < data2[i]) data2max = data2[i]; else if(data2min > data2[i]) data2min = data2[i];
data2ave += data2[i];
}
data1ave /= 3000;
data2ave /= 3000;
printf ( "データ1の最大値=%f\n", data1max ) ;
printf ( "データ1の最小値=%f\n", data1min ) ;
printf ( "データ1の平均=%f\n", data1ave ) ;
printf ( "データ2の最大値=%f\n", data2max ) ;
printf ( "データ2の最小値=%f\n", data2min ) ;
printf ( "データ2の平均=%f\n", data2ave ) ;
fclose ( fp1 ) ;
}
0641デフォルトの名無しさん
NGNGdata2max = data2min = data2ave = data2[1]; /* data2[1]が素敵♪ */
0642640
NGNGエラーチェックまるで無いし、ファイル読み終わってもすぐに閉じないし。
ローカルに巨大配列もかなり痛い。
こういう教えられ方されてると、仕事でも平気でこういうコード書いたりしそう。
0645デフォルトの名無しさん
NGNG素敵♪って書いたんですけどね
でも、何でタイムスタンプ(01:47)が遅い漏れ(>>641)の方が先で
タイムスタンプ(01:46)が早い(>>642)の方が後なのだろうか?
0646デフォルトの名無しさん
NGNG0647デフォルトの名無しさん
NGNG0648デフォルトの名無しさん
NGNG0649デフォルトの名無しさん
NGNGプールの中でおしっこを漏らしたときの温度です。
0650デフォルトの名無しさん
NGNG0651デフォルトの名無しさん
NGNG#include <stdio.h>
#include <unistd.h>
int main()
{
if(fork())
printf("親です\n");
else
printf("子です\n");
return 0;
}
これを実行したら結果は
親です
子です
となるか、
子です
親です
となって、終了するだろうと予想しました。
しかし、実際は
子です親です
となって、メッセージが2つ表示された後に、
2回改行されてしまいます。これはなぜでしょうか?
環境はUNIX+gccです。
0652デフォルトの名無しさん
NGNG親も子も一緒に動いているのに
なんでお行儀良く、片方の出力が完了した後、もう片方が出力される
と思えるのかな?
0653651
NGNG一緒に動いているとは言っても、厳密には
CPUは同時に1つのプロセスの処理までしかできない、
そこでCPUスケジューラーによってどれか一つプロセスが
選ばれて、実行されている、そして短時間に何回も
そのプロセスを切り替えることにより、
まるで一緒に動いているかのように見せかけていると聞きます。
その辺はあまり分からないのですが、
もしプログラムの一文単位でプロセスが切り替えられるのなら、
と思って、初め、651のような予想をたてました。
でも652さんのおっしゃることから推測するとそれは違うみたいですね…。
文の途中でもどこか特殊な所ではプロセスが切り替えられているのでしょうか?
例えばそれが\nの直前では常に切り替わる、
とかだと納得がいくのですが…。
0654デフォルトの名無しさん
NGNG一画素に付き、rgb各8bitの画像データ(320*240)がある。
任意の閾値(0〜255)を入力すると、それ以上の輝度値を持つ画素のみの画像を
作成するプログラムを作成せよ。 */
#include<stdio.h>
#include<stdlib.h>
main()
{
unsigned char *img1,*img2;
FILE *fp1;
FILE *fp2;
int x=256,y=256,z=256,i=0,j=0,k=0,l,m,n=0,o=0;
int W[320][240][3],t=0,d=0,A[54];
0655デフォルトの名無しさん
NGNGimg1=malloc(m);
img2=malloc(m);
while(x>=256){
printf("青の閾値(0〜255)=\n");
scanf("%d",&x);
}
while(y>=256){
printf("緑の閾値(0〜255)=\n");
scanf("%d",&y);
}
while(z>=256){
printf("赤の閾値(0〜255)=\n");
scanf("%d",&z);
}
fp1=fopen("Red1.bmp","rb");
fp2=fopen("AAA.bmp","wb");
0656デフォルトの名無しさん
NGNGfor(i=0;i<=319;i++){
for(j=0;j<=239;j++){
for(k=0;k<=2;k++){
W[i][j][k]=(int)*(img1+t+k+54);
}
t=t+3;
k=0;
}
t=t+240;
j=0;
}
for(o=0;o<=53;o++){
A[o]=(int)*(img1+o);
}
for(i=0;i<=319;i++){
for(j=0;j<=239;j++){
for(k=0;k<=2;k++){
if(k==0){
if(W[i][j][k]<x){
W[i][j][k]=0;
}
}
0657デフォルトの名無しさん
NGNGif(W[i][j][k]<y){
W[i][j][k]=0;
}
}
else{
if(W[i][j][k]<z){
W[i][j][k]=0;
}
}
}
k=0;
}
j=0;
}
0658デフォルトの名無しさん
NGNGfor(j=0;j<=239;j++){
for(k=0;k<=2;k++){
*(img2+t+k+54)=(unsigned char)W[i][j][k];
}
t=t+3;
k=0;
}
t=t+240;
j=0;
}
for(o=0;o<=53;o++){
*(img2+o)=(unsigned char)A[o];
}
fwrite(img2,m,1,fp2);
free(img1);
free(img2);
fclose(fp1);
fclose(fp2);
}
て宿題なんだけど、これコンパイルしても上手く動かない…。
どこが悪いか教えていただけないでしょうか
0659デフォルトの名無しさん
NGNG君の予想はノンプリエンプティブなマルチタスクでのみ当てはまる。
そういうシステムではプロセスは勝手に切り替わらないで、特定の場所でのみ切り替わる。
プリエンプティブなマルチタスクOSではほとんどいつでもどこでも切り替わる。
切り替わるのはCPUの命令単位でプログラムの1文字じゃない。
切り替えるタイミングは要するに時間で決まるので、切り替わる場所は不定。
逆に切り替えられない場所が特殊な場所は有る。
詳しく知りたければアセンブラ勉強しなさい。
0660デフォルトの名無しさん
NGNGアセンブラか?
0661デフォルトの名無しさん
NGNG加藤茶以外はなかなかつけませんが・・・
0662名無しの学生サソ
NGNGという問題がわかりません。どなたかヒントを…
0663デフォルトの名無しさん
NGNG#define swap(type,a,b) {type t;t=a;a=b;b=t;}
0664デフォルトの名無しさん
NGNG#define swap(type,a,b) do{type t, t=a, a=b, b=t;}while(0)
0665662
NGNGなるほど!関数マクロで{}が使えるんですね!気が付かなかった…
どうもありがとうございました。
0666662
NGNG×気が付かなかった
○知らなかった
0667デフォルトの名無しさん
NGNG0668デフォルトの名無しさん
NGNG俺もオモタ。
0669デフォルトの名無しさん
NGNG0670デフォルトの名無しさん
NGNG0671デフォルトの名無しさん
NGNG岩ねーよ(w
0672デフォルトの名無しさん
NGNG0673デフォルトの名無しさん
NGNGキティはだまってろ
0674デフォルトの名無しさん
NGNGこいつらアフォだ。
0675デフォルトの名無しさん
NGNGいかにもDQNっぽいな。
0676デフォルトの名無しさん
NGNG関数が同時にマクロとしても定義してあっても良いことになっている。
たとえば、getcharやgetcはたいてい関数定義とマクロ定義の両方が
ある。
それとごっちゃにしてるんでは?
引数のあるマクロは「引数つきマクロ」だよ。
0677デフォルトの名無しさん
NGNG「関数マクロ C言語」 318件
「関数型マクロ C言語」 38件
「引数つきマクロ C言語」 23件
(ププッ
0678654
NGNG0679デフォルトの名無しさん
NGNG読む気がしない。
やってることを言葉で説明してみ
0680デフォルトの名無しさん
NGNGだぁーーーーっはっはっはっは!!!
D Q N 決 定 だ な (プー
0681デフォルトの名無しさん
NGNGまず輝度から調べなおせ。
“任意の閾値(0〜255)を入力するとそれ以上の輝度値”と
言われてるのに、三色の閾値を要求しているのは明らかな勉強不足による無知
(ヒント Y=0.3*R+0.59*G+0.11*B)
0682デフォルトの名無しさん
NGNGint W[320][240][3]
は、やめてくれよ。
0683654
NGNG0684デフォルトの名無しさん
NGNGコンパイラ(環境)によっては通るんだろうけどなぁ。。。
いきなりスタックを200KB強とるプログラムってのはいかがなもんかと。
0685超初心者
NGNGコピー元コピー先をボタンをクリックしファイルダイアログボックスを表示させ
、スタティックテキストにファイルまでのパスを表示するというものです。そし
て、もう一つのボタンがありクリックすると、ファイルのコピーを開始するとい
うものです。
但し、以下の場合はメッセージボックスを
表示する。
1.コピー元ファイル名が指定されていない。
2.指定のコピー元ファイルが存在しない。
3.コピー先ファイル名が指定されていない。
4.コピー先ファイルが既に存在する。
4の場合は、問い合わせメッセージの表示とし
ユーザが上書きOKを選択した場合のみ、
コピー実行されるようにする。
という感じです。よろしくお願いします。
0686デフォルトの名無しさん
NGNG0687超初心者
NGNG0688デフォルトの名無しさん
NGNG0689デフォルトの名無しさん
NGNG0690デフォルトの名無しさん
NGNGこれってほとんど「関数、マクロ」に引っかかってるけど…
0691デフォルトの名無しさん
NGNG0692デフォルトの名無しさん
NGNG0693デフォルトの名無しさん
NGNGfunction-like macro
日本語では「関数型マクロ」あるいは「関数形式マクロ」だろうな。
「関数マクロ」は俺も聞いたことない。つーか、なんか変。
0694デフォルトの名無しさん
NGNGひょっとして俺だけか?
0695デフォルトの名無しさん
NGNG#define N 100
みたいなのは?
0696デフォルトの名無しさん
NGNGは?
0697デフォルトの名無しさん
NGNG#define swap(x, y) (...)
が「マクロ」なら、
#define N 100
はなんと呼ぶの?
0698デフォルトの名無しさん
NGNG0699デフォルトの名無しさん
NGNG0700デフォルトの名無しさん
NGNG> それ以上の輝度値を持つ画素のみの画像を作成
その輝度に満たないピクセルを、最低輝度の灰色でべったり埋めればいいのか?
全部を白ピクセルで埋めても仕様的に問題なさそうだ。
0701デフォルトの名無しさん
NGNG0702デフォルトの名無しさん
NGNG0703デフォルトの名無しさん
NGNG"B2A2A23A2C32A3B5B2222A52B43532A2352C23A52A2246D2A3533B35K2A4D22A3224A45D2C25B"
"2A32A5D2C25D4A26C4A1",*p=k;int i,c,b=1;while(*p){c=0;for(i=0;i<8;i++){if(*p==
'0'){if(!*++p)break;b=!b;}c=(c<<1)+b;if((*p)--=='A')*p='0';if(*p >= 'A')b=!b;}
if(c)putchar(c);}getchar();return 0;}
このプログラムが「オマエモナー」を出力するようにkの初期値を書き換えてください。
0704デフォルトの名無しさん
NGNG5332A2:ロ
52B435:イ
B2222:の
。。。
「〜木馬」ですか?
0705デフォルトの名無しさん
NGNG0706デフォルトの名無しさん
NGNG0707デフォルトの名無しさん
NGNG0708デフォルトの名無しさん
NGNG0709デフォルトの名無しさん
NGNG0710デフォルトの名無しさん
NGNG本気で信じてた時期があった・・・
0711デフォルトの名無しさん
NGNG対象ファイル、検索文字列はプログラム内に書き、検索文字列の存在確認はあるかないかだけを
表示するものでお願いします。
0712711
NGNG0713デフォルトの名無しさん
NGNGトリップはc++で。
0714714
NGNGってエラーが出るんですが何を直せばいいんでしょうか。
C言語のファイルの入出力をやっています。構造体?
というかポインターに問題があるってこと?
0715デフォルトの名無しさん
NGNG0716?
NGNGあなたはタダでしたか?
0717デフォルトの名無しさん
NGNGその場合は Were you free?
0718デフォルトの名無しさん
NGNG間違ったポインタを渡してる。
0719714
NGNG{}とかがあってないか根本的に間違ってるか。
0720デフォルトの名無しさん
NGNGたぶん後者。
つーかマルチやめい。
0721714
NGNG0722超初心者
NGNGコピー元コピー先をボタンをクリックしファイルダイアログボックスを表示させ
、スタティックテキストにファイルまでのパスを表示するというものです。そし
て、もう一つのボタンがありクリックすると、ファイルのコピーを開始するとい
うものです。
但し、以下の場合はメッセージボックスを
表示する。
1.コピー元ファイル名が指定されていない。
2.指定のコピー元ファイルが存在しない。
3.コピー先ファイル名が指定されていない。
4.コピー先ファイルが既に存在する。
4の場合は、問い合わせメッセージの表示とし
ユーザが上書きOKを選択した場合のみ、
コピー実行されるようにする。
です。よろしくお願いします。
0723デフォルトの名無しさん
NGNG0724デフォルトの名無しさん
NGNGCやC++以前に日本語の練習がだいぶ必要。
0725デフォルトの名無しさん
NGNG( 0 1 )
( 1 1 )
のn乗の計算が出来るプログラムを作りたいのですが・・・
まるっきりわかりません よろしくお願いします・・・
0726デフォルトの名無しさん
NGNG行列の乗算するプログラムは作れるのか?
0727デフォルトの名無しさん
NGNG進級できるといいな
0728デフォルトの名無しさん
NGNGn乗はわかりません・・・
0729デフォルトの名無しさん
NGNG|0 1|n |fib(n) fib(n+1)|
|1 1| == |fib(n) fib(n+1)|
ここに、fib(n)はフィボナッチ数列のn番目の数値を表す
0730デフォルトの名無しさん
NGNG|0 1|n |fib(n-1) fib(n) |
|1 1| == |fib(n) fib(n+1)|
と違う?
0731デフォルトの名無しさん
NGNGうちの環境では、gCnCXg[Bという文字しか表示されなかったぞ。
コンパイルに何かオプションでもつけなきゃならんの?
gcc使ってるんだけど。
0732デフォルトの名無しさん
NGNGそうだわゴメソ。
0733デフォルトの名無しさん
NGNGス レ チ ガ イ
0734デフォルトの名無しさん
NGNGShit-JIS だから。nkfしる!!
0735デフォルトの名無しさん
NGNGchar k[] の初期値によっては EUC の出力もできる。
0737デフォルトの名無しさん
NGNGただし、各関数は並記する書式にしたがって呼び出されるものとし、
それに合わせて関数の戻り値および引数を設定することとする。
ただし、配列のデータを引数として与える際には、
関数側ではポインタによる表記と配列による表記のいずれか一方で記述すれば良いこととする。
半径rの円の円周の長さlおよび面積sを算出する関数 circle() を定義し、
半径10.0[cm]の円についてそれぞれの値を求める。ただし、π=3.1415926536とする。
書式:void circle(double r, double *1, double *s)
他にも同じような問題がいくつかあるので
参考にするためにできるだけ簡単な構文で作ってもらえると助かります。
どなたか、お願いします。
0738デフォルトの名無しさん
NGNGどの言語かもわかりません。
0739デフォルトの名無しさん
NGNG円周とか円の面積って中学生あたりだっけ?
どこがわかんねーのよ
0741デフォルトの名無しさん
NGNGポインタを習い、その演習としての問題なんですが
ポインタ自体の使い方、書式などがさっぱりです。
0742デフォルトの名無しさん
NGNGまず教科書を読み直せ。
void circle(double r, double *l, double *s)
{
*l = 円周の計算;
*s = 面積の計算;
}
0743デフォルトの名無しさん
NGNG・・・何だって?
0744デフォルトの名無しさん
NGNGそれは突っ込むのもアホくさいので無視した。
0745デフォルトの名無しさん
NGNG#define PI 3.1415926536
void circle(double, double *, double *);
int main(){
double r=10.0,l,s;
circle(r,&l,&s);
printf("l=%lf s=%lf\n",l,s);
return 0;
}
void circle(double r, double *l, double *s){
*s = r*r*PI;
*l = 2*r*PI;
}
0746デフォルトの名無しさん
NGNG複数の値が返ってきたように考えることができるってやつだっけか?
0747デフォルトの名無しさん
NGNGdouble *1
です。
0748デフォルトの名無しさん
NGNGどこがまずいんでしょうか?
とりあえず、流行のdouble *1は直しました。
#include <stdio.h>
void circle(double r, double *l, double *s)
{
*l = 2 * r * 3.1415926536;
*s = r * r * 3.1415926536;
}
int main()
{
double r, l, s;
printf("r: ");
scanf("%f", &r);
circle(r, &l, &s);
printf("l = %f, s = %f\n", l, s);
return 0;
}
0749デフォルトの名無しさん
NGNG0750デフォルトの名無しさん
NGNGマジックナンバーをばらまくな。
0751デフォルトの名無しさん
NGNG0752デフォルトの名無しさん
NGNGいや、それよか東芝でないというなら社名10択ぐらいで挙げてほしい。
0753デフォルトの名無しさん
NGNG家電メーカー?
SONY 松下 日立 三洋 …だめぽ
0754デフォルトの名無しさん
NGNG0755デフォルトの名無しさん
NGNG0756デフォルトの名無しさん
NGNG有難うございます。
0757デフォルトの名無しさん
NGNGこれとおなじ名前のスレで2chで初めて1000とったよ。
0758デフォルトの名無しさん
NGNGオメ
0759デフォルトの名無しさん
NGNG(ノ゚ο゚)ノ おーパチパチ
0760デフォルトの名無しさん
NGNG0761デフォルトの名無しさん
NGNG市ね
0762デフォルトの名無しさん
NGNGありがとう!
でも2Getは一度もないんだな。
0763デフォルトの名無しさん
NGNGint sakujo(struct temp dt[],int su)
void ichiran(struct temp dt[],int su)
この3つの関数のプロトコル宣言の書き方を教えてください。
で通じるのでしょうか?
お願いします(´Д⊂)
0764デフォルトの名無しさん
NGNGプロトコル宣言じゃなくてプロトタイプ宣言だろ。
最後に ; (セミコロン)を付けるだけだぞ。
0765デフォルトの名無しさん
NGNGありがとございます。
C言語わけわかんなくなってきたyp
0766デフォルトの名無しさん
NGNG#include <string.h>
struct temp{
char na[20];
int yu1;
int yu2;
char addr[40];
}data[50];
int disp(void);
int tuika(struct temp dt[],int su);
int sakujo(struct temp dt[],int su);
void ichiran(struct temp dt[],int su);
void main(void)
{
int cnt;
int no;
do{
no = disp();
switch (no){
case 1: cnt = tuika(data,cnt);
break;
case 2: cnt = sakujo(data,cnt);
break;
case 3: ichiran(data,cnt);
break;
}
}while(no != 4);
}
0767デフォルトの名無しさん
NGNG{
int bango,i;
char menu[4][18] = {"1:データ追加","2:データ削除","3:データ一覧表示","4:終了"};
printf("<<処理メニュー>>\n");
for(i = 0;i < 4;i++)
printf("%s\n",menu[i]);
while(1){
printf("\n処理番号ーー>");
scanf("%d",&bango);
if(bango >= 1 && bango <= 4)break;
printf("入力エラー!!再入力して下さい。\n");
}
return bango;
}
int tuika(struct temp dt[],int su)
{
char ans;
do{
printf("氏名ーー>");
scanf("%s",dt[su].na);
printf("郵便番号ーー>");
scanf("%d-%d",&dt[su].yu1,&dt[su].yu2);
printf("住所ーー>");
scanf("%s",dt[su].addr);
su++;
printf("データの追加を続けますか?(y/n)");
rewind(stdin);
scanf("%C",&ans);
}while(ans == 'y' || ans =='Y');
return su;
}
0768デフォルトの名無しさん
NGNG{
int i,j;
char name[20];
char ans;
do{
printf("削除するデータの氏名ーー>");
scanf("%s",name);
for(i = 0;i < su;i++){
if(strcmp(name,dt[i].na) = 0)break;
}
if(i < su){
for(j = i + 1;j < su;j++)
dt[j-1] = dt[j];
su--;
}
else
printf("その氏名のデータはありません。\n");
printf("データの削除を続けますか?(y/n)");
rewind(stdin);
scanf("%c",&ans);
}while(ans == 'y' || ans =='Y');
return su;
}
0769デフォルトの名無しさん
NGNG{
int i;
printf("<<データ一覧>>\n\n");
printf("番号 氏名 郵便番号 住 所\n");
for(i = 0;i <= su;i++)
printf(" %2d %-18s %03-%04d %-28s\n",i + 1,temp[i].na,temp[i].yu1,temp[i].yu2,temp[i].addr);
rewind(stdin);
getchar();
}おてあげ ∩(・∀・)∩
0770デフォルトの名無しさん
NGNGint cnt; → int cnt = 0;
(tuika関数内)
scanf("%C",&ans); → scanf("%c",&ans);
(sakujo関数内)
if(strcmp(name,dt[i].na) = 0)break; → if(strcmp(name,dt[i].na) == 0)break;
(ichiran関数内)
for(i = 0;i <= su;i++) → for(i = 0;i < su;i++)
printf(" %2d %-18s %03-%04d %-28s\n",i + 1,temp[i].na,temp[i].yu1,temp[i].yu2,temp[i].addr);
→
printf(" %2d %-18s %03d-%04d %-28s\n",i + 1,dt[i].na,dt[i].yu1,dt[i].yu2,dt[i].addr);
0771デフォルトの名無しさん
NGNG#include <list>
#include <string>
#include <algorithm>
using namespace std;
class personal_data {
public:
void input() {
char dummy;
cout << "氏名ーー>"; cin >> name;
cout << "郵便番号ーー>"; cin >> zip_main >> dummy >> zip_branch;
cout << "住所ーー>"; cin >> address;
}
void output(size_t record_no) {
cout.width(4); cout<< record_no << " ";
cout.width(18); cout.setf(ios::left, ios::adjustfield); cout << name << " ";
cout.width(3); cout.fill('0'); cout << zip_main << '-';
cout.width(3); cout.fill('0'); cout << zip_branch << " ";
cout.width(18); cout.fill(' '); cout.setf(ios::left, ios::adjustfield); cout << address << endl;
cout.setf(ios::internal);
}
inline bool operator==(const string &s) {
return name == s;
}
private:
string name;
int zip_main, zip_branch;
string address;
};
0772デフォルトの名無しさん
NGNG{
public:
void run() {
while(execute_menu());
}
private:
list<personal_data> DataList;
bool execute_menu() {
int menu_no;
cout << "<<処理メニュー>>" << endl;
cout << "1:データ追加、2:データ削除、3:データ一覧表示、4:終了" << endl;
cout << "処理番号ーー>"; cin >> menu_no;
switch(menu_no)
{
case 1: add(); break;
case 2: remove(); break;
case 3: show(); break;
case 4: return false;
default: cout << "入力エラー!!再入力して下さい。" << endl; break;
}
return true;
}
0773デフォルトの名無しさん
NGNGchar answer;
do
{
personal_data new_data;
new_data.input();
DataList.push_back(new_data);
cout << "データの追加を続けますか?(y/n)"; cin >> answer;
} while(answer == 'y' || answer =='Y');
}
void remove() {
char answer;
string target_name;
do
{
cout << "削除するデータの氏名ーー>"; cin >> target_name;
list<personal_data>::iterator itr = find(DataList.begin(), DataList.end(), target_name);
if(itr == DataList.end())
cout << "その氏名のデータはありません。" << endl;
else
DataList.erase(itr);
cout << "データの削除を続けますか?(y/n)"; cin >> answer;
} while(answer == 'y' || answer =='Y');
}
0774デフォルトの名無しさん
NGNGcout << "<<データ一覧>>" << endl;
cout << "番号 氏名 郵便番号 住 所" << endl;
list<personal_data>::iterator itr;
size_t record_no = 0;
for(itr = DataList.begin(); itr != DataList.end(); itr++)
itr->output(++record_no);
}
};
int main(void) {
manager DataManager;
DataManager.run();
return 0;
}
0775デフォルトの名無しさん
NGNG07767C
NGNGダイアログベースでグーチョキパー3つのボタンを配置してジャンケンするプログラムを作りたい。
おながいします。
07777C
NGNG0778デフォルトの名無しさん
NGNG0779デフォルトの名無しさん
NGNGしまいにゃメール欄に「マジです」とかいてネタ
投稿するぞ。
07807C
NGNG0781デフォルトの名無しさん
NGNG0783デフォルトの名無しさん
NGNGプログラムを作るというもんだいなんですが。
ようはコンパイラを作る課題の第1歩なんですけど
例えば
A=12;
をよみこんだら
A 変数
= 代入文
12 数値
なんて表示されるものです。
このプログラムは出来たのですが、次の問題に
前問(上の問題)から字句解析機能を関数として作成し前問と同じ
プログラムを作成せよ。ただし変数表の管理にハッシュテーブルライブラリーを
つかうこと。
となっています。
ハッシュテーブルをどこでどうつかうかわからないんですが。。。
分かる方、ご指導おねがいします
0784783
NGNGおねがいします
0785デフォルトの名無しさん
NGNGて書いてあるじゃない。
変数名(例えば A)をハッシュテーブルに入れていけってことじゃないの?
0786783
NGNG前にやった例だと入れるものが数字だったので
その数値をある数でわってあまりをaとすると
hash[a]のとこにいれてくってかんじだったんですが
この場合は変数はアルファベットですよね。
hash[A]なんてするわけにはいかないし。。。
どうすればいいんでしょう?
0787デフォルトの名無しさん
NGNGつーかハッシュテーブルについてどう習った?
0788デフォルトの名無しさん
NGNG例えば、
printf( "%d\n", 'A' );
とかしてみたら、A という文字に対応する整数が表示される。
だから文字列の場合、一番簡単な例でいくと、
全ての文字(に対応する整数)を足した数をハッシュ値にすればいい。
0789783
NGNG上に書いたような数値の例で。
文字列の例調べてみます
0790デフォルトの名無しさん
NGNG「2次方程式 ax^2+bx+c=0 において,実数 a,b,c を代入し,その解を求めるプログラムを作成せよ」
という問題なのですが,注意点として
計算機の中では実数は倍精度で処理すると有効数字として15桁程度の精度を持つが,
それ以下の桁では誤差が生じる。その場合,2つの実数の差の絶対値を取り,
それが十分小さければ2つの実数は同じ値であると考える。
と書かれていたのですが,虚数解を求めるところでどうすれば誤差が生じないのか分かりません。
アドバイスお願いします。
0791783
NGNGあ、なるほど!
もしかして例えば変数Dだったら
hash[D-A]=変数
ってすればいいんですかね!?
0792デフォルトの名無しさん
NGNG別に A を引く必要はない。そのままの値を使いな。
0793783
NGNGhash[(int)'A'-'D']
ですね。
>792
そのままの値、ということは配列の最初のほうには
何も入らないと云う事ですよね?
宣言を
char hash[(int)'Z']
にしてやればいいのかな
0794デフォルトの名無しさん
NGNGとりあえず変数名が文字列だとしたら、ハッシュキーの作成は
unsigned int makeHashKey( char *str )
{
unsigned int hash = 7743;
int i;
for( i = 0 ; str[i] != '\0' ; i++ ){
hash = ( hash << 3 ) ^ hash ^ str[i];
}
return ( hash % cHASHTABLESIZE );
}
って感じが良いと思うよ。
0795デフォルトの名無しさん
NGNGいや....ある値で割って余りをとるんでしょ?
例えば、割り切れる数だったら 0 になるじゃない?
0796783
NGNGえーと、この場合ハッシュ関数はどうなるのでしょう?
割る数はハッシュサイズですよね?
てかハッシュサイズはどうなるんだ。
そいや数字もつかえるからA〜Zと1〜9の組み合わせ。。。
割られる数は。。。?
>794
forのループでが何を意味してるかわからないのですが
そこではなにをしてるのでしょう?
あと7743ってなんすか?
0797デフォルトの名無しさん
NGNG教科書とかにハッシュ法は載ってないのか?
一度じっくり本を読め。
0798デフォルトの名無しさん
NGNG>>783にあるハッシュテーブルライブラリはどこに行きましたか?
ハッシュ関数とか用意されてないんですか?
ハッシュテーブルライブラリなら文字列をキーとして値を入力できそうですが?
0799794
NGNGハッシュキーを作成する関数=ハッシュ関数じゃないのかな。
7743は適当な定数。短い変数名文字列が、ハッシュテーブルの
前半に集中するのを防ぐために適当に入れただけ。名無しさんとかって
したんだけど、本当は適当に大きな素因数の方が良いのかも。
forループの中では適当な計算をしている。ハッシュ関数は同じ
入力が与えられたら同じキーを発行したら良いから、適当にキーが
バラけて、かつ速い計算が良い。
文字列の文字全てをキーに使う為のforループで、中で行っている
計算はxor。andならキーが0に収束するし、orなら1に収束するから
xorが向いている。シフトしているのは文字だけじゃなくてその文字が
文字列のどの場所に出てくるかによってもキーが変わるように。
シフトしていない部分とのxorも求めているのは、長い文字列で最初の
方の文字がシフトによって消されないため。
漏れもハッシュの演習を学校でやった事があったけど、実際に数千個の
英単語を入れてキーをグラフにしてみたらちゃんとバラけてた。
0800783
NGNGネットで調べてみたところ、例えば
Abcって変数ならAとbとcをそれぞれコードにしてくっつけて
それを割った値をキーにすればいいんですよね?
でもその前にこの場合のハッシュサイズはどうなるんでしょう?
0801デフォルトの名無しさん
NGNGそれって何か意味のある動作をするか?
0802801
NGNG0803783
NGNGうぅ。。。なんかむずすぎて全然わからん。。。
800みたいなやりかたじゃだめすかね?
ABCの文字コードが65、66、67なら
656667と言う数字をハッシュサイズで割り、そのあまりを
添字にもつ配列にいれる。
ハッシュサイズがわからんと思ったけど調べてると
別に割る数はハッシュサイズでなく適当でいいと書いてるとこも
ありましたがそれでいいのかなぁ?
0804783
NGNG(65+66+67)/100をハッシュ値にするのが簡単そうですが
これじゃだめすかね。。。?
0805デフォルトの名無しさん
NGNG0806デフォルトの名無しさん
NGNG(65+66+67)%100 ね。
別にそれでいいんじゃないかなぁ?
そんなに高度なのは求められてないんでしょ。
0807783
NGNGあ、ハッシュテーブルライブラリーは別の問題でつくったんですよ。
でもそのままではつかえないのでそれを参考に考えるんだと
思います。
ちょっと問題はしょって書いたし書方わるかったかな。。。
0808デフォルトの名無しさん
NGNG0809デフォルトの名無しさん
NGNG0810デフォルトの名無しさん
NGNGそれは最後の文字しか意味を持たないじゃん。
0811デフォルトの名無しさん
NGNGんなこたーない
0812デフォルトの名無しさん
NGNGあれでいいと思うんなら下手な計算せずに先頭一文字だけそのまま使っとけば?
0814デフォルトの名無しさん
NGNGatoiだと文字型の数字しかint型になおらないですよね?
0815デフォルトの名無しさん
NGNGint i= (int)c;
0816デフォルトの名無しさん
NGNG文字じゃなくて文字列ですよ。
0817デフォルトの名無しさん
NGNGABCとかいう文字列をなんか一発で。。。
そういうのが無ければ普通に書けばいいんですが
一発で変換みたいなのがあればらくだなと
0818デフォルトの名無しさん
NGNG0819デフォルトの名無しさん
NGNG0820デフォルトの名無しさん
NGNG書けるんだったら書いてみてくれ。
0821デフォルトの名無しさん
NGNG0822デフォルトの名無しさん
NGNG2748です。
0823デフォルトの名無しさん
NGNG0824つまり
NGNG0825デフォルトの名無しさん
NGNG0826デフォルトの名無しさん
NGNG0827デフォルトの名無しさん
NGNGバカモノ。
なにがABCとかいう文字列だ。
16進数字じゃねぇのか?
>>824
それで本当に2748になるのか?
0828デフォルトの名無しさん
NGNGint i;
memcpy(&i,c,sizeof(int));
0829デフォルトの名無しさん
NGNG誰かこれもお願いできませんか?
実数解の場合は分かったんだけど,虚数解の場合がどうしても分からない。
ちなみに実数の場合は
D = b*b -4.0*a*c;
if(D > 0.0) { /* 実数解 (D > 0) */
x1 = (fabs(b) + sqrt(D)) / (2.0 * a);
if ( b >= 0.0 ) {
x1 = -x1;
}
x2 = c / (a * x1);
printf("x1 = %15.15f, x2 = %15.15f\n", x1, x2);
}
みたいな感じでやりました。
0830デフォルトの名無しさん
NGNG0831814
NGNGアルファベットを文字コードにして足して行っただけですが。
ちなみに僕は817しかかいてないですよ
0832デフォルトの名無しさん
NGNG0833デフォルトの名無しさん
NGNGMS-DOS上でTurboC++使って制御の勉強をやってます。
プログラム→Rs-232C(1)→データ処理→Rs-232C(2)→データ処理
→計算など
と制御させると全体の周期が0.5秒くらいなんです。
そのうち、Rs-232C(1)とRs-232C(2)での外部処理で0.2秒ずつ食われます。
Rs-232Cでコマンドを送った後、データが返ってくるまで
他の処理をさせたいのですが、DOSでは無理ですか?
割り込み処理などでなんとかなるもんですか?
0834デフォルトの名無しさん
NGNGデータ送受信を割込みで処理すれば割込みが有るまで好きなことが出来る罠。
0835デフォルトの名無しさん
NGNG0836833
NGNG>>834
その手法を考えて実装してみます。
どこか参考になるHPなどないかなぁ。
(TurboというかBorlandのヘルプはすでに読みましたけど・・・)
>>835
それ持ってます。途中まで読んで休止状態です(w
0838デフォルトの名無しさん
NGNG0839デフォルトの名無しさん
NGNG0841デフォルトの名無しさん
NGNGよーわからんが、この辺はどうだ?
http://cl.rc.kyushu-u.ac.jp/Literacy/PP/H14/adp/program/equation.html
0843デフォルトの名無しさん
NGNG大体虚数をどう表す気だ。 doubleは実数しか表せないんだぞ?
それさえ判れば自明じゃないのか?
0844790
NGNG今はreal,imagをdoubleで宣言して,
real = -(b / (2.0*a));
imag = sqrt(fabs (D)) / (2.0*a);
printf("x1 = %15.15f + %15.15fi (虚数解)\n", real, imag);
printf("x2 = %15.15f - %15.15fi (虚数解)\n", real, imag);
のようにやってるんですけど,>>841のページを見ると実数の場合,
if(d >= 0){ /* 判別式が正のとき、解を計算 */
x1 = (-b + sqrt(d)) / (2.0 * a);
x2 = (-b - sqrt(d)) / (2.0 * a);
printf("x1 = %27.20e(%27.20e)\n",x1,a*x1*x1+b*x1+c);
printf("x2 = %27.20e(%27.20e)\n",x2,a*x2*x2+b*x2+c);
}
では桁落ちするらしく,
if(d >= 0){ /* 判別式が正のとき、解を計算 */
x1 = (fabs(b) + sqrt(d)) / (2.0 * a); /* 修正箇所 */
if ( b >= 0.0 ) {
x1 = -x1;
}
x2 = c / (a * x1); /* 修正箇所 */
printf("x1 = %27.20e(%27.20e)\n",x1,a*x1*x1+b*x1+c);
printf("x2 = %27.20e(%27.20e)\n",x2,a*x2*x2+b*x2+c);
}
のように修正すると書かれてたので,虚数解の場合も修正しないとまずいのでは?
と思ったのですが違うのでしょうか?
0846デフォルトの名無しさん
NGNG#include <iostream.h>
#include <complex.h>
int main(void)
{
double x = 3.1, y = 4.2;
complex z = complex(x,y);
cout << "z = "<< z << "\n";
cout << " and imaginary real part = " << imag(z) << "\n";
cout << "z has complex conjugate = " << conj(z) << " \n";
return 0;
}
0847デフォルトの名無しさん
NGNGCの問題なので却下。
0848デフォルトの名無しさん
NGNG0849デフォルトの名無しさん
NGNG0850デフォルトの名無しさん
NGNG#include <math.h>
main()
{
int c=0,temp=0;
while((c=getchar())!='a'){
if(c==' ') temp=c;
else{
if(temp==' ') {
putchar(temp);
temp='a';
}
putchar(c);
}
}
return 0;
}
上のプログラムは,某本の二つ以上の空白を一つの空白に置き換えながら,入力を出力しなさいという問題の答えです。
このプログラムの改善点などありますでしょうか?
0851デフォルトの名無しさん
NGNG#include <math.h>
main()
{
int c=0,temp=0;
while((c=getchar())!='a'){
if(c==' ') temp=c;
else{
if(temp==' ') {
putchar(temp);
temp='a';
}
putchar(c);
}
}
return 0;
}
上のプログラムは,某本の二つ以上の空白を一つの空白に置き換えながら,入力を出力しなさいという問題の答えです。
このプログラムの改善点などありますでしょうか?
0852デフォルトの名無しさん
NGNG#include <math.h>
main()
{
int c=0,temp=0;
while((c=getchar())!='a'){
if(c==' ') temp=c;
else{
if(temp==' ') {
putchar(temp);
temp='a';
}
putchar(c);
}
}
return 0;
}
上のプログラムは,某本の二つ以上の空白を一つの空白に置き換えながら,入力を出力しなさいという問題の答えです。
このプログラムの改善点などありますでしょうか?
0853デフォルトの名無しさん
NGNG0854JPS ◆M0LaMzf5rY
NGNG#include <stdio.h>
int main(void)
{
int ch;
while ( (ch = getchar() ) != EOF )
{
putchar( ch );
while ( ch == ' ' )
ch = getchar();
}
return 0;
}
0855デフォルトの名無しさん
NGNGそれだと,
aa a a a a
が
aa
になってしまいます
aa a a a a
とならなくてはいけないので
0856デフォルトの名無しさん
NGNGwhile ((ch = getchar()) != EOF)
{
if (! last_char_was_space || ch != ' ')
putchar(ch);
last_char_was_space = (ch == ' ');
}
0857デフォルトの名無しさん
NGNGの部分はどういう処理で?
chに' 'を入れる必要性は?
0859デフォルトの名無しさん
NGNG長ぇよ!w
0860デフォルトの名無しさん
NGNGいや・・じらさないで早く挿入れて!
0861デフォルトの名無しさん
NGNGこれなに?
0862デフォルトの名無しさん
NGNGchがスペースなら1,でないなら0っすか
で,if文で調べると
こんな高等な技術があったとは
>>859
あほな僕でもわかるようにと,考えてくださったのでしょう
0864西門 ◆J1DLkSnXwI
NGNG0865デフォルトの名無しさん
NGNG#include <iterator>
#include <algorithm>
bool space_seq(char f,char s){return (f==' ')&&(s==' ');}
main(){
std::cin.unsetf(std::ios::skipws);
std::unique_copy(std::istream_iterator<char>(std::cin),std::istream_iterator<char>(),std::ostream_iterator<char>(std::cout),space_seq);
}
0866デフォルトの名無しさん
NGNG{
char* c=new char[100];
c=NULL;
}
0867デフォルトの名無しさん
NGNG{
char* c=new char[100];
c=NULLPO;
}
0868デフォルトの名無しさん
NGNGキタ
0869宿題教えて!
NGNG/*行列を表すクラス*/
template <class T=int,int a=3> class Matrix {
T x[a];
public :
Matrix();
T &set(int row,int col){return x[(row-1)+(col-1)*a];}
//+演算子
friend Matrix<T,a> operator+(Matrix<T,a> &n,Matrix<T,a> &m){
int i;
Matrix<T,a> ret;
for(i=0; i<a*a; i++){ret.x[i] = n.x[i]+m.x[i];}
return ret;
}
void show();
};
//コンストラクタ
template<class T,int a> Matrix<T,a>::Matrix(){
int i;
for(i=0; i<a*a; i++) x[i] = 0;}
//表示関数
template<class T,int a>void Matrix<T,a>::show(){
int i;
for(i=0; i<a*a; i++){cout << x[i] << " " ;if(i%a == 2)cout << "\n";}
}
0870宿題教えて!
NGNGint length=3;
Matrix<int ,3> a,b,c;//3行3列の行列
int bNumber[9] = {6,5,4,3,2,1,9,8,7};
int i;
for(i=0; i<length*length; i++){a.set(i%length+1,i/length+1) = (i+1)*10;//i*10をセットする}
for(i=0; i<length*length; i++){b.set(i%length+1,i/length+1) = bNumber[i];//あらかじめ用意されたbNumberを入れる}
c.show();
c = a + b;//ここが実行されない
c.show();
return 0;
}
/*C++ですが、行列のクラスをテンプレートで実現して、
+ - * の演算子とinverse関数を実現せよ!とか云って来るんですよ
だから・・・お願いします。教えてください。
+のとこだけでよいので・・・
相談スレでスレ違いだったのでこっちに聞きます
マルチですが、相談すれは無視してください。
*/
0871デフォルトの名無しさん
NGNG0872宿題教えて!
NGNGこっちに誘導されますた
>>871
分かるならおしえて!
0873デフォルトの名無しさん
NGNG0874デフォルトの名無しさん
NGNGT x[a];
でa(=3)個分しか用意してないのにa*a個にアクセスしようとしているお前に乾杯
0875デフォルトの名無しさん
NGNGYou and I are friend?
0876宿題教えて!
NGNGあ・・・
ほんとだ
スマソ
0877宿題教えて!
NGNGいちおーjavaプログラマのつもりだったのに
情けないです・・・
修行してきます
0878デフォルトの名無しさん
NGNG×You and I are friend?
○Are you my friend?
0879デフォルトの名無しさん
NGNGwhile ((ch = getchar()) != EOF)
{
if (ch == ' ' && last_ch != ' ')
putchar(ch);
last_ch = ch;
}
0880デフォルトの名無しさん
NGNGwhile ((ch = getchar()) != EOF)
{
if (ch != ' ' || ch != last_ch)
putchar(ch);
last_ch = ch;
}
0881デフォルトの名無しさん
NGNGwhile ((ch = getchar()) != EOF)
{
if (ch != ' ' || (ch == ' ' && ch != last_ch) )
putchar(ch);
last_ch = ch;
}
つーか複雑になってきたので意味無し。
0882デフォルトの名無しさん
NGNG0883デフォルトの名無しさん
NGNGもう ungetc() を忘れたのか?
0884デフォルトの名無しさん
NGNGif(ch != ' ' || lash_ch != ' ')
0885デフォルトの名無しさん
NGNGJPSのカキコは全部釣りだって気づいてないのか?
0886デフォルトの名無しさん
NGNG0887デフォルトの名無しさん
NGNG0888デフォルトの名無しさん
NGNG遅レスに便乗質問なんですけど,
>>else if (DD==0.0){
>浮動小数点でこういうことしない。
とあるのですが,この場合はどう処理するのが正しいのでしょうか?
http://www.google.co.jp/search?q=cache:http://www.cpnet.co.jp/gfan/techdoc/Geometry/numerr.htmに
2つの浮動小数点数を、「==」で比較してはならない。「等しい」と判定されなければならない場面で、誤差により、
等しくならないことはしばしばである。この場合、2つの浮動小数点数の差を取り、
その絶対値が、誤差限界より小さい時には、等しいものと判定するようにする。
とあったのですが,どう書いたらよいのか分かりません。お願いします。
0889デフォルトの名無しさん
NGNG0891888
NGNGBorland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
niji.c:
エラー E2451 niji.c 41: 未定義のシンボル DD(関数 main )
エラー E2451 niji.c 41: 未定義のシンボル EPSILON(関数 main )
警告 W8070 niji.c 61: 関数は値を返すべき(関数 main )
っていうエラーが返ってきちゃったんですけど,なにか定義しなくちゃいけないんでしょうか?
0892デフォルトの名無しさん
NGNGfabsって見た感じ、絶対値返すっぽいし。
0893デフォルトの名無しさん
NGNG0894888
NGNGに書いてあるように,
#define EPSILON 0.0001
を追加し,if (fabs(DD)→if (fabs(D)にしたらできました。
実際問題,判別式として分ける場合,EPSILONはどの程度の値として定義すればいいのでしょうか?
0.0001よりもだいぶ小さい値になってるのもあるようなのですが…。
0895デフォルトの名無しさん
NGNG> #define EPSILON 0.0001
そんな事するなするな。
<float.h> の DBL_EPSILON や FLT_EPSILON を使え。
0896デフォルトの名無しさん
NGNGまあ、もともとこんな定数用意してるぐらいだったら、標準で判定関数かマクロか
用意してくれてもいいじゃんとは思うけどナー。
0897888
NGNGif(fabs(D) <= DBL_EPSILON)
記述の方法は↑で良いのでしょうか?
microsoftのページに
2.2204460492503131e-016 として定義された double 用の定数 DBL_EPSILONとあったのですが,
DBL_EPSILONは「どんな場合にも適したdouble用のEPSILONの値」という認識で間違ってませんか?
0898デフォルトの名無しさん
NGNG0899デフォルトの名無しさん
NGNGその場合でも
|x1-x2|<=DBL_EPSILONにする必要がありそうな
0900デフォルトの名無しさん
NGNG非常に近いけど重解じゃありません、でいいんじゃん?
0901デフォルトの名無しさん
NGNGどっちが速いんだろうな?
0902デフォルトの名無しさん
NGNGなるようならfabs()のほうが速いかもしれん。
0903option
NGNG順に格納し、一致した要素数を返す以下の関数を作成せよ。
int seachidx(int a[], int n, int key, int idx[]);
誰か完成させてくださいませんか?
これでいいのか?
int seachidx(int a[], int n, int key, int idx[]) {
int i, j;
j = 0;
for (i = 0; i < n; i ++) {
if (a[i] == key) {
idx[j] = a[i];
j ++;
}
}
return j;
}
0905デフォルトの名無しさん
NGNG丸なげ?
0906デフォルトの名無しさん
NGNGんですけどアドバイスもらえませんか?
0907option
NGNGありがとうございました。
今コンパイル出来ませんが(都合により)後日コンパイルしてみます。
本当に助かりました。
0909デフォルトの名無しさん
NGNG256倍して表示汁。
0910デフォルトの名無しさん
NGNGint seachidx(int a[], int n, int key, int idx[]) {
return std::remove_copy_if(a, a+n, idx, std::bind2nd(std::not_equal_to<int>(), key)) - idx;
}
0911西門 ◆J1DLkSnXwI
NGNGよくわからんが、
「1つ1つの画素の輝度が[0,1]の実数で表されている画像を、
白黒2値の表示装置で表示したい」という意味なら、ディザリング
するのがよろしかろう。
#include <stdlib.h>
void dither(double input[], char output[], unsigned size,
double contrast, double brightness)
{
unsigned i;
for (i = 0; i < size; i++) {
double d = rand() * 2.0 / (RAND_MAX + 1) - 0.5;
output[i] = (input[i] + d * contrast > brightness);
}
}
0912デフォルトの名無しさん
NGNG>906の言う「0から1の実数」が、「0以上1以下の実数」のことだったら
256倍すると256諧調に収まらないので、
255倍の方がいいかも。
0913910
NGNG0914906
NGNG912さんの言われると通り0以上1以下の値を持った
2次元配列の値をパラメータとしてそのパラメータを
突っ込めば白黒階調画像が表示できるようなPGという意味でした。
説明不足ですみません。
0915906
NGNGぐぐりました所いい感じのソースが見つかりました。
またなにかありましたらよろしくお願いします。
0916デフォルトの名無しさん
NGNG0917デフォルトの名無しさん
NGNGここは、そういうスレじゃないのか?
0918デフォルトの名無しさん
NGNGそうか、ここはOKなんだな。>1にもとくに書いてないし。
0919デフォルトの名無しさん
NGNGよくわからん質問。マルチは不定だが。
0920デフォルトの名無しさん
NGNGtypedef struct{
int y;/*西暦年*/
int m;/*月(1〜12)*/
int d;/*日(1〜31)*/
}YMD;
上の構造体が与えられているとする。
日付xのn日後の日付を返す以下の関数を作成せよ。
YMD after(YMD x, int n);
日付xのn日前の日付を返す以下の関数を作成せよ。
YMD before(YMD x, int n);
。。。ヒント。。。
★日にち★
▼1〜27▼ 日にちに+1
▼28(2月) うるう年か?▼YES 日にち+1,NO 月+1、日にち+1
▼29 2月?▼YES 月+1、日にち=1,NO 日にち+1
▼30 4,6,9,11月?▼YES 月+1、日にち=1,NO 日にち+1
▼31 12月?▼YES 年+1、月=1、日にち=1,NO 月+1、日にち=1
うるう年は
int isleap(int year)
{
return (year % 4 == 0 && year % 100 != 0 || year % 400 == 0);
}
で求める。
ちなみに西暦は深く考えなくていいです。1735年(?)以前がどうとかあった
気がしましたが。
丸投げ上等らしいので、誰かソース提供して欲すぃのですが・・・。
だめかなぁ・・・。
0921デフォルトの名無しさん
NGNGjday(YMD x)
{
int y = x.y, m = x.m;
long d = x.d;
if ((m -= 3) < 0) {m += 12; y--;}
d += (long)y * 365 + y / 4 - y / 100 + y / 400;
return d + (m * 153 + 2) / 5;
}
0922デフォルトの名無しさん
NGNGtoYMD(long d)
{
int y, m;
--d;
y = d / (365 * 400 + 97) * 400; d %= 365 * 400 + 97;
y += (d / (365 * 4 + 3)) * 4; d %= 365 * 4 + 3;
y += d / 365; d %= 365;
m = (d / 153) * 5; d %= 153;
m += (d / 61) * 2; d %= 61;
m += d / 31; d %= 31;
++d;
if ((m += 3) > 12) {m -= 12; ++y;}
{YMD x = {y, m, d}; return x;}
}
0923デフォルトの名無しさん
NGNG{
return toYMD(jday(x) + n);
}
YMD before(YMD x, int n)
{
return after(x, -n);
}
YMD after(YMD x, int n) {
int i;
for (i = 0; i < n; i ++) {
if (x.d < 28) {
x.d ++;
} else if (x.d == 28) {
if (x.m == 2 && isleap(x.y)) {
x.m ++;
x.d = 1;
} else {
x.d ++;
}
} else if (x.d == 29) {
if (x.m == 2) {
x.m ++;
x.d = 1;
} else {
x.d ++;
}
if (x.m == 4 || x.m == 6 || x.m == 9 || x.m == 11) {
x.m ++;
x.d = 1;
} else {
x.d ++;
}
} else {
if (x.m == 12) {
x.y ++;
x.m = 1;
x.d = 1;
} else {
x.m ++;
x.d = 1;
}
}
return x;
}
before() は after() を改造すればできるよね。
0926920
NGNG有難いです。ここにいる方々には感謝してもしきれません。
本当にありがとうございました。
>◆F52DmOxJlc さん
あなたの事は神と呼ばせて下さい!!
神(^^)/ありがとう!!
インデントに全角スペース使ってるからコピペはするなよ。
しかも動作確認してないから間違ってたら適当に修正しておくれ。
//この程度で神はカンベンw
0928デフォルトの名無しさん
NGNG人にいろいろ教えてあげるようになったとは。
0929デフォルトの名無しさん
NGNGただし、入力、二乗の和、合計のための関数を作って利用しなさい。
#include <stdio.h>
void input(double a[], int n);
double sum2(double sum2[],int n);
double sum(double sum[], int n);
int main(int argc, char* argv[])
{
double y[1000];
int n;
printf("いくつ入力するか決めてください:");
scanf("%d",&n);
input(y,n);
printf("二乗の和は%fです。\n",sum2(y,n));
printf("平均値は%fです。\n",sum(y,n)/n);
return 0;
}
void input(double a[], int n) {
int k;
for(k = 0; k < n; k++) {
printf("%d個目の数字を入力してください:", k+1);
scanf("%lf", &a[k]);
}
}
0930デフォルトの名無しさん
NGNG0931929
NGNG{
int i;
double x = 0;
for (i = 0; i < n; i++) {
x += sum2[i]*sum2[i];
}
return x;
}
double sum(double sum[], int n)
{
int i;
double x = 0;
for (i = 0; i < n; i++) {
x += sum[i];
}
return x ;
}
作ってみたんですけど不安なのでおかしいところとか言ってくれませんか?
0932デフォルトの名無しさん
NGNG位のところでなぜか3を足してた。
static YMD
toYMD(long d)
{
int y, m;
--d;
y = d / (365 * 400 + 97) * 400; d %= 365 * 400 + 97;
y += (d / (365 * 100 + 24)) * 100; d %= 365 * 100 + 24;
y += (d / (365 * 4 + 1)) * 4; d %= 365 * 4 + 1;
y += d / 365; d %= 365;
m = (d / 153) * 5; d %= 153;
m += (d / 61) * 2; d %= 61;
m += d / 31; d %= 31;
++d;
if ((m += 3) > 12) {m -= 12; ++y;}
{YMD x = {y, m, d}; return x;}
}
0933920
NGNG学校行ったらさっそく試してみますね。
0934デフォルトの名無しさん
NGNGたびたびすまん。2000/2/29が間違ってた。
> y += (d / (365 * 100 + 24)) * 100; d %= 365 * 100 + 24;
ここをこうしる。
if (d == 365 * 400 + 96) {
y += 3;
d = 365 * 100 + 24;
}
else {
y += (d / (365 * 100 + 24)) * 100; d %= 365 * 100 + 24;
}
0935デフォルトの名無しさん
NGNGそれでいい。
0936デフォルトの名無しさん
NGNG禿しく鬱。
static YMD
toYMD(long d)
{
int y, m, i;
--d;
y = d / (365 * 400 + 97) * 400; d %= 365 * 400 + 97;
if (d == 365 * 400 + 96) {
y += 399;
d = 365;
}
else {
y += (d / (365 * 100 + 24)) * 100; d %= 365 * 100 + 24;
y += (d / (365 * 4 + 1)) * 4; d %= 365 * 4 + 1;
if (d == 365 * 4) {y += 3; d = 365;}
else {y += d / 365; d %= 365;}
}
m = (d / 153) * 5; d %= 153;
m += (d / 61) * 2; d %= 61;
m += d / 31; d %= 31;
++d;
if ((m += 3) > 12) {m -= 12; ++y;}
{YMD x = {y, m, d}; return x;}
}
0937デフォルトの名無しさん
NGNGN、L、Mをmain関数の中で与えたいのですが、
どのようにしたらよろしいのでしょうか?
#include <stdio.h>
#include <stdlib.h>
#define N 3
#define L 5
#define M 4
typedef double matNL[N][L];
typedef double matLM[L][M];
typedef double matNM[N][M];
void multiply(matNM c, matNL a, matLM b)
{
int i, j, k;
double s;
for (i = 0; i < N; i++)
for (j = 0; j < M; j++) {
s = 0;
for (k = 0; k < L; k++) s += a[i][k] * b[k][j];
c[i][j] = s;
}
}
void matprint(int nrow, int ncol, double *a)
{
int i, j;
for (i = 0; i < nrow; i++) {
for (j = 0; j < ncol; j++) printf("%8.1f", *a++);
printf("\n");
}
}
0938937
NGNGint main(void)
{
int i, j;
static matNL a;
static matLM b;
static matNM c;
for (i = 0; i < N; i++)
for (j = 0; j < L; j++)
a[i][j] = rand() / (RAND_MAX / 10 + 1);
for (i = 0; i < L; i++)
for (j = 0; j < M; j++)
b[i][j] = rand() / (RAND_MAX / 10 + 1);
printf("A\n"); matprint(N, L, (double *)a);
printf("B\n"); matprint(L, M, (double *)b);
multiply(c, a, b);
printf("AB\n"); matprint(N, M, (double *)c);
return (0);
}
0939デフォルトの名無しさん
NGNGmalloc/freeって知ってる?
0940937
NGNGmalloc/freeは少しだけ使ったことあります。。
mallocでa[N][L]、b[L][M]、c[N][M]を確保して、
やろうと思ったのですが、
multiply()を定義する部分で、
()内をどうしたらよいのかわかりませんでした。
0941デフォルトの名無しさん
NGNGmultiply(double *c, double *a, double *b, int l, int n, int m)
{
int i, j, k;
double s;
for (i = 0; i < n; i++) {
for (j = 0; j < m; j++) {
s = 0;
for (k = 0; k < l; k++)
s += a[i*l+k] * b[k*m+j];
c[i*m+j] = s;
}
}
}
0943ぼるじょあ ◆yBEncckFOU
NGNGさっぱりわからないんですがどこかに使い方の解説のサイトは無いでしょうか?
すれ違い?
0944デフォルトの名無しさん
NGNG19の47乗を143で割った余りを求めたかったので
C言語で以下のような記述をしました。
printf("%d\n", (int)pow(19, 47) % 143);
すると表示される結果は-24となります。
正の数を正の数で割ったので、あまりがマイナスになることはありません。
実際に合同式を用いて手作業で計算すると、
答えは24になりました。
どうしてC言語を用いて計算するとマイナスになるのでしょうか?
環境はCygwin+gccです。
0945デフォルトの名無しさん
NGNG配列を用いてカウントするプログラムを作成せよ。
ただし、個数のカウントに条件分岐をしようしてはいけない。
データ型の変換について習ったんでそれを使うんでしょうが、
条件分岐を使わないでどう組むのか全く分かりません。
助言お願いします。
0946デフォルトの名無しさん
NGNG「MAKEファイル」でぐぐっただけだがこんなんはどうよ。
http://www-clim.kugi.kyoto-u.ac.jp/yasunaga/make.html
0947デフォルトの名無しさん
NGNG19の47乗は61桁ほどになり、通常の処理系ではintでもdoubleでも正確に
表せないからどちらにしろ答えは無意味。
0948デフォルトの名無しさん
NGNG19の47乗は10進で61桁の数になる。
浮動小数点数の有効桁数は17桁くらいだから、
正確な計算は全く期待できない。
0949デフォルトの名無しさん
NGNGその3つの区間の数値は、小数点以下を切り捨てるとそれぞれ
0, 1, 2になる。これを配列の添え字に使う。
0950デフォルトの名無しさん
NGNG> 実際に合同式を用いて手作業で計算すると、
最初からそっちでプログラムしろ。
0952デフォルトの名無しさん
NGNG前スレに似たような質問があったような気がするが。
0953デフォルトの名無しさん
NGNGunsigned long int b;
for(b = 1; k > 0; a = a * a % m, k >>= 1)
if(k & 1) b = b * a % m;
return b;
}
0954デフォルトの名無しさん
NGNGビット演算がよく分かりません。
それはどういうアルゴリズムで、
どのぐらいの大きさまで計算できるんですか?
0955デフォルトの名無しさん
NGNG(゚Д゚)ハァ?
0956デフォルトの名無しさん
NGNG処理系に依存するっスよ
0957デフォルトの名無しさん
NGNGその(゚Д゚)ハァ?の意味がわからない。どこかおかしいか?
0958デフォルトの名無しさん
NGNG新しいため息のつきかた・・・
0959デフォルトの名無しさん
NGNGを作成するプログラムを考えることにする。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct CELL{
char word[32];
struct CELL *next;
};
int main(){
struct CELL *words, *p;
char newword[32];
words = NULL;
while(scanf("%s",newword)== 1){
for(p=words; p!=NULL; p=p->next)
if(strcmp(newword, p->word)==0)break;
if(p==NULL){
p=(struct CELL *)malloc(sizeof(struct CELL));
strcpy(p->word,newword);
p->next=words;
words = p;
}
}
for(p=words; p!=NULL; p=p->next)printf("%s\n", p->word);
}
0960デフォルトの名無しさん
NGNG機能拡張してください。よろしくお願いします。
0961943
NGNG有難うございました。当方初心者なものでこれでも
難しいです。MAKEする上でコンパイルについて簡単に書かれて
いるものってないでしょうか。
0962デフォルトの名無しさん
NGNG0963デフォルトの名無しさん
NGNG>>946のページはgoogleで出た中で一通り書いてある所を選
んだだけだから、もっと単純なところも出て来るよ。
0964デフォルトの名無しさん
NGNG〜略〜
int main(){
struct CELL *words, *p, *prev;
char newword[32];
words = NULL;
while(scanf("%s",newword)== 1){
prev=NULL;
for(p=words; p!=NULL; p=p->next){
if(strcmp(newword, p->word)<0)break;
prev=p;
}
p=(struct CELL *)malloc(sizeof(struct CELL));
strcpy(p->word,newword);
if(p==NULL || prev==NULL){
p->next=words;
words = p;
} else {
p->next=prev->next;
prev->next=p;
}
}
for(p=words; p!=NULL; p=p->next)printf("%s\n", p->word);
}
0965デフォルトの名無しさん
NGNGどうもありがとうございます!
これで、レポートは間に合いそうです。
0966デフォルトの名無しさん
NGNG(m-1)*(m-1) が桁溢れしなければ計算できるよ。
m が大きい場合はかけ算も同じように二進展開して計算するといい。
0968デフォルトの名無しさん
NGNG宿題こいやこいや〜。
0969デフォルトの名無しさん
NGNG応援してください。
0970デフォルトの名無しさん
NGNG0971デフォルトの名無しさん
NGNGやめとけ、今の君には刺激が強すぎる。
0972デフォルトの名無しさん
NGNG0973デフォルトの名無しさん
NGNGプログラムを書け。
タブストップの位置は,例えばn文字ごとというように固定して考えよ。
という問題なんですが,文章の意味をもう少し判りやすく説明してください。
0974デフォルトの名無しさん
NGNG0975デフォルトの名無しさん
NGNG出題者にきけよ
0976デフォルトの名無しさん
NGNG例えば 「タブ幅=4」 と設定された時に、
"a[\t]bc[\t]def[\t]ghij[\t]klmno[\t]pqrstu という文字列を、
"a bc def ghij klmno pqrstu" に展開しろという事だろ。
ただの\tじゃないんですか?
[\t]がタブストップ?
0978デフォルトの名無しさん
NGNGその通り。
[\t] は単に見やすく書いただけ
0979デフォルトの名無しさん
NGNGそういうことですか
\tの時に,
if(c[cnt]=='\t'){
printf(" ");
printf(" ");
printf(" ");
printf(" ");
}
という風に,表示するのをスペースにするものだと思っていました
文字列自体を変換するってことですか
いろいろとありがとうでした
0980デフォルトの名無しさん
NGNG>printf(" ");
>printf(" ");
>printf(" ");
>printf(" ");
>}
これだと条件が足りない。
ab[\t]cd
のとき、
abの後ろに、半角スペースが ’2個 ’ だから。
0981デフォルトの名無しさん
NGNG0982デフォルトの名無しさん
NGNG0983デフォルトの名無しさん
NGNGアニキ
そのプログラムできませんでした・・・
教えて・・・
0984デフォルトの名無しさん
NGNGspace_of_long = 4-strlen(s1);
put(s1);
space_of_long bun space put...
?
0985デフォルトの名無しさん
NGNG0986デフォルトの名無しさん
NGNG{
const int tab_stop = 4;
char buf[] = "a\tbc\tdef\tghij\tklmno\tpqrstu\t";
char *p = buf;
int col = 0;
printf("\"%s\"\n", buf);
putchar('\"');
while(*p)
{
if(*p == '\t')
do putchar(' '); while(col = (col + 1) % tab_stop);
else
putchar(*p), col++;
p++;
}
putchar('\"');
return 0;
}
strtok() だと最後のタブ文字が捕捉できないにょ
0987デフォルトの名無しさん
NGNG以下のように組んだんですが、大文字がうまく変換されません。
どこがまずいでしょうか?
#include<stdio.h>
void change(char *a)
{
while (*a != '\0'){
if (0x61 <= *a <= 0x7a)
*a -= 32;
a++;
}
}
main()
{
char a[100];
printf("input words\n");
scanf("%s", a);
printf("%s\n", a);
change(a);
printf("%s\n", a);
return 0;
}
0988デフォルトの名無しさん
NGNG0989デフォルトの名無しさん
NGNGよくわかるが toupper() を使え
0990デフォルトの名無しさん
NGNG#include <ctype.h>
int main(void)
{
char buf[100], *p = buf;
puts("input words");
fgets(buf, sizeof(buf), stdin);
fputs(buf, stdout);
while(*p = toupper(*p)) p++;
fputs(buf, stdout);
return 0;
}
0991デフォルトの名無しさん
NGNG書き忘れていたんですが
ASCIIコードを使って変換しろということでした、すみません。
前述したプログラムを実行すると
英大文字も小文字と同様 -32されているようなので
if (0x61 <= *a <= 0x7a)
これがまずいのかなと考えてるんですが・・?
0992デフォルトの名無しさん
NGNGその課題出した香具師、砲撃していいよ・・・
0993デフォルトの名無しさん
NGNG↓
if (0x61 <= (unsigned char)*a <= 0x7a)
0994デフォルトの名無しさん
NGNG> if (0x61 <= *a <= 0x7a)
そういう書き方はできないよ。
if (0x61 <= *a && *a <= 0x7a)
0995デフォルトの名無しさん
NGNG0996bloom
NGNGhttp://www.agemasukudasai.com/bloom/
0997デフォルトの名無しさん
NGNG激しく( ゚Д゚)マズーです
if (0x61 <= *a && *a <= 0x7a)
としなさい
<=は左結合演算子なので左から順に評価されます
0x61 <= *a <= 0x7a とすると
まず 0x61 <= *a が評価され
この時点で大文字も小文字も真になります
言い切れませんが真は大抵 1 なので
0x61 <= *a が 1 に置き換わり
その後に右の <= が評価されるので
1 <= 0x7a が評価されることになり
これも真となります。
結局 if (0x61 <= *a <= 0x7a) だと
大文字小文字どころか
0x61 <= *a が成り立てば
全部通ってしまいます
0998デフォルトの名無しさん
NGNG*a = (*a - 'A') + 'a';
よく読んでないけど、こうすべきだと思ったのは俺だけか
0999デフォルトの名無しさん
NGNG漏れ立てられないからだれかヨロシク
>>993
おいおい
1000デフォルトの名無しさん
NGNGお前等C/C++なんて糞言語やってないでDelphiしろ! デルファイ!
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。