Доступ к переменной, объявленной в теле цикла - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте, есть следующий код
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace lab_5_18
  7. {
  8. public class check
  9. {
  10. public int chek_values()
  11. {
  12. bool access;
  13. int n;
  14. while (true)
  15. {
  16. string s = Console.ReadLine();
  17. access = int.TryParse(s, out n);
  18. if (!access || n <= 0)
  19. {
  20. Console.WriteLine("Ошибка ввода");
  21. Console.Write("n = ");
  22. }
  23. else
  24. {
  25. break;
  26. }
  27. }
  28. return n;
  29. }
  30. }
  31. }
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace lab_5_18
  7. {
  8. public class checkdouble
  9. {
  10. public double check_doublearg (int i)
  11. {
  12. bool access;
  13. double n ;
  14. while (true)
  15. {
  16. string s = Console.ReadLine();
  17. access = double.TryParse(s, out n);
  18. if (!access || n <= 0)
  19. {
  20. Console.WriteLine("Ошибка ввода");
  21. Console.Write("a"+ i+1 + " = ");
  22. }
  23. else
  24. {
  25. break;
  26. }
  27. }
  28. return n;
  29. }
  30. }
  31. }
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. namespace lab_5_18
  7. {
  8. class Program
  9. {
  10. static void Main(string[] args)
  11. {
  12. check arg = new check();
  13. checkdouble a = new checkdouble();
  14. double[] mas = new double[1];
  15. int i,n,last,ch = 0,maxi,summ = 0;
  16. double c, max = double.MinValue,d;
  17.  
  18. Console.WriteLine("Введите число элементов массива");
  19. Console.Write("n = ");
  20. n = arg.chek_values();
  21. Array.Resize<double>(ref mas, n);
  22. Console.WriteLine("Введите число \"C\" ");
  23. Console.Write("C = ");
  24. c = a.check_doublearg(0);
  25. Console.WriteLine("Введите элементы массива через \"Enter\"");
  26. for ( i = 0; i < n; i++)
  27. {
  28. Console.Write("a [" + (i + 1) + "] = ");
  29. mas[i] = a.check_doublearg(i);
  30. if (mas[i] < 0)
  31. {
  32. last = i;
  33. }
  34. else last = -1;
  35. if (mas[i] < c)
  36. {
  37. ch += 1;
  38. }
  39. if (mas [i] > max)
  40. {
  41. max = mas[i];
  42. maxi = i;
  43. }
  44. Console.WriteLine();
  45. }
  46. if (last == -1)
  47. {
  48. }
  49. Console.ReadKey();
  50. }
  51. }
  52. }
проблема в том, что не смотря на то что все переменные объявлены вне цикла, переменная last остается пустой, то есть ее значение за цикл for не передается, что делать? Подскажите пожалуйста!

Решение задачи: «Доступ к переменной, объявленной в теле цикла»

textual
Листинг программы
  1. int i,n,last,ch = 0,maxi,summ = 0;

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы