#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include "antraste.h"
#define ESC_CODE (27)
// maksimalus eiluciu skaicius ekrane
#define MAX_LINE_NUMBER (35)
int ivedimas()
//f-ja nuskaitanti skaiciu, kuris nurodo kiek bus skaitmenu skaiciuose
{
int sk; //skaitmenu kiekis
do
{
scanf("%d",&sk);
if (sk < 3)
printf(" Skaicius turi buti ne mazesnis uz 3 ir ne didesnis uz 7 !\n");
}
while ( (sk < 3) || (sk>7) );
return sk;
}
//заполняем стек
uzpild_st(int skaitm; //27
unsigned long int *st_pradzia,
unsigned long int *stekas)
{
unsigned long int skaicius;
st_pradzia = stekas = malloc( sizeof(unsigned long int) );
//st_pradzia = stekas;
for (skaicius = pow(10, skaitm-1); skaicius <= pow(10, skaitm) - 1; skaicius++)
if (yra_3_vienodi(skaicius)) //f-ja is modulio "antraste.h"
{
*stekas = skaicius;
stekas = realloc(stekas, sizeof(unsigned long int));
//stekas++; //perkeliame rodykle i kita atminties lastele
}
}
//печатаем содержимое стека
void spausd_st(unsigned long int *st_pradzia,
unsigned long int *stekas)
{
long int kiek_sk; //kiek radome skaiciu, tenkinanciu salyga
char simb;
kiek_sk = 1;
while (st_pradzia < stekas)
{
printf(" %d-asis skaicius = %d\n", kiek_sk, (*st_pradzia));
st_pradzia++;
kiek_sk++;
if (kiek_sk % MAX_LINE_NUMBER == 0)
{
printf(" Jeigu norite ziureti skaicius toliau - <ENTER> ;\n Iseiti is programos - <ESC>.\n");
simb = getchar();
system("clear");
if (simb == ESC_CODE) exit(0);
// sitas ciklas vykdomas, kai isvedami eiliniai 35 skaiciai-vartotojas turi juos visus pamatyti
// ir nuspresti - vykdyti programa toliau ar nutraukti
}
}
free(stekas);
}
int main()
{
//simolis, ivedamas is klaviaturos
char simb;
unsigned long int *st_pradzia_m, *stekas_m;
do
{
system("clear");
printf("\n autorius - Aleksej A.\n\n");
printf(" Programa atspausdina visus N-zenklius skaicius, kuriu 3 skaitmenys vienodi.\n\n Iveskite skaiciu N ->");
//заполняем стек
uzpild_st(ivedimas(), st_pradzia_m, stekas_m); //91
//выводим на экран все числа из стека
spausd_st(st_pradzia_m, stekas_m);
simb = getchar();
printf("Press <ESC> to quit, another key to continue...\n");
simb = getchar();
}
while (simb!=ESC_CODE);
}
в 27-parameter skaitm has just a forward declaration-не понимаю, в чем дело, ведь я передаю параметр, вызывая функцию
в 91-passing arg 1 of uzpild_st makes pointer from integer without a cast
в 91-passing arg 3 of uzpild_st makes integer from pointer without a cast
использую линуксовый GCC 3.2.2
Заранее благодарю.
Исправлена раскраска — WH