|
Программирование >> Элементы языков с и с++
1ИСТИНГ 6.5 21.СРР : Defines the entry point for the console application. ♦include stdafx.h tinclude <stdio.h> #include <conio.h> tdefine eof -1 tdefine m 5 for getchar0 ---- Ctrl+z количество счетчиков в операторе switch ----Функция подсчета символов ---------------------------- /* char с - входной символ, подсчет которого ведется (сколько раз встретится) int v[] - с помощью элементов этого массива организованы счетчики char S[]- сюда помещаются символы, которые подсчитываются (для их последующей распечатки) */ int CountSimb(char с,int v[],char s[]) { int i ; switch(c) { case a: v[0]++; s[0]=c; break; case b: s[l]=c; v[l]++; break; case с: v[2]++; s[2]=c; break; case d : v[3]++; s[3]=c; break; default: все прочие введенные символы попадают в этот блок v[4]++; s[4]=!; /* признак прочие символы (введен для печати: чтобы было понятно, что счетчик относится к прочим ) */ break; return(0); ----------- int tmain () int с, i,a[m]; char s [m]; for(i=0; i < m; i++) a[i]=0; printf ( enter your characters; the Ctrl+z is the last to be entered > ) ; i=0; while((c=getchar{)) != eof) { CountSimb(c,a,s); i++; for(i=0; i < m; i++) printf( Key=%c count =%d\n ,s[i],a[i]); getch () ; I tmainO C:\WINDOWS\$ystem32\cmd.e)(e inter your characters; the Ctrl+z is the last to be entered >asxcbder c;ey=a count =1 Kev=b count =1 i(iy=c count =1 ЛеуЛ count =1 Kev=T count =5 liAa продолжения нажмите любую клавииу ... , Использование оператора switch демонстрируется с помощью его включения в функцию CountSimb (char с,int v[],char s []), параметры которой опи-саны перед ее определением. У самого оператора switch есть заголовочная часть, заключенная в круглые скобки, и тело - блок операторов. В заголовочной части указано имя переменной, значение которой будет анализироваться оператором, и в зависимости от значения этой переменной, произойдет передача управления в тот или иной участок блока. ( Примечание В заголовочной части оператора может быть расположено не только имя переменной, но и выражение целого типа, но никак не типа float или типа строки символов. Участки блока определяются ключевым словом case (случай), после которого через пробел стоит конкретное значение анализируемой переменной. В нашем случае переменная описана как символ, поэтому конкретное ее значение, определяющее начало участка блока, написано в соответствии с правилами записи символьных констант: например, d. Если бы переменная была типа int, то надо было бы писать, например, 5. После конкретного значения выражения в заголовочной части обязательно стоит символ двоеточия, обозначающий начало участка обработки данного случая - это как бы метка начала участка обработки, относящегося к данному случаю. Работа внутри тела оператора switch организована так: 1. Анализируется выражение заголовочной части. 2. Управление передается на выполнение того участка тела, значение которого в метке совпадает со значением выражения в заголовочной части. На участке могут находиться обычные операторы. Они должны быть завершены оператором break (прервать), который прервет выполнение switch и передаст управление следующему за телом switch оператору. Оператор break прерывает не только выполнение оператора switch, но и while, и for. Если в конце участка не поставить break, то программа перейдет к следующему участку, потом к следующему и т. д. В конце концов, она дойдет до конца тела оператора switch и выйдет из него.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |