Βοηθεια ολοκληρομενη ασκηση δεν δουλευει

Συζητήσεις για την γλώσσα C και C++

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
DarkLord22
Δημοσιεύσεις: 4
Εγγραφή: 21 Μάιος 2010 00:46

Βοηθεια ολοκληρομενη ασκηση δεν δουλευει

Δημοσίευση από DarkLord22 » 21 Μάιος 2010 00:52

έχω κάνει την άσκηση δεν μου βγάζει errors στο compile αλλά όταν το τρέχω μου βγάζει μαύρη οθόνη και δεν γίνετε τίποτα στην ουσία έχουμε έναν πίνακα 101 θέσεων και τον γεμίζουμε κάνουμε delete min/max και αλλά..


#include <stdio.h>
#include <stdlib.h>

#define GUARD -1
#define MAX_LENGTH 100

int main(void)
{


int i,s,j,del,k;
int count=0,count2=MAX_LENGTH+1;
int min,max;
int PIN[MAX_LENGTH+1];
for (i=0 ; i=MAX_LENGTH+1; i++){
PIN=0;
if (i==MAX_LENGTH+1)
PIN=-1;
}

do {
printf ("1-Insert item\n");
printf ("2-Display items\n");
printf ("3-Array length\n");
printf("4-Min/Max\n");
printf("5-Evens and Odds\n");
printf("6-Delete Item\n");
printf("7-Exit\n");

scanf("%d", &i);

switch (i)
{
case 1:
printf("Dwse ari8mo gia na eisagete: ");
scanf("%d", &s);
PIN[count]=s;
count++;
if (count=100) printf("O pinakas gemise");
PIN[count]=-1;
break;
case 2:
for(j=0;j<=count2-1;j++)
{
printf("%d", PIN[j]);
}
break;
case 3:
printf("%d", count);
break;
case 4:
min=PIN[0];
max=PIN[0];
for(j=0;j<=count2-1;j++)
{
if(min>=PIN[j])
min=PIN[j];
if(max<=PIN[j])
max=PIN[j];
}
printf("To megalytero stoixeio tou pinaka einai to %d\n ", max);
printf("to mikrotero einai to %d\n", min);
break;
case 5:
printf("Oi arties 8eseis einai oi:\n");
for(j=0;j<=count2-1;j+2)
{
printf("%d", PIN[j]);
}
printf("Oi perittes 8eseis einai oi:\n");
for(j=1;j<=count2-1;j+2)
{
printf("%d", PIN[j]);
}
break;
case 6:
printf("Dwse ton ari8mo pou 8es na diagrapseis: ");
scanf("%d", &del);
for(j=0;j<=count2;j++)
{
if(del==PIN[j])
{
for(k=j;k<=count2;k++)
{
PIN[k]=PIN[k++];
if(PIN[k]==-1)
break;
}
}
}
break;
case 7:
exit;
}

}while(i>=1 && i<7);

return 0;
}

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

Βοηθεια ολοκληρομενη ασκηση δεν δουλευει

Δημοσίευση από dva_dev » 21 Μάιος 2010 01:29

Κώδικας: Επιλογή όλων

line&#40;15&#41;&#58; warning #187&#58; use of "=" where "==" may have been intended
  for &#40;i=0 ; i=MAX_LENGTH+1; i++&#41;&#123; 
             ^

line&#40;39&#41;&#58; warning #187&#58; use of "=" where "==" may have been intended
  if &#40;count=100&#41; printf&#40;"O pinakas gemise"&#41;; 
      ^

line&#40;66&#41;&#58; remark #174&#58; expression has no effect
  for&#40;j=0;j<=count2-1;j+2&#41; 
                      ^

line&#40;71&#41;&#58; remark #174&#58; expression has no effect
  for&#40;j=1;j<=count2-1;j+2&#41; 
                      ^

line&#40;93&#41;&#58; remark #174&#58; expression has no effect
  exit; 
  ^
Για ξεκίνα κοιτώντας αυτά

DarkLord22
Δημοσιεύσεις: 4
Εγγραφή: 21 Μάιος 2010 00:46

Βοηθεια ολοκληρομενη ασκηση δεν δουλευει

Δημοσίευση από DarkLord22 » 21 Μάιος 2010 02:03

line(15): warning #187: use of "=" where "==" may have been intended
for (i=0 ; i=MAX_LENGTH+1; i++){ αυτο ετσι πρεπει να ειναι
^

line(39): warning #187: use of "=" where "==" may have been intended
if (count=100) printf("O pinakas gemise"); εδω εχεις δικιο
^

line(66): remark #174: expression has no effect
for(j=0;j<=count2-1;j+2) Count2=100 θεσεις πινακα αλλα την τελευταια δεν θελω να την πειραζει γιατι εχει -1 τιμη
^

line(71): remark #174: expression has no effect
for(j=1;j<=count2-1;j+2)
^

line(93): remark #174: expression has no effect
exit; το αλλαξα
^


Τιποτα :( παλλη μαυρη οθονη...

DarkLord22
Δημοσιεύσεις: 4
Εγγραφή: 21 Μάιος 2010 00:46

Βοηθεια ολοκληρομενη ασκηση δεν δουλευει

Δημοσίευση από DarkLord22 » 22 Μάιος 2010 22:42

Και το 3 θεμα της ασκησης δεν εχει σχεσει με το αλλο που ακομα δεν δουλευει

#include <stdio.h>
#include <stdlib.h>


#define MAX_LENGTH 100

int main(void){
int count=0;
char PIN[MAX_LENGTH],i;


do {
printf ("1-Insert Name\n");
scanf("%c", &i);
for (i=0 ; i=MAX_LENGTH+1; i++){
if (PIN[count]==i);
printf ("1-Name Found at:\n");
printf ("%c %d", PIN[count], count);
else if
PIN[count]=i;

}

count=count+1;




}while (i!='-');
}

C:\Users\Antonis\Desktop\8ema 3.cpp In function `int main()':
19 C:\Users\Antonis\Desktop\8ema 3.cpp expected primary-expression before "else"
19 C:\Users\Antonis\Desktop\8ema 3.cpp expected `;' before "else"

Άβαταρ μέλους
soteres2002
S. & H. Moderator
Δημοσιεύσεις: 1524
Εγγραφή: 05 Μαρ 2004 22:17
Τοποθεσία: Ιωάννινα

Βοηθεια ολοκληρομενη ασκηση δεν δουλευει

Δημοσίευση από soteres2002 » 23 Μάιος 2010 00:48

Ο κώδικάς σου όπως λένε και τα διαγνωστικά μηνύματα παραβιάζει πολύ βασικές συνθήκες για να λειτουργεί επαναληπτικά ένα for loop. Για κοίτα στην θεωρία σου πως γράφεις ένα λούπ και δες τα σφάλματα πάλι. Επίσης, σε κάποια σημεία δημιουργείς σύγχυση μεταξύ τελεστών ανάθεσης και σύγκρισης. Αυτά είναι βασικά (από την πρώτη μέρα ενός εισαγωγικού μαθήματος στον προγραμματισμό σε σχολή ΤΕΙ)!

Αν δεν μπορείς να το κάνεις αυτό, τότε δηλώνεις άσχετος...
Τελευταία επεξεργασία από το μέλος soteres2002 την 23 Μάιος 2010 00:49, έχει επεξεργασθεί 1 φορά συνολικά.

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

Βοηθεια ολοκληρομενη ασκηση δεν δουλευει

Δημοσίευση από dva_dev » 23 Μάιος 2010 00:49

Στη C, το = χρησιμοποιείται για καταχώρηση τιμής, το == για έλεγχο ισότητας.
Το j+2 δεν κάνει τίποτα. Το j+=2, όπως και το j=j+2 αυξάνει το j κατά 2.
Το if παίρνει οπωσδήποτε κάποια συνθήκη, ή οτιδήποτε μπορεί να μεταφραστεί σε false(0) / not false(<>0).
Το if παίρνει παίρνει μία εντολή μόνο, όπως μία εντολή μόνο μπορεί να πάρει και το else.
Αν χρειάζεσαι περισσότερες εντολές πρέπει να τις έχεις μέσα σε { }.
Η main πρέπει να επιστρέφει μια τιμή.
Πριν ξεκινήσεις να γράφεις κώδικα σε κάποια γλώσσα προγραμματισμού, πρέπει να έχεις λύσει την άσκηση. Κάτσε να γράψεις πρώτα τον αλγόριθμο στο χαρτί και μετά κάνε τον c κώδικα.

(ισχύει και για την προηγούμενη άσκηση).

DarkLord22
Δημοσιεύσεις: 4
Εγγραφή: 21 Μάιος 2010 00:46

Βοηθεια ολοκληρομενη ασκηση δεν δουλευει

Δημοσίευση από DarkLord22 » 23 Μάιος 2010 15:19

δουλεψε ενταξει τα {} ειχα ξεχασει
αν και το θεμα 1 δεν δουλευει παλλη μαυρη οθονη αλλα θα το βρω!


ευχαριστω πολλη !! για την υπομονη σας..

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

Βοηθεια ολοκληρομενη ασκηση δεν δουλευει

Δημοσίευση από dva_dev » 25 Μάιος 2010 00:41

Το 1ο θέμα σου έχει πολλά προβλήματα. Μερικά από αυτά που πρέπει να τσεκάρεις είναι:
1) Για ποιό λόγο αφού χρειάζεσαι πίνακα 100 θέσεων δημιουργείς πίνακα 101;
2) Σε τι σου χρειάζεται ο φύλακας στην τελευταία θέση του πίνακα;
3) Το loop που αρχικοποιεί τον πίνακα.
4) Πριν προσθέσεις ένα στοιχείο στον πίνακα, πρέπει να ελέγχεις αν είναι γεμάτος ή όχι. Αν δεν είναι επιτρέπεις την προσθήκη, αλλιώς εμφανίζεις κάποιο μήνυμα.
5) Πριν αφαιρέσεις ένα στοιχείο στον πίνακα, πρέπει να ελέγχεις αν είναι άδειος ή όχι.
6) Στα loop, άλλες φορές πάς μέχρι το count2, άλλες μέχρι το count2-1. Γιατί; Δεν ξέρεις πόσα στοιχεία έχει ο πίνακας σου;
7) Οι πίνακες στη C θυμήσου ότι ξεκινάνε από το 0. Πίνακας 100 θέσεων πάει από το 0 ως το 99. Στο -1 και το 100 καίγεσαι.

Καλύτερα μάλλον να το ξαναπιάσεις από την αρχή με πιο καθαρό μυαλό.

Απάντηση

Επιστροφή στο “C, C++”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης