В
Все
Б
Биология
Б
Беларуская мова
У
Українська мова
А
Алгебра
Р
Русский язык
О
ОБЖ
И
История
Ф
Физика
Қ
Қазақ тiлi
О
Окружающий мир
Э
Экономика
Н
Немецкий язык
Х
Химия
П
Право
П
Психология
Д
Другие предметы
Л
Литература
Г
География
Ф
Французский язык
М
Математика
М
Музыка
А
Английский язык
М
МХК
У
Українська література
И
Информатика
О
Обществознание
Г
Геометрия
илья5310
илья5310
06.08.2022 21:36 •  Информатика

Напишите алгори
тм цифр 3 и 4 в кумире

Показать ответ
Ответ:
alfami2004
alfami2004
18.06.2020 16:33

#include<stdio.h>

 

int main()

{

   int n=3,m=3,a[50][50],i,j,k,g;  

 

   for(i=0;i<n;i++)

       for(j=0;j<m;j++)

           scanf("%d",&a[i][j]);

 

       for(j=0;j<m;++j)

       {

           g=0;

           for(i=0;i<n;++i)

               if(a[i][j]>0) ++g;

 

           if(g==n)  

           {

               for(k=j;k<m-1;++k)

                   for(i=0;i<n;++i)

                       a[i][k]=a[i][k+1];

 

                   m--;

 

               break;

           }

       }

 

                   

               for(i=0;i<n;i++)

               {

                   for(j=0;j<m;j++)

                       printf("%2d",a[i][j]);

 

                   printf("\n");

               }

 

       return 0;

 

}

Объяснение:

0,0(0 оценок)
Ответ:
sashakesha2006
sashakesha2006
22.06.2021 22:15

У тебя конструкция такая:

if(day <= 31) {

if(day >= 1  || day == 31) {

//Январь, март, май, июль, авгус, октябрь, декабрь

} else if(day >= 1 || day == 30) {

// Апрель, июнь, сентябрь, ноябрь

} else if(...) {

// февраль

} else {

//Неверно

}

Если мы вводим правильный день месяца, то мы всегда заходим в первый же if и игнорируем все последующие if-else, поскольку в первый уже зашли. Например, не только 31 января соответствует условию if(day >= 1 || day == 31), но и 2 апреля, и даже 29 февраля. Только все, кто не попал в switch-case внутри первого if, будут выкидывать "неверный день"

Если не слишком переписывать код, то надо заменить конструкции else if на простые if, и убрать внутри default. Но как только мы нашли совпадение, т.е. зашли в одну из веток switch-case и вывели в консоль дату, надо из функции или программы делать return.

А вообще раазумнее и короче было бы сначала проверять введенный месяц, а затем уже проверять, соответствует ли день введенному месяцу. Извини за псевдокод, но так должно быть понятнее:

if год > 0 {

if месяц in (январь, март, май, июль, авгус, октябрь, декабрь) {

if день in 1..31 { // выводим дату } else { // неверный день }

}

else if месяц in (апрель, июнь, сентябрь, ноябрь) {

if день in 1..30 { // выводим дату } else { // неверный день }

}

else if месяц == февраль {

if проверка_на_обычный_год OR проверка_на_високосный год { // выводим дату } else { // неверный день }

}

else { // неверный месяц }

}

else { // неверный год }

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота