xeddicus
02-10-2011, 14:47
Salve a tutti.è il mio primo post,ma credo che mi troverò spesso a scrivere qui.sono uno studente di 4° superiore e volevo sapere come mai in questo mio programma mi da l'errore dove indicato.è già la seconda volta che me lo dice su codici diversi,solo che uno l'ho risolto,questo no!
grazie dell'aiuto.
#include <stdio.h>
#include <stdlib.h>
/*caricare vett animali --> FATTO
caricamento vet a-b-c --> FATTO
scivere una funzione che ricerchi il nome più corto.
Chiamare la funzione in modo che venga applicato al 1 vet,al 2,al 3 e visualizzi ogni volta il nome più lungo e poi più corto.*/
typedef struct animal
{
char nome[30];
}fattoria;
void load_animals(fattoria anim[],int n)
{
int i=0;
printf("\n Scrivi il nome di %d animali che inizino per a, b o c.\n",n);
for(i=0; i<n; i++)
scanf("%s",&anim[i]);
}
void divide(fattoria anim[],fattoria vet[],int n,char lett)
{
int i=0,k=0;
for(i=0; i<n; i++)
if(anim[i].nome[1]==lett){
vet[k]=anim[i];
k=k+1;
}
}
void find_minus(fattoria vet[],char minimo[],int x)
{
int i=0;
char lett[]="zzzzzzzzz";
int min_num=0;
for(i=0; i<x; i++){
min_num=strcmp(vet[i].nome,lett);
if(min_num<0)
lett=vet[i].nome; //incopatible tpes in assignment.cosa sbaglio??
}
}
int main(int argc, char *argv[])
{
//inizializzazioni
int n=10;
fattoria animali[n];
fattoria a[n],b[n],c[n];
int i=0;
char lettera;
char min1[n],min2[n],min3[n];
//funzioni e operazioni
load_animals(animali,n);
lettera='a';
divide(animali,a,n,lettera);
lettera='b';
divide(animali,b,n,lettera);
lettera='c';
divide(animali,c,n,lettera);
find_minus(a,min1,n);
find_minus(b,min2,n);
find_minus(c,min3,n);
system("PAUSE");
return 0;
}
:D
moltiguardano ma poci aiutano...si può sapre perchè?non sono riuscito a trovare soluzioni su internet,e on sono espertissimo.potete/volete darmi una mano?
grazie
grazie dell'aiuto.
#include <stdio.h>
#include <stdlib.h>
/*caricare vett animali --> FATTO
caricamento vet a-b-c --> FATTO
scivere una funzione che ricerchi il nome più corto.
Chiamare la funzione in modo che venga applicato al 1 vet,al 2,al 3 e visualizzi ogni volta il nome più lungo e poi più corto.*/
typedef struct animal
{
char nome[30];
}fattoria;
void load_animals(fattoria anim[],int n)
{
int i=0;
printf("\n Scrivi il nome di %d animali che inizino per a, b o c.\n",n);
for(i=0; i<n; i++)
scanf("%s",&anim[i]);
}
void divide(fattoria anim[],fattoria vet[],int n,char lett)
{
int i=0,k=0;
for(i=0; i<n; i++)
if(anim[i].nome[1]==lett){
vet[k]=anim[i];
k=k+1;
}
}
void find_minus(fattoria vet[],char minimo[],int x)
{
int i=0;
char lett[]="zzzzzzzzz";
int min_num=0;
for(i=0; i<x; i++){
min_num=strcmp(vet[i].nome,lett);
if(min_num<0)
lett=vet[i].nome; //incopatible tpes in assignment.cosa sbaglio??
}
}
int main(int argc, char *argv[])
{
//inizializzazioni
int n=10;
fattoria animali[n];
fattoria a[n],b[n],c[n];
int i=0;
char lettera;
char min1[n],min2[n],min3[n];
//funzioni e operazioni
load_animals(animali,n);
lettera='a';
divide(animali,a,n,lettera);
lettera='b';
divide(animali,b,n,lettera);
lettera='c';
divide(animali,c,n,lettera);
find_minus(a,min1,n);
find_minus(b,min2,n);
find_minus(c,min3,n);
system("PAUSE");
return 0;
}
:D
moltiguardano ma poci aiutano...si può sapre perchè?non sono riuscito a trovare soluzioni su internet,e on sono espertissimo.potete/volete darmi una mano?
grazie