Ниже решается та же проблема, что что и в предыдущей задаче , но реализация осуществлена в VIsual Studio 2008 
";


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Ниже решается та же проблема, что что и в предыдущей задаче , но реализация осуществлена в VIsual Studio 2008



 

 

// управление курсором

// Программа отлажена в Visual Studio 2008 16.03.2010г

#include "stdafx.h"

#include<conio.h>

#include<stdio.h>

#include <windows.h> // обязательно!

 

#include<iostream>

using namespace std;

// функция устанавливает цвет текста и подложки в консоли (локальное)

void SetColor(int text, int background)

{

HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);

SetConsoleTextAttribute(hStdOut, (WORD)((background << 4) | text));

}

 

// функция позиционирует курсрор в точку (х, у)

void goto_xy (int x, int y)

{

COORD cd;// координаты курсора

HANDLE hd = GetStdHandle(STD_OUTPUT_HANDLE);

cd.X=x;

cd.Y=y;

SetConsoleCursorPosition(hd,cd);

}

 

int main()

{

int x,y,k;

int i,j,si,sj,maxx=79,maxy=24;

unsigned char c='\006', ch;

// Управление цветом - глобальное и локальное

 

//const int NotUsed = system("color 20");

// 2 - значение цвета фона, 0 - значение цвета текста

system("color 17");// 1-синий фон, 7-серые буквы глобально

i=maxx/2;j=maxy/2;

x=0;y=0; system("cls"); // очистка экрана

SetColor(14,1); // (локальное текст и фон)

goto_xy(2,24); cprintf("ESC to Exit");

goto_xy(i,j); putch(c);

 

si=i; sj=j; //старые координаты

while((ch=getch())!=27)

{

if(ch==0) //&& kbhit())

ch=getch();

switch(ch)

{

case 72: x=0;y=-1; break;

case 75: x=-1; y=0; break;

case 77: x=1; y=0; break;

case 80: x=0; y=1; break;

case 71: x=-1; y=-1; break;

case 73: x=1; y=-1; break;

case 79: x=-1; y=1; break;

case 81: x=1; y=1; break;

}

i+=x; j+=y;

if(i<1) {i=1; j++;}

if(i>maxx-1) {i=maxx-1;j++;}

if(j<1) {j=1;i++;}

if(j>maxy-1) {j=maxy-1;i++;}

goto_xy(si,sj); putch(' ');

goto_xy(i,j); putch(c);

si=i; sj=j; //старые координаты

}

//getch();

return 0;

}

 

 

Задача 128. Программа позволяет рисовать на экране разные фигуры, перемещая по экрану символ ª с кодом 006 (см. предыдущую задачу). Esc — конец.

 

//Программа отлажена в Borland C++ Builder 6 5.04.2008

#include <stdio.h>

#include <conio.h>

#include <dos.h>

#include <iostream.h>

 

int x, y, i, j, maxx=79, maxy=24;

unsigned char c='\002';

// функция рисования фигур,

// используя клавиши управления

put_mord(char ch)

{

switch (ch)

{

case 72: x=0; y=-1; break; // стрелка вверх

case 75: x=-1; y=0; break; // стрелка влево

case 77: x=1; y=0; break; // стрелка вправо

case 80: x=0; y=1; break; // стрелка вниз

case 71: x=-1; y=-1; break; // Home

case 73: x=1; y=-1; break; // Page Up

case 79: x=-1; y=1; break; // End

case 81: x=1; y=1; break; // Page Down

 

}

i+=x; j+=y;

if (i<1) {i=1; j++;}

if (i>maxx-1) {i=maxx-1;j++;}

if (j<1) {j=1;i++;}

if (j>maxy-1) {j=maxy-1;i++;}

gotoxy(i,j); putch(c);

Sleep(400);

}

void main()

{

unsigned char ch;

i=maxx/2;j=maxy/2;

x=0;y=0; textbackground(6);

textcolor(5); clrscr();

gotoxy(i,j); putch(c);

while ((ch=getch())!= 27)

{

if (ch==0)

ch=getch();

put_mord(ch);

}

getch();

}

 

 

Задача 129. Программа расставляет в случайно выбранных точках экрана ”фишки” — разноцветные символы с кодом 03. Далее программа дает возможность перемещать клавишами “стрелка влево ” и “стрелка вправо” вдоль нижней строки экрана “пушку” — символ с кодом 02 и сбивать фишки нажатием клавиши “стрелка вверх”. По завершении игры (нажать Esc) выдается сообщение о затраченном времени. Для генерации случайных чисел в среде Borland C++ Builder использована пара функций randomize() и random().

 

// Программа отлажена в Borland C++ Builder 6

// «стрелялка» на время!!!

// сбивать фишки, используя клавиши управления

// стрельба — по стрелке вверх

#include <stdio.h>

#include <stdlib.h>

#include <conio.h>

#include <dos.h>

int main()

{

int x,y,k;

int i,j,si,sj, maxx=79, maxy=24;

unsigned char c='\002', ch, c1='\03';

 

struct time t;

int s1, m1, h1,s2, m2, h2;

 

randomize(); textbackground(6);

i=maxx/2;j=maxy-1;

x=0; y=0;

clrscr();

 

for (k=1;k<18;k++)

{

textcolor(random(15));

gotoxy(random(79)+1,random(24)+1);

putch(c1);

}

textcolor(1);

gotoxy(i,j);

putch(c);

si=i; sj=j; //старые координаты

gettime(&t);

s1=t.ti_sec;

m1=t.ti_min;

h1=t.ti_hour;

while ((ch=getch())!=27)

{

if (ch==0)

ch=getch();

switch (ch)

{

case 72:

for (k=24;k>+0;k--)

{ gotoxy(i,k); //puts("Бабах");}

putch(' '); Sleep(120);

}

break;

case 75: x=-1; y=0; break;

case 77: x=1; y=0; break;

}

i+=x;

if (i<1) i=1;

if (i>maxx-1) i=maxx-1;

gotoxy(si,sj); putch(' ');

gotoxy(i,j); putch(c);

si=i; sj=j; //старые координаты

}

gettime(&t);

s2=t.ti_sec;

m2=t.ti_min;

h2=t.ti_hour;

printf("\nGAME START:\n %2d час %02d мин %02d сеk\n",h1, m1, s1);

printf("\nGAME OVER:\n %2d час %02d мин %02d сеk\n",h2, m2, s2);

getch();return 0;

 

}

 

 

Задача 130. Вычислить, сколько раз в строке встречается каждый ее символ. Каждый протестированный символ удаляется функцией delchr().

 

 

// Программа отлажена в Visual Studio 2008

#include "stdafx.h"

#include<conio.h>

#include <iostream>

#include <string.h>

using namespace std;

 

int delchr(char s1[],char ch)

{ int i=0,k=0;

while (s1[i])

{

if(s1[i]!=ch)

s1[k++]=s1[i];

i++;

}

s1[k]=0;

return (i-k); //количество удаленных символов

}

 

int main()

{ char s1[30],ch; char s2[30];

// Устанавливаем локализацию для выходного потока

wcout.imbue(locale("rus_rus.866"));

// Выводим строку на русском!

wcout<< L"Введите строку ";

gets(s1); strcpy (s2, s1);

while (ch=s1[0]) //символы "наплывают" на 0 после удаления

{

wcout<<L"символ "<<ch<<L" встречается "

<<delchr(s1, ch)<<L" раз\n";

}

puts(s2);

getch();return 0;

}

 

 

Задача 131. Программа определяет, какой из символов строки встречается в ней наиболее часто. Каждый протестированный символ удаляется функцией delch().

 

 

// какая из букв встречается наиболее часто

// Программа отлажена в Visual Studio 2008

#include<conio.h>

#include<stdio.h>

#include <iostream>

using namespace std;

 

 

void delch (char s1[],char ch)

{

int i=0,k=0;

while (s1[i])

{

if(s1[i]!=ch)

{

s1[k]=s1[i];

k++;

}

i++;

}

s1[k]=0;

}

 

int main()

{

char s1[80]; int max=0;

int i,k; char ch,c;

 

puts("Введи строку"); gets(s1);

while ((ch=s1[0])!='\0')

{

i=0; k=0;

while (s1[i])

{

if(s1[i]==ch)

k++;

i++;

}

if (k>max)

{

max=k;

c=ch;

}

 

delch (s1,ch);

}

if(max!=1)

cout<<"Символ "<<c<<" встречается наибольшее число раз-"<<max;

else

cout<<"Все символы равноправны"

;

getch();return 0;

}

 

 

Задача 132. Программа определяет в строке самую длинную цепочку повторяющихся подряд символов.

// Программа отлажена в Visual Studio 2008

#include<conio.h>

#include<stdio.h>

#include <iostream>

using namespace std;

 

int main()

{

int i,m,j; char s1[80];

i=j=m=1;

printf("введи cтроку\n");

gets(s1);

while(s1[i])

{

if(s1[i]==s1[i-1])

j++;

else

{ if(j>m)

m=j;

j=1;

}

i++;

}

printf(" max = %d raz\n", (j>m)? j: m);

getch(); return 0;

}

 

Задача 133. Вводится строка, состоящая из 5 разных символов. Вывести на экран все их возможные перестановки и количество таких перестановок.

 

// Программа отлажена в Visual Studio 2008

#include<conio.h>

#include<stdio.h>

#include <iostream>

using namespace std;

 

int main()

{

 

char s[6]="12345";

int i, j, k, l, m, n=0;

char a, b, c, d, e;

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

{

a=s[i];

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

{

b=s[j];

for(k=0; k<5; k++)

{

c=s[k];

for(l=0; l<5; l++)

{

d=s[l];

for(m=0; m<5; m++)

{

e=s[m];

if(a!=b&&a!=c&&a!=d&&a!=e&&b!=c&&

b!=d&&b!=e&&c!=d&&c!=e&&d!=e)

{

n++;

cout<<a<<b<<c<<d<<e<<"\n";

}

}

}

}

}

}

cout<<" Всего вариантов: "<<n;

 

getch(); return 0;

}

 

 

Задача 134. Вводится строка, начинающаяся, может быть, с пробелов. Посчитать, сколько букв содержит её первое слово. Вывести на экран это слово и количество букв.

#include <stdlib.h>

#include <iostream.h>

#include <conio.h>

#include <stdio.h>

#include <math.h>

#include <dos.h>

void main()

{

clrscr();

char s1[40];

int k=0, i=0;

cout<<"Введи строку ";

gets(s1);

while (s1[i]==' ')

i++;

while (s1[i]!=' '&&s1[i]!=0)

{

k++;

i++;

}

s1[i]=0;

puts(s1);

cout<<"В первом слове "<<k<<" букв!";

getch();

}

 

 

Задача 135. Слова в заданной фразе отделены друг от друга несколькими пробелами. Программа позволяет найти и выдать на экран слова, которые начинаются на заданную букву (здесь — «s»).

#include <stdio.h>

#include <conio.h>

#include <stdlib.h>

#include <dos.h>

void main()

{

char s1[30];

int i; char ch;

clrscr();

puts("Введи строку с пробелами между словами ");

gets(s1);

puts(s1);

ch='s';

i=0;

while (s1[i]!='\0')

{

while (s1[i] == ' ')

i++;

if (s1[i]==ch)

while (s1[i]!=' '&& s1[i]!=0)

putchar(s1[i++]);

Else

while (s1[i]!=' '&& s1[i]!=0)

i++;

}

getch();

}

 

 

Задача 136. Слова в заданной фразе отделены друг от друга несколькими пробелами. Программа печатает те слова, которые заканчиваются заданной буквой.

# include<stdio.h>

# include<conio.h>

main()

{

char S[80];

int i=0; char ck,c;

clrscr();

puts("Введи строку с пробелами");

gets(S);

i=0;

puts("Введи букву");

c=getchar();

while (S[i]) i++;

while (--i>0) //i>=0 не работает для одного слова

{

while (S[i]==' ')

i--;

S[i+1]='\0';

ck=S[i];

while (S[i]!=' ' && i>0) // первое слово!

i--;

if (ck==c)

puts(&S[i]); // с ведущим пробелом...

}

getch();

}

 

 

Задача 137. Слова в заданной фразе отделены друг от друга несколькими пробелами. Программа печатает те слова, которые начинаются и заканчиваются одинаковой буквой.

#define L 80

#include <stdio.h>

#include <conio.h>

void main()

{

char S1 [L];

int k,i=0,nw,kw;

clrscr();

puts ("Введи фразу, слова отделены пробелами");

gets (S1);

while (S1[i])

{

while (S1[i]==' ')

i++;

 

nw=i;

 

while (S1[i]!=' '&& S1[i]!='\0')

i++;

 

kw=i-1;

if (S1[nw]==S1[kw])

{

for (k=nw;k<=kw;k++)

putchar(S1[k]);

putchar ('\n');

}

}

getch();

}

 

 

Задача 138. Слова в заданной фразе отделены друг от друга несколькими пробелами Программа меняет в каждом слове заданной строки порядок букв на противоположный (обращает в строке каждое слово).

// Программа отлажена в Visual Studio 2008

#include <iostream>

using namespace std;

#include <stdio.h>

 

int main()

{

char r, s1[80]; int nw,kw,i=0;

puts ("INPUT STRING ");

gets(s1);

while(s1[i])

{ //пропуск пробелов до слова

while(s1[i]==' ') //&&s1[i])-не обязательно!

i++;

nw=i;

//пропуск слова

while(s1[i]!=' ' && s1[i]!='\0')

i++;

kw=i-1;

//переворот

while(kw>nw)

{

r=s1[nw];s1[nw]=s1[kw];

s1[kw]=r;kw--;nw++;

}

}

puts(s1); return 0;

}

 

 

Задача 139. Программа пересылает из заданной строки S1 цифры в строку S2, а латинские буквы - в строку S3. Используется функция.

#include <iostream.h>

#include <conio.h>

#include <stdio.h>

void buk_zufr(char s1[], char s2[], char s3[])

{

int i=0,k=0,t=0;

while (s1[i]!='\0')

{

if (s1[i]>'0' && s1[i]<'9')

s2[k++]=s1[i];

Else

if ((s1[i]>'A' && s1[i]<'Z') || (s1[i]>'a' && s1[i]<'z'))

s3[t++]=s1[i];

 

i++;

}

s2[k]='\0';

s3[t]='\0';

}

void main()

{

char s1[20],s2[20],s3[20];

clrscr();

puts("Vvedi ctroky");

gets(s1);

buk_zufr(s1,s2,s3);

puts(s2);

puts(s3);

getch();

}

 

 

Задача 140. Программа пересылает символы строки S1 в строку S2 в обратном порядке, а затем сцепляет S1 и S2, образуя палиндром.

#include <iostream.h>

#include <conio.h>

#include <stdio.h>

#include <string.h>

void make_palindrom(char s1[], char s2[])

{

int i=0,k=0;

while (s1[i]!='\0')

i++;

i--;

while (i>=0)

s2[k++]=s1[i--];

s2[k]='\0';

strcat(s1,s2);

}

void main()

{

char s1[80],s2[20];

clrscr();

puts("Vvedi ctroky");

gets(s1);

make_palindrom(s1,s2);

puts(s1);

getch();

}

 

 

Задача 141. Программа использует собственную функцию del() и стандартную функцию strcat() для удаления из заданной строки S[ ] подстроки длиной L символов, начиная с символа с номером K.

 

// Программа отлажена в Visual Studio 2008

#include<conio.h>

#include<stdio.h>

#include <iostream>

using namespace std;

 

void del(char s[], int k, int l)

{

int n=strlen(s);

if(k>n)

return;

s[k]='\0'; //начало удаляемой подстроки

if(k+l>=n)

return; //удаляем "хвост" строки

strcat(s,&s[k+l]); //сцепление

}

 

int main()

{

int k,l; char s[40];

// Устанавливаем локализацию для выходного потока

wcout.imbue(locale("rus_rus.866"));

// Выводим строку на русском!

wcout << L"Введи строку "; gets(s);

wcout << L"Введи k и l "; scanf("%d %d",&k,&l);

del(s,k-1,l);

puts(s);

getch();return 0;

}

 

Задача 142. Решается та же проблема, что и в предыдущей задаче, но функция strcat() не используется.

// Программа отлажена в Visual Studio 2008

#include "stdafx.h"

#include<conio.h>

#include<stdio.h>

#include <iostream>

using namespace std;

 

void del(char s[], int k, int l)

{

int n=strlen(s),i,j;

if(k>n)

return;

s[k]='\0'; //начало удаляемой подстроки

if(k+l>=n)

return; //удаляем "хвост" строки

i=k; j=k+l;

while(s[i++]=s[j++]); //сцепление

}

 

int main()

{

int k,l; char s[40];

// Устанавливаем локализацию для выходного потока

wcout.imbue(locale("rus_rus.866"));

// Выводим строку на русском!

wcout << L"Введи строку "; gets(s); ///endl;

wcout << L"Введи k и l "; scanf("%d %d",&k,&l);

del(s,k-1,l);

puts(s);

getch();return 0;

}

 

 

Задача 143. Программа вводит последовательно целые десятичные числа (Q-конец работы) и с помощью функции itobs() преобразует последовательность двоичных цифр числа в эквивалентную строку символов. Программа не зависит от размера данных типа int и может без всяких переделок использоваться в операционных системах, где данные типа int имеют различную длину.

// Программа отлажена в Visual Studio 2008

 

#include<stdio.h>

#include <iostream>

using namespace std;

 

 

const int size=8*sizeof(int);

//заполнение строки с конца

void itobs(int n, char bs[])

{

for (int i=size-1; i>=0; i--)

{

bs[i]=(n & 1)+'0';

n>>=1;

}

bs[size]='\0';

}

 

int main()

{

 

char str1[size+1]; setlocale(NULL, ".1251");

int num; printf("Введи число или Q ");

while (scanf("%d",&num)==1)

{

itobs (num,str1);

printf ("%d будет %s \n",num,str1);

printf("Введи число или Q ");

}

return 0;

}

 

Задача 144. Слова в заданной фразе отделены друг от друга несколькими пробелами. Удалить из строки те слова, в которых есть одинаковые буквы. Проверку наличия в слове одинаковых букв реализует функция YES_NO().

 

// Программа отлажена в Visual Studio 2008

#include "stdafx.h"

#include <stdio.h>

#include <string.h>

#include <iostream>

#include <conio.h>

using namespace std;

int YES_NO(char s[])

{

int i,j,k; char c;

k=strlen(s);

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

{

c=s[i];

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

if(c==s[j]) //буква повторяется

return(0);

}

return(1);

}

 

int main()

{

int i=0,j,n;

char s1[]=" мама мыла раму мылом ", word[15];

static char s2[]="";

puts(s1);

while(i < strlen(s1))

{

//пропуск пробелов перед словом

while(s1[i]==' ')

i++;

j=0;

//выделение слова

while(s1[i]!= ' ' && s1[i]!= '\0')

word[j++]=s1[i++];

//конец слова

word[j++]=' '; word[j]='\0';

puts(word);

//если нет повторяющихся букв

if(YES_NO(word))

strcat(s2,word); //сцепление слов

}

puts(s2);

getch();return 0;

}

 

Задача 145. Создать функцию, определяющую, состоят ли два заданных слова из одинаковых литер и отличаются, быть может, только их порядком (таковы, например, слова абракадабра и барадакбара).

 

// Программа отлажена в Visual Studio 2008

#include <stdio.h>

#include <conio.h>

#include <string.h>

 

// Сортировка литер

void ch_sort(char a[])

{ int i,k,n=strlen(a);char p;

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

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

if(a[i]>a[k])

{

p=a[i];

a[i]=a[k];

a[k]=p;

}

}

 

// Функция проверяет, состоят ли 2 слова из одинаковых букв

// возвращает значение типа bool

 

bool twoword(char s1[], char s2[])

{

ch_sort(s1); ch_sort(s2);

// puts(s1); puts(s2);

if (strcmp(s1,s2))

return false;

else

return true;

}

 

//основная

int main()

{

char s1[]="арбадакарба",

s2[]="барадакбара";

 

if(twoword(s1,s2))

puts("cлова из одинаковых литер_YES");

else

puts("cлова из неодинаковых литер_NO");

getch();return 0;

}

 

Массивы строк

 

 

Для создания массива строк используется двумерный символьный массив, в котором размер левого индекса определяет количество строк, а размер правого - максимальную длину каждой строки. Например, при выполнении следующей инструкции объявляется массив, предназначенный для хранения 10 строк длиной 80 символов.

 

char str_mas[10][80];

 

Для доступа к отдельной строке достаточно указать только левый индекс. Например, следующая инструкция вызывает функцию gets() для записи третьей строки массива str_mas.

 

gets(str_mas[2]);

 

Для получения доступа к четвертому символу третьей строки достаточно написать

 

cout<<str_mas[2][5];

 

 

Задача 146. В следующей программе демонстрируется использование массива строк при реализации расчета зарплаты служащих с повременной оплатой и вывода ведомости на получение зарплаты с сортировкой их фамилий по алфавиту.

#include <stdlib.h>

#include <iostream.h>

#include <conio.h>

#include <stdio.h>

#include <math.h>

#include <dos.h>

#include <string.h>

const int m=5, int L=40;

void main()

{

clrscr();

int k, i, j;

char rab[L];

char fio[m][L]={"Иванов", "Андреев", "МакДональд", "Петров", "Ващенко"};

float tarif[m], salary[m];

int work[m];

// Сортировка списка фамилий по алфавиту.

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

for (j=i+1; j<m; j++)

if (strcmp(fio[i], fio[j])>0)

{

strcpy(rab, fio[i]);

strcpy(fio[i], fio[j]);

strcpy(fio[j], rab);

}

for (k=0; k<m; k++)

cout<<fio[k]<<"\n";

// Расчет зарплаты по тарифу и отработанным часам.

k=0;

puts(" Введи тариф и количество отработанных часов ");

while (k<m)

{

puts(fio[k]);

cout<<" Тариф: ";

cin>>tarif[k];

cout<<" Отработанно часов: ";

cin>>work[k];

salary[k]=tarif[k]*work[k];

k++;

}

puts("");

puts(" Ведомость на выдачу зарплаты ");

puts("");

for (k=0; k<m; k++)

printf(" %-25s %12.2f\n", fio[k], salary[k]);

getch();

}

 

 

Задача 147. Программа осуществляет статистическую обработку сведений о сдаче сессии студентами группы. Фамилии студентов хранятся в массиве строк fio[M][Lstr], а оценки каждого по N (N=4) предметам — в двумерном массиве session [M][N]. Программа, в частности, печатает фамилии тех, у кого есть двойки и их количество, а также предмет, по которому студенты имеют наибольшее количество двоек.

// Программа отлажена в Visual Studio 2008

#include "stdafx.h"

#include<conio.h>

#include<stdio.h>

#include <iostream>

#include<string.h>

using namespace std;

const int M=5, N=4, LStr=20;

// сортировка строк использование strcpy(),strcmp()

void sor(char fio[][LStr], int count)

{ char rab[LStr]; int i,k;

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

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

if (strcmp(fio[i],fio[k])>0)

{

strcpy(rab, fio[i]);

strcpy(fio[i], fio[k]);

strcpy(fio[k], rab);

}

}

 

 

int main()

{

// Устанавливаем локализацию для выходного потока

wcout.imbue(locale("rus_rus.866"));

char fio[M][LStr]={"IVANOV","PETROV","WASECHKIN","SIDOROV","AKSAKOV"};

float mark[M][N]; int i,k,test, max, p[N-1], predmet;

//********************

sor(fio,M);

//********************

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

{

wcout<<L"Введи оценки студента по фамилии "<<fio[i]<<"\n";

wcout<<L"математика: "; cin>>mark[i][0];

wcout<<L"информатика: "; cin>>mark[i][1];

wcout<<L"экономика: "; cin>>mark[i][2];

}

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

mark[i][N-1]=(mark[i][0]+mark[i][1]+mark[i][2])/(N-1);

 

wcout<<L"\n\n Результаты сдачи экзаменов";

wcout<<L"\n\nФамилия Матем Информ Эконом Ср.балл \n";

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

printf ("\n%-15s %-10.0f %-10.0f %-10.0f %-10.2f",fio[i],

mark[i][0],mark[i][1],mark[i][2],mark[i][3]);

wcout<<L"\n\nЭти cтуденты позорят наш ВУЗ:";

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

{

test=0;

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

if (mark[i][k]==2)

test++;

if (test!=0) wcout<<"\n\t"<<L"У "<<fio[i]<<L"а двоек - "<<test;

}

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

{

p[k]= 0; max = 0;

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

if (mark[i][k]==2) p[k]=p[k]+1;

if (p[k]>max)

{ max=p[k];

predmet=k;

}

}

wcout<<L"\n\nБольше всего двоек ";

switch (predmet)

{

case 0:wcout<<L" по математике";

break;

case 1:wcout<<L" по информатике";

break;

case 2: wcout<<L" по экономике";

break;

}

wcout<<L", а именно "<<max<<L" шт.\n";

getch();return 0;

}

 

 


Задачи для самостоятельного решения

 

1. Ввести два слова. Напечатать их в алфавитном порядке.

 

2. В заданной строке символов удалить разделители: пробелы, запятые, тире.

 

3. Дан текст, содержащий не более 120 символов. Напечатать сначала все цифры, входящие в него, затем прописные латинские и русские буквы, а потом все остальные символы.

 

4. Составить программу, которая в заданной строке символов подсчитывает количество вхождений:

а) каждой из букв латинского (русского) алфавита;

б) каждой из цифр.

 

5. Определить, сколько раз в заданном тексте встречается каждая из его литер.

 

6. Удалить из заданного текста «лишние» пробелы, оставив между словами по одному пробелу.

 

7. Удалить из заданной фразы текст, заключённый в круглые скобки (вместе со скобками). Результат выдать на экран.

 

8. Ввести текст, в котором слова отделяются друг от друга пробелами. Вывести на экран последнее слово наоборот.

 

9. Дан текст, содержащий только буквы. Определить, симметричен ли он, т.е. читается ли он одинаково слева направо и справа налево (например, текст «пилвино онивлип» симметричен).

 

10. Составить программу, которая в заданной строке удваивает каждую его букву (например, из слова ‘база’ должно получиться ‘ббааззаа’).

 

11. Ввести строку символов S1. Построить новую строку S2, полученную из S1 добавлением после каждого символа ‘ * ’ цепочки символов из k пробелов. Считается, что натуральное число k > 0 задано.

 

12. Составить программу для игры в ‘поле чудес’ (угадывание слова путём постепенного добавления по одной букве).

 

 



Поделиться:


Последнее изменение этой страницы: 2016-12-16; просмотров: 347; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.224.0.25 (0.004 с.)