Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Ongelmia C:n while-silmukassa

ete-world [29.06.2023 14:17:59]

#

#include <stdio.h>

int main() {

  int numero[30];
  printf("anna numero: ");
  scanf("%d", &numero);
  printf("numero on... %s", numero);

  while (numero < 10) {
    printf("%d\n", numero);
    numero++;

  }


}
jotain3.c: In function ‘main’:
jotain3.c:10:17: warning: comparison between pointer and integer
   10 |   while (numero < 10) {
      |                 ^
jotain3.c:12:11: error: lvalue required as increment operand
   12 |     numero++;
      |           ^~

Mikä tässä on vikana? En tajua virheilmoitusta.. Tää on mun ekoja koodeja joten olkaa armollisia :D:D

Grez [29.06.2023 14:47:40]

#

Sulla on joukko jossa on 30 kokonaislukua ja vertailet tätä joukon alkuosoitetta numeroon kymmeneen (varoitus) ja sitten koitat kasvattaa koko joukon alkuosoitetta yhden suuremmaksi (virhe).

Kaiken kaikkiaan tuo vaikuttaisi järkevämmältä jos poistaisit [30] tuosta, jolloin sinulla ei olisi joukkoa numeroita, vaan vain yksi numero.

ete-world [29.06.2023 15:20:16]

#

Poistin sen 30. Nyt tulee tällänen virheilmoitus...

jotain kirjoitti:

anna numero: 6
zsh: segmentation fault ./a.out

Metabolix [29.06.2023 15:51:13]

#

Sinulla on tulostuksessa %s vaikka pitäisi olla %d. Jos laittaisit kääntäessä kaikki varoitukset käyttöön, nykyinen gcc osaisi varmaan kertoa tämänkin virheen. Eli kannattaa lisätä käännöskomentoon seuraavat parametrit: -Wall -pedantic -Og

(Huom, merkkaa viesteissä koodit ja tulosteet koodina eikä lainauksena, niin saa paremmin selvää.)

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta