По массиву - если подразумевался не динамический с рандомным заполнением в диапазоне от 0 до 100, то как-то так:
Показать скрытый текст поглядеть
#include <iostream>
#include <time.h>
#include <stdlib.h>
int *init_array(int* ar, const int size);
void show_max_elem(int* ar, const int size, int count);
int main()
{
const int size = 200;
int ar[size] = {};
int count = 10;
srand(time(0));
init_array(ar, size);
show_max_elem(ar, size, count);
return 0;
}
int *init_array(int* ar, const int size)
{
for(int n = 0; n < size; n++)
{
ar[n] = rand() % 101;
std::cout << "["<< n << "] " << ar[n] << std::endl; //выводит весь массив, можно закомментить
}
std::cout << std::endl;
return ar;
}
void show_max_elem(int* ar, const int size, int count)
{
int sum = 0, max = 0;
for(int i = 0; i < count; ++i)
{
sum += ar[i];
}
max = sum;
int first = 0, last = count;
for(int i = count; i < size; ++i)
{
sum += ar[i];
sum -= ar[i - count];
if(sum > max)
{
max = sum;
first = i - count + 1;
last = i;
}
}
std::cout << std::endl << "Max sum is between " << first << " and " << last << " elements and = " << max << std::endl;
}
Над первым долго втыкала а чего ж там нужно-то...
Если имелось в виду, что нужно ввести некое число и посмотреть какое по счету на него попадает слово, то как-то так:
Показать скрытый текст поглядеть
#include <iostream>
#include <string.h>
int word_num(char *str, int num);
int main()
{
char str[100] = {};
std::cin.getline(str, 99);
int num = 0;
std::cin >> num;
std::cout << word_num(str, num) << std::endl;
return 0;
}
int word_num(char *str, int num)
{
char *symb = str + num;
int word_numb = 0;
while (symb != str)
{
while (symb != str && *symb == ' ')
{
--symb;
}
if (symb == str)
{
return word_numb;
}
++word_numb;
while (symb != str && *symb != ' ')
{
--symb;
}
}
return word_numb;
}
Или имелось в виду найти число вхождений слова в строке?
Социальные закладки