Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Εδώ και κάμποσες μέρες προσπαθώ να φτιάξω ένα πρόγραμμα για εργασία το οποίο κάνει κράτηση θέσεων σε πτήσεις αεροπορικής εταιρίας η οποία έχει μόνο ένα αεροπλάνο. έχω γράψει τον κώδικα σε C αλλά δεν μπορώ να κάνω compile για κάποιον μυστήριο λόγο. δοκίμασα σε Microsoft Visual Studio 2010 και σε Bloodshed-C++. και τα δυο βγάζουν το ίδιο μήνυμα:

 

 

error C2143: syntax error : missing ';' before '{'

 

 

επίσης το Visual Studio μου βγάζει και τα ακόλουθα warnings:

 

 

ergasia2.c(15): warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.

ergasia2.c(16):warning C4013: 'While' undefined; assuming extern returning int

 

 

φαντάζομαι ότι όλη η δουλειά χαλάει λόγω του error και όχι των warnings.

 

ορίστε και ο κώδικας:

 

 

#include <stdio.h>

int main ()

{

//dilwsi metavlitwn

int ep, sum1=0, sum2=0, found, en_ep, i, k, sum=0, T[10];

//to sum einai o metritis pou athrizei tn arithmo tn kratimenwn thesewn

//arxikopoihsh - midensmos pinaka apothikeysis thesewn

for (i=0; i<10; i++)

{

T=0;

}

printf ("Parakalw pliktrologiste 1 gia Prwti Thesi, 2 gia Oikonomiki h 0 gia eksodo apo to programma \n");

scanf("%d", &ep);

While (ep!=0 && sum!=10)

{

if (ep=1)

{

found=0;

for (k=0; k<5; k++)

{

if (T[k]=0)

{

//pianw tn thesi

T[k]=1;

//ayksanw metriti kratimenwn thesewn

sum1=sum1+1;

//an vrethei thesi i found ginetai 1 alliws paramenei 0

found=1;

//ektipwnw thesi pou kratithike

printf ("\n Molis kratithike i %d thesi stn Prwti Thesi \n", k+1);

//teleiwnw tn for me ta k

break;

}

}

if (found=0)

{

printf ("Dn iparxei diathesimi thesi stn Prwti Thesi. Theleis stn Oikonomiki? An thes grapse 1 alliws 0 \n");

scanf ("%d", &en_ep);

if (en_ep=1)

{

for (k=5; k<10; k++)

{

if (T[k]=0)

{

//pianw tn thesi

T[k]=1;

//ayksanw metriti kratimenwn thesewn

sum2=sum2+1;

//an vrethei thesi i found ginetai 1 alliws paramenei 0

found=1;

//ektipwnw thesi pou kratithike

printf ("\n Molis kratithike i %d thesi stn Oikonomiki Thesi \n", k+1);

//teleiwnw tn for me ta k

break;

}

}

if (found=0)

{

printf ("Distixws dn iparxei diathesimi thesi stn Oikonomiki Thesi. \n H epomeni ptisi feygei se 4 wres \n");

}

}

else

{

printf ("\n H epomeni ptisi feygei se 4 wres \n");

}

}

}

if (ep=2)

{

found =0;

for (k=5; k<10; k++)

{

if (T[k]=0)

{

//pianw tn thesi

T[k]=1;

//ayksanw metriti kratimenwn thesewn

sum2=sum2+1;

//an vrethei thesi i found ginetai 1 alliws paramenei 0

found=1;

//ektipwnw thesi pou kratithike k tn katigoria

printf ("\n Molis kratithike i %d thesi stn Oikonomiki Thesi \n", k+1);

//teleiwnw tn for me ta k

break;

}

}

if (found=0)

{

printf ("Dn iparxei diathesimi thesi stn Oikonomiki Thesi. \n Theleis stn Prwti? An thes grapse 1 alliws 0 \n");

scanf ("%d", &en_ep);

if (en_ep=1)

{

for (k=0; k<5; k++)

{

//pianw tn thesi

T[k]=1;

//ayksanw metriti kratimenwn thesewn

sum1=sum1+1;

//an vrethei thesi i found ginetai 1 alliws paramenei 0

found=1;

//ektipwnw thesi pou kratithike k katigoria

printf ("\n Molis kratithike i %d thesi stn Prwti Thesi \n", k+1);

//teleiwnw tn for me ta k

break;

}

}

if (found=0)

{

printf ("Distixws dn iparxei diathesimi thesi stn Prwti Thesi. \n H epomeni ptisi feygei se 4 wres \n");

}

}

else

{

printf ("\n H epomeni ptisi feygei se 4 wres \n");

}

}

printf ("\n Parakalw pliktrologiste 1 gia Prwti Thesi, 2 gia Oikonimiki h 0 gia eksodo apo to programma \n");

scanf ("%d", &ep);

sum=sum1+sum2;

}

printf ("\n Stn Prwti Thesi exoun kratithei %d theseis \n", sum1);

printf ("Stn Oikonimiki Thesi exoun kratithei %d theseis \n", sum2);

//anti tis system("Pause") tha xrisimopoihsw tn entoli getchar() gia diaforous logous kiriws foritotitas tou programmatos se leitourgika sistimata

printf ("Pata opoiodipote pliktro gia eksodo... \n");

getchar ();

// axriasto to return 0;

}

 

 

 

 

το έχω κοιτάξει τόσες φορές το πρόγραμμα και δεν μπορώ να βρω που είναι το λάθος....

  • Απαντ. 53
  • Δημ.
  • Τελ. απάντηση

Συχνή συμμετοχή στο θέμα

Συχνή συμμετοχή στο θέμα

Δημοσ.

>while (ep!=0 && sum!=10)
{

 

γραμμες 16-17

 

// axriasto to return 0;

Αυτο ειναι λαθος.

 

Μην χρησιμοποιεις VS χρησιμοποιει Intel C++ compiler και αρκετες φορες παιζει να πεταει warning η και λαθη εκτος αν σου αρεσει το ide και θες να του ορισεις αλλο compiler πχ gcc

 

Εισαι σιγουρος οτι δουλευει σωστα?

Parakalw pliktrologiste 1 gia Prwti Thesi, 2 gia Oikonomiki h 0 gia eksodo apo t

o programma

1

 

H epomeni ptisi feygei se 4 wres

 

Parakalw pliktrologiste 1 gia Prwti Thesi, 2 gia Oikonimiki h 0 gia eksodo apo

to programma

2

 

H epomeni ptisi feygei se 4 wres

 

Parakalw pliktrologiste 1 gia Prwti Thesi, 2 gia Oikonimiki h 0 gia eksodo apo

to programma

0

 

Stn Prwti Thesi exoun kratithei 0 theseis

Stn Oikonimiki Thesi exoun kratithei 0 theseis

Pata opoiodipote pliktro gia eksodo...

 

Δεν σου δινω το λαθος αλλα εισαι σιγουρος το πως τσεκαρεις τα if που εχεις?

HINT:

 

>if (ep=1)
{
found=0;

Ειναι ιδιο αυτος που θες να κανεις μεσα στο ιφ με την επομενη εντολη?

 

Δημοσ.

το while θελει μικρο w (και γενικοτερα ολες οι native εντολες ειναι με μονο μικρα γραμματα)

επισης μεσα στα if, elseif, while οταν θελουμε να ελεξουμε αν μια μεταβλητη ειναι ιση με μια αλλη (ή με μια σταθερη τιμη) βαζουμε διπλο 'ισων'. Πχ

>int age;
scanf("%d", &age);
if (age == 0) //an vazame ena 'ison' tha eihame provlima
{
   printf("Eisai nini akoma...!!  \n");
}

Δημοσ.

...

επισης μεσα στα if, elseif, while οταν θελουμε να ελεξουμε αν μια μεταβλητη ειναι ιση με μια αλλη (ή με μια σταθερη τιμη) βαζουμε διπλο 'ισων'. Πχ

>
...
if (age == 0) //an vazame ena 'ison' tha eihame provlima
...
}

Απλώς να συμπληρώσω πως για να πιάνει ο compiler τέτοιου είδους απροσεξίες μας, όπως αυτή που επισημαίνει ο nilogr στο σχόλιο (κι εάν δεν χρησιμοποιούμε εργαλεία όπως το lint) τότε συνθήκες όπως η παραπάνω μπορούν να γράφονται με 1η τη σταθερά...

 

>
...
if (0 == age) //an vazame ena 'ison' ... θα το έπιανε ο compiler
...

Αυτό (σε αντίθεση με το 1ο) ΔΕΝ περνάει από τον compiler, χτυπάει έρορ.

Δημοσ.

παιδιά σας ευχαριστώ πολύ για την άμεση βοήθεια σας!

διόρθωσα το "While" και επίσης έβαλα και το return 0; (εγώ πάντως από όσο θυμάμαι ο καθηγητής μου είχε πει ότι είναι αχρείαστο για αυτό το έγραψα σαν σχόλιο κιόλας για να μην πει τίποτα).

δοκίμασα να τρέξω το πρόγραμμα με τις δυο παραπάνω διορθώσεις και πάλι τα ίδια...

 

 

Είσαι σιγουρος οτι δουλευει σωστα?

 

 

Δεν σου δινω το λαθος αλλα εισαι σιγουρος το πως τσεκαρεις τα if που εχεις?

HINT:

 

>if (ep=1)
{
found=0;

Ειναι ιδιο αυτος που θες να κανεις μεσα στο ιφ με την επομενη εντολη?

 

 

δεν κατάλαβα το λάθος παρ' όλο που είδα και το Hint...

το έχω κάνει έτσι με σκοπό όταν διαβάζει την επιλογή του χρήστη να βάζει την τιμή 0 στην found και να παραμένει έτσι εκτός και αν βρεθεί και κρατηθεί θέση στις επόμενες επαναλήψεις της συγκεκριμένης επιλογής... έτσι στο τέλος των επαναλήψεων τσεκάρω αν η found είναι 0 και του λέω αν θέλει θέση στην οικονομική ή αν είναι 1 απλά του τυπώνω την θέση που κρατήθηκε. και μετά το ίδιο ακριβώς γίνεται αν ψάξει στις οικονομικές...

 

 

edit: μόλις το έκανα compile στο Dev-C++ και έγινε κανονικά και τώρα το τσεκάρω. το VS πάντως ακόμα δεν τα καταφέρνει και να φανταστείτε έκανα copy-paste τον κώδικα από το VS στο Dev-C++ και μετά compile...

τεσπα, κάτι λάθος έχω κάνει στην επιλογή 2 όταν ζητάει ο χρήστης εξαρχής οικονομική θέση αλλά θα το βρω. η επιλογή 1 δουλεύει κανονικά με όλες τις υποπεριπτώσεις. αν δεν καταφέρω να φτιάξω την επιλογή 2 θα ξαναγράψω.

 

edit: πλέον μου έχει μείνει μόνο ένα πρόβλημα. όταν ο χρήστης επιλέγει την επιλογή 2 (Οικονομική Θέση) κρατάει κανονικά την θέση όπως θα έπρεπε αλλά μετά πετάει και το printf ("\n H epomeni ptisi feygei se 4 wres \n"); που είναι μέσα στην else ενώ δεν θα έπρεπε καθώς έχει ενεργοποιηθεί η προηγούμενη if.... τι γίνεται εδώ?

Δημοσ.

παιδιά σας ευχαριστώ πολύ για την άμεση βοήθεια σας!

διόρθωσα το "While" και επίσης έβαλα και το return 0; (εγώ πάντως από όσο θυμάμαι ο καθηγητής μου είχε πει ότι είναι αχρείαστο για αυτό το έγραψα σαν σχόλιο κιόλας για να μην πει τίποτα).

δοκίμασα να τρέξω το πρόγραμμα με τις δυο παραπάνω διορθώσεις και πάλι τα ίδια...

 

VS 2010 pro (αλλαξα μονο το while και τρεχει κανονικα)

>#include "stdafx.h"
#include <stdio.h>

int main ()
{
//dilwsi metavlitwn
int ep, sum1=0, sum2=0, found, en_ep, i, k, sum=0, T[10];
//to sum einai o metritis pou athrizei tn arithmo tn kratimenwn thesewn
//arxikopoihsh - midensmos pinaka apothikeysis thesewn
for (i=0; i<10; i++)
{
	T[i]=0;
}
printf ("Parakalw pliktrologiste 1 gia Prwti Thesi, 2 gia Oikonomiki h 0 gia eksodo apo to programma \n");
scanf("%d", &ep);
while (ep!=0 && sum!=10)
{
	if (ep=1)
	{
		found=0;
		for (k=0; k<5; k++)
		{
			if (T[k]=0)
			{
				//pianw tn thesi
				T[k]=1;
				//ayksanw metriti kratimenwn thesewn
				sum1=sum1+1;
				//an vrethei thesi i found ginetai 1 alliws paramenei 0
				found=1;
				//ektipwnw thesi pou kratithike
				printf ("\n Molis kratithike i %d thesi stn Prwti Thesi \n", k+1);
				//teleiwnw tn for me ta k
				break;
			}
		}
		if (found=0)
		{
			printf ("Dn iparxei diathesimi thesi stn Prwti Thesi. Theleis stn Oikonomiki? An thes grapse 1 alliws 0 \n");
			scanf ("%d", &en_ep);
			if (en_ep=1)
			{
				for (k=5; k<10; k++)
				{
					if (T[k]=0)
					{
						//pianw tn thesi
						T[k]=1;
						//ayksanw metriti kratimenwn thesewn
						sum2=sum2+1;
						//an vrethei thesi i found ginetai 1 alliws paramenei 0
						found=1;
						//ektipwnw thesi pou kratithike
						printf ("\n Molis kratithike i %d thesi stn Oikonomiki Thesi \n", k+1);
						//teleiwnw tn for me ta k
						break;
					}
				}
				if (found=0)
				{
					printf ("Distixws dn iparxei diathesimi thesi stn Oikonomiki Thesi. \n H epomeni ptisi feygei se 4 wres \n");
				}
			}
			else
			{
				printf ("\n H epomeni ptisi feygei se 4 wres \n");
			}
		}
	}
	if (ep=2)
	{
		found =0;
		for (k=5; k<10; k++)
		{
			if (T[k]=0)
			{
				//pianw tn thesi
				T[k]=1;
				//ayksanw metriti kratimenwn thesewn
				sum2=sum2+1;
				//an vrethei thesi i found ginetai 1 alliws paramenei 0
				found=1;
				//ektipwnw thesi pou kratithike k tn katigoria
				printf ("\n Molis kratithike i %d thesi stn Oikonomiki Thesi \n", k+1);
				//teleiwnw tn for me ta k
				break;
			}
		}
		if (found=0)
		{
			printf ("Dn iparxei diathesimi thesi stn Oikonomiki Thesi. \n Theleis stn Prwti? An thes grapse 1 alliws 0 \n");
			scanf ("%d", &en_ep);
			if (en_ep=1)
			{
				for (k=0; k<5; k++)
				{
					//pianw tn thesi
					T[k]=1;
					//ayksanw metriti kratimenwn thesewn
					sum1=sum1+1;
					//an vrethei thesi i found ginetai 1 alliws paramenei 0
					found=1;
					//ektipwnw thesi pou kratithike k katigoria
					printf ("\n Molis kratithike i %d thesi stn Prwti Thesi \n", k+1);
					//teleiwnw tn for me ta k
					break;
				}
			}
			if (found=0)
			{
				printf ("Distixws dn iparxei diathesimi thesi stn Prwti Thesi. \n H epomeni ptisi feygei se 4 wres \n");
			}
		}
		else
		{
			printf ("\n H epomeni ptisi feygei se 4 wres \n");
		}
	}
	printf ("\n Parakalw pliktrologiste 1 gia Prwti Thesi, 2 gia Oikonimiki h 0 gia eksodo apo to programma \n");
	scanf ("%d", &ep);
	sum=sum1+sum2;
}
printf ("\n Stn Prwti Thesi exoun kratithei %d theseis \n", sum1);
printf ("Stn Oikonimiki Thesi exoun kratithei %d theseis \n", sum2);
//anti tis system("Pause") tha xrisimopoihsw tn entoli getchar() gia diaforous logous kiriws foritotitas tou programmatos se leitourgika sistimata
printf ("Pata opoiodipote pliktro gia eksodo... \n");
getchar ();
return 0;
}

 

 

δεν κατάλαβα το λάθος παρ' όλο που είδα και το Hint...

το έχω κάνει έτσι με σκοπό όταν διαβάζει την επιλογή του χρήστη να βάζει την τιμή 0 στην found και να παραμένει έτσι εκτός και αν βρεθεί και κρατηθεί θέση στις επόμενες επαναλήψεις της συγκεκριμένης επιλογής... έτσι στο τέλος των επαναλήψεων τσεκάρω αν η found είναι 0 και του λέω αν θέλει θέση στην οικονομική ή αν είναι 1 απλά του τυπώνω την θέση που κρατήθηκε. και μετά το ίδιο ακριβώς γίνεται αν ψάξει στις οικονομικές...

Για το ιδιο σφαλμα σου μιλησα κι εγω κι ο migf1 κι αυτο σου προκαλει το προβλημα... Εν ολιγοις, στις if, while βαζουμε == (διπλο ισον)

Δημοσ.

To ενα ισον αναθετει τιμη στην μεταβλήτη πχ int i = 0;

οταν θελεις να κανεις ελεγχο βαζεις διπλο ισον.

 

Οσο για το τι ειπε ο καθηγητης, η main ειναι μια συναρτηση απο την στιγμη που την οριζει ως int πρεπει να της επιστρεψεις κατι, θες 0 θες 100 κατι πρεπει να ειναι.

Δημοσ.

το ξέρω αυτό με το διπλό και το μονό ίσον απλά ήταν ένα λάθος βιασύνης. και μετά όσες φορές και που το είδα...

εμένα αυτό που με παραξενεύει είναι αυτό που έγραψα και στο τελευταίο μου edit:

 

 

πλέον μου έχει μείνει μόνο ένα πρόβλημα. όταν ο χρήστης επιλέγει την επιλογή 2 (Οικονομική Θέση) κρατάει κανονικά την θέση όπως θα έπρεπε αλλά μετά πετάει και το printf ("\n H epomeni ptisi feygei se 4 wres \n"); που είναι μέσα στην else ενώ δεν θα έπρεπε καθώς έχει ενεργοποιηθεί η προηγούμενη if.... τι γίνεται εδώ?

 

 

 

 

 

To ενα ισον αναθετει τιμη στην μεταβλήτη πχ int i = 0;

οταν θελεις να κανεις ελεγχο βαζεις διπλο ισον.

 

Οσο για το τι ειπε ο καθηγητης, η main ειναι μια συναρτηση απο την στιγμη που την οριζει ως int πρεπει να της επιστρεψεις κατι, θες 0 θες 100 κατι πρεπει να ειναι.

 

άρα εντελώς πληροφοριακά, είτε γράψω return 0; είτε return 5687; είναι το ίδιο πράγμα? δεδομένου βέβαια ότι έχω δηλώσει στην αρχή την main ως int. αν έχω γράψει σκέτο main() τι γίνεται με το return? και τέλος μπορώ να δηλώσω την main σαν int εκεί που δηλώνω και τις υπόλοιπες μεταβλητές μου?

π.χ. int k, i, x, main(), z;

 

 

 

Μην χρησιμοποιεις VS χρησιμοποιει Intel C++ compiler και αρκετες φορες παιζει να πεταει warning η και λαθη εκτος αν σου αρεσει το ide και θες να του ορισεις αλλο compiler πχ gcc

 

πως μπορώ να ορίσω στο VS να χρησιμοποιεί άλλον compiler όπως ο gcc? ο gcc θα είναι κάτι σαν external ή υπάρχει ήδη στις ρυθμίσεις?

Δημοσ.

 

άρα εντελώς πληροφοριακά, είτε γράψω return 0; είτε return 5687; είναι το ίδιο πράγμα?

 

 

O Αnubis13 εννοει πως εφοσον οριζεις την main τύπου int θα πρέπει αυτη

να επιστρέφει μια ακεραιη τιμή. Aν δεν επιστρέφει τιποτα μια συνάρτηση τοτε

πρεπει να ειναι τύπου void.

 

Το 0 δηλωνει στο λειτουργικο συστημα οτι το πρόγραμμα έχει τερματίσει με επιτυχια.

 

Οτιδηποτε μη μηδενικο , !0 ειναι ανεπιτυχές οπως λεει και εδω

 

http://www.dawood.in/understanding_exit_code.html

 

φευγαλέα το διάβασα αλλα νομιζω κανει και για την C κατι για κλησεις συστηματος ελεγε μεσα και για την fork().

Δημοσ.

το ξέρω αυτό με το διπλό και το μονό ίσον απλά ήταν ένα λάθος βιασύνης. και μετά όσες φορές και που το είδα...

εμένα αυτό που με παραξενεύει είναι αυτό που έγραψα και στο τελευταίο μου edit:

 

 

πλέον μου έχει μείνει μόνο ένα πρόβλημα. όταν ο χρήστης επιλέγει την επιλογή 2 (Οικονομική Θέση) κρατάει κανονικά την θέση όπως θα έπρεπε αλλά μετά πετάει και το printf ("\n H epomeni ptisi feygei se 4 wres \n"); που είναι μέσα στην else ενώ δεν θα έπρεπε καθώς έχει ενεργοποιηθεί η προηγούμενη if.... τι γίνεται εδώ?

 

 

 

Θα το κοιταξω αφου παραδωσω τις εργασιες μου και εγω.

 

άρα εντελώς πληροφοριακά, είτε γράψω return 0; είτε return 5687; είναι το ίδιο πράγμα? δεδομένου βέβαια ότι έχω δηλώσει στην αρχή την main ως int. αν έχω γράψει σκέτο main() τι γίνεται με το return?

 

Ναι ειτε γραψεις return 0 ειτε return 5687 ειναι το ιδιο, θεωρητικα το 0 ειναι οτι τελειωσε σωστα η εκτελεση του προγραμματος, αλλα αυτο ειναι συμβαση που κανει ο προγραμματιστης με τον ευατο του, πχ εγω γουσταρω σε περιπτωση σφαλματος η ταδε μου συναρτηση να γυρναει το 3333. Σκετο main δεν μπορεις να γραψεις δεν ξερω αν περναει το gcc πιθανως να το περναει(το ελεγξα)

|5|warning: return type defaults to 'int'|

In function 'main':|

|130|warning: control reaches end of non-void function|

||=== Build finished: 0 errors, 2 warnings ===|

 

Διαμαρτυρεται οπως βλεπεις, γιατι το θεωρει int. Βεβαια αλλα options του compiler και αλλος compiler μπορει να το θεωρησει σφαλμα.

 

 

και τέλος μπορώ να δηλώσω την main σαν int εκεί που δηλώνω και τις υπόλοιπες μεταβλητές μου?

π.χ. int k, i, x, main(), z;

 

Οχι. Μεταβλητες που δηλωνονται πριν την main θεωρουνται global. Της μεταβλητες που το περιεχομενο θες να αλλαζει μεσα στην main και μονο σε αυτην τις δηλωνεις μεσα στην συναρτηση main. Ο τυπος που δηλωνεις μια συναρτηση ειναι διαφορετικος των μεταβλητων σου.

 

 

πως μπορώ να ορίσω στο VS να χρησιμοποιεί άλλον compiler όπως ο gcc? ο gcc θα είναι κάτι σαν external ή υπάρχει ήδη στις ρυθμίσεις?

 

Δεν το γνωριζω πρεπει να το ψαξω. Ο code-blocks διαθετει τετοια επιλογη παντως, αν θες να χρησιμοποιησεις κατι πιο απλο.

Δημοσ.

Ειναι πολυς μπελας (για το τιποτα) να χρησημοποιεις το gcc σε VS... Το ειχα δοκιμασει με το 08 και κατι ειχα καταφερει, αλλα στο 2010 δεν προσπαθησα καν

Δημοσ.

@katsikoula:

Ειχες κλεισει λαθος ενα bracket

 

>//Anastasios Giannaros
//A.M.: 2011086
#include <stdio.h>
main ()
{
//dilwsi metavlitwn
int ep, sum1=0, sum2=0, found, en_ep, i, k, sum=0, T[10];
//to sum einai o metritis pou athrizei tn arithmo tn kratimenwn thesewn
//arxikopoihsh - midensmos pinaka apothikeysis thesewn
for (i=0; i<10; i++)
{
T[i]=0;
}
printf ("Parakalw pliktrologiste 1 gia Prwti Thesi, 2 gia Oikonomiki h 0 gia eksodo apo to programma \n");
scanf("%d", &ep);
while (ep!=0 && sum!=10)
{
if (ep==1)
{
found=0;
for (k=0; k<5; k++)
{
if (T[k]==0)
{
//pianw tn thesi
T[k]=1;
//ayksanw metriti kratimenwn thesewn
sum1=sum1+1;
//an vrethei thesi i found ginetai 1 alliws paramenei 0
found=1;
//ektipwnw thesi pou kratithike
printf ("\n Molis kratithike i %d thesi stn Prwti Thesi \n", k+1);
//teleiwnw tn for me ta k
break;
}
}
if (found==0)
{
printf ("Dn iparxei diathesimi thesi stn Prwti Thesi. Theleis stn Oikonomiki? An thes grapse 1 alliws 0 \n");
scanf ("%d", &en_ep);
if (en_ep==1)
{
for (k=5; k<10; k++)
{
if (T[k]==0)
{
//pianw tn thesi
T[k]=1;
//ayksanw metriti kratimenwn thesewn
sum2=sum2+1;
//an vrethei thesi i found ginetai 1 alliws paramenei 0
found=1;
//ektipwnw thesi pou kratithike
printf ("\n Molis kratithike i %d thesi stn Oikonomiki Thesi \n", k+1);
//teleiwnw tn for me ta k
break;
}
}
if (found==0)
{
printf ("Distixws dn iparxei diathesimi thesi stn Oikonomiki Thesi. \n H epomeni ptisi feygei se 4 wres \n");
}
}
else
{
printf ("\n H epomeni ptisi feygei se 4 wres \n");
}
}
}
if (ep==2)
{
found =0;
for (k=5; k<10; k++)
{
if (T[k]==0)
{
//pianw tn thesi
T[k]=1;
//ayksanw metriti kratimenwn thesewn
sum2=sum2+1;
//an vrethei thesi i found ginetai 1 alliws paramenei 0
found=1;
//ektipwnw thesi pou kratithike k tn katigoria
printf ("\n Molis kratithike i %d thesi stn Oikonomiki Thesi \n", k+1);
//teleiwnw tn for me ta k
break;
}
}
if (found==0)
{
printf ("Dn iparxei diathesimi thesi stn Oikonomiki Thesi. \n Theleis stn Prwti? An thes grapse 1 alliws 0 \n");
scanf ("%d", &en_ep);
if (en_ep==1)
{
for (k=0; k<5; k++)
{
//pianw tn thesi
T[k]=1;
//ayksanw metriti kratimenwn thesewn
sum1=sum1+1;
//an vrethei thesi i found ginetai 1 alliws paramenei 0
found=1;
//ektipwnw thesi pou kratithike k katigoria
printf ("\n Molis kratithike i %d thesi stn Prwti Thesi \n", k+1);
//teleiwnw tn for me ta k
break;
}
}
if (found==0)
{
printf ("Distixws dn iparxei diathesimi thesi stn Prwti Thesi. \n H epomeni ptisi feygei se 4 wres \n");
}
else
{
printf ("\n H epomeni ptisi feygei se 4 wres \n");
}
}
}
printf ("\n Parakalw pliktrologiste 1 gia Prwti Thesi, 2 gia Oikonimiki h 0 gia eksodo apo to programma \n");
scanf ("%d", &ep);
sum=sum1+sum2;
}
printf ("\n Stn Prwti Thesi exoun kratithei %d theseis \n", sum1);
printf ("Stn Oikonimiki Thesi exoun kratithei %d theseis \n", sum2);
//anti tis system("Pause") tha xrisimopoihsw tn entoli getchar() gia diaforous logous kiriws foritotitas tou programmatos se leitourgika sistimata
printf ("Pata opoiodipote pliktro gia eksodo... \n");
getchar ();
// axriasto to return 0;
//return 0;
}

 

Δημοσ.

@katsikoula:

Ειχες κλεισει λαθος ενα bracket

 

>//Anastasios Giannaros
//A.M.: 2011086
#include <stdio.h>
main ()
{
//dilwsi metavlitwn
int ep, sum1=0, sum2=0, found, en_ep, i, k, sum=0, T[10];
//to sum einai o metritis pou athrizei tn arithmo tn kratimenwn thesewn
//arxikopoihsh - midensmos pinaka apothikeysis thesewn
for (i=0; i<10; i++)
{
T[i]=0;
}
printf ("Parakalw pliktrologiste 1 gia Prwti Thesi, 2 gia Oikonomiki h 0 gia eksodo apo to programma \n");
scanf("%d", &ep);
while (ep!=0 && sum!=10)
{
if (ep==1)
{
found=0;
for (k=0; k<5; k++)
{
if (T[k]==0)
{
//pianw tn thesi
T[k]=1;
//ayksanw metriti kratimenwn thesewn
sum1=sum1+1;
//an vrethei thesi i found ginetai 1 alliws paramenei 0
found=1;
//ektipwnw thesi pou kratithike
printf ("\n Molis kratithike i %d thesi stn Prwti Thesi \n", k+1);
//teleiwnw tn for me ta k
break;
}
}
if (found==0)
{
printf ("Dn iparxei diathesimi thesi stn Prwti Thesi. Theleis stn Oikonomiki? An thes grapse 1 alliws 0 \n");
scanf ("%d", &en_ep);
if (en_ep==1)
{
for (k=5; k<10; k++)
{
if (T[k]==0)
{
//pianw tn thesi
T[k]=1;
//ayksanw metriti kratimenwn thesewn
sum2=sum2+1;
//an vrethei thesi i found ginetai 1 alliws paramenei 0
found=1;
//ektipwnw thesi pou kratithike
printf ("\n Molis kratithike i %d thesi stn Oikonomiki Thesi \n", k+1);
//teleiwnw tn for me ta k
break;
}
}
if (found==0)
{
printf ("Distixws dn iparxei diathesimi thesi stn Oikonomiki Thesi. \n H epomeni ptisi feygei se 4 wres \n");
}
}
else
{
printf ("\n H epomeni ptisi feygei se 4 wres \n");
}
}
}
if (ep==2)
{
found =0;
for (k=5; k<10; k++)
{
if (T[k]==0)
{
//pianw tn thesi
T[k]=1;
//ayksanw metriti kratimenwn thesewn
sum2=sum2+1;
//an vrethei thesi i found ginetai 1 alliws paramenei 0
found=1;
//ektipwnw thesi pou kratithike k tn katigoria
printf ("\n Molis kratithike i %d thesi stn Oikonomiki Thesi \n", k+1);
//teleiwnw tn for me ta k
break;
}
}
if (found==0)
{
printf ("Dn iparxei diathesimi thesi stn Oikonomiki Thesi. \n Theleis stn Prwti? An thes grapse 1 alliws 0 \n");
scanf ("%d", &en_ep);
if (en_ep==1)
{
for (k=0; k<5; k++)
{
//pianw tn thesi
T[k]=1;
//ayksanw metriti kratimenwn thesewn
sum1=sum1+1;
//an vrethei thesi i found ginetai 1 alliws paramenei 0
found=1;
//ektipwnw thesi pou kratithike k katigoria
printf ("\n Molis kratithike i %d thesi stn Prwti Thesi \n", k+1);
//teleiwnw tn for me ta k
break;
}
}
if (found==0)
{
printf ("Distixws dn iparxei diathesimi thesi stn Prwti Thesi. \n H epomeni ptisi feygei se 4 wres \n");
}
else
{
printf ("\n H epomeni ptisi feygei se 4 wres \n");
}
}
}
printf ("\n Parakalw pliktrologiste 1 gia Prwti Thesi, 2 gia Oikonimiki h 0 gia eksodo apo to programma \n");
scanf ("%d", &ep);
sum=sum1+sum2;
}
printf ("\n Stn Prwti Thesi exoun kratithei %d theseis \n", sum1);
printf ("Stn Oikonimiki Thesi exoun kratithei %d theseis \n", sum2);
//anti tis system("Pause") tha xrisimopoihsw tn entoli getchar() gia diaforous logous kiriws foritotitas tou programmatos se leitourgika sistimata
printf ("Pata opoiodipote pliktro gia eksodo... \n");
getchar ();
// axriasto to return 0;
//return 0;
}

 

 

ναι όντως μου έλειπε ένα bracket. ευχαριστώ, το διόρθωσα.

Δημοσ.

επειδή το VS με απογοήτευσε αρκετά, εκτός από το Dev-C++ τι άλλες επιλογές έχω? μπορώ μήπως να χρησιμοποιήσω το Notepad++ μαζί με κάποιον external compiler?

Δημοσ.

επειδή το VS με απογοήτευσε αρκετά, εκτός από το Dev-C++ τι άλλες επιλογές έχω? μπορώ μήπως να χρησιμοποιήσω το Notepad++ μαζί με κάποιον external compiler?

 

Μπορείς και μάλιστα για όποια γλώσσα θέλεις, αλλά για να σετάρεις το Notepad++ προϋποθέτει αφενός κάποια plugins κι αφετέρου να μπορείς να στήσεις και να δουλεύεις τη γλώσσα από γραμμή εντολών (δες ένα παράδειγμα το νήμα "Java Compiler" (κάπο στις πρώτες 2-3 σελίδες πρέπει να είναι).

 

Αν είσαι σε Windows κι ενδιαφέρεσαι μονάχα για C, κατέβασε την Pelles-C και καθάρισες ;)

Αν θες και C++ δοκίμασε είτε το Code::Blocks (κατέβασε την έκδοση που περιλαμβάνει τον compiler... mingw32 gcc) ή μπορείς να δοκιμάσεις ένα σύγχρονο fork του DevC++ (http://orwellengine.blogspot.com/ - φρέσκο-εμνημερωμένο το βλέπω μάλιστα, προχτες).

 

Για C σε Windows όμως καλύτερα Pelles-C.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα

  • Δημιουργία νέου...