C言語なら俺に聞け(入門編)Part 65
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2010/05/28(金) 01:02:53★前スレ
C言語なら俺に聞け(入門編)Part 64
http://pc12.2ch.net/test/read.cgi/tech/1273846013/
★過去スレ
http://makimo.to:8000/cgi-bin/search/search.cgi?q=%82b%8C%BE%8C%EA%82%C8%82%E7%89%B4%82%C9%95%B7%82%AF&andor=AND&sf=0&H=&view=table&D=tech&shw=5000
★初心者、初級者の方は他の質問スレのほうが良いかもしれません。
例えば
【初心者歓迎】C/C++室 Ver.72【環境依存OK】
http://pc12.2ch.net/test/read.cgi/tech/1267775473/
とか
★教えて欲しいのではなく宿題を丸投げしたいだけなら
↓宿題スレ↓へ行ってください。
C/C++の宿題片付けます 135代目
http://pc12.2ch.net/test/read.cgi/tech/1269438098/
★C++言語については避けてください。C++対応明記スレへどうぞ
★分からない事をなるべく詳しく書いて下さい。
★ソースコードを晒すと答えやすくなるかもしれません。
# 抜粋/整形厳禁、コンパイラに渡したソースをそのまま貼ること
# サイズが大きい場合は宿題スレのアップローダ等を利用してください
★開発環境や動作環境も晒すと答えが早いかもしれません。
★質問者は最初にその質問をした時のレス番号を名前欄に書いて下さい。
0002デフォルトの名無しさん
2010/05/28(金) 19:09:390003デフォルトの名無しさん
2010/05/28(金) 19:10:59立てようとしたら立ってたので助かった
それとテンプレ修正
C/C++の宿題片付けます 136代目
http://pc12.2ch.net/test/read.cgi/tech/1274827528/
【初心者歓迎】C/C++室 Ver.73【環境依存OK】
http://pc12.2ch.net/test/read.cgi/tech/1274395127/
0004デフォルトの名無しさん
2010/05/28(金) 19:53:38x軸、y軸平面において、中心(0,0)半径1の円の中の座標を5個ランダムに
表示するプログラム。必ずdo while とforを使えということです。
#include <stdio.h>
#include<math.h>
#include <stdlib.h>
int main(void)
{
int i;
for (i=0 ; i<5 ; i++)
printf("%d\n",do{rand(x),rand(y)}while(x^2+y^2<1));
return 0;
}
これじゃだめですよね。どうしたらいいですか?
0005デフォルトの名無しさん
2010/05/28(金) 19:55:360006デフォルトの名無しさん
2010/05/28(金) 20:03:10#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int i;
double x, y;
srand(time(NULL));
for(i=0; i<5; i++) {
do {
x = 2.0 * rand() / RAND_MAX - 1;
y = 2.0 * rand() / RAND_MAX - 1;
}while(x * x + y * y > 1);
printf("%f, %f\n", x, y);
}
return 0;
}
0007デフォルトの名無しさん
2010/05/28(金) 20:45:43入力した文字列を反転して出力するプログラムを作りました
#include<stdio.h>
#include<string.h>
int main(){
char str[256]; //反転前
char str_r[256]; //反転後
int len,i,j;
printf("入力>");
gets(str);
len=strlen(str);
j=len;
for(i=0;i<len;i++){
str_r[i]=str[j-1];
j--;
}
printf("%s\n",str_r);
return 0;
}
これで文字列を入力すると3文字や7文字などの特定の字数のときは問題ないのですが、
それら以外の字数の文字列を入力すると反転した文字列が出力された後に『や・などのゴミがついてしまいます
何故でしょうか?
0008デフォルトの名無しさん
2010/05/28(金) 20:49:57'\0' を入れてないから
0009デフォルトの名無しさん
2010/05/28(金) 20:52:39うんx^2+y^2>1
?
x*x+y*y<1では?
円の内部ですよ?
0010デフォルトの名無しさん
2010/05/28(金) 20:54:20???
0011デフォルトの名無しさん
2010/05/28(金) 20:56:35x*x+y*y>1なら円の外部では??
あとRAND_MAX - 1; じゃなくて
RAND_MAX 1;では?RAND_MIN -1;
では?
0012デフォルトの名無しさん
2010/05/28(金) 20:58:10もう一度よく考えてみて
それでも分からなかったら実行してみるんだ
0013デフォルトの名無しさん
2010/05/28(金) 21:02:52すっごいバカがいるw
0014デフォルトの名無しさん
2010/05/28(金) 21:03:00実行したら>>6はあってるっぽいけど
>>6は何故そうなる?
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int i;
double x, y;
srand(time(NULL));
for(i=0; i<5; i++) {
do {
x = rand()
y = rand()
}while(x * x + y * y > <1);
printf("%f, %f\n", x, y);
}
return 0;
}
じゃだめなんですか?
0015デフォルトの名無しさん
2010/05/28(金) 21:06:40#include <stdlib.h>
int main(void)
{
int i;
double x, y;
srand(time(NULL));
for(i=0; i<5; i++) {
do {
x = rand()
y = rand()
}while(x * x + y * y <1);
printf("%f, %f\n", x, y);
}
return 0;
}
どう見ても間違いじゃなさそうなプログラムで実行してみた。
結果× 理由 t.c:14 prase eroor before y
クソが。yの前は何もねーのに何がエラーだよ。
意味わかんねーよ・・・
0016デフォルトの名無しさん
2010/05/28(金) 21:10:440017デフォルトの名無しさん
2010/05/28(金) 21:11:42特に、ありがちなのはセミコロン抜け
0018デフォルトの名無しさん
2010/05/28(金) 21:13:45普通にここが初歩なんだが。
x = 2.0 * rand()
2.0って何だ?あとRAND_MAX -1って意味わからん。
どういう意味?RANDは自由に値を取るのにMAX?
0019デフォルトの名無しさん
2010/05/28(金) 21:13:50strcat(a, " ");
strcat(a, b);
0020デフォルトの名無しさん
2010/05/28(金) 21:14:43誰がRANDが自由に値を取るって決めたんだよw
0021デフォルトの名無しさん
2010/05/28(金) 21:14:46#include <stdio.h>
#include <string.h>
int main(void) {
char a[] = "abcdefg";
char b[] = "uvwxyz";
char c[1024];
strcpy(c, a);
strcat(c, " ");
strcat(c, b);
puts(c);
return 0;
}
/* end */
0022デフォルトの名無しさん
2010/05/28(金) 21:17:16RANDは0から10ケタ以上の特定のある整数までの数を自由に動く
乱数だと説明してあった。それなのにRAND__MAXが-1とか意味わかんね。
もう死にたい
0023デフォルトの名無しさん
2010/05/28(金) 21:26:35(double)rand() / RAND_MAX にすると0から1までの乱数が得られる。
2.0 * rand() / RAND_MAX で2倍すると0から2までの乱数が得られる。
2.0 * rand() / RAND_MAX - 1 で そこから1をひくと-1から1までの乱数が得られる。
0024デフォルトの名無しさん
2010/05/28(金) 21:43:29r r+1 r+2 ・・・ nと(数字 半角 数字・・・)で一括して読み込みたいのですが
scanf()はリターンキー押すまで読み込みませんしn個の%dが置けませんでした
0025デフォルトの名無しさん
2010/05/28(金) 21:46:400026デフォルトの名無しさん
2010/05/28(金) 21:47:160027デフォルトの名無しさん
2010/05/28(金) 21:47:310028デフォルトの名無しさん
2010/05/28(金) 21:50:47do whileループが何をしてるのかよく考えてみろ
0029デフォルトの名無しさん
2010/05/28(金) 21:57:03円の公式高校の時習ってないの?
0030デフォルトの名無しさん
2010/05/28(金) 21:57:580031デフォルトの名無しさん
2010/05/28(金) 21:59:30003224
2010/05/28(金) 22:00:24r r+1 ・・・ nを入力し終わるまで改行をしないで読み込みたいんですが・・・
下記のように実装したいのですが
1行目 チーム数: 6(ここでnを読み込み)
2行目 チーム1の成績: 0 2 1 3 4(n-1個の試合数の結果を読み込み)
3行目 チーム2の成績: 0 1 7 3 7(n-1個の試合数の結果を読み込み)
0033デフォルトの名無しさん
2010/05/28(金) 22:08:49scanf("%d", &n);
for(i=0; i<n; i++) scanf("%d", a + i);
for(i=0; i<n; i++) scanf("%d", b + i);
0036デフォルトの名無しさん
2010/05/29(土) 00:42:29x*x+y*y>1だと円の外部の条件でしょ?
俺は内部の条件と言ったんですが。
0037デフォルトの名無しさん
2010/05/29(土) 00:44:17!(x*x+y*y<1)
0038デフォルトの名無しさん
2010/05/29(土) 00:46:54ワロタww
だかれそれは円の外部の条件だろうがww
0039デフォルトの名無しさん
2010/05/29(土) 00:57:21何で>>5で上手くいくんだよww
不等式逆にしたら外部になった。
whil()は()の条件の間って意味だろ
何故だww
0040デフォルトの名無しさん
2010/05/29(土) 01:06:010041デフォルトの名無しさん
2010/05/29(土) 01:08:16その中で if then break で良くね?
0042デフォルトの名無しさん
2010/05/29(土) 01:36:26分かった。noのとき実行を表示するんだなww
俺馬鹿すぎワロタww。
ありがとう皆。
0043デフォルトの名無しさん
2010/05/29(土) 01:44:49模索し続けるってことかw
これでも数学偏差値70だからなw
まーありがとう。
0044デフォルトの名無しさん
2010/05/29(土) 02:09:14学生のうちに勉強の仕方を習得しろよ
0045デフォルトの名無しさん
2010/05/29(土) 02:11:500046デフォルトの名無しさん
2010/05/29(土) 02:15:41必ず一定時間で終了する。
#include <stdio.h>
#include <stdlib.h>
#define _USE_MATH_DEFINES
#include <math.h>
int main(void)
{
for(int i = 0; i < 5; i++){
double r = (double)rand()/RAND_MAX;
double th = (double)2*M_PI*rand()/RAND_MAX;
double x = r*cos(th);
double y = r*sin(th);
printf("[%d] x=%f y=%f\n", i, x, y);
}
do{}while(0);
return 0;
}
0047デフォルトの名無しさん
2010/05/29(土) 02:20:52いや、お前がFランなのは、点を取るスキルがないからではなくて、お前の頭が悪いからだからww
0048デフォルトの名無しさん
2010/05/29(土) 02:24:45極座標か。「ランダム」の意味にこだわる人には受け入れがたい結論だ。
0049デフォルトの名無しさん
2010/05/29(土) 02:25:33いやいや人を勝手にFラン認定するなよ
テストの点も取れるし、お前よりは頭もいいと思うよ
点を取るスキルってのは確かにあるのに
それが分からないの?
0050デフォルトの名無しさん
2010/05/29(土) 02:26:370051デフォルトの名無しさん
2010/05/29(土) 02:27:3500524
2010/05/29(土) 02:27:50ここはこれから4年卒業するまで使わせてもらうから。
ここ2週間ここで質問しなかったら本当大変な事になってる。
感謝してる。10歳の女の子のセックス動画持っててお前らに見せてやりたいが
逮捕されるんで控えとく。お前ら本当にありがとう。
00534
2010/05/29(土) 02:29:42絶対に逆ギレだけはしないようにするからこれからも付き合ってくれ^^
0054デフォルトの名無しさん
2010/05/29(土) 02:30:380056デフォルトの名無しさん
2010/05/29(土) 02:34:080057デフォルトの名無しさん
2010/05/29(土) 03:13:21式だけ見ると円の外を示す条件になってるからコード見るのに不慣れだと間違えるんだろうなって思った。
>>52
なんかそのようなの前も見た気がする。よく来てるんですね。
0059デフォルトの名無しさん
2010/05/29(土) 04:24:360060デフォルトの名無しさん
2010/05/29(土) 04:40:55>>50
00614
2010/05/29(土) 04:47:09いや数学だけは偏差値高かった・・
だが理科が苦手w何でだろうw
プログラムって理科的なのかな?
今日から2日間家にこもって48時間
プログラム課題に取り組むお("・ω・`)しんどいわー
がんばるわー
0062デフォルトの名無しさん
2010/05/29(土) 04:56:120063デフォルトの名無しさん
2010/05/29(土) 05:10:44>>50
0064デフォルトの名無しさん
2010/05/29(土) 05:12:470065デフォルトの名無しさん
2010/05/29(土) 05:13:14>理科
中学生か。どおりで自意識過剰なんですね、よくわかります。
0066デフォルトの名無しさん
2010/05/29(土) 08:32:16高校だと、化学・物理・地学・生物だよな〜。
0067デフォルトの名無しさん
2010/05/29(土) 09:47:560068デフォルトの名無しさん
2010/05/29(土) 10:07:02ゆとり科目か‥‥‥。
0069デフォルトの名無しさん
2010/05/29(土) 10:11:373年間、と本当のことをいったらいいのに。
0070デフォルトの名無しさん
2010/05/29(土) 10:14:49していることを検出する方法はないでしょうか?
#include <stdio.h>
int i[5];
int main(void) {
int *iptr;
iptr = i;
iptr[5] = 10;
printf("%d\n",iptr[5]);
return 0;
}
0071デフォルトの名無しさん
2010/05/29(土) 10:22:22#include <stdio.h>
int i[5];
int main(void) {
int *iptr;
const int i_size = sizeof(i)/sizeof(*i);
iptr = i;
if(5 < i_size){
iptr[5] = 10;
printf("%d\n",iptr[5]);
} else puts("ERR");
return 0;
}
0072デフォルトの名無しさん
2010/05/29(土) 10:24:15007370
2010/05/29(土) 10:30:14おかしな挙動をしているプログラムのバグがこのパターンだったのですが、
デバッグに凄く苦労しました。gdbのwatchが超便利でなんとか原因がわかった
のですが、なにかもっと的確に判る方法がないものかなと思っています。
どうもありがとうございました。
0074デフォルトの名無しさん
2010/05/29(土) 10:33:16これならVC++は常に範囲チェック自動でする
0075デフォルトの名無しさん
2010/05/29(土) 10:35:43_msize・・・ ヒープに割り当てられたメモリ ブロックのサイズを返します。
これ使うと安全に書き込める場所が判明するけど、はじめの確保量よりでかい。
さらにここの数字の数倍を書き込んでも異常停止しない。
なのでデバッガで発見するのは無理だ。
007670
2010/05/29(土) 10:51:1970のようなバグは何か名前がついてますか?
こういうのはバッファーオーバーランとは言わないですよね。
なんと表現したらいいんでしょう?
0077デフォルトの名無しさん
2010/05/29(土) 10:52:540078デフォルトの名無しさん
2010/05/29(土) 13:18:22固定長でも常にvectorというのは流石に無い
boost::array使え
0079デフォルトの名無しさん
2010/05/29(土) 13:31:05これのコアダンプ理由と対策をおせーてください
// fff.cpp : コンソール アプリケーションのエントリ ポイントを定義します。
//
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX 3
typedef struct {
char b[30];
} stSub;
typedef struct {
char a[30];
stSub *sub;
stSub *sub2;
} stMain;
void func2(stSub **sub){
stSub *p;
int i=0;
*sub=(stSub *)calloc(MAX,sizeof(stSub));
p=*sub;
for(i=0;i<MAX;i++){
sprintf(p[i].b,"hoge_%d",i);
}
//printf("%s\n",p[0].b);
}
つづく
0080デフォルトの名無しさん
2010/05/29(土) 13:31:48int i=0;
stSub **tmp[MAX];
stSub *tmpSub;
*main = (stMain *) calloc (1,sizeof(stMain));
strcpy((*main)->a,"fugafuga");
/* 一つ目*/
func2(&(*main)->sub);
for(i=0;i<MAX;i++){
func2(&(*tmp)[i]);
}
(*main)->sub2=(stSub *)calloc(MAX*MAX,sizeof(stSub));
tmpSub=(*main)->sub2;
for(i=0;i<MAX;i++){
memcpy(tmpSub,*tmp[i],sizeof(stSub)*MAX);
tmpSub+=sizeof(stSub)*MAX;
}
}
int main(){
int i=0;
stMain *main;
func(&main);
printf("main=%s\n",main->a);
for(i=0;i<MAX;i++){
printf("%s\n",main->sub[i].b);
}
for(i=0;i<MAX;i++){
printf("%s\n",main->sub2[i].b);
}
}
0081デフォルトの名無しさん
2010/05/29(土) 13:33:31freeしてないのは無視してください
0082デフォルトの名無しさん
2010/05/29(土) 13:34:240083デフォルトの名無しさん
2010/05/29(土) 13:35:14そっちがないだろ。標準装備で動くようにすべき。わざわざboostいれて使い分けるのは不便。
0084デフォルトの名無しさん
2010/05/29(土) 13:45:21書き方が気持ち悪くて読みにくい
func2(&(*tmp)[i]);
tmpSub+=sizeof(stSub)*MAX;
008584
2010/05/29(土) 13:49:510086デフォルトの名無しさん
2010/05/29(土) 13:51:05本当ですね
あなたの顔みたいに気持ち悪くて読みにくいですね・・・・
0087デフォルトの名無しさん
2010/05/29(土) 16:34:220088デフォルトの名無しさん
2010/05/29(土) 16:53:170089デフォルトの名無しさん
2010/05/29(土) 17:39:57いちいち噛み付いてたらアドバイスされる方も心穏やかじゃねーだろ。
っていうか一体どんだけ性格悪いだよw
0090デフォルトの名無しさん
2010/05/29(土) 17:44:120091デフォルトの名無しさん
2010/05/29(土) 17:47:04>>4みたいなアホとかずうずうしい教えてくんが煽られてるだけ
0092デフォルトの名無しさん
2010/05/29(土) 18:46:46http://codepad.org/HJ4gfLyw
読みやすいようにインデントしときました。
解読は解答は他の人にまかせます。 コードが高度すぎて当方では手におえません。
0093デフォルトの名無しさん
2010/05/29(土) 18:57:23ここはQがボケてAが突っ込むっていうネタスレだろ
0094デフォルトの名無しさん
2010/05/29(土) 19:00:57で答えは出てる
0095デフォルトの名無しさん
2010/05/29(土) 19:23:530096デフォルトの名無しさん
2010/05/29(土) 19:25:040097デフォルトの名無しさん
2010/05/29(土) 19:25:450098デフォルトの名無しさん
2010/05/29(土) 19:26:450099デフォルトの名無しさん
2010/05/29(土) 19:30:460100デフォルトの名無しさん
2010/05/29(土) 19:32:470101デフォルトの名無しさん
2010/05/29(土) 19:34:290102デフォルトの名無しさん
2010/05/29(土) 19:42:12"\x01\xFA"などバイナリデータを直にソースへ書けば
扱えるのはSJISかUTF16LEのみだろ。
EUCやUTF8の日本語を書き込んで、それがコメント以外なら最終的にはUTF16LEに変換される。
0103デフォルトの名無しさん
2010/05/29(土) 19:48:090104デフォルトの名無しさん
2010/05/29(土) 19:48:39それをcharかwchar_tの配列へ転送しても正しい操作はできないが。
UTF16LEをwchar_tの配列へ転送すればアクセス可能
0105デフォルトの名無しさん
2010/05/29(土) 19:51:20それがwinとの違い。ベースコードは設定で変更可能かもしれない。
0106デフォルトの名無しさん
2010/05/29(土) 19:55:07それは ASCII じゃなくて JIS七単位符号だ。
0107デフォルトの名無しさん
2010/05/29(土) 19:59:27/で世界統一すべき。
0108デフォルトの名無しさん
2010/05/29(土) 20:02:270109デフォルトの名無しさん
2010/05/29(土) 20:03:140110デフォルトの名無しさん
2010/05/29(土) 22:00:3379,80のコードを、初心者でも読めるような簡単な形式に書き換えろ
0111デフォルトの名無しさん
2010/05/29(土) 22:33:19{
printf( fmt, ... );
}
みたいに可変長引数をそのままprintfに渡すこと出来ますか?
0112デフォルトの名無しさん
2010/05/29(土) 22:35:490113デフォルトの名無しさん
2010/05/29(土) 22:36:520114デフォルトの名無しさん
2010/05/29(土) 22:57:46fmtに"%s"とかを入れるってことか
知らんわあ
0115デフォルトの名無しさん
2010/05/29(土) 23:07:00c99ならできる
0116デフォルトの名無しさん
2010/05/29(土) 23:23:57va_list で渡すしかない
0117デフォルトの名無しさん
2010/05/29(土) 23:41:200118デフォルトの名無しさん
2010/05/29(土) 23:43:14long long を使う
double を使う
多倍長整数を使う
0119デフォルトの名無しさん
2010/05/29(土) 23:44:06600851475143進数を使えばいいよ。"1"と表現できるようになる。
0120デフォルトの名無しさん
2010/05/29(土) 23:44:500121デフォルトの名無しさん
2010/05/29(土) 23:45:450122デフォルトの名無しさん
2010/05/29(土) 23:48:49なぜかできなかった
>>118
それは思いつかなかったwww
0123デフォルトの名無しさん
2010/05/30(日) 00:12:480124デフォルトの名無しさん
2010/05/30(日) 00:15:23例えば
0xABCCだとすると上位3バイトの値を変えずに、下位1バイトの
0b1100を0b1010とするような演算をしたいんですが、どうしたらいいでしょうか?
0125デフォルトの名無しさん
2010/05/30(日) 00:18:45#include<stdio.h>
int main(void)
{
unsigned short x=0xABCC;
printf("x=%X\n", x);
x=(x&0xFFF0)|0xA;
printf("x=%X\n", x);
return 0;
}
0126デフォルトの名無しさん
2010/05/30(日) 00:20:18if(r)のrにはscanfの戻り値(0か1)が入るんですよね?
なので自分的にはこの場合if(r == 1)が正しいのではないかと思うのですが。
#include<stdio.h>
int main(){
int i = 0;
int r;
r = scanf("%d", &i);
if(r){printf("整数%dが入力されました\n", i);}//入力が整数の場合
else{printf("整数以外が入力されました\n");}//入力が整数意外の場合
return 0;
}
0127デフォルトの名無しさん
2010/05/30(日) 00:22:20いきなりEOFがきたら r==-1 になる
0128デフォルトの名無しさん
2010/05/30(日) 00:23:540129デフォルトの名無しさん
2010/05/30(日) 00:25:440130デフォルトの名無しさん
2010/05/30(日) 00:28:130131デフォルトの名無しさん
2010/05/30(日) 00:28:15DSやWiiの自作ソフトの作り方とか分からないんだけど・・・
知ってるやついたら教えてください。
↓のスレはそんなにも参考にならなくて・・・
http://pc12.2ch.net/test/read.cgi/tech/1275138351/
0132デフォルトの名無しさん
2010/05/30(日) 00:31:13http://void-main.org/dsprogram/
0133デフォルトの名無しさん
2010/05/30(日) 00:32:09C言語とC++使えるよ
0134デフォルトの名無しさん
2010/05/30(日) 00:34:11r は変換に成功した数だから >>126 の場合には EOF か 0 か 1 しか返らない
0135126
2010/05/30(日) 00:39:42一日考えてもif(r)の意味が分かりません。
「rが○○だったら〜をする」なら分かるのですが、
この場合「rだったら〜をする」ですよね?意味分からなくないですか?
でもプログラムは正常に動くからきっと自分の考えが間違ってるんだと思うのですが。
0136デフォルトの名無しさん
2010/05/30(日) 00:41:15if(r)は、「rが0でなければ」だよ。
0137デフォルトの名無しさん
2010/05/30(日) 00:41:36{
B
}
else
{
C
}
Aが0以外だったらBへ
Aが0だったらCへ
0138デフォルトの名無しさん
2010/05/30(日) 00:43:3516ビットは2バイト。 バイトじゃなくてニブル。
2を引く。
0139デフォルトの名無しさん
2010/05/30(日) 00:43:36俺もC言語始めるって時に知恵袋で「10日で覚えるC言語」進められたんだけど、
実際のところいい本なの「10日で覚えるC言語」って?
0140デフォルトの名無しさん
2010/05/30(日) 00:45:5910日で覚える〜は知らんがCの絵本ってのは糞だったな
0141デフォルトの名無しさん
2010/05/30(日) 00:47:340142デフォルトの名無しさん
2010/05/30(日) 00:48:08いい本だよ。
0143デフォルトの名無しさん
2010/05/30(日) 00:50:47そういう意味があるんですか!
ありがとうございました!!!!
ずっともやもやしてたのでとてもスッキリしました。
>>139
自分は全く知識も無く、本屋で目立つところにあったから(10日で覚えられるし)買ってみました。
正直3日分やるのに何十日も掛かってます・・・。
今回の事も本に書いてなかったし。
>>140
その後、文字ばかりで飽きてきたのでCの絵本を買ってしまいました・・・。
0144デフォルトの名無しさん
2010/05/30(日) 00:51:320145デフォルトの名無しさん
2010/05/30(日) 00:55:00日本経済に貢献したんだ、良かったな
とりあえずコードを書いて見ていろいろ試そうな
0146デフォルトの名無しさん
2010/05/30(日) 01:02:03キモイ
0147デフォルトの名無しさん
2010/05/30(日) 01:05:08なんで自分でコードを書かないの?
0148126
2010/05/30(日) 01:11:47なるほど、参考になります。
>>145
はい。がんばります;
自分は通勤中に本を読み、帰ってから実践するという毎日なので書籍は重宝してるのですが
かばんに入る小さなノートPC買ってWEB見ながらプログラム書いたほうが勉強になるのかな。
0149デフォルトの名無しさん
2010/05/30(日) 01:14:07書いてるけど?
何で書かないと思ったの?
0150デフォルトの名無しさん
2010/05/30(日) 01:14:48通勤時間は絶対に本のほうがいいよ
0151デフォルトの名無しさん
2010/05/30(日) 01:16:290152126
2010/05/30(日) 01:27:33これを理由にVAIO Pとか欲しいと思ってたのですがやめときます。
知識が無いから良い本なのかすら分からない。何かお勧め無いですかね。
0153デフォルトの名無しさん
2010/05/30(日) 01:31:03http://www.amazon.co.jp/dp/4798119717/
0154デフォルトの名無しさん
2010/05/30(日) 01:44:36意味があるというか、判定式の返り値が、偽なら0で真なら非0ってことだよ
だから、本来ならif(r != 0)ってした方がいいと思う
printf("TRUE: %d\n", 1 == 1);
printf("FALSE: %d\n", 1 == 0);
TRUE: 1
FALSE: 0
0155デフォルトの名無しさん
2010/05/30(日) 01:47:07自分にとっては if(r) は頻出イディオムだから if(r!=0) より読みやすい
もちろん 0 に意味があるなら 0 と比較するけど
0156デフォルトの名無しさん
2010/05/30(日) 01:48:33思いだけは頂いておくわ。
0157デフォルトの名無しさん
2010/05/30(日) 08:43:39気にしないでいい
int変数以外にも、ポインタがNULLでないことを判定する場合に
if(p) みたいな書き方することも多いので、さっさと慣れたほうがいい
0158デフォルトの名無しさん
2010/05/30(日) 10:13:38FALSEが0なのはいいとして、TRUEを1とするかどうかは注意して考えた方がよい。
偽は0, 真は1ではなく非0だから。TRUEと等しくないから偽とはならない。
そう考えると0と比較しなくてはならない。そうすると
if (isHoge != 0) ・・・
と書くことになるが、否定形の文章が読みにくいように、否定のコードが読みにくいことが多い。
真偽を表すことが明確ならば
if (isHoge)
とかく方がよいと思う
0159デフォルトの名無しさん
2010/05/30(日) 10:40:34if(isHoge == FALSE) や if(isHoge != TRUE) は止めた方がいいとはならない。
0160デフォルトの名無しさん
2010/05/30(日) 11:07:13意味的にその方が読みやすい場合は例外だが、滅多に無い
0161デフォルトの名無しさん
2010/05/30(日) 11:51:480162デフォルトの名無しさん
2010/05/30(日) 11:55:59#define AND &&
0163デフォルトの名無しさん
2010/05/30(日) 11:57:480164デフォルトの名無しさん
2010/05/30(日) 12:05:55ベル研がDECのミニコンじゃなくてIBMのミニコンを導入していれば、
否定演算子がPL/Iみたいに¬になっていたかも。
もっとも、それはそれで-と区別しにくいけど。
0165デフォルトの名無しさん
2010/05/30(日) 12:25:210166デフォルトの名無しさん
2010/05/30(日) 12:31:520167デフォルトの名無しさん
2010/05/30(日) 12:34:100168デフォルトの名無しさん
2010/05/30(日) 12:39:15if(!p){//これは否定
}
0169デフォルトの名無しさん
2010/05/30(日) 12:39:470170デフォルトの名無しさん
2010/05/30(日) 13:10:560171デフォルトの名無しさん
2010/05/30(日) 13:15:370172デフォルトの名無しさん
2010/05/30(日) 13:18:51for(int i=0; i<sizeof(array); i++)
{
fputc(array[i], fp)
}
fclose
0173デフォルトの名無しさん
2010/05/30(日) 13:19:27バイナリをそのまま出力するところで、base64を間に入れる。
バイナリでは駄目なんでしょ。
0174デフォルトの名無しさん
2010/05/30(日) 13:29:20ヘッダファイルだけでC++から使えるJSONパーサ「picojson」が凄い!
http://mattn.kaoriya.net/tags/json
0175デフォルトの名無しさん
2010/05/30(日) 13:30:11if(!i)
よりも
if ( ! i )
のほうが明らかに間違えずに読み取れると思うが
タイプ量のためだけに詰めるという自己中だらけ
0176デフォルトの名無しさん
2010/05/30(日) 13:32:33(´・ω・`)が( ´ ・ ω ・ ` )だとウザいだろ
0177デフォルトの名無しさん
2010/05/30(日) 13:32:34その辺は自分が読むときに整形ツール通せばいいだけ
0178デフォルトの名無しさん
2010/05/30(日) 13:39:26pythonみたいに括弧が無ければ読みやすい
if !i: と if i: が違うのはすぐ分かる。もっとも、pythonでは if ~i: だけど
0179デフォルトの名無しさん
2010/05/30(日) 13:39:450180デフォルトの名無しさん
2010/05/30(日) 13:43:26if(lfdsafsdfasd)とif(!fdsafsdfasd)の区別はどうだろうか
0181デフォルトの名無しさん
2010/05/30(日) 13:48:220182デフォルトの名無しさん
2010/05/30(日) 18:21:54↑
空白挿入を強要する自己厨
0183デフォルトの名無しさん
2010/05/30(日) 19:46:17ある関数で代入された変数を他の関数で使いたい時どうすればいいんでしょうか?
変な質問ですいません。
0184デフォルトの名無しさん
2010/05/30(日) 19:47:48例文を書いてくれ
0185デフォルトの名無しさん
2010/05/30(日) 19:58:33int a[10];
return 0;
}
void func(){
int b[10]={1,2,3,4,5,6,7,8,9,10};
return 0;
}
これでmain関数の方にb[10]の値を出したいって感じです。
0186デフォルトの名無しさん
2010/05/30(日) 20:02:24int a[10];
func(a);
return 0;
}
void func(int* array)
{
int b[10]={1,2,3,4,5,6,7,8,9,10};
for(int i = 0; i < 10; i ++)
{
array[i] = b[i];
}
return 0;
}
0187デフォルトの名無しさん
2010/05/30(日) 20:04:59ありがとうございます!ちょっとやってみようと思います。
0188デフォルトの名無しさん
2010/05/30(日) 20:07:51大きく分けると3通りの方法がある
1) 大域変数を使う
static global;
foo() { global = 128; return 0; } /* fooで代入 */
bar() { return global; } /* barで使う */
2) スタティックな変数とポインタを使う
foo(p) int **p; { static q; q = 128; *p = &q; return 0; } /* fooでqのアドレスをpにいれてやる */
bar() { int *p; foo(&p); return *p; } /* barで使う */
3) staticな変数を返す
foo() { static x; x = 128; return &x; } /* fooで代入し返す */
bar() { int *p; p = foo(); return *p; } /* barで使う */
値だけ使うんならもっと楽だけど
0189デフォルトの名無しさん
2010/05/30(日) 20:19:07ありがとうございます!勉強になります。
0190デフォルトの名無しさん
2010/05/30(日) 20:48:13うむ
勉強頑張るがよい
0191デフォルトの名無しさん
2010/05/30(日) 21:21:20いいんだよ
0192デフォルトの名無しさん
2010/05/30(日) 21:23:110193デフォルトの名無しさん
2010/05/30(日) 21:29:490194デフォルトの名無しさん
2010/05/30(日) 21:30:560195デフォルトの名無しさん
2010/05/31(月) 02:54:010196デフォルトの名無しさん
2010/05/31(月) 03:51:130197デフォルトの名無しさん
2010/05/31(月) 19:13:21といったプログラムを作りたいのですがどうすればいいのでしょうか
0198デフォルトの名無しさん
2010/05/31(月) 20:35:160199デフォルトの名無しさん
2010/05/31(月) 20:38:260200デフォルトの名無しさん
2010/05/31(月) 20:40:060201デフォルトの名無しさん
2010/05/31(月) 21:52:28こんな感じでやって
「○回目が一番大きい数字です」
ってしたいんだけどどうすればできるの?
0202デフォルトの名無しさん
2010/05/31(月) 22:00:20最大値を更新する際に、その添え字を記憶しておく。
0203デフォルトの名無しさん
2010/06/01(火) 00:46:28ありがとー
0204デフォルトの名無しさん
2010/06/01(火) 01:07:42うん。
0205デフォルトの名無しさん
2010/06/01(火) 01:09:21どうも
0206デフォルトの名無しさん
2010/06/01(火) 01:54:56いえいえいえいえ
0207デフォルトの名無しさん
2010/06/01(火) 02:01:59いやいや
0208デフォルトの名無しさん
2010/06/01(火) 10:54:01for( j=1 , max = 0 ; j < 10; j++) if( array[max] < array[j] ) max = j;
printf("一番大きな数字は%d回目です",max);
0209デフォルトの名無しさん
2010/06/01(火) 14:17:26ずいぶん時間掛かったな
0210デフォルトの名無しさん
2010/06/01(火) 15:11:36だからお前いっつも空気悪くするのいい加減自重しろ
0211デフォルトの名無しさん
2010/06/01(火) 15:19:130212デフォルトの名無しさん
2010/06/01(火) 15:21:09まだできないの?待ってんだけど。
0213デフォルトの名無しさん
2010/06/01(火) 18:11:37空気ってなんですか?
0214デフォルトの名無しさん
2010/06/01(火) 18:13:46自分の書き込み見返してあまりのバカさ加減に死にたくなったりしないのかな。
0215デフォルトの名無しさん
2010/06/01(火) 18:22:13んー、そういうときは、
http://pc12.2ch.net/test/read.cgi/tech/1274827528/
に威風堂々と回答をかいてうさばらししてます。
0217デフォルトの名無しさん
2010/06/01(火) 18:44:18あんだけ厚顔無恥なら生きるの楽しいだろうな
0218デフォルトの名無しさん
2010/06/01(火) 19:23:51うらやましい
0219デフォルトの名無しさん
2010/06/01(火) 19:31:25さらしてたら、俺だったら宿題スレに再臨なんかできないけどなw
0220デフォルトの名無しさん
2010/06/01(火) 19:37:10間違いを認めて改めるなら問題無いだろ
0221デフォルトの名無しさん
2010/06/01(火) 19:37:570222デフォルトの名無しさん
2010/06/01(火) 19:39:03かなりひどい態度で理解力だったぞw
0223デフォルトの名無しさん
2010/06/01(火) 20:41:50かっくいいよな
ん、バブルソートのときは、「あれま」と思いましたが、まあ、それはそれ。
たしかに昔に比べると無恥になりましたが、それもたくさん宿題をといてるので、ひとつくらい大失敗をやらかしても、と考えるようになりました。
楽しくなりましませんが、楽にはなりました。
0225デフォルトの名無しさん
2010/06/01(火) 21:05:080226デフォルトの名無しさん
2010/06/01(火) 21:19:46単純に知らなかったことよりも、指摘された後の態度の方が問題
宿題の題意も誤読すること多いし、知能低いのにプライドばっかり高すぎ
0227デフォルトの名無しさん
2010/06/01(火) 21:28:57ん、確かに誤読は多いことは認めますが、指摘されたらその都度変更をかけています。それが問題でしょうか?
所詮、宿題スレ。知能が高いところじゃないですし。
プライドが高い?んー、そう見えますかね。
そうですね。そうします。
0230デフォルトの名無しさん
2010/06/01(火) 21:40:450231デフォルトの名無しさん
2010/06/01(火) 21:43:220232デフォルトの名無しさん
2010/06/01(火) 21:56:380233デフォルトの名無しさん
2010/06/01(火) 22:01:130234デフォルトの名無しさん
2010/06/01(火) 23:16:34やはりポインタですか?
0235デフォルトの名無しさん
2010/06/01(火) 23:18:49一番慣れてるところ
0236デフォルトの名無しさん
2010/06/01(火) 23:20:010237デフォルトの名無しさん
2010/06/01(火) 23:20:10つまり、C自体の魅力は特に無いが
たまたまCに触れる機会が多かっただけということでしょうか
0238デフォルトの名無しさん
2010/06/01(火) 23:20:590239デフォルトの名無しさん
2010/06/01(火) 23:22:550240デフォルトの名無しさん
2010/06/01(火) 23:25:01その人にとっての魅力と思えるかどうか、という所に行き着くと思います。
0241デフォルトの名無しさん
2010/06/02(水) 01:10:30アセンブラ知らずにCのポインタでつまずく人ってたくさんいそうなので。
0242デフォルトの名無しさん
2010/06/02(水) 01:13:270243デフォルトの名無しさん
2010/06/02(水) 01:15:58ポインタって何か知ってて言ってるの?
0244デフォルトの名無しさん
2010/06/02(水) 01:20:12{
char *str = "aiueo";
str = "hoge";
str = "sample";
puts(str); /* "sample"が表示される */
return 0;
}
char *str = "aiueo";で初期化したアドレス、str = "hoge";で代入したアドレスが
分からなくなりましたが、リークするわけでもないので、別に気にしなくていいですか
0245デフォルトの名無しさん
2010/06/02(水) 01:21:14気にしなくていいですよ
0246デフォルトの名無しさん
2010/06/02(水) 01:21:47ポインタとはメモリ上のアドレスを指し示すもの。*を使って関節参照とかできる。
この点は、アセンブラでは*の代わりに()をつかうだろ。それと似てるから参考にはなる。
0247デフォルトの名無しさん
2010/06/02(水) 01:23:16サンクス。勉強になりました。これで心落ちなく眠れそうだわい
0248デフォルトの名無しさん
2010/06/02(水) 01:26:28>>241じゃないよね?
0249デフォルトの名無しさん
2010/06/02(水) 01:30:03241、244、246、247は同じです
0250デフォルトの名無しさん
2010/06/02(水) 01:31:54Cを効率よく学習するんだったらアセンブラから先にやっといたほうがよかったかなぁと思いました。
0251デフォルトの名無しさん
2010/06/02(水) 01:33:360252デフォルトの名無しさん
2010/06/02(水) 01:36:31そうですね
0253デフォルトの名無しさん
2010/06/02(水) 01:36:570254デフォルトの名無しさん
2010/06/02(水) 03:58:27まあ別に 65816 でも良いけどな。
0255デフォルトの名無しさん
2010/06/02(水) 06:02:150256デフォルトの名無しさん
2010/06/02(水) 06:29:49ポインタがわかりません
0257デフォルトの名無しさん
2010/06/02(水) 06:33:560258デフォルトの名無しさん
2010/06/02(水) 07:07:560259デフォルトの名無しさん
2010/06/02(水) 07:16:440260デフォルトの名無しさん
2010/06/02(水) 07:28:39それだけ
0261デフォルトの名無しさん
2010/06/02(水) 07:31:350262デフォルトの名無しさん
2010/06/02(水) 08:04:04↑の問題に対して
ttp://codepad.org/3rVueIo5
というようなコードを書いたのですがacceptされません。
どこらへんがおかしいのかヒントだけでも教えてくれませんか?
簡単に説明すると、それぞれの対角線に対して、他の2つの点が
同じ側にあるかどうかで判定しているつもりです。
0263デフォルトの名無しさん
2010/06/02(水) 08:05:43ttp://rose.u-aizu.ac.jp/onlinejudge/ProblemSet/description.jsp?id=0045&lang=jp
↑に対してなんですが
#include <stdio.h>
#include <math.h>
int main(){
int mono=0,kane=0,tmono,tkane,t=0;
while(0<=scanf("%d,%d",&tkane,&tmono)){
mono+=tmono;
kane+=(tmono*tkane);
if(tmono!=0)
t++;
}
printf("%d\n%.0lf\n",kane,rint(((double)mono)/((double)t)));
return 0;
}
も通りません。お願いします。
0264デフォルトの名無しさん
2010/06/02(水) 08:09:21ttp://rose.u-aizu.ac.jp/onlinejudge/ProblemSet/description.jsp?id=0047
↑に対してなんですが
int main() {
char i,j,cup[3]={0,0,1},t;
while(0<=scanf("%c,%c",&i,&j)){
t=cup[i%3];
cup[i%3]=cup[j%3];
cup[j%3]=t;
}
for(i=0;i<3;i++){
switch((int)cup[i]){
case 1:
if(i==0)
printf("B\n");
if(i==1)
printf("C\n");
if(i==2)
printf("A\n");
break;
default:
break;
}
}
return 0;
}
も通りません。お願いします。
0265デフォルトの名無しさん
2010/06/02(水) 08:29:33>while(0<=scanf("%c,%c",&i,&j)){
これはダメだろ
0266デフォルトの名無しさん
2010/06/02(水) 11:42:26直線の公式はax+by+c=0の形を使えよ
無駄な条件分けしなくてよくなるぞ
0267デフォルトの名無しさん
2010/06/02(水) 12:28:36&yc
0268デフォルトの名無しさん
2010/06/02(水) 12:29:000269デフォルトの名無しさん
2010/06/02(水) 12:58:31while(2==scanf("%d,%d",&tkane,&tmono))
printf("%d\n%d\n",kane,int(((double)mono)/((double)t)+0.5));
俺の環境では、rint使えないけど↑でどうかな
0270デフォルトの名無しさん
2010/06/02(水) 18:19:04マクロ定義で、
src/backend/access/index/indexam.c
----------------------------------------
#define GET_REL_PROCEDURE(x,y) \
CppConcat(procedure = relation->rd_am-> ,y); \
if (! RegProcedureIsValid(procedure)) \
elog(WARN, "index_%s: invalid %s regproc", \
CppAsString(x), CppAsString(y))
----------------------------------------
何てのがあるんですが、
relation->rd_am-> ,y)
の部分、->の右辺がないんですが、どういう意味になるんですか?
今のgccでコンパイルしようとすると
does not give a valid preprocessing token
て怒られるんですが、
今のコンパイラの仕様だとどういう表現が妥当なんでしょうか??
0271デフォルトの名無しさん
2010/06/02(水) 18:27:03そうじゃなくて、
CppConcat(procedure = relation->rd_am->y); \
が正しい
0272デフォルトの名無しさん
2010/06/02(水) 18:27:22CppConcatってのが単なるプリプロセッサレベルでの文字列の連結マクロでは?
ttp://archives.postgresql.org/pgsql-bugs/1996-12/msg00004.php
0273デフォルトの名無しさん
2010/06/02(水) 18:31:31* CppAsString
* Convert the argument to a string, using the C preprocessor.
* CppConcat
* Concatenate two arguments together, using the C preprocessor.
*
* Note: the standard Autoconf macro AC_C_STRINGIZE actually only checks
* whether #identifier works, but if we have that we likely have ## too.
*/
#if defined(HAVE_STRINGIZE)
#define CppAsString(identifier) #identifier
#define CppConcat(x, y) x##y
#else /* !HAVE_STRINGIZE */
#define CppAsString(identifier) "identifier"
/*
* CppIdentity -- On Reiser based cpp's this is used to concatenate
* two tokens. That is
* CppIdentity(A)B ==> AB
* We renamed it to _private_CppIdentity because it should not
* be referenced outside this file. On other cpp's it
* produces A B.
*/
#define _priv_CppIdentity(x)x
#define CppConcat(x, y) _priv_CppIdentity(x)y
#endif /* !HAVE_STRINGIZE */
0274デフォルトの名無しさん
2010/06/02(水) 18:34:13x##y
の表現がなんか問題になってるっぽいですね。
0275デフォルトの名無しさん
2010/06/02(水) 19:20:44printf("%p\n",str); /* �@ */
str1 = "test";
printf("%p\n",str); /* �A */
str1 = "hello,world";
printf("%p\n",str); /* �B */
上を実行させると�Aは�@とは異なるアドレスが表示されて予想通りでしたが
�Bは�@と同じアドレスでした。
いったい何がおこってるのかさっぱりわかりません。
0276275
2010/06/02(水) 19:21:43char *str = "hello,world";
printf("%p\n",str); /* �@ */
str = "test";
printf("%p\n",str); /* �A */
str = "hello,world";
printf("%p\n",str); /* �B */
0277デフォルトの名無しさん
2010/06/02(水) 19:27:000278デフォルトの名無しさん
2010/06/02(水) 19:36:530279275
2010/06/02(水) 19:42:11int main(void)
{
char *str1 = "hello,world";
char *str2 = "hello,world";
char *str3 = "hello,world";
char *str4 = "hello,world";
char *str5 = "hello,world";
printf("%p\n",str1);
printf("%p\n",str2);
printf("%p\n",str3);
printf("%p\n",str4);
printf("%p\n",str5);
return 0;
}
異なるポインタ変数に渡しているのにアドレスはどれも一緒でした。
0280デフォルトの名無しさん
2010/06/02(水) 19:47:440281デフォルトの名無しさん
2010/06/02(水) 19:49:26同じアドレスでも気にする必要ないと思うが
0282275
2010/06/02(水) 19:56:27無駄がないといえば無駄がないが。"hello,world"のアドレスを意識せずにそのまま使えるし・・。
0283デフォルトの名無しさん
2010/06/02(水) 20:35:170284デフォルトの名無しさん
2010/06/02(水) 20:36:56あなたひどいことをおっしゃる
0285デフォルトの名無しさん
2010/06/02(水) 20:41:010286デフォルトの名無しさん
2010/06/02(水) 20:42:11ものすごく誤解を招く表現だな
0287デフォルトの名無しさん
2010/06/02(水) 20:43:10同一のリテラルを同じところに配置するかどうかは自由だからだよ。
0288デフォルトの名無しさん
2010/06/02(水) 20:43:56勉強したかったらCOFFとかPEあたりを読んでみるといいね
一応説明すると、文字列とかは.rdataセクション(読み込みのみ許可領域)に配置されるんだけど
コンパイラが同じ物と判断したのは纏めちゃうから、そういう風になる
0289デフォルトの名無しさん
2010/06/02(水) 22:32:47無事に前の二つは通りました。
ありがとうございます。
ただやはり>>264がまだ分かりません。
サンプルは通るので、入力の処理は問題ないと思います。
0290デフォルトの名無しさん
2010/06/02(水) 22:42:29char *a="visible", *b="invisible";
あるいはこんなのとか。
char *c="hoge", *d="hoge\0moge", *e="fuga\0hoge";
0291デフォルトの名無しさん
2010/06/02(水) 22:43:43コンパイラ次第でしょ
0292デフォルトの名無しさん
2010/06/02(水) 22:48:43なんでこれまでの流れを見て試そうという気にならなかったの?
0293デフォルトの名無しさん
2010/06/02(水) 23:11:450294デフォルトの名無しさん
2010/06/02(水) 23:31:060295デフォルトの名無しさん
2010/06/03(木) 00:07:52多分scanfの改行の問題かな、応急処置してみた
while(2==scanf("%c,%c%*c",&i,&j))
0296デフォルトの名無しさん
2010/06/03(木) 04:21:540297デフォルトの名無しさん
2010/06/03(木) 04:29:210298デフォルトの名無しさん
2010/06/03(木) 06:35:12有難うございました。確かに改行の問題でした。
感謝です。
0299デフォルトの名無しさん
2010/06/03(木) 07:31:25誰なの?(;^_^A アセアセ・・・
0300デフォルトの名無しさん
2010/06/03(木) 08:31:09きもいな
0301デフォルトの名無しさん
2010/06/03(木) 08:32:18そうだね。
0302デフォルトの名無しさん
2010/06/03(木) 09:04:34確かに
0303デフォルトの名無しさん
2010/06/03(木) 09:40:340304デフォルトの名無しさん
2010/06/03(木) 09:45:420305300
2010/06/03(木) 09:50:470306デフォルトの名無しさん
2010/06/03(木) 10:29:390307sage
2010/06/03(木) 13:32:420308デフォルトの名無しさん
2010/06/03(木) 13:36:23decimal
0309デフォルトの名無しさん
2010/06/03(木) 13:38:17仕様書に名前の由来は書いていないから推測でしかないのですが、
decimal
0310デフォルトの名無しさん
2010/06/03(木) 18:08:35母艦がボカーン
0311デフォルトの名無しさん
2010/06/03(木) 18:58:10RGB値できれいに虹色のグラデーションを表現したいとき
どうやってやるのが綺麗でしょうか?
やっぱり赤・黄・緑・水色・青・紫をならべて
間の値は線形で変化…とかでしょうか
太陽光のスペクトルみたいに自然な感じが理想です
0312デフォルトの名無しさん
2010/06/03(木) 18:59:08これだとダメなん?
ttp://pc12.2ch.net/test/read.cgi/tech/1274827528/16
0313デフォルトの名無しさん
2010/06/03(木) 19:53:206色しかない…だと?
0314デフォルトの名無しさん
2010/06/03(木) 20:02:31色相でググれ
0315デフォルトの名無しさん
2010/06/03(木) 21:21:20scanfを連続で使おうとすると、前入力した分の\nが勝手に入ってしまう。
誰だよこのバグ関数作った人は。
0316デフォルトの名無しさん
2010/06/03(木) 21:24:20使い方が悪いだけだろ
0317デフォルトの名無しさん
2010/06/03(木) 22:11:580318デフォルトの名無しさん
2010/06/03(木) 22:13:58\n入力しない方法を教えてくれよ。
というかscanfの中にfflushいれとけば解決できんじゃね?
0319デフォルトの名無しさん
2010/06/03(木) 22:22:54入力ストリームに対するfflush()は未定義動作だよ
0320デフォルトの名無しさん
2010/06/03(木) 23:31:19なんでこれ使おうとする奴は後を断たないんだろ。
0321デフォルトの名無しさん
2010/06/03(木) 23:32:03Enterキーじゃなくて、CTRL-D
0322デフォルトの名無しさん
2010/06/03(木) 23:32:410323デフォルトの名無しさん
2010/06/03(木) 23:46:33シェアは圧倒的に Win が上なんだから
基本的には Ctrl-Z と言うべきだろ。
ガラパOSごときが自己主張してくんなよ。
0324デフォルトの名無しさん
2010/06/03(木) 23:49:23すげーなおまえw
0325デフォルトの名無しさん
2010/06/04(金) 00:00:290326デフォルトの名無しさん
2010/06/04(金) 01:28:590327デフォルトの名無しさん
2010/06/04(金) 01:57:290328デフォルトの名無しさん
2010/06/04(金) 02:20:470329デフォルトの名無しさん
2010/06/04(金) 02:23:04あれってサービス呼ばないと直せないんだっけか
0330デフォルトの名無しさん
2010/06/04(金) 02:47:27稼働はしているが、割合も実数も確実に減少している。
0331デフォルトの名無しさん
2010/06/04(金) 03:04:03せめて 10 ビットは欲しい。
或いは、かな漢字をバイトで表せるように 16 ビットにするという手もあるか。
0332デフォルトの名無しさん
2010/06/04(金) 03:52:120333デフォルトの名無しさん
2010/06/04(金) 05:05:410334デフォルトの名無しさん
2010/06/04(金) 05:24:140335デフォルトの名無しさん
2010/06/04(金) 07:45:00それより細かな単位ではメモリアクセスできないし。
0336デフォルトの名無しさん
2010/06/04(金) 13:41:36いきなり失礼します
キーボードから直接入力するif文って
#include <stdio.h>
int main(void)
{
int res;
printf("文字いれろ\n");
scanf("%d", &res);
if (res == 1)
printf("はな\n");
printf("んん…\n");
return 0;
}
みたいに半角数字だとできるんですが、
「あああ」などの日本語だとエラーが出て困ってます
char str[100];とかで頑張っても無理でした
res って半角英数のみの対応なんでしょうか?
あとif には res しか使えないのでしょうか?
0337デフォルトの名無しさん
2010/06/04(金) 13:49:16日本語でおk
0338デフォルトの名無しさん
2010/06/04(金) 13:54:15「1 を入れたらこの文が出る」というのはできたのです
『あああ を入れたらこの文が出る』というのができないのです
0339デフォルトの名無しさん
2010/06/04(金) 14:04:270340デフォルトの名無しさん
2010/06/04(金) 14:10:110341デフォルトの名無しさん
2010/06/04(金) 14:12:05Hello自体は出力できるのですが、やはりifをつけると無理って言われます
0342デフォルトの名無しさん
2010/06/04(金) 14:13:010343デフォルトの名無しさん
2010/06/04(金) 14:14:390344デフォルトの名無しさん
2010/06/04(金) 14:16:03だから半角英数文字列の Hello ができようになってから質問しろよ
それができないのに全角とか無理
0345デフォルトの名無しさん
2010/06/04(金) 14:47:35SSLを導入しようと考えており、その際はベリサインなどに
申し込まないといけないのでしょうか?
0346デフォルトの名無しさん
2010/06/04(金) 14:56:35とりあえず動けばよいのなら不要
一般公開して信頼されたいのであればあったほうがいい
限定公開とかなら、クライアント側で個別で証明書をインストールしてもらうことも可能
0347デフォルトの名無しさん
2010/06/04(金) 15:09:00一応、目的としては商業ホームページで公開する予定です
そうですか、となるとベリサインなどに申し込む必要ありですね
サンクスですた!
0348デフォルトの名無しさん
2010/06/04(金) 17:52:080349デフォルトの名無しさん
2010/06/04(金) 19:47:26ベリサインってたしか試験用に証明書発行してくれる
0350デフォルトの名無しさん
2010/06/04(金) 20:36:07俺もかなり初心者なのでえらそうなことはいえないが。
scanf("%d", &res); はキーボードから入力された整数の値をresという変数に代入するものです
>res って半角英数のみの対応なんでしょうか?
よってresには半角数字のみ対応です。英数の"英"は対応してない。
「あああ」などの文字列を比較したい場合は、strcmpを使おう。
用途は検索して調べてね
0351デフォルトの名無しさん
2010/06/04(金) 20:48:200352デフォルトの名無しさん
2010/06/04(金) 20:49:260353デフォルトの名無しさん
2010/06/04(金) 21:13:12#include <stdio.h>
int main(void)
{
int res;
printf("数字を入力して下さい: 1 or 2 : ");
scanf("%d",&res);
if (res==1)printf("はな\n");
else printf("んん\n");
return 0;
}
#include <stdio.h>
int main(void)
{
char res[100];
printf("文字を入力して下さい:");
scanf("%s",res);
printf("%s\n",res);
return 0;
}
0354デフォルトの名無しさん
2010/06/04(金) 23:26:11* This define all the handler that the driver export.
* As you need only one per driver type, please use a static const
* shared by all driver instances... Same for the members...
* This will be linked from net_device in <linux/netdevice.h>
*/
struct iw_handler_def {
/* Array of handlers for standard ioctls
* We will call dev->wireless_handlers->standard[ioctl - SIOCIWFIRST]
*/
const iw_handler * standard;
/* Number of handlers defined (more precisely, index of the
* last defined handler + 1) */
__u16 num_standard;
#ifdef CONFIG_WEXT_PRIV
__u16 num_private;
/* Number of private arg description */
__u16 num_private_args;
/* Array of handlers for private ioctls
* Will call dev->wireless_handlers->private[ioctl - SIOCIWFIRSTPRIV]
*/
const iw_handler * private;
/* Arguments of private handler. This one is just a list, so you
* can put it in any order you want and should not leave holes...
* We will automatically export that to user space... */
const struct iw_priv_args * private_args;
#endif
};
0355354
2010/06/04(金) 23:27:42.num_standard = sizeof(p80211wext_handlers) / sizeof(iw_handler),
.num_private = 0,
.num_private_args = 0,
.standard = p80211wext_handlers,
.private = NULL,
.private_args = NULL,
#if WIRELESS_EXT > 16
.get_wireless_stats = p80211wext_get_wireless_stats,
#endif
};
この . の意味がわからない。
これはどういう効果の演算子なのですか?
0356デフォルトの名無しさん
2010/06/04(金) 23:54:55多分、構造体のメンバの初期化を名指しでやっているんだと思うんだけど。
0357デフォルトの名無しさん
2010/06/04(金) 23:57:160358デフォルトの名無しさん
2010/06/05(土) 00:08:150359デフォルトの名無しさん
2010/06/05(土) 00:09:140360デフォルトの名無しさん
2010/06/05(土) 00:10:340361デフォルトの名無しさん
2010/06/05(土) 00:13:100362デフォルトの名無しさん
2010/06/05(土) 00:39:590363デフォルトの名無しさん
2010/06/05(土) 00:40:480364デフォルトの名無しさん
2010/06/05(土) 00:47:030365デフォルトの名無しさん
2010/06/05(土) 01:24:22p80211wext_handler_def.num_standard = sizeof(p80211wext_handlers) / sizeof(iw_handler);
p80211wext_handler_def.num_private = 0;
p80211wext_handler_def.num_private_args = 0;
p80211wext_handler_def.standard = p80211wext_handlers;
p80211wext_handler_def.private = NULL;
p80211wext_handler_def.private_args = NULL;
#if WIRELESS_EXT > 16
p80211wext_handler_def.get_wireless_stats = p80211wext_get_wireless_stats;
#endif
つまりこういうこと?
だとしたら宣言直後に各メンバに一個一個代入してくように書き換えれば同じ意味?
0366デフォルトの名無しさん
2010/06/05(土) 02:02:120367デフォルトの名無しさん
2010/06/05(土) 02:20:180368デフォルトの名無しさん
2010/06/05(土) 02:25:320369デフォルトの名無しさん
2010/06/05(土) 02:44:380370デフォルトの名無しさん
2010/06/05(土) 04:53:530371デフォルトの名無しさん
2010/06/05(土) 10:33:46ゴミを参照したって別に罰があたりませんよね?
0372デフォルトの名無しさん
2010/06/05(土) 10:36:430373デフォルトの名無しさん
2010/06/05(土) 10:39:010374デフォルトの名無しさん
2010/06/05(土) 10:41:49int n;
return n;
}
0375デフォルトの名無しさん
2010/06/05(土) 10:42:230376372
2010/06/05(土) 10:44:04scanf("%d%*c", &i); /* "1" */
printf("%d", i);
0377デフォルトの名無しさん
2010/06/05(土) 10:44:320378デフォルトの名無しさん
2010/06/05(土) 11:14:26実際使う限りは適当な値が入ってるだけだが、
Cの規格でその操作は未定義と決まってる(未定義というのはなにが起こるってもしらねーぞっていうような意味)
のでやっちゃいけないというわけ
0379デフォルトの名無しさん
2010/06/05(土) 11:23:19規格のどこに>371が未定義であると書いてあるのか教えてください
0380デフォルトの名無しさん
2010/06/05(土) 12:17:230381デフォルトの名無しさん
2010/06/05(土) 12:38:07やっちゃいけないって書いてあるのは規格じゃなくてコーディング規約か
0382デフォルトの名無しさん
2010/06/05(土) 13:12:54未定義なの?俺も規格のどこに書かれてるのか知りたい
0383デフォルトの名無しさん
2010/06/05(土) 13:15:240384デフォルトの名無しさん
2010/06/05(土) 13:38:250385デフォルトの名無しさん
2010/06/05(土) 13:40:340386378
2010/06/05(土) 13:42:28どこに書いてあるとか知らない
まさかそんな突っ込まれるとは思わなかった
ttp://www.st.rim.or.jp/~phinloda/cqa/cqa7.html
0387デフォルトの名無しさん
2010/06/05(土) 14:27:25なるほど、未定義の例に「初期化されていない auto 変数の読みだし。」ってあるね
http://www.jpcert.or.jp/sc-rules/c-exp33-c.html
ここだと不定になってるみたい。C89とC99の違いなんかな
0388デフォルトの名無しさん
2010/06/05(土) 15:58:340389デフォルトの名無しさん
2010/06/05(土) 16:00:14while(〜〜〜〜){scanf("%d",&a);
scanf("%c",&b);}
だとエラーになるんですがなぜですか?
繰り返しなんだから
制御式満たして文字打ち込めば永遠に改行されるはずなのに
・・・なぜでしょう?
0390デフォルトの名無しさん
2010/06/05(土) 16:10:44出来る限りソース全文をあげましょう。
0391デフォルトの名無しさん
2010/06/05(土) 16:13:44改行が読み飛ばされる
scanfのエラー戻り値はEOF以外の場合0
0392デフォルトの名無しさん
2010/06/05(土) 16:16:52いやエラーは出てないのよ。
でも実行したら止まってる。
繰り返しかもしれんが
scanfの繰り返しは入力→改行→改行だろう。
変数の文字型が違うからばぐったのかな?
とりあえずプログラム自体に意味はない。
形式が試せるか確かめただけ。
#include<stdio.h>
int main(void){
int a;
char b;
while(a != 3)scanf("%d",&a);
scanf("%c",&b);
}
0393デフォルトの名無しさん
2010/06/05(土) 16:22:200394デフォルトの名無しさん
2010/06/05(土) 16:23:07なにを言ってるかわからない
0395デフォルトの名無しさん
2010/06/05(土) 16:25:20whileは繰り返し構文でしょ?
何故何をいってるのか分からないのか。
実行↓
3
3
3
3
3
3
3
こうやって永遠入力したい。
0396デフォルトの名無しさん
2010/06/05(土) 16:26:270397デフォルトの名無しさん
2010/06/05(土) 16:27:270398デフォルトの名無しさん
2010/06/05(土) 16:27:30え?何でですか?
03994
2010/06/05(土) 16:28:34何故わかったwwwwwwwwwwwwwwww
気を使って1週間来なかったんだよ。
さすがに教えてくれよ。
0400デフォルトの名無しさん
2010/06/05(土) 16:28:42a!=3が0になる
ループから抜ける
0401デフォルトの名無しさん
2010/06/05(土) 16:29:39/ \
/ノ \ u. \ !?
/ (●) (●) \
| (__人__) u. |
\ u.` ⌒´ /
ノ \
/´ ヽ
| l \
ヽ -一''''''"~~``'ー--、 -一'''''''ー-、.
ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒))
____
/ \!??
/ u ノ \
/ u (●) \
| (__人__)|
\ u .` ⌒/
ノ \
/´ ヽ
| l \
ヽ -一''''''"~~``'ー--、 -一'''''''ー-、.
ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒))
0403デフォルトの名無しさん
2010/06/05(土) 16:33:560404391
2010/06/05(土) 16:35:5204054
2010/06/05(土) 16:36:44文字じゃないとだめなの
0406デフォルトの名無しさん
2010/06/05(土) 16:36:45a!=3が満たされるとな?
04074
2010/06/05(土) 16:38:09あぁたまたたまかぶっただけ
a != 3
??
a
$%
45
3323
`
C
d
323
d
333
とこんな風にしたい。
0408デフォルトの名無しさん
2010/06/05(土) 16:39:040409デフォルトの名無しさん
2010/06/05(土) 16:39:480410デフォルトの名無しさん
2010/06/05(土) 16:40:28おまえ質問者ならもっと丁寧な言葉を使え
0411デフォルトの名無しさん
2010/06/05(土) 16:40:43while(1)
でいいんじゃね?
04124
2010/06/05(土) 16:51:32実際は繰り返し入力した数字を足したいんですが。
でもwhileの(制御式)はいいんだけど
{}の中身が複雑になりすぎて・・・
どうしたらいいんだ・・もう死にたい。
0413デフォルトの名無しさん
2010/06/05(土) 16:53:02俺はそいつとは違うけど、こんなところで威張り散らしてどうすんだよ・・・・
どんだけリアルで人から敬われてないんだよ
0414デフォルトの名無しさん
2010/06/05(土) 16:53:07ちっともよくないぞw
0415デフォルトの名無しさん
2010/06/05(土) 16:53:09aが最初から3ならループに入りすらしないよね
0416デフォルトの名無しさん
2010/06/05(土) 16:54:01分かりやすい自演はすんなよw
0418デフォルトの名無しさん
2010/06/05(土) 16:56:470419413
2010/06/05(土) 16:57:34いや、悪いけど本当に違うよ。
0420デフォルトの名無しさん
2010/06/05(土) 16:59:170421デフォルトの名無しさん
2010/06/05(土) 17:00:04死んでいいよ
0422デフォルトの名無しさん
2010/06/05(土) 17:00:28あ〜、それアキュムレータってやつだ
Revenge of the Nerds
http://practical-scheme.net/trans/icad-j.html
に最近の言語のサンプルがあるよ。ちなみにpythonについては↓の方が的確
On the Relationship Between Python and Lisp
http://practical-scheme.net/trans/IsPythonLisp-j.html
04234
2010/06/05(土) 17:04:28一週間考えて分からなかったんだが・・・
>>420
whileとscanfは組み合わせ無理なんすか?
プログラム
実行↓
8
9
3
4
3
6
合計=33
whileつかってね。
0424デフォルトの名無しさん
2010/06/05(土) 17:05:21宿題か?
一週間経ったのならそろそろ答え合わせとかしたんじゃないの
0425デフォルトの名無しさん
2010/06/05(土) 17:05:59全文張ってみたらどうだ、隠してる中に答えがありそうだが
04264
2010/06/05(土) 17:07:53宿題。
答え合わせないよ。
まだ終わってない人いるからね。
0427デフォルトの名無しさん
2010/06/05(土) 17:08:21while(i < 6) {
scanf("%d", &n);
sum += n;
i = i + 1;
}
printf("%d\n", sum);
04284
2010/06/05(土) 17:08:500429425
2010/06/05(土) 17:08:5804304 ◆nNHcoCEvyo
2010/06/05(土) 17:11:14まじでやめろ
>>427
ありがとうございます。
いや、項の数は任意がいいんですが・・・
実際そのプログラムは作ったんです。
0431デフォルトの名無しさん
2010/06/05(土) 17:12:130432デフォルトの名無しさん
2010/06/05(土) 17:12:560433デフォルトの名無しさん
2010/06/05(土) 17:15:0004344 ◆nNHcoCEvyo
2010/06/05(土) 17:15:230を足したところで終了
またcharで演算子=をつけたところで終了
がいいかなぁと思うんですが。
そのためのchar
0435デフォルトの名無しさん
2010/06/05(土) 17:16:04って日本語でいうと?
0436デフォルトの名無しさん
2010/06/05(土) 17:17:15int main(void){
int a=0,b=0;
while(1)
{
scanf("%d",&a);
b+=a;
if (!a)break;
}
printf("%d\n",b);
return 0;
}
入力が0で終わり。
04374 ◆nNHcoCEvyo
2010/06/05(土) 17:19:21ありっす・・・
ところで
while(1)ってなんですか?
習ってません。
return 0;も習ってない・・・
学校の教えとしてC言語の参考書は先読みしないようにって
言われてるんです。
0438デフォルトの名無しさん
2010/06/05(土) 17:22:190439デフォルトの名無しさん
2010/06/05(土) 17:23:23int
main(void)
{
int a = 0;
int b = 0;
do {
scanf("%d", &a);
b += a;
} while (a != 0)
printf("%d\n", b);
return 0;
}
俺の嫌いなdo-while文.
0440デフォルトの名無しさん
2010/06/05(土) 17:23:44先読みさせないのは差が開くばかりだと思うんだが
0441デフォルトの名無しさん
2010/06/05(土) 17:27:04while (1)は無限ループ、for (;;)と同じ。break文で抜け出す。
return 0;は問題なく終わったとき0を返す。
先読みした方が楽しいよ。
0442デフォルトの名無しさん
2010/06/05(土) 17:27:560443デフォルトの名無しさん
2010/06/05(土) 17:28:2104444 ◆nNHcoCEvyo
2010/06/05(土) 17:28:32ありっす。
char
で
=を入力したときにプログラム終了させるには?
>>440
高校なわけねぇだろwww
こんな高度なことしねぇっすよ・・・
先読みさせないは嘘だよ・・・忘れてくれ。
0445デフォルトの名無しさん
2010/06/05(土) 17:29:2404464 ◆nNHcoCEvyo
2010/06/05(土) 17:30:30大学の先生はそんなこと言わない。
でも大学でも知ってることだけで作業するってのがクレバーなんだと思う。
時間をかけて演繹的にやる方法は確実だけど要領が悪いと思う。
0447391
2010/06/05(土) 17:31:20int main(void){
int a=1, sum=0;
while(a != 0) {
a = 0;
scanf("%d", &a);
sum += a;
}
printf("%d\n", sum);
}
0448デフォルトの名無しさん
2010/06/05(土) 17:31:21>>4ではないんだよね?
0449デフォルトの名無しさん
2010/06/05(土) 17:31:49なんの冗談だよw
0450デフォルトの名無しさん
2010/06/05(土) 17:32:000451デフォルトの名無しさん
2010/06/05(土) 17:32:16別に数式を描くわけでもないのに'='だけのために文字型で受け取って
数文字か'='かその他の文字かを判定するのは少し馬鹿らしい
>>446
何も知らない奴が知ってることだけでってw
お前教科書以外にプログラミングの本読まないわけ?
その時点で周りに差をどんどん付けられてるぞ
0452デフォルトの名無しさん
2010/06/05(土) 17:35:030453デフォルトの名無しさん
2010/06/05(土) 17:36:590454デフォルトの名無しさん
2010/06/05(土) 17:38:0804554 ◆nNHcoCEvyo
2010/06/05(土) 17:41:44それは恥ずかしいです。確かに夏休みは遅れ取り戻しの勉強はするが
先取り学習は絶対しないと決めてる。先取り学習したら応用力が身に付かない
と思う。
>>453
最低限のことしかかいてないし、応用課題ばかりな件。
プログラム得意な奴もエラー多発で挫折してる・・・
そろそろバイトだから落ちるけど、まじで東大の数学より
プログラムのほうがむずいわww
0456デフォルトの名無しさん
2010/06/05(土) 17:42:36情報学科?
0457デフォルトの名無しさん
2010/06/05(土) 17:44:05> プログラムのほうがむずいわww
Fランの俺に謝れ\(^o^)/
0458デフォルトの名無しさん
2010/06/05(土) 17:44:09サークルの温泉旅行にもノートPCくらい持ってくわ
0459デフォルトの名無しさん
2010/06/05(土) 17:45:540460デフォルトの名無しさん
2010/06/05(土) 17:46:430461デフォルトの名無しさん
2010/06/05(土) 17:48:56うちの大学にいる
「東工大の講義なら、この時期こんな低レベルなことやってないだろうがなw」
とか言ってた東工大出身の教員が
全然プログラム書けなくてワロタ
0462デフォルトの名無しさん
2010/06/05(土) 17:49:00プログラミングが暗いとか言ってる時点で、住む世界が違う
0463デフォルトの名無しさん
2010/06/05(土) 17:49:41えっ、何その上から目線・・・・
0464デフォルトの名無しさん
2010/06/05(土) 17:50:47ウザすぎだろここの奴ら
0465デフォルトの名無しさん
2010/06/05(土) 17:50:570466 ◆nNHcoCEvyo
2010/06/05(土) 17:58:05理系だけど別に研究職つくつもりは毛頭ないんで^^
高校の教員目指してるんで。
>>447
何故
intにa,sum二つ変数使うんですか?
aだけでよくないですか?
0467デフォルトの名無しさん
2010/06/05(土) 18:06:040468デフォルトの名無しさん
2010/06/05(土) 18:07:00お前それで自分の生徒にまたその考えを植えつけるのか
理系ならポリアの「いかにして問題をとくか」とか読めよ。これはプログラマの推薦図書でもあるし
あとその本にインスパイアされた「数学ガール」も読んどけ、読みやすいから。
知らないことは出来なくて良いのだろうか調べれば分かることなのに。
実際お前は2chに質問してるわけだろ?つまり他力本願なやり方で調べている。矛盾してるよ
お前には何にしろ教わりたくないなあ
0469デフォルトの名無しさん
2010/06/05(土) 18:07:07入門書とかK&Rとか読むといいと思うよ?
0470デフォルトの名無しさん
2010/06/05(土) 18:07:440471デフォルトの名無しさん
2010/06/05(土) 18:10:14K&Rは初心者には勧められないらしいよ。古くもあるしもともと初心者向けに書かれてないって
上手くまとめてあるからとりあえず持っとくと良いらしいが
0472 ◆nNHcoCEvyo
2010/06/05(土) 18:10:56int main(void){
int a = 0;
while(a != 0) {
a = 0;
scanf("%d", &a);
a += a;
}
printf("%d\n", a);
}
これでいいような気がしますが・・・・
0473デフォルトの名無しさん
2010/06/05(土) 18:11:44らしい
0474デフォルトの名無しさん
2010/06/05(土) 18:12:110475デフォルトの名無しさん
2010/06/05(土) 18:12:440476デフォルトの名無しさん
2010/06/05(土) 18:13:40反論を恐れてアンカーも付けられないヘタレに言われたくないw
0477デフォルトの名無しさん
2010/06/05(土) 18:14:26>int a = 0;
>while(a != 0) {
ここw
0478デフォルトの名無しさん
2010/06/05(土) 18:14:33仮に入れたとしてもscanf()でaを読み込んだ時点でそれまでの合計が消える。
0479デフォルトの名無しさん
2010/06/05(土) 18:15:28アンカーもなにも、この流れで馬鹿っていったら◆nNHcoCEvyo以外にはいないだろw
0480デフォルトの名無しさん
2010/06/05(土) 18:16:06これは本当だよ。K&R読んだことある?
0481デフォルトの名無しさん
2010/06/05(土) 18:17:40メモリ気にしてるのかは知らんがそんなのできてからの話だろ?
0482デフォルトの名無しさん
2010/06/05(土) 18:18:17K&R読んだことあるよ。
本当ならなぜ伝聞推定の助動詞を使うんだ?
0483デフォルトの名無しさん
2010/06/05(土) 18:19:44俺は読んだことないから。でも一般的な批判だから教えてやったんだよ
0484デフォルトの名無しさん
2010/06/05(土) 18:20:330485デフォルトの名無しさん
2010/06/05(土) 18:20:540486デフォルトの名無しさん
2010/06/05(土) 18:21:15勝手な俺解釈をもとにしておかしいおかしい言うだけだろ
0487デフォルトの名無しさん
2010/06/05(土) 18:22:42コラム:C言語の聖書? K&R
http://homepage3.nifty.com/mmgames/c_guide/c_kandr.html
読んだ人に聞きたいけど、これに反論ある?
0488デフォルトの名無しさん
2010/06/05(土) 18:23:36そもそも宿題で教えてない事やると怒られるだけだろうけど、
先読みしてもその情報を使わなければいいだけだな
先読み禁止とか、智への深い渇望が感じられないな
そういう奴に共通するセリフは
「〜だから俺は〜しなくても構わない」という類いのセリフだな
俺は面白そうだからと別学科の授業も沢山受けたもんだ
0489デフォルトの名無しさん
2010/06/05(土) 18:25:46こいつは先読みする以前の問題だ
0490デフォルトの名無しさん
2010/06/05(土) 18:25:51権威を叩いて自分の権威を高めようという小物の意図がミエミエ
0491デフォルトの名無しさん
2010/06/05(土) 18:30:08じゃあダイクストラの"Go To Statement Considered Harmful"はどうよ?
当時一般的なgo to文を叩く小物?ダイクストラは大物だから叩いてもおk?
問題は中身だと思うのだが
0492デフォルトの名無しさん
2010/06/05(土) 18:30:22ポインタがよく理解できてないアホの寝言にしか見えないw
0493デフォルトの名無しさん
2010/06/05(土) 18:31:130494デフォルトの名無しさん
2010/06/05(土) 18:31:200495デフォルトの名無しさん
2010/06/05(土) 18:32:080496デフォルトの名無しさん
2010/06/05(土) 18:33:350497デフォルトの名無しさん
2010/06/05(土) 18:33:450498デフォルトの名無しさん
2010/06/05(土) 18:34:09K&RでCを始めた人間がこの世にゴマンと居るのだから、別にK&Rで初めることに一切問題はない。
0499デフォルトの名無しさん
2010/06/05(土) 18:34:260500デフォルトの名無しさん
2010/06/05(土) 18:34:270501デフォルトの名無しさん
2010/06/05(土) 18:35:18っていうか堂々と「大学は勉強する場所じゃない」とか言っちゃうのが文系
うちの親父とかもそう
0502デフォルトの名無しさん
2010/06/05(土) 18:35:59いや、そりゃそうだけど例外を一般化してどうすんのっていう
文系は一般的には学問的姿勢が身についてないどころか真っ向から逆らってる感じ
0503デフォルトの名無しさん
2010/06/05(土) 18:36:270504デフォルトの名無しさん
2010/06/05(土) 18:36:500505デフォルトの名無しさん
2010/06/05(土) 18:41:09逆にお前はそれらについて何を知ってるの?
そういうこと聞き出すのって詭弁じゃねーの?
0506デフォルトの名無しさん
2010/06/05(土) 18:41:540507デフォルトの名無しさん
2010/06/05(土) 18:43:300508デフォルトの名無しさん
2010/06/05(土) 18:43:490509デフォルトの名無しさん
2010/06/05(土) 18:44:410510デフォルトの名無しさん
2010/06/05(土) 18:46:07一般と特殊を区別できないお前が底抜けのアホだろ。
0511デフォルトの名無しさん
2010/06/05(土) 18:47:01>>4と同列にされたら理系学生もキレるわなww
0512デフォルトの名無しさん
2010/06/05(土) 18:47:56底辺理系より一流文系のほうが上だし。
0513デフォルトの名無しさん
2010/06/05(土) 18:48:200514デフォルトの名無しさん
2010/06/05(土) 18:48:56その比較自体、文系がかわいそうだよ
0515デフォルトの名無しさん
2010/06/05(土) 18:49:530516デフォルトの名無しさん
2010/06/05(土) 18:50:20文系は手抜こうと思ったらどこまでも抜けるからな。
0517デフォルトの名無しさん
2010/06/05(土) 18:51:350518デフォルトの名無しさん
2010/06/05(土) 18:52:52ィ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;゙t,
彡;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ヽ
イ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;r''ソ~ヾ:;;;;;;゙i,
t;;;;;;;リ~`゙ヾ、;;;;;;;;;;;;;;;;;;;;ノ i,;;;;;;!
゙i,;;;;t ヾ-‐''"~´_,,.ィ"゙ ヾ;;f^! / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ト.;;;;;》 =ニー-彡ニ''"~´,,...,,. レ')l. < おまえは何を言っているんだ
t゙ヾ;l __,, .. ,,_ ,.テ:ro=r''"゙ !.f'l. \____________
ヽ.ヽ ー=rtσフ= ; ('"^'=''′ リノ
,,.. -‐ゝ.>、 `゙゙゙゙´ ,' ヽ . : :! /
~´ : : : : : `ヽ:. ,rf :. . :.: j 、 . : : ト、.、
: : : : : : : : : : ヽ、 /. .゙ー:、_,.r'゙: :ヽ. : :/ ヽ\、
:f: r: : : : : : : : !丶 r-、=一=''チ^ ,/ !:: : :`丶、_
: /: : : : : : : : :! ヽ、 ゙ ''' ''¨´ / ,i: : : l!: : : : :`ヽ、
〃: :j: : : : : : : ゙i `ヽ、..,,__,, :ィ":: ,ノ:: : : : : : : : : : : :\
ノ: : : : : : : : : : :丶 : : ::::::::: : : : /: : : : : : : : : : : : : : : :\
0519デフォルトの名無しさん
2010/06/05(土) 18:53:040520デフォルトの名無しさん
2010/06/05(土) 18:54:11クラスに一人とかで、ほぼ不細工w
0521デフォルトの名無しさん
2010/06/05(土) 18:54:370522デフォルトの名無しさん
2010/06/05(土) 18:55:490523デフォルトの名無しさん
2010/06/05(土) 18:56:330524デフォルトの名無しさん
2010/06/05(土) 18:57:450525デフォルトの名無しさん
2010/06/05(土) 18:58:300526デフォルトの名無しさん
2010/06/05(土) 18:59:330527デフォルトの名無しさん
2010/06/05(土) 19:00:03学力すら獲得できないヤツなんて役に立たない以前に、害悪。
0528デフォルトの名無しさん
2010/06/05(土) 19:00:240529デフォルトの名無しさん
2010/06/05(土) 19:01:510530デフォルトの名無しさん
2010/06/05(土) 19:02:11いや勿論そうだけどそういうこと言ってるんじゃないよ
大体大学入った後も学力とか学歴にこだわるヤツってそれしか取り柄がない
0531デフォルトの名無しさん
2010/06/05(土) 19:02:44確かに社会に出る時点で学力によって階層化されるから
その社会では周りと同程度である学力は意味をなさないな
0532デフォルトの名無しさん
2010/06/05(土) 19:03:21学歴がないヤツほど、「オレが出世できないのは学歴がないせいだ」とか言って、学歴にこだわってるけどな
0533デフォルトの名無しさん
2010/06/05(土) 19:05:180534デフォルトの名無しさん
2010/06/05(土) 19:05:29ああ、そういうパターンもあるねww
それは本当に惨めだな。
でも大抵は色白の非リアが自己正当化のために学歴でもって下の人間を見下す、ってパターンが多いよね
0535デフォルトの名無しさん
2010/06/05(土) 19:06:30> でも大抵は色白の非リアが自己正当化のために学歴でもって下の人間を見下す、ってパターンが多いよね
多く無い。
0536デフォルトの名無しさん
2010/06/05(土) 19:07:130537デフォルトの名無しさん
2010/06/05(土) 19:07:230538デフォルトの名無しさん
2010/06/05(土) 19:08:44いや職場じゃないって。
大体は2chでウサ晴らしてるでしょそういうヤツは。
0539デフォルトの名無しさん
2010/06/05(土) 19:09:100540デフォルトの名無しさん
2010/06/05(土) 19:09:360541デフォルトの名無しさん
2010/06/05(土) 19:09:53チャリ通ってだけで焼けるから、それでも白いのはもう遺伝子レベルだよ
0542デフォルトの名無しさん
2010/06/05(土) 19:10:560543デフォルトの名無しさん
2010/06/05(土) 19:12:250544デフォルトの名無しさん
2010/06/05(土) 19:13:25学歴板にだって、このスレにだってそういう連中が実際居るのに何をおっしゃる
0545デフォルトの名無しさん
2010/06/05(土) 19:15:28それは学歴板がネタ雑談板でありキチガイ隔離板だからだ
それを一般的な2chのように言うな
0546デフォルトの名無しさん
2010/06/05(土) 19:16:18勝手に劣等感持ってるヤツならいるみたいだが。
0547デフォルトの名無しさん
2010/06/05(土) 19:16:37学歴板以外でもそういう話題が出るってことは2chでそういう話題が出ること自体が一般的だってことだろ
0548デフォルトの名無しさん
2010/06/05(土) 19:18:06一般的ではないよ
犯罪者は捕まるが、犯罪は一般的ではないだろ
0549デフォルトの名無しさん
2010/06/05(土) 19:18:25お前みたいなヤツこそ隔離されるべきだな
0550デフォルトの名無しさん
2010/06/05(土) 19:31:19img_robot_flag[player_flag]+=img_robot_cnt[player_flag]/64;
img_robot_cnt[player_flag]+=2;
}
(中略)
if(img_robot_cnt[player_flag]>255){
img_robot_cnt[player_flag]=0;
}
全体がwhileループで回っているとして、これでimg_robot_flag[player_flag]が1ずつ増えてくれません。
情報が少なくて分かりづらいと思いますが、その理由を教えてください。
もう一個別のifで囲んだりして遠回りすると予定通り動くのですが・・・。
0551デフォルトの名無しさん
2010/06/05(土) 19:41:370552デフォルトの名無しさん
2010/06/05(土) 19:43:41この形では問題なく1ずつ加算されてます。
ですが+=の形にするとどうしてもうまくいきません。
またint()で囲んでも駄目でした。
0553デフォルトの名無しさん
2010/06/05(土) 19:49:10上記のDrawFormatStringで表示させるときには、>>550の
img_robot_flag[player_flag]+=img_robot_cnt[player_flag]/64
を消してます。
またimg_robot_flag[player_flag]+=img_robot_cnt[player_flag]/64がある場合には
img_robot_flag[player_flag]が12になったり14になったりと挙動がおかしいです。
0554デフォルトの名無しさん
2010/06/05(土) 19:49:55player_flagが0じゃないと別物だけどそこらへんは?
0555デフォルトの名無しさん
2010/06/05(土) 19:50:450556デフォルトの名無しさん
2010/06/05(土) 19:52:540557デフォルトの名無しさん
2010/06/05(土) 19:55:30+される値も0から3まで変化して当たり前だと思うんだが。
0558デフォルトの名無しさん
2010/06/05(土) 20:02:17そこで
DrawRotaGraphF(int(board_x1+zahyou_x[f]), int(board_y2-BLOCK_TATE*1),1.0f,0.0f,img_robot[f][img_robot_flag[f]],TRUE);
に対応させてカウンタが0〜255まで(img_robot_cnt[player_flag]が0〜3まで)まで動く際に、
それぞれパラパラ漫画のように表示される具合です。
0559デフォルトの名無しさん
2010/06/05(土) 20:03:34中略ってとこに原因がないと考える根拠は?
0560デフォルトの名無しさん
2010/06/05(土) 20:16:29if(img_robot_flag[player_flag]>=4){
img_robot_flag[player_flag]=img_robot_flag[player_flag]-img_robot_flag[player_flag]%4+img_robot_cnt[player_flag]/64;
img_robot_cnt[player_flag]+=2;
}
前のままだと、img_robot_cnt[player_flag]が64になったとき、66になったとき、68になったとき〜で
それぞれimg_robot_flagに1を加算していたためうまく表示出来なかったようです。
お騒がせしました。
0561デフォルトの名無しさん
2010/06/05(土) 20:19:090562デフォルトの名無しさん
2010/06/05(土) 20:23:47そこまで1にこだわる理由はなんだ
0563デフォルトの名無しさん
2010/06/05(土) 20:26:320564デフォルトの名無しさん
2010/06/05(土) 20:32:130565デフォルトの名無しさん
2010/06/05(土) 20:34:510566デフォルトの名無しさん
2010/06/05(土) 20:38:110567デフォルトの名無しさん
2010/06/05(土) 20:38:45for(;;) こっちのほうが使いやすい。
0568デフォルトの名無しさん
2010/06/05(土) 20:43:34ttp://ejje.weblio.jp/content/for+ever
0569デフォルトの名無しさん
2010/06/05(土) 20:46:570(偽)か0以外(真)かだから1でも10000でもいいがメンドイので1をよく使うってか定番だね。
0570562
2010/06/05(土) 20:56:14なんとなくそんな理由だと思いました。すっきりしました
0571デフォルトの名無しさん
2010/06/05(土) 21:18:59PC では試せないが。
0572デフォルトの名無しさん
2010/06/05(土) 21:57:03別に
while (*p++ = *q++)
;
がしごくわかりにくい、とは思ったこともなかったのですが、そんなもんですかね。
0573デフォルトの名無しさん
2010/06/05(土) 21:59:180574デフォルトの名無しさん
2010/06/05(土) 23:07:08大学の課題で使いたいんですが、pushやpopを型に応じて2種類定義するのはなんかカッコ悪いので
0575デフォルトの名無しさん
2010/06/05(土) 23:08:52全部int型に入れればいいじゃん。
0576デフォルトの名無しさん
2010/06/05(土) 23:12:27演算子とか入れても大丈夫なんでしょうか?
0577デフォルトの名無しさん
2010/06/05(土) 23:14:21演算子ってchar型で'+'とか'-'ってこと?
それなら別にいいんじゃないの。
0578デフォルトの名無しさん
2010/06/05(土) 23:15:35そうです
式を逆ポーランド記法にしたいので
ありがとうございました
0579デフォルトの名無しさん
2010/06/05(土) 23:17:41charなら0、intなら1で、型情報、値の順で積んでいくようにして
1500+3000なら、
1, 1500, 0, '+', 1, 3000
みたいな感じに。
0580デフォルトの名無しさん
2010/06/05(土) 23:31:18標準入力から読み込んだ文字列を並び替えて、作業用にこのスタックを使うつもりです
逆ポーランド記法にした後は別のキューに入れて計算します
あと構造体のメンバに不定値があっても、それを参照しなければコンパイルや実行に影響は無いですか?
0581デフォルトの名無しさん
2010/06/05(土) 23:34:340582デフォルトの名無しさん
2010/06/05(土) 23:37:27可愛いやつだw
0583デフォルトの名無しさん
2010/06/05(土) 23:41:420584デフォルトの名無しさん
2010/06/06(日) 00:05:200585デフォルトの名無しさん
2010/06/06(日) 00:06:240586デフォルトの名無しさん
2010/06/06(日) 00:14:29きもちわるい。
0587デフォルトの名無しさん
2010/06/06(日) 01:06:540588デフォルトの名無しさん
2010/06/06(日) 01:30:530589デフォルトの名無しさん
2010/06/06(日) 01:34:280590デフォルトの名無しさん
2010/06/06(日) 01:40:19不定値の部分は共用体を使いませう。
0591デフォルトの名無しさん
2010/06/06(日) 01:43:33良い心がけだ
0592デフォルトの名無しさん
2010/06/06(日) 03:01:11まずはフローチャートをかけと。設計しろと。Cは単なる道具にすぎないんだよ!
0593デフォルトの名無しさん
2010/06/06(日) 03:04:490594デフォルトの名無しさん
2010/06/06(日) 03:07:11フローチャートはやめてデータフローダイアグラムにしておいてくれ
0595592
2010/06/06(日) 03:11:52設計ができてもCを使いこなせないとプログラミングできっこないよ
0596デフォルトの名無しさん
2010/06/06(日) 03:17:39ポールグレアム曰く、アメリカ人はとりあえず書き始め、その途中で修正を加えながら完成させる。
日本人はその前によく設計する。だからアメリカの車は糞で、日本の車は素晴らしいが、
プログラミングや映画についてはアメリカ人が得意。絵もそうだが、途中で修正するのは当然だって。
珠玉のプログラミングではとりあえず分かりやすい疑似コードで考えてそれを具体的なコードになおす
みたいなことが書いてあったかな。フローチャートって人に説明するにはいいけど、そこまで重要かな?
0597デフォルトの名無しさん
2010/06/06(日) 03:23:000598デフォルトの名無しさん
2010/06/06(日) 03:24:54授業ではCを使ってたかもしれないが、それがCの授業じゃなくプログラミングの授業なら
Cは目的でなく単なる道具だからな
0599デフォルトの名無しさん
2010/06/06(日) 03:26:28第三者にみせて、処理の流れに矛盾がないかどうかチェックしてもらうことは意味のあることだと思う。
0600デフォルトの名無しさん
2010/06/06(日) 03:33:48低級言語時代の遺物だろフローチャートの類なんて。
0601デフォルトの名無しさん
2010/06/06(日) 03:37:290602デフォルトの名無しさん
2010/06/06(日) 03:38:450603デフォルトの名無しさん
2010/06/06(日) 03:39:23UnixとかのOSもいきなりコーディングから始めたの?だとしたらすごいよな。
「ポインタが理解できない理由」という本にUnixの疑似プログラムが記載されていたけど
みてて複雑に絡み合っててすぐには理解できなかった。
あれを設計なしにコーディングして途中で修正加えて完成させたってのか・・。
0604デフォルトの名無しさん
2010/06/06(日) 04:07:02完璧な設計をいつまで作ってなかなかコーディングし始めない人を批判してるんだよ
0605デフォルトの名無しさん
2010/06/06(日) 05:14:240606デフォルトの名無しさん
2010/06/06(日) 06:13:550607デフォルトの名無しさん
2010/06/06(日) 06:40:110608デフォルトの名無しさん
2010/06/06(日) 06:52:420609デフォルトの名無しさん
2010/06/06(日) 07:35:01いきなりコードを書くのは良くないが、いつまでも設計図を書いているのもよくない。
バランス感覚を養うただ一つの方法は経験を積むことです。
0610デフォルトの名無しさん
2010/06/06(日) 14:00:05file.txtのデータが
0.1
-0.5
0.32
0.65
0.76
-0.45
となっていて、それを配列w[100]に順番に格納していきたいです
よろしくお願いします
0611デフォルトの名無しさん
2010/06/06(日) 14:11:25char buf[ 256 ];
double w[ 100 ];
int i = 0;
while( fgets( buf, 256, file ) != NULL )
{
w[ i ] = atof( buf );
i ++;
}
fclose( file );
0612デフォルトの名無しさん
2010/06/06(日) 14:14:58どうもありがとうございます
0613610
2010/06/06(日) 14:23:52double w[ 100 ]={ 0.1 , 0.5 , 0.32 ,0.65 , 0.76 , -0.45 , ・・・};
の配列をtxtファイルに1行づつ書き込んでいくにはどうすればいいですか?
なんどもすみません
0614デフォルトの名無しさん
2010/06/06(日) 14:32:45char buf[ 256 ];
double w[ 100 ] = { 0.1 , 0.5 , 0.32 ,0.65 , 0.76 , -0.45 };
for( int i = 0; i < 10; i ++ )
{
sprintf( buf, "%f\n", w[ i ] );
fputs( buf, file );
}
fclose( file );
0615デフォルトの名無しさん
2010/06/06(日) 14:57:15ありがとうございました
うまくいきました
0616デフォルトの名無しさん
2010/06/06(日) 20:49:09main関数内で変数を宣言するとき、頭にstaticつけようがつけまいが結果は変わりませんよね?
0617デフォルトの名無しさん
2010/06/06(日) 20:50:380618デフォルトの名無しさん
2010/06/06(日) 20:50:570619デフォルトの名無しさん
2010/06/06(日) 20:52:06static だと
初期化される
ヒープに確保される
なので結果が変わる事もあります
0620デフォルトの名無しさん
2010/06/06(日) 20:58:48http://pc12.2ch.net/test/read.cgi/tech/1274926862/7 の下の方の例
0621616
2010/06/06(日) 21:04:07変数の寿命という点では同じですよね?
0622デフォルトの名無しさん
2010/06/06(日) 21:05:260623デフォルトの名無しさん
2010/06/06(日) 21:06:390624デフォルトの名無しさん
2010/06/06(日) 21:06:530625デフォルトの名無しさん
2010/06/06(日) 21:07:45ヒープに確保されるわけねーだろw
0626デフォルトの名無しさん
2010/06/06(日) 21:18:490627デフォルトの名無しさん
2010/06/06(日) 21:22:33大きな配列を用意する時とか
0628デフォルトの名無しさん
2010/06/06(日) 21:23:33じゃあスタックに確保されるの?
0629デフォルトの名無しさん
2010/06/06(日) 21:24:24ヒープとスタックしか知らんのか
0630デフォルトの名無しさん
2010/06/06(日) 21:41:09あとはレジスタくらいしか知らない
0631616
2010/06/06(日) 21:42:10main関数内で、大きな配列を扱うときにstatic入れるのは
自動で0初期化するためですか?
0632デフォルトの名無しさん
2010/06/06(日) 21:45:07ヒープ使え、ヒープ
staticだとメモリ足らなかったら起動できずに
OSがエラーメッセージ吐くぞ
ヒープ使ってたら自分でメッセージ出せる
0633デフォルトの名無しさん
2010/06/06(日) 21:47:03レジスタ知ってて.dataとか知らないのか
0634デフォルトの名無しさん
2010/06/06(日) 22:03:24callocでいいやん
0635デフォルトの名無しさん
2010/06/06(日) 22:13:47思ってたけど違うのか
0636デフォルトの名無しさん
2010/06/06(日) 22:19:190637デフォルトの名無しさん
2010/06/06(日) 22:21:340638デフォルトの名無しさん
2010/06/06(日) 22:28:10ヘッダ、命令、可変データ、不変データ、スタックを置くためのメモリが確保される
staticで確保されるメモリはこのうち可変データ(非const)と不変データ(const)だ
ヒープはそれとは別に確保される領域
0639デフォルトの名無しさん
2010/06/06(日) 22:29:31もちろんメモリ保護のある状況だけだかんな
0640デフォルトの名無しさん
2010/06/06(日) 22:39:240641デフォルトの名無しさん
2010/06/06(日) 22:57:01大学でそれってクレバーじゃないよ。もっともひどいやり方だよ。
0642デフォルトの名無しさん
2010/06/06(日) 23:04:130643デフォルトの名無しさん
2010/06/06(日) 23:04:340644デフォルトの名無しさん
2010/06/06(日) 23:05:59名門すぎんだろw
0645デフォルトの名無しさん
2010/06/06(日) 23:16:17そうできないOSもあるよ
0646デフォルトの名無しさん
2010/06/06(日) 23:17:070647デフォルトの名無しさん
2010/06/06(日) 23:20:010648デフォルトの名無しさん
2010/06/06(日) 23:29:000649デフォルトの名無しさん
2010/06/06(日) 23:29:43メモリ確保を遅延する環境はどうしようもない
0650デフォルトの名無しさん
2010/06/06(日) 23:30:42シグナルも飛ばずに即死するの? >遅延確保に失敗した場合
0651デフォルトの名無しさん
2010/06/07(月) 00:29:26で?
0652デフォルトの名無しさん
2010/06/07(月) 00:31:520653デフォルトの名無しさん
2010/06/07(月) 01:53:370654デフォルトの名無しさん
2010/06/07(月) 06:02:27少なくともmallocは0を返さないはずだよね
0655デフォルトの名無しさん
2010/06/07(月) 11:36:26FILE *f;
int c;
f = fopen("a.txt", "rb");
while ((c = fgetc(f)) != EOF) {
printf("%X\n", c);
}
UTF8で”あ”と1文字だけ書かれたa.txtをバイナリモードで開いて
バイトコードを出力するプログラムを書いたんですが
E3
81
82
A
という結果になります。”あ”はUTF8でE38182なんでOKですが最後のAは謎です。
これはどっから来てるんでしょうか???
0656デフォルトの名無しさん
2010/06/07(月) 11:44:150657デフォルトの名無しさん
2010/06/07(月) 11:51:59ありがとうございます。改行でした。
実はa.txt内には直接改行は入ってないんですが、なんで改行出てきちゃうんでしょうか??
0658デフォルトの名無しさん
2010/06/07(月) 11:54:470659デフォルトの名無しさん
2010/06/07(月) 12:19:23はいviです。
環境はMac snow leopardのMacVim7.2です。文字コードutf-8、改行コードはunix(LF)です。
0660デフォルトの名無しさん
2010/06/07(月) 12:24:51最後の行に改行を追加する旨警告メッセージが出なかった?
vi系は原則最後に改行文字を出力するから。
0661デフォルトの名無しさん
2010/06/07(月) 12:35:27viで普通にファイルを作成すると、行の最後に改行文字がつきます。
ファイルが一行だけでも同じことで、改行文字が最後につきます。
ファイルの最後に改行文字がないようなファイルを編集すると、
保存時にファイルの最後に改行文字が付加されます。
0662デフォルトの名無しさん
2010/06/07(月) 12:52:27viが自動的に追加していたんですね。
ありがとうございます。本当に助かりました。
0663デフォルトの名無しさん
2010/06/07(月) 17:10:04ディフォルトの設定のままだとNULLは返らない。
その場合、遅延確保に失敗したら即死する。
但し、確保しようとしたプロセスが死ぬとは限らない。
0664デフォルトの名無しさん
2010/06/07(月) 18:10:35え、アドレス空間ぜんぶ空いてない場合でもNULLが返らないの?
0665デフォルトの名無しさん
2010/06/07(月) 18:21:210666デフォルトの名無しさん
2010/06/07(月) 18:32:54じゃあ連続領域が確保できるかどうかについてはその時点で検証しないということ?
0667デフォルトの名無しさん
2010/06/07(月) 19:35:22abc123 de-50fg
みたいに入力してatoiで123と-50をintの配列に格納するときはどうすればいいでしょうか
上の文字列(abc...)の要素を先頭から順に見て(文字列のポインタを増やして)
数字が来たら(細かい分岐はとりあえず無視)atoiの引数にポインタ入れて整数にして格納ってできますか?
ちなみにポインタよくわかってないです
0668デフォルトの名無しさん
2010/06/07(月) 20:03:38static int *ip;→この時点でipはNULL初期化される。
0669デフォルトの名無しさん
2010/06/07(月) 20:07:430670デフォルトの名無しさん
2010/06/07(月) 20:12:10本当にNULL初期化されるから試してみなされ。
0671デフォルトの名無しさん
2010/06/07(月) 20:12:460672デフォルトの名無しさん
2010/06/07(月) 20:16:100673デフォルトの名無しさん
2010/06/07(月) 20:18:10質問者にとっては珍しい出来事かもしれないが、回答者にとってはそれ当たり前なので、勘弁してください。
0674デフォルトの名無しさん
2010/06/07(月) 20:18:41bssってなんですか?
0675デフォルトの名無しさん
2010/06/07(月) 20:24:25ttp://ja.lmgtfy.com/?q=bss+%E3%82%BB%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3
0676デフォルトの名無しさん
2010/06/07(月) 20:42:53調べてきた
メモリにロードされたプログラムの中で、初期値のない静的変数が割り当てられるセグメントのこと。
block started by symbol の略。
でも0初期化されるから「初期値のない」じゃ説明がつかないな
0677デフォルトの名無しさん
2010/06/07(月) 21:05:020678デフォルトの名無しさん
2010/06/07(月) 21:10:38どこの組み込み系OSだよ
0679デフォルトの名無しさん
2010/06/07(月) 21:18:350680デフォルトの名無しさん
2010/06/07(月) 21:35:46strtol()してポインタが進んでいたらそれを格納してポインタを更新、そうでなければポインタを一つ進める
0681デフォルトの名無しさん
2010/06/07(月) 21:37:170682デフォルトの名無しさん
2010/06/07(月) 21:41:180683デフォルトの名無しさん
2010/06/07(月) 21:42:020684デフォルトの名無しさん
2010/06/07(月) 21:44:250685デフォルトの名無しさん
2010/06/07(月) 22:07:070686デフォルトの名無しさん
2010/06/07(月) 22:08:180687デフォルトの名無しさん
2010/06/07(月) 23:10:41どういう意図で疑問形にしたの?
なんか胡散臭いレスだな。
0688デフォルトの名無しさん
2010/06/07(月) 23:16:150689デフォルトの名無しさん
2010/06/07(月) 23:41:25このmainは何を表してるんですか?intは関数の型ですよね?voidは引数の
型は何でもいいってことですよね?mainとは何ですか?ここ適当にmanyとか
にしていいんですか?全く分からないのですが・・
0690デフォルトの名無しさん
2010/06/07(月) 23:42:320691デフォルトの名無しさん
2010/06/07(月) 23:45:20voidは何も無しってこと。何でもいいんじゃなくて、何も無し。
mainとはエントリポイントに指定されている関数。そこからプログラムが始まる。
0692デフォルトの名無しさん
2010/06/08(火) 00:10:12いろいろなソース見てみると
int XXXXX()のXXXXの部分はmainばかりじゃないんですが
この場所は勝手に自分で作ったらいけないんですか?
あとmainだとどういう特性があるんですか?
>>690
入門書は分かりにくい、挫折した。
0693デフォルトの名無しさん
2010/06/08(火) 00:13:17じゃあ、#include<stdio.h>って言ってるけど、これが何か分かってるわけ?
分からなくて良いからとりあえずそんなもんだと思って進め。あとで分かる
0694デフォルトの名無しさん
2010/06/08(火) 00:13:580695デフォルトの名無しさん
2010/06/08(火) 00:15:25何も読んでないのにmain出てくる訳ないし
0696デフォルトの名無しさん
2010/06/08(火) 00:16:00タダで読めるんだし一読しとけ?
0697デフォルトの名無しさん
2010/06/08(火) 00:16:520698デフォルトの名無しさん
2010/06/08(火) 00:19:440699デフォルトの名無しさん
2010/06/08(火) 00:23:080700デフォルトの名無しさん
2010/06/08(火) 00:25:10> いろいろなソース見てみると
> int XXXXX()のXXXXの部分はmainばかりじゃないんですが
> この場所は勝手に自分で作ったらいけないんですか?
自分で勝手に作ってもいいよ。実際に「int XXXXX()」でもいい。
> あとmainだとどういう特性があるんですか?
>>691に書いてあるけど、そこからプログラムが始まる(プログラム開始時にmain()が呼び出される)という特性がある。
0701デフォルトの名無しさん
2010/06/08(火) 00:38:07コンパイラはmainという名前の関数から始まると思っているから、コンパイル時に教えてやるという面倒な作業が増える
WinMain関数などはさらに面倒なことを定義してるので、素直にそれを使った方が他の人にも自分にもやさしい
0702デフォルトの名無しさん
2010/06/08(火) 00:39:47実引数の型を後でどうせ設定するんでしょ?
0703デフォルトの名無しさん
2010/06/08(火) 00:41:220704デフォルトの名無しさん
2010/06/08(火) 00:42:000705デフォルトの名無しさん
2010/06/08(火) 00:43:01自分で作りますよね?
int many(void)としたらmanyはどう作用するんですか?
0706デフォルトの名無しさん
2010/06/08(火) 00:46:31ひきすう
0707デフォルトの名無しさん
2010/06/08(火) 00:49:01main()が呼び出され、その中でmany()を呼び出したらmany()が実行される
http://codepad.org/W35cHb8F
0708デフォルトの名無しさん
2010/06/08(火) 01:07:10many自体はコンパイルできるが、標準Cではmain関数から実行されると決まっている。
manyだけで実行できるプログラムは書けない。
だけど、本も何も無しでわかるの?
持っている本は何?とっかかりとして本が悪すぎるのでは無いかな。
0709デフォルトの名無しさん
2010/06/08(火) 01:59:10でググれば初心者向けの解説サイトはたくさん出てくる
0710デフォルトの名無しさん
2010/06/08(火) 02:30:30犬でもわかるC言語
main関数は全ての関数の総元って考えてOK?
新たに関数設定するときmany()はどこに書けばいいのですか?
何故main(){}の中だけで作業しないんですか?
{}の中に作業全て行えばいいじゃないですか。
0711デフォルトの名無しさん
2010/06/08(火) 02:33:49main()の中に書くと長くなるし、同じ操作を行いたい時また書かなきゃいけないだろ
というかもうここで質問すんな死ね
0712デフォルトの名無しさん
2010/06/08(火) 03:13:08関数を定義するのは、一番外側でしか行えません。
mainなどの関数の中では関数を定義できません。一番外側ではないので。(もちろん、関数を使うだけならできます)
以下は、hello world と表示し、数字を1増やし、その数字も表示する。 これを3回繰り返すプログラムです。
#include <stdio.h>
int i=0;
void main() {
printf("hello world"); i = i+1; printf("%d", i);
printf("hello world"); i = i+1; printf("%d", i);
printf("hello world"); i = i+1; printf("%d", i);
}
この 「hello world と表示して、数字を1増やし、数字も表示する」という部分は、結局3回とも同じ手順ですよね?
だから、この部分を関数としてまとめてしまえば、目的がシンプルになって読みやすくなります。 main() を見て「なにかを3回するんだな」ということが簡単にわかります。
#include <stdio.h>
int i =0;
void many(void) {
printf("hello world"); i = i+1; printf("%d", i);
}
void main() {
many(); many(); many();
}
「many() が具体的に何を行うか?」は、とりあえず知らなくても、main()で「なにかを3回するんだな」と読めます。 こうすればいちいち処理の詳細を知らなくても簡単に読めます。
関数は、こうやって「プログラムを簡単に読めるようにするため」に使います。 簡単に読めるプログラムを書くのは、高速なプログラムを書くのと同じくらい高度で知的な作業です。
0713デフォルトの名無しさん
2010/06/08(火) 03:20:380714デフォルトの名無しさん
2010/06/08(火) 03:29:310715デフォルトの名無しさん
2010/06/08(火) 04:30:21#include <stdio.h>
int i = 0;
void main() {
printf("hello world"); i = i+1;
printf("%d", i); printf("hello world");
i = i+1; printf("%d", i);
printf("hello world"); i = i+1;
printf("%d", i);
}
これは712とまったく同じことをするプログラムですが、すごく読みづらいです。
現実は、こういう入り組んだ処理の流れの中から、「つまり自分は何がしたいのか?」を探し出す作業になるはずです。
プログラムを読みやすく書き直すことは、すごく難しいことだと思います。
オブジェクト指向も関数型言語も、結局目的はここです。簡単に読めるようにするためです。難解に書いて偉そうにするためではありません。
簡単にする方法は、ソースだけを見てても、なかなか見えてきません。
でも、ソースを一行一行読みながら、紙に○や線で図形を書いてみると、「自分は何をしたかったのか?」が本当の意味で見えてくる場合が多いです。
ソースを読むときは、紙にらくがきしながら読むといいです。紙や黒板にらくがきしながら考えると、言葉ではなく映像として浮かび上がります。
人間にとって映像は、言葉よりも遥に扱いが容易なので、考察に向いてます。(コンピューターとは逆ですね)
ソースだけで考えるよりも、らくがきと平行して考えたほうが、ずっと理解が容易になるのでおすすめです。(人に説明するときも同じ)
そういう「らくがき方法」を、カッチリと定義したものに、UMLやBootch法などがあります。
「これはとても高級なことなのだ」とハッタリをかましたがる人もいますが、あれは結局、万人向けの”らくがき方法マニュアル”にすぎません。
自由ならくがきを書いてると、「これはUMLに添ってない図だ!」と横槍を入れて嘲笑ってくる人もいるでしょうけど、気にしなくていいです。
自分の頭の中のらくがきを、そのまま紙に書き写して思考するのが、それこそが各自にとっての最良の思考ツールなのですから。
0716デフォルトの名無しさん
2010/06/08(火) 04:34:15めっちゃ分かりやすい、ありがとうございます。
やっぱり実用書は理屈しか書いてないんでイメージしにくいです。
もっと想像力を鍛えます。関数を呼び起こすってのはプログラムの文を
そのまま呼び起こすってことなんですね!
0717デフォルトの名無しさん
2010/06/08(火) 04:54:43で?
0718デフォルトの名無しさん
2010/06/08(火) 08:07:24つまりお前の頭がどうしようもなく悪いってこと
0719デフォルトの名無しさん
2010/06/08(火) 13:32:170720デフォルトの名無しさん
2010/06/08(火) 14:00:41さくら クラス
みかん クラス
りんご クラス
0721デフォルトの名無しさん
2010/06/08(火) 14:40:20オブジェクト指向を勉強してからおいでよ
0722デフォルトの名無しさん
2010/06/08(火) 16:56:16↑
こういう奴は C 以外を使えばいい
××とやらが printf なだけでお手上げなタイプは
0723デフォルトの名無しさん
2010/06/08(火) 16:57:520724デフォルトの名無しさん
2010/06/08(火) 17:02:410725デフォルトの名無しさん
2010/06/08(火) 17:04:190726デフォルトの名無しさん
2010/06/08(火) 17:08:150727デフォルトの名無しさん
2010/06/08(火) 17:10:17俺だけじゃなくて安心した
0728デフォルトの名無しさん
2010/06/08(火) 17:14:02マジで言ってんの?ただ関数を書くよりクラスで書いた方がよりその意味ではより効果的だということだよ
継承とポリモーフィズムなどの点において
0729デフォルトの名無しさん
2010/06/08(火) 17:17:13話がいきなり interface まで飛躍するのか
そんな流れにはついていけないよ
0730デフォルトの名無しさん
2010/06/08(火) 17:17:560731デフォルトの名無しさん
2010/06/08(火) 17:22:130732デフォルトの名無しさん
2010/06/08(火) 17:22:450733デフォルトの名無しさん
2010/06/08(火) 17:32:580734デフォルトの名無しさん
2010/06/08(火) 18:01:030735デフォルトの名無しさん
2010/06/08(火) 18:34:33OOP的用途なら FILE と f* 関数群で それとなくやっちゃってるし…
文法的に
コンストラクタ/デストラクタ で 生成/消滅の入れ子構造が書きやすい というのは大きいと思う
# が 順序依存が発生するようだと、ちょと工夫
0736デフォルトの名無しさん
2010/06/08(火) 18:36:30802.3 に証明書とかいらない、みたいな違和感がある
0737デフォルトの名無しさん
2010/06/08(火) 18:48:40OpenGL もそうだよな。
要は使い方次第なのに、それが解ってないやつほど不満ばっか垂れるんだよな。
0738デフォルトの名無しさん
2010/06/08(火) 18:50:570739デフォルトの名無しさん
2010/06/08(火) 19:12:05NULLが返されたとき、異常系処理としてプログラム終了のコード書きますよね?
自分は終了コード書かず、プログラムを継続させたい。
それには、使用されないメモリを解放して空き領域を作ればいい。
言うのは簡単だが、使用されないメモリがどれか判断がつきません。
どうしたらいいですか。
0740デフォルトの名無しさん
2010/06/08(火) 19:22:03自分の管理下での話なら GC(ガベージコレクション)あたりをググる
他人のアプリも含めたシステム全体についての話は…
あ き ら め る
0741デフォルトの名無しさん
2010/06/08(火) 19:23:110742デフォルトの名無しさん
2010/06/08(火) 19:26:30あるプロセスが他のプロセスの事情を判断することは非常に困難だから、OS がメモリ不足といってきたらそれまで、だと思います。
0743734
2010/06/08(火) 19:35:13継承がないクラスぐらいの意味合いでした
0744739
2010/06/08(火) 19:35:18せめてメモリの空き領域を知りたいですが、そんな都合のいい関数ないよね。
0745デフォルトの名無しさん
2010/06/08(火) 19:42:29OSによる。
連続して確保可能な最大の空き と 全空きの合計 とは一致しないこともあるんで…
空きを知ったところで、あまりおいしくない。
自分がどれだけ使っているかを知る → こんだけ使ってるからヤバいかも?
というアプローチはありかもね
0746デフォルトの名無しさん
2010/06/08(火) 20:06:28まずは不要になったら即freeするコードにしてみてはいかがか。
0747デフォルトの名無しさん
2010/06/08(火) 20:10:03昔は coreleft とかあったよ
その後ゲイツ OS の「進化」によって意味がなくなってきたんだけど
今でもシングルタスクな環境では作れば意味はあるね
0748739
2010/06/08(火) 20:42:40その「不要」をどうやって判断するかが難しい
0749デフォルトの名無しさん
2010/06/08(火) 20:53:38どういうの作ってんの?
0750デフォルトの名無しさん
2010/06/08(火) 21:52:31double dorille(double x){}と設定して
int main(){}の中で呼び出してプログラム実行すると
即終了となるのは何故でしょう?理由が分かりません。
0751デフォルトの名無しさん
2010/06/08(火) 21:56:47エスパーするとgetchar();を入れればおk
0752デフォルトの名無しさん
2010/06/08(火) 22:44:52それは邪道。
pif ファイルを作れ。
0753デフォルトの名無しさん
2010/06/08(火) 23:10:080754デフォルトの名無しさん
2010/06/08(火) 23:24:360755デフォルトの名無しさん
2010/06/08(火) 23:27:06double値をリターンしてないわけだがなんで実行できるの
0756デフォルトの名無しさん
2010/06/08(火) 23:35:21Ctrl+F5で実行しろ
0757デフォルトの名無しさん
2010/06/08(火) 23:36:110758デフォルトの名無しさん
2010/06/08(火) 23:42:57どう処理すればよいでしょうか。
int *pt
fgets((char *)pt, **, **, stdin )と、キャストしてる時点でもう無理ですかね?
0759デフォルトの名無しさん
2010/06/08(火) 23:46:16int *pt
fgets((char *)pt, sizeof pt, stdin);
で OK.
0760759
2010/06/08(火) 23:47:200761デフォルトの名無しさん
2010/06/08(火) 23:48:44仮にできたとしても、文字列で入ってくるけどいいのか?
0762デフォルトの名無しさん
2010/06/08(火) 23:53:00ありがとうございます。
ただ、>>761さんの仰る通り文字列で入ってくるみたいです。
整数としてその後の処理で扱いたいのですが・・・
scanfとか使えって話になるんですかね?
0763デフォルトの名無しさん
2010/06/08(火) 23:53:290764デフォルトの名無しさん
2010/06/08(火) 23:53:28無知は黙ってろ。
質問されたことを質問の通りに答えろ。
意訳など厳禁。
プログラマーの常識だろ。
0765デフォルトの名無しさん
2010/06/08(火) 23:59:57問題ない。
#include <stdio.h>
int main(){
int *pt;
fgets((char *)pt, sizeof pt, stdin);
printf("%d\n", pt);
return 0;
}
これで、
Alt+1 Alt+0 Alt+0 Alt+0 Enter
と入力してみ。Alt は毎回離せよ。数字はテンキーでな。
ちゃんと整数として扱われる。
0766デフォルトの名無しさん
2010/06/09(水) 00:00:04後置記法にした文字列をキューに入れるんですが(引数は構造体、数はatoiで整数にして格納)詰みました
キューに期待した通りに数値が入ってるか確認しようとしてるんですが
strtokで演算子が来た時に対応する列挙定数をメンバに代入してるのに
実行すると何も表示されません
ただ演算子が来た時の処理はしないで、数が来た時だけメンバに代入をさせてそれを表示しようとすると
ちゃんと表示されます
strchrとか使っても同じ結果になって全くわからないんですが、どこがいけないんでしょうか?
ソースです(コンパイラはgcc)
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10657.txt
0767デフォルトの名無しさん
2010/06/09(水) 00:01:56そこは実行には影響無いはずです
0768デフォルトの名無しさん
2010/06/09(水) 00:05:06Alt押しながらっていうのは、そういうことでしたか
理解できずに流していました、申し訳ないです。
ちょっとためしてみますね。
丁寧に説明していただき、ありがとうございました。
0769デフォルトの名無しさん
2010/06/09(水) 00:42:22振り回されているレスが何本も並行していてわけわからんな。
>>574
strtok()使うよりstrtol()辺りを使った方がよさそうな気がする。
それはさて、tpはstrtok()で切り出したエリアを指すポインタなのは言うまでもないよな。
一方、"+"は文字列リテラルへのポインタだ。
つまり、それらを比較しても常に一致しない。
tpのポイントしている先に文字'+'があるかどうかを知りたいのなら、* tp == '+'としないといけない。
要は、演算子の処理が全く働いていないと言うことだな。
それに気付けないと言うことは、デバッグの仕方ももうちっと工夫しないとね。
0770デフォルトの名無しさん
2010/06/09(水) 00:50:45>fgets((char *)pt, sizeof pt, stdin);
fgets((char *)&pt, sizeof pt, stdin);
だろ。
0771デフォルトの名無しさん
2010/06/09(水) 00:53:040772デフォルトの名無しさん
2010/06/09(水) 00:59:20すみません、言い忘れてたんですが *tp == '+' もやってみたんです
でもやっぱり同じ結果でした
ちょっとstrtol使ってできるか試してみます
ありがとうございました
0773デフォルトの名無しさん
2010/06/09(水) 01:10:34あー、出力されない方が問題か。
main()のwhileの条件がおかしい。
終端条件は、type == TNUM && value == 0で脱出だろ?
あんたのコードではtype != TNUM && value != 0で継続(つまりtype == TNUM || value == 0で脱出)になっている。
論理式になれていないなら、無理に各項を反転しようとしないで全体を括って ! で反転したら?
0774デフォルトの名無しさん
2010/06/09(水) 01:13:20数多くある言語すべて知ってないと行けないのでしょうか?
プログラマーになるならこれとこれやっとけば大丈夫って言うのはどれとどれでしょうか
0775デフォルトの名無しさん
2010/06/09(水) 01:18:11後は必要になったら3日で覚えろ。
0776デフォルトの名無しさん
2010/06/09(水) 01:21:28CASL II か、Z80 の辺りがお薦め。
個人的には 6502 がいい。
0777デフォルトの名無しさん
2010/06/09(水) 01:21:39C++を一から覚えるには何日くらいで覚えられますか?
0778デフォルトの名無しさん
2010/06/09(水) 01:23:29while(!(条件))にしてできました!
ポインタをまだあまり理解してないのでconvert内が原因だと思い込んでました
今度からは出力がおかしい時は条件式も疑うようにします
どうもありがとうございました
0779デフォルトの名無しさん
2010/06/09(水) 01:24:38多分何年たっても無理
0780デフォルトの名無しさん
2010/06/09(水) 01:47:22言語は覚えるものじゃない。使うものだ。
つーか、スレ違い。
>>778
「出力がおかしい」から「条件式を疑う」というわけじゃないぞ。
単に>769の段階で出力ループの問題に気付かなかっただけだ。
0781デフォルトの名無しさん
2010/06/09(水) 01:49:49C++の仕様はデカイから、専業で真面目にやっても3年くらいはかかる。
0782デフォルトの名無しさん
2010/06/09(水) 01:56:060783デフォルトの名無しさん
2010/06/09(水) 02:16:14??
>>755
return って関数プログラム終了の時に書く奴じゃないですか?
double値をリターンしてないってどういうことですか?
0784デフォルトの名無しさん
2010/06/09(水) 02:18:080785デフォルトの名無しさん
2010/06/09(水) 02:25:580786デフォルトの名無しさん
2010/06/09(水) 02:46:530787デフォルトの名無しさん
2010/06/09(水) 03:24:36その感覚が普通になっちゃったのかな
0788デフォルトの名無しさん
2010/06/09(水) 03:49:250789デフォルトの名無しさん
2010/06/09(水) 04:38:240790デフォルトの名無しさん
2010/06/09(水) 07:11:270791デフォルトの名無しさん
2010/06/09(水) 12:58:16お、こりゃ便利だね。っと実感できる。
C#とかは、GUIやらWEBの部品を組み合わせるだけだもんね。
って、ことで俺のお勧め、C。
0792デフォルトの名無しさん
2010/06/09(水) 12:59:13コンソールアプリを作りながらとか空想しながらが一番いいよね。
0793デフォルトの名無しさん
2010/06/09(水) 13:14:200794デフォルトの名無しさん
2010/06/09(水) 13:55:410795デフォルトの名無しさん
2010/06/09(水) 14:15:200796デフォルトの名無しさん
2010/06/09(水) 15:08:340797デフォルトの名無しさん
2010/06/09(水) 15:31:210798デフォルトの名無しさん
2010/06/09(水) 15:35:520799デフォルトの名無しさん
2010/06/09(水) 15:52:280800798
2010/06/09(水) 16:02:58×なんで
○なぜ
0801デフォルトの名無しさん
2010/06/09(水) 16:04:200802デフォルトの名無しさん
2010/06/09(水) 16:06:040803デフォルトの名無しさん
2010/06/09(水) 16:10:36どうやって動いているかに興味があった。
0804デフォルトの名無しさん
2010/06/09(水) 16:14:190805デフォルトの名無しさん
2010/06/09(水) 16:50:110806デフォルトの名無しさん
2010/06/09(水) 17:16:210807デフォルトの名無しさん
2010/06/09(水) 17:21:310808デフォルトの名無しさん
2010/06/09(水) 20:11:05必要だと思ったから
0809デフォルトの名無しさん
2010/06/09(水) 21:39:58これってどういう意味ですか?
0810デフォルトの名無しさん
2010/06/09(水) 21:41:090811デフォルトの名無しさん
2010/06/09(水) 21:43:120812デフォルトの名無しさん
2010/06/09(水) 22:21:170813デフォルトの名無しさん
2010/06/09(水) 22:22:58今、素数を算出し表示するコードを書いているのですが
今考えている計算式だと、2,3,5,7の数値が表示できません
何かいい計算式はないでしょうか
0814デフォルトの名無しさん
2010/06/09(水) 22:30:080815813
2010/06/09(水) 22:35:24単純に計算式でふるいにかけるより
プログラムとしては重くなるような気がするのですが、どうなのでしょうか
でも、素数を求めたいだけのプログラムなら何の問題もないでしょうね
回答ありがとうございました
0816デフォルトの名無しさん
2010/06/09(水) 22:42:55ググったのですが、いろんな意見があるみたいで・・・。
0817デフォルトの名無しさん
2010/06/09(水) 22:45:570818デフォルトの名無しさん
2010/06/09(水) 22:46:500819デフォルトの名無しさん
2010/06/09(水) 22:48:510820デフォルトの名無しさん
2010/06/09(水) 22:50:280821デフォルトの名無しさん
2010/06/09(水) 22:56:560822デフォルトの名無しさん
2010/06/09(水) 22:57:28でも、例えばループ回数が100回とかだったら char とかでもいけると思うんです。
そうすればメモリ使用量がわずかに減ると思うんですが
上級者の方たちは、そうやって節約したりするんでしょうか?
それとも、そういうテクニックはあまり使わないんでしょうか?
0823デフォルトの名無しさん
2010/06/09(水) 22:57:580824デフォルトの名無しさん
2010/06/09(水) 22:59:560825デフォルトの名無しさん
2010/06/09(水) 23:02:020826デフォルトの名無しさん
2010/06/09(水) 23:05:450827デフォルトの名無しさん
2010/06/09(水) 23:13:23char a[N]とint a[N]なら意味はある。
ループは、内部で32bit整数として計算している可能性もあり動作が遅いかもしれない。
0828デフォルトの名無しさん
2010/06/09(水) 23:30:17メモリアクセス云々もあるし、どうしてもって時じゃなければintで
0829デフォルトの名無しさん
2010/06/09(水) 23:35:450830デフォルトの名無しさん
2010/06/10(木) 00:35:06>>822じゃないが、ありがとう、勉強になった
0831デフォルトの名無しさん
2010/06/10(木) 00:36:090832デフォルトの名無しさん
2010/06/10(木) 00:41:310833デフォルトの名無しさん
2010/06/10(木) 00:43:540834デフォルトの名無しさん
2010/06/10(木) 00:45:240835デフォルトの名無しさん
2010/06/10(木) 01:24:27何かお勧めなものが有りましたら教えてください。
0836デフォルトの名無しさん
2010/06/10(木) 01:30:17コンパイルまではうまく行ったのですが、うまく動作しません。
何が行けないのでしょうか
教えてください。
#include <stdio.h>
int main(void)
{
int teika,itiwari,sanwari,gowari,hatiwari;
/* 入力部分 */
printf("定価を入力してください");
scanf(" %d ",&teika);
/* 計算部分 */
itiwari =((int)(teika * 0.9));
sanwari =((int)(teika * 0.7));
gowari =((int)(teika * 0.5));
hatiwari=((int)(teika * 0.2));
/* 表示部分 */
printf("定価が%d円の時、1割引は%d円、3割引は%d円、5割引は%d円、8割引は%d円です。\n",&teika,&itiwari,&sanwari,&gowari,&hatiwari);
return 0;
}
0837デフォルトの名無しさん
2010/06/10(木) 01:36:120838デフォルトの名無しさん
2010/06/10(木) 01:36:430839デフォルトの名無しさん
2010/06/10(木) 01:38:22もっと具体的に
色々なと言われても範囲が広すぎる
「数式のプログラム」ってのはどういうものを想定しているんだ
0840デフォルトの名無しさん
2010/06/10(木) 01:38:44> printf("定価が%d円の時、1割引は%d円、3割引は%d円、5割引は%d円、8割引は%d円です。\n",&teika,&itiwari,&sanwari,&gowari,&hatiwari);
0841デフォルトの名無しさん
2010/06/10(木) 01:39:540842デフォルトの名無しさん
2010/06/10(木) 01:40:44Mr. Debug
0843デフォルトの名無しさん
2010/06/10(木) 01:41:26こっちの方が見落としやすいね。コンパイルするまで気付かなかった
0844デフォルトの名無しさん
2010/06/10(木) 01:43:02そりゃあmathematicaみたいなものだろ
0845デフォルトの名無しさん
2010/06/10(木) 01:45:26ご指摘の通りprintf("定価が%d円の時、1割引は%d円、3割引は%d円、5割引は%d円、8割引は%d円です。\n",teika,itiwari,sanwari,gowari,hatiwari);
としましたが動かなかったところ
scanf("%d",&teika);
に直したら正常に動作できました!
スペースを入れてはいけないのですね。
ご協力いただきましてありがとうございました。(TT)
ちなみに宿題ではなく自己啓発なんです。
0846デフォルトの名無しさん
2010/06/10(木) 02:09:45これは別にいいんじゃね?
0847デフォルトの名無しさん
2010/06/10(木) 02:13:290848デフォルトの名無しさん
2010/06/10(木) 02:14:140849デフォルトの名無しさん
2010/06/10(木) 02:50:21自己学習であってほしい
0850デフォルトの名無しさん
2010/06/10(木) 03:00:340851デフォルトの名無しさん
2010/06/10(木) 03:02:260852デフォルトの名無しさん
2010/06/10(木) 03:06:030853デフォルトの名無しさん
2010/06/10(木) 03:30:000854デフォルトの名無しさん
2010/06/10(木) 06:59:22リターンだけの関数を記述したa.cのオブジェクト「a.o」を「cc -c a.c」で作りましたが、
「ld -o output /lib/crt0.o a.o -lc」
を実行してもエラー(そんなシンボル知らない)になってしまいます。
どうすれば良いのでしょうか?
※ldはmanで調べたとき例として出てきた文です。
0855デフォルトの名無しさん
2010/06/10(木) 07:28:560856デフォルトの名無しさん
2010/06/10(木) 08:01:02恐らくPOSIX環境だと思われるのだが、そういう環境依存の質問は環境を書くように。
で、a.oから例えばliba.aを作りたいなら>855の指摘するようにarコマンドを使えば宜しい。
arコマンドは、単なるアーカイバなので使い方も一般的なアーカイバに似ている。
arコマンドは単にライブラリ(アーカイブ)を作るだけでなくそれをリストアップするのにも
使えるので、manコマンドで説明を読んでおくことをお勧めする。
0857デフォルトの名無しさん
2010/06/10(木) 08:04:310858デフォルトの名無しさん
2010/06/10(木) 08:28:200859デフォルトの名無しさん
2010/06/10(木) 16:55:350860デフォルトの名無しさん
2010/06/10(木) 16:56:470861デフォルトの名無しさん
2010/06/10(木) 17:14:030862デフォルトの名無しさん
2010/06/10(木) 17:31:34iPhone版に行けカス
0863デフォルトの名無しさん
2010/06/10(木) 17:56:490864デフォルトの名無しさん
2010/06/10(木) 20:18:04なお、m = a % b としたとき、gcd(a, b) は m≠0 の場合 gcd(b, m) に等しく、 m=0 の場合 b に等しい。
2つの自然数aとbを入力させ、a 人から b 人を選ぶ組み合わせ comb(a, b)を求め、それを出力するプログラムを作成せよ。
なお、comb(a, b) = comb( a-1, b) + comb( a-1, b-1) であり、 b==0 もしくは b==a のとき comb(a, b) = 1 である。
今週は2つありますが。。。よろしくお願いしますorz
0865デフォルトの名無しさん
2010/06/10(木) 20:20:140866デフォルトの名無しさん
2010/06/10(木) 20:55:18そっちの人が少ないので、どうかお願いしますorz
0867デフォルトの名無しさん
2010/06/10(木) 21:42:450868デフォルトの名無しさん
2010/06/10(木) 21:43:060869デフォルトの名無しさん
2010/06/10(木) 21:45:322つの自然数aとbを入力させ、a 人から b 人を選ぶ組み合わせ comb(a, b)を求め、それを出力するプログラムを作成せよ。
なお、comb(a, b) = comb( a-1, b) + comb( a-1, b-1) であり、 b==0 もしくは b==a のとき comb(a, b) = 1 である。
0870デフォルトの名無しさん
2010/06/10(木) 21:46:23これでいいだろ
if(a<0 || b<0 || b>a) return 0;
0871デフォルトの名無しさん
2010/06/10(木) 21:47:180872デフォルトの名無しさん
2010/06/10(木) 21:55:42数学的に、aCb って事?
0873デフォルトの名無しさん
2010/06/10(木) 22:17:14問題文は再帰を使えと誘導してる感じだな
0874デフォルトの名無しさん
2010/06/10(木) 22:20:590875デフォルトの名無しさん
2010/06/10(木) 22:23:390876デフォルトの名無しさん
2010/06/10(木) 22:24:510877デフォルトの名無しさん
2010/06/10(木) 22:30:22ありがとう、よさそうな本ですな。
明日本屋いってくる
0878デフォルトの名無しさん
2010/06/10(木) 23:15:20これ意味がわからん。
comb( a-1, b) + comb( a-1, b-1) = comb( 2a-2, 2b )ならわかるが
0879デフォルトの名無しさん
2010/06/10(木) 23:15:47なんとかの三角形
0880869
2010/06/10(木) 23:28:49階乗を求め方はぐぐればある
0881878
2010/06/10(木) 23:29:57>>869
0882デフォルトの名無しさん
2010/06/11(金) 00:29:00宿題スレに書き込んだ後、マルチだと判ったんで、ふざけるなと言いたいけど削除できないんだよな。
せめて、他スレに書くときは、最初のスレから誘導しろよ。
0883デフォルトの名無しさん
2010/06/11(金) 01:12:380884デフォルトの名無しさん
2010/06/11(金) 01:28:12#include <stdio.h>
#include <stdlib.h>
unsigned int comb(unsigned int a, unsigned int b)
{
if(b==0 || b==a) return 1;
return comb(a-1, b)+comb(a-1, b-1);
}
int main(int argc, char **argv)
{
if(argc != 3) return -1;
unsigned int a = (unsigned int)atoi(argv[1]);
unsigned int b = (unsigned int)atoi(argv[2]);
printf("comb(%u,%u)=%u\n", a, b, comb(a,b));
return 0;
}
0885デフォルトの名無しさん
2010/06/11(金) 01:34:300886デフォルトの名無しさん
2010/06/11(金) 02:32:350887デフォルトの名無しさん
2010/06/11(金) 07:43:390888デフォルトの名無しさん
2010/06/11(金) 12:44:38void abc(int a,int b) {
int c;
c=a;
a=b;
b=c;
}
0889デフォルトの名無しさん
2010/06/11(金) 12:47:31何もしない
以上
0890デフォルトの名無しさん
2010/06/11(金) 13:24:360891デフォルトの名無しさん
2010/06/11(金) 13:35:480892デフォルトの名無しさん
2010/06/11(金) 13:57:570893デフォルトの名無しさん
2010/06/11(金) 14:07:460894デフォルトの名無しさん
2010/06/11(金) 14:11:570895デフォルトの名無しさん
2010/06/11(金) 14:19:07b int型の変数
c int型の変数
0896デフォルトの名無しさん
2010/06/11(金) 14:31:02ありがとう!
0897デフォルトの名無しさん
2010/06/11(金) 14:31:14関数として呼び出すときは何の効果もない
一応関数内ではaとbの値を交換しているが、関数内のローカル変数なのでとくに意味がない
0898デフォルトの名無しさん
2010/06/11(金) 16:25:39&bar; は、変数barのアドレスを返す、
では、
*bar; これは一体何を返すのか教えてください。
C++やってて出て来たのですが、多分Cの問題だろうと思い、こちらに書かせて頂きました。
0899デフォルトの名無しさん
2010/06/11(金) 17:12:30間違い。
foo型へのポインタ型の変数barを宣言。
0900デフォルトの名無しさん
2010/06/11(金) 17:22:37あ、確かに。すいません、凡ミスでした。
*bar; が知りたいのですが、こちらもお教え願えませんでしょうか?
0901デフォルトの名無しさん
2010/06/11(金) 17:30:050902デフォルトの名無しさん
2010/06/11(金) 17:43:31ありがとうございます!
(*bar).foo();とメソッドを呼ぶ変わりにbar->foo();として呼べるのを思い出しました。
普段、->演算子しか使わないので、ピンと来ませんでした。
ありがとうございました。
0903デフォルトの名無しさん
2010/06/11(金) 19:35:40int *a;
ってやると、ポインタを入れる場所とint型変数の実体と、
領域が2つセットで自動的に確保されて、
ポインタの方にaという名前が付く、という理解でいいのでしょうか?
0904デフォルトの名無しさん
2010/06/11(金) 19:36:500905デフォルトの名無しさん
2010/06/11(金) 19:47:530906デフォルトの名無しさん
2010/06/11(金) 20:16:500907デフォルトの名無しさん
2010/06/11(金) 20:20:39ちょっとまって、それはない
0908デフォルトの名無しさん
2010/06/11(金) 20:54:56実体は実体で別に準備しないといけない。
0909デフォルトの名無しさん
2010/06/11(金) 20:57:48str[5]とした時点でバイト分の領域が確保されるはずです。
問題はこの後で、"hello,world"という12バイト分の文字列をstr領域に無理やり代入してみました。
この時点で不正なメモリにアクセスすることになるはずなのですが、コンパイラはOKらしいです。
sizeof使ってサイズを調べてみたら12バイトになってました。もうわけわかりません
0910デフォルトの名無しさん
2010/06/11(金) 21:00:570911デフォルトの名無しさん
2010/06/11(金) 21:01:49とりあえずコードを見せてください。
おっしゃるとおりなら、それは不正なやりかたてす。環境によっては落ちるか落ちないかは時の運ということもあります。
0912デフォルトの名無しさん
2010/06/11(金) 21:03:44実装依存です
いわゆる鼻から悪魔です
char str[5]="hello"; // これは特別にok
0913デフォルトの名無しさん
2010/06/11(金) 21:06:15vinelinux意外に、オススメのプログラミング環境があったら教えてくれないでしょうか?
0914909
2010/06/11(金) 21:08:01#include <stdio.h>
int main(void)
{
char str[] = "hello,world";
printf("%d",sizeof(str));
return 0;
}
$ gcc -o test01 test01.c ←コンパイル問題なし
$ ./test01
12 ←どういうことやねん
0915デフォルトの名無しさん
2010/06/11(金) 21:08:120916デフォルトの名無しさん
2010/06/11(金) 21:08:56そのコンパイラが特殊だとしか言いようがない
0917デフォルトの名無しさん
2010/06/11(金) 21:09:365じゃねえのかよ
0918デフォルトの名無しさん
2010/06/11(金) 21:10:07どこに char str[5] があるんだ?
バカなの? 死ぬの?
0919909
2010/06/11(金) 21:10:20結果はこうでした
$ gcc -o test01 test01.c
test01.c: In function `main':
test01.c:5: warning: initializer-string for array of chars is too long
$ ./test01
5
0920デフォルトの名無しさん
2010/06/11(金) 21:11:15ただの勘違いだったか
0921デフォルトの名無しさん
2010/06/11(金) 21:11:58配列サイズの所で打ち切られるはずだ
0922903
2010/06/11(金) 21:12:49int *a;
int b;
*a = &b;
のようにすればいいんでしょうか?
0923903
2010/06/11(金) 21:15:06a = &b
ですか?
ポインタ難しいです
0924デフォルトの名無しさん
2010/06/11(金) 21:16:35そうです。それでいいです。
0925デフォルトの名無しさん
2010/06/11(金) 21:16:350926924
2010/06/11(金) 21:17:39int *a
int b
a = &b
ですね。
0927デフォルトの名無しさん
2010/06/11(金) 21:20:23ありがとうございます。
人工知能(AI)に、興味があるのですがAIはC言語で組めるのでしょうか?
やっぱりRubyとかの方がいいのでしょうか?
0928デフォルトの名無しさん
2010/06/11(金) 21:23:380929909
2010/06/11(金) 21:24:45なるほど。
実際には不正メモリアクセスは起こらず初期化時に打ち切られるんですね
0930924
2010/06/11(金) 21:25:04bonanza とかも AI なんですかね?
0931デフォルトの名無しさん
2010/06/11(金) 21:26:42普通は意図した動作とは違う動作になるので(値が足りなくなるから)
まずバグになる
てか、warningもerrorと差はないと考えて
warningも0になるようプログラムするのが良い
0932デフォルトの名無しさん
2010/06/11(金) 21:30:47どれでもいいんじゃね?関数型言語の方が適しているという話はあったが
ちなみにRubyのようなスクリプト言語よりはCの方が圧倒的に速いから、Cで良いんじゃね
新しい言語の方が多機能ではあるが
0933909
2010/06/11(金) 21:37:47勉強になりました。
実は他の人がそういうコード組んでて、それだ不正メモリアクセスするよと指摘してあげると
しねーよバカといわれたんです。その証拠にプログラムも問題なく動いていたからなぜ???と思った
0934903
2010/06/11(金) 21:39:45配列変数の場合はこんな感じでポインタを初期化すればいいんでしょうか?
int *a[10];
int b[10];
int i;
for( i = 0; i < 10; i++ ) {
a[i] = &b[i];
}
0935デフォルトの名無しさん
2010/06/11(金) 21:40:35OK, OK.
0936デフォルトの名無しさん
2010/06/11(金) 21:43:040937デフォルトの名無しさん
2010/06/11(金) 21:43:39どうもどうも
0938デフォルトの名無しさん
2010/06/11(金) 22:17:36ありがとうございました。
AIをC言語で組む勉強にオススメの本などはないでしょうか?
前、探してみたところRubyとかだったので・・・
0939デフォルトの名無しさん
2010/06/11(金) 22:22:560940デフォルトの名無しさん
2010/06/11(金) 22:29:36まずは、既存の推論エンジンを使ってみて
推論エンジンとは何たるかを憶えることだな
それさえ解れば C でどう実装するかは作業でしかない
0941デフォルトの名無しさん
2010/06/12(土) 10:06:31というのをよく見るんだが、読みにくいのでやめて欲しい。
if (strcmp(...) == 0) でいいじゃん、と思ってしまう。
== で比較するのはコストがかかるのだろうか。
だったらコンパイラが最適化(否定形に置き換え)してくれるのではないだろうか。
どうなの?
0942デフォルトの名無しさん
2010/06/12(土) 10:12:260943デフォルトの名無しさん
2010/06/12(土) 10:13:150944デフォルトの名無しさん
2010/06/12(土) 10:13:30私もstrcmp() == 0 と書くね。
まぁ、! strcmp() は慣用句だから。
ちなみに、まともなコンパイラなら同じコードになるように最適化する。
0945デフォルトの名無しさん
2010/06/12(土) 10:13:360946デフォルトの名無しさん
2010/06/12(土) 10:14:41==0より簡単に書けるから。
0947デフォルトの名無しさん
2010/06/12(土) 10:15:54慣用句だから、と言えばそれまでだが。。
0948デフォルトの名無しさん
2010/06/12(土) 10:27:57言語と喧嘩しても仕方ないって
0949デフォルトの名無しさん
2010/06/12(土) 10:34:16左辺と右辺が等しいとき、(左辺) - (右辺) は 0 に等しいからである。
0950デフォルトの名無しさん
2010/06/12(土) 10:42:520951デフォルトの名無しさん
2010/06/12(土) 10:44:370952デフォルトの名無しさん
2010/06/12(土) 10:52:01コンパイルエラー
0953デフォルトの名無しさん
2010/06/12(土) 10:53:400954デフォルトの名無しさん
2010/06/12(土) 11:35:19文も短くなるしね。
0955デフォルトの名無しさん
2010/06/12(土) 11:38:53文も短くなるしね。
0956デフォルトの名無しさん
2010/06/12(土) 11:40:090957デフォルトの名無しさん
2010/06/12(土) 12:27:170958デフォルトの名無しさん
2010/06/12(土) 12:42:300959デフォルトの名無しさん
2010/06/12(土) 13:25:57そう、C ではね
C では strcmp() == 0 とも !strcmp() とも書くというだけ
言語と喧嘩しても仕方ないって
0960デフォルトの名無しさん
2010/06/12(土) 13:30:550961デフォルトの名無しさん
2010/06/12(土) 13:31:580962デフォルトの名無しさん
2010/06/12(土) 13:33:270963デフォルトの名無しさん
2010/06/12(土) 14:29:58代入と比較を間違えないようにと左辺に定数とか
もってくる奴がいるけど、正直きもすぎるw
0964デフォルトの名無しさん
2010/06/12(土) 14:42:040965デフォルトの名無しさん
2010/06/12(土) 15:01:51きもいのなら代入式を廃して「左辺値=右辺値;」で代入文になるように文法の改定を提案したらどうだ
0966デフォルトの名無しさん
2010/06/12(土) 15:10:31おれもブール値のばあいは
if (b) ・・・
if (!b) ・・・
と書くけど
strcmp()のリターン値はブールじゃないから==や!=で比較する。
0967デフォルトの名無しさん
2010/06/12(土) 15:22:240968デフォルトの名無しさん
2010/06/12(土) 16:15:050969デフォルトの名無しさん
2010/06/12(土) 16:15:350970デフォルトの名無しさん
2010/06/12(土) 16:25:03常に false だな。
0971デフォルトの名無しさん
2010/06/12(土) 16:27:040972デフォルトの名無しさん
2010/06/12(土) 16:30:13一度に140文字ずつしか書き込めないけどw
0973デフォルトの名無しさん
2010/06/12(土) 16:41:270974デフォルトの名無しさん
2010/06/12(土) 16:46:490975デフォルトの名無しさん
2010/06/12(土) 16:55:58#define NOT !
0976デフォルトの名無しさん
2010/06/12(土) 17:01:330977デフォルトの名無しさん
2010/06/12(土) 17:03:290978デフォルトの名無しさん
2010/06/12(土) 17:05:270979デフォルトの名無しさん
2010/06/12(土) 17:12:160980デフォルトの名無しさん
2010/06/12(土) 17:24:24そんな車輪の再発明みたいなことは
0981デフォルトの名無しさん
2010/06/12(土) 18:34:240982デフォルトの名無しさん
2010/06/12(土) 18:38:290983デフォルトの名無しさん
2010/06/12(土) 18:43:09文字列の一部を動的に確保したchar *hogeにコピーしようと思ってます。
char*piyo="ABCDEFG";
とやって、"BCDEF"をコピーする場合、
・hoge = (char*) malloc(5)ですか(6)ですか?
・strncpy(hoge, piyo+1, 5)とやったあと、*(hoge+5+1)=0は必要ですか?
0984デフォルトの名無しさん
2010/06/12(土) 18:45:000985デフォルトの名無しさん
2010/06/12(土) 18:46:40その後printf("%s\n", hoge)としたいので\0で終端させたいです。
0986デフォルトの名無しさん
2010/06/12(土) 18:54:32strncpy(hoge, piyo+1, 5);
*(hoge + 5) = '\0';
0987デフォルトの名無しさん
2010/06/12(土) 18:56:260988デフォルトの名無しさん
2010/06/12(土) 18:59:520989デフォルトの名無しさん
2010/06/12(土) 19:01:47ありがとう
昔の記憶で書いたのであれでしたが、ページ単位で確保するのはvirtualAlloc系でしたね
>>982
mallocぐらいになるとこう表現してもいいと思いましたが、違ってましたか
0990デフォルトの名無しさん
2010/06/12(土) 19:04:590991デフォルトの名無しさん
2010/06/12(土) 19:37:33C言語なら俺に聞け(入門編)Part 66
http://pc12.2ch.net/test/read.cgi/tech/1276339012/
0992デフォルトの名無しさん
2010/06/12(土) 19:48:43sprintf()なら一発だぜ。
sprintf(hoge, "%.5s", piyo + 1);
0993デフォルトの名無しさん
2010/06/12(土) 20:30:380994デフォルトの名無しさん
2010/06/12(土) 20:41:250995デフォルトの名無しさん
2010/06/12(土) 22:04:51何ができたつもりになれるんだ? くっだらねー
0996デフォルトの名無しさん
2010/06/12(土) 23:38:09環境によっちゃ既に仕込まれてたりするけど
0997デフォルトの名無しさん
2010/06/13(日) 00:02:360998デフォルトの名無しさん
2010/06/13(日) 00:19:520999デフォルトの名無しさん
2010/06/13(日) 00:58:18thxです。これでsprintf覚えました。
切り出す文字列が固定幅かそれに準ずる時はかなり使えますね。
1000デフォルトの名無しさん
2010/06/13(日) 01:07:10固定じゃない場合は %.*s
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。