Исправить код - C# (188801)
Формулировка задачи:
Не могу сделать для вещественных чисел(в коде для целочисленных). И бывает вылеты когда вводишь числа(а иногда и все нормально)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
q:
Console.WriteLine("Нажмите на: ");
Console.WriteLine("1 - работа с задачей");
Console.WriteLine("2 - для очищения файлов");
Console.WriteLine("3 - Выход...");
int z = int.Parse(Console.ReadLine());
switch (z)
{
case 1:
{
Console.WriteLine("Введите числа: ");
string s = Console.ReadLine();
for (int i = 0; i < s.Length; i++)
{
while (char.IsLetter(s[i]))
{
Console.WriteLine("Введите числа пожалуйста!!!");
s = Console.ReadLine();
}
continue;
}
bool f = true;
StreamWriter write_text1;
FileInfo file1 = new FileInfo(@"C:\\Users\\Валера\\Desktop\\Исходный_файл.dat");
write_text1 = file1.AppendText();
write_text1.Write("" + s);
write_text1.Close();
FileInfo file2 = new FileInfo(@"C:\\Users\\Валера\\Desktop\\Конечный_файл.dat");
StreamReader read1 = new StreamReader(@"C:\\Users\\Валера\\Desktop\\Исходный_файл.dat");
string s1 = read1.ReadToEnd();
read1.Close();
Console.Write("Текст из файла: " + s1);
Console.WriteLine();
for (int i = 0; i < s1.Length - 1; i++)
{
if (s1[i] > s1[i + 1])
{
if (s1[i] > s1[i - 1])
{
f = true;
Console.WriteLine("В файл записываются: " + s1[i]);
StreamWriter write_text;
write_text = file2.AppendText();
write_text.Write(" " + s1[i]);
write_text.Close();
}
}
else f = false;
}
if (f == false) Console.WriteLine("Нет таких чисел!!!");
}
break;
case 2:
{
FileInfo file1 = new FileInfo(@"C:\\Users\\Валера\\Desktop\\Исходный_файл.dat");
FileInfo file2 = new FileInfo(@"C:\\Users\\Валера\\Desktop\\Конечный_файл.dat");
file1.Delete();
file2.Delete();
Console.WriteLine("Файлы очищены.");
goto q;
}
case 3:
{
string w = "да";
Console.WriteLine("Точно хотите выйти?(да/нет)");
string v = Console.ReadLine();
if (v == w)
{
//Console.WriteLine("До свидания.");
break;
}
else goto q;
}
}
Console.ReadKey();
}
}
}Решение задачи: «Исправить код»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
namespace ConsoleApplication3
{
class Program
{
static void Main(string[] args)
{
string values = File.ReadAllText("D:\\input.txt");
double[] valArray = values.Split(' ').Select(val => double.Parse(val)).ToArray();
Console.WriteLine("Данные из файла");
for (int i = 0;i<valArray.Length;i++)
{
Console.Write("{0} ", valArray[i]);
}
Console.WriteLine("");
using (StreamWriter sw = new StreamWriter("D:\\output.txt"))
{
Console.WriteLine("Локальные максимумы");
for (int i = 1; i < valArray.Length-1; i++)
{
if ((valArray[i]> valArray[i-1]) && (valArray[i] > valArray[i + 1]))
{
sw.Write(i.ToString() + " ");
Console.Write(i.ToString() + " ");
}
}
}
Console.ReadKey();
}
}
}