15 svar
175 visningar
sömnig_katt 7 – Fd. Medlem
Postad: 6 sep 2021 15:41 Redigerad: 6 sep 2021 16:55

Skriv ut och jämför

Uppgiften:

Denna uppgift bygger vidare på föregående uppgift.

Deklarera en variabel med ett heltal.

Skriv ut alla värden ur vektorn med en loop.

Om något tal i vektorn är lika med heltalet i den nya variabeln så ska detta uppmärksammas.

Bifoga koden

 

Min kod ser ut så här:

using System;

namespace vektorer
{
    class Program
    {
        static void Main(string[] args)
        {
            int[] tal = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; //vektorn fyllde med 10 heltal

            for (int i = 0; i < tal.Length; i++)
            {
                Console.Write("Ange ett heltal från 1 till 10: ");
                string str = Console.ReadLine(); //återanvänd variabeln str!
                int element = Convert.ToInt32(str);
                tal[i] = element; //lägg in värdet på index i


                int fem = 5;
                for (int j = 0; j < tal.Length; j++)
                {
                    Console.WriteLine(tal[j]);
                   
                    if (j == fem)
                    {
                        Console.WriteLine("Samma tal är 5");
                    }
                   
                }
            }

            Console.ReadLine();
        }
    }
}

 

Problemet är att man ska se "Samma tal är 5" om man skriver 5, men det här meddelandet kommer alltid med alla tal. Hur jag kan fixa det? Kod körning ser också ut inte så bra :/

Tack på förhand!

Ange ett heltal från 1 till 10: 5
5
2
3
4
5
6
Samma tal är 5
7
8
9
10
Ange ett heltal från 1 till 10
Fermatrix 7841 – Fd. Medlem
Postad: 6 sep 2021 16:26

Nu är det inte så mycket kod men jag klarar inte av att läsa kod som inte är indenterad, får lite halvt panik. Så du får gärna använda "infoga programmeringskod", dvs {:} för att infoga din kod, om du då redan indenterat det i din IDE så är allt fixat och det blir mycket snällare för allas ögon! :)

Fermatrix 7841 – Fd. Medlem
Postad: 6 sep 2021 16:30

Problemet är att du jämför j med en godtycklig siffra och j går ju från 0<= j <  arr.length().

du vill ju jämföra talet fem med ett värde i din array.

Laguna Online 30496
Postad: 6 sep 2021 16:49

Kan du visa en körning som den ser ut nu, med dina tio inmatade tal och all output?

sömnig_katt 7 – Fd. Medlem
Postad: 6 sep 2021 16:51
Laguna skrev:

Kan du visa en körning som den ser ut nu, med dina tio inmatade tal och all output?

Ange ett heltal från 1 till 10: 6
6
2
3
4
5
6
Samma tal är 5
7
8
9
10
Ange ett heltal från 1 till 10:
sömnig_katt 7 – Fd. Medlem
Postad: 6 sep 2021 16:52
Dracaena skrev:

Nu är det inte så mycket kod men jag klarar inte av att läsa kod som inte är indenterad, får lite halvt panik. Så du får gärna använda "infoga programmeringskod", dvs {:} för att infoga din kod, om du då redan indenterat det i din IDE så är allt fixat och det blir mycket snällare för allas ögon! :)

Oj, tack, då fixar jag koden :)

Laguna Online 30496
Postad: 6 sep 2021 17:18

Om du matade in 4 skulle du väl vilja jämföra med 4 och inte 5? Det talet har du i variabeln 'element' . 

sömnig_katt 7 – Fd. Medlem
Postad: 6 sep 2021 17:35
Laguna skrev:

Om du matade in 4 skulle du väl vilja jämföra med 4 och inte 5? Det talet har du i variabeln 'element' . 

ursäkta, men jag förstår inte :/

kan du gärna rätta in koden, tack @.@

Laguna Online 30496
Postad: 6 sep 2021 17:47

Nej, rätta koden får du göra. Varför jämför du med 5?

sömnig_katt 7 – Fd. Medlem
Postad: 6 sep 2021 17:56
Laguna skrev:

Nej, rätta koden får du göra. Varför jämför du med 5?

Så att om man skriver samma tal som redan finns i den nya variabeln, det uppmärksammas med "Samma tal är 5" :)

Laguna Online 30496
Postad: 6 sep 2021 19:37

Då frågar jag igen: vad händer om du matar in 4?

sömnig_katt 7 – Fd. Medlem
Postad: 6 sep 2021 20:24
Ange ett heltal från 1 till 10: 4
4
2
3
4
5
6
Samma tal är 5
7
8
9
10
Ange ett heltal från 1 till 10: 
Laguna skrev:

Då frågar jag igen: vad händer om du matar in 4?

Laguna Online 30496
Postad: 6 sep 2021 20:38

OK, jag menade vad du vill ska hända. Nu är det fel i programmet såtillvida att du jämför med indexet och inte med elementet som har det indexet. 

sömnig_katt 7 – Fd. Medlem
Postad: 6 sep 2021 21:05
Laguna skrev:

OK, jag menade vad du vill ska hända. Nu är det fel i programmet såtillvida att du jämför med indexet och inte med elementet som har det indexet. 

Jag vill att alla värden skrivs ut på ett normalt sätt, utan "samma tal är 5" i mitten. Och att "samma tal är 5" skrivs ut bara om användaren skriver 5 :)

Laguna Online 30496
Postad: 6 sep 2021 21:33

Uppgiften verkar vara att skriva ut något speciellt om det nya talet är samma som något som redan förekommer. Det står ingenting om 5.

Fermatrix 7841 – Fd. Medlem
Postad: 6 sep 2021 21:36

Jag tror det kanske hjälper om du läser frågan igen och funderar på vad de frågar efter och vad din kod gör.

Man vill att du deklarerar en variabel, vi kan kalla den för 'tal' för enkelhetensskull. 

Du skapar en array med hur många element du villl. 

Du skall loopa igenom alla element i array och skriva ut deras värde och skulle det vara så att 'tal' har samma värde som något element i din array så ska du göra något speciellt, kanske en annan print. 

Kolla nu tillbaka till din kod, kan du beskriva vad det är din kod gör? Du märker nog direkt då vart ditt fel ligger.

Svara
Close