#include <cs50.h> #include <stdio.h> int example[]; int main(void) { int example = {1,2,3}; for (int i = 0; i < 3; i++) { printf("%i \n", example[i]); } }
Miksi tämä antaa minulle virheilmoitukset: ”Ylimääräiset elementit skalaarialustuksessa” kohdassa ”2” taulukossa ”määritän”, ja virheilmoitus ”Substited value is not a matric, point or vector” on ”[i]” my yritettäessä tulostaa taulukon I kokonaislukua?
Kiitos.
Kommentit
Vastaa
Sinun on asetettava taulukon koko.
IE:
int example[10];
sitten voit tehdä tämän asetellaksesi taulukon ensimmäinen elementti 1:
example[0] = 1;
Et voi kuitenkaan tehdä tätä:
int example[10]; example = {1, 2, 3};
Jos olet jo määrittänyt taulukon, kääntäjä odottaa sinun määrittävän taulukon elementin (IE: [0]), jonka haluat määritellä (tai muuttaa), niin mitä haluat määrittää tälle elementille ( IE: 1).
Jos haluat koon asettamisen automaattisesti, voit poistaa tämän:
int example[];
ja kirjoittaa tämän:
int example[] = {1, 2, 3};
kääntäjä tietää, että määrität taulukon ja asetat 3 elementin arvojen arvoksi 1, 2 ja 3.
Koodisi tulisi näyttää tältä:
#include <cs50.h> #include <stdio.h> int main(void) { int example[] = {1,2,3}; for (int i = 0; i < sizeof(example) / 4; i++) { printf("%d\n", example[i]); } }
Toivottavasti tämä auttaa! 🙂
Vastaa
Tekemällä
int example[];
aloitat osoittimen matriisiin, jonka kokoa ei ole määritelty. Sen jälkeen kohdassa
int example = {1,2,3};
sinä lisäät osoittimeen arvoja, mikä on epäloogista eikä sillä ole mitään merkitystä. Voit tehdä sen vain kuten
int example[3]; int example = {1,2,3};
Toivottavasti tämä auttaa!
example
olevan? kuinka monta elementtiä yrität työntääexample
?