No.4ベストアンサー
- 回答日時:
あなたがどの程度のレベルなのかがわかりませんがご参考までに
簡単なプログラムをのせておきます。
1 #include <stdio.h>
2
3 int main(void)
4 {
5 int a,b, /* 入力した数字を格納 */
6 kotae; /* 計算結果を格納 */
7
8 printf("数を入力してください。a + bを計算します。\n");
9 printf("input a = ");
10 scanf("%d",&a);
11 printf("inpur b = ");
12 scanf("%d",&b);
13
14 kotae = a + b;
15
16 printf("a + b = %d\n",kotae);
17
18 return 0;
19}
行番号は説明のためにつけました。
最初の行から説明します。
1行目:インクルード文です。最初の段階ではこれを理解するのはむずかしいと思うので、C言語のプログラムの最初の1行はこれ!と、暗号のように覚えてしまったほうがいいです。少し説明しますと、本当は書かなければいけないものを、いつも書くのは面倒なのでまとめてstdio.hというファイル(.hが付いているのはヘッダファイルということ)に書いて別のところに保管し、1行目の文を書くことにより読み込んでいるというイメージで、、、最初のうちはあまり考えないほうが無難でしょう。
3行目:メイン関数の入り口。4行目と、19行目の括弧内がメイン関数の中身。
C言語のプログラムにはこのメイン関数が必ず1つ存在します。プログラムを実行するとここから始まります。お手持ちの参考書の関数の章でいろいろと説明されていると思います。
5,6行目:変数宣言。C言語では変数という記憶領域上の箱のようなものを用意し、値の入れ替えを行います。つまり、この例では、a,b,kotaeの3つの変数を用意しているのです。2行に区切って記述されていますが、1行で
int a,b,kotae;
と記述しても同じです。途中で改行してもセミコロン(;)にぶつかるまでは
1つの文として扱われるので。intというのは整数型という意味。これについては
参考書のデータ型とか型とかの場所に載っているでしょう。
/* 説明文 */ という/* と */ で囲まれた部分はコメントです。自由に文字を書くことができます。説明文とか、自分での趣味のプログラムならぼやきとか(笑)を書き込むことができます。コメントの入れ子はできませんので要注意。
8,9,11行目は出力文です。プログラムで1番最初に習うのはだいたいこれでしょう。ここに説明するより参考書のほうがいいと思うので省略します。
10,12行目は入力文です。キーボードからの入力を行うことができます。
10行目でいうと、キーボードから入力された文字を、整数型("%d")として、
変数aに格納という感じです。&はアドレス演算子です。ポインタの章で詳しく学習できると思います。今は変数aにという感じで覚えてしまっていいと思います。
14行目はみてのとおり…ですね、これは。C言語では、必ず代入されるほうを左辺におきます。ですから、この文はA+Bの結果をkotaeに代入という意味です。
例として、ans = 9なんていう、数学ではありえない式も、C言語では9をansに代入、ということで通用します。これが普通です。慣れてくださいね。
16行目は出力文ですが、前の3つとは少し形が違います。
""のあとにカンマがあり、そのあとにkotaeとなっています。このkotaeに格納(代入)されている値を""の中にある%dの場所に入れて、""で囲まれた部分を出力します。%dを書式指定子といいます。本によっては変換文字列とか書式指定文字列とかいろいろ言い方が違いますが。
それから¥nは改行マークです。これがかかれた場所で改行します。
いろいろずらして試してください。
18行目はリターン文です。
メイン関数は必ず値を返さなくてはいけません。int main(void)で始まっているでしょう?このintは整数型を返せということなのです。だからreturn 0;として
0を返してあげているのです。これについては関数の章で理解できると思うので、今は必ず書かなくてはいけないもの!として覚えてください。
ちなみに、int main(void)でなく、void main(void)としている参考書もありますが、これはANCI(American National Standards Insutitute《 米国国内規格協会 》)規格では間違いとされていますので注意してくださいね。
あまりうまい説明ができなくてすみません。
下記にもうひとつ、乱数発生のプログラムを載せておきました。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{
int ransuu, //乱数格納
i, //ループカウンタ
max, //乱数の最大値
kaisuu; //発生させる乱数の個数
printf("max = ");
scanf("%d",&max);
printf("kaisuu = ");
scanf("%d",&kaisuu);
srand((unsigned)time(NULL));
for( i=1; i<=kaisuu; i++ )
{
ransuu = rand() % max;
if ( ransuu == 0 )
ransuu = max;
printf( "%d\n",ransuu );
}
}
お遊びまでに・・・・・
コメントが//になっていますが、1行のコメントの場合はこれでもOKです。
//のあと全てがコメントとみなされます。
お役に立てましたでしょうか。
少しでも参考になれば幸いです。
プログラムが読みづらくてすみません。次はもっときれいに書きますね(汗)
参考書についてですが、本当に初心者の初心者の場合なら、
「1日でわかるC言語」(NTTアクセスサービスシステム研究所)桑原恒夫著
に、とても簡単な例題と解説が載っています。
本当に簡単なプログラムのみの説明になっています。
プログラムの説明以外は載っていないというかんじです。
わかりやすいのは確かですので、のぞいてみるといいかもしれません。
ご回答ありがとうございます。
このくらいのプログラムならなんとか理解できそうです。
書店などで色々と本を探したりしています。
ご親切にプログラムと解説ありがとうございました。
是非参考にさせて頂きます。
No.5
- 回答日時:
>イマイチ”ピン”ときません。
TAXASさんは、どのようなプログラムを作ろうとしてるのですか?
C言語の基礎を覚えることは意味のあることですが、なんらかのアプリケーションを作成するようなケースでは、例えば文字を表示する手順、絵を表示する手順などを理解していかなければなりません。それは、OSや、なんらかのライブラリ、つまり他人の作った関数を呼び出すことの繰り返しを意味します。
漠然と言語を勉強しようとすると息がつまりますから、何か具体的な目標をたてた上で、適切なサンプルプログラムを探した方が無難だと思います。
ご回答ありがとうございます。
当初は漠然としていましたが、
少しずつではありますが、理解
するようにしています。
目標を持つのも一つの手ですね。
No.3
- 回答日時:
こんばんわ。
ぼくもCの勉強してます。本、URLの紹介ではありませんが、参考になれば之幸いです。
プログラミングの勉強をするにあたって、コンピュータ全般における知識・理解も重要かと思います。そこで、本屋さんでコンピュータ雑誌などを適当に選んで、ヒマなときにでも読んではどうでしょう。(あくまでヒマなときに!根を詰めすぎると、めげるコトがあります。とりあえず、コンピュータの世界の雰囲気というか何かを感じ取れればいいかと思います。)
そのコトを通して、自分の勉強していることでどういうコトができるかのイメージがもててくると、意欲も湧いてきます。
たぶん脳内で「脳の働きを活性化させる分泌液」か何かが分泌されるのでしょう!?
あと、1冊の本、1つのWebページだけを読んだだけでは解らないこともあるかもしれません。そんなときは、また違った角度から説明してある他の本、Webページを読んでみることをオススメします。(もちろんその解らなかった本に対してもある程度は考えてから)
より立体的に理解することができることができるコトがあります。
ぼくもまだまだカンペキではないのですが、参考になりましたでしょうか?
それでは、ガムバってください!
励ましのお言葉ありがとうございます。
いくつかの本も参照し、Webページでも多数閲覧して、
C言語の基礎中の基礎を理解し始めたところです。
何分、理解するのにも時間も苦労もかかりますが、
分かるように努力しつつ勉強していこうと思います。
どうもありがとうございました。
No.2
- 回答日時:
最近Cについての書籍も沢山出ていますネ。
しかし、ネット上でも、講座が無数にあります。
コンパイラーは何をお使いですか?
それにより、紹介の仕方が違いますが・・・
下に紹介したもの以外に、メーリングリストや掲示板などがあります。
大学講座もどうぞ!
http://www.twcu.ac.jp/~misao/m-cprog/
http://mailsrv.nara-edu.ac.jp/~asait/
課題もして下さい。
http://www.race.u-tokyo.ac.jp/%7Emasuda/jugyo/pr …
晃君のプログラミング入門
http://www.owari.ne.jp/~gguy/
Cリンク集をどうぞ!
http://www.cs.kyoto-su.ac.jp/~minaken/Link/Gengo …
参考URL:http://www.cs.kyoto-su.ac.jp/~minaken/Link/Gengo …
解答ありがとうございます。
C言語に関してのリンク集はとても使えてうれしいです。
あんなにたくさんあったのですね。ビックリしました。
コンパーラーやプログラムソフトに関しては全くの素人
なので全く不明です。けど、ちゃんと動作はしてます。
あちこちのリンクをたどってしばらく見てみようと思います。
とても参考になりました。ありがとうございました。
No.1
- 回答日時:
こんばんわ
やはりC言語の基本と言ったら「猫でもわかる・・・」ははずせないでしょう。と言うことで、「猫でもわかるプログラミング」と言うページをお勧めします。
ここはVCを使ってCの基礎から解説してくれているページです。
C言語編から順に見ていけば力も付くかと。
あとはGoogleなどで「C言語 基礎 始める」と言ったキーワードで検索をすると、
いくつかページが出てきます。
頑張って下さい!!
参考URL:http://203.174.72.111/y_kumei/
早速の解答ありがとうございます。
猫でも分かる。。。と言うのはとても魅力的ですね。
今ちょっとですが見てる最中です。
基礎からちゃんと解説してくれてるので理解する
のもとても助かります。
どうもありがとうございました。
検索ページでも探してみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
- 仕事術・業務効率化 効率的な勉強方法(分野問わず)を教えてください 1 2023/08/16 01:33
- 大学受験 大学受験英語長文の勉強法について 武田塾のYouTubeなどを参考にして、勉強法を考えました 自分は 2 2023/05/05 08:05
- 大学受験 高3。通信制高校生。英検四九レベル偏差値は30も無いでしょう。社会不適合者です。 中学は2年から頭に 1 2022/05/12 22:06
- IT・エンジニアリング ITエンジニアの勉強時間や勉強方法について 初めまして閲覧いただきありがとうございます。 当方25歳 4 2022/06/09 18:51
- 英語 英語で学ぶ数学YouTubeについて。 タイトル通りではあるのですが、英語で数学を学べるチャンネルを 4 2022/08/20 01:54
- 大学受験 高三 進研模試偏差値34でした。 9月模試で英語と国語が30代前半でした。 英語のレベルは英検4級で 1 2022/10/08 14:32
- 予備校・塾・家庭教師 武田塾について。通信制高校3年です。 中学から含め全く勉強しませんでした。 高校は母も病気気味だった 2 2022/08/11 20:46
- その他(教育・科学・学問) 通信高三で中一レベルの英語力しかありません。 1週間まえから武田塾に入りました。 今から京都文教又は 9 2022/08/13 19:10
- 大学受験 9月からMARCH 間に合いますか? 3 2022/09/13 20:55
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【JAVA】数字をひし形に出力す...
-
プログラミング
-
ruby
-
変数の値が勝手に変化する原因
-
_dupenv_s関数でメモリリーク
-
fortran if文
-
c言語のプログラミング 2つの整...
-
BM法(ボイヤームーア法)に...
-
C言語 バッファについて。
-
Cプログラミング
-
Vba 実数および実数タイプの変...
-
VBAで仕様書は書きますか?
-
C++ で、「)」が必要 というエ...
-
正しい五十音順について
-
VBAにてメール作成した際、一部...
-
あるプログラムのコマンドライ...
-
C言語(gcc), Linux, FTPプログ...
-
パックマンプログラム
-
Notepad++の関数リスト表示でC...
-
0除算して、落ちるプログラムと...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【JAVA】数字をひし形に出力す...
-
変数の値が勝手に変化する原因
-
JCLの基本について教えてください
-
Sublime Text 3でのFortranプロ...
-
プログラミング
-
fortran if文
-
ruby
-
Fortran90についての質問です。
-
COBOLのピリオド
-
3つの整数のうち奇数のみを表示...
-
main関数終了時のreturnの意味は?
-
c言語のプログラミング 2つの整...
-
360度を超える角度
-
整数格子点を列挙するプログラム
-
N88basicを用いたGPIB制御
-
ProC 固定SQLでNULLってどう表...
-
Fortran "実引数の型が仮引数の...
-
PICのプログラムでsrandを使う...
-
Matlabについて質問2
-
4桁の数値を逆に表示されるプ...
おすすめ情報