Codice:
#include<stdio.h>
#include<stdlib.h>
#define N 10
typedef struct
{
int pettorine;
float tempo;
}atleti;
void shifts (atleti x[],atleti temp,float numero2);
int main()
{
atleti v [N],temp;
int i,k,j,count=0,stato,pettorina;
const int mid=(N/2)-1;
float tempi;
char scelta;
for(i = 0 ; i <10; i++)
{
do
{
printf("\ninserisci il tempo:");
scanf("%f",&v[i].tempo);
printf("\ninserisci il numero di pettorina:");
scanf("%d",&v[i].pettorine);
}while(v[i].tempo<=0);
}
system("cls");
do
{
do
{
stato==;
printf("\n inserisci un nuovo tempo:");
scanf("%f",&tempi);
printf("\n insersci un numero di pettorina");
scanf("%d",&pettorina);
}while(tempi<=0||pettorina<=0);
printf("\nse vuoi inserire un nuovo tempo premi Y:");
printf("\nse vuoi uscire dal programma premi N");
printf("\nscelta:");
scanf("%s",&scelta);
shifts (temp,tempi);
}while(scelta=='Y'||scelta=='y');
printf("----top ten corridori:----");
for(i = 0;i < N ; i++)
{
printf("\nposizione:%d atleta tempo:%8.2f",++count,&v[i].tempo);
}
printf("\n\npremi un tasto per continuare....");
}
void shifts( atleti x[], atleti temp, float numero2)
{
int i,k,stato=0;
if(numero2<x[0].tempo)
{
for( i=9;i>0;i--)
{
x[i]=x[i-1];
}
x[0].tempo=numero2;
}
for( i=9;i>0 &&stato==0;i--)
{
if(numero2<x[i].tempo&&numero2>x[i-1].tempo)
{
printf("here");
stato==1;
for( k=9;k>i;k--)
{
x[k]=x[k-1];
temp=x[k-1];
x[k]=temp;
}
x[i].tempo=numero2;
stato=1;
}
}
return;
}
L'errore riportato è il seguente: 56 22 C:\Users\iolor\Documents\Quella buona.cpp [Error] cannot convert 'atleti' to 'atleti*' for argument '1' to 'void shifts(atleti*, atleti, float)'
L'ide utilizzato e devc++,versione compilatore: TDM-GCC 4.9.2.]
Grazie per il vostro aiuto.