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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.04.2013, 16:39   #1
wanek2011
Новичок
Джуниор
 
Регистрация: 22.04.2013
Сообщений: 2
Вопрос не знаю в чём ошибка.

задание заключается в циклическом сдвиге n-мерного массива влево на s позиций. написал программу но выводит совсем не похожее на ответ...


Код:
#include <iostream>

#define n 9

using namespace std;


int main()
{

int i=0;
int s,t;
int mas[n];
cout<<"vvedite massiv:"<<endl;
for(int i=0;i<n;i++)
 {
   cin>>mas[n];
 }
cout<<"vvedite kolichestwo sdwigow:"<<endl;
cin>>s;
/////
if(s>n)
{
s=s%n;
}
////        
for(int k=0;k<s;k++)
{
 t=mas[0];
 for(int i=0;i<n-1;i++)
 mas[i]=mas[i+1];
 mas[n-1]=t;
}
for(int i=0;i<n;i++)
cout<<mas[i]<<endl;
cout<<endl;
system("pause");
return 0;
}
wanek2011 вне форума Ответить с цитированием
Старый 22.04.2013, 18:04   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,285
По умолчанию

Код:
for(int i=0;i<n;i++)
 {
   cin>>mas[n];
 }
Не mas[n], а mas[i].

Можно сделать "магически" (сдвиг сразу на s позиций, правда, не уверен на 100% в алгоритме):
Код:
#include <iostream>
#include <cstdlib>
#include <ctime>

#define n 9

using namespace std;

int
main()
{
    srand(time(NULL));
    int s;
    int mas[n];
    for(int i = 0; i < n; ++i) {
        mas[i] = rand() % 11 - 5;
        cout << mas[i] << " ";
    }
    cout << endl;
    cout << "Input count of shifts:" << endl;
    cin >> s;
    s %= n;
    int j = 0, start = 0, t1 = mas[start], count = 0;
    do {
        ++count;
        j = (j - s + n) % n;
        int t2 = mas[j];
        mas[j] = t1;
        t1 = t2;
        if (j == start) {
            j = ++start;
            t1 = mas[start];
        }
    } while (count < n);
    for(int i = 0; i < n; ++i) {
        cout << mas[i] << " ";
    }
    cout << endl;
    system("pause");
}
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 22.04.2013 в 19:59.
BDA вне форума Ответить с цитированием
Старый 22.04.2013, 20:19   #3
wanek2011
Новичок
Джуниор
 
Регистрация: 22.04.2013
Сообщений: 2
По умолчанию

спасибо) где где а вводе ошибки не ожидал)
wanek2011 вне форума Ответить с цитированием
Старый 23.04.2013, 11:09   #4
Yelen
Новичок
Джуниор
 
Аватар для Yelen
 
Регистрация: 23.04.2013
Сообщений: 3
По умолчанию

Ребят, помогите, я в вижуал не работала, не понимаю, ЧТО она от меня хочет...
Код C++
#include "pch.h"
#include "stdafx.h"
#include <stdio.h>
#include <iostream>


using std::cout;
int main()
{
cout<<"Hello, World!\n";
return 0;
}
говорит, что error C1083: Не удается открыть файл включение: stdafx.h: No such file or directory c:\users\sony\documents\visual studio 2012\projects\app1\app1\исходный код.cpp
и ещё вот эта ошибка появляется IntelliSense: не удается открыть источник файл "stdafx.h" c:\Users\Sony\Documents\Visual Studio 2012\Projects\App1\App1\Исходный код.cpp
может я при создании проекта что-то не указала?
это Visual Studio Express 2012
Yelen вне форума Ответить с цитированием
Старый 23.04.2013, 11:19   #5
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Если правильно помню, существует ограничение, что #include "stdafx.h" должен идти первым.
Также, если Вы при создании проекта сняли галочку с "Use precompiled headers", он не нужен вообще. Обсуждение на StackOverflow.
Abstraction вне форума Ответить с цитированием
Старый 23.04.2013, 11:44   #6
Yelen
Новичок
Джуниор
 
Аватар для Yelen
 
Регистрация: 23.04.2013
Сообщений: 3
По умолчанию

Галочки вроде бы не убирала, но тем не менее, если убираю stdafx, количество ошибок вырастает в разы, оттого что ставлю его первым, тоже ничего не изменяется
Вообще, какие обязательные директивы необходимы пусть даже для пустого приложения?
я имею ввиду Visual Studio
Yelen вне форума Ответить с цитированием
Старый 23.04.2013, 11:49   #7
Yelen
Новичок
Джуниор
 
Аватар для Yelen
 
Регистрация: 23.04.2013
Сообщений: 3
По умолчанию

компилятор пишет в предупреждении, что пропускает stdafx
warning C4627: #include "stdafx.h": пропущен при поиске использования предкомпилированного заголовка c:\users\sony\documents\visual studio 2012\projects\app1\app1\исходный код.cpp
Yelen вне форума Ответить с цитированием
Старый 23.04.2013, 12:25   #8
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Цитата:
Вообще, какие обязательные директивы необходимы пусть даже для пустого приложения?
я имею ввиду Visual Studio
Зависит от типа проекта.

Попробуйте создать новый проект. Скомпилируйте его, не меняя не единого символа, убедитесь, что компиляция завершается успешно (если это не так - налицо внутренняя ошибка в самой Studio). В сгенерированном файле с main замените имеющийся main... кстати, а почему у Вас main()? Вроде Studio для консольных приложений называет входную точку _tmain().
Abstraction вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
На чём написать такое? Не знаю, что освоить... Ivanushka1980 Свободное общение 25 12.01.2012 23:17
Непонятная ошибка.Не знаю даже в чём дело. PHP наверно Зелёный PHP 6 15.11.2011 19:17
Не знаю в чём ошибка.. Newbie. Помощь студентам 5 26.04.2011 19:56
Не знаю в чём проблема, в сетевой карте, или в винде Altera Компьютерное железо 11 11.11.2009 15:21
Не знаю в чём проблема Castro Паскаль, Turbo Pascal, PascalABC.NET 5 24.12.2008 01:38