Hector
04-11-2011, 21:57
есть, задание Дано n вещественных чисел. Определить, образуют ли они арифметическую последовательность
вот попытка решения
using System;
using System.Collections.Generic;
using System.Text;
namespace lab3_v21
{
class Program
{
static void Main()
{
Console.Write("Количество цифр ");
int n = Convert.ToInt16(Console.ReadLine());
double[] line=new double[n];
int i=0;
for (i = 0; i < n; i++)
{
Console.Write("{0}-я цифра ",i+1);
line[i] = Convert.ToDouble(Console.ReadLine());
}
bool flag = false;
double razn = line[1] - line[0]; // находим разность между членами ряда, для последующего сравнения
for (i = 0; i < n-1; i++)
{
if (line[i + 1] - line[i] !=razn)
{
Console.WriteLine("Последовательность не является возрастающей");
flag = true;
break;
}
}
if (!flag)
Console.WriteLine("Последовательность возрастающая");
Console.ReadLine();
}
}
}
проблема в том, при вводе цифр 0,1 - 1 - 1,9 результат Последовательность не является возрастающей хотя должно быть наоборот :)
если вводить целые числа, все работает нормально, а с вещественными через раз, что поправить?
вот попытка решения
using System;
using System.Collections.Generic;
using System.Text;
namespace lab3_v21
{
class Program
{
static void Main()
{
Console.Write("Количество цифр ");
int n = Convert.ToInt16(Console.ReadLine());
double[] line=new double[n];
int i=0;
for (i = 0; i < n; i++)
{
Console.Write("{0}-я цифра ",i+1);
line[i] = Convert.ToDouble(Console.ReadLine());
}
bool flag = false;
double razn = line[1] - line[0]; // находим разность между членами ряда, для последующего сравнения
for (i = 0; i < n-1; i++)
{
if (line[i + 1] - line[i] !=razn)
{
Console.WriteLine("Последовательность не является возрастающей");
flag = true;
break;
}
}
if (!flag)
Console.WriteLine("Последовательность возрастающая");
Console.ReadLine();
}
}
}
проблема в том, при вводе цифр 0,1 - 1 - 1,9 результат Последовательность не является возрастающей хотя должно быть наоборот :)
если вводить целые числа, все работает нормально, а с вещественными через раз, что поправить?