Jump to content



Βοήθεια για προγραμμα στη C


dwritsa

Recommended Posts

Καλησπερα παιδια :o Υποτιθεται πως το παρακατω προγραμμα στη γλωσσα C υπολογιζει το εξης αθροισμα: 1^1+2^2+3^3+…+ν^ν

#include <stdio.h>

main (void)

{

int i,j,n, s,p;

printf("Enter an integer:");

scanf("%d", &n);

s=0;

for(i=1; i<=n; i++){

p=1;

for(j=1; j<=i; j++)

p=p*i;

s=s+p;}

printf("The total sum is:%d\n", s);

}

εγω ξερω να γραφω προγραμματα σε ψευδογλωσσα και επειδη ειμαι αρχαρια ακομα με την C, το εγραψα στη ΓΛΩΣΣΑ και εκανα το πινακακι τιμων με ολες τις μεταβλητες για να το τρεξω προχειρα, αλλα κατι δεν παει καλα :nothing: ετρεξα μεχρι ν=3 και εχω τελικο αποτελεσμα s=46 ενώ κανονικα θα επρεπε να βρω 14. το προγραμμα δεν λεει οτι κανει ή εγω το τρέχω λαθος; :unsure:

Link to comment
Share on other sites

To 1^1+2^2+3^3+…+ν^ν για ν = 3 , έχει σαν αποτέλεσμα 32 το οποίο είναι σωστο.Το πρόγραμμα σου αυτό υπολογίζει.

Αφού περίμενες να βρεις(14) τότε θες τo 1*1+2*2+3*3+…+ν*ν για ν = 3

Άρα αυτό που πρέπει να κάνεις είναι να σβήσεις ότι υπάρχει μετά τη πρώτη for και να κρατήσεις μόνο την s=s+p;

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

Link to comment
Share on other sites

Καλησπερα παιδια :o Υποτιθεται πως το παρακατω προγραμμα στη γλωσσα C υπολογιζει το εξης αθροισμα: 1^1+2^2+3^3+…+ν^ν

#include <stdio.h>

main (void)

{

int i,j,n, s,p;

printf("Enter an integer:");

scanf("%d", &n);

s=0;

for(i=1; i<=n; i++){

p=1;

for(j=1; j<=i; j++)

p=p*i;

s=s+p;}

printf("The total sum is:%d\n", s);

}

εγω ξερω να γραφω προγραμματα σε ψευδογλωσσα και επειδη ειμαι αρχαρια ακομα με την C, το εγραψα στη ΓΛΩΣΣΑ και εκανα το πινακακι τιμων με ολες τις μεταβλητες για να το τρεξω προχειρα, αλλα κατι δεν παει καλα :nothing: ετρεξα μεχρι ν=3 και εχω τελικο αποτελεσμα s=46 ενώ κανονικα θα επρεπε να βρω 14. το προγραμμα δεν λεει οτι κανει ή εγω το τρέχω λαθος; :unsure:

Αν το παραπάνω πρόγραμμα στο έδωσε ο καθηγητής σου από τη σχολή, καλά κάνεις και το μελετάς αλλά το να το μεταφέρεις σε "γλώσσα" είναι κακός τρόπος debugging.

Να το κάνεις compile κανονικά από C, όπως είναι για να το τσεκάρεις...

Ο προγραμματισμός απαιτεί συχνά να βγαίνουμε απο την comfort zone μας για να μάθουμε νέα πράγματα. ;)

Link to comment
Share on other sites

perpap εχεις δικιο :) το διορθωσα!

οντως το προηγουμενο που εγραψα υπολογιζει το 1^1+2^2+3^3+...+ν^ν

το προγραμμα που υπολογιζει το 1*1+2*2+3*3+...+ν*ν ειναι το εξης

Εμφάνισε " Δώσε έναν ακαίρεο: "

Διάβασε n

s=0

Για ( i απο 1 μέχρι n ) με βήμα +1 επανάλαβε

s= s + i * i

Τελ_επ

Εμφάνισε " Το συνολικό άθροισμα είναι: ", s

ξερω οτι ειναι λαθος τροπος εκμαθησης oxide και το κανω μονο προσωρινα γιατι θέλω μονη να βρισκω τα λαθη μου και οχι να μου τα επιδεικνυει ενας οποιοσδηποτε compiler... απο την καθηγητρια στο ΤΕΙ δεν καταλαβαινω τιποτα.. και απλα πρεπει να μαθω C με οποιοδηποτε τροπο! :p

Ευχαριστω παντως και τους 2! :)

εχω ακομη μια απορια! στο παρακατω προγραμμα

Πρόγραμμα για την ανάγνωση ενός ακεραίου και ενός χαρακτήρα μέσω της “scanf”.

#include <stdio.h>

main()

{

int i;

char ch;

clrscr();

printf("\nΔώσε έναν ακέραιο αριθμό : ");

scanf("%d", &i);

printf("\nΔώσε έναν χαρακτήρα : ");

scanf("%c", &ch);

printf("\nΟ ακέραιος που έδωσες είναι : %d και : %c ", i, i);

scanf("%d", &i);

}

η εντολη clrscr(); πού ακριβώς και σε τι χρησιμεύει;

Link to comment
Share on other sites

εχω απελπιστει! κανω το πινακακι τιμων απο χθες και ολο 46 βρισκω αντι για 32 ειναι δυνατων; :weep:

Πρόσεξε το 2ο for loop. Δες που πρέπει να βρίσκεται το s=s+p. Καλό είναι να χρησιμοποιείς πάντα αγκύλες ;-)

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

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

Important Information

Ο ιστότοπος theLab.gr χρησιμοποιεί cookies για να διασφαλίσει την καλύτερη εμπειρία σας κατά την περιήγηση. Μπορείτε να προσαρμόσετε τις ρυθμίσεις των cookies σας , διαφορετικά θα υποθέσουμε ότι είστε εντάξει για να συνεχίσετε.