Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 17.09.2019
Сообщений: 25
1

Как работает вывод в этой программе на Си

15.10.2019, 21:02. Показов 914. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, в один момент возникла проблема с выводом строк. Объясните на элементарном примере, как это работает.
C
1
2
3
4
5
6
7
8
9
10
#include <stdio.h>
 
void main(){
char b = 'r';
char c = 'd';
char a[] = {b,c};
printf("%s", a);
 
return 0;
}
Выводит же он что-то страшное. Скрин во вложении
Изображения
 
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.10.2019, 21:02
Ответы с готовыми решениями:

Объясните, как работает sizeof() и зачем она в этой программе
Напишите программу, которая, используя только унарные, бинарные операторы и sizeof() выводит,...

мне нужно организовать ввод-вывод в этой программе
Дано число R и массив размера N. Найти два различных элемента массива, сумма которых наиболее...

Не работает механизм вывода массива, работавший в этой же программе ранее
Ребят,привет! Задание было таковым: Есть массив, из каждой строки найти минимум и засунуть в...

Как в этой программе изменить то что во вкладке "о программе"
Здравствуйте, уважаемый народ. Подскажите как в этой программе изменить то что во вкладке &quot;о...

5
фрилансер
5499 / 5095 / 1047
Регистрация: 11.10.2019
Сообщений: 13,346
15.10.2019, 21:09 2
Лучший ответ Сообщение было отмечено StsiapanTsikhov как решение

Решение

char a[] = {b,c,'\0'};

вот так будет не страшно. Строка должна ограничиваться нулём, иначе функция printf не знает, где завершение
1
0 / 0 / 0
Регистрация: 17.09.2019
Сообщений: 25
15.10.2019, 21:18  [ТС] 3
Спасибо большое, совсем вылетело из головы, что Си автоматически это не делает. Все оказалось до безобразия просто.
0
фрилансер
5499 / 5095 / 1047
Регистрация: 11.10.2019
Сообщений: 13,346
15.10.2019, 21:26 4
StsiapanTsikhov, почему же не делает? Код, приведённый тобой, точно так же отработает и на C++

а ещё можно вот так инициализировать такой массив
C
1
2
    char a[] = "rd";//эквивалентно {'r','d','\0'}
    printf("%s", a);
0
0 / 0 / 0
Регистрация: 17.09.2019
Сообщений: 25
15.10.2019, 21:31  [ТС] 5
А можно ли как-то к пустому массиву присвоить этот введенный массив? Просто я, судя по всему, так и не разобрался в синтаксисе Си вообще.
0
фрилансер
5499 / 5095 / 1047
Регистрация: 11.10.2019
Сообщений: 13,346
15.10.2019, 21:32 6
StsiapanTsikhov, а что такое пустой массив ? Если в массиве места хватает, туда можно скопировать элементы
0
15.10.2019, 21:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.10.2019, 21:32
Помогаю со студенческими работами здесь

Как подключить модули к этой программе
Program Piano; Uses crt,speaker, dos, mouse, graph, graphs; const maks:array of integer =(...

КАК правильно вводит элементы в этой программе?
помогите пожалуйста)))

Как реализовать интерфейс IComparable в этой программе?
Надо выполнить данную программу используя для хранения экземпляров разработанных классов...

Как построить блок-схему по этой программе?
program Massiv; var a: array of integer; b: array of integer; N:integer; j:integer; //...

Выбрать файл с БД в программе и совершать с этой БД действия в программе
вообщем проект реализует Тест знаний, работает на БД (xml - ну его), все получилось кроме одного,...

Как заполнить Форм1 и записать код в этой программе
Создать типизированный файл Zarpl.dat, содержащий сведения о заработной плате сотрудников: - №...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru