0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

書籍 ダイテル C言語プログラミング 練習問題 解答 2章

0
Posted at
書籍

image.png

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;
}
ポータルサイト
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?