/*Функция считает среднее значение положительных элементов в каждой строке
массива a[m][n] и выводит полученный результат справа от соответствующей
строки*/
#include "stdafx.h"
#include "conio.h"
#include "stdlib.h"
void sredar (float *a, int m, int n, float *b);
int main()
{
float *a;
float *b;
int i,j,m,n;
printf("Enter kol-vo strok massiva\n");
scanf("%d",&m);
printf("Enter kol-vo stolbcov massiva\n");
scanf("%d",&n);
a=(float*)calloc(m*n,sizeof(float));
b=(float*)calloc(m,sizeof(float));
printf("Enter massive a[%d][%d]\n",m,n);
for(i=0;i<m;i++)
for(j=0;j<n;j++)
scanf("%f", a+i*n+j);
sredar(a,m,n,b);
printf("\n");
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
printf("%4.1f ", *(a+i*n+j));
printf
("
%f\n", *(b+i));
}
getch();
free(a);
free(b);
return 0;
}
void sredar (float *a, int m, int n, float *b)
{
int i,j,k;
float s;
for (i=0;i<m;i++)
{
s=0;
k=0;
for (j=0;j<n;j++)
if(*(a+i*n+j)>0)
{
s=s+*(a+i*n+j);
k++;
}
if(k==0)
*(b+i)=0;
else
*(b+i)=s/k;
}
}
/*Функция определяет элемент строки s[20], повторяющийся максимальное
количество раз (только латиница)*/
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
int kol(char*s);
int main()
{
char s[20];
int i,j,z;
printf("Enter stroku:\n");
gets(s);
flushall();
printf("Samyi chasto povtor. simvol\n");
printf("%c",kol(s));
getch();
return 0;
}
int kol(char *s)
{
int i,j;
int st[256];
for (i=0;i<256;i++)
st[i]=0;
for(i=0;i<strlen(s);i++)
st[s[i]]++;
int max=-1.0e10;
for(i=0;i<256;i++)
if(st[i]>max)
{
max=st[i];
j=i;
}
return j;
}
/*Составить функцию, которая в массиве A[m] определяет количество
элементов, делящихся на p и ставит это количество на место первого
отрицательного элемента.*/
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
int modp(int *a, int m, int p);
int main()
{
int m,i,p;
int *a;
printf("Enter m\n");
scanf("%d",&m);
a=(int *)calloc(m,sizeof(int));
printf("Enter massive\n");
for (i=0;i<m;i++)
scanf("%d", a+i);
printf("Enter p\n");
scanf("%d", &p);
if (modp(a,m,p))
{
for(i=0;i<m;i++)
printf
("%d ",a[i]);
}
else
printf("net otr elementov");
getch();
free(a);
return 0;
}
int modp(int *a, int m, int p)
{
int i,k,c,t;k=0;c=0;
for (i=0;i<m;i++)
if(a[i]%p==0)
k++;
for (i=0;i<m&&c==0;i++)
if(a[i]<0)
{
t=i;c=1;
}
if(c!=0) a[t]=k;
return c;
}
/* Составить функцию, которая в целочисленной матрице A[m][n] определяет
количество элементов, делящихся на целое число k без остатка, в каждой строке и
формирует массив B[m]. Составить другую функцию, определяющую max элемент
массива B. Применить составленные функции для массива C[4][5], k=3.*/
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
void kol(int *a, int *b, int
m, int n, int
k);
int maximum(int *b, int m, int *max);
int main()
{
int a[4][5];
int *b;
int i,j;
printf("Enter massiv A:\n");
for (i=0;i<4;i++)
for (j=0;j<5;j++)
scanf("%d", &a[i][j]);
int k=3;
b=(int*)calloc(4,sizeof(int));
kol(&a[0][0],
&b[0], 4, 5, 3);
printf("Massive A:\n");
for (i=0;i<4;i++)
{
for (j=0;j<5;j++)
printf("%d ", a[i][j]);
printf("\n");
}
printf("Massive B:\n");
for(i=0;i<4;i++)
printf("%d ",*(b+i));
printf("\n");
int max;
maximum(&b[0],4,&max);
printf("max=%d",max);
getch();
return 0;
}
int maximum(int *b, int m, int *max)
{
int i;
*max=-100000000;
for(i=0;i<m;i++)
if(*(b+i)>*max)
*max=*(b+i);
return *max;
}
void kol(int *a, int *b, int m, int n, int k)
{
int i,j,l;
for(i=0;i<m;i++)
{
l=0;
for(j=0;j<n;j++)
{
if(*(a+i*n+j)%k==0)
l=l+1;
}
*(b+i)=l;
}
}
/* Функция в каждом слове массива меняет местами первый и последний,
второй и предпоследний элементы и т.д.*/
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
void kon(char *s, char *b,int *k);
int main()
{
char st[5][20];
char *b;
char s[20];
printf("Enter slova\n");
int i;
for (i=0;i<5;i++)
{
flushall();
gets(st[i]);
}
b=(char*)calloc(20*5,sizeof(char));
int k,j;
printf("New slova\n");
for(int
i=0;i<5;i++)
{
flushall();
strcpy(s,st[i]);
kon(s,b,&k);
for(j=0;j<k;j++)
printf("%c",b[j]);
printf("\n");
flushall();
}
getch();
free (b);
return 0;
}
void kon(char *s,char *b,int *k)
{
int i;
char temp;
*k=strlen(s);
for(i=0;i<*k;i++)
b[i]=s[*k-1-i];
}
/*Функция формирует из строки str[21] массив a[5][4]*/
#include "stdafx.h"
#include "conio.h"
#include "string.h"
void narezka (char *str, char *a, int m, int n);
int main()
{
char str[21], a[20];
printf("Vvedite stdoku\n");
gets(str);
int m=5;
int n=4;
narezka
(str,a,m,n);
printf("Polucheniy massiv\n");
for (int i=0; i<m;
i++)
{
for (int j=0; j<n;
j++)
{
printf("%c", a[i*n+j]);
}
printf
("\n");
}
getch();
return 0;
}
void narezka (char *str, char *a, int m, int n)
{
int c=0;
for (int i=0; i<m;
i++)
for (int j=0; j<n;
j++)
a[i*n+j]=str[c++];
}
/*Функция удаляет из строки "fe" и "a"*/
#include <stdafx.h>
#include <conio.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
int del1st(char *s, char *st);
int delchar(char *s, char st);
int main()
{
char s[30],st[30];
printf(" 1)Input text
\n");
printf(" 2)This
program will delete all <fe> and <a> in text \n");
gets(s);
while(del1st(s,"fe"));
while(delchar(s,'a'));
printf(" 3)New text:
\n");
puts(s);
getch();
return 0;
}
int del1st(char *s, char *st)
{
char *p;
if( p=strstr(s,st))
{
*p='\0';
strcat(s,p+strlen(st));
return 1;
}
else
return 0;
}
int delchar(char *s, char st)
{
char *p;
if( p=strchr(s,st))
{
*p='\0';
strcat(s,p+1);
return 1;
}
else
return
0;
}
/*Функция вычеркивает из массива A[4][4] введенную строку и выводит рядом
с начальной матрицей преобразованную*/
#include "stdafx.h"
#include <stdio.h>
#include "conio.h"
void newmas(int *a,int m,int n,int *b,int n1);
int main()
{
int a[4][4],b[3][4],m=4,n=4,i,j,n1;
printf("Enter nomer udalyaemoy stroki\n");
scanf("%d",&n1);
printf("Enter a[4][4] \n");
for (i=0;i<4;i++)
for (j=0;j<4;j++) scanf("%d",&a[i][j]);
newmas(&a[0][0],m,n,&b[0][0],n1);
printf("\n");
printf(" a b \n");
for (i=0;i<4;i++)
{
for (j=0;j<4;j++)
printf("%d ",a[i][j]);
printf(" | ");
for (j=0;j<4;j++)
if (i<3) printf("%d
",b[i][j]);
printf("\n");}
getch();
return 0;
}
void newmas(int *a,int m,int n,int *b,int n1)
{
int i,j;
for (i=0;i<m-1;i++)
for
(j=0;j<n;j++)
if (i<(n1-1)) *(b+i*n+j)=*(a+i*n+j);
else *(b+i*n+j)=*(a+i*n+j+4);
}
/*Функция вычисляет среднее арифметическое среди положительных элементов
каждой строки массив A[m][n]*/
#include "stdafx.h"
#include <stdio.h>
#include "conio.h"
#include "stdlib.h"
void sredar (float *a, int m, int n, float *b);
int main()
{
float *a;
float *b;
int i,j;
int m,n;
printf("Enter m,n\n");
scanf("%d%d",&m,&n);
a=(float*)calloc(m*n,sizeof(float));
b=(float*)calloc(m,sizeof(float));
printf("Enter massive\n");
for(i=0;i<m;i++)
for(j=0;j<n;j++)
scanf("%f", &a[i*n+j]);
sredar(a,m,n,b);
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
printf("%4.1f ",
a[i*n+j]);
printf
("%4.1f\n", b[i]);
}
getch();
free(a);
free(b);
return 0;
}
void sredar (float *a, int m, int n, float *b)
{
int i,j,k; float s;
for (i=0;i<m;i++)
{
s=0;
k=0;
for (j=0;j<n;j++)
if(*(a+i*n+j)>0)
{
s=s+*(a+i*n+j);
k++;
}
if(k!=0)
*(b+i)=s/k;
else
*(b+i)=0;
}
}
/*Функция удаляет пробелы из предложения*/
#include <stdafx.h>
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
void func(char *a, char *b);
int main()
{
char a[20];
char *b;
int i;
printf("Predlozhenie:\n");
gets(a);
flushall();
b=(char*)calloc(strlen(a),sizeof(char));
func(a,b);
printf("New predlozhenie:\n");
puts(b);
getch();
return 0;
}
void func(char *a, char *b)
{
int i,l;
l=0;
for(i=0;i<strlen(a);i++)
if (a[i]!=' ')
{
b[l]=a[i];
l++;
}
}
/*Удалить из массива строку с номером n*/
#include <stdafx.h>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
void nm(int *a, int *b, int m, int n, int k);
int main()
{
int *a; int *b;
int i,j,m,n,k;
printf("Enter chislo strok m:\n");
scanf("%d", &m);
printf("Enter chislo stolbcov n:\n");
scanf("%d", &n);
a=(int*)calloc(m*n,sizeof(int));
b=(int*)calloc((m-1)*n,sizeof(int));
printf("Enter massiv A:\n");
for (i=0;i<m;i++)
for (j=0;j<n;j++)
scanf("%d", a+i*n+j);
printf("Enter nomer udalyaemoj stroki k:\n");
scanf("%d", &k);
printf("Massive A:\n");
for (i=0;i<m;i++)
{
for (j=0;j<n;j++)
printf("%d ", *(a+i*n+j));
printf("\n");
}
nm(a,b,m,n,k);
printf("Massive B:\n");
for(i=0;i<m-1;i++)
{
for(j=0;j<n;j++)
printf("%d ", *(b+i*n+j));
printf("\n");
}
getch(); free(a); free(b);
return 0;
}
void nm(int *a, int *b, int m, int n, int k)
{
int i,j,l;
l=0;
for(i=0;i<m;i++)
{
if(i!=k-1)
{
for(j=0;j<n;j++)
*(b+l*n+j)=*(a+i*n+j);
l++;
}
}
}
/*Дана ведомость оценок, функция выводит фамилии студентов учащихся на 4 и
5*/
# include<stdafx.h>
# include<stdio.h>
# include<string.h>
# include<conio.h>
struct ved
{
char fam[20];
int mark[3];
};
void funk(ved *mas, int n);
void main()
{
ved mas[4];
int i;
for(i=0; i<4; i++)
{
flushall();
printf("Familiya %d\n",i+1);
gets(mas[i].fam);
printf("Marks %d\n",i+1);
for(int j=0; j<3;
j++)
scanf("%d",& mas[i].mark[j]);
}
funk(mas,4);
getch();
}
void funk(ved *mas, int n)
{
int j; int k=0;
printf("Horoshisty i otlichniki:\n");
for (int i=0; i<n;
i++)
{
k=0;
for(j=0; j<3; j++)
if (mas[i].mark[j]>3)
{
k++;
if (k==3)
puts(mas[i].fam);
}
}
}
/*Даны строки со словами. Функция в нечётной строке упорядочивает символы
по алфавиту*/
#include<stdafx.h>
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
void puz(char a[][20],int n);
void main ()
{
int i,j;
char b[5][20];
printf ("enter massive:\n");
for (i=0;i<5;i++)
gets(b[i]);
puz(b,5);
for (i=0;i<5;i++)
{
puts(b[i]);
printf
("\n");
}
getch();
}
void puz(char a[][20], int n)
{
char temp;
int k;
char min[20];
for (int
i=0;i<n;i++)
if (i%2==0)
{
k=strlen(a[i]);
for (int
j=0;j<k;j++)
for (int
l=j+1;l<k;l++)
if (a[i][j]>a[i][l])
{
temp=a[i][j];
a[i][j]=a[i][l];
a[i][l]=temp;
}
}
}
/*Англо-русский слвоарь состоит из 6 данных типа структура. Составить
программу, которая по вводимому английскому слову выводит его русский аналог и
наоборот.*/
#include "stdafx.h"
#include "stdio.h"
#include "conio.h"
#include "string.h"
struct clov
{
char a[6];
char r[6];
};
void poisk(clov *slovo, char *s, int n);
int main()
{
clov
slovo[15];
char s[15];
int i,j;
printf("Enter english words\n");
for (i=0; i<6; i++)
{
flushall();
gets(slovo[i].a);
}
printf("Enter russian words\n");
for (i=0;
i<6; i++)
{
flushall();
gets(slovo[i].r);
}
printf("Vvodim iskomoe slovo\n");
gets(s);
poisk(
slovo,s,6);
getch();
return 0;
}
void poisk(clov *slovo,char *s, int n)
{
int i,j;
int k,l;
for (i=0; i<n; i++)
{
k=strcmp(slovo[i].a,s);
l=strcmp(slovo[i].r,s);
if (k==0)
{
printf("Russian Word\n");
printf("%s",slovo[i].r);
}
if(l==0)
{
printf("English word\n");
printf("%s",slovo[i].a);
}
}
}