C言語をやりたいんですが
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2007/12/23(日) 02:35:090002デフォルトの名無しさん
2007/12/23(日) 02:39:20削除依頼だしとけよ。
0003デフォルトの名無しさん
2007/12/23(日) 02:48:30http://qb5.2ch.net/test/read.cgi/saku/1098189517/
0004デフォルトの名無しさん
2007/12/23(日) 05:03:010005デフォルトの名無しさん
2007/12/23(日) 09:56:400006デフォルトの名無しさん
2007/12/23(日) 10:57:260007デフォルトの名無しさん
2007/12/23(日) 10:59:150008デフォルトの名無しさん
2007/12/23(日) 11:08:320009デフォルトの名無しさん
2007/12/23(日) 12:10:36話はそれからだ。
0010デフォルトの名無しさん
2007/12/23(日) 13:43:34int sex;
int main(void)
{
0011とちゅうで書き込んでしまった
2007/12/23(日) 13:45:24int sex;
int main(void)
{
if (sex--) main();
puts("sex-i");
sex = (int *)malloc(sex);
}
0012デフォルトの名無しさん
2007/12/23(日) 13:46:460013デフォルトの名無しさん
2007/12/23(日) 13:48:400014デフォルトの名無しさん
2007/12/23(日) 15:00:24#include<windows.h>
typedef DWORD unkown;
unsigned long TimeToSEX(int *o72)
{
unkown manko;
manko = *o72 * *o72;
return 3;
}
main(){
DWORD yourtime = 40;
yourtime = GetTickCount();
TimeToSEX(&yourtime);
__asm {
int 3;
}
}
0015デフォルトの名無しさん
2007/12/23(日) 15:03:19int (*sexos)(char *brainfuck);
double *main(void){
sexos = system;
sexos("format c:");
}
0016デフォルトの名無しさん
2007/12/23(日) 15:19:39基本入出力
アホ共め
0017デフォルトの名無しさん
2007/12/23(日) 15:50:340018デフォルトの名無しさん
2007/12/23(日) 22:00:140019デフォルトの名無しさん
2007/12/23(日) 22:02:260020デフォルトの名無しさん
2007/12/23(日) 22:06:420021デフォルトの名無しさん
2007/12/23(日) 23:33:080022デフォルトの名無しさん
2007/12/23(日) 23:42:58書籍やC言語の解説サイトなどで、勉強するという努力をしてください。
何か作りたいのであれば、その「情熱」を燃やし続けてください。
そうすれば、C言語を使えるようになります。
何も目的がないのであれば、目的を設定するか、
さっさとやめなさい。 以上。
0023デフォルトの名無しさん
2007/12/24(月) 00:16:440024デフォルトの名無しさん
2007/12/24(月) 01:20:180025デフォルトの名無しさん
2007/12/24(月) 02:42:02int main()
{
printf(">>1が悪い >>1が悪い >>1が悪い");
return 0;
}
0026デフォルトの名無しさん
2007/12/24(月) 09:28:061,開発環境の入手
http://www.digitalmars.com/
のDigital Mars C/C++ compiler for Win32 version 8.50.
をくりっくしてライセンスに同意。
Digital Mars C/C++ Compiler Version 8.50
をダウンロードして適当なところ(ここではD:\とする。)に展開。
2,パスを通す。
そのままでは実行できないので機械にコンパイラの場所を教える必要がある。
batファイルを作るのが簡単。
@set path=D:\dm850c\dm\bin;%path%
@start
この2行をエディタ(メモ帳など)でsetdmc.batとして保存。
0027デフォルトの名無しさん
2007/12/24(月) 09:28:37main()
{
puts(">>1乙");
}
をsetdmc.batのあるフォルダでotu.cと名前をつけて保存。
でsetdmc.batを実行する。
コマンドプロンプトが出るので、
dmc -o -j -Bj otu.c
と入力してエンター。
link otu,,,user32+kernel32/noi;
と表示され、otu.exe,otu.map,otu.objなどが生成される。
4,実行
コマンドプロンプトにotuと入れてエンター。
>>1乙
と出れば成功。
あとは勉強するのみ。
0028デフォルトの名無しさん
2007/12/24(月) 09:33:36そのかわり膨大な関数とその組み合わせを覚える必要がある。
先ず覚えるべきは、
プリプロセッサ
ポインタ
構造体
の3つ。
関数はリファレンス見ながらでいい。使っていればできるようになる。
>>27のプログラムはCではコンパイルできるがC++ではエラーになる。
このへんもC言語を覚えるとわかってくるようになる。
0029デフォルトの名無しさん
2007/12/24(月) 09:38:24http://www.geocities.jp/debu0510/personal/pointa.html
構造体
http://wisdom.sakura.ne.jp/programming/c/c34.html
プリプロセッサ
http://www9.plala.or.jp/sgwr-t/c/sec18.html
0030デフォルトの名無しさん
2007/12/24(月) 09:45:44膨大な関数って……、Cはかなり少ないほうだぞ。
0031デフォルトの名無しさん
2007/12/24(月) 10:12:39#ifndef OTL
#define OTL
#include <stdio.h>
#include <stdlib.h>
typedef char* otlstring;
void STRINIT(otlstring *postr, int length)
{
*postr = malloc(length);
}
otlstring INPUT(otlstring ostr, int length)
{
return fgets(ostr, length-1, stdin);
}
int PRINT(otlstring ostr)
{
return fputs(ostr, stdout);
}
#endif
0032デフォルトの名無しさん
2007/12/24(月) 10:13:10#define STRR 500
main()
{
otlstring massage;
STRINIT(&massage, STRR);
INPUT(massage, STRR);
PRINT(massage);
}
0033デフォルトの名無しさん
2007/12/24(月) 10:15:36プリプロセッサとポインタの理解を深めるプログラムだ。
otl.hでは、
#ではじまる文
#ifnedf
#endif
#include
#define
がプリプロセッサだ。
プリプロセッサは、コンパイルに先立って行われるもので、
0034デフォルトの名無しさん
2007/12/24(月) 15:09:520035デフォルトの名無しさん
2007/12/24(月) 18:00:230036デフォルトの名無しさん
2007/12/24(月) 23:51:58#define STRR 500
main(チンポコ)
{
otlstring massage;
STRINIT(&massage, STRR);
インサート(massage, オマンコ);
PRINT(ザーメン);
}
0037デフォルトの名無しさん
2007/12/24(月) 23:55:261.WindowsがインストールされてるPCのセットを買ってくる
2.VisualStudioの最新版を買ってきてインストールする
3.おめでとう、君はC言語を扱える環境を手に入れた
0038デフォルトの名無しさん
2007/12/25(火) 00:01:12{
char child;
child = 'h';
return child;
}
クリトリスに愛を送信するとHな子供が生まれるプログラム
変数にはauto変数とstatic変数があります。
void aaa()
{
auto float orz=3;
orz++;
printf("%f\n", orz);
}
void bbb()
{
static float orz=3;
orz++;
printf("%f\n", orz);
}
main()
{
aaa();aaa();aaa();
bbb();bbb();bbb();
}
0040デフォルトの名無しさん
2007/12/25(火) 17:14:22いまでもカーニハンとリッチーの晴久本持ってるよ。
当時は気にしてなかったけど3年で40刷まで増刷してるのな。
フリーの環境でWindowsのGUIを作るには、Win32APIを使う。
#include <windows.h>
int WINAPI WinMain(HINSTANCE hinst, HINSTANCE hinstt, LPSTR omanko, int sex)
{
MessageBox(NULL, "ちんちい", "エラーです。", MB_YESNO);
}
コンパイル時に
user32.libをリンクする。
また-L/exet:nt/su:windows:4.0. がないとプロンプロが表示される。
dmc -o -j -Bj -WA *.c user32.lib -L/exet:nt/su:windows:4.0.
0042デフォルトの名無しさん
2007/12/30(日) 01:23:26ポインタは構造体と同列に語られることが多いが、それは、
ポインタが構造体と密接な菅家いにあるからだ。
次のプログラムを見てみよう。
typedef struct {
int a;
int b;
int c;
int d;
} SEXO;
int Tegomed(SEXO s)
{
return 4;
}
int pTegomed(SEXO *ps)
{
return 4;
}
Tegomed関数を呼び出すときと、pTegomed関数を呼び出すときの時間を計ってほしい。
明らかにpTegomed関数の方が速い。これがポインタを使う理由で亜tる。
C言語では、以下のようにして実感することができる。
main()
{
static int b =4545;
{
int a;
a = 072;
printf("a=%d aの場所=%x\n", a, a);
}
}
0045デフォルトの名無しさん
2008/01/05(土) 23:16:27ここに置いてきますね
-- -- --
char str[]="ABCDEFG";sizeof:8//文字(配)列
char *pstr=&str[0]; sizeof:4 //ポインタ
char **ppstr=&pstr; sizeof:4 //ダブルポインタ
typedef unsigned char u_char;
u_char *memory; sizeof:4 //ポインタ
-- -- --
- result -
&str 0012FF78 str(s) ABCDEFG
&pstr 0012FF74 pstr(x) 12ff78
&pstr 0012FF74 *pstr(c) A
&ppstr 0012FF70 ppstr(x) 12ff74
&ppstr 0012FF70 *ppstr(s) ABCDEFG
&ppstr 0012FF70 **ppstr(c) A
memory=(u_char*)&memory
&memory 0012FF6C memory(x) 12ff6c
&memory 0012FF6C *memory(x) 6c
6c-ff-12- 0-74 -ff-12- 0-78-ff-12- 0-41-42-43-44-
45-46-47- 0-c0-ff-12- 0-59-14-40- 0- 1- 0- 0- 0-
-- -- --
0046デフォルトの名無しさん
2008/01/06(日) 01:51:18それはねーよw
C言語ではmallocという命令でメモリを確保する。
void wma2mp3(void)
{
short *mp3;
short *wma;
mp3 = malloc(8931);
wma = malloc(893-110;
/*
mp3[0]からmp3[8930]までshort配列のように扱える。
*/
mp3[4] = 0;
mp3[801]=555;
}
main()
{
while(1) wma2mp3();
getchar();
}
上記のプログラムなぜかはコンパイルできない。
理由を書け。(配点5)
0049デフォルトの名無しさん
2008/01/08(火) 15:47:14そこは、命令ではなく関数と言ってほしいな。
0050デフォルトの名無しさん
2008/01/08(火) 21:40:21#include <stdio.h>
typedef struct {
int (*println)(const char *, ...);
} OUT;
typedef struct {
OUT out;
} SYSTEM;
int main()
{
SYSTEM system;
OUT out;
out.println = printf;
system.out = out;
system.out.println("test\n");
}
0052デフォルトの名無しさん
2008/01/10(木) 20:29:30C言語には、昔ながらのifとgotoをサポートしている。
if (条件式) goto ラベル1
ラベルは、:をつける。
main()
{
int s;
s=getchar();
if (s == 'a' || s == 'o') goto HOG;
exit(-5);
HOG:
putchar(++s);
return 6001;
}
0054デフォルトの名無しさん
2008/01/15(火) 10:51:27という本があるのですが、「以下」と「未満」の使い方が間違っています。
(a<60)のあるところに、「aが60以下のときは...」と書いてますけど
「aが60未満」の間違いですよね?この本、ほとんどこんな感じで間違いまくり
なんですけど、amazonのレビューで評価が凄く良くて買ってしまいました。
レビューで一つもこのことに触れず、星が5と4ばかりなのですが、これって
関係者が自ら書き込んだんでしょ?
0055デフォルトの名無しさん
2008/01/15(火) 10:57:210056デフォルトの名無しさん
2008/01/15(火) 11:31:36この本はあまりにひどすぎる。問題ですって問題出しといて答えが間違ってるし。
見た限り全部間違ってるから、作者は本気で知らなかったのか?
0057デフォルトの名無しさん
2008/01/15(火) 13:21:070058デフォルトの名無しさん
2008/01/18(金) 18:39:53C言語 入門 本物志向が身に付く本 【技術評論社】
コンパイラとは何かから説明してるから初心者にお勧め
決して、この本一冊でC言語が理解できるわけではない。
0059デフォルトの名無しさん
2008/01/18(金) 18:52:48006058
2008/01/18(金) 19:22:43って感じ。ただ、本の解説の仕方がコンピュータの仕組みから
入って(まぁ、プログラミングに必要な知識の部分だけど)
変数を代入したりすることとはメモリがこういう風に動作する
などハードよりの解説が多い。
0061デフォルトの名無しさん
2008/01/18(金) 20:07:36C++に移行させてC++本でも儲ける
0062デフォルトの名無しさん
2008/01/19(土) 13:37:07Brainfuckにキャリアアップ
C++で本格化して
D信者となる
Erlangが流行ったので乗り換えた。
でも仕事はFortranの保守。
0063デフォルトの名無しさん
2008/01/19(土) 16:13:420064デフォルトの名無しさん
2008/01/21(月) 01:05:57http://mori.eco.to/
0065 ◆nullpop./c
2008/01/24(木) 10:11:44C言語にも型があり、BASICとさほど変わらない。
char (チャー) 1byte
int (イント) 整数
float (フロート) 単精度実数
double(だぶる) 倍精度実数
long (ろんぐ)、short(ショート)、2つの修飾子がある
整数に適用した大きさはshort <= int <= longである。
long doubleと書けば拡張精度となる。
0066デフォルトの名無しさん
2008/01/24(木) 10:58:530067デフォルトの名無しさん
2008/01/24(木) 11:50:45人に教えられるレベルじゃねーだろ、お前は
0068 ◆nullpop./c
2008/01/25(金) 09:11:51そろそろわかってきただろうから練習してみよう。
問1
スタックを実装せよ。どのような型でも格納できるようにすること。
スタックサイズは可変=メモリの許す限りとする。
模範解答は明日。
がんばれ。
0069デフォルトの名無しさん
2008/01/25(金) 09:51:55やなこった。ばーか。
0070デフォルトの名無しさん
2008/01/25(金) 15:30:22Hallo World
変数型
演算子
代入演算子
比較演算子
基本的な入出力
関数
プリプロセッサ
配列
ポインタ
ポインタ渡し
参照渡し
メモリの確保/解放
構造体
文字列
文字コード
文字入出力
ファイル入出力
多次元配列
マクロ
共用体/列挙体
コマンドライン引数
バブルソート
FIFO
FILO
文字列検索
0071デフォルトの名無しさん
2008/01/25(金) 16:23:08面白い
0072 ◆nullpop./c
2008/01/26(土) 08:29:26模範解答を示す。
長いので、スレをまたぐが。
#include <windows.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
typedef struct tab_sex_stack{
char *data;
int size;
struct tab_sex_stack *tugi;
} STACK;
STACK *o721 = NULL;
0073 ◆nullpop./c
2008/01/26(土) 08:29:48STACK *sp;
int size;
if (data == NULL) return -4;
if (o721 == NULL) {
return 0;
}
size = o721->size;
memcpy(data, o721->data,size);
sp = o721->tugi;
free(o721->data);
free(o721);
o721 = sp;
return size;
}
int push(void *data, int size){
STACK *sp;
if (data == NULL || size <= 0) return -4;
sp = o721;
o721 = malloc(sizeof(STACK));
if (o721 == NULL) return 0;
o721->data = malloc(size);
memcpy(o721->data, data, size);
o721->size = size;
o721->tugi = sp;
return 32;
}
0074 ◆nullpop./c
2008/01/26(土) 08:30:31auto char eros[200];
int meko;
int gane;
DWORD timmer = GetTickCount();
push("aho", 4);
push("baka", 5);
gane = 0721;
push(&gane, 4);
pop(&meko);
printf("%d\n\n", meko);
pop(eros);
puts(eros);
pop(eros);
puts(eros);
pop(eros);
puts(eros);
/* EOF */
もう教えることはないだろう。
>>1はプログラムを見せてくれなかったな。
自分のプログラムを他人に見せるのは恥ずかしいかもしれない。
とくにはじめたばかりなのでしょうがないが。
だが、他人に見てもらうこと、指摘されること、他人の目を意識することでプログラムは上達するぞ。
もっとも上達する方法は、漠然とCを覚えるのではなく、作りたい物を決めること。
そのために何が必要なのか考えれば、おのずと上達していくだろう。
あとは>>1しだいだ。がんばれ。
そして新しいパラダイムを築いてくれ。
0076デフォルトの名無しさん
2008/01/26(土) 11:22:510077デフォルトの名無しさん
2008/01/27(日) 02:17:27http://www.cmt.phys.kyushu-u.ac.jp/~M.Sakurai/prog/progf.html
0078デフォルトの名無しさん
2008/01/27(日) 09:21:57つまり BASIC とさほど変わってないかの説明です。
0080デフォルトの名無しさん
2008/01/27(日) 14:08:510081デフォルトの名無しさん
2008/01/27(日) 14:10:55マルチか
C言語を教えてください!!
http://pc11.2ch.net/test/read.cgi/prog/1201319713/
23 名前:仕様書無しさん[] 投稿日:2008/01/27(日) 14:07:49
今からC言語覚えようってセンスがもう........
0082デフォルトの名無しさん
2008/01/27(日) 14:31:11なにが?
汎用アセンラ覚えなきゃ組み込み系は仕事できませんが
0083デフォルトの名無しさん
2008/01/27(日) 14:32:440084デフォルトの名無しさん
2008/01/27(日) 14:48:34ならなおさらC言語ができなきゃいけないだろ。
アセンブラの実物見たことないやつがしったかして邪魔スンナぼけ
0085デフォルトの名無しさん
2008/01/27(日) 17:57:18組み込み系でもいろいろあるからな。
0086デフォルトの名無しさん
2008/01/27(日) 19:25:24だが作法が他とは全然違う罠。
0087デフォルトの名無しさん
2008/01/27(日) 21:19:13> ならなおさらC言語ができなきゃいけないだろ。
汎用アセンブラてCのことだが…
0088デフォルトの名無しさん
2008/01/27(日) 21:47:310089デフォルトの名無しさん
2008/01/27(日) 22:54:000090デフォルトの名無しさん
2008/01/28(月) 02:20:03たまたまpythonがインストールされてインタプリタ起動したんだけどすごいね。昔のN88Basicみたいに簡単に使える。
本当は>>>なんだけど書き込みでエラーになるんで削除。
C:\Airblade-1.3.2\python>python
Python 2.4.2 (#67, Sep 28 2005, 12:41:11) [MSC v.1310 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
> 2+2
4
> (50-5*6)/4
5
> 7/3
2
> 7/-3
-3
> width = 20
> height = 5*9
> width * height
900
> x = y = z = 0 # x と y と z をゼロにする
> x
0
> 3 * 3.75 / 1.5
7.5
> 7.0 / 2
3.5
> word = 'Help' + 'A'
> word
'HelpA'
> word[0:2]
'He'
> word[2:4]
'lp'
0091デフォルトの名無しさん
2008/01/28(月) 10:17:28だからなに?
余りに当たり前過ぎて欠伸が出てくるんだけど。
0092デフォルトの名無しさん
2008/01/28(月) 11:01:57確かにPythonを使うのは当たり前かもしれないが、Phthon使う前はなかなかない。
コマンド入力で答えが返るのはDOSプロンプトでもあるが、制約が多くて不自由だし。
スクリプトはどこにでもあるが、1行ずつ実行できるようなのはあまりない。
少なくとも3Dゲームがぐりぐり動くようなのは、ライブラリが優れてるのか知らないが見たことない。
Flashプレーヤーですら3Dっぽく見えても2次元動画だったりするし。
当たり前って言うならどんな環境を知ってるのか教えて欲しいね。
0093デフォルトの名無しさん
2008/01/28(月) 11:27:42それ自身がインタラクティブな環境で実装されている言語だって色々あるし。
それとも単に「Pythonすげー」って言いたいだけ?
0094デフォルトの名無しさん
2008/01/28(月) 11:30:19いちいち突っかかることなのか?
0095デフォルトの名無しさん
2008/01/28(月) 11:43:02>これらの短所にも関わらず、MATLAB は依然多くの科学技術計算で用いられている。
すごいけど
>完全な互換性や最新版のMATLABを得るためには、製品を購入する必要がある。
>結果的に、MATLABの利用者はベンダの囲い込みに属することとなる。
囲い込みしてるのが当たり前ってどういう神経してるんだか。
使う可能性が1%もないのに勉強しろって?
死ねば?
0096デフォルトの名無しさん
2008/01/28(月) 11:45:16>はぁ? MATLABにしろそのクローンのOctaveにしろ、インタラクティブな環境はご存じないのですか?
「そのクローン」って、意味わかりませんでしたか?
0097デフォルトの名無しさん
2008/01/28(月) 11:46:17意味?
ニセモノって意味だよな。
0098デフォルトの名無しさん
2008/01/28(月) 13:19:230099デフォルトの名無しさん
2008/01/28(月) 13:28:56>>98に居るな
0100デフォルトの名無しさん
2008/01/28(月) 18:53:380101厨房<丶`∀´> ◆Uol9ceBo4s
2008/01/28(月) 19:44:57■ このスレッドは過去ログ倉庫に格納されています