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

Ενα προβληματάκι στη C ?


cxmgp

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

Δημοσ.

Καλησπερα, μπορειτε να με βοηθησετε στο ακολουθο προβληματακι, γιατι εχω κολλησει;

 

εχω ενα μονοδιαστατο πινακα 10 θεσεων, πχ τον tbl[10]=

100 101 102 103 104 105 106 107 108 109 110

 

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

 

το πρωτο μειον το δευτερο στοιχειο ισουται με -1

το δεύτερο μειον το τριτο στοιχειο ισουται με -1

το τριτο μειον το τεταρτο στοιχειο ισουται με -1

 

κτλ κτλ ?

 

Ευχαριστω πολυ εκ των προτερων!

Δημοσ.

>int main(void)
{
int tb[10]={0};
int tblen = 10;

for(int i = 0; i + 1 < tblen ; i++)
{
	if( (tb[i]-tb[i+1]) == -1)
		printf("mpou");
	else 
		printf("tsa");
}


return 0;
}

Το φερνεις στα μετρα σου, και εισαι οκ.

Δημοσ.

Ετσι ελεγχονται ολα τα:

tbl[0]-tbl[1]=-1

tbl[1]-tbl[2]=-1

tbl[2]-tbl[3]=-1

tbl[3]-tbl[4]=-1

tbl[4]-tbl[5]=-1

...

tbl[9]-tbl[10]=-1

 

???

 

η θελει διπλη for?

 

 

 

....δεν μου βγαινει σωστο αποτελεσμα :(

Δημοσ.

Και όταν φτάσεις στο δέκατο στοιχείο τι θα κάνεις; Θα το συγκρίνεις με το -ανύπαρκτο- ενδέκατο; Ή θα γυρίσεις στην αρχή να συγκρίνεις με το πρώτο; Ή θα συγκρίνεις μέχρι το ένατο στοιχείο και μετά τέρμα;

 

ΥΓ: Στο θέμα σου λες για πίνακα 10 θέσεων ενώ έχεις παραθέσει 11 στοιχεία. Πρόσεξέ το. :-)

Δημοσ.

ο έλεγχος που ζητάς να γίνει με τα στοιχεία του πίνακα

είναι (α)αυτόνομος για κάθε ζευγάρι στοιχείων του πίνακα ή (β)συνολικός για όλα τα ζευγάρια?

 

δηλαδή

α)

αν tbl[0]-tbl[1]==-1 κάνε....

αν tbl[1]-tbl[2]==-1 κάνε....

 

ή

β)

αν (tbl[0]-tbl[1]==-1 και tbl[1]-tbl[2]==-1 και....και tbl[ν]-tbl[ν+1]==-1) κάνε

Δημοσ.

και πότε θες να πάρεις αποτέλεσμα;; όταν ισχύει αυτή η ολόκληρη συνθήκη;; τότε

 

if(tbl[0]-tbl[1]==-1)

if (tbl[1]-tbl[2]==-1)

if (tbl[2]-tbl[3]==-1)

if (tbl[3]-tbl[4]==-1)

if (tbl[4]-tbl[5]==-1)

if (tbl[5]-tbl[6]==-1)

if (tbl[6]-tbl[7]==-1)

if (tbl[7]-tbl[8]==-1)

if (tbl[8]-tbl[9]==-1)

do....

 

ισούται με

 

if(tbl[0]-tbl[1]==-1)

if (tbl[1]-tbl[2]==-1 && tbl[2]-tbl[3]==-1 && tbl[3]-tbl[4]==-1 && tbl[4]-tbl[5]==-1

&& tbl[5]-tbl[6]==-1 && tbl[6]-tbl[7]==-1 && tbl[7]-tbl[8]==-1 && tbl[8]-tbl[9]==-1)

do....

Δημοσ.

τότε κάνε το έτσι

 

>
#include <stdio.h>

int main(){
int tbl[]={100,101,102,103,104,105,106,107,108,109};
int tblen = 10;
       int isOk=1;
for(int i = 0; i < tblen-1 ; i++){
               printf("checking %d with %d\n",tbl[i],tbl[i+1]);
	if( (tbl[i]-tbl[i+1]) != -1){
                   isOk=0;
                   break;
               }
}
if (isOk) 
             printf("\ni sin8iki isxyei!!");
       else
             printf("\ni sin8iki den isxyei!!");
      getchar();
      return 0;
}

Δημοσ.

Αυτή είναι κλασική άσκηση εισαγωγης στη C για πρωτοετής φοιτητές.. Στο νέτ θα βρείς κανα κατομύριο παραδείγματα.. Επίσης το πρώτο πράγμα που μαθαίνει κανείς όταν ανοίγει το κεφάλαιο arrays είναι ότι το 0 είναι το πρώτο στοιχείο σε sized arrays... μπιπ μπιπ..

Δημοσ.
τότε κάνε το έτσι

 

>
#include <stdio.h>

int main(){
int tbl[]={100,101,102,103,104,105,106,107,108,109};
int tblen = 10;
       int isOk=1;
for(int i = 0; i < tblen-1 ; i++){
               printf("checking %d with %d\n",tbl[i],tbl[i+1]);
	if( (tbl[i]-tbl[i+1]) != -1){
                   isOk=0;
                   break;
               }
}
if (isOk) 
             printf("\ni sin8iki isxyei!!");
       else
             printf("\ni sin8iki den isxyei!!");
      getchar();
      return 0;
}

 

ναι αρκεί το isOk να είναι bool και δεν ξέρω αν στην C παίρνει 0,1 κ όχι μόνο true false..

Δημοσ.

Δεν υπάρχει bool στη C. Αντ' αυτού χρησιμοποιείς int, όπου to 0 σημαίνει false και οποιαδήποτε άλλη τιμή true. Μόνο η C++ έχει booleans.

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

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

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