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

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

Δημοσ.

Παιδιά είμαι νέος στην γλώσσα c και ειλικρηνα θα ήθελα κάποια βοήθεια. Μαθένω τώρα πως μπώρω να κάνω προγράματα και θέλει να εμφανίζω τα αποτελεσμα σε μορφή πίνακα. Θέλω να τα εμφανιζω στην σωστή θέση με τα ακριβος το ένα κάτω απο το άλλο αλλα δεν ξέρω αν αυτο που έκανα είναι σωστό.

 

#include <stdio.h>
#include <math.h>
int main()
{   
    int i;
float a,t,s,v;
a=10.578;
printf("t(min)    s(km)       v(km/h)\n");
for(i=1;i<=10;i++)
{
   t=i*60;
   s=(1/.2)*a*pow(t,2);
v=a*t;
s=s/1000;
v=v*36;
printf("t=%d min     s=%.3f km    v=%.2f km/h\n",i,s,v);
}
return 0;

 

έδω είναι ο κώδικας που έκανα σε μια άσκηση αν κάποιος έχει να πρωτίνει κατι καλύτερο παρακάλω να μου πεί.... 

Δημοσ.

Εφόσον προσπαθείς να εμφανίσεις πίνακα, δε χρειάζεται να εκτυπώνεις τις ίδιες πληροφορίες ξανά και ξανά. Καλό θα ήταν θα τα ευθυγραμμίσεις όλα όμορφα και να βγει, για παράδειγμα, κάπως έτσι( άλλαξε τη printf με αυτή που δίνω για να δεις τη διαφορά ):

printf("%3d %12.3f %12.2f \n",i,s,v);
  • Like 1
Δημοσ.

 

Εφόσον προσπαθείς να εμφανίσεις πίνακα, δε χρειάζεται να εκτυπώνεις τις ίδιες πληροφορίες ξανά και ξανά. Καλό θα ήταν θα τα ευθυγραμμίσεις όλα όμορφα και να βγει, για παράδειγμα, κάπως έτσι( άλλαξε τη printf με αυτή που δίνω για να δεις τη διαφορά ):

printf("%3d %12.3f %12.2f \n",i,s,v);

Eυχαριστώ πολύ φίλε όντως έχει μεγάλη διαφορά.

 

Παιδιά μου βγάζουν αρκετά προγράμματα το εξής error "expected declaration or statement at end of input" μπωρεί κανείς να μου εξηγήσε για ποιό λόγο συμβένει αυτό ?

 

Δημοσ.

Η συνηθέστερη αιτία γι αυτό το σφάλμα είναι να έχεις ξεχάσει κάποιο ή ;.

 

Αλλά εάν δεν δείξεις τον κώδικα που παράγει το σφάλμα δε μπορεί να "μαντέψει" κανείς τι φταίει...

Δημοσ.

Παιδιά εχω ενα θεματάκη θέλω να κάνω ενα προγραμα που θα κανει 10 βήματα στην επανάλυψη αλλα μου κάνει μόνο τα 5 και το printf μου το εμφανίζει 2 σηνεχόμενες φορές μπωρείτε να το ριξεται μια ματιά ?

 

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int a,b,m,i;
char c;
a=1;
b=1000;
m=b/2;
for(i=1;i<=10;i++)
{
printf("Einai to noumero pou skeftike mikrotero tou %d (y,n)\n",m);
scanf("%c",&c);
if(c=='y')
{
b=m;
m=(a+b)/2-1;
}
else if(c=='n')
{
a=m;
m=(a+b)/2-1;
}
if(a==B)
{
printf("to noumero pou skeftikes einai to %d",a);
}
}
return 0;
}
  • Moderators
Δημοσ.

Δοκίμασε να κάνεις debug για να δεις τι συμβαίνει. Ο debugger ή το IDE σου θα πρέπει να έχει μια λειτουργία step over, χρησιμοποίησε αυτή για να δεις πώς τρέχει βήμα-βήμα.

Δημοσ.

 

Παιδιά εχω ενα θεματάκη θέλω να κάνω ενα προγραμα που θα κανει 10 βήματα στην επανάλυψη αλλα μου κάνει μόνο τα 5 και το printf μου το εμφανίζει 2 σηνεχόμενες φορές μπωρείτε να το ριξεται μια ματιά ?

 

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int a,b,m,i;
char c;
a=1;
b=1000;
m=b/2;
for(i=1;i<=10;i++)
{
printf("Einai to noumero pou skeftike mikrotero tou %d (y,n)\n",m);
scanf("%c",&c);
if(c=='y')
{
b=m;
m=(a+b)/2-1;
}
else if(c=='n')
{
a=m;
m=(a+b)/2-1;
}
if(a== B)
{
printf("to noumero pou skeftikes einai to %d",a);
}
}
return 0;
}

 

Όταν γράφεις στο πληκτρολόγιο y ή n και πατάς enter στην ουσία γράφεις δύο πράγματα: Τον χαρακτήρα y ή n, και τον χαρακτήρα αλλαγής γραμμής. Αυτό ο χαρακτήρας θα καταναλωθεί στην επόμενη επανάληψη. Αν παρατηρησες σου βγάζει δύο φορές τα printf σου. Θέλεις συνεπώς κάτι τέτοιο: http://stackoverflow.com/questions/14419954/reading-a-single-character-in-c

Δημοσ.

Μπωρεί κανεις να με βοηθησει με εμαν κωδικά ψαχνω αλλα δεν μπωρω να βρω γιατι δεν μου εμφανιζει αποτέλεσμα ο κώδικα είναι ο εής :

 

#include <stdio.h>
#include <math.h>
int F(int x)
{
int y;
y=pow(x,2);
return y;
}
int main(void)
{
int A,B,i;
float h,n,a;
i=1;
A=1;
B=3;
n=1;
do{
  h=(B-A)/i;
  a=A+i*h;
  A=A+h*F(a)/2;
  i++;
}while(h>0,00001);
printf("%f",h);
return 0;
}
Δημοσ.

Μπωρεί κανείς να με βοηθήσει με το πως να χειρίζομαι strings στην c ξέρω ότι υπάρχει η βηβλίοθηκη sting.h αλλα δεν ξέρω να την χρήσημοποιω και γράφω πληροφορίκη την Τρίτη. Δεν μας μάθανε να χρησημοποιούμε την εν λόγο βηβλιοθήκη αλλά μου φαίνετε ζόρικο να κάνω προγράμματα χωρίς αυτήν όποιος μπωρεί να βοηθήσει θα το εκτιμούσα πολύ.....

Δημοσ.

Παιδιά τρέχω τον παρακάτω κώδικα και δεν μου βγαζει το επιθυμητο αποτέσμα 
 

#include <stdio.h>
int main(voif)
{
int k,i,j,a[4][5];
k=11;
for(i=1;i<=4;i++)
{
for(j=1;j<=5;j++)
{
a[j]=k;
printf("%d ",a[j]);
k++;
}
k--;
printf("%d\n",a[j]);
k=k+6;
}
return 0;
}
 
Μου τυπώνει αυτό  :    
 
11 12 13 14 15 0
21 22 23 24 25 0
31 32 33 34 35 6
0 0
 
 Ενώ θέλω αυτό : 
 
11  12  13  14 15
21  22  23  24 25
31  32  33  34 35
41  42  43  44 45
Δημοσ.

To λάθος σου είναι η παρακάτω γραμμή, εκτυπώνεις στοιχείο του πίνακα που δεν έχει κάποια τιμή, και το συγκεκριμένο print (του στοιχείου) δεν χρειάζεται καν.

printf("%d\n",a[i][j]);

Με μια γρήγορη διόρθωση:

#include <stdio.h>

int main() {
	int i, j, k;
	int array[4][5];

	k = 11;
	for (i = 0; i < 4; i++) {
		for (j = 0; j < 5; j++) {
			printf("%d ", array[i][j] = k);
			k++;
		}
		printf("\n");
		k--;
		k += 6;
	}
	return 0;
}
Δημοσ.

@Tomissg, να θυμάσαι ότι στην C( και σχεδόν σε όλες τις γλώσσες ) για τις θέσεις μέσα σ' ένα πίνακα ξεκινάς να μετράς από το μηδέν μέχρι το μέγεθος του πίνακα μείον ένα. Όχι όπως το κάνεις δλδ.

Δημοσ.

Να ρωτίσω ξάνα :P γραφω ένα κώδικα με dev c++ και μου βγάζει τα εξίς σφάλματα και δεν μπωρω να καταλάβω που είναι 

 

main.c:(.text+0x22e): undefined reference to `pirntf'

[Error] ld returned 1 exit status

 

#include <stdio.h>
int main()
{
int i, j, k;
int a[4][5];
int b[4][5];
k = 11;
for (i = 0; i < 4; i++) 
{
for (j = 0; j < 5; j++) 
{
printf("%d ", a[j] = k);
k++;
}
printf("\n");
k--;
k += 6;
}
for(i=0;i<4;)
{
for(j=0;j<5;j++)
{
k=i%2;
if(k==0)
{
k=j%2;
if(k==0)
{
printf("%d ",b[j]=0);
}
else
{
printf("%d ",b[j]=a[j]);
}
}
else
{
printf("%d ",b[j]=a[j]);
}
}
pirntf("\n");
}
return 0;
}

 

Να ρωτίσω ξάνα :P γραφω ένα κώδικα με dev c++ και μου βγάζει τα εξίς σφάλματα και δεν μπωρω να καταλάβω που είναι 

 

main.c:(.text+0x22e): undefined reference to `pirntf'

[Error] ld returned 1 exit status

 

#include <stdio.h>
int main()
{
int i, j, k;
int a[4][5];
int b[4][5];
k = 11;
for (i = 0; i < 4; i++) 
{
for (j = 0; j < 5; j++) 
{
printf("%d ", a[j] = k);
k++;
}
printf("\n");
k--;
k += 6;
}
for(i=0;i<4;)
{
for(j=0;j<5;j++)
{
k=i%2;
if(k==0)
{
k=j%2;
if(k==0)
{
printf("%d ",b[j]=0);
}
else
{
printf("%d ",b[j]=a[j]);
}
}
else
{
printf("%d ",b[j]=a[j]);
}
}
pirntf("\n");
}
return 0;
}

 

Παρεμπιπτόντως θέλω να σας ευχριστήσω όλους για την βοήθεια σας 

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

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

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

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

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

Σύνδεση

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

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