落書きノート

ふと自分が気になった事を書いてます

C言語で問題を解く

解きながら学ぶC言語

解きながら学ぶC言語

// q4_3
#include <stdio.h>

int main(void) {
  int n,source;
  int flag = 1;
  int keta = 0;
  do {
    printf("非負の整数を入力してください : ");
    scanf("%d", &n);
    if(n < 0)
      continue;
    source = n;
    flag = 0;
    while(n) {
      n /= 10;
      keta++;
    }
  } while(flag);
  printf("%d%d桁です。\n", source, keta);
  return 0;
}

// q4_4
#include <stdio.h>

int main(void) {
  int n,i,answer = 0;
  printf("正の整数を入力してください : ");
  scanf("%d", &n);
  for(i = 1; i <= n; i++)
    answer += i;
  printf("1から%dまでを足した値は%dです。\n", n, answer);
  return 0;
}

// q4_5
#include <stdio.h>

int main(void) {
  int x, y, i, answer = 0;
  puts("二つの整数を入力してください。");
  scanf("%d%d", &x, &y);
  if(x > y) {
    int t = x;
    x = y;
    y = t;
  }
  for(i = x; i <= y; i++)
    answer += i;
  printf("%d以上%d以下の全整数の和は%dです。\n", x, y, answer);
  return 0;
}

// q4_6
#include <stdio.h>

int main(void) {
  int source, num, answer = 0;
  do {
    printf("非負の整数を入力してください : ");
    scanf("%d", &num);
  } while(num < 0);
  source = num;
  while(num) {
    answer = answer * 10 + num % 10;
    num /= 10;
  }
  printf("%dを逆から読むと%dです。\n", source, answer);
  return 0;
}

// q4_7
#include <stdio.h>

int main(void) {
  int source, num, cnt = 0;
  do {
    printf("非負の整数を入力してください : ");
    scanf("%d", &num);
  } while(num < 0);

  source = num;

  while(num) {
    num /= 10;
    cnt++;
  }
  printf("%d%d桁です。\n", source, cnt);
  return 0;
}

// q4_8
#include <stdio.h>

int main(void) {
  int i, num;
  printf("整数を入力してください : ");
  scanf("%d", &num);
  for(i = num; i >= 0; i--) {
    printf("%d", i);
    if(i != 0)
      putchar(' ');
  }
  if(num >= 0)
    puts("");
  return 0;
}

// q4_9
#include <stdio.h>

int main(void) {
  int i, num;
  printf("正の整数を入力してください : ");
  scanf("%d", &num);
  for(i = num; i >= 1; i--) {
    printf("%d", i);
    if(i != 1)
      putchar(' ');
  }
  if(num >= 1)
    putchar('\n');
  return 0;
}

// q4_10
#include <stdio.h>

int main(void) {
  int i, num;
  printf("正の整数を入力してください : ");
  scanf("%d", &num);
  for(i = 1; i <= num; i++) {
    printf("%d", i);
    if(i != num)
      putchar(' ');
  }
  if(num >= 1)
    putchar('\n');
  return 0;
}

// q4_11
#include <stdio.h>

int main(void) {
  int x, i;
  printf("整数を入力してください : ");
  scanf("%d", &x);
  for(i = 2; i <= x; i += 2)
    printf("%d ", i);
  if(x >= 2)
    putchar('\n');
  return 0;
}

// q4_12
#include <stdio.h>

int main(void) {
  int i, x;
  printf("整数を入力してください : ");
  scanf("%d", &x);
  for(i = 2; i <= x; i *= 2)
    printf("%d ", i);
  if(x >= 2)
    putchar('\n');
  return 0;
}

// q4_13
#include <stdio.h>

int main(void) {
  int x;
  printf("正の整数を入力してください : ");
  scanf("%d", &x);
  for(int i = 0; i < x; i++)
    printf("*\n");
  return 0;
}

// q4_14
#include <stdio.h>

int main(void) {
  int num, sum = 0, i = 1;
  printf("整数を入力してください : \n");
  do {
    printf("No.%d : ", i++);
    scanf("%d", &num);
    if(num != 9999)
      sum += num;
  } while(num != 9999);
  printf("合計は%dで平均は%.2fです。\n", sum, (double)sum / (i - 2));
  return 0;
}