3. Какие изменения необходимо внести в программу п. 2в, чтобы строка Q была вы ведена на печать заключенной в апострофы?
4. Очередная задача по обнаружению ошибок в программе
define В а-яй яй
define X 10
main( )
{ I
int age, char name,
printf(" Укажите, пожалуйста, свое имя ");
scanf(" % s", name);
printf(" Прекрасно, %с, сколько вам лет?\n", name);
scanf(" %f , age), xp = age + X;
printf(" %s Вам должно быть по крайней мере %d \n", В, xp),
}
Ответы
scanf( )scanf( )"Саша 144"1442. а. Он продал картину за 234 50 долл
б. Hi! Примечание: первый символ - это символическая константа, второй - десятичное целое число, преобразованное в символ, а третий - представлен символической константы в коде ASCII.
в. Его Гамлет был смешным, но не вульгарным имеет 41 символ.
г. 1.20Е+03 то же самое, что и 1201,00?
3. Вспомните, что в гл 3 говорилось по поводу управляющих последовательностей, и попробуйте записать оператор в таком виде printf(" \" %s \" \n имеет %d символов \n", Q, strlen(Q)).
4. Строка 1: символ # опущен; вместо а-яй-яй должно стоять "а-яй-яй"
Строка 2: символ # опущен
Строка 6: переменная name должна быть массивом, например char name[25]
Строка 8: в управляющей строке должен стоять символ \n
Строка 10: вместо %с должно быть %s
Строка 11 поскольку переменная аgе целого типа, необходимо использовать %d, а не %f, кроме того, вместо аgе должно стоять &аgе
Строка 12: имя xp нигде не было описано
Строка 13: правильная, но при выводе на печать результат будет испорчен из-за ошибки, допущенной при определении В
Кроме того, программа служит примером плохого
стиля программирования.
5. Операции, выражения и операторы
ВВЕДЕНИЕ
/* размеробуви1 */
#define OFFSET 7 64
#define SCALE 0 325
main( )
{
/* пересчет размера обуви в размер ноги в дюймах */
float shoe, foot;
shoe =90;
foot = SCALE*shoe + OFFSET;
printf(" Размер обуви (мужской) размер ноги\n");
printf(" %10 lf %13 2f дюйм\n" , shoe, foot);
}
Здорово, в нашей программе выполняется умножение и сложение, т.е. берется ваш размер обуви (если вы носите размер 9), а вам сообщается длина стопы в дюймах. Вы скажете, что могли бы решить данную задачу в уме за меньшее время, чем потребовалось для ввода самой программы в машину. Это, конечно, правильно. Создание программы, способной оперировать только одним размером обуви, выглядит как ненужная трата времени и усилий. Мы могли бы придать программе большую эффективность, сделав ее диалоговой, но и это окажется непроизводительным использованием возможностей машины.
Нам нужно лишь каким то образом заставить компьютер выполнить повторяющиеся вычисления. Вообще говоря, именно эта появляется одной из главных причин использования машин. Для выполнения арифметических вычислений. Язык Си предлагает несколько способов реализации повторяющихся вычислений, сейчас обсудим один из них. Данный способ, называемый "while", дает возможность использовать операторы языка более интересным образом. Ниже приводится модификация нашей программы, занимающейся пересчетом размеров обуви.
/* размер обуви2 */
#define OFFSET 7 64
#define SCALE 0 325
main()
{
/* пересчет размера обуви в размер ноги в дюймах */
float shoe, foot;
printf("Размер обуви (мужской) размер ноги\n");
shoe = 3.0;
while(shoe < 18.5)
{
foot = SCALE *shoe + OFFSET;
printf(" %10 lf %13 2f %l6 2f дюйма\n" , shoe, foot);
shoe = shoe + 1.0;
}
printf("Ecли эта обувь годится вам, носите ее \n");
}
Вот результат работы программы, размер$$$$$обуви2, приведенный в сокращеннoм виде:
Размер обуви (мужской) Размер ноги
3.01 8.61 дюйма
4.0 8.94 дюйма
... ...
... ...
17.0 13.16 дюйма
18.0 13.46 дюйма
Если эта обувь годиться вам, носите ее.
(Значения констант для данной программы пересчета были получены во время нашего визита инкогнито в обувной магазин. В единственном обнаруженном там классификаторе размеров приводились данные только относительно мужской обуви. Лица, интересующиеся размерами женской обуви, должны посетить обувной магазин сами).
Цикл while работает следующим образом. Когда программа в процессе выполнения впервые достигает оператора while, осушествляется проверка истинности условия, заключенного в круглые скобки. В этом случае соответствующее выражение имеет вид:
shoe < 18.5
где символ $$$$$size)$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$ $$$$$*(string$$$$$+$$$$$size)$$$$$=$$$$$'\0';$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$}$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$Проверьте$$$$$ее$$$$$в$$$$$"деле"$$$$$в$$$$$этой$$$$$тестовой$$$$$программе:$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$/*$$$$$тест$$$$$*/$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$main($$$$$)$$$$${$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$static$$$$$char$$$$$mesg[$$$$$]$$$$$=$$$$$"Ну,$$$$$теперь$$$$$держитесь,$$$$$компьютероманы.";$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$puts(mesg);$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$fit(mesg,$$$$$10);$$$$$