Są już wyniki pierwszego etapu III Olimpiady Informatycznej Gimnazjalistów. Poniżej załączam dokument z wyróżnionymi uczestnikami moich Warsztatów Informatycznych.
Wszystkim, a zwłaszcza wyróżnionym, serdecznie gratuluję!!!
środa, 28 stycznia 2009
sobota, 3 stycznia 2009
Wczytywanie całego wiersza c.d.
Ponieważ w DevC++ nie kompiluje się funkcje getline, proponuję użyć funkcji gets. Oto przykład programu, który wczytuje cały wiersz:
#include<cstdio> #include<cstdlib> #include<cstring> using namespace std; char line[1000005]; int n; // długość linii int main() { gets(line); n = strlen(line); printf("n=%d\n", n); printf("%s\n", line); printf("Znak po znaku:\n"); for (int i=0; i<n; i++) { printf("line[%2d] = %c (kod ascii=%d)\n", i, line[i], line[i]); } return 0; }
piątek, 2 stycznia 2009
Wczytywanie całego wiersza
Pomyślałem, że wielu gimnazjalistom przydałaby się wskazówka, jak wczytywać cały wiersz ze standardowego wejścia. Wiersz może zawierać znaki odstępu (spacje).
Poniższy program wczytuje cały pierwszy wiersz ze standardowego wejścia (aż do napotkania znaku nowej linii). Program zapamiętuję wiersz w tablicy znaków line, a liczbę wczytanych znaków zapamiętuje pod zmienną n (nie wliczając znaku końca wiersza, czyli znaku nowej linii, czyli znaku '\n').
Poniższy program wczytuje cały pierwszy wiersz ze standardowego wejścia (aż do napotkania znaku nowej linii). Program zapamiętuję wiersz w tablicy znaków line, a liczbę wczytanych znaków zapamiętuje pod zmienną n (nie wliczając znaku końca wiersza, czyli znaku nowej linii, czyli znaku '\n').
#include<cstdio>
#include<cstdlib>
using namespace std;
char *line;
int n; // długość linii
int main()
{
line=NULL;
size_t mem_size;
n=getline(&line,&mem_size,stdin)-1;
printf("n=%d\n", n);
printf("%s\n", line);
printf("Znak po znaku:\n");
for (int i=0; i<n; i++)
{
printf("line[%2d] = %c (kod ascii=%d)\n", i, line[i], line[i]);
}
return 0;
}
Subskrybuj:
Posty (Atom)