Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
АЯиОП - экзамен. 1 курс 1 семестр.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
309.25 Кб
Скачать

Int main()

{

int **array;

array=init();

randomize();

fill(array);

print(array);

printf("\n\n");

transpon(array);

free(array);

return 0;

}

13) В каждом столбце матрицы 7х8 найти повторяющиеся элементы и распечатать их значения;

На 3:

#include <stdio.h>

#include <stdlib.h>

#include <conio.h>

#define M 7

#define N 8

int array[M][N];

int i,j,k;

Int main()

{

printf(" 1 2 3 4 5 6 7 8");

printf("\n");

printf("\n");

for(i=0;i<M;i++)

{

for(j=0;j<N;j++)

{

array[i][j]=rand()%(101)-50;

printf("%4d",array[i][j]);

}

printf("\n");

}

for(j=0;j<N;j++)

{

printf("\nSovpadenja v %d stolbtse: ",j+1);

for(i=0;i<M-1;i++)

{

for(k=i+1;k<M;k++)

{

if(array[i][j]==array[k][j]) printf("%4d",array[k][j]);

}

}

}

return 0;

}

На 4:

#include <stdio.h>

#include <stdlib.h>

#include <conio.h>

#include <time.h>

#define N 7

#define M 8

int **init()

{

int i, **tmp;

tmp=(int **)malloc(N*sizeof(int *));

for (i=0;i<M;i++)

tmp[i]=(int *)malloc(M*sizeof(int));

return tmp;

}

void randomize()

{

srand(time(0));

}

int **fill(int **array)

{

int i,j;

for (i=0;i<N;i++)

for (j=0;j<M;j++)

array[i][j]=rand()%51-10;

return array;

}

void print(int **array)

{

int i,j;

for (i=0;i<N;i++)

{

for (j=0;j<M;j++)

printf("%4d", array[i][j]);

printf("\n\n");

}

}

void match(int **array)

{

int i,j,k;

for(j=0;j<M;j++)

{

printf("\nSovpadenja v %d stolbtse: ",j+1);

for(i=0;i<N-1;i++)

for(k=i+1;k<N;k++)

if(array[i][j]==array[k][j]) printf("%4d",array[k][j]);

}

}

Int main()

{

int **array;

array=init();

randomize();

fill(array);

printf(" 1 2 3 4 5 6 7 8");

printf("\n\n");

print(array);

match(array);

free(array);

return 0;

}

14) введите слово в переменную типа строка, распечатайте слово, исключая из него каждый раз поочередно, то последнюю, то первую букву, например, слово ‘abcdef’ будет распечатано в виде abcdef bcdef bcde cde cd d;

На 3:

#include <stdlib.h>

#include <string.h>

#include <stdio.h>

Int main()

{

char *str, *s1;

int i,j,len;

str=(char*)malloc(81*sizeof(char));

gets(str);

printf("%s ",str);

len = strlen(str);

i=0;

j=0;

while(len>1)

{

len --;

s1 = (char*)malloc((len+1)*sizeof(char));

if(i%2==0)

{

j++;

strncpy(s1,str+j,len);

s1[len] = 0;

}

else

{

strncpy(s1,str+j,len);

s1[len]='\0';

}

printf("\n%s ",s1);

free(s1);

i++;

}

free(str);

return 0;

}

На 4:

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

void Udalenie_peroi_bukvi(char *c)// Функция сдвигает все элементы строки (буквы) на один влево, начиная со второго(c[1], так как индекс начинается с 0)

{

int i;

int k=strlen(c);// Скопировал длину строки в отдельную переменную, ибо не знаю, как работает цикл for(не знаю, проверяет ли каждый раз условие i<=strlen(c))

for (i=1;i<=k;i++)// обращаем внимание, что условие i<=k, так как символ окончания строки тоже нужно сдвинуть, чтобы работала функция puts(), так как функция strlen() возвращает число символов строки без символа окончания строки.

{

c[i-1]=c[i];// сдвинаем букву на один влево

}

}

void Udalenie_poslednei_bukvi(char *c)

{

c[strlen(c)-1]=c[strlen(c)];// Если это непонятно - вы ошиблись с выбором профессии, но, все же, я просто заменяю последнюю букву слова на символ окончания строки

}

void Ne_znayu_rar_nazvat(char *c)// собственно, вызов вышеуказанных функций по очереди в цикле

{

while(strlen(c)>0)//пока не раздербанили слово в край, продолжаем дербанить

{

Udalenie_poslednei_bukvi(c);

puts(c);

Udalenie_peroi_bukvi(c);

puts(c);

}

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]