C :: Aufgabe #107
1 Lösung
Nachbar-Dupletten (Arrays)
Anfänger - C
von AlHedi
- 30.04.2016 um 12:34 Uhr
Es sollen die Anzahl von den Nachbar-Dupletten eines Zahlen-Arrays ermittelt werden.
Die Nachbar-Dupletten sind gleiche benachbarte Zahlen in einem Array.
Es soll außerdem auf folgendes geachtet werden:
Die Nachbardupletten sind genau nur für zwei benachbarte Mitglieder definiert - sollte ein drittes Mitglied dabei benachbart sein, wird es nicht mitgezählt, weil es noch einen gleichen Nachbar braucht.
bspw.: Array = [3,3,7] : Ausgabe = 1
Array = [3,3,3] : Ausgabe = 1 ( Die Mitglieder von Index 0 und 1 sind benachbart, der Index 2 braucht auch ein Nachbar aber hat keinen
Array = [3,3,3,3] : Ausgabe = 2
Array = [0, 3, 3, 3, 2, 7, 7, 7, 7, 3, 2, 1, 1, -2, 4, 4, 8, 9, 8, 6 ] : Ausgabe = 5
Entnommen aus dieser Aufgabenstellung: fotos-hochladen.net
Die Nachbar-Dupletten sind gleiche benachbarte Zahlen in einem Array.
Es soll außerdem auf folgendes geachtet werden:
Die Nachbardupletten sind genau nur für zwei benachbarte Mitglieder definiert - sollte ein drittes Mitglied dabei benachbart sein, wird es nicht mitgezählt, weil es noch einen gleichen Nachbar braucht.
bspw.: Array = [3,3,7] : Ausgabe = 1
Array = [3,3,3] : Ausgabe = 1 ( Die Mitglieder von Index 0 und 1 sind benachbart, der Index 2 braucht auch ein Nachbar aber hat keinen
Array = [3,3,3,3] : Ausgabe = 2
Array = [0, 3, 3, 3, 2, 7, 7, 7, 7, 3, 2, 1, 1, -2, 4, 4, 8, 9, 8, 6 ] : Ausgabe = 5
Entnommen aus dieser Aufgabenstellung: fotos-hochladen.net
Lösungen:
Die Array-Elemente werden im Argumentvektor (argv) übergeben und durch simple Konversion in Integerwerte umgewandelt:
C-Code
/******************************************
* arrdup.c Nachbar-Dubletten im Int-Array
******************************************/
#include <stdlib.h>
#include <stdio.h>
int main(int argc, char **argv)
{
int anz=0, a, b, c;
if (argc > 2) {
for (c=1; c<argc-1; c++) {
a = atoi(argv[c]);
b = atoi(argv[c+1]);
if (a == b) {
anz++;
c++;
}
}
printf("%d Nachbar-Dublette(n) gefunden.\n", anz);
}
return 0;
}
