Другие языки программирования и технологии

Как на Си, не с++ одномерный массив чисел

преобразовать в одну строку типа char
int x[10] = {8, 1, 2, 3, 4, 5, 6, 7, 8, 9}; // массив a из 10 целых чисел
строка должна получится
8123456789 без запятых
#include <stdio.h>
#include <stdlib.h>

int main()
{
int x[10] = {8, 1, 2, 3, 4, 5, 6, 7, 8, 9};
char cX[11];

for(int i = 0; i < 10; ++i)
{
cX[i] = (char)x[i] + '0';
}
cX[10] = '\0';

printf("%s\n", cX);
return 0;
}
Валерий Нотченко
Валерий Нотченко
15 408
Лучший ответ
Андрей Ощепков cX[i] = char(x[i] + '0');

Errorexpected expression before 'char'
Руслан Рупташ это только цифр, а не чисел
цифр или чисел?
все почему-то отвечают для цифр
хотя судя по int, это именно числа. цифры влезли бы в unsigned char.
Руслан Рупташ
Руслан Рупташ
92 464
через двусвязный список, чтобы занести все элементы по цифрам справа массива, а потом вывести с другой стороны списка
https://rextester.com/IFKG42729

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

struct List ;
struct List {
  char data;
  struct List * next;
  struct List * prev;
};
int main(void)
{
  struct List *list0 = malloc (sizeof (struct List));
  list0->prev =0;
  list0->next =0;
  struct List *list = list0;
  int x[10] = {8, 1, 2, 3, 4, 5, 6, 776, 8, 9};
  int size=sizeof (x)/sizeof (x[0]);

  for (int i = size - 1; i>=0; --i ) {
    int number = x[i];
    do
    {
      list->data = number % 10 + '0';
      number /= 10;
      struct List * next = malloc (sizeof (struct List));
      next->prev = list;
      list->next = next;
      list = next;
      list->next=0;

    } while (number );
  }
  // вывод

  do {
    printf("%c ", list->data);
    list = list->prev;
  }
  while (list -> prev);
  printf("%c", list0->data); // самый последний элемент
  return 1;
}
нужно вспомнить про аски коды. код 48 соотв. символу "0", 49 - символу "1". если к элементу массива прибавить 48, то получим нужный символ.
ну а как написать думаю сам разберешься
SZ
Samat Zhumabayev
22 439
Елдос Масенкулов Зачем помнить про 48, когда можно прибавить '0'? (как в следующем ответе)
В Васике я бы создал строковую переменную и в цикле забил бы её значениями из массива.
Типа:

dim a as string =""
for i = 0 to x.lenght-1
a=a & x(i)
next

dim x1 as integer
x1=cInt(a) 'здесь возможны глюки если первыми цифрами будут ноли.
Олег Макарчук
Олег Макарчук
19 176