Δημοσιεύτηκε: 07 Αύγ 2011, 13:24
Επιτέλους το βρήκα!
Με πέδεψε πάρα πολύ αλλά με βοήθησε αφού μέχρι να την λύσω χρησιμοποίησα δείκτες,συναρτήσεις κτλ.Τελικά το μόνο που χρειαζόταν ήταν σκέψη στον τρόπο και όχι στον κώδικα!Να και η λύση:
(Συγνώμη που δεν χρησιμοποίησα πολλά σχόλια.Θα προσπαθήσω να κάνω πιο ευανάγνωστο τον κώδικα.)
Επίσης ξέρω πως η γραμμή:
Δεν είναι ότι το καλύτερο για να συγκρίνω την θέση του πίνακα αλλά όταν χρησιμοποιούσα κάτι άλλο που έβγαζε σφάλματα.
@migf1 Πολύ ωραία η άσκηση!

Με πέδεψε πάρα πολύ αλλά με βοήθησε αφού μέχρι να την λύσω χρησιμοποίησα δείκτες,συναρτήσεις κτλ.Τελικά το μόνο που χρειαζόταν ήταν σκέψη στον τρόπο και όχι στον κώδικα!Να και η λύση:
- Κώδικας: Επιλογή όλων
/* ------------------------------------------------------
* Από: Qdata
*
* Άσκηση: Γράψτε μια συνάρτηση που θα παίρνει ως ορίσματα δυο strings και
* θα ελέγχει για το αν το ένα είναι αναγραμματισμός του άλλου.
* Θα επιστρέφει TRUE αν είναι, FALSE αν δεν είναι (ή 1 και 0, αντίστοιχα).
*
* Παραδείγματα:
*
* "abcd", "dbca" δίνει TRUE
* "helle", "hollo" δίνει FALSE
* "z", "zzz" δίνει FALSE
* "zzz", "z" δίνει FALSE
* "z", "z" δίνει TRUE
* -----------------------------------------------------
*/
#include <stdio.h>
#include <string.h> /* για strlen() */
/*-------------------- Main Fuction --------------------*/
main()
{
int len,result;
char first_word[100],second_word[100];
printf("Δώστε την πρώτη λέξη: ");
gets(first_word);
printf("Δώστε την δεύτερη λέξη: ");
gets(second_word);
len = strlen(first_word);
result = strcheck(len,first_word,second_word);
if(result == 1)
printf("Οι πρώτη λέξη είναι αναγραμματισμός της άλλης.\n");
else
printf("Καμία από τις λέξεις δεν είναι αναγραμματισμός της άλλης.\n");
}
/*-------------------- String Check --------------------*/
int strcheck(int len_from_main,char str_one[100], char str_two[100])
{
int i,j; /*για for loop*/
int len,count;
len = len_from_main;
count = 0;
for(i=0,j=(len-1);i != (len+1), j != 0;++i,j=j-1)
{
if(str_one[i] == str_two[j])
++count;
}
++count;
if(count == len)
return 1;
else
return 0;
}
/*------------------- End of program -------------------*/
(Συγνώμη που δεν χρησιμοποίησα πολλά σχόλια.Θα προσπαθήσω να κάνω πιο ευανάγνωστο τον κώδικα.)
Επίσης ξέρω πως η γραμμή:
- Κώδικας: Επιλογή όλων
if(str_one[i] == str_two[j])
Δεν είναι ότι το καλύτερο για να συγκρίνω την θέση του πίνακα αλλά όταν χρησιμοποιούσα κάτι άλλο που έβγαζε σφάλματα.
@migf1 Πολύ ωραία η άσκηση!