Переименование типов

Формат

typedef старый_тип новый_тип

Примеры:

typedef long large;/* определяется тип large, эквивалентный типу long */typedef char *string;/* тип string, эквивалентен типу char* */

Переименование типов используется для введения осмысленных или сокращенных имен типов, что повышает понятность программ, и для улучшения переносимости программ (имена одного типа данных могут различаться на разных ЭВМ).

Пример:

/* Реализован алгоритм, который позволяет определить строки матриц, состоящие из одинаковых целых, расположенных в различных столбцах. Используются двумерные массивы и структуры. Сначала выполняется сортировка строк по возрастанию. Отсортированные строки сравниваются и выводятся на экран номера одинаковых строк */#include <stdlib.h>#include <string.h>#include <stdio.h>#include <conio.h>#define n 4 /*количество строк */#define m 4 /*количество столбцов*/typedef struct mas{int i,i1;} mas;int m1[n][m]; /*исходный массив*/struct mas{int i,i1;}; mas a[n*2]; /*массив типа mas, где будут лежать одинаковые строки, a[1].i и a[1].i1 - одинаковые строки*/void main(){ clrscr(); int i,j; randomize(); for(i=0;i<n;i++) for(j=0;j<m;j++) m1[i][j]=random(2); /*случайным образом в массив заносим целые*/ for(i=0;i<n;i++) { printf("\n %d) ",i); for(int j=0;j<m;j++) printf(" %d",m1[i][j]); } int min, p;/* индекс минимального элемента после s-го элемента i-ой строки сортировка строк массива по возрастанию */ for(i=0;i<n;i++) { /* i-сортировка i-ой строки */ for(int s=0;s<m-1;s++) { min=m1[i][s+1]; for(int j=s;j<m;j++) if(m1[i][j]<=min) { min=m1[i][j];p=j; }/* запоминаем минимальный элемент в ряду после s-го элемента */ if(m1[i][s]>=min) { m1[i][p]=m1[i][s];m1[i][s]=min; }/* меняем местами s-й и p-й элемент,если s-й > p-го(минимального) */ } } printf("\n"); for(i=0;i<n;i++) { printf("\n %d) ",i); for(int j=0;j<m;j++) printf(" %d",m1[i][j]);/* выводим отсортированный массив */ } int s,k=0; /*сколько элементов в i-й строке совпадают с элементами i1 строки*//*сколько строк совпали*/ int i1; for(i=0;i<n-1;i++) /* верхняя строка i */ for(i1=i+1;i1<n;i1++) { /* нижняя строка i1 */ s=0; for(int j=0;j<m;j++) /* сравнение идет по j-му столбцу */ if(m1[i][j]==m1[i1][j]) s++;/* если соответствующие элементы в i-й и i1-й строки совпадают то кол-во совпавших увеличивается на 1 */ if(s==m) {a[k].i=i;a[k].i1=i1;k++;}/* если все элементы i-й и i1-й строки совпали, то они одинаковые */ } printf("\n Совпадающие строки:"); for(i=0;i<k;i++) printf("\n %d и %d",a[i].i,a[i].i1);/* распечатываем a[i].i-ю и a[i].i1-ю совпадающую строку */ getch();}

Лекция 15. Библиотека языка Си и файлы ввода-вывода

Библиотека языка Си содержит множество функций и макроопределений. Библиотеки меняются от системы к системе, но есть ядро функций (стандартная библиотека). Распределение памяти.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: