προγραμματισμός σε c -

...ασύγχρονα μαθήματα γλώσσας C

προγραμματισμός σε c -

Δημοσίευσηαπό vovosm7 » 05 Απρ 2013, 11:33

εχω προβλημα με μία ασκηση στη c
να κάνετε πρόγραμμα στη γλώσσα c το οποίο κάνε
1) να ορίζει μια struct student με το εξής πεδία, όνομα, επίθετο, αμ, ετος γεννησης
2) να δεσμεύει δυναμικά χώρο μνήμης για 100 struct student
3) να διαβάζει και να αποθηκευει τα 100 struct student
4) να τους εμφανίζει στην οθόνη
5) να τα ταξινομεί κατά αυξουσα σειρά ως προς το επίθετο
6) να τους εμφανίζει στην οθόνη
7) να τα ταξινομεί κατά αυξουσα σειρά
8) ν ατους εμφανίζει στην οθόνη
9) να τους αποηθκευει σε ενα αρχειο
10) να ελευθερωνει το χωρο μνήμης
LYSH

Κώδικας: Επιλογή όλων
#include <stdio.h>
#define MAX 100
Struct student {
char onoma[20];
char eponimo[25];
int am;
int year;
};
int main()
{
struct student *ptr;

ptr=(struct student*)malloc(100*sizeof(struct student));
int i,num;

struct student studs[MAX];
num = 0;
for(i = 0; i < MAX, i++)
{
printf("\Enter student data:\n");
printf("onoma: ");

scanf("%s",&(ptr+i)->onoma);
printf("Last name: " eponimo);
scanf("%s",&(ptr+i)-> eponimo);

printf("Code: ");
scanf("%d", &(ptr+i)-> am);
printf("ilikia ");
scanf("%f",&(ptr+i)-> year);
}

DEN XERO TI NA KANO
Τελευταία επεξεργασία από konnn και 25 Απρ 2013, 21:44, έχει επεξεργασθεί 2 φορά/ες συνολικά
Αιτία: Τον κώδικα τον βάζουμε σε [code] bbcode
vovosm7
babeTUX
babeTUX
 
Δημοσιεύσεις: 2
Εγγραφή: 05 Απρ 2013, 10:34
Εκτύπωση

Re: προγραμματισμός σε c -

Δημοσίευσηαπό tzdyktias » 25 Απρ 2013, 19:42

Κώδικας: Επιλογή όλων
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <fcntl.h>
#include <unistd.h>
#define MAX 3
struct student {
   char onoma[20];
   char eponimo[25];
   int am;
   int year;
};

int main(int argc, char *argv[]) {
   struct student *ptr,*step;

   ptr=(struct student*)malloc(100*sizeof(struct student));
   int fd,i,j;
   char am[20],year[20];
   struct student studs[MAX];
   
   fd = open("catalog.txt", O_RDWR | O_CREAT , 0777);
   if(fd<0){
      perror("fd error");
   }
   
   for(i = 0; i < MAX; i++)
   {
   printf("Enter student data:\n");
   printf("onoma: ");

   scanf("%s",(ptr[i]).onoma);
   printf("Last name: ");
   scanf("%s",(ptr[i]).eponimo);

   printf("Code: ");
   scanf("%d", &(ptr[i]).am);
   printf("ilikia ");
   scanf("%d",&(ptr[i]).year);
   
   }
   
   for(i = 0; i < MAX; i++) {
      
      printf("%s\t",(ptr[i]).eponimo);
      printf("%s\t",(ptr[i]).onoma);
      printf("%d\t", (ptr[i]).am);
      printf("%d\t",(ptr[i]).year);
      printf("\n");
      
   }
   
   for(i=0; i<MAX; i++) {
      for(j=0; j<MAX; j++) {
         if(strcmp(ptr[i].eponimo, ptr[j].eponimo) < 0){
            step = ( struct student*)malloc(sizeof(struct student));
            strcpy(step[0].eponimo,ptr[j].eponimo);
            strcpy(step[0].onoma,ptr[j].onoma);
            step[0].am = ptr[j].am;
            step[0].year = ptr[j].year;
            
            strcpy(ptr[j].eponimo, ptr[i].eponimo);
            strcpy(ptr[j].onoma, ptr[i].onoma);
            ptr[j].am = ptr[i].am;
            ptr[j].year = ptr[i].year;
            
            strcpy(ptr[i].eponimo, step[0].eponimo);
            strcpy(ptr[i].onoma, step[0].onoma);
            ptr[i].am = step[0].am;
            ptr[i].year = step[0].year;
            
            free(step);
         }
      }
   }
   printf("with taxinomisi\n");
   for(i = 0; i < MAX; i++) {
      
      printf("%s\t",(ptr[i]).eponimo);
      printf("%s\t",(ptr[i]).onoma);
      printf("%d\t", (ptr[i]).am);
      printf("%d\t",(ptr[i]).year);
      printf("\n");
      
   }
   
   for(i=0; i<MAX; i++) {
      write(fd, ptr[i].eponimo,sizeof(ptr[i].eponimo)*sizeof(char));
      write(fd, "\t", sizeof(char));
      write(fd, ptr[i].onoma, sizeof(ptr[i].onoma)*sizeof(char));
      write(fd, "\t", sizeof(char));
      sprintf(am, "%d", ptr[i].am);
      printf("%s", am);
      write(fd, am, sizeof(am)*sizeof(char));
      write(fd, "\t", sizeof(char));
      sprintf(year, "%d", ptr[i].year);
      write(fd, year, sizeof(year)*sizeof(char));
      write(fd, "\n", sizeof(char));
   }
   close(fd);
   free(ptr);
   return 0;
}
Τελευταία επεξεργασία από the_eye και 25 Απρ 2013, 20:40, έχει επεξεργασθεί 1 φορά/ες συνολικά
Αιτία: Τον κώδικα τον βάζουμε σε [code] bbcode
tzdyktias
babeTUX
babeTUX
 
Δημοσιεύσεις: 2
Εγγραφή: 25 Απρ 2013, 19:38
Εκτύπωση

Re: προγραμματισμός σε c -

Δημοσίευσηαπό tzdyktias » 25 Απρ 2013, 19:46

ine oli i lisi tis askisis pou aneferes...an exi 3exasti kati kai to thes stile m minima....sorry gia tin grafi alla afti tin stigmi dn exo elliniko pliktrologio sta ubuntu....
tzdyktias
babeTUX
babeTUX
 
Δημοσιεύσεις: 2
Εγγραφή: 25 Απρ 2013, 19:38
Εκτύπωση

Re: προγραμματισμός σε c -

Δημοσίευσηαπό the_eye » 25 Απρ 2013, 20:40

Τον κώδικα τον βάζουμε μέσα σε [cοde]κώδικας[/cοde]. Επιλέγουμε το κείμενο και πατάμε το κουμπάκι Εικόνα.



Μεταφέρθηκε στην κατάλληλη ενότητα

Όσο λιγότερο κλειστό λογισμικό έχεις, τόσα λιγότερα προβλήματα.
1 Γνώσεις ⇛ Linux: Καλό ┃ Προγραμματισμός: Ναι PHP, MySQL ┃ Αγγλικά: Καλά
2 Ubuntu 22.04 Jammy Jellyfish 5.15.0-58-generic 64bit (el_GR.UTF-8, ubuntu:GNOME ubuntu)
3 Intel Core i3-6100 CPU @ 3.70GHz ‖ RAM 7836 MiB ‖ Gigabyte B150M-HD3 DDR3-CF - Gigabyte B150M-HD3 DDR3
4 Intel HD Graphics 530 [8086:1912] {i915}
5 enp1s0: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 15)
Οδηγοί Ubuntu Βίντεο Οδηγοί
Άβαταρ μέλους
the_eye
Διαχειριστής
Διαχειριστής
 
Δημοσιεύσεις: 11672
Εγγραφή: 16 Μαρ 2010, 17:19
Launchpad: ntoulasd
IRC: the_eye_
Εκτύπωση


Επιστροφή στο Μαθήματα C