1씩 증가하는 배열

0
답변 1 1씩 증가하는 배열 답변 1 (/p/c)
{1, 2, 3} - {1, 2, 4} -{1,2,5}  -{9,9,9}- {1,0,0,0} -... 정수가 1씩증가하는데 이렇게 자리올림도 하게끔 배열을 출력 하려면 어떻게해야하나요 c언어로 ..

{1, 2, 3} - {1, 2, 4} -{1,2,5}

 -{9,9,9}- {1,0,0,0} -...

정수가 1씩증가하는데 이렇게 자리올림도 하게끔 배열을 출력 하려면 어떻게해야하나요

c언어로 하고싶어요 다른건 안배워서..

https://www.youtube.com/watch?v=uQdy914JRKQ

여기나온 내용인데 c언어가아니고 영어라서 알아먹기가 힘드네요

 

댓글 쓰기

1개의 답변

1
[답변]1씩 증가하는 배열 (/p/c)
아래 예제가 도움이 되실 지도 모르겠습니다. #include #include //function for printing result void print_result(int res[], int size, char isTen) { ..

아래 예제가 도움이 되실 지도 모르겠습니다.

#include <string.h>

#include <stdio.h>

//function for printing result
void print_result(int res[], int size, char isTen) {
  int len;
  if (isTen)
    len = size / sizeof(int);
  else
    len = (size / sizeof(int)) - 1;
  for (int i = 0; i < len; i++)
    printf("%d ", res[i]);
  printf("\n");
}

int main(int argc, char * argv[]) {
  char str[] = "139";
  int len = strlen(str);

  //initialize array (with lenght + 1 to avoid recreating array in case input is 99, 999 etc.)
  int res[len + 1];
  for (int i = 0; i < len; i++) {
    res[i] = (int) str[i] - '0';
  }

  //adding 1 to last element
  res[len - 1]++;

  //looping from last element to first
  int i = len;
  while (i > 0) {
    if (res[i] == 10) {
      res[i] = 0;
      res[i - 1]++;
    }
    i--;
  }

  //fixing 99, 999 etc. (with isTen boolean)
  char isTen = 0;
  if (res[0] == 10) {
    res[0] = 1;
    for (int i = 1; i < (len + 1); i++)
      res[i] = 0;
    isTen = 1;
  }

  //printing result
  print_result(res, sizeof(res), isTen);

  return 0;
}

 

1개월 전 kimho
+
kimho 님께서 1개월 전에 C에 올린 글
사탕 주기
보관하기
댓글 쓰기
조회수 619
답글 1
URL