freestuff.gr αρχική σελίδα
 FAQFAQ    ΑναζήτησηΑναζήτηση   Λίστα ΜελώνΛίστα Μελών   Ομάδες ΜελώνΟμάδες Μελών   <b>Εγγραφή Μέλους</b>Εγγραφή Μέλους 
 ΠροφίλΠροφίλ   Επιλογές μέλους Επιλογές   Τα bookmarks μου Τα bookmarks μου   Προσωπικά μηνύματαΠροσωπικά μηνύματα 
  διαφήμιση  

Καλώς ήρθατε στο forum μας! Για να συμμετάσχετε στις συζητήσεις θα πρέπει να είσαστε μέλος. Γίνετε μέλος τώρα!.

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


 Forum index » Δημιουργία Web Sites, Γραφικών & Προγραμματισμός » Γλώσσες Προγραμματισμού » C, C++
Moderators:  Super-Moderators, WebDev Moderators
Εισαγωγή νέου Θέματος   Απάντηση στο Θέμα Σελίδα 1 από 1 [8 Μηνύματα]      Bookmarks Tags: άσκησηΒοήθεια Mark the topic unread :: Προηγούμενο θέμα :: Επόμενο θέμα
ΑποστολέαςΜήνυμα
DarkLord22


Μέλος από: 20 Μαη 2010
Μηνύματα: 4

View users profile
ΜήνυμαΣτις: 20 Μαη 2010 23:52    Θέμα: Βοηθεια ολοκληρομενη ασκηση δεν δουλευει Απάντηση με παράθεση  Mark this post and the followings unread

έχω κάνει την άσκηση δεν μου βγάζει 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[i]=0;
if (i==MAX_LENGTH+1)
PIN[i]=-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

Μέλος από: 16 Σεπ 2005
Μηνύματα: 256+

View users profile Visit posters website
blog deviantART facebook linkedin 
ΜήνυμαΣτις: 21 Μαη 2010 00:29    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

κώδικας:
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)
                      ^

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


Μέλος από: 20 Μαη 2010
Μηνύματα: 4

View users profile
ΜήνυμαΣτις: 21 Μαη 2010 01:03    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

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


Μέλος από: 20 Μαη 2010
Μηνύματα: 4

View users profile
ΜήνυμαΣτις: 22 Μαη 2010 21:42    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

Και το 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

Μέλος από: 05 Μαρ 2004
Βοηθήματα: 1
Νέα: 1
Scripts: 1
Μηνύματα: 256+

Περιοχή: Ιωάννινα
View users profile
ΜήνυμαΣτις: 22 Μαη 2010 23:48    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

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

Αν δεν μπορείς να το κάνεις αυτό, τότε δηλώνεις άσχετος...

Last edited by soteres2002 on 22 Μαη 2010 23:49, edited 1 time in total
dva_dev
Script Master

Μέλος από: 16 Σεπ 2005
Μηνύματα: 256+

View users profile Visit posters website
blog deviantART facebook linkedin 
ΜήνυμαΣτις: 22 Μαη 2010 23:49    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

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

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


Μέλος από: 20 Μαη 2010
Μηνύματα: 4

View users profile
ΜήνυμαΣτις: 23 Μαη 2010 14:19    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

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


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

Μέλος από: 16 Σεπ 2005
Μηνύματα: 256+

View users profile Visit posters website
blog deviantART facebook linkedin 
ΜήνυμαΣτις: 24 Μαη 2010 23:41    Θέμα: Απάντηση με παράθεση  Mark this post and the followings unread

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

Καλύτερα μάλλον να το ξαναπιάσεις από την αρχή με πιο καθαρό μυαλό.
Εμφάνιση Μηνυμάτων:   
Εισαγωγή νέου Θέματος   Απάντηση στο Θέμα Σελίδα 1 από 1 [8 Μηνύματα] Mark the topic unread :: Προηγούμενο θέμα :: Επόμενο θέμα
 Forum index » Δημιουργία Web Sites, Γραφικών & Προγραμματισμός » Γλώσσες Προγραμματισμού » C, C++


Σχετικά θέματα
 Θέματα   Απ/σεις   Αποστολέας   Τελευταίο μήνυμα 
Πως μπορω να το κανω να τυπωνει κυκλικη λιστα 1 theophilos9077 30 Απρ 2015 12:42
gvre Εμφάνιση τελευταίου μηνύματος
 
Τώρα είναι 07 Δεκ 2016 20:14 | All times are UTC + 2


Email This Page to Someone! add to Favorites

     Powered by p h p B B © 2001,2005 p h p B B Group
Για άμεση επικοινωνία με τον διαχειριστή του freestuff.gr στο email: freestuff.gr(παπάκι)gmail.com


Copyright © 1999-2013 Freestuff.gr All Rights Reserved  
Version Aegean, designed by N. Tsaganos