C l oop, материал для начинающих - PullRequest
0 голосов
/ 18 февраля 2020

У меня есть задача составить программу, в которой вы должны ввести заданное число в заданной позиции в другое заданное число. Пример: input: 12345, 2, 3 output 123245. Я попытался сделать al oop, но это, по-видимому, бесконечный l oop. Код здесь:

int c, x, p, broj, i = 0, brcifara = 0, k, broj2, k2, broj3, ind;
printf("Unesite redom x, p i c: ");
scanf("%d%d%d", &x, &p, &c);
broj2 = x;
while(broj2 >= 1)
{
    broj2/= 10;
    brcifara += 1;
}
while(i < brcifara)
{
    k2 = pow(10, i + 1);
    k = broj3%k2;
    broj3 -= k*pow(10, i+ 1);

    if(i<p)
    {
        broj += k*pow(10, i+1);
    }
    if(i=p)
    {
        broj += c*pow(10, p);
    }
    if(i>p)
    {
        broj += k*pow(10, i+2);
    }
    i = i + 1;
}
printf("Broj je sada %d", broj);

} C представляет число для ввода, X - число, в которое мы помещаем C, P - положение (начиная с 0). Brcifara это количество цифр. Проблема только во втором l oop.

1 Ответ

0 голосов
/ 18 февраля 2020

Почему бы не попробовать что-то подобное:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdint.h>

#define MAX_STR_SIZE (100U)

int main()
{
  char x[MAX_STR_SIZE] = {'\0'};
  unsigned int p;
  char c;
  int x_int;
  printf("input x, p, c\n");
  scanf("%s %d %c", x, &p, &c);

  if(strlen(x) > p) // check string upper boundary
  {
    x[p] = c;
  }

  x_int = atoi(x);
  printf("%d\n", x_int);
}

X - это строка, в которой вы заменяете свой символ C в данной позиции P. Таким образом:

  • X - это строка.
  • C символ.
  • P - индекс (символ без знака).

Затем преобразуйте строку X в целое число, используя функцию atoi ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...