はじめに
C言語でよく使うコードまとめてみた
学校用に書いてるので、今回はCygwinTerminal
とTeraPad
を使っています
報告書テンプレ
最初のおまじない
test.c
#include <stdio.h>
#include <math.h> // 数学関数
int main(void)
{
/*
コード
*/
return(0);
}
test.c
ファイルをtest.out
にコンパイルする
CygwinTerminal
gcc -o test.out test.c
数学関数使った人はこっち
CygwinTerminal
gcc -lm -o test.out test.c
test.out
を実行する
CygwinTerminal
./test.out
C言語で遊んでみた
第一回
test.c
#include <stdio.h>
int main(void){
printf("hello, world\n"); // \n は改行する
return(0); // 不要
}
1行ずつ実行
CygwinTerminal
gcc -o test.out test.c
./test.out
第二回
test.c
#include <stdio.h>
int main(void){
printf("bb000000000\t名前\n"); // \tはタブ(半角8個分)
}
1行ずつ実行
CygwinTerminal
gcc -o test.out test.c
./test.out
第三回
test.c
// 三角形の底辺a,高さhを,実数値としてキーボードより入力し,面積sを求め,小数点第1位までを表示しなさい。
// *実行結果例に従うこと。
// *小数点第1位までを表示する。
// (第2位で四捨五入)
#include <stdio.h>
int main(void){
float a, h;
printf("三角形の底辺は?");
scanf("%f", &a);
printf("三角形の高さは?");
scanf("%f", &h);
printf("三角形の面積 = %.1f\n", a*h/2); // %.1fはfloatの少数第2位を四捨五入して少数第1位まで表示する
}
1行ずつ実行
CygwinTerminal
gcc -o test.out test.c
./test.out
第四回
test.c
// 年令(変数名nen)を入力して20歳以上であれば「成年です。」と表示し,20歳未満であれば,「未成年です。」と表示するプログラムである。空欄を埋めてプログラミングすること。
// 誤字多すぎやwww
#include <stdio.h>
int main(void){
int nen;
printf("年齢を入力してください:");
scanf("%d", &nen);
if (nen >= 20){ // 入力されたnenが20以上の時
printf("成年です\n");
}else{ // 入力されたnenが20以上じゃないとき、つまり19以下の時
printf("未成年です\n");
}
}
1行ずつ実行
CygwinTerminal
gcc -o test.out test.c
./test.out
第四回 追加課題
test.c
// 身長と体重を入力すると,BMI と,肥満かどうかを表示するプログラムを作成せよ.BMIは次の式で求め,25 以上なら肥満,25未満なら肥満でないとする.なお,BMIの値の表示は小数点第一位までとする.
// BMI=体重[kg]/(身長[m]×身長[m])
#include <stdio.h>
#include <math.h>
int main(void){
float height, weight;
printf("身長(cm)を入力してください:");
scanf("%f", &height);
printf("体重(kg)を入力してください:");
scanf("%f", &weight);
printf("BMIは%.1f\n", weight/(pow(height, 2))*pow(10, 4)); // pow(height, 2)は数学関数を使って(height)^2を計算している、pow(10, 4)も同じも同じ
if (weight/(pow(height, 2))*pow(10, 4) >= 25){ // 25以上の時
printf("肥満\n");
}else{ // 25以上じゃないとき、つまり25未満の時
printf("肥満でない\n");
}
}
1行ずつ実行
CygwinTerminal
gcc -lm -o test.out test.c
./test.out
第五回
パターン1(if文)
test.c
// 次ページの実行結果のように,整数で0点~100点を入力して,評語を表示するプログラムを作成せよ。判定基準は以下の通りとする。
// 100点~90点 AA
// 89点~80点 A
// 79点~70点 B
// 69点~60点 C
// 59点以下 D
#include <stdio.h>
int main(void){
int score;
printf("点数を0~100の整数で入力せよ。");
scanf("%d", &score);
printf("%d\n", score);
if (score >= 90){
printf("判定はAAです。\n");
}else if (score >= 80){
printf("判定はAです。\n");
}else if (score >= 70){
printf("判定はBです。\n");
}else if (score >= 60){
printf("判定はCです。\n");
}else{
printf("判定はDです。\n");
}
}
パターン2(switch)
test.c
#include <stdio.h>
int main(void){
int score;
printf("点数を0~100の整数で入力せよ。");
scanf("%d", &score);
printf("%d\n", score);
int ten = score/10;
switch (ten){
case 9 :
printf("判定はAAです。\n");
break;
case 8 :
printf("判定はAです。\n");
break;
case 7 :
printf("判定はBです。\n");
break;
case 6 :
printf("判定はCです。\n");
break;
default:
printf("判定はDです。\n");
break;
}
}
1行ずつ実行
CygwinTerminal
gcc -o test.out test.c
./test.out
第六回
パターン1(for文)
test.c
// 1から100までの整数で,奇数だけの合計,偶数だけの合計,および総合計を表示するプログラムを作成せよ。
#include <stdio.h>
int main(void){
int even_sum = 0, odd_sum = 0; // even_sumは偶数を足していく変数、odd_sumは奇数を足していく変数
for (int i = 1;i <= 100;i++){ // 1~100まで繰り返し(iに1~100を順番に代入していく)
if (i % 2 == 0){ // iが偶数の時
even_sum += i; // even_sumにiを足す
}else{ // iが偶数じゃない時、つまり奇数の時
odd_sum += i; // odd_sumにiを足す
}
}
printf("偶数だけの合計は:%d\n", even_sum);
printf("奇数だけの合計は:%d\n", odd_sum);
printf("全部の合計は:%d\n", even_sum + odd_sum);
}
パターン2(for文)
test.c
#include <stdio.h>
int main(void){
int even_sum = 0, odd_sum = 0; // even_sumは偶数を足していく変数、odd_sumは奇数を足していく変数
for (int i = 1;i <= 50;i++){ // 1~50まで繰り返し(iに1~50を順番に代入していく)
even_sum += 2*i; // iを2倍にしている、つまり1~100までの偶数のみになる
odd_sum += 2*i - 1; // 偶数-1 は1~100までの奇数になる
}
printf("偶数だけの合計は:%d\n", even_sum);
printf("奇数だけの合計は:%d\n", odd_sum);
printf("全部の合計は:%d\n", even_sum + odd_sum);
}
パターン3(while文)
test.c
#include <stdio.h>
int main(void){
int even_sum = 0, odd_sum = 0, i = 0; // even_sumは偶数を足していく変数、odd_sumは奇数を足していく変数、iは100回数える用の変数
while (1){ // 無限ループ
i++; // iを+1する
if (i > 100){ // iが100を超えたら処理を終了する
break;
}else if (i % 2 == 0){ // iが偶数の時
even_sum += i; // even_sumにiを足す
}else{ // iが偶数じゃない時、つまり奇数の時
odd_sum += i; // odd_sumにiを足す
}
}
printf("偶数だけの合計は:%d\n", even_sum);
printf("奇数だけの合計は:%d\n", odd_sum);
printf("全部の合計は:%d\n", even_sum + odd_sum);
}
パターン4(do..while文)
test.c
#include <stdio.h>
int main(void){
int even_sum = 0, odd_sum = 0, i = 1; // even_sumは偶数を足していく変数、odd_sumは奇数を足していく変数、iは100回数える用の変数
do { // 今回の場合は普通のwhile文と変わらないが、do..while文は初めからfalseであっても、1度は処理が実行される
if (i % 2 == 0){
even_sum += i;
}else{
odd_sum += i;
}
i++;
} while (i<=100);
printf("偶数だけの合計は:%d\n", even_sum);
printf("奇数だけの合計は:%d\n", odd_sum);
printf("全部の合計は:%d\n", even_sum + odd_sum);
}
1行ずつ実行
CygwinTerminal
gcc -o test.out test.c
./test.out
第七回(作成中)
test.c
1行ずつ実行
CygwinTerminal
gcc -o test.out test.c
./test.out
結果
第八回(作成中)
test.c
1行ずつ実行
CygwinTerminal
gcc -o test.out test.c
./test.out
結果
第九回(作成中)
test.c
1行ずつ実行
CygwinTerminal
gcc -o test.out test.c
./test.out
結果
第十回(作成中)
test.c
1行ずつ実行
CygwinTerminal
gcc -o test.out test.c
./test.out
結果
最後に
コメントや修正などご意見いただきありがとうございます。クソ雑魚プログラマーとして今後もこの記事は修正し続けていくので、思ったことは何でもコメントください!!
バイバイキーーん