Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.10.2012, 10:45   #1
mobydick
Пользователь
 
Регистрация: 18.10.2012
Сообщений: 13
Восклицание не получается дописать код С

Задано вектор Т(n), n<=12. Сформировать вектор У с элементов вектора Т[i], которые стоять спереди наибольшего элемента вектора Т. + нужно сдвинуть полученный массив вправо на одну позицию.
Код:
#include <stdio.h>
#include <string.h>
int main()
{
    int T[12];
    unsigned int i,n,max=0;
    printf("vvedite kol-vo elementov massyva T (<=12):\n");
    scanf("%i",&n);
    printf("vvedite elementy massyva:\n");
    for (i=0;i<n;i++)
    {
        scanf("%i",&T[i]);
    }
printf("Massyv T:\n ");
for (i=0; i<n; i++) printf("%i ",T[i]);
for (i=0;i<n;i++)
if (T[i]>=max) {T[i]=max;}
printf("\n%i - maximalnii element massyva",max);
 
return 0;
}
но програма не может найти макс. елемент массива, и поэтому дальше не работает .
2.Узнать, сколько раз в ряде встречается заданное слово.
Код:
#include <stdio.h>
#include <string.h>
int main()
{
    int i=0,k=0,y;
    char s[50], w[50];
    printf("enter string: \n");
    gets(s);
    printf("enter finding word: \n");
    scanf("%s",w);
    y=strlen(s);
    for (i=0; i<=y; i++)
    if (s[i]==w[i]) k++;
    if (k>=1) printf("%i times",k-1); else printf("word does not exist"); 
    return 0;
}
но место того, что бы считать сколько раз введенное слово присутсвует в строке, она считает сколько букв в 1 слове (если его ввести как переменную w).
mobydick вне форума Ответить с цитированием
Старый 21.10.2012, 09:23   #2
three_cats
Форумчанин
 
Аватар для three_cats
 
Регистрация: 27.09.2012
Сообщений: 175
По умолчанию

В первой задаче нужно поменять местами max и T[i]:

Код:
if (T[i]>=max) {max = T[i];}
printf("\n%i - maximalnii element massyva",max);
И нужно использовать векторы, а не массивы.
Никто

мой блог
three_cats вне форума Ответить с цитированием
Старый 21.10.2012, 10:35   #3
mobydick
Пользователь
 
Регистрация: 18.10.2012
Сообщений: 13
По умолчанию

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

Код:
#include <stdio.h>
#include <string.h>
int main()
{
	int T[12], Y[12];
	unsigned int i,n,max=0;
	printf("vvedite kol-vo elementov massyva T (<=12):\n");
	scanf("%i",&n);
	printf("vvedite elementy massyva:\n");
	for (i=0;i<n;i++)
	{
		scanf("%i",&T[i]);
	}
printf("Massyv T:\n ");
for (i=0; i<n; i++) printf("%i ",T[i]);
for (i=0; i<n; i++)
if (max <= T[i]) {max = T[i];}
printf("\n%i - maximalnii element massyva\n",max);
for (i=0; i<n; i++)
if (max > T[i])  {Y[i] = T[i];}
printf("Massyv Y:\n ");
for (i=0;i<n;i++) printf("%i ",Y[i]);
return 0;
}
вот доработал, но в векторе У показывает большое число (хз откуда оно вообще взялось)

Последний раз редактировалось Stilet; 21.10.2012 в 16:33.
mobydick вне форума Ответить с цитированием
Старый 21.10.2012, 10:55   #4
mobydick
Пользователь
 
Регистрация: 18.10.2012
Сообщений: 13
По умолчанию

все, разобрался с 1 задачей.
mobydick вне форума Ответить с цитированием
Старый 21.10.2012, 15:44   #5
three_cats
Форумчанин
 
Аватар для three_cats
 
Регистрация: 27.09.2012
Сообщений: 175
По умолчанию

Вектор - это не одномерный массив. Для них есть специальная библиотека vector. С ним производится работа как со стеком.

Объявляется он, например, так:

Код:
vector<integer> v;
Вносятся значения так:

Код:
for (int i = 0; i < v.size(); i++)
   v.push_back(i);
"Выталкиваются" так:
Код:
v.pop_back(12);
Никто

мой блог

Последний раз редактировалось three_cats; 21.10.2012 в 15:48.
three_cats вне форума Ответить с цитированием
Старый 21.10.2012, 20:44   #6
mobydick
Пользователь
 
Регистрация: 18.10.2012
Сообщений: 13
По умолчанию

на счёт задачи с поиском слов, кое что дописал :
Код:
#include <stdio.h>
#include <string.h>
int main()
{
	int y, i=0, k=0;
	char s[50], w[50], t[1]=" ",*n;
	printf("enter string (<=5 words): \n");
	gets(s);
	printf("enter finding word: ");
	scanf("%s",w);
	y=strlen(s);
	n=strtok(s,t);
	while(n)
	{
	    k++;
	    puts(n);
	    n=strtok(NULL,t);
	}
	printf("meet, %i, times",k);
getch();
}
но оно работает наоборот, как исправить?
mobydick вне форума Ответить с цитированием
Старый 21.10.2012, 21:32   #7
Somebody
Участник клуба
 
Регистрация: 08.10.2007
Сообщений: 1,185
По умолчанию

Цитата:
Сообщение от three_cats Посмотреть сообщение
Вектор - это не одномерный массив. Для них есть специальная библиотека vector.
Вектор - это не std::vector, а просто вектор. Тем более в C никакого vector не существует.
Цитата:
Сообщение от three_cats Посмотреть сообщение
С ним производится работа как со стеком.
...
Somebody вне форума Ответить с цитированием
Старый 22.10.2012, 10:08   #8
three_cats
Форумчанин
 
Аватар для three_cats
 
Регистрация: 27.09.2012
Сообщений: 175
По умолчанию

Цитата:
Сообщение от Somebody Посмотреть сообщение
Вектор - это не std::vector, а просто вектор. Тем более в C никакого vector не существует.

...
Ну да, ну да.
Никто

мой блог
three_cats вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно дописать Тетрис. Не получается. Mostransformer Паскаль, Turbo Pascal, PascalABC.NET 0 11.01.2012 20:05
Помогите дописать код.. CodeExpert Помощь студентам 3 09.11.2009 09:38
Дописать код в файл! Trol-100 Общие вопросы C/C++ 8 24.10.2009 17:49
Помогите в Builder 6 дописать код!!! bee_uk C++ Builder 7 29.05.2009 23:56
Помогите дописать код Черничный Общие вопросы Delphi 2 24.10.2008 00:08