Доступ к переменной, объявленной в теле цикла - C#
Формулировка задачи:
Здравствуйте, есть следующий код
проблема в том, что не смотря на то что все переменные объявлены вне цикла, переменная last остается пустой, то есть ее значение за цикл for не передается, что делать? Подскажите пожалуйста!
Листинг программы
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace lab_5_18
- {
- public class check
- {
- public int chek_values()
- {
- bool access;
- int n;
- while (true)
- {
- string s = Console.ReadLine();
- access = int.TryParse(s, out n);
- if (!access || n <= 0)
- {
- Console.WriteLine("Ошибка ввода");
- Console.Write("n = ");
- }
- else
- {
- break;
- }
- }
- return n;
- }
- }
- }
Листинг программы
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace lab_5_18
- {
- public class checkdouble
- {
- public double check_doublearg (int i)
- {
- bool access;
- double n ;
- while (true)
- {
- string s = Console.ReadLine();
- access = double.TryParse(s, out n);
- if (!access || n <= 0)
- {
- Console.WriteLine("Ошибка ввода");
- Console.Write("a"+ i+1 + " = ");
- }
- else
- {
- break;
- }
- }
- return n;
- }
- }
- }
Листинг программы
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace lab_5_18
- {
- class Program
- {
- static void Main(string[] args)
- {
- check arg = new check();
- checkdouble a = new checkdouble();
- double[] mas = new double[1];
- int i,n,last,ch = 0,maxi,summ = 0;
- double c, max = double.MinValue,d;
- Console.WriteLine("Введите число элементов массива");
- Console.Write("n = ");
- n = arg.chek_values();
- Array.Resize<double>(ref mas, n);
- Console.WriteLine("Введите число \"C\" ");
- Console.Write("C = ");
- c = a.check_doublearg(0);
- Console.WriteLine("Введите элементы массива через \"Enter\"");
- for ( i = 0; i < n; i++)
- {
- Console.Write("a [" + (i + 1) + "] = ");
- mas[i] = a.check_doublearg(i);
- if (mas[i] < 0)
- {
- last = i;
- }
- else last = -1;
- if (mas[i] < c)
- {
- ch += 1;
- }
- if (mas [i] > max)
- {
- max = mas[i];
- maxi = i;
- }
- Console.WriteLine();
- }
- if (last == -1)
- {
- }
- Console.ReadKey();
- }
- }
- }
Решение задачи: «Доступ к переменной, объявленной в теле цикла»
textual
Листинг программы
- int i,n,last,ch = 0,maxi,summ = 0;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д