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

Εrror in C++


georginos1989

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

Δημοσ.

Στο παρακάτω προγραμμα που υπάρχει στα συννυμενα βγαζει το παρακάτω προβλημα και δεν ξερω γιατι.. Μπορείτε να βοηθησετε?

 

[Linker Error] Unresolved external '__ExitVCL' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\LIB\CP32MTI.LIB|crtlvcl

 

[Linker Error] Unresolved external '__InitVCL' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\LIB\CP32MTI.LIB|crtlvcl

code.txt

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

Εμένα σε Code::Blocks μου βγάζει ένα error για το for αλλά είμαι καινούριος στη C++ και δεν μπορω να σε βοηθήσω. Παραθέτω το σφάλμα μήπως βοηθήσει:

>
C:\Documents and Settings\Administrator\Desktop\Untitled1.c||In function 'main':|
C:\Documents and Settings\Administrator\Desktop\Untitled1.c|22|error: 'for' loop initial declarations are only allowed in C99 mode|
C:\Documents and Settings\Administrator\Desktop\Untitled1.c|22|note: use option -std=c99 or -std=gnu99 to compile your code|
C:\Documents and Settings\Administrator\Desktop\Untitled1.c||In function 'sum1':|
C:\Documents and Settings\Administrator\Desktop\Untitled1.c|38|error: 'for' loop initial declarations are only allowed in C99 mode|
C:\Documents and Settings\Administrator\Desktop\Untitled1.c|43|error: redefinition of 'i'|
C:\Documents and Settings\Administrator\Desktop\Untitled1.c|38|note: previous definition of 'i' was here|
C:\Documents and Settings\Administrator\Desktop\Untitled1.c|43|error: 'for' loop initial declarations are only allowed in C99 mode|
C:\Documents and Settings\Administrator\Desktop\Untitled1.c||In function 'sum2':|
C:\Documents and Settings\Administrator\Desktop\Untitled1.c|53|error: 'for' loop initial declarations are only allowed in C99 mode|
||=== Build finished: 5 errors, 0 warnings ===|

Δημοσ.

Ποοο αυτό ήταν?

Και ψαχνομουν ποση ωρα....

 

---------- Προσθήκη στις 23:04 ---------- Προηγούμενο μήνυμα στις 22:57 ----------

 

Τώρα πως θα κανω την sum1 να δουλεψει? Έστω ότι το τρεχεις και βαζεις αριθμουσ 1,2,3,4,5 αλλά αντί για νουμερα βγαζει μάλλον τις διευθυνσεις των μεταβλητων... Τι κανω λαθος

Δημοσ.
Ποοο αυτό ήταν?

Και ψαχνομουν ποση ωρα....

 

---------- Προσθήκη στις 23:04 ---------- Προηγούμενο μήνυμα στις 22:57 ----------

 

Τώρα πως θα κανω την sum1 να δουλεψει? Έστω ότι το τρεχεις και βαζεις αριθμουσ 1,2,3,4,5 αλλά αντί για νουμερα βγαζει μάλλον τις διευθυνσεις των μεταβλητων... Τι κανω λαθος

 

Αυτό βγάλε, δέν είναι σωστό... *(s1+i)=sum;

 

Είναι σάν να λές..... s1 = sum;

Δημοσ.
Το ίδιο είναι αυτό.... καπου αλλού κανω λαθος.....

 

Τί προσπαθείς να φτιάξεις? Με την *(s1+i)=sum; είναι λογικό να πέρνεις τις διευθύνσεις των μεταβλητών.. Κομενταρε το και τρέξε..

Δημοσ.
Το ίδιο είναι αυτό.... καπου αλλού κανω λαθος.....

 

Τί προσπαθείς να φτιάξεις? Με την *(s1+i)=sum; είναι λογικό να πέρνεις τις διευθύνσεις των μεταβλητών.. Κομενταρε το και τρέξε..

Δημοσ.

Για δες αυτό εδώ:

 

>
#include<stdio.h>
#include<assert.h>
#include<stdlib.h>
#include<conio.h>

void sum1(int *p1, int *s1 ,int size);

main()
{
const int n=5;

int *p;
int *s;

p=(int*)calloc(n, sizeof(int));	/* calloc also zeroes p* array */
assert(p!=NULL) ;
s=(int*)calloc(n, sizeof(int));	/* calloc also zeroes s* array */
assert(s!=NULL);
for(int i=0;i<n;i++)
{
	printf("Give number \n");
	scanf("%d", &s[i]);
}

sum1(s,p,n); /* p, s => s, p */

   /* Cleanup */
free(p);
free(s);

getch();
}

void sum1 (int *p1, int *s1, int size)
{
int sum = 0; /* Init. sum to zero */

for(int i=0;i<size;i++)
{
	sum=sum+p1[i];
	*(s1+i)=sum;
}
for (int i=0;i<size;i++)
	printf("%d \n", s1[i]);
}

 

Για να μην ταλαιπωρείσαι αυτή είναι η έξοδος του (δες αν σου κάνει - αν είναι αυτό που θες):

>
Give number
1
Give number
2
Give number
3
Give number
4
Give number
5
1
3
6
10
15

 

Τα σχόλια υποδεικνύουν τις αλλαγές - προτίμησα να μην επιφέρω τροποποιήσεις στον ορισμό της sum1 παρά στις παραμέτρους που περνά η "main".

 

Το πρόγραμμα δοκιμάσθηκε σε C++ Builder 2009.

 

Καλή συνέχεια!

Δημοσ.

Για δες αυτό εδώ:

 

>
#include<stdio.h>
#include<assert.h>
#include<stdlib.h>
#include<conio.h>

void sum1(int *p1, int *s1 ,int size);

main()
{
const int n=5;

int *p;
int *s;

p=(int*)calloc(n, sizeof(int));	/* calloc also zeroes p* array */
assert(p!=NULL) ;
s=(int*)calloc(n, sizeof(int));	/* calloc also zeroes s* array */
assert(s!=NULL);
for(int i=0;i<n;i++)
{
	printf("Give number \n");
	scanf("%d", &s[i]);
}

sum1(s,p,n); /* p, s => s, p */

   /* Cleanup */
free(p);
free(s);

getch();
}

void sum1 (int *p1, int *s1, int size)
{
int sum = 0; /* Init. sum to zero */

for(int i=0;i<size;i++)
{
	sum=sum+p1[i];
	*(s1+i)=sum;
}
for (int i=0;i<size;i++)
	printf("%d \n", s1[i]);
}

 

Για να μην ταλαιπωρείσαι αυτή είναι η έξοδος του (δες αν σου κάνει - αν είναι αυτό που θες):

>
Give number
1
Give number
2
Give number
3
Give number
4
Give number
5
1
3
6
10
15

 

Τα σχόλια υποδεικνύουν τις αλλαγές - προτίμησα να μην επιφέρω τροποποιήσεις στον ορισμό της sum1 παρά στις παραμέτρους που περνά η "main".

 

Το πρόγραμμα δοκιμάσθηκε σε C++ Builder 2009.

 

Καλή συνέχεια!

Δημοσ.
Για δες αυτό εδώ:

 

>
#include<stdio.h>
#include<assert.h>
#include<stdlib.h>
#include<conio.h>

void sum1(int *p1, int *s1 ,int size);

main()
{
const int n=5;

int *p;
int *s;

p=(int*)calloc(n, sizeof(int));	/* calloc also zeroes p* array */
assert(p!=NULL) ;
s=(int*)calloc(n, sizeof(int));	/* calloc also zeroes s* array */
assert(s!=NULL);
for(int i=0;i<n;i++)
{
	printf("Give number \n");
	scanf("%d", &s[i]);
}

sum1(s,p,n); /* p, s => s, p */

   /* Cleanup */
free(p);
free(s);

getch();
}

void sum1 (int *p1, int *s1, int size)
{
int sum = 0; /* Init. sum to zero */

for(int i=0;i<size;i++)
{
	sum=sum+p1[i];
	*(s1+i)=sum;
}
for (int i=0;i<size;i++)
	printf("%d \n", s1[i]);
}

 

Για να μην ταλαιπωρείσαι αυτή είναι η έξοδος του (δες αν σου κάνει - αν είναι αυτό που θες):

>
Give number
1
Give number
2
Give number
3
Give number
4
Give number
5
1
3
6
10
15

 

Τα σχόλια υποδεικνύουν τις αλλαγές - προτίμησα να μην επιφέρω τροποποιήσεις στον ορισμό της sum1 παρά στις παραμέτρους που περνά η "main".

 

Το πρόγραμμα δοκιμάσθηκε σε C++ Builder 2009.

 

Καλή συνέχεια!

 

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

Δημοσ.
Για δες αυτό εδώ:

 

>
#include<stdio.h>
#include<assert.h>
#include<stdlib.h>
#include<conio.h>

void sum1(int *p1, int *s1 ,int size);

main()
{
const int n=5;

int *p;
int *s;

p=(int*)calloc(n, sizeof(int));	/* calloc also zeroes p* array */
assert(p!=NULL) ;
s=(int*)calloc(n, sizeof(int));	/* calloc also zeroes s* array */
assert(s!=NULL);
for(int i=0;i<n;i++)
{
	printf("Give number \n");
	scanf("%d", &s[i]);
}

sum1(s,p,n); /* p, s => s, p */

   /* Cleanup */
free(p);
free(s);

getch();
}

void sum1 (int *p1, int *s1, int size)
{
int sum = 0; /* Init. sum to zero */

for(int i=0;i<size;i++)
{
	sum=sum+p1[i];
	*(s1+i)=sum;
}
for (int i=0;i<size;i++)
	printf("%d \n", s1[i]);
}

 

Για να μην ταλαιπωρείσαι αυτή είναι η έξοδος του (δες αν σου κάνει - αν είναι αυτό που θες):

>
Give number
1
Give number
2
Give number
3
Give number
4
Give number
5
1
3
6
10
15

 

Τα σχόλια υποδεικνύουν τις αλλαγές - προτίμησα να μην επιφέρω τροποποιήσεις στον ορισμό της sum1 παρά στις παραμέτρους που περνά η "main".

 

Το πρόγραμμα δοκιμάσθηκε σε C++ Builder 2009.

 

Καλή συνέχεια!

 

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

Δημοσ.

Thanks φιλε Από τα αποτελέσματα που εχεις αυτό ήθελα...

 

Owlman ξέρω τι κανει το προγραμμα...

Βρίσκει τα μερικα αθροισματα ενος πίνακα με 2 διαφορετικους τροπους .. Ο ενας τροπος ειναι η sum1... Τον αλλο τροπο θα τον διορθωσω τωρα...

 

---------- Προσθήκη στις 16:39 ---------- Προηγούμενο μήνυμα στις 16:35 ----------

 

Ρε συ το λαθος ηταν ότι με την malloc δεν μηδενίζονταν οι πινακες οπότε μετά έπρεπε να τους μηδενίσω?

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

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

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