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

το πρώτο μου πρόγραμμα σε c


^LeoNine^

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

Δημοσ.

πριν λίγο καιρό άρχισα να μαθαίνω την c. έχω κάνει ασκήσεις από βιβλία ή tutorials

αλλά ποτέ κάτι δικό μου..

αυτή είναι η πρώτη μου προσπάθεια..

γνωρίζω πως μπορεί να γίνει καλύτερο (π.χ να βάλω όρια κ ελέγχους σε αυτά που δίνει ο χρήστης) παρόλα αυτά έκανα το μεγαλύτερο μέρος της δουλείας κ σας το παρουσιάζω..

 

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

ότι έμαθα είναι απο φόρουμ, βιβλία κ tutorials

 

εδώ να ευχαριστήσω τον virxen75 για ότι μου έχει στείλει..

 

λοιπόν, το πρόγραμμα που έκανα

παίρνει μια ημερομηνία από τον χρήστη κ βρίσκει τι μέρα ήταν ή θα είναι..

(χωρίς να χρησιμοποιήσω κάτι από library.. καθαρά math..)

 

>/* Made by LeoNine */
/* vriski ti mera itan mia sugkekrimeni mera apo to 1901 eos to apiro theoritika */

#include <stdio.h>


int main()
{


int byear,bmonth,bday,mv,dv,fores,reseter,metritis;

reseter=1; /* ta midenizo kalou kakou */
metritis=0;
byear=0;
bmonth=0;
bday=0;
mv=0;
dv=0;
fores=0;

printf("Δώσε ένα έτος απο το 1901 κ μετά\n"); /* zitaei tin imerominia */
scanf("%d",&byear);
printf("Δώσε έναν Μήνα (1-12)\n");
scanf("%d",&bmonth);
printf("Δώσε μία Ήμερα (1-31)\n");
scanf("%d",&bday);


fores=byear-1901; /* upologizei pose fores prepei na ginei i loopa */



switch (bmonth) /* dini mia timi analoga ton mina vasi tou diinekes imerologiou */

{
	case 1:
		mv=2;
		break;
	case 2:
		mv=5;
		break;
	case 3:
		mv=5;
		break;
	case 4:
		mv=1;
		break;
	case 5:
		mv=3;
		break;
	case 6:
		mv=6;
		break;
	case 7:
		mv=1;
		break;
	case 8:
		mv=4;
		break;
	case 9:
		mv=0;
		break;
	case 10:
		mv=2;
		break;
	case 11:
		mv=5;
		break;
	case 12:
		mv=0;
		break;
		
}

		for (metritis=0; metritis<fores; metritis++) /* loopa mexri na ftasi stin xronia k na dosi tin sosti timi ston min */
	
			{
	
					if (mv==7)
						mv=0;
	
					if (mv==8)
						mv=1;
	
	
	
				
					if ((3>bmonth>0)&&(reseter==4))
						{ 
							++mv;
							reseter=0;
						}
	
					if ((bmonth>2)&&(reseter==3))
						{
							++mv;
							reseter=-1;
						}
	
				++reseter;
				++mv;
	
					if (mv==7)
						mv=0;
	
					if (mv==8)
						mv=1;
	
			}


								

dv=bday+mv; /* prostheti tin mera me tin timi tou mina tis ekastis xronias gia na vroume tin mera */

if (dv>=8)
	dv=dv%7;

printf("\n\n%d\\%d\\%d ήταν:",bday,bmonth,byear);

switch(dv)  /* vriski tin mera */
{
	case 0:
		printf ("Σαββάτο.\n");
		break;
	case 1:
		printf ("Κυριακή.\n");
		break;
	case 2:
		printf ("Δευτέρα.\n");
		break;
	case 3:
		printf ("Τρίτη.\n");
		break;
	case 4:
		printf ("Τετάρτη.\n");
		break;
	case 5:
		printf ("Πέμπτη.\n");
		break;
	case 6:
		printf ("Παρασκευή.\n");
		break;
	case 7:
		printf ("Σαββάτο.\n");
		break;
		
}

printf("\n\n\n");
return 0;

}

Δημοσ.

Γιατί έχεις printf("\n") πριν το scanf? Αλλάζει γραμμή μόνο του. Στο τέλος γιατί έχεις 3 printf("\n")? Και τέλος, γιατί δεν έχεις #include <math.h>? Αυτά για τώρα... :P

Δημοσ.
>if ((3>bmonth>0)&&(reseter==4))

warning: comparisons like X<=Y<=Z do not have their mathematical meaning

 

τι εννοείς??????

 

---------- Προσθήκη στις 19:12 ---------- Προηγούμενο μήνυμα στις 19:11 ----------

 

Γιατί έχεις printf("\n") πριν το scanf? Αλλάζει γραμμή μόνο του. Στο τέλος γιατί έχεις 3 printf("\n")? Και τέλος, γιατί δεν έχεις #include <math.h>? Αυτά για τώρα... :P

 

 

1. από συνήθεια..

2. για να μην είναι κολλημένο με το cmdline μετά

3. δεν μου χρειάστηκε...

Δημοσ.

Σωστά, δεν το πρόσεξα...

 

Γ*μώ τα μάτια μου...

Πρέπει να χρησιμοποιήσεις 2 ανισότητες για την έκφραση αυτή.

 

>a < b < c => (a <  && (b < c)

Δεν χρειάζεται η παρένθεση απ'όσο γνωρίζω...
Δημοσ.
Πρέπει να χρησιμοποιήσεις 2 ανισότητες για την έκφραση αυτή.

 

>a < b < c => (a <  && (b < c)

 

ουσιαστικά το ίδιο μου έγραψες..

 

θα μπορούσα επίσης να βάλω if ( (bmonth<3) || (bmonth>0) ) && (reseter==4)

 

γιατί στη ουσία ήθελα να ξεχωρίσω το bmonth με τιμή 1 ή 2 κ την στιγμή που το reseter έχει τιμή 4

 

 

πάντως όπως σας έδωσα τον κώδικα δουλεύει άψογα..

έκανα πάρα πάρα πολλές δοκιμές

Δημοσ.
ουσιαστικά το ίδιο μου έγραψες..

 

Δεν είναι το ίδιο...

 

Δεν χρειάζεται η παρένθεση απ'όσο γνωρίζω...

 

Βοηθάει τα μάτια. :-)

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

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