Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 22.08.2022
Сообщений: 13

Не работает (не компилируется) c# код

10.10.2022, 23:23. Показов 898. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет! У меня возникла проблема с созданием кода для задания. Его проблема в том, что он не рабоиает и при обработке бесконечно обрабатывается. Помогите пожалуйста решить проблему
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
using System;
 
public class Kata
{
  public static int CountBits(int n)
  {
      int x; // degree
 
      int y;
 
      int z; // number of units
 
      
 
      y = n;
 
      x = 0;
 
      z = 0;
 
      
 
      while (y >= 1) {
 
        while (y > Convert.ToInt32(Math.Pow(2, x))) {
 
          x++;
 
        }
 
      y = n - Convert.ToInt32(Math.Pow(2, x - 1));
 
      z++;
 
      x = 0;
 
      }
    return n;
  }
}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.10.2022, 23:23
Ответы с готовыми решениями:

Код компилируется, но не работает
Написано для Java Windows Application import com.ms.wfc.app.*; import com.ms.wfc.core.*; import com.ms.wfc.core.Event.*; import...

Не работает код , не компилируется
#include <stdio.h> #include <stdlib.h> int a; int b; int c; int d; int main(void) {

Код нормально компилируется но работает не весь
Здравствуйте, уважаемые форумчане! Итак есть программа, которая нормально компилируется, но при запуске работает не как задумано....

10
 Аватар для IamRain
4694 / 2702 / 734
Регистрация: 02.08.2011
Сообщений: 7,233
10.10.2022, 23:33
Смотрите в отладке, что у вас происходит в цикле, в частности, строка 31 вызывает вопросы.
Если в числе нужно подсчитать кол-во единичных бит, быть может имеет смысл использовать битовые операции (сдвига и конъюнкции)?
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38180 / 21115 / 4307
Регистрация: 12.02.2012
Сообщений: 34,722
Записей в блоге: 14
11.10.2022, 08:23
Твой код ужасен. Выкинь.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
using System;
class HelloWorld {
  public static int CountBits(int n)
  {
      int c=0;
      while (n>0)
      {
          c++;
          n=n>>1;
      }
 
      return c;      
  }
 
  static void Main() {
 
    Console.WriteLine(CountBits(25));
 
  }
}
IamRain, при чем отладчик, код даже не скомпилируется...
0
0 / 0 / 0
Регистрация: 22.08.2022
Сообщений: 13
11.10.2022, 11:24  [ТС]
Вообщем, суть задания была узнать сколько в числе n у нас есть единиц в его двоичном виде. И суть в том что код на бумажке должен примерно работать, а по факту где-то либо зацикливание происходит, либо я чего-то не понимаю)
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16140 / 11264 / 2888
Регистрация: 21.04.2018
Сообщений: 33,109
Записей в блоге: 2
11.10.2022, 12:44
Цитата Сообщение от Forsash3451k Посмотреть сообщение
суть задания была узнать сколько в числе n у нас есть единиц в его двоичном виде
Чё-то вы как-то не так делаете... Нафиг там конвертация нужна?
Пишу здесь - могут быть мелкие ошибки.
Методы расширения (должны быть объявлены в отдельном СТАТИЧЕСКОМ классе):
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public static int CountOnes(this ulong number)
{
    int count = 0;
    while(number != 0)
    {
         if ((number & 1ul) != 0)
             count ++;
         number >>= 1;
    }
}
 
public static int CountOnes(this long number)
    => ((ulong)number).CountOnes();
public static int CountOnes(this int number)
    => ((ulong)number).CountOnes();
public static int CountOnes(this short number)
    => ((ulong)number).CountOnes();
public static int CountOnes(this sbyte number)
    => ((ulong)number).CountOnes();
Перегрузки для всех знаковых типов нужны, чтобы при неявном приведении отрицательный знак разряда не распространился на все старшие разряды.

Использование:
C#
1
2
WriteLine(123.CountOnes());
WriteLine(-123.CountOnes());
0
0 / 0 / 0
Регистрация: 22.08.2022
Сообщений: 13
12.10.2022, 07:53  [ТС]
Спасибо за варианты решения, только они не работают))Catstail, при проверке твоего кола выходит какое-то рандомное значение которое не относится к условию. Элд Хасп спасибо за вариант, но во время компиляции вылетает ошибка, а также исходная задача требует метод return, после написания которого возникает ошибка. Если это возможно, вы можете показать/рассказать что не так в моём коде?
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16140 / 11264 / 2888
Регистрация: 21.04.2018
Сообщений: 33,109
Записей в блоге: 2
12.10.2022, 08:55
Лучший ответ Сообщение было отмечено Forsash3451k как решение

Решение

Цитата Сообщение от Forsash3451k Посмотреть сообщение
а также исходная задача требует метод return
Писал здесь и забыл вставить return. Бывает...

Нужно вернуть значение count после цикла.
C#
1
2
3
4
5
6
7
8
9
10
11
public static int CountOnes(this ulong number)
{
    int count = 0;
    while(number != 0)
    {
         if ((number & 1ul) != 0)
             count ++;
         number >>= 1;
    }
    return count;
}

Добавлено через 6 минут
Цитата Сообщение от Forsash3451k Посмотреть сообщение
Если это возможно, вы можете показать/рассказать что не так в моём коде?
Если коротко - всё!
Он вообще, не понятно, что делает и, на первый взгляд, не имеет отношения к заданию.

Если вы добавите комменты в него, что собственно в том или ином фрагменте кода вы собирались реализовать, то, по возможности, смогу указать на ошибки.

Цитата Сообщение от Forsash3451k Посмотреть сообщение
суть задания была узнать сколько в числе n у нас есть единиц в его двоичном виде
Даже если решать "в лоб" и получить сначала отдельные разряды числа в 2-ой СС, то посмотрите темы в разделе по переводу чисел в разные СС.
Никаких возведений в степень, логарифмов, корней и прочей дребедени для этого не нужно.
Используется только целочисленное деление и остаток от него.

Добавлено через 3 минуты
Конкретно в данной задаче, перевода в СС не требуется, поскольку и так все числа в памяти содержатся уже в 2-ой СС.
Надо просто проанализировать разряды полученного числа.
Для побитовых операций используются сдвиги (сдвиг вправо - это целочисленное деление на 2) и проверка младшего разряда (это остаток от целочисленного деления на 2).
1
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16140 / 11264 / 2888
Регистрация: 21.04.2018
Сообщений: 33,109
Записей в блоге: 2
12.10.2022, 08:57
Forsash3451k, по интерфейсу Форума:
 Комментарий модератора 
При обращении к другому пользователю указывайте его ник в тегах [NICK][/NICK] или цитируйте часть сообщения на которое отвечаете.
В противном случае ему не придёт уведомление о вашем обращении и вы можете не дождаться ответа на своё сообщение.

Для вставки ника: введите ник, выделите его и нажмите кнопку "Динамик" на панели редактора сообщений.
Или кликните по нику автора сообщения в панели слева от текста его сообщения.

Для вставки цитаты: выделите нужную цитату, должна появиться всплывающая кнопка "Цитировать", нажмите её.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16140 / 11264 / 2888
Регистрация: 21.04.2018
Сообщений: 33,109
Записей в блоге: 2
12.10.2022, 09:04
Цитата Сообщение от Forsash3451k Посмотреть сообщение
Catstail, при проверке твоего кола выходит какое-то рандомное значение которое не относится к условию
Возможно, он неверно прочитал условия задания.
В его варианте происходит определение общего количества разрядов, а не только единичных.

В моём коде проверка единицы происходит в этом блоке:
C#
6
7
         if ((number & 1ul) != 0)
             count ++;
Forsash3451k, вот полный файл класса:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
using static System.Console;
 
namespace Core2022
{
    static class HelloWorld
    {
        public static int CountOnes(this ulong number)
        {
            int count = 0;
            while (number != 0)
            {
                if ((number & 1ul) != 0)
                    count++;
                number >>= 1;
            }
            return count;
        }
 
        public static int CountOnes(this long number)
            => ((ulong)number).CountOnes();
        public static int CountOnes(this int number)
            => ((ulong)number).CountOnes();
        public static int CountOnes(this short number)
            => ((ulong)number).CountOnes();
        public static int CountOnes(this sbyte number)
            => ((ulong)number).CountOnes();
 
        public static void Main()
        {
            Write(Convert.ToString(123, 2)+ " => ");
            WriteLine(123.CountOnes());
            Write(Convert.ToString(-123, 2)+ " => ");
            WriteLine((-123).CountOnes());
        }
    }
}
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38180 / 21115 / 4307
Регистрация: 12.02.2012
Сообщений: 34,722
Записей в блоге: 14
12.10.2022, 09:14
Forsash3451k, никакого "рандомного" количества у меня не получается. Это ты погорячился. Просто я считаю общее число битов двоичного представления целого. Если нужны только единичные биты, нет проблем:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
using System;
class HelloWorld {
  public static int CountAllBits(int n)  // Общее число битов
  {
      int c=0;
      while (n>0)
      {
          c++;
          n=n>>1;
      }
 
      return c;      
  }
 
  public static int CountUnitBits(int n) // Число единичных битов
  {
      int c=0;
      while (n>0)
      {
          if ((n&1) == 1) c++;
          n=n>>1;
      }
 
      return c;      
  }
 
 
  static void Main() {
 
    Console.WriteLine(CountAllBits(25));
    Console.WriteLine(CountUnitBits(25));
 
  }
}
0
0 / 0 / 0
Регистрация: 22.08.2022
Сообщений: 13
12.10.2022, 09:16  [ТС]
Элд Хасп Вообщем большое спасибо за помощь с кодом.))Про мой вариант кода, я придумал интересную систему как бы это можно было сделать, но видимо мне не хватило знаний для этой идеи

Добавлено через 29 секунд
Сори, не сразу понял что делает этот код)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.10.2022, 09:16
Помогаю со студенческими работами здесь

Как работает данный код? И почему не компилируется?
Обьясните пожалуйста как работает данный код, и скажите почему он не компилируется? И есть ли способ считать числа еще быстрее? ...

Код компилируется и работает в WinXP, при запуске же под 7-кой вылезают кракозябры
Столкнулся с какой-то совершенно непонятной проблемой. Есть вот такой код: vector<char*>::iterator iv; QString qs; ...

В формате .cpp код компилируется, а в .c не компилируется
1).Подскажите почему в формате .cpp код компилируется, а в .c не компилируется 2). Как сделать так, чтобы компилировалось в .c? ...

Проект полностью компилируется, но код не работает. Ошибка "Menu index out of range"
Проект полностью компилирует! Но при выборе любого пункта меню выдает ошибку (Смотреть скриншот) Пробовал разные варианты везде такая...

Почему в Dev-C++ код не компилируется, если исходный код будет с расширением ".c"?
Почему в Dev-C++ код не компилируется, если исходный код будет с расширением ".c" , а с ".cpp" работает прекрасно? В Википедии...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru