М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
mariannabatman
mariannabatman
15.04.2021 03:08 •  Информатика

)
Написать программу, которая в двумерном массиве типа int размером N строк и M столбцов циклически сдвигает элементы каждой строки вправо на число позиций, равное индексу этой строки.

👇
Ответ:
ЕНОТ55115
ЕНОТ55115
15.04.2021

include <stdio.h>

#include <stdlib.h>

#include <time.h>

#include <string.h>

const unsigned M=5;

 

void init_array(int A[][M], unsigned n);

void print_of_array(int A[][M], unsigned n);

void swap (int *pa, int *pb);

void changing_of_array(int A[][M], unsigned n);

int main(){

   const unsigned N=5;

       int A[N][M];

       init_array(A,N);

       print_of_array(A,N);

       printf("\n");

               printf("\n");

       changing_of_array(A,N);

       print_of_array(A,N);

       getchar();

       return 0;

   

}

 

void init_array(int A[][M], unsigned n){

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

   for (unsigned j=0; j<M;j++)

   A[i][j]=rand()%100;

}

void print_of_array(int A[][M], unsigned n){

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

   for (unsigned j=0; j<M;j++)

       printf("%5d", A[i][j]);

   printf("\n");}

}

void swap(int *pa, int *pb){

   int temp=*pa;

   *pa=*pb;

   *pb=temp;

   return;

                                     }

void changing_of_array(int A[][M], unsigned n)  {

   unsigned l=1;

   for (unsigned i=1; i<n; i++)              {

   for (unsigned j=M-1; j+1>0; j--){

       if ((j-l)<0) break;

   swap(&A[i][j],&A[i][j-l]);            }

l++;    

                                                            }

   

                                                                 }

Объяснение:

4,6(45 оценок)
Открыть все ответы
Ответ:
Package main;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
     public static BufferedReader READER = new BufferedReader(new InputStreamReader(System.in));
    public static void main(String[] args) throws IOException {
        int N = Integer.parseInt(READER.readLine());
        int[] array = new int[N];
        for(int i = 0; i < array.length; ++i)
            array[i] = Integer.parseInt(READER.readLine());
        System.out.println("Negative: " + Main.function(array));
    }
     public static boolean function(int[] array) {
        for(int number : array)
            if(number >= 0) return false;
        return true;
     }
}
4,5(48 оценок)
Ответ:
незнаю177
незнаю177
15.04.2021
ответ: 359.

Решение. 
Начнём с простого наблюдения.

Лемма. Если на каком-то шаге все куски одинаковой массы m, то можно путём указанных операций сделать так, чтобы все куски стали массой m/2.
Доказательство. На первом шаге съедаем кусок массы m и разрезаем другой кусок массы m. Получится 8 кусков массы m и 2 куска массы m/2. Теперь 8 раз съедаем куски m/2 и распиливаем куски массы m.

Перейдём к собственно решению. Понятно, что Саша не мог съесть весь сыр. Поэтому, поскольку он съел целое число граммов сыра, он мог съесть не более, чем 360 - 1 = 359 граммов. Покажем, как он это мог сделать.

Пусть изначально головка сыра была разрезана так: 5 кусков по 512/9 г, 2 куска по 256/9 г, 1 кусок 128/9 г, 1 кусок 32/9 г, 1 кусок 8/9 г (легко проверить, что сумма всех масс равна 360).

Сначала съедим куски массой 8/9, 32/9, 128/9 и распилим три куска по 512/9 г. Останется 2 куска по 512/9 и 8 кусков по 256/9. Затем дважды съедим куски по 256/9 и разрежем оставшиеся куски по 512/9. После этого будет 10 кусков по 256/9.

Уменьшим размер каждого куска в 256 раз (воспользуемся 8 раз процессом, описанным в лемме). Тогда останутся 10 кусков массой 1/9 г. Съедаем один кусок и распиливаем любой оставшийся кусок. Несъеденная масса 9 * 1/9 = 1 г, значил, съел Саша 360 - 1 = 359 г сыра.
4,4(1 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ