Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

кр1 вариант 6

.doc
Скачиваний:
12
Добавлен:
01.04.2014
Размер:
466.94 Кб
Скачать

Задание №1

Сегментом называется непрерывная последовательность элементов массива. В неупорядоченном массиве целых чисел (как положительных, так и отрицательных) найти сегмент с максимальной суммой элементов.

Блок- схема функции main():

Листинг программы

#include <stdio.h>

#include <stdlib.h>

#include <conio.h>

#include <time.h>

#define SIZE 10

#define INVALID -9999

int main()

{

int i, j, seg1, seg2, sum, currSum, mas[SIZE];

clrscr();

printf("\n\n Array is:\n\n");

srand(time(NULL));

for(i=0; i<SIZE; i++) {

j=rand()%2;

if(j)

j=1;

else

j=-1;

printf("%5d", mas[i]=(rand()%100)*j);

}

sum=INVALID;

for(i=0; i<SIZE; i++) {

currSum=0;

for(j=i; j<SIZE; j++) {

currSum+=mas[j];

if(currSum>sum) {

seg1=i;

seg2=j;

sum=currSum;

}

}

}

printf("\n\n Result is:\n sum is: %d\n segment is: [%d; %d]\n\n\n ", sum, seg1+1, seg2+1);

getch();

return 0; }

Результат работы программы:

Задание №2

Имеется массив строк. На этом же месте, не заводя других массивов, записать слова в обратном порядке, рассматривая все строки, т.е первое слово первой строки станет последним словом последней строки ( если объединить строки, будет гораздо проще. Нужно учитывать, что в строке может не хватить места для очередного слово). Стандартных функций работы со строками не использовать.

Блок-схема функции main():

Листинг программы

#include <stdio.h>

#include <conio.h>

#define LN 5

#define CL 256

int main()

{

char chr, mas[LN][CL];

int i, j, k, m;

clrscr();

printf("\n\n Input your %d strings:\n\n", LN);

for(i=0; i<LN; i++) {

printf(" %2d) ", i+1);

gets(mas[i]);

}

for(i=0; i<LN; i++) {

k=0;

while(mas[i][k])

k++;

if(k)

k--;

j=0;

while(j<k) {

chr=mas[i][j];

mas[i][j]=mas[i][k];

mas[i][k]=chr;

j++;

k--;

}

j=0;

k=0;

while(mas[i][j]) {

while((mas[i][k]!=' ') && mas[i][k])

k++;

if(k)

k--;

m=k;

while(j<m) {

chr=mas[i][j];

mas[i][j]=mas[i][m];

mas[i][m]=chr;

j++;

m--;

}

j=k+1;

while(mas[i][j]==' ')

j++;

k=j;

}

}

for(i=0; i<LN/2; i++)

for(j=0; j<CL; j++) {

chr=mas[i][j];

mas[i][j]=mas[LN-1-i][j];

mas[LN-1-i][j]=chr;

}

printf("\n\n Result is:\n\n");

for(i=0; i<LN; i++) {

printf(" ");

j=0;

while(mas[i][j]) {

putchar(mas[i][j]);

j++;

}

putchar('\n');

}

printf("\n\n ");

getch();

return 0; }

Результат работы программы:

Соседние файлы в предмете Основы алгоритмизации и программирования