Nazdar!
potreboval by som pomoc v programe
Za ulohu mam vytvorit program, ktory:
- nacita a zapise do suboru 10 struktur v tvare den,mesiac,rok,teplota(podprogram: vstup pocet struktur n a meno suboru)
- zrusi v subore pozadovany riadok
- vypise hodnoty celeho suboru
- udaje precita zo suboru a vypise usporiadane podla teploty
- vypise udaje o najteplejsom a najchladnejsom dni
a take nieco som zrobil viete mi pomoct prosim Vás?
Dakujem!
Kód:
#include <stdio.h>
#include <string.h>
typedef struct zaznam{
char den[30];
int mesiac;
int rok;
float teplota;
}ZAZNAM;
ZAZNAM zoznam[50];
void Den(int n);
void Mesiac(int n);
void Rok(int n);
void Teplota(int n);
main(){
int i=0;
char c;
int n;
do
{
printf("%d, zaznam\n-------------\n",i+1);
printf("Den: ");
scanf("%s",zoznam[i].den);
printf("Mesiac(cislo mesiaca): ");
scanf("%s",&zoznam[i].mesiac);
printf("Rok: ");
scanf("%d",&zoznam[i].rok);
print("Teplota: ");
scanf("%f",&zoznam[i].teplota);
getchar();
printf("--------------\n");
i++;
printf("Chcete pridat dalsie zaznamy? (a/n)\n");
c=getchar();
} while (c=='a');
n=i;
Den(n);
Mesiac(n);
Rok(n);
Teplota(n);
}
void Den(int n)
{
ZAZNAM ciel[n],pom;
int i,j;
for (i=0; i<n; i++)
{
strcpy(ciel[i].den,zoznam[i].den);
ciel[i].mesiac=zoznam[i].mesiac;
ciel[i].rok=zoznam[i].rok;
ciel[i].teplota=zoznam[i].teplota;
}
for (i=0; i<(n-1); i++)
for (j=0; j<(n-1); j++)
if (strcmp(ciel[j].den,ciel[j+1].den)>0)
{
strcpy(pom.den,ciel[j].den);
pom.mesiac=ciel[j].mesiac;
pom.rok=ciel[j].rok;
pom.teplota=ciel[i].teplota;
strcpy(ciel[j].den,ciel[j+1].den);
ciel[j].mesiac=ciel[j+1].mesiac;
ciel[j].rok=ciel[j+1].rok;
ciel[j].teplota=ciel[j+1].teplota;
strcpy(ciel[j+1].den,pom.den);
ciel[j+1].mesiac=pom.mesiac;
ciel[j+1].rok=pom.rok;
ciel[j+1].teplota=pom.teplota;
}
printf( "\nZaznamy zotriedenie pola Den\-----------------\n");
for (i=0;i<n;i++)
{
printf("Den: %s\n",ciel[i].den);
printf("Mesiac: %d\n",ciel[i].mesiac);
printf("Rok: %5.2f\n",ciel[i].rok);
printf("Teplota: %5.2\n",ciel[i].rok);
printf("----------------------------\n");
}
getchar();
}
void Mesiac(int n)
{
ZAZNAM ciel[n],pom;
int i,j;
for (i=0; i<n; i++)
{
strcpy(ciel[i].den,zoznam[i].den);
ciel[i].mesiac=zoznam[i].mesiac;
ciel[i].rok=zoznam[i].rok;
ciel[i].rok=zoznam[i].teplota;
}
for (i=0; i<(n-1); i++)
for (j=0; j<(n-1); j++)
if (ciel[j].mesiac>ciel[j+1].mesiac)
{
strcpy(pom.den,ciel[j].den);
pom.mesiac=ciel[j].mesiac;
pom.rok=ciel[j].rok;
pom.teplota=ciel[j].teplota;
strcpy(ciel[j].den,ciel[j+1].den);
ciel[j].mesiac=ciel[j+1].mesiac;
ciel[j].rok=ciel[j+1].rok;
ciel[j].teplota=ciel[j+1].teplota;
strcpy(ciel[j+1].den,pom.den);
ciel[j+1].mesiac=pom.mesiac;
ciel[j+1].rok=pom.rok;
ciel[j+1].teplota=pom.teplota;
}
printf("\nZaznamy zotriedene pola Mesiac\n-----------------------------\n");
for (i=0;i<n;i++)
{
printf("Den: %s\n",ciel[i].den);
printf("Mesiac: %d\n",ciel[i].mesiac);
printf("Rok: %5.2f\n", ciel[i].rok);
printf("Teplota: %5.2f\n",ciel[i].teplota);
printf("------------------------------\n");
}
getchar();
void Teplota(int n)
{
ZAZNAM ciel[n],pom;
int i,j;
for(i=0; i<n; i++)
{
strcpy(ciel[i].den,zoznam[i].den);
ciel[i].mesiac=zoznam[i].mesiac;
ciel[i].rok=zoznam[i].rok;
ciel[i].teplota=zoznam[i].teplota;
}
for (i=0; i<(n-1); i++)
for (j=0; j<(n-1); j++)
if (ciel[j].teplota>ciel[j+1].teplota)
{
strcpy(pom.den,ciel[j].den);
pom.mesiac=ciel[j].mesiac;
pom.rok=ciel[j].rok;
pom.teplota=ciel[j].teplota;
strcpy(ciel[j].den,ciel[j+1].den);
ciel[j].mesiac=ciel[j+1].mesiac;
ciel[j].rok=ciel[j+1].rok;
ciel[j].teplota=ciel[j+1].teplota;
strcpy(ciel[j+1].den,pom.den);
ciel[j+1].mesiac=pom.mesiac;
ciel[j+1].rok=pom.rok;
ciel[j+1].teplota=pom.teplota;
}
printf("\nZaznamy zotriedene pola Teplota\n-----------------------------\n");
for (i=0;i<n;i++)
{
printf("Den: %s\n",ciel[i].den);
printf("Mesiac: %s\n",ciel[i].mesiac);
printf("Rok: %5.2f\n", ciel[i].rok);
printf("Teplota: %5.2\n",ciel[i].teplota);
printf("------------------------------\n");
}
getchar();
}