/*Функция считает среднее значение положительных элементов в каждой строке массива 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);

            }

      }

}

 

Сайт создан в системе uCoz