Using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.RegularExpressions;
// Compiler version 4.0, .NET Framework 4.5
namespace Dcoder
{
public class Program
{
public static void Main(string[] args)
{
Console.WriteLine("Введите свои накопления");
string a = Console.ReadLine();
int s = Convert.ToInt32(a);
int f = 0;
for (int i = 0; f != 2000; i++)
{
f = (s*3)/100;
s = s+f;
}
Console.WriteLine("Вы достигните 2000 через "+i" Дней");
}
}
}
Unexpected sign "Дней"
C#
Не компилируется текст после переменной
очень странная конструкция
"Вы достигните 2000 через "+i" Дней"
строка плюс целое число ?? нет плюса и опять строка
как минимум после и напрашивается плюс и конвертация и самой и в стринг
"Вы достигните 2000 через "+i" Дней"
строка плюс целое число ?? нет плюса и опять строка
как минимум после и напрашивается плюс и конвертация и самой и в стринг
В коде у вас отсутствует + после i и это вы по указанию другого ответившего поправили, НО
Shporgalka Nope, а вы уверены, что работает правильно? с каких пор деление на 100 всегда дает целое число? У вас будет идти неявное преобразование к целому с отбрасыванием дробной части. B s, и f должны быть float и отбрасываться должна дробная часть после 2 знаков (копейки)
Кроме того можно обойтись и без f вообще, если у вас ежедневно начисляется 3% то размер нового вклада после ежедневно начисленных процентов будет считаться как:
s *=1.03
непонятен так же параметр прерывания цикла - сейчас у вас по сути это не достижение вкладом 2000 for (int i = 0; s<2000; i++), а достижение его ежедневного прироста в 2000 for (int i = 0; 0.03*s<2000; i++). А в вашем текущем написании у вас вообще может бесконечный цикл образоваться, т. к. f - ежедневный прирост может вообще никогда не оказаться равным 2000
Еще момент, если 3% это не ежедневный прирост, а годовой, то тут вам нужно уточнить что есть год для банка и поделить 3 еще на количество дней в банковском году. либо заменить в выводе слово "Дней" на "Лет"
Shporgalka Nope, а вы уверены, что работает правильно? с каких пор деление на 100 всегда дает целое число? У вас будет идти неявное преобразование к целому с отбрасыванием дробной части. B s, и f должны быть float и отбрасываться должна дробная часть после 2 знаков (копейки)
Кроме того можно обойтись и без f вообще, если у вас ежедневно начисляется 3% то размер нового вклада после ежедневно начисленных процентов будет считаться как:
s *=1.03
непонятен так же параметр прерывания цикла - сейчас у вас по сути это не достижение вкладом 2000 for (int i = 0; s<2000; i++), а достижение его ежедневного прироста в 2000 for (int i = 0; 0.03*s<2000; i++). А в вашем текущем написании у вас вообще может бесконечный цикл образоваться, т. к. f - ежедневный прирост может вообще никогда не оказаться равным 2000
Еще момент, если 3% это не ежедневный прирост, а годовой, то тут вам нужно уточнить что есть год для банка и поделить 3 еще на количество дней в банковском году. либо заменить в выводе слово "Дней" на "Лет"
Алик Уразметов
Не то чтобы это было связанно с банком. Проблему безконечный цикл я не встречал, сейчас код уже доработан и большинство проблем указанных здесь в нём нету.
Деление на 100 давало целое число ибо за s обычно пралось число больше 30.000, то есть при умножении на 3 и делении на 100 было примерно 1000.
Спасибо конечно за подробный разбор моего, не очень, грамотного кода
Деление на 100 давало целое число ибо за s обычно пралось число больше 30.000, то есть при умножении на 3 и делении на 100 было примерно 1000.
Спасибо конечно за подробный разбор моего, не очень, грамотного кода
Похожие вопросы
- Нахождение одинаковой последовательности трех символов в двух переменных типа строка
- C#: Как переопределить поведение клавиши del с удаления справа на удаление всего текста в textboxе?
- VisualC++ 2010. При выборе MFC - статической библиотеки программа не компилируется.
- Почему не компилируется код?
- С# - нужно сделать так, чтобы консоль читала слова, как переменные, а не просто слова...
- Постоянный или переменный битрейт в видеорегистраторе. Что лучше? Вопрос к тем, кто разбирается в тонкостях.
- Почему график переменного тока и импульсного абсолютно одинаковый ???
- При совершении арифметических операций с переданными в рекурсивную функцию переменными, переменные меняются(Си)
- Как сложить переменную ? Delphi 7 Что никто не знает ответа что ли ?Н
- Снова Паскаль) ) Переменные и занимаемая ими память
Конвертация вроде не нужна, обычно же int корректно работает в строках