Помогите найти ошибку...
От: Aleksej_A  
Дата: 17.03.04 15:36
Оценка:
#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
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.