Array an gewissen Stellen überspringen?

1 Antwort

mit einer if-Anweisung

{if (i <> 2) scanf_s("%c", &array[i]); }

Hm... Das gilt jetzt nur für ein bestimmtes Element. Wenn ich jedoch sagen möchte, dass ich bestimmte Felder bei einem größeren Array überspringen möchte, ohne sie vorher definiert zu haben, also wie jetzt in der if, ist das auch möglich? 

0
@Maddin337

irgend iwe musst Du ja definieren, welche Felder das sein sollen. Dafür musst Du eine Formel finden und in der if-Anweisung abfragen.

0

Speicher reservieren für sehr großes Array (C)?

Hallo!

Ich habe in C beispielsweise ein Array char arr[3000][3000] aber kann damit nichts machen weil mir beim kompilieren das Programm abstürzt, also dachte ich mir ich muss eventuell erst Speicher dafür reservieren mit malloc oder calloc oder etwas in der Art. Aber wie mache ich denn das bei so einem multidimensionalem Array? Und wie kann ich dann z.B. eingeben, dass auf jedem Feld in dem riesigen Array ein X steht? (Also ein riesiges Feld aus X'en)

LG V.

...zur Frage

C++ zweidimensionalen Array an Funktion übergeben?

Ja ich weiß das wurde schon hunderte male durchgekaut aber bei Fragen wie dieser geht es meist darum die größe des Arrays zu ermitteln aber mir geht es nur darum den Array zu übergeben und auf ihn zuzugreifen (ich weiß wenn man ihn "normal"(also ohne Zeiger auf ihn)übergibt kann man ihn nicht ändern aber das will ich auch garnicht ich will ihn einfach nur auslesen.(Das ganze soll übrigens mal das spiel des lebens werden)

Hier der Code:

#include<iostream>
#include<windows.h>
using namespace std;
const int x=12; const int y=8;


void ausgeben(char feld[][]){ int j,i;


for(i=0;i<y;i++){


    for(j=0;j<x;j++){


        if(feld[i][j]){             cout<<"#";         }else{             cout<<" ";                         }         }  cout<<endl;


} }


int main(int argc,char* argv[]){ char feld[y][x]{{0,0,1,0,0,0,0,1,0,0,0,0},                 {0,0,1,0,0,0,1,0,0,0,0,0},                 0,0,1,0,,0,1,0,0,0,0,0,0},                 {0,0,1,0,1,0,0,0,0,0,0,0},                 {0,0,1,1,0,0,0,0,0,0,0,0},                 {0,0,1,0,1,0,0,0,0,0,0,0},                 {0,0,1,0,0,1,0,0,0,0,0,0},                 {0,0,1,0,0,0,1,0,0,0,0,0}};


ausgeben(feld);

return 0;
}

Hier die Fehlermeldungen:

||=== Build file: "no target" in "no project" (compiler: unknown) ===|

|8|error: declaration of 'feld' as multidimensional array must have bounds for all dimensions except the first|

||In function 'void ausgeben(...)':|

|15|error: 'feld' was not declared in this scope|

||In function 'int main(int, char)':|

|32|warning: extended initializer lists only available with -std=c++11 or -std=gnu++11|

|39|warning: overflow in implicit constant conversion [-Woverflow]|

|39|warning: overflow in implicit constant conversion [-Woverflow]|

|39|warning: overflow in implicit constant conversion [-Woverflow]|

|39|warning: overflow in implicit constant conversion [-Woverflow]|

|39|warning: overflow in implicit constant conversion [-Woverflow]|

|39|warning: overflow in implicit constant conversion [-Woverflow]|

|39|warning: overflow in implicit constant conversion [-Woverflow]|

|39|warning: overflow in implicit constant conversion [-Woverflow]|

||=== Build failed: 2 error(s), 9 warning(s) (0 minute(s), 1 second(s)) ===|

Und könnte mir jemand noch erklären wie ich die Fehlermeldungen wegbekomme ich verwende Code::Blocks mit dem GNU GCC Compiler ich war schon mal in den entsprechenden Einstellungen allerdings kenne ich mich damit nicht aus und will da nichts verstellen(aber musste ich bereits denn der Compiler verstand Anfangs den neuerern C++ standard nicht obwohl er aktuell ist)

...zur Frage

Wörterbuch programmiern in C

Hallo. :)

Ich hoffe von euch kann mir jemand meinen Fehler sagen. Ich soll nämlich ein Wörterbuch programmiern und wenn ich ein Wort eingeben, das ich in der Datenbank schon eingespeichter habe, funktioniert alles. Aber, wenn ein Wort kommt, dass noch nicht gespeichert ist, schmeißts mich immer raus. >.> ...eigentlich sollte eine Anfrage kommen, ob man das Wort speichern will...

also hier mal das Programm:

include<stdio.h>

include<conio.h>

include<string.h>

define MAX 100

typedef struct woerterbuch {

char wort[30+1];
char word[30+1];

}Buch;

void main() { int i=0; char search[20]; char suchen[20]; int zahl, gefunden=1, x=0; Buch liste[MAX]={"Hallo", "hello", "Auto", "car", "Sonne", "sun"};

printf("Geben Sie ein, ob Sie von Englisch auf Deutsch (1) oder von Deutsch auf Englisch (2) uebersetzen wollen! ");
scanf("%d", &zahl);

if(zahl==1)
{
    printf("\nGeben Sie ein englisches Wort ein, das Sie uebersetzen wollen! ");
    scanf("%s", search);

    do
    {   
        if(strcmp(search, liste[i].word)==0)
        {
            printf("Deutsch: %s ", liste[i].wort);
            x=1;
            gefunden=0;
        }

        i++;

    }while(x!=1);

    if(gefunden==1)
    {
        printf("\nIhr Wort ist nicht in der Datenbank enthalten!");
        /*printf("\nWenn Sie das Wort in die Datenbank hinzufügen wollen, drücken sie 1.");
        scanf("%d", add);

        if(add==1)
        {
            printf("Das deutsche Wort: ");
            scanf("%s", liste[i+1].wort);

            printf("Das englische Wort: ");
            scanf("%s", liste[i+1].word);
        }*/
    }
}

else
{
    printf("\nGeben Sie ein deutsches Wort ein, das Sie uebersetzen wollen! ");
    scanf("%s", suchen);

    do
    {   
        if(strcmp(suchen, liste[i].wort)==0)
        {
            printf("Englisch: %s ", liste[i].word);
            gefunden++;
            x=1;
        }
    i++;

    }while(x!=1);

    if(gefunden==1)
    {
        printf("\nIhr Wort ist nicht in der Datenbank enthalten!");
    }
}

getch();

}

Vielleicht kann mir hier jemand helfen. ? :)

Danke, schonmal im voraus. :)

P.S: und bitte keine Kommentare zum Stil oder sonst was...bin nicht das größte Genie im Programmiern, das weiß ich selber. :)

...zur Frage

Array erweitern in C?

Hallo.

Als Teil einer Methode in C zur Bestimmung, ob eine Zahl n eine perfekte Zahl ist (Summe aller echten Teiler von n ergibt n) will ich ein Array mit allen Teilern erstellen, welches dynamisch erweitert werden soll, bis alle Teiler enthalten sind. Danach soll man bestimmen können, dass die Zahl perfekt ist, wenn die Summe der Elemente n ergibt, und wenn nicht, dann nicht.

Wie kann ich das Array erweitern? Laut meinen Notizen kann man ein bestimmtes Element hinzufügen durch folgende Form (Beispiel): int array[] = { [7] = 42 } – dem achten Element wird der Wert 42 zugewiesen.

Hier mein bisheriges Programm. Der Wert von divisor soll als Element dem Array divisors[] hinzugefügt werden, wenn es sich um einen echten Teiler handelt, und zwar bis einschließlich der 1:

#include <stdio.h>
int main()
{
  int n,m,divisor,divisors[m];
  m = 0;
  printf("Geben Sie eine ganze Zahl ein.\n");
  scanf("%d",&n);
  for (divisor = n; divisor > 0;) {
    if (n % divisor == 0) {
      m++;
      divisors[m] = {[m] = divisor};
    }
    divisor--;
  }
  return 0;
}

Da meckert der aber rum:

main.c:11:27: error: expected expression before '{' token

Wie muss ich das schreiben, damit es funktioniert?

...zur Frage

Was ist der Unterschied zwischen: scanf("%i",&x); und scanf("%i",x);

Hi Leute frage steht zwar oben aber hier noch mal mit einem Beispiel programm:

include

int main() {

int x;

printf("\nBitte gebe eine Zahl ein\n");

scanf("%i",&x); //Hier meine ich den Unterschied zwischen scanf("%i",x);scanf("%i",&x);

printf("\nDu bist %i Jahre alt!",x);

return 0;

}

Also der Unterschied zwischen 'scanf("%i",&x);' und 'scanf("%i",x);'

Falls jemand rum meckern wollen würde (oder so) ich benutze nur Linux(ubuntu) KEIN windows!!!!

Danke für eure Hilfe

LG Niklas

...zur Frage

Java: Array mit Arrays füllen?

Wie ist es möglich ein Array (z.B. int [] i = new int[3]) mit weiteren 3 Arrays zufüllen? Dies brauche ich, damit ich drei Arrays mit unterschiedlicher länge erstellen kann(z.B. int [] i[0]= int [3]; int [] i[1] = int [4]; int [] i[2] = int [6];), die ich danach einfach dann mit ints befüllen kann (z.B. i[0][0]=1; i[0][1]=44;......).

Das obere Bsp. geht natürlich nicht ich bräuchte nur eine Variante, bei der ich den selben effekt am Ende habe.

Vielen Dank schonmal

...zur Frage

Was möchtest Du wissen?