Глава 8. Позвольте компьютеру принимать решения.
1.Напишите программу, в которой вводится числовое значение, а затем выдается сообщение, четное или нечетное число было введено.
main() { int number, remain; printf("Введите число: "); scanf("%d", &number); remain=number % 2; if(remain==0) puts("Введено четное число"); else puts("Введено нечетное число"); }2.Напишите программу, в которой вводится число и затем выдается сообщение, находится ли значение числа в пределах от 1 до 100.
main() { int number; printf("Введите число: "); scanf("%d", &number); if(number > 0 && number <= 100) puts("Значение числа находится в пределах от 1 до 100"); }3.Напишите программу, в которой вводится целое число, а затем выдается сообщение, в каком интервале находится значение числа: меньше 0, от 0 до 50, от 51 до 100, от 101 до 150, больше 150.
main() { int number; printf("Введите число: "); scanf("%d", &number); if(number < 0) puts("Введено отрицательное число"); else if(number > 0 && number < 51) puts("Число находится в пределах от 0 до 50"); else if(number > 50 && number <= 101) puts("Число находится в пределах от 51 до 100"); else if(number > 101 && number < 151) puts("Число находится в пределах от 101 до 150"); else puts("Введенное число больше 150"); }4.Напишите программу, которая просит пользователя ввести числовые значения в переменные lownum и highnum. Значение lownum должно быть меньше чем highnum. Если числа введены не в соответствии с этим условием, программа должна поменять значения, поместив меньшее число в lownum, а большее — в highnum. Значения переменных должны быть выведены на экран.
5.Объясните, почему следующая программа написана неверно:
Глава 9. Циклы.
1.Отредактируйте текст программы из Листинга 8.10 (глава 8) таким образом, чтобы она повторялась до тех пор, пока пользователь не пожелает прекратить ввод данных.
main() { float rate, hours, total, regular, extra, d_time, overtime; int moredata; do { printf("Введите оплату часа работы: "); scanf("%f", &rate); printf("Введите количество отработанных часов: "); scanf("%f", &hours); d_time=rate * 2; if (hours <= 40) { regular = hours * rate; extra = 0.0; overtime = 0.0; total = regular; } else { regular = 40 * rate; extra = hours - 40; overtime = extra * d_time; total = regular + overtime; } putchar('\n'); printf("Ваш обычный недельный заработок равен %.2f\n", regular); printf("Вы отработали %.2f часов сверхурочно\n", extra); printf("Оплата 1 часа сверхурочных равна $%.2f\n", d_time); printf("Заработок за сверхурочные часы равен %.2f\n", overtime); printf("Итого, Ваш недельный заработок составляет %.2f\n", total); printf("Желаете продолжить расчет? Y or N: "); moredata = getchar(); putchar('\n'); } while(moredata=='y' || moredata=='Y'); }2.Напишите программу, которая рассчитывает сумму 6-процентного налога на продажи для товаров, имеющих стоимость в пределах от 1 до 50 долларов, и выводит информацию на экран монитора в виде таблицы
3.Напишите программу, которая вводит десять чисел в пределах от 0 до 25.
main() { int count, number; for(count=1;count<11;count++) { printf("Введите значение N%d", count); putchar('\n'); do { printf("Вводите числа в пределах от 0 до 25: "); scanf("%d",&number); } while(number<0 || number > 25); putchar('\n'); } }4.Напишите программу, которая выводит на дисплей следующий график:
* * * * ** * * ** * ** *** ** * ** * * ** * * * * main() { int outer,inner; for(outer=5;outer>0;outer--) { for(inner=1;inner<=outer;inner++) printf("*"); putchar('\n'); } for(outer=2;outer<6;outer++) { for(inner=1;inner<=outer;inner++) printf("*"); putchar('\n'); } }5.Объясните, почему следующая программа написана неправильно:
main() { float row, column; puts("\t\tТаблица Пифагора\n\n"); for (row = 1; row <= 10; row++ { for (column = 1; column <= 10; column+ printf("%d", row * column); } putchar('\n'); } Переменные row и column определены с типом float, но если вы хотите использовать их в цикле, они должны относиться к типу int.Инструкция putchar('\n') помещена таким образом, что она будет выполнена только один раз. Таблица, таким образом, будет выведена в одну линию. Поместите инструкцию на одну строку выше, перед закрывающей фигурной скобкой.Глава 10. Массивы и строки.
1.Напишите программу, в которой массивы используются для хранения имен, адресов и номеров телефонов 20 человек.
main() { char names[20][20], street[20][20], city[20][20]; char state[20][3], zip[20][6], phone[20][13], lookfor[20]; int count; for(count=0;count<20;count++) { puts("Введите имя"); gets(names[count]); puts("Введите название улицы"); gets(street[count]); puts("Введите город"); gets(city[count]); puts("Введите штат"); gets(state[count]); puts("Введите индекс"); gets(zip[count]); puts("Введите номер телефона"); gets(phone[count]); } }2.Внесите в программу из упражнения 1 изменения так, чтобы иметь возможность ввода имени и последующего просмотра массива в поисках номера телефона соответствующего человека.
main() { char names[20][20], street[20][20], city[20][20]; char state[20][3], zip[20][6], phone[20][13], lookfor[20]; int count; for(count=0;count<20;count++) { puts("Введите имя: "); gets(names[count]); puts("Введите название улицы: "); gets(street[count]); puts("Введите город: "); gets(city[count]); puts("Введите штат: "); gets(state[count]); puts("Введите индекс: "); gets(zip[count]); puts("Введите номер телефона: "); gets(phone[count]); } puts("Введите имя: "); gets(lookfor); for(count=0; count<20;count++) { if(strcmp(names[count],lookfor)==0) printf("%s %s\n", names[count], phone[count]); } }3.Объясните, почему следующая программа написана неправильно:
main() { int temps(31); int index, total; for (index = 0; index < 31; index++) { printf("Введите значение температуры #%d: ", index); scanf("%d", &temps(index)); } high = temps(0); low = temps(0); index = 1; while (index < 31) { if (temps(index) > high) high = temps(index); else low = temps(index); index++; } printf("Минимальное значение температуры равно %d\n", low); printf("Максимальное значение температуры равно %d\n", high); } Индексы всех элементов массива temps заключены в круглые скобки, вместоквадратных. Переменные high и low не определены. Переменная total определена, но не используется в программе. Конструкция if...else написана с ошибкой: если рассматриваемое значение не превышает текущее значение переменной high, это не значит, что оно непременно меньше текущего значения переменной low.