Member 13652359 Ответов: 1

Почему мой код не запускается, когда он говорит, что моя сборка успешна?


Привет, ребята, я новичок в C#.
Я не знаю, почему мой код не хочет запускаться.
Как только я начинаю запускать свой код, в командной строке ничего не появляется.
Он просто показывает пустой экран.

Что я уже пробовал:

Мне нужно написать консольную программу на C#, которая преобразует температуру в градусах Цельсия в градус Фаренгейта.
Отображение всех значений от -40 градусов Цельсия до +40 градусов Цельсия с шагом в 5 градусов.

Вот что я получил до сих пор:

<pre>
using System;
namespace TemperatureConverter
{
    class Program
    {
        static void Main()
        {
            int c, f;
            for (c = -40; c <= 40; c =+ 5);
            f = 9 / 5 * c + 32;
            Console.WriteLine("c: {0}; f: {1}", c, f);
        }
    }
}


Я не знаю, верен ли мой код или нет.
Мы очень ценим вашу помощь.

1 Ответов

Рейтинг:
12

OriginalGriff

Вы допустили там несколько тихих ошибок:

for (c = -40; c <= 40; c =+ 5);
Точка с запятой в конце завершит цикл - так что он никогда ничего не сделает
внутри тела. Удалите точку с запятой.
И оператор инкремента также неверен:
c=+ 5
означает "установить c на 5", а не "добавить 5 к c". Вы наверное хотите
c += 5

for (c = -40; c <= 40; c =+ 5);
f = 9 / 5 * c + 32;
Console.WriteLine("c: {0}; f: {1}", c, f);
Если вы хотите, чтобы в вашем цикле было более одного оператора, вам нужен составной оператор - это причудливый способ сказать: "заключите их в фигурные скобки".
9 и 5 являются целыми числами, поэтому 9 / 5 также является целым числом: 1. вместо этого вам нужны значения с плавающей запятой: 9.0 и 5.0.
Есть еще одна проблема: если вы исправите это и запустите этот код в отладчике, вы, вероятно, ничего не увидите, так как командная строка будет открываться, печататься и закрываться очень быстро. Добавь
Console.ReadLine();
в конце концов, и он будет делать паузу, пока вы не нажмете ENTER.
Попробовать это:
static void Main()
    {
    float c, f;
    for (c = -40; c <= 40; c += 5)
        {
        f = 9.0 / 5.0 * c + 32;
        Console.WriteLine("c: {0}; f: {1}", c, f);
        }
    Console.ReadLine();
    }


Member 13652359

В строке, где вводится формула, появляется следующая ошибка:

Ошибка CS0266 не может неявно преобразовать тип 'double' в 'float'. Существует явное преобразование (вы пропускаете приведение?)

OriginalGriff

Пердеть мозгом: измените
поплавок c, f;
К
двойной c, f;

Member 13652359

Спасибо за ответ и за вашу помощь.

OriginalGriff

Всегда пожалуйста!