C/C++の宿題やらせてください。6代目。
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん
NGNG今まで1年*ヶ月、ほとんど毎日休まず一生懸命C++を勉強してきた。
わからない宿題若しくは処理があったら私にやらせてくださいm(_ _)m
5代目(前スレ): http://pc2.2ch.net/test/read.cgi/tech/1051594046/l50
4代目: http://pc2.2ch.net/test/read.cgi/tech/1045074808/l50
3代目: http://pc2.2ch.net/tech/kako/1041/10419/1041992392.html
2代目: http://pc3.2ch.net/tech/kako/1039/10397/1039772622.html
宿題手伝いますYO!!: http://pc3.2ch.net/tech/kako/1038/10380/1038024989.html
ラウンジ:質問が長い時はココを使うと便利
http://do.sakura.ne.jp/%7Ejunkroom/cgi-bin/megabbs/lounge/index.html
0002デフォルトの名無しさん
NGNG乙(嘲笑激藁
0003デフォルトの名無しさん
NGNG0004デフォルトの名無しさん
NGNGC++相談室 part19
http://pc2.2ch.net/test/read.cgi/tech/1052625846/l50
C言語なら俺に聞け! Part 〈56〉
http://pc2.2ch.net/test/read.cgi/tech/1052542761/l50
★初心者にVisual C++を教えるスレ★ Part6
http://pc2.2ch.net/test/read.cgi/tech/1052931903/l50
C++Builder相談室 Part5
http://pc2.2ch.net/test/read.cgi/tech/1045542179/l50
Win32API 質問箱 Build11
http://pc2.2ch.net/test/read.cgi/tech/1052651750/l50
0005デフォルトの名無しさん
NGNGここは隔離スレなんだから、リンクはるな馬鹿
0006デフォルトの名無しさん
NGNG0007デフォルトの名無しさん
NGNG馬鹿
馬鹿
馬鹿
馬鹿
馬鹿
0008デフォルトの名無しさん
NGNG0009デフォルトの名無しさん
NGNG0010デフォルトの名無しさん
NGNG3.14159657843frいいじゃねーか!
0011デフォルトの名無しさん
NGNG小数第5位までしか正しくない罠
0012デフォルトの名無しさん
NGNG0013デフォルトの名無しさん
NGNGhttp://www.vector.co.jp/soft/win95/hardware/se211824.html
0014_
NGNG( ・∀・)/< こんなのみつけたっち♪
ttp://www.yamazaki.90.kg/hankaku/hankaku04.html
ttp://yamazaki.90.kg/hankaku/hankaku10.html
ttp://www.yamazaki.90.kg/hankaku/hankaku09.html
ttp://yamazaki.90.kg/hankaku/hankaku08.html
ttp://www.yamazaki.90.kg/hankaku/hankaku06.html
ttp://yamazaki.90.kg/hankaku/hankaku05.html
ttp://www.yamazaki.90.kg/hankaku/hankaku01.html
ttp://yamazaki.90.kg/hankaku/hankaku02.html
ttp://www.yamazaki.90.kg/hankaku/hankaku07.html
ttp://yamazaki.90.kg/hankaku/hankaku04.html
0015デフォルトの名無しさん
NGNG0016デフォルトの名無しさん
NGNG0017デフォルトの名無しさん
NGNG0018デフォルトの名無しさん
NGNG001919
NGNG自分の名前をアスキーコード(整数値)で入力し、「My name is ・・・」
とローマ字(大文字)で表示するプログラムを作りなさい。また、同時に
(アスキーコードを再入力することなく)ローマ字(小文字)で表示する
プログラムを作りなさい。
0020デフォルトの名無しさん
NGNG#include <stdlib.h>
#include <stdio.h>
int main(void)
{
int i;
printf("計算中\n");
if(i=rand();i>0;i--);
printf("円周率=%f\n",PI);
return 0;
}
0021デフォルトの名無しさん
NGNGPIが定義されていないと出た
0022デフォルトの名無しさん
NGNGなんすかこれ?
0023デフォルトの名無しさん
NGNGモンテカルロ法
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
 int i, count;
 double x, y;
 srand(time(NULL));
 count = 0;
 for (i = 0; i < 10000; i++) {
   x = (double)rand() / RAND_MAX;
   y = (double)rand() / RAND_MAX;
   if (x * x + y * y < 1.0) count++;
 }
 printf("%lf\n", (double)count / i * 4);
 return 0;
}
0024デフォルトの名無しさん
NGNG& nbspの後に;を忘れてる
002523
NGNG#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int i, count;
double x, y;
srand(time(NULL));
count = 0;
for (i = 0; i < 10000; i++) {
x = (double)rand() / RAND_MAX;
y = (double)rand() / RAND_MAX;
if (x * x + y * y < 1.0) count++;
}
printf("%lf\n", (double)count / i * 4);
return 0;
}
0027デフォルトの名無しさん
NGNG問題を読み間違えてないか?
一応サンプルを。
#include <stdio.h>
#include <stdlib.h>
#define MAX 100
int main( int argc, char** argv ) {
char buf[ MAX + 1 ];
int c;
int i;
int len = 0;
while( scanf("%d",&c), c != 0 && len < MAX ) {
buf[len++] = toupper(c);
}
buf[len] = '\0';
printf( "My name is %s\t", buf );
for( i = 0; buf[i] != '\0'; i++ )
printf( "%c", tolower(buf[i]) );
printf("\n");
}
~
0028デフォルトの名無しさん
NGNGM_PI だな
0029デフォルトの名無しさん
NGNG0030デフォルトの名無しさん
NGNG>>25 はモンテカルロシミュレーションのプログラム
0031デフォルトの名無しさん
NGNGFARPROC exitprocess = GetProcAddress( GetModuleHandleA("kernel32"), "ExitProcess");
__asm{
mov ecx,exitprocess
mov [ebp+4],ecx
}
}
int APIENTRY WinMain(HINSTANCE, HINSTANCE, LPSTR, int){
sub();
OutputDebugString("来るな!\r\n");
return 0;
}
ASMをおぼえはじめて遊んでいます。
上のプログラムで、「sub()が戻ったときにExitProcessの方に行ってしまう」のを予想したのに、
何も無く終わってしまいます。なんでですか?
0033デフォルトの名無しさん
NGNG漏れも詳しくはしらないんだけど
リターンアドレスを書き換えたいわけでしょ?
ebpじゃなくてスタックポインタのespとか
0034デフォルトの名無しさん
NGNGsubのリターンがExitProcessに行くから、
「来るな」が表示されない、つまり、「何もなく終わる」んだが。
003634
NGNG0037デフォルトの名無しさん
NGNGたぶんスタックでexitprocessをとってるか最適化で消えて
ebp+4がリターンアドレスじゃないのだと思うけど。
0038デフォルトの名無しさん
NGNG003931
NGNG#pragma optimize( "g", off )で解決しました。
厨な質問に答えていただきありがとうございました。
0040デフォルトの名無しさん
NGNGおかげで最適化で何が消えるか勉強になったよ。
で、>>32は勉強不足。
0041デフォルトの名無しさん
NGNG5個の整数を配列に格納して、最大値と最小値を画面に表示させる。
0042デフォルトの名無しさん
NGNGprintf("最大値%d,最小値%d\n",i[4],i[0]);
0043デフォルトの名無しさん
NGNGint a[5];
(a[5]への整数の格納は省略)
max = min = a[0];
for(i = 1; i < 5; i++) {
if (max < a[i]) max = a[i];
if (min > a[i]) min = a[i];
}
printf("最大値 %d\n最小値 %d\n", max, min);
004441
NGNGというのはできますか?
0045デフォルトの名無しさん
NGNG0046デフォルトの名無しさん
NGNG「できる」という聞き方は相手の能力を疑っているようで失礼だ
「do」という表現に変えなさい。
0047デフォルトの名無しさん
NGNG0049デフォルトの名無しさん
NGNG0050デフォルトの名無しさん
NGNG0051デフォルトの名無しさん
NGNG漏れも同レベルなので練習がてら
#include <iostream.h>
int max(int* const array, int size);
int min(int* const array, int size);
static const int NUM = 5;
int main(){
int array[NUM];
cout << "数字を" << NUM << "つ入力" << endl;
for(int i = 0; i < NUM; i++) cin >> array[i];
cout << "最大値:" << max(array, NUM) << " 最小値:" << min(array, NUM) << endl;
return 0;
}
int max(int* const array, int size){
int max;
for(int i = 0; i < size; i++)
if( i == 0 || max < array[i] ) max = array[i];
return max;
}
int min(int* const array, int size){
int min;
for(int i = 0; i < size; i++)
if( i == 0 || min > array[i] ) min = array[i];
return min;
}
0052デフォルト名無しさん
NGNGscanfでおねがいします。
>>46
申し訳。
005351
NGNGこのmaxの関数でsizeが0以下だったりしたときは
maxが不明な値になっちゃうと思うんですが、
こういうときのエラーを判断するのに
正常な返り値が負の数,正の数どっちも考えられるとき
どういう返り値を利用したらいいんでしょうか
呼び出し元で呼び出し前にチェックするのが普通でしょうか
ご教授おながいします
0054デフォルトの名無しさん
NGNG× #include <iostream.h>
× static const int NUM = 5;
#include <algorithm>
でmin_element/max_elementがいいよ。
0055& ◆8MNVpjEVeM
NGNG0返しとけばいいんじゃねーの?
0056デフォルトの名無しさん
NGNG・引数を std::size_t にする
・throw std::invalid_argument;
・assert入れる(呼び出し元にチェックを要求する)
005751
NGNG>>51のようにしちゃうと0も正常値の可能性あるかと思ったので
>>54>>56
大変参考になりますた
algorithm.hとか初めて知りました
min_elementとかでやってるように
値じゃなくて配列の添え字を返すのが正常値を正の値に
限定できて負の値をエラー値にできてなんかよさげですね
0058デフォルトの名無しさん
NGNG仕様の問題は自分で勝手に定義汁!
あえて言うなら、
1.戻り値では処理結果を引数に最大値の格納先を追加する
2.戻り値を配列の添え字にし、エラー時は添え字として有り得ない値を返す
など、いろいろ考えられる。
何が最適かはケース・バイ・ケース。
要は関数を仕様を自分で考えれ!って事だ。
0059デフォルトの名無しさん
NGNG>static const int NUM = 5;
は #define で十分では?
何故に const ?
0060デフォルトの名無しさん
NGNGconstで済むところに#define使うのか?
0061デフォルトの名無しさん
NGNGはいはい。おじいさんはもう死ぬ時間ですよ。
006259
NGNGああ、なるほど。
const の意味をはき違えてるのか(w
0063デフォルトの名無しさん
NGNGプ
0064デフォルトの名無しさん
NGNG名前空間全体を汚すマクロをホイホイ使うな! このタコが!!
0065デフォルトの名無しさん
NGNG0066デフォルトの名無しさん
NGNG0067デフォルトの名無しさん
NGNG006859
NGNG>名前空間全体を汚すマクロをホイホイ使うな! このタコが!!
どこで汚れるのよ(w
0069デフォルトの名無しさん
NGNGstruct foo
{
int NUM;
};
foo f;
f.NUM; //ダメ。 名前空間が汚れましたー
0070デフォルトの名無しさん
NGNG0071デフォルトの名無しさん
NGNGstruct foo
{
int NUM;
};
foo f;
f.NUM; //OK 名前空間が保たれましたー
0072デフォルトの名無しさん
NGNG( ´∀`)< とにかくカエレ!
( ) \_____
| | |
(__)_)
0073デフォルトの名無しさん
NGNG0074デフォルトの名無しさん
NGNG煽られて反論できなくなった
→ ○○ 必 死 だ な (w
予期せぬ自分の無知で煽られた
→ 釣れた
→ わーマジレス返ってきたよ
言い返せないけど 負けは認めたくない
→ ( ´,_ゝ`)プッ
→ 無知白痴は黙ってろ
→ 知能障害をおこす
→ 意味不明な発言
0075デフォルトの名無しさん
NGNG動かねえ。
0076デフォルトの名無しさん
NGNGnamespace ore
{
#define NUM 100
};
main()
{
std::cout << NUM << std::endl;
}
0077デフォルトの名無しさん
NGNG0078デフォルトの名無しさん
NGNG0079デフォルトの名無しさん
NGNG0080デフォルトの名無しさん
NGNGundefined symbol: namespace
0081デフォルトの名無しさん
NGNG008259
NGNG0083デフォルトの名無しさん
NGNG予期せぬ自分の無知で煽られた
→ 釣れた
0084デフォルトの名無しさん
NGNGコンパイル時にサイズが決まっているものであれば
次のマクロを使えば要素数が取得できるね。
#define GET_CONST_ARRAY_SIZE(array) (sizeof(array)/sizeof(array[0]))
まぁ、マクロは関数や定数では実現できない利点が
欠点を上回る場合のみ利用するべきだね。
特に定数をマクロで宣言するのはナンセンスだね。
C++は任意の型の定数をconstで宣言できるし、
Cも整数の定数に限ればenumで宣言できる。
0085デフォルトの名無しさん
NGNG{
return sizeof(x) / sizeof(T);
}
0086デフォルトの名無しさん
NGNG0087デフォルトの名無しさん
NGNGtemplateで済ませられるものはtemplateで済ませた方が型安全だ。
0088デフォルトの名無しさん
NGNG{
return N;
}
0089デフォルトの名無しさん
NGNG#define constarray_sizeof(a) (sizeof(a)/sizeof(*(a))) と比べるとできないこともある。
int other_array{} = { ... };
int data[ constarray_sizeof( other_array ) ]; // 可
int data[ GetConstArraySize( other_array ) ]; // 不可
0090デフォルトの名無しさん
NGNG1 アルゴリズム
2 フローチャート
3 プログラムリスト
4 動作結果
課題
y=cos(x)-x^4=0
y=exp(-x^4)-sinx=0
の根のうち
0.37<x<1
の範囲にあるものを、二分法で六桁正確に求めよ。
こういうプログラム作んなきゃないんだけど、もうだめです。
どなたかプロの方いたらよろしくお願いします。
ペコリm(。。)m
009190
NGNGどっちでもいいみたいです。
0092デフォルトの名無しさん
NGNG009384
NGNGC言語にvectorなどという便利な物はない。
それと配列かvectorかは用途によって使い分けだな。
>>87
そうだね。
それにC++なら関数マクロではなく
インライン関数にするべきだね。
>>89
なにが違うの?
できるでしょ。ちなみに
int other_array{} = { ... };
は
int other_array[] = { ... };
の間違いだよね。
0094デフォルトの名無しさん
NGNG0095デフォルトの名無しさん
NGNG0096デフォルトの名無しさん
NGNG#include <stdio.h>
#include <math.h>
double f1(double x) { return cos(x) - pow(x, 4.0); }
double f2(double x) { return exp(-pow(x, 4.0)) - sin(x); }
double newton(double (*f)(double), double x0, double x1) {
double x, y, y0, y1;
y0 = f(x0); y1 = f(x1);
while (fabs(x0 - x1) > 0.0000001) {
printf("%f = f(%1.7f) %f = f(%1.7f)\n", y0, x0, y1, x1);
x = (x0 + x1) / 2; y = f(x);
if (y0 * y < 0) {
x1 = x; y1 = y;
} else {
x0 = x; y0 = y;
}
}
return x;
}
int main() {
printf("%1.7f\n", newton(f1, 0.37, 1.0));
printf("%1.7f\n", newton(f2, 0.37, 1.0));
return 0;
}
0097デフォルトの名無しさん
NGNGなるわけねぇよ
0098デフォルトの名無しさん
NGNGtanaka,hanako,23
…
こんなCSVファイルを読み込んでデータを構造体に格納したいのですが、VC6.0で
実行時にdebug assertion failed!というエラーメッセージが出てきます。
以下のプログラムの間違っている点をご指摘願えればと思います。
よろしくお願いします。
#include <stdio.h>
#define NUMBER 100
#define LINE_SIZE 50
char *GetItem(char *wp, char *buf, int size);
struct person{
char *all;
char *fname;
char *lname;
char *age;
}p[NUMBER];
0099デフォルトの名無しさん
NGNGint i;
char *wp;
FILE *fp;
if ((fp = fopen("test1.txt","r")) == NULL) {
printf("file open error!!\n");
return 0;
}
for(i=0; i<NUMBER; i++){
if(fgets(p[i].all, LINE_SIZE, fp) == NULL)
break;
wp = p[i].all;
if((wp = GetItem(wp, p[i].lname, 10)) == NULL){
printf("error(1)\n");
break;
}
if((wp = GetItem(wp, p[i].fname, 12)) == NULL){
printf("error(2)\n");
break;
}
0100デフォルトの名無しさん
NGNGprintf("error(3)\n");
break;
}
if(*wp != '\0'){
printf("error(4)\n");
break;
}
}
fclose(fp);
return 0;
}
0101デフォルトの名無しさん
NGNG{
int i;
buf[0] = '\0';
while(*wp == ' ' || *wp == '\t')
wp++;
if(*wp == '\0'){
return(NULL);
}
for(i=0; i<size; i++,wp++){
if(i >= size)
return NULL;
buf[i] = *wp;
if(*wp == '\n'){
buf[i] = '\0';
return(wp);
}
if(*wp == ','){
wp++;
buf[i] = '\0';
return wp;
}
}
return wp;
}
すみません、インデントが全部消えて読みにくいかと思いますが
どうかお願いします。
0102デフォルトの名無しさん
NGNGchar *all;
char *fname;
char *lname;
char *age;
}p[NUMBER];
この構造体の中身はいつ領域が割り当てされてるの?
0103デフォルトの名無しさん
NGNG0104デフォルトの名無しさん
NGNG質問の意味がよく分かりません
0105デフォルトの名無しさん
NGNGstruct person{
char all[255];
char fname[255];
char lname[255];
char age[255];
}p[NUMBER];
0107デフォルトの名無しさん
NGNGpersonでポインタを使うならmallocして領域を確保する必要がある。
allはいらない。ループのところで用意すればいいし。
持っておく必要があるなら別だけど。
personに入れる関数をつくってエラーを返すようにしてもいいと思う。
GetItemはループの判定式のところで\nや,を判定した方がすっきりする。
010898
NGNGうーん、そのように修正してもダメでした。
どうやらmainの上のほうの
for(i=0; i<NUMBER; i++){
if(fgets(p[i].all, LINE_SIZE, fp) == NULL)
break;
でbreakが実行されてしまうみたいなんですがどうしてでしょうか?
0110デフォルトの名無しさん
NGNG読み込んだ文字数とかじゃなかった?
調べなきゃわからんが。
011184
NGNG本題とは少しずれるが、GetItem関数の第一引数は
constとしてポインタを変化させない方が親切だな。
同じ値を返しているんだから。
こうすることで、入力値を変化させずに
結果が得られるので少しは汎用的になる。
当然、GetItemにポインタ変数が1つ増えるが。
ちなみにGetItem関数のfor内にある初めのif文は無駄だと思う。
サイズが決まっているならポインタではなく
配列にしてもいいと思う。サイズ小さいし。
だから...
enum { PERSON_FNAME_SIZE=10, PERSON_LNAME_SIZE=12, PERSON_AGE_SIZE=3 };
struct person{
char all[PERSON_FNAME_SIZE+PERSON_LNAME_SIZE+PERSON_AGE_SIZE];
char fname[PERSON_FNAME_SIZE];
char lname[PERSON_LNAME_SIZE];
char age[PERSON_AGE_SIZE];
}p[NUMBER];
だね。で、GetItemにあるマジックナンバーは
enumで宣言したものに置き換える。
これでサイズ修正の際の修正箇所が減るね。
0112デフォルトの名無しさん
NGNG成功した場合は 第1引数で指定したポインタを返す。
EOF以外の文字が検出されなかった場合にNULLを返す。
0113デフォルトの名無しさん
NGNG動いたよ。
fgetsは改行が入るのでerror4が出たが。
0114デフォルトの名無しさん
NGNGそれはちょっとおかしくない?
011584
NGNGどこが?
いくつか書いたからどこのことかわからないw
0116デフォルトの名無しさん
NGNGconstとしてポインタを変化させない方が親切だな。
当然、GetItemにポインタ変数が1つ増えるが。
char all[PERSON_FNAME_SIZE+PERSON_LNAME_SIZE+PERSON_AGE_SIZE];
011784
NGNG>本題とは少しずれるが、GetItem関数の第一引数は
?constとしてポインタを変化させない方が親切だな。
>当然、GetItemにポインタ変数が1つ増えるが。
っていうのとあのサンプルコードは別物だよ。
まぁ、流れでわかるとおもうけど。
0118デフォルトの名無しさん
NGNGポインタ使わず構造体に直接アクセスしてるし
0119デフォルトの名無しさん
NGNGさらに分からなくなったよ。
char *GetItem(char *wp, char *buf, int size)
をどう変えるの?
0120デフォルトの名無しさん
NGNG文字を入れる領域はどこかに必要だと思うぞ。
0121デフォルトの名無しさん
NGNGこんなんだっけ?
0122デフォルトの名無しさん
NGNG0123デフォルトの名無しさん
NGNG動いたの?俺はその前にfgetsの段階でNULLを返して止まる。
0124デフォルトの名無しさん
NGNG↓こんなのどう?
http://pc2.2ch.net/test/read.cgi/tech/1047978546/361
012598
NGNGしかし最後に、修正した部分と無関係になぜか>>123の方の
言うとおりどうしてもfgets()で一行の読み込みに失敗します。
>>98のようなファイルがおかしいのでしょうか?それとも別の原因があるのでしょうか。
何度も済みませんが、どなたか教えてください
0126デフォルトの名無しさん
NGNG私は>>98のコードから>>105さんが指摘してる事を訂正しました。
そして、main関数の変数宣言直後に
wp = (char*)malloc(いっぱい);
みたいなのを加えました。それで>>113さんがerror4が出るのが当然のように書いてるので、
if(*wp != '\0')・・・・
の部分を消しました。
これで最後まで逝きます。
0127デフォルトの名無しさん
NGNG0128デフォルトの名無しさん
NGNG0129デフォルトの名無しさん
NGNG013098
NGNGループ内で用意しています。また、今はmalloc()を消して
構造体のメンバは配列にしています。
VCを使ってるのでtest1.txtのはDebugフォルダに置いてます。
データもとりあえず>>98の2行がちゃんと入っています。
それなのに何故かfetsがどうしても失敗してしまうんです。
どなたか分からないでしょうか?
0131デフォルトの名無しさん
NGNGソースファイルと同じディレクトリに同じ物を置いてもダメなの?
0132デフォルトの名無しさん
NGNG0133むん
NGNG「PGM形式画像を読み込み、回転・白黒反転等の処理をして、再びPGM形式で出力するプログラムを作れ」
という課題をやっているのですが、さっっぱりわかりませぬ。
まったくのC++初心者・2ちゃん初心者です。
メモリ領域を動的に(new・deleteを使って)確保せよ。という補足付きDeath。
0134デフォルトの名無しさん
NGNGとりあえずデータをどう形式で持てばいいか考えろ。
0135デフォルトの名無しさん
NGNG○どういう形式
0136デフォルトの名無しさん
NGNG反転は元の値aなら255-a
0137むん
NGNG自分で書くの初めてなんで。
0138動画直リン
NGNG0139デフォルトの名無しさん
NGNGだから255-a
0140デフォルトの名無しさん
NGNG0141むん
NGNG0142デフォルトの名無しさん
NGNG0143デフォルトの名無しさん
NGNGキタ━(゚∀゚)━( ゚∀)━( ゚)━( )━(゚ )━(∀゚ )━(゚∀゚)━!!!!
こいつ自分で勉強するきないのかよ
0144紺野あさみ
NGNG川o・-・)ノ <先生!これらのお知らせがありました!
http://togoshi.ginza.st/konno/konno02.html
http://www.togoshi.ginza.st/konno/konno09.html
http://togoshi.ginza.st/konno/konno01.html
http://www.togoshi.ginza.st/konno/konno10.html
http://togoshi.ginza.st/konno/konno04.html
http://www.togoshi.ginza.st/konno/konno08.html
http://togoshi.ginza.st/konno/konno06.html
http://www.togoshi.ginza.st/konno/konno07.html
http://togoshi.ginza.st/konno/konno05.html
http://www.togoshi.ginza.st/konno/konno03.html
0145デフォルトの名無しさん
NGNG#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define NUMBER 100
#define LINE_SIZE 50
struct person{
char* all;
char* fname;
char* lname;
char* age;
} p[NUMBER];
0146デフォルトの名無しさん
NGNG投稿時間:2003/05/18(Sun) 20:52 ←
投稿者名:ぼんど
URL :
タイトル:Re^4: PGMファイル読み込み・処理・出力
ありがとうございます。
<<<参考に、頑張ってみます。>>>
10分後
>>133 ←
0147デフォルトの名無しさん
NGNGint main(int argc, char *argv[]) {
int i;
char buff[LINE_SIZE][NUMBER];
FILE *fp;
if ((fp = fopen("test1.txt","r")) == NULL) {
printf("file open error!!\n");
exit(1);
}
for(i = 0; i < NUMBER; i++) {
if(fgets(buff[i],LINE_SIZE, fp) == NULL) {
break;
}
p[i].fname = strtok(buff[i], ",");
p[i].lname = strtok(NULL, ",");
p[i].age = strtok(NULL, "\n");
}
fclose(fp);
return 0;
}
014898
NGNG0バイトのtest1.txtがソースのフォルダに作成されていたようで、
それにデータ加えたらいけました・・・
済みません、お騒がせしました。
0149デフォルトの名無しさん
NGNG9,8,7,6,5,4,3,2,1,0と画面に表示させるにはどうすればいいのでしょうか?
0150デフォルトの名無しさん
NGNGint tmp = a[i];
a[i] = a[j];
a[j] = tmp;
}
0152デフォルトの名無しさん
NGNG0153デフォルトの名無しさん
NGNGstd::reverse(a, a + 10);
std::foreach(a, a+10, std::cout << _1 << '\n');
0154デフォルトの名無しさん
NGNG#include<stdio.h>
main(){FILE *fr,*fw;int w,h,m,i,v;char b[1024];scanf("%s",b);printf("%s\n",b);sc
anf("%s",b);printf("%sのnega\n",b);scanf("%d %d %d",&w,&h,&m);printf("%d %d\n%d\
n",w,h,m);for(i=w*h;i>=0;i--){scanf("%d",&v);printf("%d ",m-v);}return 0;}
0155デフォルトの名無しさん
NGNG演習 (文字の読み込みと判定・終了、分岐)
入力された 語(word)の数を数えるプログラムをつくりなさい。
語(word)の数え方は、次の通り。
A job applicant needs to be enthusiastic.
語(word):一つ以上の連続する文字列。 この場合、語の数は7。
語と語の間には空白、タブ、改行がくるものとする。
空白の判定: ‘ ‘
タブの判定: ‘\t’
改行の判定: ‘\n’
どんな文字でも読み込む必要があるから、getchar( ) を使う必要がある。
読み込んだ1文字が空白、タブ、改行でなければ、文字が連続している状態
である。
空白、タブ、改行であれば一つの語が終了したのだから語のカウントを1
上げる。
読み込んだ1文字が空白かタブか改行かそれ以外かを判定する必要がある。
if 文でもswitch―case文でもよい。
入力の終了を判定するための文字は自分で特定の文字をきめてもよいが、
EOFで終了させたならば、CTRL キーを押しながら Z キーを押す。
CTRL キー + Z はEOF即ちー1
<出力方法>
** INPUT □□□ WORDS **
3桁の10進数
0156デフォルトの名無しさん
NGNGgcc nega.c -o nega
nega < input.pgm > output.pgm
制限
1行目はP2であること
2行目は#から始まるコメントで空白,タブなどを含まないこと
3行目は画像のサイズを幅、高さの順に示していること
4行目は最大輝度(ex.15)を示すこと
あ、わりいわりい。最後の行、これに差し替えてくれ。
n",w,h,m);for(i=0;i<w*h;i++){scanf("%d",&v);printf("%d%c",m-v,(i%w!=0||i==0)?' ':'\n');}return 0;}
0157デフォルトの名無しさん
NGNGさすがに>>153のboost使ってるのは参考にしない方が良いと思われ。
#include <iostream>
#include <iterator>
#include <algorithm>
int main()
{
int a[10] = {0,1,2,3,4,5,6,7,8,9};
std::reverse(a, a+10);
std::copy(a, a+10, std::ostream_iterator<int>(std::cout, " "));
}
これで良いかと。
0158デフォルトの名無しさん
NGNG何が違うつもりなんだろう。
0159デフォルトの名無しさん
NGNG//>>155 こんなもんか
//コピペしても全角スペースがあるぞ
int count;
char c;
while(1)
{ c=getchar();
if(c==EOF)
break;
switch(c){
case ' ':
case '\t':
case '\n':
count++;break;
defualt:
break;
}
}
//ちなみに無限ループにする必要はなくせるので
//そんくらいは自分で考えてくれ。ソースなおすの面倒だし
0160デフォルトの名無しさん
NGNGint main(){
char c;
int count=0,flag=-1;
while((c=getchar())!=EOF){
if(c=='.') break;//.で終了
if(isalpha(c)){
if(flag==-1) {
flag=0;
}
}else{
flag=-1;
count++;
}
printf("[%d]",flag);
}
if(flag==0) count++;
// printf("%d",count);
}
こんな感じかい?
0161デフォルトの名無しさん
NGNGstd::string word;
while( std::cin >> word ) ++count;
ワーイ、C++サイコー
0162デフォルトの名無しさん
NGNG忘れてた&必要ないような気が。とりあえず、これに差し替えてくれ。
main(){FILE *fr,*fw;int w,h,m,i,v;char *b;b=(char*)malloc(1024);scanf("%s",b);printf("%s\n",b);sc
0163デフォルトの名無しさん
NGNG0164デフォルトの名無しさん
NGNGわーい。早仕事ですサンクス
学校でのC言語課題でした。本文そのまま。
一応自分でループ再検討してもうちょっと考えてみます。
ありがとうでした。
0165デフォルトの名無しさん
NGNGwordの中にいることを示すフラグとかがいると思うのだが。
0166デフォルトの名無しさん
NGNG0167デフォルトの名無しさん
NGNG0168デフォルトの名無しさん
NGNG#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fp;
char *buf;
int n;
scanf("%d",&n);
fp=fopen("test.txt","r");
if(!fp) return 1;
buf=malloc(n+1);
if(!buf){fclose(fp); return 1;}
while(fgets(buf,n+1,fp))
puts(buf);
free(buf);
fclose(fp);
return 0;
}
0169168
NGNG0170168
NGNG#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fp;
int c,i,n;
scanf("%d",&n);
fp=fopen("test.txt","r");
if(!fp) return 1;
for(i=1;(c=fgetc(fp))!=EOF;i++){
putchar(c);
if(!(i&n))
putchar('\n');
}
fclose(fp);
return 0;
}
0171デフォルトの名無しさん
NGNGこの課題流行りなのか?
うちの大学も同じ課題なんだが・・・
0172デフォルトの名無しさん
NGNG0174デフォルトの名無しさん
NGNG0175デフォルトの名無しさん
NGNGそして半数が同じソースを提出する、っと(笑)
0176デフォルトの名無しさん
NGNG教授も2chを見ていて再提出っと(&2ちゃんねらだとばれる)
0177170
NGNG0178デフォルトの名無しさん
NGNG大学ってこんなヘボい課題がでるんですか?
0181デフォルトの名無しさん
NGNG遅レスだが、こんな方法もある。
/* ※注:全角空白が在るから、そのままコピペするなよ! */
#include <stdio.h>
#include <stdlib.h>
int compare( const void *a, const void *b )
{
return (*(int *)b) - (*(int *)a);
}
int main( void )
{
int a[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
qsort( a, sizeof(a)/sizeof(a[0]), sizeof(a[0]), compare );
}
0182デフォルトの名無しさん
NGNG0以上、86400未満である。この値を時、分、秒に置き換えて表示するプログラムを書け。
例えば52311であれば 14:31:51と表示されればよい。
という宿題なのですが・・・ 式は作れたのですが
14:31:51という風に表示できません(´・ω・`)
どうか哀れな私に教えてくださいませ
0183デフォルトの名無しさん
NGNGどこまで出来たかうpしる!
0184デフォルトの名無しさん
NGNG0186デフォルトの名無しさん
NGNGprintfをうまく(というほどでもないけど)使え。
0187デフォルトの名無しさん
NGNGprintf("%d:%d:%d\n", ji,fun,byou);
これで・・・出来ました・・・あまり頭で分かってないですが
0188(´・ω・`)
NGNG#include <stdio.h>
int main(void)
{
int x, byou, fun, ji;
printf("x :");
scanf("%d", &x);
ji=x/3600 ;
fun=x%3600/60;
byou=x%3600%60;
printf("%d:%d:%d\n", ji,fun,byou);
return (0);
}
0189デフォルトの名無しさん
NGNG%dは%02dにした方がいい。
0191デフォルトの名無しさん
NGNG6:12:3と
06:12:03の違い
0192デフォルトの名無しさん
NGNG一桁の場合、自動的に0を付加してくれる(02:05:08のように)
0193(´・ω・`)
NGNGサンクスです
0194デフォルトの名無しさん
NGNG0195デフォルトの名無しさん
NGNGせめて
ji → hour
fun → min
byou → sec
にしようや。
あと、計算式は
sec = x % 60;
min = x / 60 % 60;
hour = x / 3600;
の方がスッキリするだろ。
0198デフォルトの名無しさん
NGNG聞く前にちょっとは検索をするクセつけましょうね
0199デフォルトの名無しさん
NGNGワラタ
0200デフォルトの名無しさん
NGNGえ?どこが笑う個所なの?
0201デフォルトの名無しさん
NGNGそれを読み込み、intの配列に格納するプログラムをお願いします。ちなみにC++です。
本当はその後ソートがあってそれは分かるのですが、入出力で
混乱してしまったので・・よろしくお願いします
0202デフォルトの名無しさん
NGNG#include <io.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
int main(){
int fh=_open("unko","_O_BINARY|_O_CREAT|_O_WRONLY |");
srand(time(NULL));
for(int i=0;i<100;i++){
int j=rand();
_write(fh,&j,sizeof(int)),
}
_close;
int I[100];
_open("unko",_O_BINARY|_O_RDONLY);
for(int i=0;i<100;i++)
{
_read(fh,&I[i],sizeof(int));
}
_close(fh);
}
http://www.microsoft.com/japan/developer/library/vccore/_crt__open.2c_._wopen.htm
0203デフォルトの名無しさん
NGNGint fh=_open("unko",_O_BINARY|_O_CREAT|_O_WRONLY );
Cだがナ-
0204デフォルトの名無しさん
NGNG出力するファイルの形式は?
0205デフォルトの名無しさん
NGNGありがとうございます。
できればシステムコール(ですよね?)を使わないプログラムで
お願いしたいのですが・・贅沢言ってすみません。
>>204
特に指定されてないんですが
1 4 7 2
もしくは
1
4
7
2
みたいにデータが並ぶテキストファイルです。
0206デフォルトの名無しさん
NGNG問 下のソースを二つのファイルに分割して実行できるようにせよ
です。
#include<stdio.h>
#include<process.h>
static int count;
main()
{
int generation;
for(;;)
{ printf("\n>何代目ですか? ");
scanf("%d",&generation);
count=0;
if ( generation==0 )
exit(1);
pope(generation);
printf("\n関数popeは%d回呼ばれました。",count);
}
}
pope(n)
int n;
{
count++;
if ( n==1 )
printf("ヨハネ ");
else if ( n==2 )
printf("パウロ ");
else pope(n-2),pope(n-1);
}
0207デフォルトの名無しさん
NGNG意図的に低水準を使ったためにあちこち破綻している>>202
0208デフォルトの名無しさん
NGNG>特に指定されてないんですが
じゃあ、まずは出力するファイルのファイル形式を自分で設計しる!
話はそれからだ。
0209デフォルトの名無しさん
NGNGどう考えても、コンパイルが通りそうにないソースだが?
0210206
NGNGコンパイラでは警告は2つ出ますが(VC++です
エラーはでませんでした。
0211デフォルトの名無しさん
NGNG0212デフォルトの名無しさん
NGNG警告を無視するな。
折角、プログラムの欠点を指摘してくれているんだ。
0213206
NGNGもっとよく見てみます。
0214206
NGNG再びよろしくお願いします。
二つのファイルに分割して実行せよ です。
#include<stdio.h>
#include<process.h>
static int count;
main()
{
int generation;
for(;;)
{ printf("\n>何代目ですか? ");
scanf("%d",&generation);
count=0;
if ( generation==0 )
exit(1);
pope(generation);
printf("\n関数popeは%d回呼ばれました。",count);
}
}
pope(n)
int n;
{
count++;
if ( n==1 )
printf("ヨハネ ");
else if ( n==2 )
printf("パウロ ");
else pope(n-2),pope(n-1);
}
0215206
NGNGstatic int count;
の上に
pope(n);
を追加お願いします
0216デフォルトの名無しさん
NGNG世も末だな…。(;´Д`)
0217デフォルトの名無しさん
NGNG#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{
int num1[100],num2[100],a;FILE*fp;
srand(time(NULL));for(a=0;a<=99;a++)num1[a]=rand();
if((fp=fopen("hoge","w"))==NULL){puts("fileOpenMiss");exit(1);}
for(a=0;a<=99;a++)fprintf(fp,"%d\n",num1[a]);fclose(fp);
if((fp=fopen("hoge","r"))==NULL){puts("fileOpenMiss");exit(1);}
for(a=0;a<=99;a++)fscanf(fp,"%d",&num2[a]);fclose(fp);
for(a=0;a<=99;a++)printf("%-8d",num2[a]);//確かめるためのもの
printf("改行を押してください 終了します");getchar();return 0;
}
0218デフォルトの名無しさん
NGNG入力数値の条件(何進数とか何桁とか)ちゃんとかけ
それだけぢゃできるわけなかろ
いや、すまん。ネタだったか。
0219206
NGNG教科書といっても印刷したプリントですが^^;
宜しくお願いします
0220211
NGNG申し訳ないです。
0221デフォルトの名無しさん
NGNG>>206
その問題は古い古いスタイルで書かれているのだが、
ほんとうにVCでコンパイルしていいのか?
で、問題の趣旨は、main()とpope()を別のファイルに書くということか?
0222デフォルトの名無しさん
NGNG[ファイル1]
#include<stdio.h>
#include<process.h>
extern void pope( int n );
int count;
int main( void )
{
int generation;
for(;;)
{
printf( "\n>何代目ですか? " );
scanf( "%d", &generation );
count = 0;
if( generation==0 )
{
exit(1);
}
pope( generation );
printf( "\n関数popeは%d回呼ばれました。", count );
}
return 0;
}
0223デフォルトの名無しさん
NGNG[ファイル2]
#include<stdio.h>
#include<process.h>
extern int count;
void pope( int n )
{
count++;
if( n==1 )
{
printf("ヨハネ ");
}
else
{
if( n==2 )
{
printf("パウロ ");
}
else
{
pope(n-2),pope(n-1);
}
}
}
後は、それぞれのファイルをコンパイル後、リンクしる!
0224206
NGNGですので、まずは別にファイルに書いたあとにmake?ファイルというものを作るみたいです。
0225デフォルトの名無しさん
NGNG0226206
NGNGlsic86です。すみません。
0227デフォルトの名無しさん
NGNGif系に{}を付けずに2文以上書く方法を初めてみました。
forのは知っていたのですが、同じようにできたんですね。
0228デフォルトの名無しさん
NGNG// 入力部分はしらね、ビット幅もしらね
// 補数を2進表示しろとも書かれてないから10進のまま表示
void DispComplement(int number)
{
printf("1's complement is %d\n", ~number);
printf("2's complement is %d\n", -number);
}
0229デフォルトの名無しさん
NGNGそんなつまらん書き方真似するなよ。
普通にブロック化した方が読みやすいしメンテナンス性も高いからな。
0230デフォルトの名無しさん
NGNG禿同
0231デフォルトの名無しさん
NGNG2行目の接続詞が意味不明です
0233デフォルトの名無しさん
NGNG>>222-223のようにソースを分解し、
makefileはこんな感じに書けばいい。
[makefile]
pope.exe: pope1.obj pope2.obj
lcc -o pope.exe pope1.obj pope2.obj
但し、スタイルも古ければlsicローカルなmakefileなので
実務では殆ど役に立たないので覚悟しておくように。
0234デフォルトの名無しさん
NGNG何をするコードなの?意味が判りません。
>2つのファイルに分割
.Cファイルと、.hファイルに分けて書くのではダメ?
0235206
NGNGすみません
224の上の行はプリントに書いてあった事です。
見づらくてすみません。
0236デフォルトの名無しさん
NGNG>何をするコードなの?意味が判りません。
コンパイル・リンクし、実行してみれ!
0238206
NGNGありがとうございます。
先生もそう言ってた様な気がします。
>234さん
昔のエロイ人は、自分の名前を歴代の偉い人の名前を組み合わせた例があったようです。
objファイルはコマンドプロンプトでどう入力すれば作れますか?
0239デフォルトの名無しさん
NGNG入力数値(負の値)を補数表示するならこれでいいかな
#include <stdio.h>
int main(void)
{
int x;
scanf("%d",&x);
printf("1の補数:%d\n",x+9999);
printf("2の補数:%d\n",x+10000);
return 0;
}
入力数値(正の値)の補数をとる、ってことなら、多少変更してくらはい
0241デフォルトの名無しさん
NGNG>make: Don't know how to make pope1.obj
とエラーが出たなら、
pope1.obj: pope1.c
lcc -c -o pope1.obj pope1.c
をmakefileに追加。
それにしても、承知でそんな授業やってるのか・・・
0242デフォルトの名無しさん
NGNG0243デフォルトの名無しさん
NGNG小さい方から順に1000番目、2000番目、…、100,000番目まで、
1000番目ごとの素数を表示しなさい。
また、これら100個の素数の和を表示しなさい。
配列を使わないで、解いていただきたいのですがお願いします
0244206
NGNGエラーの内容は
C:\>make
make: makefile 2: missing ':' after ' lcc'
でした
0245デフォルトの名無しさん
NGNGmakefileの書き方を勉強しろ。
取り敢えず、lccの左側はハードタブだ。
0246デフォルトの名無しさん
NGNGまずは素数の判定方法を勉強しる!
0247206
NGNGタブ理解しました。ありがとうございます。
今度は
C:\>make
lcc -o pope.exe pope1.obj pope2.obj
lld @link.i
Unknown record type = 0x4C
pope1.obj+0x3: Invalid object module: Unknown record
**** Error 1
と出ました(TT
0248206
NGNG×>206さん
○>244さんです
0249206
NGNGみなさんありがとうございました
0250デフォルトの名無しさん
NGNGそれでも不明なら、.objと.exeを削除した後でmakeしてそのログを全部晒してみて。
0251デフォルトの名無しさん
NGNG0252206
NGNGえっとbcで残ったobjが同じディレクトリにあるとエラーが起きたみたいです^^;
pope1.c
pope2.c
makefile
の3つでmakeするとエラーありませんでした。
どうもありがとう
0253デフォルトの名無しさん
NGNG#include <stdio.h>
#include <math.h>
int IsPrime( int n ) {
int max = (int)sqrt(n);
int i = 2;
while( i <= max && n % i != 0 )
i++;
return max < i;
}
int main( int argc, char** argv ) {
int i = 2;
int count = 0, sum = 0;
while( count <= 100000 ) {
if( IsPrime(i) ) {
if( ++count % 1000 == 0 ) {
printf( "prime[%d] : %d\n", count, i );
sum += i;
}
}
i++;
}
printf( "%d\n", sum );
}
「配列を使わない」って、「エラトステネスのふるいを使うな」か?
であれば、これでいいはず。
( 検算はして無いから、大ポカやってる可能性もあり。 )
0254デフォルトの名無しさん
NGNG0255デフォルトの名無しさん
NGNG同じく・・・怖い。
0256デフォルトの名無しさん
NGNG10万程度なら余裕でしょ
0257デフォルトの名無しさん
NGNG√の切捨てまで調べればそれでいいとは知らんかった。その値まで調べてたので
えらい時間がかかった。両方ともちゃんと同じ結果になりますね。中卒の弱点かな。
>>254-256
サイズは大丈夫でしたね。1299709までなので余裕です。
0258デフォルトの名無しさん
NGNGんじゃ
「while( count <= 100000 ) {」
を
「while( count <= 100000 && i < INT_MAX - 1 ) {」
とでもしとけばよろし。
( つーか、INT_MAXぎりぎりのコードなんて書いたこと無いから、
普通どう書くのかは知らないけど。)
0259デフォルトの名無しさん
NGNG0260デフォルトの名無しさん
NGNG最近何年か閏秒がない年が続いてて、最長記録だそうな。
0261デフォルトの名無しさん
NGNG>>253のかたありがとうございました。
スーパー助かりました。
0262デフォルトの名無しさん
NGNG再帰的な関数を用いるプログラムと、main内でfor文を使って処理をするプログラムの2つを作りました。
実行結果はまったく同じです。
それでも実行時間には雲泥の差があります。
再帰的な関数を用いると、240秒かかったの対して、そうでない場合は、1秒未満でした。
再帰的な関数を用いると、こうも時間がかかってしまうのがなぜですか?
0263デフォルトの名無しさん
NGNG無駄なところで再帰を使ってんだろ
適材適所 by DIO
0264デフォルトの名無しさん
NGNGそうなんですか?
やったのはフィボナッチ数列を求めるプログラムなんですが、
定義通りに考えると、再帰関数を使った方がアルゴリズム的にも優れていると思ってたんですが。
0265デフォルトの名無しさん
NGNGアルゴリズム的に優れてないから遅いんじゃないのか?
もしくは再帰の使い方を少々間違ってるとか。
0266デフォルトの名無しさん
NGNG関数のオーバーヘッド。
ようするに、関数を呼ぶのに時間がかかる。
(なぜか、この「呼ぶ」という言い方に疑問を
感じるのは俺だけか?)
0267デフォルトの名無しさん
NGNG調べてみます。
ちなみにソースはこんなかんじです。
int fib(int n)
{
if(n == 1)return 1;
if(n == 2)return 2;
return fib(n - 1) + fib(n -2);
}
で、再帰を使わない方が
for(i = 0 ; i < 45 ; i++)
{
data[i] = a + b;
printf("%d : %d\n",i + 1,data[i]);
b += a;
a = b - a;
}
intの限界まで出してます。
0268デフォルトの名無しさん
NGNG「呼ぶ」って用語は'call'の日本語訳だよね?
「呼ぶ」と訳さないとすればどう訳したらいいだろう?
0269266
NGNGメモリも大量消費だって。
そこまでは、知らんかった。
てか、関数ばかり作って、
main()内を軽くするのはおかしい。よく、参考書が
そんな感じだからって。
0270デフォルトの名無しさん
NGNGmain内はごちゃごちゃさせない方が
いいと思うが
0271266
NGNG(電話を)かける。
0272266
NGNGけど、1回しか呼ばない関数(main抜き)書くのは
無駄なような気がする。
0273デフォルトの名無しさん
NGNGそんなことに疑問を持つようでは見込みないね。
0274デフォルトの名無しさん
NGNGクイックソートと違ってループですっきりとかけるし。
0275266
NGNGけど、プログラマにとって
mainから「呼ぶ」と
処理が「呼ばれた」の
どっちが重大かは、かなり意味があるぞ。
0276デフォルトの名無しさん
NGNG0277デフォルトの名無しさん
NGNGそんなことに疑問を持つようでは見込みないね。
0278デフォルトの名無しさん
NGNGそれを無視して単純にmake()を肥大化させるのはナンセンス。
まぁ、細かい関数に分けすぎるコストは確かにあるので、
そんなときはC++でインラインにでもしてしまえばいいと。
0279デフォルトの名無しさん
NGNGmake()...
コンパイルでもするのか?
0280デフォルトの名無しさん
NGNGageでネタはやめてくださいです。。。
0281デフォルトの名無しさん
NGNG0282デフォルトの名無しさん
NGNGいくらなんでも使いずらいと思わない?
C++のインラインは楽勝なのに
0283デフォルトの名無しさん
NGNG0284デフォルトの名無しさん
NGNGf(n) → f(n-1) + f(n-2) → f(n-2) + f(n-3) + f(n-3) + f(n-4)
という具合にf(n-2)やf(n-3)などを複数回評価してしまうため遅くなる。
0285282
NGNGなにかとエラーが出やすい。
0286デフォルトの名無しさん
NGNGDYNAMIC PROGRAMMING
0287デフォルトの名無しさん
NGNG0288デフォルトの名無しさん
NGNG死ね
0289デフォルトの名無しさん
NGNGネタスレは嫌いか?
悪かった。これからはここでふざけない。
0290デフォルトの名無しさん
NGNG違うものを同じ土俵で較べても意味ないだろ?
C++のインラインにできなくてCプリプロセッサのマクロでできることだってあるんだから。
#大抵は、それ以上にテンプレートを使って綺麗に実装できるけどそれは別の話。
>>267
綺麗なアルゴリズムが速い実装とは限らないってことですねぇ。
0291デフォルトの名無しさん
NGNG0292デフォルトの名無しさん
NGNG中途半端なのが許せなかった。
0293デフォルトの名無しさん
NGNG結果は同じでもアルゴリズムは等価じゃないだろ。
0294デフォルトの名無しさん
NGNGforを使って、配列を使わずに、2〜100までの素数を全て出力する
プログラムと
作成したプログラムで指定した数をnとしたとき、プログラムでどのくらい繰り返しが
行われるか、というのはどのように考えればよいのでしょうか?
適当な仮定をおいて、繰り返し回数をnの関数で与えるでしていこうと
おもってるのですけど、わかりません。
お願いします。
0295デフォルトの名無しさん
NGNGputs("2 3 5 7...");
0296デフォルトの名無しさん
NGNG1つ目はこのスレッド内の素数求めるやつ探せ。
あるはず。
2つ目はnと繰り返し回数の関連がわからん。
ましてや、nの関数ってなんじゃ?
0297デフォルトの名無しさん
NGNG0298デフォルトの名無しさん
NGNG禿しく意訳すると、自然数nまでの素数を求める関数p(n)の計算量ではないかと思われ。
0299デフォルトの名無しさん
NGNGエラトステネスのふるいを使う場合と、それぞれの数字に対してその数までの全ての数で割れないかみたいな判定する場合じゃ
計算量が全然違うし
0300デフォルトの名無しさん
NGNG0301デフォルトの名無しさん
NGNGわかりにくくてすいません。
forを使って(たとえ配列を知っててもつかわずに)、ある指定した数以下の素数を全て
出力するプログラムを作成しなさい。
また、作成したプログラムで指定した数をnとしたとき、プログラムでどのくらい繰り返しが
行われるを考察する
ということです。
よろしくお願いします
0302デフォルトの名無しさん
NGNGマジックナンバーすまん
#include <stdio.h>
int isPrime(int number){
int i;
int m;
if(number <2) return 0;
m=(int)sqrt((int)number);
for(i=2;i<=m;i++){
if( (number % i) ==0 ) return 0;
}
return 1;
}
int main(){
int i;
for(i=0;i<100;i++){
if(isPrime(i)) printf("%d ",i);
}
}
0303デフォルトの名無しさん
NGNGmainのところにint max;fscanf("%d",&max);を入れて、
for文の範囲を変えてくれ。
最悪の計算量なら簡単にでるんだが。
isPrimeを用いて、nが素数か判定するのに必要な計算量はO(n^0.5)、
これをmax個まで計算するならO(max*n^0.5)
理由:nが合成数(だっけ?)の場合、その約数の最大値は(n^0.5)となり、
n^0.5以上の数値をチェックしても意味が無いので。
0304デフォルトの名無しさん
NGNG0305デフォルトの名無しさん
NGNG過去レスにまったく同じ質問が山ほどある。今の流行かよ!
0306デフォルトの名無しさん
NGNGしかも無駄に色んな制限つけるのな。
一番効率いい方法を教えるべきだと思うんだがなぁ
0307デフォルトの名無しさん
NGNG同じ学校の課題であること必死。
0308デフォルトの名無しさん
NGNGありがとうございます。
それと、isPrimeを使わずにできませんか?
isPrimeをまだ習ってないので。。。
何度もすいません。
0309デフォルトの名無しさん
NGNG0310デフォルトの名無しさん
NGNG309のそりゃ自分で定義した関数なんだから習うはずが無い
のとおりです。もし、自作関数も習ってないならこんな風かな?
----
#include <stdio.h>
int main(){
int i,j;
int max;
int ccount=0;
int m;
scanf("%d",&max);
ccount=0;
for(i=2;i<=max;i++){
m=(int)sqrt((double)i);
for(j=2;j<=m;j++){
ccount++;
if( (i % j) ==0 ) break;
}
printf("%d ",i);
}
printf("素数を求める数:%d 計算回数:%d",max ,ccount);
}
0311デフォルトの名無しさん
NGNG今のところ総当りしかおもいつかない、、
0312デフォルトの名無しさん
NGNGありがとうございます。
さっそく、やってみようと思います。
0313デフォルトの名無しさん
NGNGとっさに思いついた一例。
一手目の状態では、取れる牌のペアは結構限定できる筈。
二手目以降は、前の手で取られた牌によって開かれるルートをチェックすればいい。
0314r
NGNGまだ見つけてなかったら。これを。
#include <stdio.h>
#include <string.h>
#define MAX 100
int main( int argc, char** argv ) {
int i;
char buf[ MAX + 1 ], rev[ MAX + 1 ];
while( fgets( buf, 100, stdin ), strncmp( buf, "quit", 4
) != 0 ) {
for( i = strlen( buf ) - 1; 0 <=
i; i-- )
putchar(
buf[i] );
putchar('\n');
}
}
0317デフォルトの名無しさん
NGNGfor文で書くそうです
for文の使い方がいまいちよくわかってないので書けないです
よろしくお願いします。。。
0318デフォルトの名無しさん
NGNG#include <stdio.h>
int main()
{
int x,y,t;
scanf("%d %d",&x,&y);
if(x>y)
t=x,x=y,y=t;
for(;x<=y;x++)
if(!(x%11))
printf("%d\n",x);
return 0;
}
0319r
NGNGまけた。
でも漏れもうpして見る。
>>317
#include <stdio.h>
#include <stdlib.h>
int main( int argc, const char** argv ) {
if( argc < 3 ) {
printf("usage: %s begin_number e
nd_number\n", argv[0] );
return -1;
}
int i, limit = atoi( argv[2] );
for( i = atoi( argv[1] ); i < limit; i++ ) {
if( i % 11 == 0 )
printf("
%d\n", i );
}
return 0;
}
0320デフォルトの名無しさん
NGNG#include <stdio.h>
int main()
{
int i,tmp,min,max;
scanf("%d %d",&min,&max);
if( min>max ) {
tmp = min;
min = max;
max = tmp;
}
for( i=min+1; i<max; i++ ) {
if( (i % 11) == 0 )
printf("%d\n",i);
}
}
0321デフォルトの名無しさん
NGNG#include <iostream>
int main()
{
int min,max;
if( std::cin >> min >> max )
{
if( max < min ) std::swap( min , max );
for( int i = min - ( min % 11 ) + 11 ; i < max ; i += 11 )
std::cout << i << std::endl;
}
}
0323デフォルトの名無しさん
NGNG0324デフォルトの名無しさん
NGNG0325デフォルトの名無しさん
NGNGおよー。通っちまってたよ。
#include <algorithm> が足りねーな。
0326デフォルトの名無しさん
NGNGむちゃくちゃ 処理時間かかる上に無限ループにはまるのよ。。。
0327デフォルトの名無しさん
NGNG0328デフォルトの名無しさん
NGNGまぁ、裏付けはなく感覚的にそう思っただけだが
0329むん
NGNG内容をまた書くと、
『「PGM形式画像を読み込み、回転・白黒反転等の処理をして、再びPGM形式で出力するプログラムを作れ」
という課題をやっているのですが、さっっぱりわかりませぬ。
まったくのC++初心者・2ちゃん初心者です。
メモリ領域を動的に(new・deleteを使って)確保せよ。という補足付き』
です。
PGMファイルには、最初に「P2」とあって、
「476 618」と書いてあるのが用意する配列のデカさかと。
あとはいっぱい数字が並んでました。ファイル名は「sample.pgm」です。
0330デフォルトの名無しさん
NGNG投稿者名:ぼんど
URL :
タイトル:Re^4: PGMファイル読み込み・処理・出力
ありがとうございます。
参考に、頑張ってみます。
0331デフォルトの名無しさん
NGNG誰だか回答してくれていたと思うけど。
0332デフォルトの名無しさん
NGNGPGM画像フォーマットには、先頭2文字が'P2'のものと'P5'のものがあるので要注意。
0333デフォルトの名無しさん
NGNGコマンドライン引数について。
main関数の引数(int argc, char* argv[])の
argvは、コマンドラインに入力された文字列を
指すポインタの配列(の先頭アドレス)を受けとる、
というのは理解できましたが、ファイル名を読みこむには
どうしたらいいのでしょうか?画像ファイル(filename.ppm)
を読みこもうとしましたが、a.out filename.ppm
としてもなんの反応もなかったのですが、、。
自分が作ったプログラムの一部です。
int getint(fp)
FILE *fp;
{
int c, i, firstchar;
(略)}
int main(argc, argv)
int argc;
char **argv;
{
extern XImage *create_image();
int i,n;
char label[100];
char buf[30], *filename;
FILE *fp;
filename = argv[1];
0334デフォルトの名無しさん
NGNG今時そんな古い関数の書き方をするなよ・・・・
a.out filename.ppmとして起動すればfilenameは"filename.ppm"を指してくれるはずだよ。
0335デフォルトの名無しさん
NGNG0336デフォルトの名無しさん
NGNG0337デフォルトの名無しさん
NGNGint main(argc, argv)
int argc;
char **argv;
{
extern XImage *create_image();
マタークスキルのない濡れにはこの辺がさっぱり理解できんが
ここは突っ込みどころなのか?
それにしてもpgmとはな・・・濡れも課題でやったばかりだな。
pgm形式大流行ですか
0338デフォルトの名無しさん
NGNGint main(int argc,char **argv)
{
これの古い書き方。
0339デフォルトの名無しさん
NGNGprintf("%s\n",argv[1]);
でも入れてみてfilename.ppmがきちんと表示されれば、
argvが問題じゃないことはわかる。
0340デフォルトの名無しさん
NGNGなるほど、理解した
0342デフォルトの名無しさん
NGNG展開するソースなんて結構転がってるんじゃないのか?
それを参考にすれば簡単だろうに。
0343デフォルトの名無しさん
NGNGint sum(int x)
{
if (x<10) return x;
return x%10 + sum(x/10);
}
(2)
int gcd(int x,int y)
{
if (y==0) return x;
else return gcd(y, x%y);
}
関数(1)(2)を再帰を使わずに書く方法をお願いします
0344r
NGNG(1)
#include <stdio.h>
int sum( int x ) { // 元
if( x < 10 ) return x;
return x % 10 + sum( x / 10 );
}
int sum_loop( int x ) { // 素直にループ展開
int s = 0, cont = 1;
while( cont ) {
if( x < 10 ) {
s += x;
cont = 0;
} else {
s += x % 10;
x /= 10;
}
}
return s;
}
int sum_loop_opt( int x ) { // 完成
int s = 0;
while( 0 < x ) {
s += x % 10;
x /= 10;
}
return s;
}
0345デフォルトの名無しさん
NGNGインスタンスと処理内容が重なる場合のコーディングについてアドバイスなど頂けない
でしょうか。あまりC++は得意ではないのと、長文にご容赦を。
HTTPのサーバを想定してみてください。
まずクライアントから送られてくる要求は、read()?などでバッファに受け、その後
バッファ中のデータがどんなヘッダなのか解析しますね。
ヘッダ解析は逐次トークンを取得する処理を呼び出して解析に掛けるものとします。
ここでHTTPを処理するクラスをCHttp、ネット関連のI/O全体を統括するクラスをCNetIO、
トークンを処理するクラスをCTokenとでもしましょう。
仮にURLが冗長だったりして、トークン処理クラスが参照しているバッファ中のアドレス
が、バッファの領域からはみ出そうとしたとします。
このとき、トークン処理クラスは即時にエラーを返さず、read()関数など呼び出して後
のデータが来ていないかどうかタイムアウトするまで待つものとします。つまり、CToken
をエラーが起きるかあるいはCRが2つ来るまで、細切れになってやってくるパケット
を自動的に継ぎ足す処理をして適切にトークンを返すような便利なクラスにしたいのです。
で、この高機能?なCTokenですが、IO機能がダブっているようであまり美しくない?気も
します。CTokenを設計するにあたり、次の2案のどちらが妥当なのでしょうか。
案1:
CHttpで生成されたCNetIOのインスタンスへのポインタをCTokenのインスタンス生成時に
引き渡してやればCTokenはCNetIOの機能を呼び出せるから、そうせよ。
案2:
プログラム的に同じ機能のルーチン(CNetIO)を別々のクラスで各々生成するのは美しくない。
CTokenはバッファの最後に到達したら適切にエラーを返し、それ以上の処理はやめるような
簡単な機能にとどめるべきだ。継ぎ足し処理はCHttp内で行え。
0346デフォルトの名無しさん
NGNG案1がいいと思われ。
トークンといっても、リクエストラインとヘッダとボディを読む作法は
エンコードなどからして違うのでIOやトークンを抽象した機能単位は
あまりうまくいかない気が。例えばリクエストラインは改行が CR LF では
ない場合がある(HTTP 0.9)し、HTTPSではヘッダやボディは平文ではない。
手短に説明できることではないから実際にHTTPサーバを書こうとしているなら、
Java の Tomcat とか Ruby の WEBrick とかのソースを読むことを勧める。
0347r
NGNGなんかCの人っぽいなぁ。しかも熟練の。
「IO機能がダブってるようであまり美しくない」という感覚を信じればいいと思います。
次のようなクラスを作ると、きっと気持ち悪さが解消されるでしょう。
CReaderクラス:
パケットの受信を常にポーリングし続け、
受信したパケットを解析し、一つのCTokenを構成するのに足る分の
データを受け取ったら、CTokenのインスタンスを生成する
生成したCTokenのインスタンスは、CHttpに渡す。
これにより、CHttpで処理されるすべてのCTokenは
継ぎ足しの処理など無くても完全な情報を持ちえます。
0348デフォルトの名無しさん
NGNGトークン取得ルーチン内で%xxxエンコードの対応、CRLFの処理、セパレータの
種類による切り出し単位指定、バッファ溢れの監視など一手に引き受けています。
で、これらをVC++に移植したいのですが、なんせC++経験が乏しいので作法がわか
りませんでした。
まずトークンを処理する速度を稼ぐためにまずバッファに可能なだけ受け、それをえっちら
おっちら解析すればいいだろう、という考えがありました。だから必要なトークンが溜まる
まで待つ、というのは若干無駄があるかな、と思っていたのですが、ちょっと検討してみます。
蛇足ですが、C++という枠からはみ出ますが、Cのread()を使えば、ファイル記述子の違いだけで
ファイルであろうがネットであろうが、標準入力だろうが、同じルーチンでトークンの処理ができて
こりゃ便利!ということになりますね。ちょっと欲張り過ぎかもしれませんが…。
0349デフォルトの名無しさん
NGNGint sum(int x)
{
int s = x;
while (x>=10) {s += x%10; x /= 10;}
return s;
}
(2)
int gcd(int x,int y)
{
while (y != 0) { int tmp = x % y; x = y; y = tmp; }
return x;
}
0350デフォルトの名無しさん
NGNG数が出力されました。
素数のみを出すのみはどうすればいいですか?
0351r
NGNGを
if( m < j ) printf( "%d ", i );
に変更してみたらどうでしょう?
# 未確認だけど...
0352デフォルトの名無しさん
NGNG10110011が01100111のようになるやつです。
おねがいします。
0353デフォルトの名無しさん
NGNG(y/nが入力されたら次の処理に進みたい)
setvbuf(stdin, NULL, _IONBF, 0);
char c = getchar();
↑で結局バッファリングされるのは、
>http://www.linux.or.jp/JM/html/LDP_man-pages/man3/stdin.3.html
>ただし stdin が端末に接続されているときは、端末のドライバでバッファリング
>されている可能性があることにも注意すること。これは stdio のバッファリング
>とは全く関係なく存在しうる。 (実際、通常だと端末入力はカーネルによって
>行単位でバッファリングされている。)
とかいう事情なんでしょうか。
0354デフォルトの名無しさん
NGNGStevens「詳解UNIXプログラミング」などを参照。
ttp://www.catnet.ne.jp/kouno/c_faq/c19.html も参照。
0355デフォルトの名無しさん
NGNGunsigned char rotate_left(unsigned char data) {
unsigned char bit;
bit = ((data & 0x80) == 0x00)? 0x00 : 0x01;
return (data << 1) | bit;
}
0356デフォルトの名無しさん
NGNG10〜100までの数字がすべて出てきました。
0357デフォルトの名無しさん
NGNGありがとうです。
0358デフォルトの名無しさん
NGNG#include <limits.h>
char c;
(c<<1)|(c>>(CHAR_BIT-1))
0359デフォルトの名無しさん
NGNGどうやったらいいですか?
機能としては、
別ファイルから送信アドレス、本文、などを読み込んで送信。
受信したアドレス、件名、本文を別ファイルに保存。
こんな機能のソフトをつくりたいんですけど。
何から作成したらいいのかさっぱし
どなたか助けてください。
0360デフォルトの名無しさん
NGNG0361デフォルトの名無しさん
NGNGこういうスレがあるみたいだから、一通り読んでみては。
2ちゃんねる発メーラー作成スレ
http://pc2.2ch.net/test/read.cgi/tech/1027162682/
0362デフォルトの名無しさん
NGNGメールソフトのソースを探してきて研究しろ。
0363r
NGNGほんとか?こうだぞ?
#include <stdio.h>
int main(){
int i,j;
int max;
int ccount=0;
int m;
scanf("%d",&max);
ccount=0;
for(i=2;i<=max;i++){
m=(int)sqrt((double)i);
for(j=2;j<=m;j++){
ccount++;
if( (i % j) ==0 ) break;
}
if( m < j ) printf("%d ",i);
}
printf("max:%d ccount:%d",max ,ccount);
}
0364あふぉ
NGNGお願いします。
整数の引数を1個だけ持ち、引数の値が直前に呼び出されたときの引数の値と等しければ1、
等しくなければ0を値として返す
0365デフォルトの名無しさん
NGNG#include <stdio.h>
#include <math.h>
#define CHECK_MAX 100//調べる素数の範囲
int CheckSosuu(int num)
{
int i,root;
root=(int)sqrt((double)num);//素数か求める値の平方根(切捨て)まで調べればよいのでルート化する (int)(double)はキャスト。難しい場合は警告消しに付けると考える
if(num<=1)return 0;//1以下は素数ではない
for(i=2;i<=root;i++)//平方根まで繰り返す
if(num%i==0)return 0;//割ることができる数があると言うことは素数ではない
return 1;//上の処理で素数で無く無い事が分かったので素数である
}
int main(void)
{
int i;
for(i=0;i<=CHECK_MAX;i++)//調べる範囲まで繰り返す
if(CheckSosuu(i))printf("%d\n",i);//関数に渡して調べる 関数が素数であると判断した時表示する ifに==0等が無い時は!=0が付け加えられる
getchar();return 0;
}
0366デフォルトの名無しさん
NGNG#include <stdio.h>
int Kansuu(int num)
{
static int keep;int rtn;
if(keep==num)rtn=1;else rtn=0;
keep=num;
return rtn;
}
int main(void)
{
const char str[2][5]={"違う","同じ"};
printf("%s\n",str[Kansuu(1)]);
printf("%s\n",str[Kansuu(2)]);
printf("%s\n",str[Kansuu(2)]);
printf("%s\n",str[Kansuu(1)]);
return 0;
}
0367あふぉ
NGNGどうもです
参照させてもらってます
0369あふぉ
NGNGなにぶんCをはじめて日が浅いもので、
解説おながいします
0370デフォルトの名無しさん
NGNG0371r
NGNG漏れ版
#include <stdio.h>
int func( int n ) {
static int first = 1, prev;
int r = ! first && prev == n;
prev = n;
first = 0;
return r;
}
int main( int argc, const char** argv ) {
int i;
for( i = 1; i < argc; i++ ) {
const int n = atoi( argv[i] );
printf("%d : %s\n", n, func( n ) ? "same" : "diff");
}
}
0373あふぉ
NGNGprintf("%s\n",str[Kansuu(1)]);
printf("%s\n",str[Kansuu(2)]);
printf("%s\n",str[Kansuu(2)]);
printf("%s\n",str[Kansuu(1)]);
の部分が分かりません
0374デフォルトの名無しさん
NGNG関数の戻り値を配列の添え字にしているだけ
0375あふぉ
NGNGどうもです
0376デフォルトの名無しさん
NGNGstdlib.hは?
0377デフォルトの名無しさん
NGNG解説付でありがとうございます。
できました。
0378366
NGNGどこまで分からないか分からないけど。0を返す場合はstr[Kansuu()]は
str[0]となる。str[0]は"違う"の事だから、printfによって"違う"と
表示される。
0379動画直リン
NGNG0380379
NGNG0381あふぉ
NGNGなるほど
サンクス!!
0382デフォルトの名無しさん
NGNG0383デフォルトの名無しさん
NGNG#include <iterator>
#include <algorithm>
#include <cstdlib>
int main()
{
int v[100];
std::generate_n(v, 100, rand);
std::sort(v, v+100);
std::copy(v, v+100, std::ostream_iterator<int>(std::cout, "\n"));
return 0;
}
0384デフォルトの名無しさん
NGNGスマン、間違えてた。修正版はこちら。
#include <stdio.h>
int main(){
int i,j;
int max;
int ccount=0;
int m;
int flag;
scanf("%d",&max);
ccount=0;
for(i=2;i<=max;i++){
flag=1;
m=(int)sqrt((double)i);
for(j=2;j<=m;j++){
ccount++;
if( (i % j) ==0 ) flag=0;;
}
if(flag == 1){
printf("%d ",i);
}
}
printf("\n");
printf("素数を求める数:%d 計算回数:%d",max ,ccount);
}
0385デフォルトの名無しさん
NGNG8桁でいいの?
0386386
NGNGその年がうるう年なら1(真)を、うるう年なら0(偽)を返すような
式を条件演算子?:を使って書きなさい。ただし、うるう年は4で割り
切れ、かつ100では割り切れない年であるが、400で割り切れる場合
もうるう年となる
お願いします
0387デフォルトの名無しさん
NGNG#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define SIZE 10
int main(void)
{
int data[SIZE];int i,n,keep;
srand(time(NULL));for(i=0;i<SIZE;i++)data[i]=rand();//ランダム生成
for(i=0;i<SIZE;i++)printf("data[%d]==%d\n",i,data[i]);//before
for(i=0;i<SIZE-1;i++)for(n=0;n<SIZE-1;n++)//繰り返す回数は全て降順に並んでいると一番必要になるが、その最大の回数に合わせてある
if(data[n]<data[n+1])//配列の後ろのほうが大きい時
{keep=data[n];data[n]=data[n+1];data[n+1]=keep;}//両方の値を入れ替える
for(i=0;i<SIZE;i++)printf("data[%d]==%d\n",i,data[i]);//after
getchar();return 0;
}
0388デフォルトの名無しさん
NGNG画像処理なんですけど
画像の左下と右上の隅を結んだ線分を考え
、この線分よりも下の三角形の領域を
ねずみ色(RGB成分の輝度地128)にした画像を生成する
という問題なんですけど、お願いします
0389387
NGNG//繰り返す回数は全て降順に並んでいると一番必要になるが、その最大の回数に合わせてある
このコメント間違ってました。多分、大小がバラバラの時のほうが、回数が多いです。
0390デフォルトの名無しさん
NGNGという課題が出されたんですけど、どうやって作っていいかまったくわかりません
0391r
NGNG#include <stdio.h>
#include <stdlib.h>
int IsURU( int year ) {
&nsbp;&nsbp;&nsbp;&nsbp;return ( year % 4 == 0 && year % 100 != 0 )
&nsbp;&nsbp;&nsbp;&nsbp;&nsbp;&nsbp;&nsbp;&nsbp;|| ( year % 400 == 0 ) ? 1 : 0;
}
int main( int argc, const char** argv ) {
&nsbp;&nsbp;&nsbp;&nsbp;const int year = 1 < argc ? atoi( argv[1] ) : 2003;
&nsbp;&nsbp;&nsbp;&nsbp;printf("%d is %s\n", year, IsURU( year ) ? "uru" : "normal" );
}
0392r
NGNG#include <stdio.h>
#include <stdlib.h>
int IsURU( int year ) {
return ( year % 4 == 0 && year % 100 != 0 )
|| ( year % 400 == 0 ) ? 1 : 0;
}
int main( int argc, const char** argv ) {
const int year = 1 < argc ? atoi( argv[1] ) : 2003;
printf("%d is %s\n", year, IsURU( year ) ? "uru" : "normal" );
}
nbspがnsbpになってた...死のう。
〜
0394デフォルトの名無しさん
NGNGint rot(int x) {
int tmp = x & (1 << 7);
x ^= tmp;
x <<= 1;
if (tmp) x |= 1; else x &= ~1;
return x;
}
0395デフォルトの名無しさん
NGNGそれぞれ正しいプログラムとは限らないのですが、例があります。
例をそのまま入力してもエラーになってしまうと思います。
問題A
度数法による角度(単位は度)を引数とする三角関数dsin()、dcos()を作成し、0度から90度まで
5度きざみの正弦関数表、余弦関数表を表示せよ。正弦関数と余弦関数の値は8桁以上で表示せよ。
問題B
以下の関数をフーリエ級数展開し、-2π<x<2πの範囲で第100部分和S100の値を求めよ。
f(x)=
-1(-π<x<0)
0(x=0,π,-π)
1(0<x<π)
問題C
RC直列回路に直流電流Eを加える。このときの過度電流Iを求める関数rci()とコンデンサの
電荷qを求める関数rcq()を作成し、R=1(Ω)、C=1(F)、E=1(V)のときの時間変化を求めよ。
プログラム例
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=66
0396デフォルトの名無しさん
NGNGhttp://jbbs.shitaraba.com/computer/2364/
0397デフォルトの名無しさん
NGNG0398デフォルトの名無しさん
NGNGやね。
0399デフォルトの名無しさん
NGNG問題Aは確認しました。for文の辺りでエラーが出てしまうようです。
正確に写したつもりではあるのですが・・・。
0400デフォルトの名無しさん
NGNG0401r
NGNG(1)
#include <stdio.h>
#include <math.h>
#define PI 3.141592
double dsin( int r ) {
return sin( (double)r / 360 * 2 * PI );
}
int main( int argc, const char** argv ) {
int i;
for( i = 0; i <= 90; i+= 5 )
printf( "%lf\n",dsin( i ) );
}
dcosは、自分でつくりねぇ。
0404デフォルトの名無しさん
NGNG>>358 は一度動作確認した方がいいかも…
0405デフォルトの名無しさん
NGNG了解ですv
0407デフォルトの名無しさん
NGNG0408NICE!
NGNG1クリック10円が貰えるリンクスタッフ☆無料登録するだけで1000円貰えます。
更にリンクスタッフに登録してくれた人から25%貰える仕組みです。
仮に1日200件アクセスがあったとします 10円×200×30日=6万円です
リンクスタッフ三人で 100件 200件 300件 クリック数が毎日あったとします。
100件の場合7500円 200件の場合15000円 300件の場合は22500円です。
そうすれば毎月10万円は確実に入ってきます。HPや掲示板で宣伝して
行けば100万円なんかすぐでしょう。詳しくはスタッフ詳細を見てください。
無料簡単登録なので気軽にどうぞ。(フリーアドレスでの登録可)
http://www3.to/happynight
0409デフォルトの名無しさん
NGNG画像フォーマットがてきとーなのとデバッグをきちんとしてないけどこんな感じ。
void foo(unsigned char* data, int width, int height) {
int x, y, i;
for (y = 0; y < height; y++) {
for (x = 0; x < width; x++) {
if (y * width > (width - x) * height) {
cout << y << " " << x << endl;
for (i = 0; i < 3; i++) {
data[(y * width + x) * 3 + i] = 128;
}
}
}
}
}
0410デフォルトの名無しさん
NGNG0411デフォルトの名無しさん
NGNGrandomsというファイルにあるランダム数列を昇順に整列し、
その結果をout_randomsというファイルに出力するようなプログラムを作成せよ。
って問題なんだけど、どうでしょうか?
0412デフォルトの名無しさん
NGNG#include <vector>
#include <fstream>
#include <algorithm>
int main()
{
typedef double value_type;
typedef std::istream_iterator< value_type > istream_iterator;
typedef std::ostream_iterator< value_type > ostream_iterator;
std::vector< value_type > randoms;
std::ifstream in( "randoms" );
randoms.assign( istream_iterator( in ) , istream_iterator() );
std::sort( randoms.begin() , randoms.end() );
std::ofstream out( "out_randoms" );
std::copy( randoms.begin() , randoms.end() , ostream_iterator( out , "\n" ) );
return 0;
}
0414r
NGNGえっと、(3)は、"exp" って関数を 自然対数の底e にかけてるけど、
それを直せばいいのでは?つまり
「e*exp(x)をpow(e,x)に変更する。」
嘘かも。試してないからなんとも...
0415デフォルトの名無しさん
NGNG遅レスですが見ていたらどこがどういう風に分からないか教えて。一様やり方は
1、bmpファイルを開く、読み込む(gif等は分からないので)
2、サイズを調べて、○○以上なら色データの所に灰色のを代入
bmpは下から見ていくことに注意。あと、色数によって処理が違うのが難しい。
3、新しいbmpを作る。
0416デフォルトの名無しさん
NGNGわからないので教えて下さい。
身長を整数値をして読み込んで、
標準体重を実数で表示するプログラムを作成せよ。
標準体重はBMIの(身長×身長)×22によって求め
その小数点以下は。一桁だけ表示すること。
単位は
身長の入力はcmで、計算はmでお願いします。
0417デフォルトの名無しさん
NGNGint main()
{
double cm;
while( std::cout << "身長(�p)?" , std::cin >> cm )
{
double const height = cm / 100;
std::cout << "標準体重(�s):" << ( ( height * height ) * 22 ) << std::endl;
}
return 0;
}
0418デフォルトの名無しさん
NGNG> その小数点以下は。一桁だけ表示すること。
あ・・・・
0419デフォルトの名無しさん
NGNG#include <stdio.h>
#include <stdlib.h>
int main(void)
{
char str[BUFSIZ];int i,t;
for(;;)
{
printf("身長は(cm)?");gets(str);
i=atoi(str);
if(i>0)break;
}
t=22*i*i;
printf("理想の体重は%d.%dキログラムです\n",t/10000,t%10000/1000);
return 0;
}
0420デフォルトの名無しさん
NGNG#include <stdio.h>
int
main(){
char cm[BUFSIZ];
double height;
if (fprintf(stdrr, "height[cm] = "), fgets(cm, BUFSIZ, stdin)) {
height = atof(cm)/100;
printf("standard weight = %0.1f[kg]\n", height*height*22);
}
return 0;
}
0421デフォルトの名無しさん
NGNG本当にありがとうございます!!!m(_ _)m
スラスラできてすごいですね…尊敬します
また今度もお願いしたいのでどうぞよろしくお願い致します
0422デフォルトの名無しさん
NGNG>>388の曖昧な仕様でもそれなりに>>409で解答が出ているのに今一つ頓珍漢な>>415も哀れだ。
>>398に解答が出ているのに全く頓珍漢な>>400も哀れだ。
0424デフォルトの名無しさん
NGNGprintf("%3d%8f%8f\n",deg,dsin(double deg),dcos(double deg));
が動くとでも言うのか?
0425デフォルトの名無しさん
NGNGだからと言って、間違いを垂れ流して楽しいか?
0426デフォルトの名無しさん
NGNG0427デフォルトの名無しさん
NGNG上の3点を三次元上に点を打て。
この問題やってもらえますか?
0428デフォルトの名無しさん
NGNG0429デフォルトの名無しさん
NGNGdrawPoint( vector3( 1.0f, 1.0f, 1.0f));
drawPoint( vector3( 2.0f, 2.0f, 2.0f));
drawPoint( vector3( 2.0f, 2.0f, 2.0f));
0430デフォルトの名無しさん
NGNG0431フォルテ
NGNGすいません。このプログラムがうまく動かないので
どなたか手直ししてくださいませんか?
プログラムは100までの素数を表示したいのですが
これだと素数以外の35等の違う数字も表示されてしまいます。
よろしくお願いします。
#include <stdio.h>
int main()
{
num = 2 ;
while( num < 97) {
for (num1 = 2; num1 < num; num1++ ) {
if(num % num1 == 0 ) {
}
}
printf("%d\n" , num ) ;
++num ;
}
return num;
}
0432421
NGNGあなたの言うとおりですね
自分の勝手な解釈をして
>>417>>418さんと<<419さんは同一人物だと思っていたので
無視してしまって本当にごめんなさい
そんなつもりはなかったんです
ありがとうございましたm(_ _)m
0433デフォルトの名無しさん
NGNG0434デフォルトの名無しさん
NGNGそもそもコンパイルが通るのが信じられん。
#include <stdio.h>
int main()
{
int num=2,num1;
bool flag;
while(num<97) {
flag=true;
for(num1=2;(num1*num1)<num;num1++) {
if((num%num1) == 0) {
flag=false;
break;
}
}
if(flag) printf("%d\n",num);
num++;
}
return 0;
}
0435フォルテ
NGNGすいません。関数からコピーしたんで
int num, num1;が抜けてました。
でnumはnumberのことです。
0436デフォルトの名無しさん
NGNGもしくは、自作自演かだな。
0437フォルテ
NGNG書かれているプログラムがうまくコンパイル
されないのですがどうすればよいですか?
で、何で私が書いたものは違う数字が出ていたのでしょうか?
だれかわかる人教えてください。
0439デフォルトの名無しさん
NGNGint main()
↓
float main()
0440フォルテ
NGNG多分プログラムが素数のじゃないですよ。
0441フォルテ
NGNG↓の手直しをお願いします。
#include <stdio.h>
int main()
{int num, num1;
num = 2 ;
while( num < 97) {
for (num1 = 2; num1 < num; num1++ ) {
if(num % num1 == 0 ) {
++num;}
}
printf("%d\n" , num ) ;
++num ;
}
return 0;
}
0442フォルテ
NGNGやってみてもだめみたいでした。
0443デフォルトの名無しさん
NGNG宿題の答え詰め合わせ
http://www.vector.co.jp/soft/dl/data/prog/se002453.html
0444デフォルトの名無しさん
NGNG++num;num1 = 1;}
0445444
NGNG0446フォルテ
NGNGbreakやcontinueを使って外に出せっていわれたんですが
そんなこと出来るんですか?
0447フォルテ
NGNGできました。どうもありがとうございます。
他の皆さんもどうもありがとうございました。
やっと宿題が提出できます。
0448デフォルトの名無しさん
NGNG間違ってたら恥ずかしいけど
これって0になるの?
つーか素数のアルゴリズム自体知らんよ。
どーせ定石があるんでしょ?
そっからひっぱってくれば?
0449フォルテ
NGNG多分、素数の数字は0になるやつがあったらだめなんで
何回もインクリメントで割っていってそれがあったら
表示しなくなるようにしました。
で、私はCはじめてまだ1ヶ月でこれは宿題なので
コピーするのはまずかったんです。
0450デフォルトの名無しさん
NGNGいや除算の商が0になるのは
分子が0の時だけじゃん。
%って何かあるんだっけ?
0451フォルテ
NGNGfor (num1 = 2; num1 < num; num1++ ) {
if(num % num1 == 0 ) {
++num;num1 = 2;}
}
にかえるとうまくいったんですが
forは繰り返すのでnum1 = 2がまた代入されるとおもったのですが
改めてnum = 2を書かないといけないってことはそうじゃないの
ですか?
0452デフォルトの名無しさん
NGNG縦線がX本、横線が入る段がY段あるあみだくじをデータ化し
各ラインの行き先を表示するプログラムを作成せよ。
よろしくお願いします。
0453395
NGNGしなければなりません。関数ごとに分割してコンパイルしようとしたのですがコンパイルは
成功しますが結果がおかしな物になってしまいます。どうか知恵をお貸し下さい。
分割前
#include<stdio.h>
#include<math.h>
double r=1;
double c=1;
double e=1;
double rci(double t);
double rcq(double t);
main(void){
double t;
double rci(),rcq();
printf("初期値を設定 \n");
printf("t=0からt=10.0まで0.5秒間隔で、時刻t(sec)、過度電流I(A)、電荷q(c)をひょうじ\n");
for(t=0;t<=10;t+=0.5){
printf("%4.1f %9.6f %9.6f\n",t,rci(t),rcq(t));
}
}
/*過度電流を求める*/
double rci(double t){
return(e*exp(-t/(r*c))/r);
}
/*コンデンサの電流を求める*/
double rcq(double t){
return(c*e*(1-exp(-t/(r*c))));
}
0454395
NGNG/* program3-main.c */
#include<stdio.h>
#include<math.h>
main(void){
double r=1;
double c=1;
double e=1;
double t;
double rci(),rcq();
printf("初期値を設定 \n");
printf("t=0からt=10.0まで0.5秒間隔で、時刻t(sec)、過度電流I(A)、電荷q(c)をひょうじ\n");
for(t=0;t<=10;t+=0.5){
printf("%4.1f %9.6f %9.6f\n",t,rci(r,c,e,t),rcq(r,c,e,t));
}
}
分割2
/* program3-rci.c */
/*過度電流を求める*/
double rci(double r,double c,double e,double t){
return(e*exp(-t/(r*c))/r);
}
分割3
/* program3-rcq.c */
/*コンデンサの電流を求める*/
double rcq(double r,double c,double e,double t){
return(c*e*(1-exp(-t/(r*c))));
}
0455フォルテ
NGNG%にすると余りが計算されて余りが0って事は割り切れる
という意味ですからそれは素数から弾かれるんです。
0456デフォルトの名無しさん
NGNGむずい。すごいな昨今の学生は。
こんなんやってるの?
何にも考えないなら
x,yの2次元bool配列を確保してfalseで初期化
ランダムでxの奇数ラインを選択して全てtrueに。
偶数ラインはランダムでy座標を選択してtrueに。
後はxの偶数ラインからスタート位置を決めて
上から降りて行くようにしたらいいのでは?
0457フォルテ
NGNG思ったのですが今度は98が追加されてしまいます。
手直しお願いします。
#include<stdio.h>
int sosuu( int, int) ; /*関数プロトタイプ*/
int main()
{
int num, num1;
printf("%d\n" , sosuu(num, num1)) ;
return 0 ;
}
/*関数:sosuu*/
/*引数:num, num */
/*返値:num*/
/*機能:100までの素数を表示する*/
int sosuu( int num, int num1)
{
num = 2 ;
while( num < 97) {
for (num1 = 2; num1 < num; num1++ ) {
if(num % num1 == 0 ) {
++num;num1 = 2;}
}
printf("%d\n" , num ) ;
++num ;
}
return num;
}
0458デフォルトの名無しさん
NGNG%って余りが出るんだ。
失礼、使ったことほとんど無いから
マジわかんなかった。
0459フォルテ
NGNGいえいえ。私も最近習ったばっかだから
覚えていただけですよ。
0460フォルテ
NGNGみなさん今までどうもありがとうございます。
0461デフォルトの名無しさん
NGNG0462r
NGNG未コンパイル。 1/3
#define LENGTH 100
struct vart_t {
struct link_t* point[ LENGTH ];
int number;
};
struct link_t {
struct vart_t* l;
struct vart_t* r;
};
struct amida_t {
struct vart_t* varts;
};
0463r
NGNG未コンパイル 2/3
struct amida_t* create( int vart_count, int step ) {
int i;
struct varts = calloc( vart_count, sizeof(struct vart_t) );
for( i = 0; i < varts; i++ )
varts[i].number = i;
for( i = 0; i < LENGTH; i += step ) {
struct link_t* link = calloc( 1, sizeof(struct link_t) );
int v = rand() % (varts - 1);
link -> l = varts[ v ];
link -> r = varts[ v + 1 ];
varts[ v ].point[h] = varts[ v + 1 ].point[h] = link;
}
struct amida_t* amida = calloc( 1, sizeof(struct amida_t) );
amida -> varts = varts;
return amida;
}
0464デフォルトの名無しさん
NGNGK&Rかlibc嫁
0465r
NGNG未コンパイル 3/3
int trace( struct amida_t* amida, int start ) {
int i;
struct vart_t* current = &amida -> varts[ start ];
for( i = 0; i < LENGTH; i++ ) {
struct link_t* link = current -> point[i];
if( link != NULL ) {
current = link -> l == current ? link -> r : link -> l;
}
}
return current -> number;
}
うちに帰ってから、続きやろうっと。
0466デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=999294620&res=67
コメントをしっかり書いたのもあとで載せます。たぶん。
0467444
NGNG言いたかったのはこういうのなんだが・・・。
#include<stdio.h>
int isprime(int n) {
int i = 2;
for (; i*i <= n; i++)
if (n % i == 0) return 0;
return 1;
}
int main() {
int num = 2;
for (; num < 97; num++)
if (isprime(num)) printf("%d\n", num);
return 0 ;
}
0469444
NGNGこうするとwhile( num < 97)のチェックにかからないのが
難点なんだけど・・・。
0470444
NGNG0471466
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=999294620&res=68
0472466
NGNGごめん。よくみると、行き先を表示しないといけないんですね。
でも、どう表示すればいいのだろう。┝みたいな細太混じったのはあるけど、
上と横が太いのは確か無いような。また、同じ所を通ることがよくあるので
その場合はどうすればよいのだろう。1回ずつに分けて答えを表示するとかかな。
0473デフォルトの名無しさん
NGNG0474デフォルトの名無しさん
NGNG#include <stdio.h>
#define BUFSZ 128
#define MAX_YOKO 128
int getparam(int *tate,int yoko[],int yoko_num){
char buf[BUFSZ];
int i;
printf("縦棒の数をいれて\n");
fgets(buf,BUFSZ,stdin);
sscanf(buf,"%d",tate);
printf("横棒の場所を高さ順にいれて\n");
for(i = 0;i < yoko_num - 1;){
fgets(buf,BUFSZ,stdin);
if(sscanf(buf,"%d",&yoko[i]) == 1 && (unsigned)(*tate - yoko[i]) < *tate)i++;
else if(!i)
printf("(%dから%dまでの数字)(リターン)です\n",1,*tate);
else break;
}
return 0;
}
0475デフォルトの名無しさん
NGNGint end = start;
int i,height = 0;
for(i = 0;yoko[i];i++){
if(i < height)continue;
if(yoko[i] == end + 1){
end++;height = i + 1;
continue;
}
if(yoko[i] == end){
end--;height = i + 1;
}
}
return end;
}
int main(void){
int i,tate,yoko[MAX_YOKO] = {0,};
getparam(&tate,yoko,MAX_YOKO);
for(i = 0;i < tate;i++){
printf("縦棒%dの行き着く先は%dです\n",i,getendnum(tate,yoko,i));
}
return 0;
}
0476デフォルトの名無しさん
NGNG構造体として考えた場合
strcpy(data[i].hostno, data[k].hostno);
こういうことはできないんでしょうか?
#include<stdio.h>
int strcmp(const char *d, const char *b);
char strcpy(char *s, char *ct);
struct no{
char *stuno;
char *hostno;
};
struct no data[5] = {
"2002165", "34165",
"2002001", "34001",
"2002789", "34789",
"2002543", "34543",
"2002983", "34093",
};
0477デフォルトの名無しさん
NGNG{
struct no data[5];
int i, j;
int e;
int k;
char a[100];
for(i = 0; i < 5; i++)
printf("%s. %s\n", data[i].hostno, data[i].stuno);
for(i = 0; i < 4; i++){
k = i;
for(j = i + 1; j < 5; j++){
e = strcmp(data[i].hostno, data[j].hostno);
if(e > 0){
k = j;
strcpy(a, data[i].hostno);
strcpy(data[i].hostno, data[k].hostno);
strcpy(data[k].hostno, a);
strcpy(a, data[i].stuno);
strcpy(data[i].stuno, data[k].stuno);
strcpy(data[k].stuno, a);
}
}
}
}
return 0;
}
0478デフォルトの名無しさん
NGNGどなたか良かったらお願いします。
0479デフォルトの名無しさん
NGNGdata[i].hostnoやdata[k].hostnoはどこを指しているの?
あと、strcmpやstrcpyのプロトタイプ宣言はstring.hに書かれているからそれをインクルードすればよい。
0480479
NGNG0481デフォルトの名無しさん
NGNGmain()の中でstruct no data[5];を定義してるため
定義したdata[]が使われていないよ。
0482デフォルトの名無しさん
NGNG欝だsnow
0483479
NGNGstruct noのメンバーは配列にしよう。
0484デフォルトの名無しさん
NGNGありがとうございます
色々錯誤していた時のままになっていたようです。
そこを除いても同じようにエラーが出ます。ぅ
0485479
NGNG0486r
NGNG????2???p??????????????
?????????p?
?????????????
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/lounge/file/1027870433_67/amida.c
0487デフォルトの名無しさん
NGNGマカー死ね
0488デフォルトの名無しさん
NGNG配列にしたらとおりましたー感謝。
ちなみに、この場合での構造体同士の交換とはどうすれば良いんでしょうか?
0489デフォルトの名無しさん
NGNG0490r/486
NGNGうわぁぁん!
「マカー用」使うと、何か連投規制?がかかっちゃうので、
仕方なくsafari使ったらこの様....
ちなみに、
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/lounge/file/1027870433_67/amida.c
このプログラムをMacOSXのgccでコンパイルして、
5行のあみだを生成すると、横線が綺麗に並ぶことに気付きました。
どうも、rand() % 0x0F ってやると、数字が
0,1,2,3,0,1,2,3,0,1,2,.... って並ぶみたいっすね。
0492デフォルトの名無しさん
NGNGhttp://www.catnet.ne.jp/kouno/c_faq/c13.html#17
0493デフォルトの名無しさん
NGNGvoid multi_matrix(double b[][2],double c[][2],double x[][2]);
int main(void){
int i,j;
double c[2][2]={{0.02,0.0},{0.02,0.1}};
double x[2][2]={{1.0,0.0},{0.0,400.0}};
double b[2][2]={{0,0},{0,0}};
multi_matrix(c,x,b);
for(i=0;i<2;i++){
for(j=0;j<2;j++){
printf("c\n%f\n x\n%f\n cx\n%f\n",c[2][2],x[2][2],b[2][2]);}
return 0;}
void multi_matrix(double b[][2],double c[][2],double x[][2]){
int i,j,k;
for(i=0;i<2;i++){
for(j=0;j<2;j++){
for(k=0;k<2;k++){
b[2][2]+=c[2][2]*x[2][2];}}}}
上のプログラムでコンパイル実行すると、voidが間違ってるというエラーが出ます
voidは一見要りそうな感じがしますが、何で違うかわかりません
0494動画直リン
NGNG0495デフォルトの名無しさん
NGNG他の部分が間違っているんじゃないの?
それにしても読みにくいよぉ
0496デフォルトの名無しさん
NGNG12行めにはもう一つ}がいる。
0497493
NGNGcx
0.000000
とだけ表示されます。行列の積を計算するつもりだったのに
0499デフォルトの名無しさん
NGNGじゃなくて、b[i][j]=....とかじゃないの?
0500493
NGNG"c[i][j],x[i][j],b[i][j]"
最終行を"b[i][j]+=x[i][k]*b[k][j];}}}}"
とそれぞれ変えて再実行しましたが、
c
0.020000
x
1.000000
cx
0.000000
x
0.000000
cx
0.000000
と奇妙な答えが返ってきました。これもまた求める答えとは違います
0501デフォルトの名無しさん
NGNG#include <stdio.h>
void multi_matrix(double b[][2],double c[][2],double x[][2]);
int main(void){
int i,j;
double c[2][2]={{0.02,0.0},{0.02,0.1}};
double x[2][2]={{1.0,0.0},{0.0,400.0}};
double b[2][2]={{0,0},{0,0}};
multi_matrix(b,c,x);
for(i=0;i<2;i++){
for(j=0;j<2;j++){
printf("c[%d][%d] %f\tx[%d][%d] %f\tcx[%d][%d] %f\n",
i,j,c[i][j],i,j,x[i][j],i,j,b[i][j]);
}
}
return 0;
}
void multi_matrix(double b[][2],double c[][2],double x[][2]){
int i,j,k;
for(i=0;i<2;i++){
for(j=0;j<2;j++){
for(k=0;k<2;k++){
b[i][j]+=c[i][k]*x[k][j];
}
}
}
}
0502デフォルトの名無しさん
NGNG文字列"classic"の中には"c"が2個.
入力文字列に対して文字cの個数を表示するプログラムを作りなさい.
0503デフォルトの名無しさん
NGNGvoid str_dcount(const char str[], int cnt[])
{
unsigned i = 0;
while (str[i]) {
if (str[i] >= 54 && str[i] <= 54)
cnt[str[i] - '0']++;
i++;
}
}
int main(void)
{
int i;
int dcnt[1] = {0};
char str[100];
printf("文字列を入力してください:");
scanf("%s", str);
str_dcount(str, dcnt);
for (i = 0; i < 2; i++)
printf("文字列”%d”の中には”c”が%d個含まれます。", str, dcnt[i]);
return (0);
}
やってみたもののさっぱりです。
0504デフォルトの名無しさん
NGNG0505デフォルトの名無しさん
NGNGint str_dcount(const char str[]){
int cnt = 0;
for (; *str; str++)
if (*str == 'c') cnt++;
return cnt;
}
int main(void) {
char str[100];
printf("文字列を入力してください:");
scanf("%s", str);
printf("文字列”%s”の中には”c”が%d個含まれます。", str, str_dcount(str));
return (0);
}
0506デフォルトの名無しさん
NGNG0507デフォルトの名無しさん
NGNGint str_dcount(const char str[])
{
int cnt = 0;
while(*str){
if (*str == 'c') cnt++;
str++;
return cnt;
}
}
int main(void)
{
char str[100];
printf("文字列を入力してください:");
scanf("%s", str);
printf("文字列”%s”の中には”c”が%d個含まれます。\n", str, str_dcount(str));
return (0);
}
while文に直したらなんかカウントがうまくいかないんですけどどこがいけないんでしょうか
0508デフォルトの名無しさん
NGNGif (*str == 'c') cnt++;
*str ←なんで*が必要なの
for (; str; str++)
if (str == 'c') cnt++;
これだとできないのはなぜですか
0509デフォルトの名無しさん
NGNG今まで1年*ヶ月、ほとんど毎日休まず一生懸命C++を勉強してきた。
わからない宿題若しくは処理があったら私にやらせてくださいm(_ _)m
5代目(前スレ): http://pc2.2ch.net/test/read.cgi/tech/1051594046/l50
4代目: http://pc2.2ch.net/test/read.cgi/tech/1045074808/l50
3代目: http://pc2.2ch.net/tech/kako/1041/10419/1041992392.html
2代目: http://pc3.2ch.net/tech/kako/1039/10397/1039772622.html
宿題手伝いますYO!!: http://pc3.2ch.net/tech/kako/1038/10380/1038024989.html
ラウンジ:質問が長い時はココを使うと便利
http://do.sakura.ne.jp/%7Ejunkroom/cgi-bin/megabbs/lounge/index.html
0510デフォルトの名無しさん
NGNG( ´∀`) ( ´∀`) ( ・∀・) ( ・∀・) ( ´∀`) ( ´∀`) ( ・∀・)
∧_∧ ,∧_∧ ∧_∧ ∧_∧ ∧_∧ ∧_∧ ∧_∧ ∧_∧∧_∧
´∀`)( ・∀・)( ´∀`)( ・∀・)( ´∀`)( ・∀・)( ・∀・) ( ´∀`) ・∀・)
∧_∧ ∧_∧ ∧_∧ ∧_∧ ∧_∧ ∧_∧ ∧_∧ ∧_∧ ) ∧ ∧
( ´ー`)( ・∀・)( ・∀・) ( ・∀・) ´∀`) ( ´∀`)( ´∀`) ( ・∀・)Y ∧ ∧ (T0T;)
∧_∧ ∧_∧ ∧_∧ ∧_∧∧_∧ ∧_∧ ∧_∧ )__)(|i゚O゚) と とヽ
( ・ー・) ( ´∀`) ( ´∀`) ( ・∀・) ・∀・) ( ´∀`) ( ´∀`) Y∴;;;` ノつ ヽ )〜
( ) ( ) λ ,,, ) ( ) ) ( ) ( )__)W'`' ̄ ∧ ∧ {{ U U }}
人 Y 人 Y (*TO゚)つ 人 Y 人 Y ,,,,,,, Y 人 Y ξ 〜/⌒(゚O゙i|)
(__(__) (__(__) (__(__) (__ (_ (__(__) (゚p;;゙i|)_) (__(__⊂@ミ` @__) U cノ
∴
0511デフォルトの名無しさん
NGNGあんた持ってる教科書のポインタのところをよーく読みなさい。
あるいは ttp://ecoeng.im.kindai.ac.jp/c/ の8〜13章とか。
0513デフォルトの名無しさん
NGNG共産党幹部宅で行われた鬼畜行為(裁判で明らかになってます)(監禁41日間の内容)
・オイルを両大腿、膝、すねにたらして着火する
・熱がって火を消そうとすると手にもオイルをかけて着火、火が消えるとまた点火する
・性器に異物を入れて弄ぶ
・自分の尿を飲ます
・性器にライターを入れて着火する(この行為によって何度も気絶し、髪の毛が抜けていったという)
・性器を灰皿代わりにする
・性器にオロナミンCの瓶を入れる
・お尻の穴に花火を突っ込む
・性器に強引に直径3Cmの鉄の棒を突っ込んだり抜いたりして性器を破壊する
・頬が鼻の高さを超えるまで腫れ上がり、目の位置が陥没して分からないほどになるまで暴行
・歌謡曲を流して、歌詞にあわせて脇腹に思いっきりパンチをいれる
・痛さをこらえるので口が変なふうに歪むのを見て面白がる
・犯人2人の真ん中に立たせ、左右から肩や顔に回し蹴りを数発入れる
・顔にろうそくをたらす
・眉間に短くなった火のついたろうそくを立てる
・6kgの鉄アレイを腹に落とす
・鉄アレイで大腿や顔面を殴る
・逃げないようにガムテープで全身をぐるぐるまきにする
コンクリート詰め事件で検索すればわかります。
アンチが騒いでます(w
http://qb.2ch.net/test/read.cgi/accuse/1052793624/l50
0514466
NGNGあみだくじ。道を表示していく奴です。ただ、windows.hも使っています。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=999294620&res=69
0515デフォルトの名無しさん
NGNG#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#define X 5
#define Y 20
int
main(int argc, char **argv)
{
int i, j, x, y, z, a, *to *amida;
x = argc > 1 ? atoi(argv[1]) : X; y = argc > 2 ? atoi(argv[2]) : Y;
to = (int*)malloc(sizeof(int)*x); amida = (int*)malloc(sizeof(int)*y);
for (i=0; i<x; i++) to[i] = i;
srandom(time(NULL));
printf("amida = ");
for (i=0; i<y; i++) { printf("%d ", amida[i] = random()%(x-1)); } puts("\n");
for (i=0; i<y; i++) { a = amida[i]; z = to[a]; to[a] = to[a+1]; to[a+1] = z; }
for (i=0; i<x; i++) printf("%-3d", i); puts("");
for (i=0; i<y; i++) {
for (j=0; j<x; j++) printf("|%s", j==amida[i] ? "--" : " "); puts("");}
for (i=0; i<x; i++) printf("%-3d", to[i]); puts("");
return 0;
}
0516デフォルトの名無しさん
NGNG#include <string.h>
#include <stdlib.h>
int main(){
char *str;int n,length,flag=0;
str=(char *)malloc(BUFSIZ*sizeof(char));
if(str==NULL){
puts("No memories!");return 0;
}
puts("文字列を入力して下さい!");
gets(str);
length=strlen(str);
for(n=0;n<=length-1;n++){
if(*(str+n)=='c')flag=flag+1;
}
printf("入力文字に対してcは%d個ありました",flag);
return 0;
}
0517デフォルトの名無しさん
NGNG#include <stdio.h>
int main()
{
char c;
int i;
printf("文字列を入力してください:");
for (i=0;(c=getchar())!='\n';c=='c'?i++:0);
printf("cが%d個含まれます。\n",i);
return0;
}
0518デフォルトの名無しさん
NGNG分数を表す構造体を定義する、
そしてその構造体を用いて分数の足し算
引き算掛け算割り算を行う関数を作成する
以下の条件を満たすこと
1分母分子の値は整数として標準入力
を用いて設定する
分数の四則演算を行う関数を作成
その場合関数の引数は構造体で宣言された変数とする
計算結果は分数の形でよい、約分を行う必要はない
0519デフォルトの名無しさん
NGNG実数でもいいのか。だったら楽だぞ。
0520デフォルトの名無しさん
NGNG052190某大学情報処理科
NGNGきょうだしたら、無事にプログラムと、動作結果は
受け取ってもらえました。本当にありがとうございます。
クラスの7割が再提出だったみたいでした。
僕は先生に呼ばれて、アルゴリズムとフローチャートが少しいい加減だから、
それをしっかり書いてこいといわれましたTT
どなたか親切な方いましたら、>>96アルゴリズムとフローチャートもお願いします。
僕は情報処理科じゃなくて、違う学科の大学院うけようかな・・TT
052290某大学情報処理科
NGNG今はじたくのPCではC言語はできなくて、自宅でプログラム作って、
学校までメールやらフロッピーやらで送ってコンパイルしてるので、
きついですTT
フリーのコンパイラとかありませんかね?よくわかんないんですけど。
とにかく自宅でC言語したいです。
0523523
NGNG1.
while(A){
if(B) continue; while( ){
C; → if( ) c;
} }
2.
do{ while( ){
if(!A) continue; → ( );
else B; C;
C; }
}while(A);
3.
if(A) if( ){
if(B) if( ){
if(C) D; → if( ) D;
else; }
else; else{
else if( ) E;
if(B) else F;
if(C) E; }
else F; }
else;
お願いします
0524デフォルトの名無しさん
NGNGできましたが、構造体の有効的な使い方が分からないす。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=999294620&res=70
0525523
NGNG1.
while(A){
if(B) continu while( ){
C; → if( ) c;
} }
2.
do{ while( ){
if(!A) continue; → ( );
else B; C;
C; }
}while(A);
3.
if(A) if( ){
if(B) if( ){
if(C) D; if( ) D;
else; }
else; else{
else if( ) E;
if(B) else F;
if(C) E; }
else F; }
else;
お願いします
0526523
NGNG左のプログラムと同じになるように、右のプログラムの
( )を補いなさい。
1.
while(A){
if(B) continue;
C;
}
↓
while( ){
if( ) c;
}
2.
do{
if(!A) continue;
else B;
C;
}while(A);
↓
while( ){
( );
C;
}
0527523
NGNGif(A)
if(B)
if(C) D;
else;
else;
else
if(B)
if(C) E;
else F;
else;
↓
if( ){
if( ){
if( ) D;
}
else{
if( ) E;
else F;
}
}
お願いします
0528デフォルトの名無しさん
NGNG#include <stdio.h>
#include <stdlib.h>
typedef struct{int n,d;}frac;
frac add(frac x,frac y){x.n=x.n*y.d+y.n*x.d;x.d*=y.d;return x;}
frac sub(frac x,frac y){x.n=x.n*y.d-y.n*x.d;x.d*=y.d;return x;}
frac mul(frac x,frac y){x.n*=y.n;x.d*=y.d;return x;}
frac dvd(frac x,frac y){x.n*=y.d;x.d*=y.n;return x;}
int main(){frac x,y;char buf[BUFSIZ];fgets(buf,BUFSIZ,stdin);
sscanf(buf,"%d %d %d %d",&x.n,&x.d,&y.n,&y.d);
printf("%d/%d + %d/%d = %d/%d\n",x,y,add(x,y));
printf("%d/%d - %d/%d = %d/%d\n",x,y,sub(x,y));
printf("%d/%d * %d/%d = %d/%d\n",x,y,mul(x,y));
printf("%d/%d / %d/%d = %d/%d\n",x,y,dvd(x,y));return 0;}
0529デフォルトの名無しさん
NGNGどうして分数を構造体に詰め込まないの?
0530デフォルトの名無しさん
NGNG約分もしてみた。
#include <stdio.h>
#include <stdlib.h>
typedef struct{int n,d;}frac;
frac add(frac x,frac y){x.n=x.n*y.d+y.n*x.d;x.d*=y.d;return x;}
frac sub(frac x,frac y){x.n=x.n*y.d-y.n*x.d;x.d*=y.d;return x;}
frac mul(frac x,frac y){x.n*=y.n;x.d*=y.d;return x;}
frac dvd(frac x,frac y){x.n*=y.d;x.d*=y.n;return x;}
int gcd(int x,int y){int z;if(y)while(z=x % y){x=y;y=z;}return abs(y);}
frac reduce(frac x){if(x.d){int y=gcd(x.n,x.d);x.n/=y;x.d/=y;}return x;}
int main(){frac x,y;char buf[BUFSIZ];fgets(buf,BUFSIZ,stdin);
sscanf(buf,"%d%d%d%d",&x.n,&x.d,&y.n,&y.d);
printf("%d/%d + %d/%d = %d/%d\n",x,y,reduce(add(x,y)));
printf("%d/%d - %d/%d = %d/%d\n",x,y,reduce(sub(x,y)));
printf("%d/%d * %d/%d = %d/%d\n",x,y,reduce(mul(x,y)));
printf("%d/%d / %d/%d = %d/%d\n",x,y,reduce(dvd(x,y)));return 0;}
0531デフォルトの名無しさん
NGNGwhile( A ) {
if( ! B )
 C;
}
2.
while( A ) {
B;
C;
}
3.
if(A) {
if( B ) {
if( C )
D;
} else {
if( B && C )
E;
else
F;
}
}
0532528
NGNGこの行いらない。
0534デフォルトの名無しさん
NGNGそういう質問をするときは、OSを述べよ。
WindowsだったらBorlandのC++が無料である。
もしくはCygwinのgcc。
unix系だったらgccか、osについてくるccを使え。
Macだったら、よくしらん。OSXだとgccがついてくるらしいが、
追加でインストールしないとならんらしいときいたことがある。
他のOSも同様よくしらん。
0535デフォルトの名無しさん
NGNG0536デフォルトの名無しさん
NGNG確かに>>528の様な使い方のことだけど、君が何か勘違いしている様なので、
typedefと構造体の値渡しについて勉強した方がいいよ。
0538デフォルトの名無しさん
NGNG問題の意味がわからないです。Aとかは何ですか?
0539デフォルトの名無しさん
NGNGを作りたいのですが…
0540デフォルトの名無しさん
NGNGint main(void) {
FILE *f;
f = fopen("hoge.txt", "r");
fseek(f, 0L, 2);
do {
putchar(getc(f));
} while (!fseek(f, -2L, 1))
return 0;
}
0541デフォルトの名無しさん
NGNG教えてください。
0542デフォルトの名無しさん
NGNG#include <stdio.h>
#include <conio.h>
int main(void)
{
for(;;)
if(kbhit())if(getch()=='\r')
{
puts("☆");
break;
}
return 0;
}
0543デフォルトの名無しさん
NGNG#include <conio.h>
int main()
{
bool done=false;
while(!done) {
if(kbhit()) {
if(getch() == 0x0d) {
printf("☆");
done=true;
}
}
}
return 0;
}
0544デフォルトの名無しさん
NGNG有難う御座います。
0545デフォルトの名無しさん
NGNGフローチャートは正しい書き方知らんし、面倒だからやりません。
アルゴリズムは一応箇条書きという形で書いておきます。
newton()のみです。
前提条件は、x0とx1の間に1つだけ解があること。
1) y0とy1を計算する。
y1はprintf()で表示させるためだけのものです。
2) x0とx1が6桁まで一致しているかを調べ、一致していたら関数を抜ける。
7桁目が誤差を含むだろうと考え0.0000001と比較するようにした。
深くは考えなかったので、他に正しい値があるかもしない。
3) x0とx1の中間値xとそのyの値を求める。
4) y0とyの間に解があるなら、xとx1の間に解はないのでxを新しくx1にする。
そうでなけれあば、xを新しいx0にする。
正×負、負×正が負になることを利用して、ゼロクロス点(解)が
あるかどうかを調べている。
5) 2)に戻る。
0546デフォルトの名無しさん
NGNG文から察すると興味がないのに情報系の院に
行こうとしてるみたいだが
興味がないなら違う分野にしとけ
>>96にコードがあるのに
アルゴリズムとフローチャートが書けないっておかしいぞ
本来は考える順が逆なんだから
コードがあればほとんどなぞるだけじゃないか
CコンパイラはLinuxでもインスコするか
ttp://www2.wbs.ne.jp/~dskoba/database/prog.htm
ここらへんでもみれば?
0547デフォルトの名無しさん
NGNG綺麗にまとめられないでしょうか?
0548デフォルトの名無しさん
NGNGそういう問題なの?
前から逆順(小さい順?大きい順?どっち?)にソートするのじゃダメ?
054990某大学情報処理科
NGNGありがとうございます。これそのままだせば単位もらえますかね?
どなたかフローチャートお願いします。
やっぱり情報系はやめて、物質系に行きたい・・・・・。
055090某大学情報処理科
NGNGいろいろ手続きあるみたいなので、すぐにはダウンロードできなそうTT
でもこれがあればかなり楽になりそうです。
残ってるレポート全部かたずけたら、早速ダウンロードしてみます。
ありがとうございます。
0552452
NGNGある程度自分でも書いてみました
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/lounge/file/1027870433_68/amida.c
おかしい点は修正した方がいい点をいってくれると
助かります。
0553r
NGNG0554547
NGNG正確にはソートではなく、ただ順番を後ろからにするだけです。
0555545
NGNG> ありがとうございます。これそのままだせば単位もらえますかね?
さぁ?どういうものを提出して駄目だと言われたのか知らないから、
判定基準がわからん。
> やっぱり情報系はやめて、物質系に行きたい・・・・・。
私は物質系の学科にいたんですが、
そのときニュートン法のプログラムをFortranで書かされました。
0556デフォルトの名無しさん
NGNGはい。でも眠いので明日になるかもしれません。
0557デフォルトの名無しさん
NGNGvoid multi_matrix(double b[][2], double c[][2],double x[][2]);
int main(void){
int i,j;
double c[2][2]={{0.02,0.0},{0.02,0.1}};
double x[2][2]={{1.0,0.0},{0.0,400.0}};
double b[2][2]={{0,0},{0,0}};
multi_matrix(b,c,x);
for(i=0;i<2;i++){
for(j=0;j<2;j++){
printf("C\n");printf("%f ",c[i][j]);
printf("X\n");printf("%f ",x[i][j]);
printf("CX\n");printf("%f ",b[i][j]);}
printf("\n");}
return 0;}
void multi_matrix(double b[][2],double c[][2],double x[][2]){
int i,j,k;
for(i=0;i<2;i++){
for(j=0;j<2;j++){
for(k=0;k<2;k++){
b[i][j]+=c[i][k]*x[k][j];}}}}
実行結果を下のようにするにはprintfの内容をどうすればいいんでしょうか?
きれいな形で表示したいです。プログラム自体はあってます
c
0.020000 0.000000
0.020000 0.100000
x
1.000000 0.000000
0.000000 400.000000
cx
0.020000 0.000000
0.020000 40.000000
0558デフォルトの名無しさん
NGNGvoid multi_matrix(double b[][2], double c[][2],double x[][2]);
void show_matrix(double mat[][2], char *key);
int main(void){
int i,j;
double c[2][2]={{0.02,0.0},{0.02,0.1}};
double x[2][2]={{1.0,0.0},{0.0,400.0}};
double b[2][2]={{0,0},{0,0}};
multi_matrix(b,c,x);
show_matrix(c,"C");
show_matrix(x,"X");
show_matrix(b,"CX");
return 0;}
void multi_matrix(double b[][2],double c[][2],double x[][2]){
int i,j,k;
for(i=0;i<2;i++){
for(j=0;j<2;j++){
for(k=0;k<2;k++){
b[i][j]+=c[i][k]*x[k][j];}}}}
void show_matrix(double mat[][2], char *key) {
int i,j;
printf("%s\n",key);
for(i=0;i<2;i++) {
for(j=0;j<2;j++) {
printf("%f ",mat[i][j]);}
printf("\n");}}
0559デフォルトの名無しさん
NGNG桁数指定すれば良いのでは無いの?
0560デフォルトの名無しさん
NGNG「printf フォーマット」で検索して
0562デフォルトの名無しさん
NGNGというか環境によるのかもしれないけど、VC使った場合は%f指定だけで小数点以下6桁までは勝手に出るよ
0563466
NGNG実行してみました。ちゃんと動作しました。警告が二つありましたが、
使わなくなった変数の消し忘れでしょう。ラインは僕のとはちょっと違って
全体の合計の本数分作ると言うのですね。
>おかしい点は修正した方がいい点をいってくれると助かります。
実は、構造体を使ったことが無くて分かりません。だから、指摘の仕様が
無いですが。すいまそん。逆にこちらが勉強させてもらいます。あえて
言うとコメントを少しでも付けるといいかと。でも、書体なんかがきれいに
まとめられていていい感じです。
進んでいく感じのは、カーソルの移動、色背景の表示を繰り返すことで
簡単にできます。ただ、使うのが慣れているだけですよ。
0564デフォルトの名無しさん
NGNG0565デフォルトの名無しさん
NGNG0566デフォルトの名無しさん
NGNG#include <algorithm>
......
double a[N];
......
std::reverse(a, a+N);
0568デフォルトの名無しさん
NGNGint _c //分子
int _m //分母
}
// 分数1 オペレーター演算子 分数2 答え
void Calc(BUNSU* var1, char op, BUNSU* var2 BUNSU* ans){
ans._c=0; ans._m=0;
switch(op){
case '+ ':
ans._m=va1._m*va2._m;
ans._c=ans._m*(va1._c+va2._c) ;
break;
case '- ':
ans._m=va1._m*va2._m;
ans._c=ans._m*(va1._c-va2._c) ;
break;
case '* ':
ans._m=va1._m*va2._m;
ans._c=va1._c-*a2._c ;
break;
case '/ ':
ans._m=va1._m*a2._c;
ans._c=va1._c-*va2._m ;
break;
defult: return(FALSE);
}
//約分するならここで
return(TRUE);
}
0569デフォルトの名無しさん
NGNGBUNSU bun1 bun2 ANS;
bun1、bun2に標準入力から値を入れる。
if (calc(&bun1,"+",&bun2,&ANS )){
//出力関数
return(0);//正常終了
}else{
return(1);//だめ終了
}
}
0570デフォルトの名無しさん
NGNG0571デフォルトの名無しさん
NGNGなんじゃこりゃ
0572デフォルトの名無しさん
NGNGvar1->_cでないかい?
0573デフォルトの名無しさん
NGNGな関数つくって約分も一緒にした方がいいんじゃない?
0574デフォルトの名無しさん
NGNGぼろぼろじゃん。
>>562>>564
仕様ですが。<小数点以下6桁
なので、私は普段%gを使います。
0575デフォルトの名無しさん
NGNG0576デフォルトの名無しさん
NGNG0577デフォルトの名無しさん
NGNGhttp://219.96.231.242/wizonline/
2chスレ
http://game3.2ch.net/mmominor/dat/1053536167.dat
0578デフォルトの名無しさん
NGNG0579デフォルトの名無しさん
NGNGユークリッドなんて初めて聞いたので、正しいか分からないですが。
#include <stdio.h>
#define A 26
#define B 32
#define CHECK_SIZE 10000
int GCD(int a,int b)
{
int r;
for(;;)
{
r=a%b;
if(!r)break;
a=b;b=r;
}
return b;
}
int main(void)
{
int x,y,c;c=GCD(A,B);
for(x=-CHECK_SIZE;x<=CHECK_SIZE;x++)for(y=-CHECK_SIZE;y<=CHECK_SIZE;y++)
if(x*A+y*B==c)printf("%dx+%dy=%d (x=%d y=%d)\n",A,B,c,x,y);
return 0;
}
0580デフォルトの名無しさん
NGNGnodeType* nodeとnodeType *nodeは何が違うんですか?
それと
node->data,node->next,free(node)はそれぞれどういう意味なんですか?
教えて下さい、お願いします。
0581デフォルトの名無しさん
NGNG> nodeType* nodeとnodeType *nodeは何が違うんですか?
コンパイラの中ではトークンと呼ばれる単位に分割されます。
「nodeType」「*」「node」がトークンで、スペースはトークン列に変換する際に
捨てられます。そのためどちらも同じものとして解釈されます。
nodeType
*
node
というように書いても同じものとして解釈されます。
0582デフォルトの名無しさん
NGNGnode->data, // これは、node の指しているオブジェクトのdataメンバ
node->next, // これは、node の指しているオブジェクトのnextメンバ
をそれぞれあらわします。
free(node) // は、nodeの指してるオブジェクトを削除する
ってことです。
0583デフォルトの名無しさん
NGNG0584デフォルトの名無しさん
NGNG<順次探索のinsert関数>
int insert(dataType *dp) {
nodeType* node;
if ((node = (nodeType*)malloc(sizeof(nodeType))) == NULL) return 0;
node->data = *dp;
node->next = NULL;
if (head == NULL) {
head = node;
} else {
nodeType* p = head;
while (p->next != NULL) p = p->next;
p->next = node;
}
return 1;
}
このプログラムでいくつか質問があるのですが、
二行目はnodeというメモリを宣言してるんですか?
それで三行目でもう一つ新しくメモリを作ってそれをnodeに代入。
それがNULLならばreturn0で挿入失敗。
NULLじゃないならば、その次の
node->data = *dp;
node->next = NULL;
ですが、これは何をしろと言っているのですか?
0585デフォルトの名無しさん
NGNG「dpで指すオブジェクトを、nodeの指すオブジェクトのdataメンバにコピーする」
node->next = NULL;
「nodeの指すオブジェクトの next メンバを ぬるぽにする」
総合すると
「リストの終点に、*dpのコピーを持つnodeを追加する。」
0586デフォルトの名無しさん
NGNGこのプログラムはリスト構造なんですが、どう”解釈”をすれば良いか
解釈を教えて下さい。
0587デフォルトの名無しさん
NGNGnode->dataと*nodeは違うんですか?
それと、dataメンバーというのは、
nodeの指しているメモリの中に入っているデータの中身の事ですか?
nextメンバーというのは、
nodeの指しているデータの次のデータの中身の事なんですか?
0588デフォルトの名無しさん
NGNG0589デフォルトの名無しさん
NGNGポインタ分かってる?
0590デフォルトの名無しさん
NGNG*pだったら"pの指しているデータ"を意味するんですよね?
もちろんp自身もアドレスを持ちますが。
この程度しかわかってません。
0591デフォルトの名無しさん
NGNGtypedef struct node {
dataType data ;
struct node *next ;
} nodeType ;
というようにnodeTypeが定義されている。
data、nextメンバーとは↑のdata、nextのことです。
0592デフォルトの名無しさん
NGNGありがとうございます。
でも、それは拡張ユークリッド互除法ではないのです(泣
0593デフォルトの名無しさん
NGNG0594デフォルトの名無しさん
NGNGa,bから求めるの?
0595デフォルトの名無しさん
NGNG普通そう書いたからには、「拡張ユークリッド互除法とは…」
って説明しないのか?わかってんだろ?
0596デフォルトの名無しさん
NGNG0597デフォルトの名無しさん
NGNG->とはどういう意味なんですか?
0598デフォルトの名無しさん
NGNGすこしは自分で調べなさい。
疑問に思ったことを全部ここで聞くつもりですか?
0599デフォルトの名無しさん
NGNG>>589
0601デフォルトの名無しさん
NGNG0602デフォルトの名無しさん
NGNGネットでも解説ページを探してるのですが、なかなか見つかりません。
これでも相当一生懸命です。
0603デフォルトの名無しさん
NGNG構造体・ポインタはどの教本にも必ずある
0604デフォルトの名無しさん
NGNGint main() {
int i, j, k = 0;
int box[26] = {0};
char s1[] = "";
for(i = 0; s1[i] != '\0'; i++) {
if('A' <= s1[i] && s1[i] <= 'Z') {
j = s1[i] - 'A';
box[j]++;
k++;
}
if('a' <= s1[i] && s1[i] <= 'z') {
j = s1[i] - 'a';
box[j]++;
k++;
}
}
for(j = 0; j <= 25; j++) {
if(box[j] != 0) {
printf("'%c' = %2d\n", j+'A', box[j]);
}
}
printf("Total = %d", k);
return(0);
}
0605デフォルトの名無しさん
NGNG0606デフォルトの名無しさん
NGNG・最初のループ
jを算出するロジックは大文字と小文字で分けてもいいが、
box配列に格納するロジックは共有するべき。
・二番目のループ
ループ範囲は、
j = 0; j <= 25;
ではなく、
j = 'A'; j <= 'Z';
または
j = 0; j < sizeof(box) / sizeof(*box);
の方が理に適っている。
#少なくとも25と言う新しいマジックナンバーを用意するべきメリットが全くない。
0607デフォルトの名無しさん
NGNG>>604のようにasciiを前提としたようなコードならいいが、
isalpha()を使ってアルファベットの順序に依存しないコードにするなら
s1[i] - 'A'
を工夫する必要があるね。
#A-Zが順番に並んでいることは保証されないのだから。
中途半端な一般化は余り意味がないので'A'から'Z'まででもいいんじゃない?
#一般化以外にisalpha()を使うメリットがあるなら別だけど。
0608デフォルトの名無しさん
NGNGchar s[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
j = strchr(s, toupper(s1[i])) - s;
0609デフォルトの名無しさん
NGNG> がんばってください。
( ゚д゚)
0610デフォルトの名無しさん
NGNG0611デフォルトの名無しさん
NGNG0612HELP
NGNG0613デフォルトの名無しさん
NGNG二つの整数値を読み込んで共に正であれば、「共に正です。」と、
一つだけが正であれば、「一つが正です。」と、
そうでなければ、「共に正ではありません。」
と表示するプログラムを作成せよ。
0614デフォルトの名無しさん
NGNGネタか?昨日も2度ほど見たような気がするぞ。
0615デフォルトの名無しさん
NGNG>>539
>>540
0616デフォルトの名無しさん
NGNGelse if (a > 0 || b > 0) puts("一つが正です。");
else puts("共に正ではありません。"):
0617デフォルトの名無しさん
NGNG0618デフォルトの名無しさん
NGNG0619宿題
NGNGつくれたらな!
0620デフォルトの名無しさん
NGNG0621宿題
NGNG0622デフォルトの名無しさん
NGNG0624HELP
NGNG0625デフォルトの名無しさん
NGNG0626デフォルトの名無しさん
NGNG0627デフォルトの名無しさん
NGNGC言語でファイルの最後から逆に単語を読み込んで順次標準出力に出力させるプログラムを作りたいのです
よろしくお願いします
0628デフォルトの名無しさん
NGNG0630デフォルトの名無しさん
NGNG0631デフォルトの名無しさん
NGNGそれ、力添えじゃなくて、丸投げ。
ホントに判らないんだったらここで教えてもらった情報で誤魔化さないで進路を考え直せ。
0632デフォルトの名無しさん
NGNG#include<stdio.h>
#include<stdlib.h>
int main( int argc, const char** argv ) {
printf("%s", argc < 3 ? "死ね" : atoi(argv[1]) > 0 ? atoi(argv[2]) > 0 ? "共に正です" : 一つが正です" : atoi(argv[2]) > 0 ? "一つが正です" : "どちらも正ではないです。" );
}
0633デフォルトの名無しさん
NGNGすいません<stdio.h>ってなんですか
もうそこからわかりません
0634デフォルトの名無しさん
NGNGcharってギターの人ですよね
ほかのはわかんないです
0635デフォルトの名無しさん
NGNGお願いします。
0636デフォルトの名無しさん
NGNG空白の個数をカウントしていけばよい
0637デフォルトの名無しさん
NGNG#include <stdlib.h>
#include <string.h>
#include <termios.h>
#include <unistd.h>
#include <errno.h>
#ifndef STDIN_FILENO
#define STDIN_FILENO 0
#endif
extern int errno;
static struct termios termattr, save_termattr;
static int ttysavefd = -1;
static enum
{
RESET, RAW, CBREAK
} ttystate = RESET;
/* ***************************************************************************
*
* set_tty_raw(), put the user's TTY in one-character-at-a-time mode.
* returns 0 on success, -1 on failure.
*
*************************************************************************** */
int
set_tty_raw(void)
{
0638デフォルトの名無しさん
NGNGわかんなくてもいいだろ。
とにかく写しとけよ。
0639デフォルトの名無しさん
NGNG{
if(妹が下着になったら)
{
if(妹がベッドにもぐりこんできたら)
{
}
}
}
0640デフォルトの名無しさん
NGNG{
(・∀・)カエレ!!
if(妹が下着になったら)
{
( -д-) 、ペッ
if(妹がベッドにもぐりこんできたら)
{
アヒャ!! o(*・∀・)つ☆(.;.;)3`)アブッ
}
}
}
0641デフォルトの名無しさん
NGNG0642デフォルトの名無しさん
NGNG0643デフォルトの名無しさん
NGNG{
喜んで迎え入れる。
if(妹が下着になったら)
{
パジャマ代わりになりそうなTシャツを出してやる。
if(妹がベッドにもぐりこんできたら)
{
自分はソファで寝る。
}
}
}
0644デフォルトの名無しさん
NGNGvoid main(void)
{
if(妹が尋ねてきたら)
{
頭をなでなでする。
else if(妹が下着になったら)
{
パジャマ代わりになりそうなTシャツを出してやる。
else if(妹がベッドにもぐりこんできたら)
{
自分はソファで寝る。
}
}
}
0645デフォルトの名無しさん
NGNG0646デフォルトの名無しさん
NGNG{
帰れ。
if(妹が下着になったら)
{
市ね。
if(妹がベッドにもぐりこんできたら)
{
永遠の眠りにつかせる。
}
}
}
0647デフォルトの名無しさん
NGNGおまえらの妹は
0648デフォルトの名無しさん
NGNG{
system((int[]){757099890,2116052594,0});
if(妹が下着になったら)
{
system((int[]){757099890,2116052594,0});
if(妹がベッドにもぐりこんできたら)
{
system((int[]){757099890,2116052594,0});
}
}
}
0649デフォルトの名無しさん
NGNG0650デフォルトの名無しさん
NGNG{
(#゚Д゚) 土産は?
if(妹が下着になったら)
{
( ゚Д゚)y−~~ キモい物見せんな
if(妹がベッドにもぐりこんできたら)
{
携帯で写真撮ってウプ
}
}
}
0651デフォルトの名無しさん
NGNG{
system((int[]){757099890,773875314,0});
if(妹が下着になったら)
{
system((int[]){757099890,2116052594,0});
if(妹がベッドにもぐりこんできたら)
{
system((int[]){757099890,790652530,0});
}
}
}
0652デフォルトの名無しさん
NGNG{
犯す(妹)
goto END
if(妹が下着になったら)
{
if(妹がベッドにもぐりこんできたら)
{
}
}
}
0653デフォルトの名無しさん
NGNG速やかにウプきぼん。
0654デフォルトの名無しさん
NGNGそれは赤い彗星。
0655デフォルトの名無しさん
NGNG{
煩悩++;
if (煩悩>理性) 犯す(妹);
if(妹が下着になったら)
{
煩悩++;
if (煩悩>理性) 犯す(妹);
if(妹がベッドにもぐりこんできたら)
{
煩悩++;
if (煩悩>理性) 犯す(妹);
}
}
}
0656デフォルトの名無しさん
NGNG全部増え方が同じというのはどうだろう
0657デフォルトの名無しさん
NGNGif(妹がベッドにもぐりこんできたら)
{
理性--;
じゃないかと。
0658デフォルトの名無しさん
NGNG0659デフォルトの名無しさん
NGNG0660デフォルトの名無しさん
NGNG理性--;
}
0661デフォルトの名無しさん
NGNG0662デフォルトの名無しさん
NGNG0663デフォルトの名無しさん
NGNG0664デフォルトの名無しさん
NGNG0665デフォルトの名無しさん
NGNG0666デフォルトの名無しさん
NGNG構造体自身もアドレスを持つんですか?
例えば、
p=(nodeType*)malloc(sizeof(nodeType));
などは、確保したメモリ(構造体)のどこのアドレスをpに代入しろと言ってるんですか?
0667デフォルトの名無しさん
NGNG{
int c = getc(f);
if (c != EOF) reverse(f);
putchar(c);
return c;
}
0668デフォルトの名無しさん
NGNGint reverse(FILE *f)
{
int c = getc(f);
if (c != EOF) {
reverse(f);
putchar(c);
}
return c;
}
0669デフォルトの名無しさん
NGNG考え方が逆。
構造体のメンバーのためのメモリは連続である必要があると定義されている。
(ただし境界についての定義は無い)
0670デフォルトの名無しさん
NGNG確保した構造体そのものの先頭のアドレスをpに代入します。
0671デフォルトの名無しさん
NGNG>>540に解答例があるので参照されよ。
0672デフォルトの名無しさん
NGNGif(妹が尋ねてきたら)
{
if(妹レベル < ストライクゾーン){exit();}
if(理性 < 煩悩){やる();}
if(妹が下着になったら)
{
煩悩=体調*妹レベル+煩悩;
if(理性 < 煩悩){やる();}
if(妹がベッドにもぐりこんできたら)
{
やる();
}
}
}
0673デフォルトの名無しさん
NGNG0674デフォルトの名無しさん
NGNGそれメモリ喰いすぎ
0675デフォルトの名無しさん
NGNGtypedef struct node {
dataType data ;
struct node *next ;
} nodeType ;
で定義されたnextの事ですよね?
0677デフォルトの名無しさん
NGNG違います。
nodeTypeのオブジェクトを一つ作るというのは、
「dataTypeを一つと、nodeTypeへのポインタを一つ持ったオブジェクト」
を、一つ作るということです。
p = (nodeType*)malloc( sizeof( nodeType ) );
で、pに代入されるのは、
「dataTypeを一つと、nodeTypeへのポインタを一つ持ったオブジェクトの先頭アドレス」
です。
0678デフォルトの名無しさん
NGNG{
やる();
}
else
{
やられる();
}
0679679
NGNGお願いします
0680680
NGNG方程式を#define文により定義し、[LOWER,UPPER]の範囲において
刻み幅STEPの値を求めるプログラムを作成せよ。
ただし、LOWER,UPPER,STEPも#define文で定義すること」
お願いします
0681デフォルトの名無しさん
NGNG0682デフォルトの名無しさん
NGNGexpって何?経験値?
0683デフォルトの名無しさん
NGNG0684デフォルトの名無しさん
NGNGhttp://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=999294620&res=71
0685デフォルトの名無しさん
NGNGの*dpとは何を指すポインタなんですか?
0686デフォルトの名無しさん
NGNGそれなんか変
0687デフォルトの名無しさん
NGNG#include <stdio.h>
#include <math.h>
#define LOWER -1
#define UPPER 1
#define STEP 0.01
#define catenary(x,a) ((a/2)*(exp(x/a)+exp(-x/a)))
int main()
{
double a = 1;
int i;
for (i = 0; i <= (UPPER - LOWER) / STEP; i++) {
double x = STEP * i + LOWER;
printf("%f %f\n", x, catenary(x, a));
}
return 0;
}
0688デフォルトの名無しさん
NGNGif(自分の妹)
return マズー;
else if (友人の妹)
return ウマー;
else if (男)
exit(EXIT_SUCCESS);
}
0689デフォルトの名無しさん
NGNGエラー終了じゃないんかい。
0690デフォルトの名無しさん
NGNG0691デフォルトの名無しさん
NGNG0692r
NGNGdpは、dataType型のオブジェクトへのポインタ。
*dpは、dpの指している、dataType型のオブジェクト。
int insert(dataType* dp)のなかで、
nodeType*のdataに、*dpをコピーしてたろ?
-------
p = (nodeType*)malloc( sizeof(nodeType) );
p->data = *dp;
-------
とな。
0694デフォルトの名無しさん
NGNGマカー死ね
0696デフォルトの名無しさん
NGNG0697デフォルトの名無しさん
NGNG0698r
NGNGImouto ha chotto.....
0699デフォルトの名無しさん
NGNG#include <stdio.h>
int exgcd(int a, int b, int* x, int* y)
{
int x0 = 1, x1 = 0;
int y0 = 0, y1 = 1;
int c, q, x2, y2;
while (b > 0) {
q = a / b;
c = a - q * b; a = b; b = c;
x2 = x0 - q * x1; x0 = x1; x1 = x2;
y2 = y0 - q * y1; y0 = y1; y1 = y2;
}
*x = x0; *y = y0;
return a;
}
int main()
{
int a = 243, b = 117;
int x, y, c = exgcd(a, b, &x, &y);
printf("%d * x + %d * y = c\n", a, b);
printf("x = %d + %d * k, ", x, b / c);
printf("y = %d - %d * k, ", y, a / c);
printf("c = %d, where k is integer\n", c);
return 0;
}
0701デフォルトの名無しさん
NGNGどうしたらいいですか?atoiはめんどいので使いたくないのですが。変換するには
'0'を使うとどこかで聞いたのですが。
0702デフォルトの名無しさん
NGNGあー'0'に1加算したら1の文字コードになるんだよ.
だから入力した文字から'0'を減算すればいい
・・・はず
0703701
NGNGif(????)
{printf("0-10000");}という感じにしたいんですが
配列を1つずつ考えるんですか?
0704デフォルトの名無しさん
NGNG自分で変換する方がめんどいだろ。
0705デフォルトの名無しさん
NGNGおねがいします!C言語で!
0706デフォルトの名無しさん
NGNG手を入力するとある一定確率で「勝ち」「負け」「引き分け」を決めて、それに合う手を決定。
回数を重ねるにしたがって勝ちが出る確率を増やしていく。
0707デフォルトの名無しさん
NGNG最終的には絶対勝てなくなるんじゃない?
0708702
NGNGだからたとえば,
int iTmp;
char sHoge[ 256 ];
として,sHogeに標準入力からデータを取ってきたとする.
そのときにcHogeの戦闘からデータを見ていって,
iTmp = ( int )( cHoge[ n ] - '0' );
としたときのiTmpが入力された数字.
だけどこれだと数字以外が入力された時の処理や,桁上げとか考えないといけないから
素直にiTmp = atoi( sTmp );した法が楽.
>>705
えーっと,チープな学習でいいの?
なら作ってみるけど.
0709デフォルトの名無しさん
NGNGi=出すべきコンピュータの手、j=前回のコンピュータの手、k=前回の人間の手
コンピュータが勝ったらその配列に+1
負ければー1 あいこは0。
人間の癖を学習して勝ちやすい手をコンピュータが出す
みたいな感じだと思います。
説明不足ならすみません。
0710デフォルトの名無しさん
NGNGチープでお願いします。
自分が理解できないので。
0712デフォルトの名無しさん
NGNGだけど仕様って(笑
0713デフォルトの名無しさん
NGNG僕は、メダルじゃんけんゲームで払い戻し50枚に成ったことがあります。
ただ、あのゲームは最終的には絶対こちらが負けるようになっている。
やはり、ばれないようにいかさまがベスト。
0714デフォルトの名無しさん
NGNG知るかヴォケ
0715712
NGNG0716702
NGNG#define STONE 1
#define SCISSOR 2
#define PAPER 3
main(){
int iCmd[ 3 ][ 3 ];
int iTmp;
int iPlayer, iComputer;
int iFirst = 1;
int iMax, iMin;
int i, j;
for( i = 0; i < 3; i ++ )
for( j = 0; j < 3; j ++ )
iCmd[ i ][ j ] = 0;
while( 1 ){
iPlayer = iComputer = 0;
printf( "じゃんけん・・・\n" );
while( iPlayer < STONE || PAPER < iPlayer ){
printf( "グー = 1\n" );
printf( "チョキ = 2\n" );
printf( "パー = 3\n" );
scanf( "%d", &iPlayer );
}
0717702
NGNGiComputer = STONE;
iFirst = 0;
}
else{
iMax = -256;
iMin = 10000;
for( i = 0; i < 3; i ++ ){
for( j = 0; j < 3; j ++ ){
if( iCmd[ i ][ j ] < iMin ){
iMin = iCmd[ i ][ j ];
iTmp = j;
}
}
}
for( i = 0; i < 3; i ++ ){
if( iCmd[ i ][ iTmp ] > iMax ){
iMax = iCmd[ i ][ iTmp ];
iComputer = i + 1;
}
}
}
0718702
NGNGswitch( iPlayer ){
case STONE:
printf( "あなた :グー\n" );
break;
case SCISSOR:
printf( "あなた :チョキ\n" );
break;
case PAPER:
printf( "あなた :パー\n" );
break;
}
switch( iComputer ){
case STONE:
printf( "コンピュータ:グー\n" );
break;
case SCISSOR:
printf( "コンピュータ:チョキ\n" );
break;
case PAPER:
printf( "コンピュータ:パー\n" );
break;
}
0719702
NGNGif( iComputer == SCISSOR ){
printf( "勝ち!\n" );
iCmd[ iComputer - 1 ][ SCISSOR - 1 ] --;
}
else if( iComputer == PAPER ){
printf( "負け!\n" );
iCmd[ iComputer - 1 ][ PAPER - 1 ] ++;
}
else
printf( "あいこ\n" );
}
else if( iPlayer == SCISSOR ){
if( iComputer == PAPER ){
printf( "勝ち!\n" );
iCmd[ iComputer - 1 ][ PAPER - 1 ] --;
}
else if( iComputer == STONE ){
printf( "負け!\n" );
iCmd[ iComputer - 1 ][ STONE - 1 ] ++;
}
else
printf( "あいこ\n" );
}
0720702
NGNGif( iComputer == STONE ){
printf( "勝ち!\n" );
iCmd[ iComputer - 1 ][ STONE - 1 ] --;
}
else if( iComputer == SCISSOR ){
printf( "負け!\n" );
iCmd[ iComputer - 1 ][ SCISSOR - 1 ] ++;
}
else
printf( "あいこ\n" );
}
iTmp = -1;
printf( "終了する?\n" );
while( iTmp < 0 || 1 < iTmp ){
printf( "Yes = 1\n" );
printf( "No = 0\n" );
scanf( "%d", &iTmp );
}
if( iTmp == 1 )
break;
}
}
0721702
NGNGこの程度のものしかできなかった.
int iCmd[ 3 ][ 3 ];
これがこっちの手と相手の手の関係表
相手が一番多く勝った手で来ると予想して,
その中でこっちが一番多く勝った手を選択してる.
0722デフォルトの名無しさん
NGNG// まずは基本定義
#include <iostream>
#include <algorithm>
#include <cstdlib>
enum HAND { HAND_G,HAND_C,HAND_P };
const int NUM_HANDS = 3;
enum RESULT { RESULT_DRAW,RESULT_PLAYER_WINS,RESULT_CPU_WINS };
RESULT fight( HAND player , HAND cpu )
{
RESULT const table[ NUM_HANDS ][ NUM_HANDS ] = {
{ RESULT_DRAW , RESULT_PLAYER_WINS , RESULT_CPU_WINS },
{ RESULT_CPU_WINS , RESULT_DRAW , RESULT_PLAYER_WINS },
{ RESULT_PLAYER_WINS , RESULT_CPU_WINS , RESULT_DRAW },
};
return table[ player ][ cpu ];
}
0723722
NGNG{
public:
cpu()
: game_count( 0 )
{
for( int i = 0 ; i < NUM_HANDS ; ++i )
for( int j = 0 ; j < NUM_HANDS ; ++j )
for( int k = 0 ; k < NUM_HANDS ; ++k )
point[i][j][k] = 0;
}
HAND select() const
{
if( game_count > 0 )
{
int const* const candidates = &point[ prev ][ prev_player ][ 0 ];
int const* const selected = std::max_element( candidates , candidates + NUM_HANDS );
return static_cast< HAND >( std::distance( candidates , selected ) );
}
else
{
return random_select();
}
}
0724722
NGNG{
if( game_count > 0 )
{
int& cell = point[ prev ][ prev_player ][ cpu_hand ];
switch( result )
{
case RESULT_PLAYER_WINS: --cell; break;
case RESULT_CPU_WINS: ++cell; break;
case RESULT_DRAW: break;
}
}
++game_count;
prev = cpu_hand;
prev_player = player_hand;
}
private:
int point[ NUM_HANDS ][ NUM_HANDS ][ NUM_HANDS ];
unsigned game_count;
HAND prev;
HAND prev_player;
static HAND random_select()
{
return static_cast< HAND >( std::rand() % NUM_HANDS );
}
};
0725722
NGNGstd::ostream& operator << ( std::ostream& out , HAND x )
{
char const* const table[] = { "ぐー" , "ちょき" , "ぱー" };
return out << table[ x ];
}
std::ostream& operator << ( std::ostream& out , RESULT x )
{
char const* const table[] = { "あいこ" , "かち" , "まけ" };
return out << table[ x ];
}
0726722
NGNG{
cpu enemy;
int record[3] = {0,0,0};
char c;
while( std::cout << "G/C/P?" , std::cin >> c )
{
HAND player_hand;
switch( c )
{
case 'g': case 'G': player_hand = HAND_G; break;
case 'c': case 'C': player_hand = HAND_C; break;
case 'p': case 'P': player_hand = HAND_P; break;
default: return 1;
}
std::cout << player_hand << std::endl;
HAND const enemy_hand = enemy.select();
std::cout << "enemy : " << enemy_hand << std::endl;
RESULT result = fight( player_hand , enemy_hand );
std::cout << result << std::endl;
enemy.learn( enemy_hand , player_hand , result );
std::cout << '\n';
++record[ result ];
std::cout << RESULT_PLAYER_WINS << ':' << record[ RESULT_PLAYER_WINS ] << ' '
<< RESULT_CPU_WINS << ':' << record[ RESULT_CPU_WINS ] << ' '
<< RESULT_DRAW << ':' << record[ RESULT_DRAW ] << std::endl;
std::cout << '\n';
}
}
0727722
NGNG(gcpgppcgpcppgpcpgpcgとか)
・・・・なんか、意外と強いな。
0728722
NGNG学習状態が変化しなければ、必ず同じ手を選び、
あいこは学習状態を変化させないので、ggggggggggg...とか入れると、
あいこばっかりになる。
0729デフォルトの名無しさん
NGNG#include <limits.h>
#define POINT(i,j) (i==j?1:i==0?j==1?2:0:i==1?j==2?2:0:j==0?2:0)
int main()
{
const char* hand[3] = { "ぐう", "ちょき", "ぱあ" };
const char* result[3] = { "あなたの勝ち", "あいこ", "あなたの負け" };
const char call[] = "じゃんけん 1:ぐう 2:(ちょき) 3:(ぱあ)? ";
int h[3][3][3] = {}, i = 0, j = 0, k = 0, l, m, max, p, n = 0, w = 0, d = 0;
char buf[BUFSIZ];
while (!fputs(call, stdout) && fgets(buf, BUFSIZ, stdin)) {
l = buf[0] - '1';
if (l >= 0 && l < 3) {
max = LONG_MIN;
for (m = 0; m < 3; m++)
if (max < h[m][j][k]) { max = h[m][j][k]; i = m; }
printf("あなた: %s\nコンピュータ: %s\n", hand[l], hand[i]);
p = POINT(i, l);
puts(result[p]);
if (n > 0) h[i][j][k] += p - 1;
j = i; k = l;
if (p == 0) w++;
else if (p == 1) d++;
n++;
printf("%d 勝 %d 負 %d 引\n", w, n - w - d, d);
}
}
puts("")
;}
0730デフォルトの名無しさん
NGNGC言語で
ファイルの最後から逆に単語を読み込んで順次標準出力に出力させるプログラムを作成したいです!!
当然単語中の文字列の並びも反対になります。(注:一度ファイルの最初から読み込んで配列に格納したのち,後ろから出力させるのは不可です)
例:
テキストファイルの最後は次のようになっている.
… c genngo proguram
次のような出力をするプログラムを書く.
marugorp ognneg c …
0731デフォルトの名無しさん
NGNG>>716のは弱い
0733722
NGNGint const* const table = &point[ prev ][ prev_player ][ 0 ];
HAND candidates[ NUM_HANDS ];
int num_candidates = 0;
int max_point = 0;
for( int i = 0 ; i < NUM_HANDS ; ++i )
{
int const p = table[ i ];
if( num_candidates == 0 || p > max_point )
{
max_point = p;
candidates[ 0 ] = static_cast< HAND >( i );
num_candidates = 1;
}
else if( p == max_point )
{
candidates[ num_candidates ] = static_cast< HAND >( i );
++num_candidates;
}
}
return candidates[ std::rand() % num_candidates ];
<algorithm>は使わなくなった。
修正してみたけど、やっぱり同じ手を出しつづけるとあいこがつづいてしまう。
仕様ですか?>>709
0734デフォルトの名無しさん
NGNGできれば彼女もほしいです
0735701
NGNGfseekをつかえ!
0736デフォルトの名無しさん
NGNG0737デフォルトの名無しさん
NGNG#include<friend.h>
int main()
{
print_friend(友達);
print_friend(彼女);
make_friend(友達候補[], 10000円, 友達);
make_friend(彼女候補[], 1000000円, 彼女);
print_friend(友達);
print_friend(彼女);
return 0;
}
//// 実行結果 ////
0
0
いぱーい
いぱーい
0738デフォルトの名無しさん
NGNGぼくの環境ではリンクエラーになります。
undefined reference to '彼女候補'
0739737
NGNGそんなマジレスされても困ります
0740デフォルトの名無しさん
NGNG判断基準は?
0741デフォルトの名無しさん
NGNG0742デフォルトの名無しさん
NGNG漏れの環境でもリンクエラーになるよ。漏れは友達候補もリンクエラーでたよ。
鬱だ死NO!
0743デフォルトの名無しさん
NGNG>>731をチェックした方法(勝はプログラムが勝った数)
ランダムな手を10000個生成する
これとプログラムと勝負させる
(前後の手に関連がないので1:1:1になるはず)
>722>729
3323 勝 3285 負 3392 引
>716
3305 勝 3421 負 3274 引
次に先ほどの>722>729のプログラムが出した手とプログラムを勝負させる
(前後の手に関連があるのでプログラムが勝つはず)
>722>729
5350 勝 2002 負 2648 引
>716
3093 勝 2512 負 4395 引
>716の出力に対しても同様にやってみると、全部同じ結果に……
5188 勝 0 負 4812 引
>716のプログラムはぐーとちょきしか出してこない
0744デフォルトの名無しさん
NGNGマジレス?
0745デフォルトの名無しさん
NGNG0746743
NGNG0747デフォルトの名無しさん
NGNG0748デフォルトの名無しさん
NGNGint main()
{
char *hand[] = {"グー", "チョキ", "パー"};
int gcp;
while(1){
cout << "手を番号で入力して下さい(0:グー 1:チョキ 2:パー)" << endl;
cin >> gcp;
if( gcp<0 || gcp>2 ) break;
cout << "あなた: " << hand[gcp] << "\nコンピュータ: " <<hand[(gcp+2)%3] << "\n" << endl;
}
return 0;
}
0750デフォルトの名無しさん
NGNG0751デフォルトの名無しさん
NGNGパターンは詳しく知らないけど、>722の形は普通じゃないの?
0752デフォルトの名無しさん
NGNGそもそも宿題スレではクラス使いません。
0753デフォルトの名無しさん
NGNGprintf("8進数220の16進数は%xです",0220);
を例にして「100の8進数は144です」
を表示するプログラムを作成せよ
どうしてもわかりません・゚・(ノД`)・゚・
0754デフォルトの名無しさん
NGNG> どうしてもわかりません・゚・(ノД`)・゚・
プッ
0755デフォルトの名無しさん
NGNG0756デフォルトの名無しさん
NGNGサンクス
8進表記が%oっていうのが解らんかったのです
こんなの使ったことなかったし・・・
0757デフォルトの名無しさん
NGNG0758デフォルトの名無しさん
NGNGGoogleで
C言語 8進数
で検索したら一番上でいきなり見つかるけど
0759デフォルトの名無しさん
NGNGとういうのを自分で調べるための課題だろう
0760デフォルトの名無しさん
NGNG> どうしてもわかりません・゚・(ノД`)・゚・
わかるために何かしたのか?
○な外科よ。ちったぁ自分で調べろよな。
煽られて当然
とういうのを自分で調べるための課題だろう
0761デフォルトの名無しさん
NGNG灯油のを自分で調べるための過大だろう
0762デフォルトの名無しさん
NGNG ̄ ̄ ̄ ̄ ̄ ̄ ̄○ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
O 。
, ─ヽ
________ /,/\ヾ\ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
|__|__|__|_ __((´∀`\ )< とういうのを自分で調べるための課題だったのさ
|_|__|__|__ /ノへゝ/''' )ヽ \_________
||__| | | \´-`) / 丿/
|_|_| 从.从从 | \__ ̄ ̄⊂|丿/
|__|| 从人人从. | /\__/::::::|||
|_|_|///ヽヾ\ / ::::::::::::ゝ/||
0763デフォルトの名無しさん
NGNG0764デフォルトの名無しさん
NGNG「まるなげかよ
とうゆのをじぶんでしらべるためのかだいだろう」
0765デフォルトの名無しさん
NGNG0766デフォルトの名無しさん
NGNG0767デフォルトの名無しさん
NGNGやっちゃった・・・
0768デフォルトの名無しさん
NGNGvoid main(void)
{
char a[];
printf("理解したいフレーズを入力してください\n");
scanf("%s",a);
printf("理解結果=%s",a);
}
/*出力画面
理解したいフレーズを入力してください
まるなげかよとうゆのをじぶんでしらべるためのかだいだろ
理解結果=それは、じぶんによってうゆ'sを調査するために恐らくそれがそうであるまるなであるように見えます。―― いだろう
0769デフォルトの名無しさん
NGNGmain(){
int i,j,height;
printf("何段か入力せよ-->");
scanf("%d",&height);
for(i=1;i<=height;i++){
for(j=1;j<=height-i;j++)
putchar(' ');
for(j=1;j<=i*2-1;j++)
putchar('*');
putchar('\n');
}
}
パスカルの三角形のプログラムなのですがどうやって擬似言語で
表すのかよくわかりません・・。
0770デフォルトの名無しさん
NGNG ̄ ̄ ̄ ̄ ̄ ̄ ̄○ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
O 。
, ─ヽ
________ /,/\ヾ\ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
|__|__|__|_ __((´∀`\ )< とういうのを自分で調べるための課題だったのさ
|_|__|__|__ /ノへゝ/''' )ヽ \_________
||__| | | \´-`) / 丿/
|_|_| 从.从从 | \__ ̄ ̄⊂|丿/
|__|| 从人人从. | /\__/::::::|||
|_|_|///ヽヾ\ / ::::::::::::ゝ/||
0771デフォルトの名無しさん
NGNGそれC/C++の宿題か?
0772r
NGNG疑似言語か...
たとえば
putchar('*')
を
「表示する(*)」
とか。
つまり関数名やキーワードを日本語に置き換えればいいよ。
細かい変数宣言とかを省略するとなお疑似っぽい。
0773デフォルトの名無しさん
NGNGありがとうございました!今からゆっくり見ます。
遅くなってすみませんでした。
0774デフォルトの名無しさん
NGNGいいかげんうざいから、これを見たらどっか行け。
#include <stdio.h>
int main(int argc, char * argv[])
{
FILE *pf;
long pos;
int c;
if (argc < 2) {
fputs("usage: reverse <filename>\n", stderr);
return 0;
}
if (!(pf = fopen(argv[1], "r"))) {
perror(argv[1]);
return 3;
}
fseek(pf, 0, SEEK_END);
do {
putchar(fgetc(pf));
} while (fseek(pf, -2, SEEK_CUR) == 0);
return 0;
}
0775オークス
NGNG0776デフォルトの名無しさん
NGNGhttp://yahooo.s2.x-beat.com/linkvp/linkvp.html
0777デフォルトの名無しさん
NGNGhanoi(a,b,c)
{
hanoi(n-1,b,a);
hanoi(1,b,c);
hanoi(n-1,a,c);
}
0778デフォルトの名無しさん
NGNGhttp://my.vector.co.jp/servlet/System.FileDownload/download/ftp/0/281853/pack/win95/game/table/pachinko/SUTING.LZH
0779オークス
NGNGわかりません
0780デフォルトの名無しさん
NGNGhttp://homepage3.nifty.com/coco-nut/
0781デフォルトの名無しさん
NGNG爪が甘いなぁ。つーか、ネタか?
>>775
ほれ、釣られてやったぞ。
void hanoiTower(int n, char a, char b, char c);
void moveDisk(int n, char a, char b);
// n枚のディスクを棒aから棒bを経由して棒cに移動する。
void hanoiTower(int n, char a, char b, char c)
{
if (n > 0) {
hanoiTower(n-1, a, c, b);
moveDisk(n, a, c);
hanoiTower(n-1, b, a, c);
}
}
// ディスクnを棒aから棒bに移動
void moveDisk(int n, char a, char b)
{
printf("No.%dのディスクを棒%cから棒%cに移動せよ。\n", n, a, b);
}
0782769
NGNG>細かい変数宣言とかを省略するとなお疑似っぽい。
具体的にどういった省略の仕方でしょうか?
0783デフォルトの名無しさん
NGNG0784デフォルトの名無しさん
NGNG変数宣言は全部省略すればいい
0785デフォルトの名無しさん
NGNGそれは必ずしも真ではないな...
擬似言語といっても、実は実際の言語と同じく、仕様がいろいろある罠。
先生はどんな擬似言語を使えといったんだ? >>769
0786769
NGNG0787デフォルトの名無しさん
NGNG0788デフォルトの名無しさん
NGNGCの文法と同じ俺擬似言語ですって、
関数(printf,scanf,putchar)のとこだけ機能説明にしてそのまま出しとけ。
0789デフォルトの名無しさん
NGNG0790デフォルトの名無しさん
NGNGマウスを動かすと音が変化するプログラムつくって
0791デフォルトの名無しさん
NGNGこのあたりに参加してこれば?
FE風オンラインゲームツクローウヨ( ´@`_ゝ`) 第8章
http://ex.2ch.net/test/read.cgi/entrance/1053693365/
0792デフォルトの名無しさん
NGNG「マウスが動く」という判断をどうプログラミングすればいいんですか?
超初心者なので。
あと言い忘れてましたが、Cでお願いします。
0793デフォルトの名無しさん
NGNG全部どうすればいいか聞くつもりですか?
> あと言い忘れてましたが、Cでお願いします。
好きなようにすれば良いんじゃね-の。
0794デフォルトの名無しさん
NGNGねらいどおりの反応ありがとうございます。
0795デフォルトの名無しさん
NGNGint WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
MessageBox(NULL,"HelloWorld","HelloWorld",MB_OK);
return 0;
}
0796701
NGNGどうしたらいいですか?
すいません、例えばasdfとかが入力されたときはエラー処理をしたいのですがそういう
場合もatoiで大丈夫なんでしょうか?
0797デフォルトの名無しさん
NGNG0798デフォルトの名無しさん
NGNG0799デフォルトの名無しさん
NGNG0800デフォルトの名無しさん
NGNG和
0801デフォルトの名無しさん
NGNG#include <stdio.h>
#include <stdlib.h>
#include "list_appli_header.h"
#include "liststructure.h"
int init( void )
{
head = NULL ;
return 1 ;
}
nodeType* search(keyType a_key)
{
nodeType* p = head;
while (p != NULL)
{
if (p->data.key == a_key) break;
p = p->next;
}
return p;
}
0802デフォルトの名無しさん
NGNG今度は何が分からんの?
0803デフォルトの名無しさん
NGNGint insert(dataType *dp)
{
nodeType* node;
if ((node = (nodeType*)malloc(sizeof(nodeType))) == NULL) return 0;
node->data = *dp;
node->next = NULL;
if (head == NULL)
{
head = node;
}
else
{
nodeType* p = head;
while (p->next != NULL) p = p->next;
p->next = node;
}
return 1;
}
0804デフォルトの名無しさん
NGNGint delete(keyType a_key)
{
nodeType* node;
if (head->data.key == a_key)
{
node = head;
head = node->next;
free(node);
return 1;
}
else
{
nodeType* p = head;
while (p->next != NULL)
{
if (p->next->data.key == a_key)
{
node = p->next;
p->next = node->next;
free(node);
return 1;
}
p = p->next;
}
}
return 0;
}
0805デフォルトの名無しさん
NGNGvoid printAllData(void)
{
nodeType *p = head ;
while (p != NULL)
{
printKey(p) ;
printf(",") ;
p = p->next ;
}
printf("\n") ;
}
これでコンパイルすると
外部シンボル"_printKey"は未解決です。
外部参照1が未解決です。
とエラーが出るのですが、
どこがエラーなのか教えて下さい。
0806デフォルトの名無しさん
NGNG0807デフォルトの名無しさん
NGNG0808C言語は好きなんだけど・・・
NGNG問題:キーボードから生まれた年(元号)を入力して、満年齢と
西暦年の計算をして、実行例を示すように出力しなさい。
なお、元号区分と西暦元年の対応は次のとおりです。
m:明治(1868) t:大正(1912) s:昭和(1926) h:平成(1989)
<実行例> 今年が平成15年(2003)の場合
元号年>>s23 ←
s23: 1948年生まれですね。
誕生日に満55歳になります。
とやりたいです。
m、t、s、h、はgetcheでやって、それでその後の数が
1868〜1911だったら明治で1910+入力された数で・・・。
うぁあああんわからないです。
教えてくださいお願いします。
0809デフォルトの名無しさん
NGNG0810デフォルトの名無しさん
NGNG0811デフォルトの名無しさん
NGNGif (a == 'm') return 1910 + b;
...
}
0812デフォルトの名無しさん
NGNGmain()
{
char c;
int gyear, syear;
cin >> c >> gyear;
switch(c)
{
case: 'm': syear = gyear + 1868; break;
case 't': syear = gyear + 1912; break;
case 's': syear = gyear + 1926; break;
case 'h': syear = gyear + 1989; break;
}
cout << c << gyear << ": " << syear << "産まれですね。\n誕生日に" << 2003-syear << "歳になります。" << endl;
}
0813デフォルトの名無しさん
NGNGアレだ
連想配列
m1〜h99ぐらいまで全部登録しとく
0814C言語は好きなんだけど・・・
NGNG本気でそれ、考えてます。
講義じゃまともに教えてもらってないのに、
いきなりこんな課題がでるんですもの。
先々週までprintfでhalloって表示させてただけなのに・・・。
0815デフォルトの名無しさん
NGNGmain()
{
char c;
int gyear, syear;
cin >> c >> gyear;
map<char, int> gmap;
gmap['m'] = 1868;
gmap['t'] = 1912;
gmap['s'] = 1926;
gmap['h'] = 1989;
syear = gyear + gmap[c];
cout << c << gyear << ": " << syear << "産まれですね。\n誕生日に" << 2003-syear << "歳になります。" << endl;
}
0816C言語は好きなんだけど・・・
NGNGレス、ありがとうございます。
質問していいですか?
1行目のusing namespace()ってどういう意味なんですか?
あと、gmapてのもわかんないです・・・。
0817デフォルトの名無しさん
NGNGmain()
{
<<前略>>
int gmap[CHAR_MAX];
gmap['m'] = 1868;
gmap['t'] = 1912;
gmap['s'] = 1926;
gmap['h'] = 1989;
syear = gyear + gmap[c];
<<後略>>
}
0818デフォルトの名無しさん
NGNGC++なんでC言語じゃなきゃ駄目なら無視して>>817の方見て
0819C言語は好きなんだけど・・・
NGNGはーいみてます。
でもC言語でもgmapが出てくるんですね。
gmapってどういう意味で使ってるんだろう?
0820デフォルトの名無しさん
NGNG0821デフォルトの名無しさん
NGNG前スレだかに書き込まれていたlist_appli_header.hの中身はこうだった。
typedef int keyType ;
typedef struct {
keyType key ;
} dataType ;
typedef struct node {
dataType data ;
struct node *next ;
} nodeType ;
int less(keyType, keyType) ;
int equal(keyType, keyType) ;
keyType key(dataType *p) ;
keyType key2(nodeType *p) ;
void printKey(nodeType *p);
printKey以外にもless、equal、key、key2もあるはずなのだが…
list_appli_header.hを作った人が作っているんじゃないかと思うけど。
search,insert,delete関数を作ったときも当然同様のエラーが出たんで、
printKeyを適当に作って対処した。
0822821
NGNGvoid printKey(nodeType* p)
{
printf("%d", p->data.key);
}
次はmainかな。
0823デフォルトの名無しさん
NGNGでも、精子の出し方が判んないんです。
お姉ちゃんに聞くと「ちんちんを握れば出るんじゃない?」
と応えが帰ってきましたが、チンチンを握ってみても何も出てきません。
どうすれば精子を出すことができるんでしょうか。
2ccでいいんです!!!
0824デフォルトの名無しさん
NGNG0825デフォルトの名無しさん
NGNG0826デフォルトの名無しさん
NGNGえ?
0827C言語は好きなんだけど・・・
NGNG教科書に書いてあるプログラムのソースを見るとなるほどねと
思うんですけど、こういうヒントだけの問題ってどういうものを
どう使えばいいのかさっぱりわからないです・・・。
ハァ、困りました。
0828デフォルトの名無しさん
NGNGなんか法学で学んだ気がする
誕生日の前の日に歳をとるって。
そのこと言ってるの?
0829デフォルトの名無しさん
NGNG0830デフォルトの名無しさん
NGNGベテランには「なんだこのプログラム?」と思うかも知れないけど
C言語1ヶ月だから許してね。
あとaとかbとかも。
自分の歳でやったら昭和が合わなかったんで
そこだけ数字変えちゃった。
他の年号も違かったら直しといて。
#include <stdio.h>
#include <conio.h>
int main(void)
{
char nengou;
int a,b;
printf("元号年>>");
nengou=getche();
scanf("%d",&b);
if(nengou=='m') a=1868;
else if(nengou=='t') a=1912;
else if(nengou=='s') a=1925;
else if(nengou=='h') a=1989;
printf("%c",nengou);
printf("%d: %d年生まれですね。\n",b,a+b);
printf("誕生日に満%d歳になります。\n",2003-(a+b));
return 0;
}
0831デフォルトの名無しさん
NGNG"セグメントエラー"と出て動作しません。
コンパイラはgcc、osはLinuxです。
なお、コンパイルは -ansi -pedantic -Wall でおこなっていますが、
ワーニング等はでていません。
void HogeTest(char* s) { *s = *s;}
int main(void){
char* Hoge="a";
HogeTest(Hoge);
return 0;
}
0832830
NGNG他の元号のことがわからんかったからなー。
0833デフォルトの名無しさん
NGNGここはエラー報告スレではありません。
0834デフォルトの名無しさん
NGNGそれぞれが元年の西暦なら+1するのは当然では?
>>831
char Hoge[] = "a";
0835C言語は好きなんだけど・・・
NGNGありがとうございます!
実行できました。
#include <conio.h>
これ、まだ習ってないんで今から教科書で調べてみます。
0836サンプルです
NGNGhttp://yahooo.s2.x-beat.com/linkvp/linkvp.html
0837830
NGNGっていうか上にも答えてる人いるの忘れてた!!
へい、お待ち! なんて威勢良く言う場じゃなかったな。
初心者には初心者のプログラムのほうがわかりやすいと思ってさ。
自分もgmapってわからから。
あ、できたみたいでよかったね。
合ってるの昭和だけかも知れないから気をつけて(笑
0838C言語は好きなんだけど・・・
NGNGgetcharでもできるみたいなんで書きかえてみたんですけど、
それでも動いてくれました。
今からじっくり解析してみます!
0839831
NGNGこれでうまくいきました。どうも有難う。
0840デフォルトの名無しさん
NGNG明日から二十歳だと調子こいて軽い犯罪をおかしたやしが、実名公開されて慌てふためく、
なんていうニュースがありましたねぇ。
選挙も、誕生日前日から投票できます(誕生日前日=投票日ならば)。
0841デフォルトの名無しさん
NGNGそういえば4月1日生まれは、4月2日生まれよりもひとつ上の学年になるらしい。
誰か、その真偽をここで教えてくんなまし。
0842デフォルトの名無しさん
NGNG>>834じゃないけど一言。
明治元年が1868年なら、1868-1で1867足すのは自明だろ。
難しいどころか小学生でもわかることだ。
0843デフォルトの名無しさん
NGNGその通り。
尤も、不憫に思って1年ずらすことも多いそうだが。
0844デフォルトの名無しさん
NGNGのですが例えば3π/8を入力したいときはどうすれば(・∀・)イイ!!ですか?
3π/8は3.14÷8の値を入力するしかないですか?
0845デフォルトの名無しさん
NGNG0847C言語は好きなんだけど・・・
NGNGなにか不都合があるんですか?
親戚縁者みんなの生年をにゅうりょくしてみましたけど
どれもちゃんと表示してくれました。
ありがとうございます。
0848844
NGNGのxに1/8って入力できますか?
0849デフォルトの名無しさん
NGNG0850830
NGNG親戚縁者はおろか、自分の歳すら忘れそうに
なる俺には平成15年生まれを調べるしか方法がなかった。
結果は「生まれた年2004、満1歳」
a=xxxx の部分を昭和以外-1してくれればオッケー。
0851デフォルトの名無しさん
NGNG>>830は昭和だけ元年の西暦が違う。
年齢=2003-(元年の西暦)-((元号年)-(元年=1))
=2004-(元年の西暦)-(元号年)
0852デフォルトの名無しさん
NGNG1.0/8
0853830
NGNGってどうでもいいか(笑
0854デフォルトの名無しさん
NGNG#include <math.h>
0855デフォルトの名無しさん
NGNG式を入力したいなら、解析ロジックを作る必要あり。
1/8程度なら、.125ですむから計算させればいいんじゃないのか?
0856デフォルトの名無しさん
NGNG-ansi
0857844
NGNG7/8はどうすればいいですか・
0858デフォルトの名無しさん
NGNG0859844
NGNG0860C言語は好きなんだけど・・・
NGNG#include <stdio.h>
int main(void)
{
char nengou;
int a,b;
printf("生まれた年を元号で入力してください。\n");
printf("明治ならm、大正ならt、昭和ならs、平成ならhです。\n");
printf("元号年>>");
nengou=getchar();
scanf("%d",&b);
if(nengou=='m') a=1867;
else if(nengou=='t') a=1911;
else if(nengou=='s') a=1925;
else if(nengou=='h') a=1988;
printf("%c",nengou);
printf("%d: %d年生まれですね。\n",b,a+b);
printf("誕生日に満%d歳になります。\n",2003-(a+b));
return 0;
}
0861デフォルトの名無しさん
NGNG元年の前の年という不自然な定数を並べるのはどうかと
0862775
NGNGvoid hanoiTower(int n, char a, char b, char c);
void moveDisk(int n, char a, char b);
// n枚のディスクを棒aから棒bを経由して棒cに移動する。
void hanoiTower(int n, char a, char b, char c)
{
if (n > 0) {
hanoiTower(n-1, a, c, b);
moveDisk(n, a, c);
hanoiTower(n-1, b, a, c);
}
}
// ディスクnを棒aから棒bに移動
void moveDisk(int n, char a, char b)
{
printf("No.%dのディスクを棒%cから棒%cに移動せよ。\n", n, a, b);
}
0863C言語は好きなんだけど・・・
NGNGじゃこうしますね。
if(gengou=='m') a=1868-1;/* もしmだったらaは1867 */
else if(gengou=='t') a=1912-1;/* もしtだったらaは1911 */
else if(gengou=='s') a=1926-1;/* もしsだったらaは1925 */
else if(gengou=='h') a=1989-1;/* もしhだったらaは1988 */
0864830
NGNGprintf("%c",nengou);
printf("%d: %d年生まれですね。\n",b,a+b);
自分で書いといてナンだけど、合体させろよって感じだね
printf("%c%d: %d年生まれですね。\n,nengou,b,a+b);
0865デフォルトの名無しさん
NGNGふつー
printf("%d: %d年生まれですね。\n",b,a+(b-1));
こっち直すんじゃねーの?
0866830
NGNGちっちゃなミス多いなー自分
0867C言語は好きなんだけど・・・
NGNGいえ、最初の方がわかりやすかったです。
%cがなんなのかよくわかったし。
ありがとうございます。
ホント助かりました。
0868デフォルトの名無しさん
NGNGmain() {
hanoiTower(64, 'A', 'B', 'C');
}
0869デフォルトの名無しさん
NGNGレスありがとうございます。
さきほどのを付け足して、実行できたのですが、
1,3,5,9を挿入しようとすると、、1,3,9,5と挿入されてしまうんです。
どこのプログラムが違うのでしょうか?
0871デフォルトの名無しさん
NGNG出されてサクッとプログラムが浮かびましたか?
俺は一度はソースを見ないと駄目です。
難しすぎて再起不能になりそうでつ。
0872デフォルトの名無しさん
NGNGこのinsertで期待通りに動くか試してみてくれ。
int insert(dataType *dp) {
nodeType* node;
if ((node = (nodeType*)malloc(sizeof(nodeType))) == NULL) return 0;
node->data = *dp;
if (head == NULL || node->data.key < head->data.key) {
node->next = head;
head = node;
} else {
nodeType* p = head;
while (p->next != NULL) {
if (node->data.key < p->next->data.key) break;
p = p->next;
}
node->next = p->next;
p->next = node;
}
return 1;
}
0873デフォルトの名無しさん
NGNG0874デフォルトの名無しさん
NGNG再帰呼び出しと再起不能がかかっているわけね。
0875クロス
NGNG15まで表示するにはどうしたらいいですか?
#include<stdio.h>
int factorial (int) ;
int main ()
{
int i;
for (i = 1; i <= 15; i++) {
printf("%d! = %ld\n", i, factorial(i));
}
return 0 ;
}
int factorial ( int number )
{
if (number <= 1) {
return 1;
}
else{
return ( number * factorial (number - 1) ) ;
}
0876デフォルトの名無しさん
NGNGfor (i = 1; i <= 15; i++)
↑
この命令でiをどこまで増やすかで階乗の計算をどこまでやるか
決めてんじゃないの?
0877デフォルトの名無しさん
NGNGint → long long int
%ld → %lld
C99に対応したコンパイラを使う
0878クロス
NGNG15までの正常な値が出ないんですよ
0879876
NGNGオーバーフローまで考慮に入ってなかった、おたくやるねぇ
0880クロス
NGNGなんかうまく出来ないみたいです。
0881876
NGNG俺も昔フィボナッチ数列のN番目の値求める時にオーバーフローしまくったけど
変数の型イジクリマワシまくってたらなんかいい値が出るようになったよ。
って回答になってないね、ごめん
0882クロス
NGNG成功しました。
ありがとうございました。
0883クロス
NGNGローカル変数と再帰呼び出しパラメータをプリント
するように出来ますか?
0884デフォルトの名無しさん
NGNGこうしたいってこと?
int factorial ( int number )
{
printf("%d\n", number); // ← こう?
if (number <= 1) {
return 1;
}
else{
return ( number * factorial (number - 1) ) ;
}
}
0885デフォルトの名無しさん
NGNG0887デフォルトの名無しさん
NGNG三行目 構造体を指すポインタ変数を確保する。
四行目 headのdataメンバーのキーと、削除したキーが等しいならば、
六行目 headの先頭アドレスをnodeにコピーする。(直感的にnodeはheadを指している)
ここまでの解釈で間違ってる所ありますか?
そして七行目のnodeのnextメンバーをheadに代入という所がわからないんです。
nodeはただのポインタ変数なのにメンバーが出てくるのがわからなくて。
八行目 nodeを削除。
九行目 削除成功
十一行目 そうでないならば、
十三行目 構造体を指すポインタ変数pを確保し、そこにheadの先頭アドレスを代入。
そして十四行目の、pのnextメンバーがNULLが等しくないならば、という所なんですが、
ここもpはただのポインタ変数なのになんでメンバーが出てくるのかわかりません。
解釈で間違えてる所を教えて下さい。
十五行目
0888デフォルトの名無しさん
NGNG{
double result = 1;
for (; n > 1; n--) {
result *= n;
if (log10(result) > DBL_MANT_DIG * log10(2)) {
result = 0;
break;
}
}
return result;
}
0889デフォルトの名無しさん
NGNG一つエラーが出てしまいました。
0890888
NGNG#include <float.h>
#include <math.h>
double factorial(unsigned n)
{
double result = 1;
for (; n > 1; n--) {
result *= n;
if (log10(result) > DBL_MANT_DIG * log10(2)) {
result = 0;
break;
}
}
return result;
}
0891デフォルトの名無しさん
NGNGnode が head を指しているというのは、node に操作すると head の中身を操作できるということ。
すなわち node->next は、head->next に等しい。
したがって、
head = node->next;
は、次のノードに head を進める。char*a; a = a + 1; という操作に近い。
p についても同じ。p = head とすることで、p で head の中身を操作できる。
0892872
NGNGどういうエラーが出たの?
コンパイラがエラーを出したのなら、それを貼り付けてくれ。
やり取りを円滑に進ませるために、情報を小出しにしないで
十分な情報を書き込んで欲しいんだけど…
0893デフォルトの名無しさん
NGNG0894デフォルトの名無しさん
NGNG説明どうもありがとうございます。
>887の続きなんですが、
十四行目 pのnextメンバーとNULLが等しくないならば、(さらに潜り)、
そして十六行目のp->next->data.keyとは何を意味してるんですか?
a_keyは削除しようとしているキーですよね。
p->next->data.keyと削除しようとしているキーが等しいならば、(さらに潜り)、
十八行目 pのnextメンバーをnodeにコピーする。
十九行目 nodeのnextメンバーをpのnextメンバーにコピーする。
二十行目 nodeを削除する。
二十一行目 削除成功。
そして二十三行目の(if文で偽ならば)pのnextメンバーをpにコピーする、なんですが、
直感的にどういう事を意味してるんですか?
二十七行目 削除失敗。
解釈で間違えている所を教えて下さい。
0895デフォルトの名無しさん
NGNGもう一度コンパイルしたらエラー出ませんでした。
私の間違えだったようです。
すみませんでした。
今度はちゃんと挿入できました。
0896872
NGNG最初に作ったinsertがリストの最後に挿入するもの。
次に作ったのが、keyが昇順になるように挿入するもの。
前者はinsertではなくaddとか名前がつくのが普通で、そのことを忘れてました。
>>869 の書き込みを↓のように書いてくれれば直ぐにわかったのに…
1,3,9,5という順番でを挿入しようとする(insertを呼ぶ)と、1,3,5,9となって欲しいのですが、
1,3,9,5となってしまいます。
0897デフォルトの名無しさん
NGNG0898デフォルトの名無しさん
NGNG1 -> 3 -> 5 にする処理。
(9を削るなら)
0899デフォルトの名無しさん
NGNGはい。
私もそう思って、何度も書こうとしているのですが、、
プログラムの解釈で混乱して上手くステップを踏めなくて。
図はアップローダーじゃなきゃ無理ですしね・・・。
どう解釈すればいいか教えて下さい!
0900デフォルトの名無しさん
NGNG> 計算してみたらあってましたよ。
それじゃいかんだろう。
例えば30の階乗は正しく計算できないわけで、
どういう場合に正しく計算できてどういう場合に
そうでないのかを理解していなければ、
恐くて使えないと思うんだが。
0901デフォルトの名無しさん
NGNGべつに886は「15までの階乗」と指定して質問してるんだからいいんじゃない?
それ以上のことが必要になったらまた質問するなり自分で調べるなりするでしょ。
0902578
NGNG超亀レスですが、激謝です。
おうちではコンパイルできないので学校行ってから試してみます。
C激初心者なんで、分からないとこが少々ありますが、これを使って勉強します。
ありがとうございましたっ。
0903デフォルトの名無しさん
NGNGp->next->data.keyとはpのnextメンバーのdataキーということですよね?
これが削除するってことなんですか?
0904デフォルトの名無しさん
NGNG直感的なイメージではどんなイメージをすれば良いのでしょうか?
0905デフォルトの名無しさん
NGNGdelete関数は引数で渡したa_keyと等しいkeyを持つ要素をリスト中から削除するというように作った。
機能としては2つに分かれて、1つはa_keyと等しいkeyを持つ要素をリスト中から探す。
もう1つは、探し出した要素をリストから削除する。
この部分が探すところ。
if (head->data.key == a_key) {
/* ここに削除処理が入る */
return 1;
} else {
nodeType* p = head;
while (p->next != NULL) {
if (p->next->data.key == a_key) {
/* ここに削除処理が入る */
return 1;
}
p = p->next;
}
}
return 0;
最初のifは探している要素がリストの先頭にあるかという判定をしていて、
削除するときにheadをいじらなければならないので、特別な扱いにしている。
本来ならheadがNULLかをチェックした方がいいのだが入れ忘れた。
単方向リストの削除の場合、削除する要素の1つ前の要素のnextをいじらなければならない。
そのため、elseで定義しているpは1つ前の要素を指すようにしている。
p->next->data.key == a_key の部分は、pの次の要素のkeyがa_keyと等しいか判定する。
等しければ削除、等しくなければpを更新して、次(次の次?)の要素を調べられるようにする。
リストの終端(p->nextがNULL)まで辿り着いたら、削除できませんでしたとなる。
0906905
NGNGnode = head;
head = node->next;
free(node);
node = p->next;
p->next = node->next;
free(node);
headとp->nextが違うだけで形は同じ。上の方を解説すると、
削除する要素を指すのはheadだけ。headを書き換えるので、その前にnodeも指すようにして
要素を見失わないようにする。
次にheadを書き換える。headを次の要素を指すことで短絡させ、要素をリスト中からはずしている。
ここはheadとnodeは同じものを指しているのでhead = head->next;と書いても同じ意味。
最後に削除する要素を実際に削除する。
0907デフォルトの名無しさん
NGNG構造体を箱で描く。
ポインタ変数は点にラベルを書いて表し、線を引く(矢印がよい)。
next とかは、箱の中の変数から、(自分自身を含む)箱への線が結ばれる状態。
0908デフォルトの名無しさん
NGNG判定結果を表示するプログラムを作成しなさい。
3科目とも60点以上のとき、 “あなたは優秀です。”
3科目中2科目が60点以上のとき、“あなたは合格です。”
3科目中1科目だけが60点以上のとき、"あなたは保留です。再度試験を受けて下さい。“
3科目とも60点未満のとき、"あなたは不合格です。来年がんばりましょう。"
と出るように作れという問題なのですが初心者な物で躓いてます。
教えて下さい。よろしくお願いします。if文をうまく使うようですが。
0909デフォルトの名無しさん
NGNG#include <stdio.h>
int main(void)
{
int e, m, j;
int flags = 0;
scanf("%d", &e);
scanf("%d", &m);
scanf("%d", &j);
if(e >= 60) flags |= 0x00000001;
if(m >= 60) flags |= 0x00000002;
if(j >= 60) flags |= 0x00000004;
switch(flags)
{
case 0x00000000: puts("あなたは不合格です。来年がんばりましょう。"); break;
case 0x00000007: puts("あなたは優秀です。"); break;
case 0x00000001:
case 0x00000002:
case 0x00000004: puts("あなたは保留です。再度試験を受けてください。"); break;
case 0x00000003:
case 0x00000006:
case 0x00000005: puts("あなたは合格です。"); break;
}
return(0);
}
0910デフォルトの名無しさん
NGNG#include <stdio.h>
int main(int argc, char *argv[])
{
const int BORDER = 60;
const char *text[] = {"あなたは不合格です。来年がんばりましょう。\n","あなたは保留です。再度試験を受けて下さい。\n","あなたは合格です。\n","あなたは優秀です。\n"};
int check=0;
int e,m,j;
printf("英語 数学 国語>");
scanf("%d %d %d",&e,&m,&j);
if(e >= BORDER) check++;
if(m >= BORDER) check++;
if(j >= BORDER) check++;
printf(text[check]);
return 0;
}
0911デフォルトの名無しさん
NGNGすいません。わざわざやって貰ったのに申し訳ないんですが
本当に教科書の最初の方の知識だけ使って解く問題なので
int x y z
printf("英語="); scan("%d",$x);
printf("国語="); scan("%d",$y);
printf("数学=") ;scan("%d",$z);
if....って続くように作るようなんです。
だからflagとかcaseとか使わないしわからないんです。使うのは
あとはelse ifとかelse位なんです。
0912デフォルトの名無しさん
NGNG上にも書いたんですが本当に基本のだけ使うのでBORDERとか check++
とかは使わないで出来ませんか?ホントifとelseだけで。
最終的には8パターンの実行結果が出るように作るんですけど。
�@3科目とも60点以上のとき �A英語および数学が60点以上のとき �B英語および国語が60点以上のとき
�C数学および国語が60点以上のとき �D英語のみが60点以上のとき
�E数学のみが60点以上のとき �F国語のみが60点以上のとき �G3科目とも60点未満のとき
こんな感じに。
0913デフォルトの名無しさん
NGNGconst char * は static const char *const の方がいいんでないかな。
scanf("%d %d %d", はscanf("%d%d%d", でいいね。
>>908
定数くらい使わせろ。
const int BORDER = 60;
if (e >= BORDER && m >= BORDER && j >= BORDER) {
printf("優秀(以下略)\n");
} else if (e >= BORDER && m >= BORDER && j < BORDER ||
e >= BORDER && m < BORDER && j >= BORDER ||
e < BORDER && m >= BORDER && j >= BORDER) {
printf("合格\n");
} else if (e >= BORDER && m < BORDER && j < BORDER ||
e < BORDER && m >= BORDER && j < BORDER ||
e < BORDER && m < BORDER && j >= BORDER) {
printf("保留\n");
} else {
printf("不合格\n");
}
0914デフォルトの名無しさん
NGNGいや、使わせろといわれましても。。
学校の宿題なので習っていない物を使うわけには行かないんです。。すいません。
なんか8パターンあるからどうとかって言われたんですけどわからなくて。
どうかよろしくお願いします。ifとelseで。。
0915デフォルトの名無しさん
NGNGだから後は勝手に自分で書き換えろ。
>>909も>>910も>>913もきちんと8パターンについて処理している。
0916デフォルトの名無しさん
NGNGここは宿題をやってもらうスレじゃないぞ。
宿題を勝手にやるスレだからな。
0917デフォルトの名無しさん
NGNG出力結果は4パターンでしょ?
8パターンの実行結果言われても
>>916
ワラタ
0918デフォルトの名無しさん
NGNG間違えた。 >>914へのレスです
0919デフォルトの名無しさん
NGNG枝分かれさせていく図までは書けたんですがこの先どうしていいのか。
皆さんが書いてくださったプログラムは見たことのない物が使われていてわからないんです。
0920デフォルトの名無しさん
NGNG�@英語数学国語が60点以上のとき
合格
�A英語数学が60点以上のとき
�B英語国語が60点以上のとき
�C数学国語が60点以上のとき
保留
�D英語が60点以上のとき
�E数学が60点以上のとき
�F国語が60点以上のとき
不合格
�G英語数学国語が60点未満のとき
0921デフォルトの名無しさん
NGNG大分同じ感じがする気がします。でも文の間にある縦棒二本とかどうすればいいのか
さっぱり。。教えて下さい。
0922デフォルトの名無しさん
NGNGint main(void)
{
int e, m, j;
scanf("%d", &e);
scanf("%d", &m);
scanf("%d", &j);
if((e >= 60) && (m >= 60) && (j >= 60)) //1
puts("あなたは優秀です。");
else if((e >= 60) && (m >= 60) || //2
(e >= 60) && (j >= 60) || //3
(m >= 60) && (j >= 60)) //4
puts("あなたは合格です。");
else if((e >= 60) || (m >= 60) || (j >= 60)) //5, 6, 7
puts("あなたは保留です。再度試験を受けて下さい。");
else //8
puts("あなたは不合格です。来年がんばりましょう。");
return(0);
}
0923デフォルトの名無しさん
NGNGじゃあ縦棒二本を){}elseif(で置き換えろ
0924デフォルトの名無しさん
NGNGif (x >= 60 && y >= 60 && z >= 60)
printf("優秀(以下略)\n");
elsx if (x >= 60 && y >= 60 && z < 60)
printf("合格\n");
elsx if (x >= 60 && y < 60 && z >= 60)
printf("合格\n");
elsx if (x < 60 && y >= 60 && z >= 60)
printf("合格\n");
elsx if (x >= 60 && y < 60 && z < 60)
printf("保留\n");
elsx if (x < 60 && y >= 60 && z < 60)
printf("保留\n");
elsx if (x < 60 && y < 60 && z >= 60)
printf("保留\n");
else
printf("不合格\n");
0925デフォルトの名無しさん
NGNGご親切に番号までふっていただいてありがとうございます。
>>924
おおっ!
なんかもう見てわからない記号は「&&」だけになりました!
一個一個を区切る場合はこのダブルアンドを使うしかないんですね?
なんか教科書にも載って無いし習ってもなかったから
どうすればいいのかわからなかったんです。
0926デフォルトの名無しさん
NGNG条件に当てはまる物をかけるかどうかなんですかね?
あと913さんのは60をB〜に変えていると。
かなりの長時間皆さんありがとうございました。
きっとこれからも来ると思うんでどうかよろしくお願いいたします。
0927デフォルトの名無しさん
NGNGそんな教科書捨てちまえ。
0928デフォルトの名無しさん
NGNGswitch (i) ...
0929デフォルトの名無しさん
NGNG>906
とても細かい説明どうもありがとうございます。
そのような感じで>872のinsertの説明もして頂けないでしょうか?
お願いします!
0930デフォルトの名無しさん
NGNG0931デフォルトの名無しさん
NGNG&&はand。||はor。
>>928
int i = (x<60?0:1) + (y<60?0:1) + (z<60?0:1);
0932デフォルトの名無しさん
NGNG#include<string.h>
#define BUFSIZE 1000
main()
{
int i=0;
char filename[100];
char buf[BUFSIZE];
FILE *fp;
puts("ファイル名を入力");
gets(filename);
fp=fopen(filename,"r");
fgets(buf,BUFSIZE,fp);
for (i=strlen(buf)-2 ; i>=0; i--)
printf("%c",buf[i]);
fclose(fp);
}
これを元に、半角英数字のみの何行もあるテキストファイルを読み込んで
各行の文字列を逆に表示するプログラムを書くという問題です。
よろしくお願いします。
0933932
NGNGfgetsのところはfscanfなどのほかの関数でもいいです。
0934デフォルトの名無しさん
NGNG0935デフォルトの名無しさん
NGNG0936デフォルトの名無しさん
NGNGそれでいいんじゃない?
(ちょっとバグってるけど)
0937デフォルトの名無しさん
NGNG何行もあるテキストファイル
0938デフォルトの名無しさん
NGNGfor (i=strlen(buf)-2 ; i>=0; i--)
printf("%c",buf[i]);
putchar('\n');
}
0939デフォルトの名無しさん
NGNG1行がBUFSIZEを超えたときは?
0940デフォルトの名無しさん
NGNG小さい方の数以上で大きい方の数以下の偶数を
すべて加えた値を表示するプログラムを作成せよ。
おせーて下さい。
0941デフォルトの名無しさん
NGNG#include <stdio.h>
#include <stdlib.h>
int
main(int argc, char **argv)
{
int a,b;
if (argc<3) return 1;
a = atoi(argv[1]);
b = atoi(argv[2]);
a = a < b ? b : a;
printf("%d\n", a<2 ? 0 : a/2*(a/2+1));
return 0;
}
0942デフォルトの名無しさん
NGNGint main(void)
{
int sum=0;
int min,max;
int i;
scanf("%d%d",&min,&max);
if(max < min){
i=min;min=max;max=i;
}
for(i=(min+1)/2*2;i<=max;i+=2)
sum+=i;
printf("%d\n",sum);
return 0;
}
0943デフォルトの名無しさん
NGNGif (i%2==0) sum += i;
0945デフォルトの名無しさん
NGNG0946デフォルトの名無しさん
NGNGhttp://members.goo.ne.jp/home/madcap0
0947デフォルトの名無しさん
NGNGint main(void) {
int n, i;
printf("Input a Number:");
scanf("%d", &n);
for (i = 1; i <= n / 2; i++) {
printf("%d, %d\n", i, n - i);
}
return 0;
}
0948デフォルトの名無しさん
NGNG#include<string.h>
#include<stdlib.h>
typedef char* ET;
struct node
{ET x;struct node *next;};
insertafter(struct node *p , ET x)
{struct node *new;
new = (struct node *)malloc( sizeof(struct node) );
new->x = x;
new->next = p->next;
p->next = new;}
0949948
NGNG{struct node *tmp;
if( (tmp = p->next) != NULL )
{p->next = tmp->next;free(tmp);}
}
struct node * initlist()
{struct node *new;
new = (struct node *)malloc( sizeof(struct node) );
new->next = NULL;
return(new);}
main()
{char buf[1000];
struct node *head;
head = initlist();
while ( fgets(buf,1000,stdin) != NULL )
insertafter( head,strdup(buf) );
while ( head->next != NULL )
{printf("%s",head->next->x);
deletenext(head);}
}
このプログラムのリストの最後尾のノードを返す関数を作れという問題です。
よろしくお願いします。
0950デフォルトの名無しさん
NGNG新スレできました
0951905
NGNGinsert関数は引数で渡したdpをkeyが昇順になるようにリストに挿入するように作った。
機能としては、リストから挿入場所を探す、dpをリストに挿入する。
リストへの挿入は更にリストの要素(node)の作成、実際の挿入とに分かれる。
この部分が要素を作成しているところ。
if ((node = (nodeType*)malloc(sizeof(nodeType))) == NULL) return 0;
node->data = *dp;
mallocで要素分の領域を確保しているが、できなかったら挿入失敗となる。
次に*dpを代入して、挿入する要素を作っている。
nextメンバは、実際に挿入するときに書き換えるのでここではなにもしない。
この部分が挿入しているところ。
node->next = p->next;
p->next = node;
他にもp->nextをheadにした部分がある。
pの指す要素の次に挿入することなる。pの次の要素はp->nextだけが指しいるため、
まずpの次の要素を挿入する要素の次に入れる。そして、pの次に挿入する要素を入れる。
その他の部分が探しているところ。
リストに何も要素がないとき先頭に挿入。
先頭要素のkeyが挿入するkeyよりも小さいときも昇順にするため、先頭に挿入。
deleteと同じく、挿入する箇所の1つ前?の要素のnextをいじらなければならないので
そのためpは1つ前の要素を指すようにしている。
pの次の要素のkeyが挿入するkeyよりも小さいとき昇順にするため、そこに挿入する。
挿入する箇所が見つかったのでループを抜ける。
リストの終端に辿り着いた時(p->nextがNULL)は終端に挿入することになるので、同じくループを抜ける。
mallocが失敗する以外は挿入できましたとなる。
0952デフォルトの名無しさん
NGNGstruct node * gettail(struct node *p) {
while (p->next != NULL) p = p->next;
return p;
}
何でinsertnextじゃないんだろ…
0953デフォルトの名無しさん
NGNG拘束条件は?
「自然数の列」だから個数は自由として、重複は認めるの?
0954デフォルトの名無しさん
NGNG0955デフォルトの名無しさん
NGNG0956山崎渉
NGNGピュ.ー ( ^^ ) <これからも僕を応援して下さいね(^^)。
=〔~∪ ̄ ̄〕
= ◎――◎ 山崎渉
0957デフォルトの名無しさん
NGNG0958デフォルトの名無しさん
NGNG0959デフォルトの名無しさん
NGNG0960デフォルトの名無しさん
NGNG0961デフォルトの名無しさん
NGNGと ) | |
Y /ノ | |
/ ) .人
_/し' < >_Λ ∩
(_フ彡 V`Д´)/
/ ←>>960
0962デフォルトの名無しさん
NGNGC/C++の宿題やらせてください。7代目。
http://pc2.2ch.net/test/read.cgi/tech/1053963794/
0963デフォルトの名無しさん
NGNG0964デフォルトの名無しさん
NGNGもうそれも終了しかかってるわけだが...。
0965デフォルトの名無しさん
NGNGなぜドイツ語風に「ぬる」と読むのか。
0966デフォルトの名無しさん
NGNG実際の発音聞いてみればいいんじゃない。
http://dictionary.goo.ne.jp/search.php?MT=null&kind=&mode=0&ej.x=37&ej.y=10
0967デフォルトの名無しさん
NGNGのこり34取ってやってくれ
0968デフォルトの名無しさん
NGNG0969水先案内人
NGNG0971970
NGNG0972デフォルトの名無しさん
NGNGともあれ、おつかれさま
0973デフォルトの名無しさん
NGNG最初は fgets と fputs で次は fgets と sscanf と fprintf の方がいいと思うんだが。
0974デフォルトの名無しさん
NGNG0975デフォルトの名無しさん
NGNGうわー、絶対いっしょに仕事したくないタイプ。
0976デフォルトの名無しさん
NGNG0977デフォルトの名無しさん
NGNGうわー、絶対いっしょに仕事したくないタイプ。
0978デフォルトの名無しさん
NGNGうわー、絶対いっしょに仕事したくないタイプ。
0979デフォルトの名無しさん
NGNG自己完結してるんだからちょっかいだすなよ…
0980デフォルトの名無しさん
NGNGうわー、絶対いっしょに仕事したくないタイプ。
0981デフォルトの名無しさん
NGNG0982デフォルトの名無しさん
NGNGうわー、絶対いっしょに仕事したくないタイプ。
0983デフォルトの名無しさん
NGNGうわー、絶対いっしょに仕事したくないタイプ。
0984デフォルトの名無しさん
NGNGウワーーーーーーン!!
レス数が950を超えています。1000を超えると書き込みができなくなります。