Лабораторная работа №12-2 "Использование указателей и динамических массивов"

Задачи


Вариант А1

Спойлер
/* Вариант 1 */
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
  int *a,i,s=0,n;
  int *pts=&s, *pti=&i, *ptn=&n;
  srand(time(NULL));
  scanf("%i", &*ptn);
  a=new int[*ptn];
  for(*pti=0;*pti<*ptn;*pti=*pti+1)
  {
    *(a+*pti)=rand()%10;
    *pts=*pts+*(a+*pti);
    printf("%3i",*(a+*pti));
  }
  printf("\ns=%i",*pts);
}
delete[] a;

Вариант А3

Спойлер
/* Вариант 3 */
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
  int *a, i,min, n_min, n;
  int *ui=&i, *umin=&min, *un_min=&n_min, *un=&n;
  srand(time(NULL));
  scanf("%i", &*un);
  a = new int[*un];
  for(*ui=0;*ui<*un;(*ui)++)
  {
      *(a + *ui)=rand()%10;
      if(*ui==0) {
        *umin=*(a + *ui);
        *un_min=*ui;
      }
      if(*(a + *ui)<*umin) {
        *umin=*(a + *ui);
        *un_min=*ui;
      }
      printf("%3i",*(a + *ui));
  }
  delete[] a;
  printf("\n%i %i\n",*umin,*un_min);
}

Вариант А4

Спойлер
/* Вариант 4 */
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
    int *a,i,temp,n;
    int ptI=&i,ptT=&temp,ptN=&n;
    scanf("%i",&ptN);
    a=new int [ptN];
    srand(time(NULL));
    for(ptI=0;ptI<ptN;(*ptI)++)
    {
        (a+ptI)=rand()%10;
        printf("%3i",(a+ptI));
    }
    printf("\n");
    ptT=(a+ptN-1);
    for(ptI=ptN-1;ptI>0;(*ptI)--)
     (a+ptI)=(a+ptI-1);
    (a+0)=ptT;
    for(ptI=0;ptI<ptN;(ptI)++)
      printf("%3i",(a+ptI));
      delete[] a;
}

Вариант А5

Спойлер
/* Вариант 5 */
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
    int *a, *b, *c, i, s_m;
    int *Pt_i = &i, *Pt_sm = &s_m;
    srand(time(NULL));
    scanf("%i", Pt_sm);   // == &s_m
    a = new int[*Pt_sm];
    b = new int[*Pt_sm];
    c = new int[*Pt_sm];
    for (*Pt_i = 0; *Pt_i < *Pt_sm; *Pt_i = *Pt_i + 1)
      {*(a + *Pt_i) = rand() % 10; printf("%3i", *(a + *Pt_i));}
    printf("\n");
    for (*Pt_i = 0; *Pt_i < *Pt_sm; *Pt_i = *Pt_i + 1)
      {*(b + *Pt_i) = rand() % 10; printf("%3i", *(b + *Pt_i));}
    printf("\n");
    for (*Pt_i = 0; *Pt_i < *Pt_sm; *Pt_i = *Pt_i + 1)
    {
            *(c + *Pt_i) = *(a + *Pt_i) + *(b + *Pt_i);
            printf("%3i", *(c + *Pt_i));
    }
    delete[] a;
    delete[] b;
    delete[] c;
}

Вариант А6

Спойлер
/* Вариант 6 */
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
    int *a, i, k, num = -1, n;
    int *pti = &i, *ptk = &k, *ptnum = &num, *ptn = &n;
    scanf("%i", &*ptn);
    a = new int[*ptn];
    srand(time(NULL));
    for (*pti = 0; *pti < *ptn; (*pti)++) {
        *(a + *pti) = rand() % 10;
        printf("%3i", *(a + *pti));
    }
    printf("\nk=");
    scanf("%i", &*ptk);
    for (*pti = 0; *pti < *ptn; (*pti)++)
        if (*(a + *pti) == *ptk) {
            printf("a[%i]=%i\n", *pti, *(a + *pti));
            *ptnum = *pti;
        }
    if (*ptnum < 0)
        printf("Not");
    delete[] a;
}

1 лайк

Что делает данная прога под вариантом 6

Генерит массив из 5 элементов, далее программа запрашивает тебя ввести число и ищет его среди сгенерированных элементов. Если найдено выводит этот элемент и его номер. Если нет такого числа, выводит Not.

1 лайк