落書きノート

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

C言語で問題を解く

解きながら学ぶC言語

解きながら学ぶC言語

// q10-5
#include <stdio.h>

void sort2(int *n1, int *n2) {
  if(*n1 > *n2) {
    int t = *n1;
    *n1 = *n2;
    *n2 = t;
  }
}

int main(void) {
  int a,b;
  printf("2つの整数を入力してください。\n");
  printf("整数A : ");
  scanf("%d", &a);
  printf("整数B : ");
  scanf("%d", &b);
  sort2(&a,&b);
  printf("整数Aは%dです。\n", a);
  printf("整数Bは%dです。\n", b);
  return 0;
}

// q10-6
#include <stdio.h>

void swap(int *n1, int *n2) {
  if(*n1 > *n2) {
    int t = *n1;
    *n1 = *n2;
    *n2 = t;
  }
}

void sort3(int *n1, int *n2, int *n3) {
  swap(n1,n2);
  swap(n1,n3);
  swap(n2,n3);
}

int main(void) {
  int a,b,c;
  printf("3つの整数を入力してください。\n");
  scanf("%d%d%d",&a,&b,&c);
  sort3(&a,&b,&c);
  printf("整数Aは%dです。\n",a);
  printf("整数Bは%dです。\n",b);
  printf("整数Cは%dです。\n",c);
  return 0;
}

// q10-7
#include <stdio.h>

int main(void) {
  int i;
  int vc[5] = {10,20,30,40,50};
  int *ptr = &vc[0];
  for(i = 0; i < 5; i++) {
    printf("vc[%d] = %d %d[vc] = %d ", i, vc[i], i, i[vc]);
    printf("*(vc+%d) = %d *(%d+vc) = %d\n", i, *(vc+i), i, *(i+vc));
  }
  putchar('\n');
  for(i = 0; i < 5; i++) {
    printf("*(ptr+%d) = %d *(%d+ptr) = %d\n", i, *(ptr+i), i, *(i+ptr));
    printf(" ptr[%d] = %d %d[ptr] = %d\n", i, ptr[i], i, i[ptr]);
  }
  return 0;
}

// q10-8
#include <stdio.h>

int main(void) {
  int vc[5];
  int *ptr = vc;

  printf("ptr == vc : %d\n", ptr == vc);
  printf("ptr == &vc[0] : %d\n", ptr == &vc[0]);
  printf("ptr == &vc[1] : %d\n", ptr == &vc[1]);
  printf("&vc[1] < &vc[2] : %d\n", &vc[1] < &vc[2]);
  printf("&vc[2] - vc : %ld\n", &vc[2] - vc);
  
  return 0;
}