C言語: 2008年12月アーカイブ
以前、なんとなく気分転換に短いC言語のプログラムをいくつか書いてみました。
下一桁抽出とか絶対値表示とか最大公約数とかの定番なやつ。
参考にする人がいるかわからないけれど、下に列挙しておきますのでよろしければご利用ください。
プログラマーになるかどうかは別として、コンピュータで食べていこうと思っているならプログラミング言語は勉強して損ないですよ!
(1)キーボードから入力した文字を表示するプログラム
#include<stdio.h>
int main(void){
printf("%c" , getchar());
return(0);
}
int main(void){
printf("%c" , getchar());
return(0);
}
(2)キーボードから入力した文字を表示するプログラムⅡ
#include<stdio.h>
int main(void){
putchar(getchar());
return(0);
}
int main(void){
putchar(getchar());
return(0);
}
(3)キーボードからaが入力されるまで入力を続けるプログラム
#include<stdio.h>
int main(void){
while(getchar() != 'a');
return(0);
}
int main(void){
while(getchar() != 'a');
return(0);
}
(4)1~10までの整数を表示するプログラム
#include<stdio.h>
int main(void){
int a;
for(a = 1 ; a <= 10 ; a++)printf("%d\n" , a);
return(0);
}
int main(void){
int a;
for(a = 1 ; a <= 10 ; a++)printf("%d\n" , a);
return(0);
}
(5)1~10までの整数を表示するプログラムⅡ
#include<stdio.h>
int main(void){
int a = 0;
while(a++ < 10)printf("%d\n", a);
return(0);
}
int main(void){
int a = 0;
while(a++ < 10)printf("%d\n", a);
return(0);
}
(6)1~1000までに含まれる3の倍数を表示するプログラム
#include<stdio.h>
int main(void){
int a;
for(a = 3 ; a < 1001 ; a += 3)printf("%d\n" , a);
return(0);
}
int main(void){
int a;
for(a = 3 ; a < 1001 ; a += 3)printf("%d\n" , a);
return(0);
}
(7)1~1000までに含まれる3の倍数を表示するプログラムⅡ
#include<stdio.h>
int main(void){
int a = 0;
while(a <= 997)printf("%d\n" , a += 3);
return(0);
}
int main(void){
int a = 0;
while(a <= 997)printf("%d\n" , a += 3);
return(0);
}
(8)1~1000までに含まれる3の倍数を表示するプログラムⅢ
#include<stdio.h>
int main(void){
int a = 3;
while(a < 1001)if(a++ % 3 == 0)printf("%d\n" , a - 1);
return(0);
}
int main(void){
int a = 3;
while(a < 1001)if(a++ % 3 == 0)printf("%d\n" , a - 1);
return(0);
}
(9)キーボードから入力した整数の絶対値を表示するプログラム
#include<stdio.h>
int main(void){
int a;
scanf("%d" , &a);
printf("%d", a > 0 ? a : -a);
return(0);
}
int main(void){
int a;
scanf("%d" , &a);
printf("%d", a > 0 ? a : -a);
return(0);
}
(10)キーボードから入力した整数を100回表示するプログラム
#include<stdio.h>
int main(void){
int a , b = 0;
scanf("%d" , &a);
for(b = 0 ; b < 100 ; b++)printf("%d\n" , a);
return(0);
}
int main(void){
int a , b = 0;
scanf("%d" , &a);
for(b = 0 ; b < 100 ; b++)printf("%d\n" , a);
return(0);
}
(11)キーボードから入力した整数が何の倍数であるかを表示するプログラム
#include<stdio.h>
int main(void){
int a , b;
scanf("%d" , &a);
for(b = a ; b > 1 ; b--)if(a % b == 0)printf("%d\n" , b);
return (0);
}
int main(void){
int a , b;
scanf("%d" , &a);
for(b = a ; b > 1 ; b--)if(a % b == 0)printf("%d\n" , b);
return (0);
}
(12)キーボードから入力した整数の一の位だけ表示するプログラム
#include<stdio.h>
int main(void){
int a;
scanf("%d" , &a);
printf("%d\n" , a % 10);
return(0);
}
int main(void){
int a;
scanf("%d" , &a);
printf("%d\n" , a % 10);
return(0);
}
(13)キーボードから入力した整数の下二桁を0にするプログラム
#include<stdio.h>
int main(void){
int a;
scanf("%d" , &a);
printf("%d\n", a - a % 100);
return(0);
}
int main(void){
int a;
scanf("%d" , &a);
printf("%d\n", a - a % 100);
return(0);
}
(14)キーボードから入力した整数の階乗を表示するプログラム
#include<stdio.h>
int main(void){
int a , sum = 1;
scanf("%d" , &a);
while(a > 1)sum = sum * a--;
printf("%d",sum);
return(0);
}
int main(void){
int a , sum = 1;
scanf("%d" , &a);
while(a > 1)sum = sum * a--;
printf("%d",sum);
return(0);
}
(15)キーボードから入力した二つの整数の最大公約数を求めるプログラム
#include<stdio.h>
int main(void){
int a , b , c;
scanf("%d %d" , &a , &b);
for(c = b ; c > 0 ; c--)if( a % c == 0 && b % c == 0)break;
printf("%d",c);
return (0);
}
int main(void){
int a , b , c;
scanf("%d %d" , &a , &b);
for(c = b ; c > 0 ; c--)if( a % c == 0 && b % c == 0)break;
printf("%d",c);
return (0);
}
(16)キーボードから入力した二つの整数の最小公倍数を求めるプログラム
(intの正の最大を2147483647と仮定)
#include<stdio.h>
int main(void){
int a , b , c = 1;
scanf("%d %d" , &a , &b);
while(++c < 2147483648)if(c % a == 0 && c % b == 0)break;
printf("%d" , c);
return (0);
}
int main(void){
int a , b , c = 1;
scanf("%d %d" , &a , &b);
while(++c < 2147483648)if(c % a == 0 && c % b == 0)break;
printf("%d" , c);
return (0);
}
以下、おまけとして過去に書いたソート等へのプログラムへのリンク
- 挿入ソート
- シェルソート
- 選択ソート
- バブルソート
- バケットソート
- クイックソート
- クイックソート(再帰)
- ツェラー(Zeller)の公式
- フィボナッチ数列(再帰なし及び再帰あり)
- 階乗(再帰なし及び再帰あり)
こういったC言語の勉強では柴田望洋さんの本がお勧め
1