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

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

Δημοσ.

Γεια σας παιδια. (δεν ειμουν σιγγουρη αν επρεπε να ανοιξω 2ο θεμα η να αναρτησω και αυτο το προβλημα σε ενα αλλο ποστ που εχω ηδη κανει: http://www.insomnia.gr/topic/620140-%CF%80%CF%81%CE%BF%CE%B2%CE%BB%CE%B7%CE%BC%CE%B5-%CE%BC%CE%B5-%CE%B4%CE%B9%CE%B1%CE%B9%CF%81%CE%B5%CF%83%CE%B7-%CF%83%CF%84%CE%B7%CE%BD-c/  Οποτε αν δεν επρεπε να ανοιξω 2ο θεμα πειτε μου να πραξω αναλογως επομενη φορα)

 

Το προβλημα ειναι οτι το παρακατω πολυ απλο προγραμματακι στην C κολλαει :

 
#include<stdio.h>
 
int main()
{
int x=12345;
int m=0,yp=1;
while (yp!=0)
{
yp=x/10;
m++;
    }
    printf("%d",m);
}
 
Aν μποειτε βοηθειστε με δεν μπορω να καταλαβω γιατι κολλαει.. Ευχαριστω.
Δημοσ.

Εγώ πάντως έβγαλα το calculator και κοντεύει να τελειώσει η μπαταρία, αλλά όσες φορές και να έκανα το 12345 / 10 μου έβγαλε 1234.5 και ποτέ κάτι άλλο... 

:-)

Δημοσ.

το yp έχει την τιμή x/10 συνέχεια, και δεν γίνεται ποτέ ίσο με 0 για να σταματήσει. Τι θέλεις να κάνεις;

θελω να μετρισω τα ψιφια του x... αλλα γιατι να εχει παντα την ιδια τιμη αφου την πρωτη φορα που θα μπει το yp θα εχει τιμη x/10 δηλαδη 1234,5 δηλαδη επειδη ειναι int 1234 μετα την επομενη φορα που θα μπει 123 την επομενη 12 και μετα  1 και μετα 0 .... Εστι δεν ειναι? 

θελω να μετρισω τα ψιφια του x... αλλα γιατι να εχει παντα την ιδια τιμη αφου την πρωτη φορα που θα μπει το yp θα εχει τιμη x/10 δηλαδη 1234,5 δηλαδη επειδη ειναι int 1234 μετα την επομενη φορα που θα μπει 123 την επομενη 12 και μετα  1 και μετα 0 .... Εστι δεν ειναι? 

ενταξει το βρηκα ειχα κανει απροσεξια σορρυ για την ενοχληση το σωστο ειναι :

#include<stdio.h>
 
int main()
{
int x=12345 ;
int m=0,yp=x;
while (yp!=0)
{
yp=yp/10;
m++;
    }
    printf("%d",m);
}
Δημοσ.

#include<stdio.h>
 
int main()
{
	int x=12345;
	int count=0;
	
	while (x!=0)
	{
		x/=10;
		count++;
    }
    printf("%d",count);
}

Μαλλον θες να κανεις κατι τετοιο..

 

το x σου ειναι ο αριθμος

το count θα μετραει καθε ψηφιο που θα "τρωμε" απο το χ, καθε φορα που αυτο μειωνεται(διαιρειται καθε φορα με το 10, μεχρι αυτο να γινει 0)

 

Θελουμε να τρωμε καθε φορα κι ενα ψηφιο απο το x, μεχρι αυτο να γινει 0.

 

στο τελος το count θα μετρησει ποσες φορες φαγαμε ψηφιο απο το x.

Οταν το χ γινει 0 θα τελειωσει η while και το count θα ειναι 5.

 

Δημοσ.

θελω να μετρισω τα ψιφια του x... αλλα γιατι να εχει παντα την ιδια τιμη αφου την πρωτη φορα που θα μπει το yp θα εχει τιμη x/10 δηλαδη 1234,5 δηλαδη επειδη ειναι int 1234 μετα την επομενη φορα που θα μπει 123 την επομενη 12 και μετα  1 και μετα 0 .... Εστι δεν ειναι? 

Αν είναι ακέραια διαίρεση, δεν θα γίνεται μηδέν το υπόλοιπο κάθε φορά, άρα με το 12345 δεν δουλεύει, με το 1000 θα τρέξει κανονικά. 

Δημοσ.
#include<stdio.h>
 
int main()
{
	int x=12345;
	int count=0;
	
	while (x!=0)
	{
		x/=10;
		count++;
    }
    printf("%d",count);
}

Μαλλον θες να κανεις κατι τετοιο..

 

ναι αντι για m μποεις να βαλεις count ειναι πιο σωστο ετσι το m απο το μετριτησ το εβαλα αλλα το βρηκα δες παραπανω ... ευχαριστω παντωσ για την βοηθεια

Αν είναι ακέραια διαίρεση, δεν θα γίνεται μηδέν το υπόλοιπο κάθε φορά, άρα με το 12345 δεν δουλεύει, με το 1000 θα τρέξει κανονικά. 

#include<stdio.h>
 
int main()
{
int x=12345 ;
int m=0,yp=x;
while (yp!=0)
{
yp=yp/10;
m++;
    }
    printf("%d",m);
}
αυτο ειναι το σωστο το βρηκα και με την δικη σου επισυμανση ευχαριστω

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

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

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

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

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

Σύνδεση

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

Συνδεθείτε τώρα
  • Δημιουργία νέου...