Проверить корректность решения задач - C (СИ)
Формулировка задачи:
1)Ввести последовательность символов, заканчивающуюся '@'. Распечатать только те из них, которые расположены до первого символа ':'.
1 -
#include <stdio.h>
#include <stdlib.h>
int main()
{
char z;
char m=0;
printf("vvedi simvol,zakancivayuwiysya @:\n");
while((z=getchar())!=64)
{
if(z!=':' && m==0) printf("%c",z);
else {
m=1; continue;
}
}
return 0;
}
2)Распечатать в порядке убывания нечетные числа из диапазона [5..90], кратные 3 и не кратные 5 одновременно.
# include <stdio.h>
#include <conio.h>
int main ()
{
int a;
for (a = 90; a >= 5; a -= 2)
if (a % 3 == 0 && a % 5 != 0)
printf ("%i ", a);
getch ();
return 0;
}Решение задачи: «Проверить корректность решения задач»
textual
Листинг программы
#include <stdio.h>
#include <math.h>
int sum(int num)
{ int res = num%10;
while(num /= 10) res += num%10;
return res;
}
int main()
{ int d,m,y;
printf("Den rojdeniya\t");
scanf("%d",&d);
printf("mesyac rojdeniya\t");
scanf("%d",&m);
for(y=2011;y<2500;y++)
if(sum(y)%10 == sum(m)%10 || sum(y)%10 == sum(d)%10) break;
printf("Vas scastkiviy mesyac: %d\n",y);
getchar();getchar();
return 0;
}
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы для работы с выводом и математическими операциями
- Определяем функцию sum, которая принимает целое число и возвращает сумму его цифр
- В функции main считываем три числа (день, месяц, год) с помощью функции scanf
- Используем цикл for для перебора всех годов от 2011 до 2500 (включительно)
- Внутри цикла проверяем условие: если сумма цифр года (переданного в функцию sum) равна сумме цифр месяца или дня (также переданных в функцию sum), то выходим из цикла с помощью оператора break
- Выводим найденный месяц с помощью функции printf
- По окончании работы программы считываем два символа с помощью функции getchar для очистки буфера ввода
- Возвращаем 0, чтобы указать, что программа успешно завершилась