書籍
- C言語プログラミング ハーベイ M.ダイテル (著), ポール J.ダイテル (著), 小嶋 隆一 (翻訳)
- development environment
- Visual Stdio Code
- gcc 8.1.0
2.20: 円の半径を入力し、その円の直径、円周、面積ををプリントするプログラム
source
#include<stdio.h>
#define PI 3.14159
int main()
{
int radius; //半径
do{
printf("半径を入力してください :");
scanf("%d",&radius);
}while(radius<0);
printf("円の直径は%f\n",2*radius*1.0);
printf("円周は%f\n",2*radius*PI);
printf("面積は%f\n",radius*radius*PI);
return 0;
}
2.21: 四角、楕円、矢印、菱形をプリントするプログラム
source
#include<stdio.h>
int main()
{
printf("********* *** * * \n");
printf("* * * * *** * * \n");
printf("* * * * ***** * * \n");
printf("* * * * * * * \n");
printf("* * * * * * *\n");
printf("* * * * * * * \n");
printf("* * * * * * * \n");
printf("* * * * * * * \n");
printf("********* *** * * \n");
return 0;
}
2.23: 5つの整数を入力して、それらの最大値と最小ウィをプリントするプログラム
source
#include<stdio.h>
int main()
{
int data1,data2,data3,data4,data5;
int min,max;
printf("整数を5つ入力してください\n");
scanf("%d %d %d %d %d",&data1,&data2,&data3,&data4,&data5);
min=max=data1;
if(max<data2){
max=data2;
}
if(min>data2){
min=data2;
}
if(max<data3){
max=data3;
}
if(min>data3){
min=data3;
}
if(max<data4){
max=data4;
}
if(min>data4){
min=data4;
}
if(max<data5){
max=data5;
}
if(min>data5){
min=data5;
}
printf("最大値は%d\n",max);
printf("最小値は%d\n",min);
return 0;
}
2.24: 整数を入力して、それが奇数であるか偶数であるかを判定するプログラム
source
#include<stdio.h>
int main()
{
int data;
printf("整数を入力してください:");
scanf("%d",&data);
if(data % 2 == 0){
printf("偶数です\n");
}
else{
printf("奇数です\n");
}
return 0;
}
2.25: 自分のイニシャルを大文字で、ブロック文字を使って下向きにプリントするプログラム
source
#include<stdio.h>
int main()
{
printf(" Y\n");
printf(" Y\n");
printf(" Y\n");
printf(" Y\n");
printf("YYYYYYYY\n");
printf(" Y\n");
printf(" Y\n");
printf(" Y\n");
printf(" Y\n");
printf("NNNNNNNNNN\n");
printf(" N\n");
printf(" N\n");
printf(" N\n");
printf(" N\n");
printf(" N\n");
printf(" N\n");
printf(" N\n");
printf(" N\n");
printf("NNNNNNNNNN\n");
return 0;
}
2.26: 最初の整数が2番目の整数の倍数であるか判定するプログラム
source
#include<stdio.h>
int main()
{
int data1,data2;
printf("2つの整数を入力してください:");
scanf("%d %d",&data1,&data2);
if(data2==0){
printf("不正な入力です\n");
return -1;
}
if(data1%data2==0){
printf("最初の整数は2つ目の整数の倍数です\n");
}
else{
printf("最初の整数は2つ目の整数の倍数ではありません\n");
}
return 0;
}
2.27: 格子模様をプリントするプログラム
source
#include<stdio.h>
int main()
{
printf("* * * * * * * * \n");
printf(" * * * * * * * *\n");
printf("* * * * * * * * \n");
printf(" * * * * * * * *\n");
printf("* * * * * * * * \n");
printf(" * * * * * * * *\n");
printf("* * * * * * * * \n");
printf(" * * * * * * * *\n");
printf("\n");
//できるだけ少ないprintf文
printf("* * * * * * * *\n * * * * * * * * \n"
"* * * * * * * *\n * * * * * * * * \n"
"* * * * * * * *\n * * * * * * * * \n"
"* * * * * * * *\n * * * * * * * * \n"
);
return 0;
}
2.29: いくつかの大文字、小文字、数字、特殊記号に対応する整数値をプリントするプログラム
source
#include<stdio.h>
int main()
{
int i,j;
j=0;//改行をどのタイミングでおこなうかを覚えておくカウンタ
for(i=0;i<33;i++){
if(i==0){
printf("NUL %d ",i);
}
else if(i==1){
printf("SOH %d ",i);
}
else if(i==2){
printf("STX %d ",i);
}
else if(i==3){
printf("ETX %d ",i);
}
else if(i==4){
printf("EOT %d ",i);
}
else if(i==5){
printf("ENQ %d ",i);
}
else if(i==6){
printf("ACK %d ",i);
}
else if(i==7){
printf("BEL %d ",i);
}
else if(i==8){
printf("BS %d ",i);
}
else if(i==9){
printf("HT %d ",i);
}
else if(i==10){
printf("LF %d ",i);
}
else if(i==11){
printf("VT %d ",i);
}
else if(i==12){
printf("FF %d ",i);
}
else if(i==13){
printf("CR %d ",i);
}
else if(i==14){
printf("SO %d ",i);
}
else if(i==15){
printf("SI %d ",i);
}
else if(i==16){
printf("DEL%d ",i);
}
else if(i==17){
printf("DC1%d ",i);
}
else if(i==18){
printf("DC2%d ",i);
}
else if(i==19){
printf("DC3%d ",i);
}
else if(i==20){
printf("DC4%d ",i);
}
else if(i==21){
printf("NAK%d ",i);
}
else if(i==22){
printf("SYN%d ",i);
}
else if(i==23){
printf("ETB%d ",i);
}
else if(i==24){
printf("CAN%d ",i);
}
else if(i==25){
printf("EU %d ",i);
}
else if(i==26){
printf("SUB%d ",i);
}
else if(i==27){
printf("ESC%d ",i);
}
else if(i==28){
printf("PS %d ",i);
}
else if(i==29){
printf("GS %d ",i);
}
else if(i==30){
printf("RS %d ",i);
}
else if(i==31){
printf("US %d ",i);
}
else if(i==32){
printf("SP %d",i);
}
j++;
if(j==5){
printf("\n");
j=0;
}
}//for
printf("\n\n");
j=0;
for(i=33;i<100;i++){
printf("%c %d ",i,i);
j++;
if(j==5){
printf("\n");
j=0;
}
}
printf("\n\n");
j=0;
for(i=100;i<224;i++){
printf("%c %d ",i,i);
j++;
if(j==5){
printf("\n");
j=0;
}
}
return 0;
}
2.30: 5桁の整数を入力し、それを各桁ごとに分解し、間に3個ずつあけてプリントするプログラム
source
#include<stdio.h>
#include<stdlib.h>
#define KETA 5 //入力される整数の桁数
int main()
{
int data;
int sum;//10のDATA乗
int i;
printf("5桁の整数を入力してください:");
scanf("%d",&data);
sum=1;
for(i=0;i<KETA-1;i++){
sum*=10;
}
for(i=0;i<KETA;i++){
if(i==KETA-1){
printf("%d\n",data);
}
else{
printf("%d ",data/sum);
}
data%=sum;
sum/=10;
}
return 0;
}
2.31: 0から10までの整数の2乗と3乗を計算し、それらの値をタブを使って表の形で出力するプログラム
source
#include<stdio.h>
int main()
{
printf("数 2乗 3乗\n");
printf("%d %d %d\n",1,1*1,1*1*1);
printf("%d %d %d\n",2,2*2,2*2*2);
printf("%d %d %d\n",3,3*3,3*3*3);
printf("%d %d %d\n",4,4*4,4*4*4);
printf("%d %d %d\n",5,5*5,5*5*5);
printf("%d %d %d\n",6,6*6,6*6*6);
printf("%d %d %d\n",7,7*7,7*7*7);
printf("%d %d %d\n",8,8*8,8*8*8);
printf("%d %d %d\n",9,9*9,9*9*9);
printf("%d %d %d\n",10,10*10,10*10*10);
return 0;
}
