Дан целочисленный массив размера N, содержащий ровно два одинаковых элемента. Найти номера одинаковых элементов и вывести эти номера в порядке возрастания.
Укажите пожалуйста в чем ошибка и как исправить.
class Program
{
static void Main(string[] args)
{
Console.Write("Введите количество элементов массива: \t ");
int E = int.Parse(Console.ReadLine());
int[] ar = new int[E];
for (int i = 0; i < ar.Length; i++)
{
Console.Write($"Введи элемент массива под индексом {i}:\t");
ar[i] = int.Parse(Console.ReadLine());
}
int temp;
for (int i = 0; i < ar.Length - 1; i++)
{
for (int j = i + 1; j < ar.Length; j++)
{
if (ar[i] == ar[j])
{
temp = ar[i];
ar[i] = ar[j];
ar[j] = temp;
}
}
}
Console.WriteLine("Вывод массва ");
for (int i =0; i< ar.Length; i++)
{
Console.WriteLine(ar[i]);
}
Console.ReadKey();
}
}
}
C#
Задача с массивами на С#. Я Создала массив, но он просто выводит повторно то, что я ввела. Как это можно решить?
using System;
using System.Linq;
namespace Answer {
class Program {
static private void Main() {
Console.Write("Размер массива: ");
var size = int.Parse(Console.ReadLine());
var box = new int[size];
for (var i = 0; i < size; ++i) {
Console.Write($"box[{i}] = ");
box[i] = int.Parse(Console.ReadLine());
}
Console.Clear();
foreach (var x in box) Console.Write($"{x} ");
Console.WriteLine();
int n = -1;
foreach (var x in box) {
if (box.Count(m => m == x) == 2) {
n = x;
break;
}
}
if (n != -1) {
var first = 0;
var second = 0;
for (var i = 0; i < box.Length; ++i) {
if (first == 0 && box[i] == n) first = i + 1;
else if (second == 0 && box[i] == n) {
second = i + 1;
break;
}
}
Console.WriteLine($"{first} {second}");
} else {
Console.WriteLine("Массив не отвечает условию задачи!");
}
Console.ReadKey();
}
}
}
using System.Linq;
namespace Answer {
class Program {
static private void Main() {
Console.Write("Размер массива: ");
var size = int.Parse(Console.ReadLine());
var box = new int[size];
for (var i = 0; i < size; ++i) {
Console.Write($"box[{i}] = ");
box[i] = int.Parse(Console.ReadLine());
}
Console.Clear();
foreach (var x in box) Console.Write($"{x} ");
Console.WriteLine();
int n = -1;
foreach (var x in box) {
if (box.Count(m => m == x) == 2) {
n = x;
break;
}
}
if (n != -1) {
var first = 0;
var second = 0;
for (var i = 0; i < box.Length; ++i) {
if (first == 0 && box[i] == n) first = i + 1;
else if (second == 0 && box[i] == n) {
second = i + 1;
break;
}
}
Console.WriteLine($"{first} {second}");
} else {
Console.WriteLine("Массив не отвечает условию задачи!");
}
Console.ReadKey();
}
}
}
не знаю откуда взять этот код, но все что он делает - обменивает местами 2 одинаковых элемента массива... в чем смысл это действия для меня тайна покрытая мраком...
for (int i = 0; i < ar.Length - 1; i++)
{
for (int j = i + 1; j < ar.Length; j++)
{
if (ar[i] == ar[j])
{
Console.WriteLine("Вывод номеров элементов: ");
Console.WriteLine(i);
Console.WriteLine(j);
}
}
}
for (int i = 0; i < ar.Length - 1; i++)
{
for (int j = i + 1; j < ar.Length; j++)
{
if (ar[i] == ar[j])
{
Console.WriteLine("Вывод номеров элементов: ");
Console.WriteLine(i);
Console.WriteLine(j);
}
}
}
Похожие вопросы
- Задача на массивы
- Задача массивы c# , прошу помощи...
- C# Массив структур.Конструктор .Доступ к отдельным элементам массива в массиве структур.
- Помогите написать программу с массивом на C#
- Массивы. Помогите в долгу не останусь
- C#. Задание с двумерным массивом.
- Как можно найти одинаковые элементы массива? С#
- Массивы, и вывод.
- Почему в C# нумерация (индексы) элементов массива начинаются с нуля, а не с единицы?
- С # Дан двумерный массив целых чисел размером m*n. Заполнить его с клавиатуры.