Только начинаю изучать СИ. Помогите с логикой задачи
Только начинаю изучать СИ, буквально 5-й день. Помогите с логикой задачи и с решением.
в задаче дано:
#include <stdio.h>
int main()
{
int val;
float sum;
char name[36];
...
}
ну и собственно задание:
Напишите вызов функции printf(), которая выполняет следующие действия: Выводит значение переменной val, строку; содержащуюся в массиве name и значение выражения sum/val.
мне не понятно, массив состоит из 36-и нулей или там только число "36" ответ в виде:
printf("%d / %f", sum, val);
не принимается. Помогите решить.
Ответы (1 шт):
Массив содержит строку символов, завершающуюся символом с кодом 0.
Суть задания, очевидно, в том, чтобы показать умение работать с функцией printf. Не стану давать готовое решение (это бы помешало понять принцип работы функции), но там всё просто: как первый аргумент указывается строка, в которую, перед выводом, подставляются значения последующих аргументов функции (они будут подставлены в строку там, где стоят %d, %f, %s и т.д., эти последовательности означают, соответственно, число типа int, число типа double и строку, завершающуюся нулём).
К примеру, если в переменной name находится указатель на строку "John Smith", то фукнция printf("Name: %s\n", name) выведет «Name: John Smith» (без кавычек, с переводом строки в конце).
У тебя в функции printf первый аргумент — это "%d / %f", он означает, что будет выведен не результат деления второго аргумента на третий, а второй аргумент, потом символы " / " и, далее, третий аргумент. То, что в кавычках, не вычисляется, туда просто подставляются числа и строки. Результат деления должен быть в одном из следующих параметров, а в строке (в первом агрументе), там, где ты хочешь увидеть этот результат, должно стоять «%f» (потому что в данном случае результатом будет число с плавающей точкой).