Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.11.2010, 09:11   #1
Rikhard
 
Регистрация: 04.10.2010
Сообщений: 9
Восклицание C# масивы__!

Переменной K присвоить либо номер первого вхождения Y в массив Х, либо число N+1, если Y не входит в Х.
Rikhard вне форума Ответить с цитированием
Старый 24.11.2010, 11:19   #2
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Вас это тревожит? Вы хотите поговорить об этом?
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 27.11.2010, 08:42   #3
Rikhard
 
Регистрация: 04.10.2010
Сообщений: 9
Восклицание

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication8
{
class Program
{
static void Main(string[] args)
{
int y,n=10;
int[] arr = new int[n];
Random rand = new Random();
for (int i = 0; i < n-1; i++)
{
arr[i] = rand.Next(1, 10);
Console.Write("{0} ", arr[i]);
}
Console.WriteLine("Поиск");
y = Convert.ToInt16(Console.ReadLine()) ;
int k = Array.IndexOf(arr, y);
if (k == -1) k = n + 1;

Console.WriteLine("k=" + k);
}
}
}

я узнать хочу как сделать с ЦИКЛОМ а не стандартной процедурой IndexOf....................
Rikhard вне форума Ответить с цитированием
Старый 27.11.2010, 15:53   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Код:
            int y,n=10;
            int[] arr = new int[n];
            Random rand = new Random();
            for (int i = 0; i < n; i++)
            {
                arr[i] = rand.Next(1, 10);
                Console.Write("{0} ", arr[i]);
            }
            Console.WriteLine("Поиск");
            y = Convert.ToInt16(Console.ReadLine()) ;
            
            int k = 1;
            while ( k <= n ) 
            {
             if (arr[k-1] == y) break;
             k++;    
            }

            Console.WriteLine("k=" + k);
            
            Console.Write("Press any key to continue . . . ");
            Console.ReadKey(true);
примечание.
1) у Вас неверно заполнялся и выводился массив.
Посчитайте, сколько циферок вывела Ваша программа? Девять?
А ведь n у Вас 10.
Предполагается, что в массиве N (то бишь) 10 чисел?!
я исправил эту ошибку.

2) Т.к. в задании сказано, что, если элемент не будет найден,
вывести k равное N+1 резонно предположить,
что если найден последний элемент массива,
то k должно быть равным N ?!
Если это предположение верно - то нумерация найденных элементов массива предполагается от ЕДИНИЦЫ!
В моём примере так и сделано.
(если Вы считаете, что это не так -
тогда цикл по K надо крутить от нуля до N-1 и сверять y не с arr[k-1] а y == arr[k] )
Serge_Bliznykov вне форума Ответить с цитированием
Старый 28.11.2010, 09:40   #5
Rikhard
 
Регистрация: 04.10.2010
Сообщений: 9
По умолчанию

Спасибо большое
Rikhard вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц