/*Массив из структурных данных сосотоит из координат точек плоскости.
Отсортировать массив в порядке возрастания расстояния точек до начала
координат. (Использован метод пузырька)*/
#include "stdafx.h"
#include "stdio.h"
#include "conio.h"
#include "stdlib.h"
struct koord
{
float x,y;
};
void sort(koord *a,int n);
int main()
{
koord *a;
int i,n;
printf("Enter kol-vo tochek:\n");
scanf("%d",&n);
a=(koord*)calloc(n,sizeof(koord));
printf("Enter koord tochek:\n");
for(i=0;i<n;i++)
scanf("%f%f",&a[i].x,&a[i].y);
sort(a,n);
printf("Sortirovka tochek:\n");
for(i=0;i<n;i++)
printf("%4.1f %4.1f ",a[i].x,a[i].y);
getch();
return 0;
}
void sort(koord *a,int n)
{
koord temp;
int i, fl=1;
while(fl==1)
{
fl=0;
for(i=0;i<n-1;i++)
if((a[i].x*a[i].x+a[i].y*a[i].y)>(a[i+1].x*a[i+1].x+a[i+1].y*a[i+1].y))
{
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
fl=1;
}
}
}
/*Массив из структурных данных сосотоит из координат точек плоскости.
Отсортировать массив в порядке возрастания расстояния точек до начала
координат. (Сортировка методом min и max значений)*/
#include "stdafx.h"
#include "stdio.h"
#include "conio.h"
#include "stdlib.h"
struct koord
{
float x,y;
};
void sort(koord *a,int n);
int main()
{
koord *a;
int i,n;
printf("Enter kol-vo tochek:\n");
scanf("%d",&n);
a=(koord*)calloc(n,sizeof(koord));
printf("Enter koord tochek:\n");
for(i=0;i<n;i++)
scanf("%f%f",&a[i].x,&a[i].y);
sort(a,n);
printf("Sortirovka tochek:\n");
for(i=0;i<n;i++)
printf("%4.1f %4.1f ",a[i].x,a[i].y);
getch();
return 0;
}
void sort(koord *a,int n)
{
koord temp;
int i,j,mj;
float min,r;
for(i=0;i<n-1;i++)
{
min=(a[i].x*a[i].x+a[i].y*a[i].y);
mj=i;
for(j=i+1;j<n;j++)
{
r=a[j].x*a[j].x+a[j].y*a[j].y;
if(r<min)
{
min=r;
mj=j;
}
temp=a[mj];
a[mj]=a[i];
a[i]=temp;
}
}
}
/*Cтруктура включает фамилию сотрудника, номер отдела (100,101,102),
зарплату. Вывести суммарную зарплату по отделам*/
#
include<stdafx.h>
#
include<stdio.h>
# include<string.h>
# include<conio.h>
struct ved
{
char name[20];
int otd;
float zar;
};
void zarplata(ved *mas, int n, float *zarp1, float
*zarp2, float *zarp3);
void main()
{
ved mas[6];
int i;
for
(i=0;i<6;i++)
{
flushall();
printf("Enter name\n");
gets(mas[i].name);
printf("Enter otdel\n");
scanf("%d",&mas[i].otd);
printf("Enter zarplata\n");
scanf("%f",&mas[i].zar);
}
float zarp1, zarp2, zarp3;
zarplata(mas,
6, &zarp1, &zarp2, &zarp3);
printf("Zarplata po otdelam\n");
printf("%7.2f%7.2f%7.2f", zarp1, zarp2, zarp3);
getch();
}
void zarplata(ved *mas, int n, float *zarp1, float
*zarp2, float *zarp3)
{
*zarp1=0;
*zarp2=0;
*zarp3=0;
for(int
i=0;i<n;i++)
{
if (mas[i].otd==100)
*zarp1=*zarp1+mas[i].zar;
if (mas[i].otd==101)
*zarp2=*zarp2+mas[i].zar;
if (mas[i].otd==102)
*zarp3=*zarp3+mas[i].zar;
}
}
/*Поиск книги по автору и году издания (не позднее указанного)*/
#include "stdafx.h"
#include "conio.h"
#include "string.h"
struct knigi
{
char
name[20];
char
avtor[20];
int age;
};
void novinki(knigi *a, knigi *b, char
n[], int *k, int
h,int x);
int main()
{
knigi
a[6],b[6];
int k=0;
int h;
char n[20];
for (int i=0; i<6;
i++)
{
printf
("Nazvanie knigi %d\n",i+1);
flushall();
gets(a[i].name);
printf
("Imya avtora knigi %d\n",i+1);
flushall();
gets(a[i].avtor);
printf
("God izdaniya knigi %d\n",i);
scanf("%d", &a[i].age);
}
printf("Iskomiy avtor\n");
flushall();
gets(n);
printf("min year izdaniya\n");
int x;
scanf("%d",&x);
novinki
(a,b,n,&k,6,x);
printf("\n");
for (int
i=0;i<k;i++)
puts(b[i].name);
getch();
return 0;
}
void novinki (knigi *a, knigi *b, char
n[], int *k, int
h, int x)
{
for (int i=0;
i<h;i++)
if (strcmp(n,a[i].avtor)==0&&a[i].age>x)
{
strcpy(b[*k].name,a[i].name);
(*k)++;
}
}
/*Поиск студента в списке из фамилии и номера по введенному первому
символу и номеру группы*/
#include <stdafx.h>
#include <conio.h>
#include <string.h>
struct stud
{
char name[20];
int num;
};
int search(stud *mas,stud *mas2,int
numi,char b);
int main()
{
int i;
stud mas[3];
for (i=0;i<3;i++)
{
printf("Enter name %d\n",i+1);
flushall();
gets(mas[i].name);
printf("Enter number of group %d\n",i+1);
scanf("%d",&mas[i].num);
}
int numi;
stud
mas2[3];
char b;
printf("Enter first symbol\n");
flushall();
scanf("%c", &b);
printf("Enter number of group\n");
scanf("%d",&numi);
int nr=search(mas,mas2,numi,b);
printf("\n");
printf("Students: \n");
if (nr==0) printf("No
matches \n");
else
{
for (i=0;i<nr;i++)
{
printf("%d) ",i+1);
puts(mas2[i].name);
printf(" group ");
printf("%d",mas2[i].num);
printf("\n");
}
}
getch();
return 0;
}
int search(stud *mas,stud *mas2,int
numi,char b)
{
int i,j=0;
for (i=0;i<3;i++)
if ((*mas[i].name==b)&&(mas[i].num==numi))
{
mas2[j]=mas[i];
j++;
}
return j;
}
/*Структура задана координатами центра окружности (х,y) u её радиусом r.
Определить и вывести на экран координаты центра окружности, которая пересекает
наибольшее количество других окружностей.*/
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>
struct okr
{
float x,y,r;
};
int maxi(okr *mas, float *x, float *y, int n);
int main()
{
okr mas[6];
int i; float x,y;
printf("Enter dannye x, y, r\n");
for(i=0;i<6;i++)
{
scanf("%f", &mas[i].x);
scanf("%f", &mas[i].y);
scanf("%f", &mas[i].r);
}
maxi(mas,&x,&y,6);
printf("Center:\n");
printf("x=%f,y=%f",x,y);
getch();
return 0;
}
int maxi(okr *mas, float *x, float *y, int n)
{
int i,j; int k=0; int max=-1; float d;
for(i=0;i<n;i++)
{
k=0;
for(j=0;j<n;j++)
{
if(i!=j)
if((mas[j].x-mas[i].x)*(mas[j].x-mas[i].x)+(mas[j].y-mas[i].y)*(mas[j].y-mas[i].y)<(mas[i].r+mas[j].r)*(mas[i].r+mas[j].r))
k++;
}
if(k>max)
{
max=k;
*x=mas[i].x;
*y=mas[i].y;
}
}
return 0;
}
/*Массив из структурных данных сосотоит из координат точек плоскости.
Отсортировать массив в порядке
возрастания расстояния точек до начала координат.*/
#include "stdafx.h"
#include "stdio.h"
#include "conio.h"
#include "stdlib.h"
struct koord
{
float x,y;
};
void sort(koord *a,int n);
int main()
{
koord *a;
int i,n;
printf("Enter kol-vo tochek:\n");
scanf("%d",&n);
a=(koord*)calloc(n,sizeof(koord));
printf("Enter koord tochek:\n");
for(i=0;i<n;i++)
scanf("%f%f",&a[i].x,&a[i].y);
sort(a,n);
printf("Sortirovka tochek:\n");
for(i=0;i<n;i++)
printf("%4.1f %4.1f ",a[i].x,a[i].y);
getch();
return 0;}
void sort(koord *a,int n)
{
koord temp;
int i,j,mj;
float min,r;
for(i=0;i<n-1;i++)
{
min=(a[i].x*a[i].x+a[i].y*a[i].y);
mj=i;
for(j=i+1;j<n;j++)
{
r=a[j].x*a[j].x+a[j].y*a[j].y;
if(r<min)
{
min=r;
mj=j;
}
temp=a[mj];
a[mj]=a[i];
a[i]=temp;
}
}
}
/*Массив из структурных данных сосотоит из координат точек плоскости.
Отсортировать массив в порядке
возрастания расстояния точек до начала координат.(другая функция)*/
#include "stdafx.h"
#include "stdio.h"
#include "conio.h"
#include "stdlib.h"
struct koord
{
float x,y;
};
void sort(koord *a,int n);
void sort2(koord *a,int n);
int main()
{
koord *a;
int i,n;
printf("Enter kol-vo tochek:\n");
scanf("%d",&n);
a=(koord*)calloc(n,sizeof(koord));
printf("Enter koord tochek:\n");
for(i=0;i<n;i++)
scanf("%f%f",&a[i].x,&a[i].y);
sort(a,n);
printf("Sortirovka tochek:\n");
for(i=0;i<n;i++)
printf("%4.1f %4.1f ",a[i].x,a[i].y);
getch();
return 0;
}
void sort(koord *a,int n)
{
koord temp;
int i, fl=1;
while(fl==1)
{
fl=0;
for(i=0;i<n-1;i++)
if((a[i].x*a[i].x+a[i].y*a[i].y)>(a[i+1].x*a[i+1].x+a[i+1].y*a[i+1].y))
{
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
fl=1;
}
}
}