|
|
|
C++ Statisches Array
|
Aufgabe:
Erstelle mittels Vorher definierten Funktionen ein Array mit zufälligen Werten zwischen 0 - 99, welches "schick" geschrieben wird und am Ende suche die kleinste Zahl raus und gebe die Position an.
/e In der Main sollen alle Funktionen aufgerufen werden
|
Code: |
// ArrayStatic.cpp
#include <iostream>
#include <sstream> //required for toString-function
#include <ctime>
using namespace std;
//------------------- definition of functions -----------------------
void init(int a[], int n)
{
srand(time(0));
for (int i = 0; i == n - 1; i++)
{
a[i] = rand() % 100;
}
}
string toString(int a[], int n)
// put all elements in a "nice" string
{
stringstream s; s << "["; // stream from sstream.h
for (int i = 0; i < n - 1; i++) {
s << a[i] << ", ";
}
s << a[n - 1] << "]"; // last element
return s.str(); // convert stream s into a string
}
int posMin(int a[], int n)
{
int b;
int min = a[0];
for (int i = 0; i < n; i++)
if (a[i] < min)
{
min = a[i];
b = i + 1;
}
return b;
}
//---------------------- main()-function ----------------------------
int main() {
int n;
const int NMAX = 100;
cout << "Generiert ein Feld mit N-Feldern, gefuellt mit Zufallszahlen" << endl;
cout << "Waehle eine Zahl zwischen 1 und 99" << endl;
cin >> n;
if (n <= NMAX);
{
}
system("Pause");
return 0;
}
|
|
Es startet schon mal ohne Probleme, mein Problem ist, wenn ich nun die erste Funktion so aufrufen will init(a,n), sagt er mir, das "a" nicht deklariert ist.
Ich muss es bis morgen 7 Uhr morgens abgeschickt haben zum Übungsleiter, aber stehe gerade völlig neben der Spur. Bzw. Ich bin einfach unfähig mit Funktionen zu arbeiten und diese anständig aufzurufen.
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Co the wizard am 07.05.2017 18:06]
|
|
|
|
|
|
Deklariere das Array in main bevor du init() aufrufst.
int n, a[100];
E: was macht der system-Aufruf da?
|
[Dieser Beitrag wurde 2 mal editiert; zum letzten Mal von statixx am 07.05.2017 18:28]
|
|
|
|
|
|
| Zitat von statixx
E: was macht der system-Aufruf da?
| |
Wenn du System("Pause"); meinst, dann nichts wichtiges..
Aber ich bin nicht gut in C++, gerade mal die Basics und nicht mal sicher.
/ e2
|
Code: |
// ArrayStatic.cpp
#include <iostream>
#include <sstream> //required for toString-function
#include <ctime>
using namespace std;
const int nmax = 100;
//------------------- definition of functions -----------------------
void creat(int a[], int n)
{
for (int i = 0; i == n - 1; i++)
{
a[i] = rand() % 100;
}
}
string toString(int a[], int n) // put all elements in a "nice" string
{
stringstream s; s << "["; // stream from sstream.h
for (int i = 0; i < n - 1; i++) {
s << a[i] << ", ";
}
s << a[n - 1] << "]"; // last element
return s.str(); // convert stream s into a string
}
int posMin(int a[], int n)
{
int b;
int min = a[0];
for (int j = 0; j < n; j++)
{
if (a[j] < min)
{
min = a[j];
b = j + 1;
}
}
cout << min << "ist die kleinste Zahl an der Stelle" << b << endl;
return posMin(a, n);
}
//---------------------- main()-function ----------------------------
int main() {
int n;
int a[nmax];
cout << "Generiert ein Feld mit N-Feldern, gefuellt mit Zufallszahlen" << endl;
cout << "Waehle eine Zahl zwischen 1 und 99" << endl;
cin >> n;
if (n <= nmax && n != 0);
{
srand(time(0));
creat(a, n);
cout << "Array in schick" << toString(a, n) << endl;
posMin(a, n);
}
system("Pause");
return 0;
}
|
|
Funktioniert nur nicht so, wie es soll.
Es startet, gebe ich eine Zahl ein, startet er die Schleife, ohne Abbruch.
Selbst wenn ich ein Null eingebe, startet er.
Sitze an den bisschen Müll schon seit 16:30. Die Funktion string toString Fkt da ist, weiß ich selbst nicht, war so vorgegeben..
/e3 Sehe gerade selbst, dass die Startbedingung n<=nmax ist und 0 ist das ja definitiv.
|
[Dieser Beitrag wurde 2 mal editiert; zum letzten Mal von Co the wizard am 07.05.2017 19:10]
|
|
|
|
|
|
Du hast nen rekursiven Aufruf in posMin():
|
Code: |
int posMin(int a[], int n)
{
[...]
return posMin(a, n);
}
|
|
Mach ein "return min" draus.
/e: Achja, prüf lieber auf n <= nmax && n > 0, sonst kann man auch negative Zahlen eingeben.
/e²: Noch was: Deine Bedingung in der for-schleife in creat() ist falsch. Die Abbruchbedingung ist direkt in der ersten Iteration falsch, deshalb läuft die Schleife nicht. Prüf besser so:
for (int i = 0; i < n - 1; i++)
|
[Dieser Beitrag wurde 2 mal editiert; zum letzten Mal von statixx am 07.05.2017 19:30]
|
|
|
|
|
|
| Zitat von Co the wizard
Ich bin einfach unfähig mit Funktionen zu arbeiten und diese anständig aufzurufen.
| |
Was studierst du?
|
|
|
|
|
|
|
|
Code: |
#include <iostream>
#include <sstream> //required for toString-function
#include <ctime>
using namespace std;
const int nmax = 100;
//------------------- definition of functions -----------------------
void creat(int a[], int n)
{
for (int i = 0; i < n -1 ; i++)
{
a[i] = rand() % 100;
}
}
string toString(int a[], int n) // put all elements in a "nice" string
{
stringstream s; s << "["; // stream from sstream.h
for (int i = 0; i < n - 1; i++) {
s << a[i] << ", ";
}
s << a[n - 1] << "]"; // last element
return s.str(); // convert stream s into a string
}
int posMin(int a[], int n)
{
int b = 0;
int min = 100;
for (int j = 0; j < n; j++)
{
if (a[j] < min)
{
min = a[j];
b = j + 1;
}
}
return b;
}
//---------------------- main()-function ----------------------------
int main() {
int n;
int a[nmax];
cout << "Waehle eine Zahl zwischen 1 und 99 (bitte keine 0 oder größer 100, sonst stürze ich ab :( : ";
cin >> n;
if (n <= nmax && n > 0);
{
srand(time(0));
creat(a, n);
cout << "Array in schick" << toString(a, n) << endl;
cout << posMin(a, n) << " Stelle der kleinsten Zahl" << endl;
}
system("Pause");
return 0;
}
|
|
So läuft es, abgesehen davon, dass man negative, die Null und über 100 eingeben kann.
Aber mit dem Ergebnis bin ich soweit zufrieden!
Danke für deine Hilfe!
| Zitat von Flash_
| Zitat von Co the wizard
Ich bin einfach unfähig mit Funktionen zu arbeiten und diese anständig aufzurufen.
| |
Was studierst du?
| |
Wirtschaftsingenieur für Informations-und Elektrotechnik
|
[Dieser Beitrag wurde 2 mal editiert; zum letzten Mal von Co the wizard am 07.05.2017 19:38]
|
|
|
|
|
|
kurze blöde frage:
ich hab bei no-ip.com eine domain, bei meinem speedport in die maske die entsprechenden daten eingetragen. das reicht doch aus um dafür zu sorgen dass der anbieter immer die aktuelle ip bekommt, richtig?
|
|
|
|
|
|
|
|
|
|
|
Danke!
|
|
|
|
|
|
|
Ich suche ein Tool mit dem ich eine Statistik über meine Outlookmails erstellen kann. Häufigster Mailpartner, Mailtraffic, etc. Xobni konnte das mal. Gibt es aber leider nicht mehr. Vielleicht kennt ja jemand was passendes.
Edit: Topalt Reports for Outlook ist genau das was ich suche.
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von mindX am 08.05.2017 15:18]
|
|
|
|
|
|
Ich hab ein WLAN-Gastnetz offen welches nur den Port 80 freigibt. Scheinbar reicht dies nicht für WhatsApp, Nachrichten werden nur geladen wenn man bewusst die App öffnet und aktualisiert.
Zufällig einer ne Idee was noch auf muss damit es automatisch geht?
|
|
|
|
|
|
|
|
|
|
|
ich hab, neben 2 SSDs, ne uralt WD Blue in meinem Rechner, 1TB.
Das Festplatten"geknarze" nervt mittlerweile und vom Verhalten her geht die wohl bald in die Knie, genutzt wurde sie als Datengrab.
Nun stellt sich die Frage: Kaufe ich ne neue WD Red las neues Datengrab, oder kaufe ich eine M2 SSD als Maindisk, verwende die Aktuelle Maindisk (850 Evo 500gb) als Datengrab und kauf nochmal ne 500gb SSD als Datengrab dazu?
Wie sind die neuen HDDs punkto Geräusche und Lautstärke?
|
|
|
|
|
|
|
Ich hab vor kurzem eine sieben Jahre alte Seagate gegen eine WD Blue getauscht und war baff, um wieviel die leiser ist.
Keine Ahnung, ob das nur an 7200 vs 5400 liegt ...
|
|
|
|
|
|
|
Die Red sind zumindest nicht auf Lautstärke optimiert.
|
|
|
|
|
|
|
ich hab mir im november eine hitachi(?) 3tb festplatte gekauft. hört man fast nicht. auch die zugriffsgeräusche sind verschwindend leise. kein vergleich mit den alten, lauten ratternden dingern.
|
|
|
|
|
|
|
Hitachi macht Festplatten?
|
|
|
|
|
|
|
jein, früher ja. aber 2015 hat westerndigital hgst aufgekauft.
|
|
|
|
|
|
|
Die machen doch alles.
|
|
|
|
|
|
|
Ne super dumme Frage, aber ich finds nicht:
Ich möchte folgende Funktion in Outlook aktivieren (ging mal, nun nicht mehr, kp warum):
Wenn ich antworte und in der vorherigen Email (also unten in der Historie) kommentiere, dass dort automatisch der Name eingefügt wird, also so:
|
Code: |
Deine Mudda riecht (Flitze) Jo, was sonst? |
|
Welchen Schalter suche ich?
Thx!
|
|
|
|
|
|
|
| Zitat von Tobit
Keine Ahnung, ob das nur an 7200 vs 5400 liegt ...
| |
Tut es.
|
|
|
|
|
|
|
|
|
|
|
Danke Bitte Tschüss
|
|
|
|
|
|
|
Wo bekomme ich ne Windows 10 Education ISO her, die auf dem aktuellen Build inklusive Creators Update basiert? Das Media Creation Tool baut mir a) keinen UEFI only kompatiblen USB-Stick und ist b) laut Google nicht mit der Education Version kompatibel.
Leider ist die ISO aus dem Microsoft Dreamspark Store etwas veraltet.
Ich lade gerade von hier (Link ueber eine Frage auf Superuser gefunden) ein entsprechendes ISO runter, das jedoch im Dateinamen Insider Preview hat. Ich hab aber keine Lust auf Insider Preview. Und ich hab auch keine Lust mit dem alten Build zu installieren und dann zu updaten.
Jemand Ideen?
|
|
|
|
|
|
|
|
|
|
|
Danke. Weisst du etwas ueber die Herkunft?
|
|
|
|
|
|
|
|
|
|
|
Ok, danke. Wenn die identisch sind, spar ich mir den erneuten Download.
|
|
|
|
|
|
|
Moin,
hab ein Problem mit meinem Monitor Setup.
Hab einen neuen 27 Zoll 4k Monitor und zwei alte Dell u2312hm. Soweit passt auch alles und ich kann diese (problemlos) betreiben.
Nur die Skalierung der Monitore (also das Verhältnis vom 23" zu 27") passt in den Systemeinstellungen gar nicht. Der große 27" Monitor steht jetzt in der Mitte zwischen den beiden 23".
Wenn ich meine Maus vom mittleren Bildschirm zu einem der beiden äußeren bewege passt die Position nicht mehr. Windows berechnet wohl nach Pixel (von unten) wo die Maus sich gerade auf dem Monitor befindet und übergibt diesen Wert wohl auf die anderen Monitore.
In den Systemeinstellungen ist auch der 4k Monitor doppelt so groß wie die 1080p Monitore, was nicht die Realität wiederspiegelt. In Echt ist der 27"er von der Höhe her nur ca 3 cm größer, und nicht doppelt so groß. Habe für beide Monitore schon die Treiber aktualisiert. Ist es möglich 1080p und 4k Monitore nahtlos nebeneinander zu betreiben? Gibt's irgendeinen fix?
Hoffe das Problem ist nachvollziehbar. Jemand ne Idee?
|
|
|
|
|
|
|
Du kannst in den Windows Einstellungen angeben ob die Monitore einen höhenversatz haben. Einfach per draganddrop verschieben.
E: so kannst du das Problem zumindest abmildern!
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Nose am 09.05.2017 19:23]
|
|
|
|
|
Thema: Informatiker helfen PC-Neulingen ( Warum will der Scheiß denn jetzt nicht...? ) |