Programma facile in c non funzionante

di
Anonimizzato14038
il
7 risposte

Programma facile in c non funzionante

Salve ragazzi, sono un dilettante alle prime armi, come esercizio dovrei scrivere un programma in C che acquisisca elementi non nulli da tastiera (il valore nullo interrompe l'acquisizione e non appartiene al vettore), verifichi se tutti gli elementi sono uguali e infine, dopo aver inserito un valore di riferimento, lo ricerchi e verifichi la sua presenza nel vettore e in caso positivo la sua posizione.
Ho provato in questo modo, ma non funge.
Spero possiate aiutarmi, grazie!

#include <stdio.h>
#include <stdlib.h>
#define MAX 100

int main()
{
int i,t,m,n,V[MAX], numero, trovato, uguale;
n=0;
for(m=0;m<MAX;m++)
{
printf("Inserire elementi del vettore\n V[%d]=",m);
scanf("%d",&t);
if(t!=0) {V[m]=t;
n=n+1;
}

else break;
}
printf ("Il vettore V è il seguente:\n");
for(m=0;m<n;m++)
printf ("Elemento %d : %d ",m,V[m]);
uguale = 1;
for (m=0;m<n && numero==1;m++)
{if (V[m]!=V[m-1]) uguale == 0;}
if ( uguale == 1) printf (" Gli elementi inseriti sono tutti uguali");
printf ("\n\nInserisci numero da cercare: ");
scanf("%d",&numero);
trovato = 0;
m=0;
for (m=0;m<n && trovato==0; m++)
{if (V[m]==numero)
trovato=1; else {
trovato = 0;}
}
if (trovato=1) printf("Il numero %d è nella posizione %d",numero,m-1);
else printf ("Il numero inserito non è un elemento del vettore");
getchar();
getchar();
return 0;
}

7 Risposte

  • Re: Programma facile in c non funzionante

    Ho provato in questo modo, ma non funge.
    cosa non funziona?
    Forse hai sbagliato questa assegnazione (stai facendo un confronto...)
    {if (V[m]!=V[m-1]) uguale == 0;}
  • Re: Programma facile in c non funzionante

    Se ad esempio inserisco 6 elementi e il settimo è uno zero, inserendo un elemento di riferimento non appartente al vettore mi dice che c'è ed è il settimo
  • Re: Programma facile in c non funzionante

    Qui invece di fare un confronto fai un'assegnazione
    if (trovato=1)
  • Re: Programma facile in c non funzionante

    Ok grazie mille, ora funziona!
  • Re: Programma facile in c non funzionante

    All'inizio è facile confondere == con =, quindi ti consiglio di verificare come prima cosa che dove fai un confronto effettivamente usi == e dove invece fai un'assegnazione utilizzi correttamente =. Controlla sempre, anche se apparentemente il programma funziona.
  • Re: Programma facile in c non funzionante

    Un modo per mitigare quel problema è abituarsi a scrivere in questo modo, ove possibile:
    if(1==trovato)
    Così se ci si dimentica un uguale il compilatore darà questo errore:
    lvalue required as left operand of assignment
  • Re: Programma facile in c non funzionante

    Ok, grazie davvero!
Devi accedere o registrarti per scrivere nel forum
7 risposte