Συντονιστής: konnn


#include<stdio.h>
int main(void)
{
int num , count , in_count=0 , s_day; // s_day for starting day
printf(" Enter number of days in month: ");
scanf("%d" , &num);
printf(" Enter the starting day of the week (1=Sun , 7=Sat): ");
scanf("%d" , &s_day);
printf(" K Δ Τ Τ Π Π Σ \n");
for(count=1; count<=num; count++)
{
in_count++;
if( (s_day + in_count) > 8)
{
printf("\n");
in_count=1;
}
printf("%3d" , count);
}
return 0;
}


migf1 έγραψε:Ηλία δεν ορίζει MAXTOKENS tokens, αλλά άγνωστο πλήθος tokens μέγιστου μήκους MAXTOKENS χαρακτήρων... είναι σίγουρο (το διασταύρωσα μόλις, όχι με κώδικα, με θεωρία)... άρα όντως είναι λάθος το παράδειγμα στο site μου (νοηματικά τουλάχιστον).
lots
of
migf1 έγραψε:τι κάνει αν για delimiters του δώσεις π.χ. "abcd"
migf1 έγραψε:τι σου επιστρέφει αν δεν υπάρχει κανένας delimiter μέσα στο s

Star_Light έγραψε:.. πως θα μετατοπισω το 1 να παει κατω απο την Τριτη το ρημαδι

Ilias95 έγραψε:Star_Light έγραψε:.. πως θα μετατοπισω το 1 να παει κατω απο την Τριτη το ρημαδι
Προφανώς θα εκτυπώσεις κενούς χαρακτήρες.
Έτσι όπως το έχεις τώρα ότι starting day και να δώσει ο χρήστης ξεκινάει απ' την Κυριακή και μάλιστα δεν εκτυπώνει καθόλου μέρες κάτω από Παρασκευή και Σάββατο.
Hint1: Εκτύπωσε πρώτα την πρώτη εβδομάδα (έξω από loop) και μετά τις υπόλοιπες.

Ilias95 έγραψε:
Τότε για ποιον λόγο ο παρακάτω κώδικας:
...
Μου δίνει έξοδο:
...
Αν το μέγιστο μήκος των strings που περιέχονται στην array tokens ήταν MAXTOKENS (δηλ. 2) δεν θα μπορούσε να αποθηκευτέι το string "lots".
έγραψε:Πιο λογικό μου ακούγεται να εκχωρεί στο 1ο στοιχείο της λίστας των tokens το ίδιο το string. Ή να κάνω κάτι διαφορετικό;

Star_Light έγραψε:Ilias95 έγραψε:
Hint1: Εκτύπωσε πρώτα την πρώτη εβδομάδα (έξω από loop) και μετά τις υπόλοιπες.
hehehe σωστος! Και εγω αυτο σκεφτηκα οτι πρεπει να εκτυπωνει κενους χαρακτηρες.
Ευχαριστω για το hint φαινεται καλο θα το δοκιμασω !!!!

migf1 έγραψε:
Για αυτό σου έγραψα το μεσημέρι πως δεν είναι τόσο απλό να την κάνεις γενικής χρήσης. Διότι πέρα από τον κώδικα, πρέπει να βρεις/διαλέξεις/αποφασίσεις τι και ποια ορίσματα θα της περνάς, πως θα τα διαχειρίζεσαι, πως θα αντινετωπίζεις ενδεχόμενα σφάλματα και τι θα επιστρέφεις από την συνάρτηση
#include <stdio.h>
#include <string.h>
#define MAXTOKENS 20
int s_tokenize(char *s, char *tokens[], const int ntoks, const char *delims)
{
int i;
if (! s[0] || ! delims[0])
return 0;
tokens[0] = strtok(s, delims);
for (i = 1; i < ntoks; i++) {
tokens[i] = strtok(NULL, delims);
if (! tokens[i])
break;
}
return i;
}
int main( void )
{
char s[] = "lots of character to play with";
char *tokens[MAXTOKENS] = {NULL};
int ntokens = 0;
ntokens = s_tokenize(s, tokens, MAXTOKENS, "abcd");
if (ntokens > 0)
for (int i=0; i < ntokens; i++)
puts(tokens[i]);
return 0;
}
