Работа над ошибками контрольной. Задача 1. Дана матрица X[0:n-1][0:m-1] и массив Y[0:k-1]. Написать программу, которая вычисляет массив Z, состоящий из элементов X, расположенных между первым четным и максимальным нечетным элементами каждого столбца, если все эти элементы присутствуют в массиве Y. Ввод данных и вычисления оформить в виде отдельных функций.
#include void input_mass(int b[], int *k) //k передаём по адресу {int i; puts(\"Input k\"); scanf(\"%d\",k); puts(\"Input array\"); for(i=0;i
void count (int k, int Y[], int n, int m, int X[][10], int Z[], int *nz) { int i,j,t,nch,nmax,flag; *nz=0; //длина нового массива for(j=0;j
if (nch!=-1&&nmax!=-1) //если оба найдены { if (nch>nmax) //упорядочиваем чтобы nmax >= nch t=nmax, nmax=nch, nch=t; if (nmax-nch>1) //между ними есть элементы { flag=1; //признак присутствия всех for(i=nch+1; i
int main(){int a[10][10],n,m,b[10],k,c[50],nc;input_matr(a, &n, &m);input_mass(b, &k);count (k,b,n,m, a, c,&nc);output_c(nc,c);return 0;} void output_c(int nc, int c[]) { int i; if (nc==0) puts(\"No array c\"); else { puts(\"array c\"); for(i=0;i
Задача 2. Дана символьная строка. Заменить каждую подстроку, заключенную в круглые скобки и состоящую из цифр, звездочками. Количество звездочек равно первой цифре в подстроке. Преобразование строки оформить как отдельную функцию. #include #include #define maxln 81 int zamena(char s[]) { char *s1,*s2; int i,n,f=0; while (*s) //пока не конец строки if (*s==\'(\') //найдено начало подстроки, этот адрес заносим в s1 { s1=++s; while (*s&&isdigit(*s))s++; //пропускаем цифры if (*s==\')\'&&s1!=s) //если за цифрами скобка и скобки не рядом
{ f=1; //строка преобразовывалась n=*s1-\'0\'; //вычисляем количество цифр for(s2=s1;*s;*s2++=*s++); //удаляем подстроку *s2=\'\\0\'; for(;s1
int main () { char str[maxln]; int f; puts(\"input string\"); gets(str); f=zamena(str); if (f==0) puts(\"No changes\"); else { puts(\"Modified string \"); puts(str); } return 0; }
Задача 2. Дана символьная строка. Написать функцию для выделения подстрок, содержащих только латинские буквы и/или цифры и имеющих чётную длину. Привести вызов функции. Вывести полученные подстроки на экран. Домашнее задание (0.3 балла) Задачу 1 решают студенты с нечётными номерами вариантов по лабораторным, задачу 2 - с чётными. Сдача д/з на ближайшей лекции. Задача 1. Дана символьная строка. Написать функцию для выделения подстрок, заключенных в комментарии /* … */ и содержащих только латинские буквы. Привести вызов функции. Вывести полученные подстроки на экран. Ввод данных и вывод результата осуществить в главной функции. Выделение подстрок оформить как отдельную функцию с параметрами.
Книга Год Название Автор Цена Структуры Задача 2. Даны структуры вида Ввести структуры в массив и найти в нем самую дорогую книгу. Ввод данных и поиск оформить как отдельные функции. Функция поиска вернет указатель на самую дорогую книгу.
Будем использовать 1-й вариант ввода. Рассмотрим два варианта ввода 1) Книга # 1 Автор................ Название........... Год издания....... Цена................... Продолжаете ввод? (y/n) ... 2) Число книг в каталоге = Книга # 1 Автор............... Название.......... Год издания..... Цена................. Книга # 2 ...
#include #define lmax 200 //пропуск символов до конца строки #define CLR while (getchar()!=\'\\n\') struct book { char author[20], name[60]; int year, price; };
//Функция ввода массива структур (каталога) void readcat(int *kol, book cat[]) { char ch; *kol=0; do { printf(\"Book # %d\\n\", ++(*kol)); printf(\"Author...........\"); gets(cat->author); printf(\"Title............\"); gets(cat->name); printf(\"Publishing year..\"); scanf(\"%d\", &cat->year); printf(\"Price............\"); scanf(\"%d\", &cat->price); CLR; printf(\"Continue ? (y/n) \"); ch=getchar(); CLR; cat++; } while ((ch==\'Y\' || ch==\'y\')&&*kol
//Функция поиска самой дорогой книги book *dorog(int kol, book cat[]) { int i, max=0; book *dorkn; for (i=0; iprice>max) max=cat->price, dorkn=cat; return (dorkn);} int main() { int kolknig; book catalog[200], *dorkniga; readcat(&kolknig, catalog); dorkniga=dorog(kolknig, catalog); printf(\"Most expensive book:\\n\"); printf(\"Author...........%s\\n\", dorkniga->author); printf(\"Title............%s\\n\", dorkniga->name); printf(\"Publishing year..%d\\n\", dorkniga->year); printf(\"Price............%d\\n\", dorkniga->price); return 0;}