Различия между версиями 2 и 3
Версия 2 от 2017-03-11 13:00:17
Размер: 2821
Редактор: FrBrGeorge
Комментарий:
Версия 3 от 2017-03-12 16:15:52
Размер: 3050
Редактор: FrBrGeorge
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 67: Строка 67:
 1. <!> (на самом деле ничего хитрого) Ввести целочисленный массив из 10 элементов и найти в нём ''второй максимум'', то есть значение элемента, которое меньше наибольшего значения и не меньше остальных  1. Ввести целочисленный массив из 10 элементов и найти в нём ''второй максимум'', то есть значение элемента, которое меньше наибольшего значения и не меньше остальных
  1. В этой задаче нет ничего хитрого, надо просто честно искать первый и второй максимумы, и отследить ситуацию, когда при инициализации второго максимума туда случайно сразу попадает первый
Строка 69: Строка 70:
 1. <!> Задание повышенной хитрости

Массивы и ссылки

  • scanf() — что такое &переменная

  • Ардеса:
       1 
       2  char a,b,c,d;
       3 
       4  printf("%p %p %p %p\n", &a, &b, &c, &d);
       5 
    
  • scanf("%c", &a+1);

  • Адресная арифметика
       1 
       2  int x,y,z;
       3 
       4  printf("%p %p %p %p %p\n", &x, &y, &z, &x+1, &x+2);
       5 
    
  • Операция *переменая и описание тип *переменная

       1 
       2  int a=1, b=22, c=333;
       3  int *p;
       4 
       5  printf("%d %d %d\n", *p, *(p+1), *(p+2));
       6 
    
  • Операция [ ]:

       1 
       2  int a=1, b=22, c=333;
       3  int *p=&a;
       4  
       5  printf("%d %d %d\n", *(p+2), p[2], 2[p]);
       6 
    
  • Описание массива тип имя[размер] + необязательная инициализация.

    • Пример: переложить элементы массива A в массив B в обратном порядке

         1 #include <stdio.h>
         2 
         3 #define SIZE 7
         4 int Arr[SIZE] = { 22, 1431, -342, 231, 2342, 22, 1 };
         5 int Brr[SIZE];
         6 
         7 void main(void) {
         8   int i;
         9 
        10   for(i=0; i<SIZE; i++)
        11     Brr[SIZE-i-1]=Arr[i];
        12 
        13   for(i=0; i<SIZE; i++)
        14     printf("%d %d\n, Arr[i], Brr[i]);
        15 }
      
  • sizeof(имя)

Домашнее задание

  1. {i} Прочитать про массивы в учебнике. Более подробно и понятно — в главе «Указатели и массивы»

  2. (упражнение) Ввести целочисленный массив из 10 элементов и найти в нём наименьший

  3. Ввести целое положительное число и массив из 10 элементов, и «циклически сдвинуть» в этом массиве все элементы вправо, т. е. в сторону увеличения индексов.
    • Пример: сдвиг 3, массив 2 4 6 8 12 14 16 18 22 24, ответ 18 22 24 2 4 6 8 12 14 16

    • Вариант: сдвиг может быть отрицательным — влево
  4. Ввести целочисленный массив из 10 элементов и найти в нём второй максимум, то есть значение элемента, которое меньше наибольшего значения и не меньше остальных

    1. В этой задаче нет ничего хитрого, надо просто честно искать первый и второй максимумы, и отследить ситуацию, когда при инициализации второго максимума туда случайно сразу попадает первый
    2. …+вывести «No», если второго максимума нет

LecturesVMSH/C/2017-03-10 (последним исправлял пользователь FrBrGeorge 2017-03-12 16:15:52)