Stesso esercizio

di il
4 risposte

Stesso esercizio

Sono andato avanti con l'esercizio ma il do while non mi funziona:
#include <stdio.h>
#include <stdlib.h>
#define N 80
int main()
{
    char s[N],nome[N],sesso,nomed,nomeu;
    int peso,i,j,maxu=0,maxd=0;
    do{
    printf("Inserire i dati:");
    fgets(s,N,stdin);
    if(s!='fine'){
        sscanf(s,"%s %c %d",nome,&sesso,&peso);
        }
        if (sesso=='d'){
            if (peso>maxd){
                maxd=peso;
                nomed=nome;
            }
        }
        if (sesso='u'){
            if(peso>maxu){
                maxu=peso;
                nomeu=nome;
            }
        }
    }
        while (s!='fine\n');
    printf("La donna che pesa di più è %s che pesa %c\n",nomed,maxd);
    printf("L'uomo che pesa di più è %s che pesa %c",nomeu,maxu);

4 Risposte

  • Re: Stesso esercizio

    Visto che non so nulla del tuo esercizio, ci spieghi cosa non funziona e cosa dovresti fare?
  • Re: Stesso esercizio

    Mi accodo ad oregon, ma nel frattempo vorrei precisarti che nel do while hai inserito alcune righe di codice inesatte, o meglio, se vuoi leggere le informazioni da un file sarebbero anche un po' esatte (correggi l'sscanf ), ma se invece vuoi l'inserimento da tastiera hai sbagliato completamente le funzioni da usare

    Quello che mi sembra di capire dal codice è che le tue intenzioni tendano alla seconda opzione, quindi, tanto per iniziare a dare un'aggiustatina, prova a cambiare gli fscanf e fprintf in semplici scanf e printf (quindi eliminando i primi caratteri "s," e rinominando appunto fscanf in scanf ecc..).

    Altra cosa: non so se usare l'fgets in quel modo sia proprio, ma, anche se lo fosse, c'è il tanto amato scanf che fa la stessa identica operazione

    Spero di esserti stato utile
  • Re: Stesso esercizio

    Praticamente leggo da tastiera una stringa di tre elementi separati da uno spazio nome sesso peso e devo dire chi pesa di più tra le donne e tra gli uomini...
  • Re: Stesso esercizio

    Intanto, nomed e nomeu devono essere due vettori di char come nome[N]

    E poi, quando assegni una stringa all'altra non puoi usare = in C. Devi usare una funzione apposita, ad esempio la strcpy (ma penso te l'abbiano detto ...)
Devi accedere o registrarti per scrivere nel forum
4 risposte