Задача на побитовые операции (Си)

Тема в разделе "C/C++/C#", создана пользователем Oleg306, 1 янв 2011.

  1. Oleg306

    Oleg306 Гость

    Всех форумчан с новым годом!

    Помогите решить задачу в Си:
    Перемножить элементы массива целых чисел, коды которых содержат в 6-м бите 0. Из результата выделить младший байт и определить символ, которому он соответствует(если он существует).

    То, что я пытался написать :
    Код (Text):
    #include <stdio.h>
    #include <conio.h>
    #include <stdlib.h>
    int funk(int a[])
    {int i,temp=0,l=0,d;
    unsigned long k=1;
    clrscr();
    for(i=0;i<10;i++)
    {temp=a[i];
    d=temp>>5;
    k=k*temp;}
    printf("%u\n",k);
    l=(a[i]>>8);
    return l;}
    int main()
    {int a[10]={1,2,3,4,5,6,7,8,9,10};
    int i=0,j;

    i=funk(a);
    printf("%c",i);


    getch();
    return 0;
    }
     
  2. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    Oleg306
    Ты извращенец? Если нет напиши код понятным языком.
    Хочу помочь, но на код смотреть противно.
     
  3. Oleg306

    Oleg306 Гость

    Прошу прощения, я только начинаю познавать программирование;
    что значит "Понятным языком" и что не так в моем коде ?
     
  4. StudyMen

    StudyMen Гость

    Email: administrator@studymen.ru
    Skype: studymen
    ICQ: 639151387

    Обращайтесь, задача будет готова в течение 4 часов, с момента начала сотрудничества!
     
  5. Rififi

    Rififi Гость

    Oleg306

    примерно как-то так...

    Код (C++):
    #include <locale>
    #include <stdio.h>
    #include <ctype.h>

    int main()
    {
    setlocale(LC_ALL, "");

    int arr[] = {1,2,3,4,5,6,7,8,9,10};
    const size_t N = sizeof(arr) / sizeof(arr[0]);

    const size_t mask = 1 << 6;

    for (size_t i=0; i<N; i++)
    for (size_t j=i+1; j<N; j++)
    {
    if (!(arr[i] & mask) && !(arr[j] & mask))
    {
    const int mul = arr[i] * arr[j];
    const bool isChar = isalpha(mul & ~1);

    printf("%d - %s\n", mul, (isChar ? "char" : "not char"));
    }
    }

    return 0;
    }
     
  6. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    Oleg306
    Вот как то так он тебе помог перевести программу на "понятный язык". Я имел в виду элементарные пробелы (или табуляцию) и переносы строк. К тому же ты (или кто-то из модераторов) поправил тэг.
     
Загрузка...
Похожие Темы - Задача на побитовые
  1. elzim
    Ответов:
    0
    Просмотров:
    932
  2. ShaoKahn
    Ответов:
    1
    Просмотров:
    1.125
  3. eremin-sanek
    Ответов:
    3
    Просмотров:
    1.107
  4. MonteCristo
    Ответов:
    1
    Просмотров:
    852
  5. bort
    Ответов:
    1
    Просмотров:
    1.180

Поделиться этой страницей