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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.04.2009, 00:05   #1
KOLYTFR
Пользователь
 
Регистрация: 26.04.2009
Сообщений: 17
По умолчанию C++ функции

Задание: Написать функцию, каторая возвращает число полученное из целого числа X, в катором инвертированы n розрядов, начиная з позиции P, а остальные розряды оставлены без изменений(крайний правый бит считать нулевым за номером). Праверить правильность значений n и P.

Я сам в функциях мало что понимаю. Друг подсказал такое:
Код:
#include "stdafx.h"



int Razmer(int і)
{
    int е = 1 ; 
	int n = 1 ;
    for (int k = 0; k < 1000; k++)
	{
	int e ;
	for ( ; n < e*2; n++)
	{
		int i ;
        if (i == n)
        {
	    return k+1 ;
		}
	}
	e = e*2 ;
	}
    return 0;
}

int Vuvid(int i,int size)
{
	int um ;
    char ch[size] ;
    for (int k = 0; k < size; k++)
    {
        ch[k] = i%2 ;
	    int і = i/2 ;
	}

	for (int k = size; 1 <= k; k--)
	{
        printf("%i", ch[k-1]);
	}

    printf("\n");
	return 0;
}

int _tmain(int argc, _TCHAR* argv[])
{
    printf("Vvedite chislo x ");
    int a;
    scanf("%i", &a);
    Vuvid (a, Razmer(a));

    printf("Vvedite sdvig ");
    int sdvig = 2;
    scanf("%i", &sdvig);
    printf("Vvedite nomer");
    int nomer = 3;
    scanf("%i", &nomer);

    int pozic =1;
    int invert = 0xFFFF;
	    for (int j = 1; j <= sdvig; j++)
	    {
		    int і ;
            for (int і = 1; і <= nomer; i++)
	        {
	            if (nomer == i)
	            {
                pozic = pozic^invert;
	            a = a^pozic;
	            a = a^invert;
	            printf("\n%i", a);
	            }
	        pozic = pozic*2;
            }

            nomer++;
 	        pozic = 1;
        }

    Vuvid(a, Razmer(a));
    scanf("%i", &a);
}
Но вылетает ошыбка на 28ом и 63ем рядках. Кто поможет буду очень презнателен.
KOLYTFR вне форума Ответить с цитированием
Старый 27.04.2009, 09:33   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Но вылетает ошыбка на 28ом и 63ем рядках
А ошибку написать? Мы что рядки считать должны?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Функции на СИ tanek Помощь студентам 1 08.04.2009 17:43
функции surovii Помощь студентам 10 28.03.2009 13:12
Функции. Передача массива в качестве параметра функции. Wia Помощь студентам 2 17.03.2009 14:57
Функции Pedro Общие вопросы Delphi 5 08.11.2007 15:39