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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.12.2014, 17:24   #1
Ans797
Пользователь
 
Регистрация: 01.11.2014
Сообщений: 12
По умолчанию Си. Вызов функций

Добрый вечер)
Помогите, пожалуйста. Есть программа, которая при вводе символа должна выдать его двоичный код и код, полученный перестановкой битов в байте (первый - с последним, второй - предпоследний...) и производит запись в файл. Но при вызове, функция перевода в двоичное немного не работает Помогите найти ошибку
Код:
#include<stdio.h>
#include<conio.h>
#include<locale.h>
#include<stdlib.h>
#include<math.h>
#define N 10
int dvoich(unsigned int s);
int main()
{
	FILE *tfile;
	char s[N];
	int i=0, mas[8];
	setlocale(LC_ALL, "Russian");
	tfile=fopen("filefor.txt","w");
	if (tfile==NULL)
	{ printf("Не удалось открыть файл");
	_getch();
	exit (1); }
	printf("Введите 10 символов: \n");
	scanf("%s", &s);
	for (i=0; i<N; i++)
	{ mas[i]=dvoich((unsigned int)s[i]);
		printf("\n%d\n", mas[i]); }
for(i = 0; s[i]; i++)
   { s[i] = ((s[i] >> 7) & 1) | (s[i] << 7) |
           ((s[i] >> 5) & 2) | ((s[i] << 5) & 64) |
           ((s[i] >> 3) & 4) | ((s[i] << 3) & 32) |
           ((s[i] >> 1) & 8) | ((s[i] << 1) & 16);}
printf("\nНовый символ: '%s'\n, binary code: %d\n", s, dvoich((unsigned int) s));
fprintf(tfile,"Finish Number: %d", s);
fclose(tfile);
_getch();
return 0;
}
int dvoich (unsigned int s)
{
	int i, a, b=0, mas_b[8];
	for (i=0; s>0; i++)
	{
		a=s%2;
		s=(s-a)/2;
		mas_b[8-i]=a;
	}
	for(i=0; i<8; i++)
		printf("%d", mas_b[i]);
	_getch();
	return *mas_b;
}
Ans797 вне форума Ответить с цитированием
Старый 10.12.2014, 18:53   #2
Smogg
Участник клуба
 
Регистрация: 14.06.2011
Сообщений: 1,138
По умолчанию

mas_b[8] - не статический

Последний раз редактировалось Smogg; 10.12.2014 в 19:02.
Smogg вне форума Ответить с цитированием
Старый 10.12.2014, 18:53   #3
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,429
По умолчанию

Не проверял:
Код:
#include<stdio.h>
#include<conio.h>
#include<locale.h>
#include<stdlib.h>
#include<math.h>

#define N 11

int main()
{
    FILE *tfile;
    char s[N];
    int i, j;
    setlocale(LC_ALL, "Russian");
    tfile = fopen("filefor.txt", "w");
    if (tfile == NULL) {
        printf("Не удалось открыть файл");
        _getch();
        exit (1);
    }
    printf("Введите 10 символов:\n");
    scanf("%s", s);
    s[10] = 0;
    for(i = 0; s[i]; i++) {
        printf("Старый символ: ");
        for(j = 7; j >= 0; j--)
            printf("%d", (s[i] >> j) & 1);
        s[i] = ((s[i] >> 7) & 1) | (s[i] << 7) |
               ((s[i] >> 5) & 2) | ((s[i] << 5) & 64) |
               ((s[i] >> 3) & 4) | ((s[i] << 3) & 32) |
               ((s[i] >> 1) & 8) | ((s[i] << 1) & 16);
        printf(" Новый символ: ");
        for(j = 7; j >= 0; j--)
            printf("%d", (s[i] >> j) & 1);
        printf("\n");
    }
    fprintf(tfile, "%s", s);
    fclose(tfile);
    _getch();
    return 0;
}
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 10.12.2014, 19:31   #4
Ans797
Пользователь
 
Регистрация: 01.11.2014
Сообщений: 12
По умолчанию

точно...
СПАСИБО БОЛЬШОЕ
Ans797 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вызов функций из Dll Mik92 Общие вопросы Delphi 2 19.09.2014 19:00
Определение и вызов функций в C++ Джин-ТоНиК Помощь студентам 1 01.12.2012 10:34
Вызов функций на Ассемблере в программе на С++ РагнаР Общие вопросы C/C++ 1 30.05.2011 16:15
объявление функций и вызов SnOoPKa Общие вопросы C/C++ 3 30.01.2011 01:53
Повторный вызов функций Roman Общие вопросы C/C++ 1 10.06.2009 14:48