Программирование на С++ — страница 2

  • Просмотров 2450
  • Скачиваний 222
  • Размер файла 96
    Кб

|| *n <= 0 ); printf("\n Введите массив :\n"); scanf("%d",n); if ( *n >= M || *n <= 0 ) { printf("Неверная длина массива (0<M<100):"); } } while ( *n >= M || *n <= 0 ); printf("\n Введите массив :\n"); for ( i = 0 ; i < *n ; i++) { printf("Y[%d]=",i+1); scanf("%f",&a[i]); } } Описание переменных и исходный текст к 2-му примеру #include <stdio.h> #include <stdlib.h> #include <string.h> #define M 200 //Максиальная длина текста main() { void inpstr(char a[]); //Ввод текста char string[M]; //Текст int i=0; //Счетчики шагов циклов int

leftbracket=0,rightbracket=0; //Количество левых и правых скобок в тексте int flag=0; //Флаг верно поставленных правых скобок (верно: 0 неверно:1) inpstr(string); //Вводим текст do //Начало цикла { if (string[i]=='(') //Если i-ый символ текста = ( leftbracket++; //Увеличиваем счетчик левых скобок на 1 if (string[i]==')') //Если i-ый символ текста = ( { rightbracket++; //Увеличиваем счетчик правых скобок на 1 if (leftbracket<rightbracket) //Если Правых скобок больше flag=1; //Правые скобки выставлены неправильно Флагу

присваиваем 1 } i++; //Увеличиваем счетчик цикла на 1 } _ while(i<strlen(string) && flag==0); //Если i > длины строки или Флаг = 1 заканчиваем цикл// if (leftbracket==rightbracket && flag==0) //Если количество левых скобок равно количеству правых и флаг=0 printf("\n Верно \n"); //Скобки расставлены верно else //Иначе printf("\n Неверно \n"); //Скобки расставлены неверно return(0); } void inpstr(char a[]) { int i; printf("\n Введите строку :\n"); gets(a); } Описание переменных и исходный текст к

3-му примеру #include <stdio.h> #include <stdlib.h> #define M 15 //длина массива main() { void inpdim(float a[]);//Процедура ввода массива void outdim(адщфе a[]);//Процедура вывода массива float y[M]; //Массив float i,j; //Счетчики шагов циклов float k; //Для хранения номера минимального элемента float n; //Для хранения минимального элемента inpdim(y); //Вводим массив for(i=0; i<M ; i++) //Цикл по i от 0 до М { n=y[i]; //запоминаем элемент как минимальный k=i; //и его номер как номер минимального for(j=i+1; j<M; j++)

//Цикл по j от i+1 до М { { if (y[j] < n) //Если элемент меньше минимального { n=y[j]; //запоминаем элемент как минимальный k=j; //и его номер как номер минимального } } y[k] = y[i]; //На место минимального записываем i-ый элемент y[i] = n; //На место i-го записываем минимальный элемент } outdim(y); //Выводим массив return(0); } void inpdim(float a[]) { float i; printf("\n Введите массив :\n"); for ( i = 0 ; i < M ; i++) { printf("Y[%f]=",i+1); scanf("%f",&a[i]); } } void outdim(int a[]) { float i; printf("\n Упорядоченный

массив :\n"); for ( i = 0 ; i < M ; i++) { printf("Y[%f]=",i+1); printf("%f",a[i]); printf("\n"); } } Блок – схемы к примерам (на следующей странице) 1. КОНЕЦ Вывод ‘Массив не строго возрастающий’ Вывод ‘Строго возрастающий массив’ да нет Если flag =0 Если i < n и flag=0 нет да i=i+1 нет да Если Y[i] >= Y[i+1] i=0 flag=0 НАЧАЛО Ввод длины массива n, Ввод массива Y flag = 1 2. да Вывод ‘Неверно’ Вывод ‘Верно Если flag =0 и leftbracket = rightbracket нет нет Если i<strlen(string) и flag=0 да i=i+1 нет да