Функция не видит переменную - C#
Формулировка задачи:
Нужно вычислить сумму элементов массива, которые расположены после первого положительного элемента. Сами элементы вводятся с клавиатуры и записываются при помощи переменной n. Так вот, в самой функции эта переменная не отображается("Элемент не существует, тра-та-та, тра-та-та"). Это из-за того, что n записывается в методе Main? Тогда не понимаю, почему раз сам массив может читаться функцией flag, а эта переменная не может? Или я не правильно задаю параметры функции flag? Буду признателен за объяснение.
Листинг программы
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- namespace ConsoleApplication1
- {
- class Program
- {
- static bool flag(int[] a)
- {
- bool flag = false;
- int sum = 0;
- for (int i = 0; i < n; i++)
- {
- if (flag)
- sum += a[i];
- else
- if (a[i] > 0) flag = true;
- }
- return flag;
- }
- static void Main(string[] args)
- {
- int n;
- Console.Write("Введите количество элементов массива");
- n = int.Parse(Console.ReadLine());
- int[] a = new int[n];
- for (int i = 0; i < n; i++)
- {
- a[i] = int.Parse(Console.ReadLine()); //Вводим элементы массива с клавиатуры
- }
- Console.WriteLine("\nМассив: {0}", String.Join(" ", a));
- bool sumP = flag(a);
- Console.WriteLine("\nСумма элементов массива, расположенных после первого положительного элемента = {0}", sumP);
- }
- }
- }
Решение задачи: «Функция не видит переменную»
textual
Листинг программы
- static bool flag(int[] a)
- {
- bool flag = false;
- int sum = 0;
- for (int i = 0; i < a.Length; i++)
- {
- if (flag)
- sum += a[i];
- else
- if (a[i] > 0) flag = true;
- }
- return flag;
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д