Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [C] Програму переделать с указателями


Автор: laila 16.4.2008, 00:09
Пожалуйста, помогите с программой!!! Я в программирование неочень сильна, написала приметивную програмку в Си для нахождения простого числа, а сейчас преподователь сказал в програмку добавить указатели, но я никак не въежаю как с этими указателями работать. Please помогите доделать чтобы код был с указателями[code=cpp]

Код

#include <stdio.h>
int dejstvija(int);
int main()
{
    int cislo,a;
    printf ("Vvedite cislo, kotoroje xotite proverit:\n");
    scanf("%d", &cislo);
    while(cislo < 2)
    {
        printf("Cislo dolzno byt bolse 2.\n");
        printf("Probujte ese raz.\n");
        printf ("Vvedite cislo, kotoroje xotite proverit:\n");
        scanf("%d",&cislo);
    }
    
    if (dejstvija(cislo))  
        printf ("%d - prostoje cislo.\n",cislo);
    else
        printf ("%d - sostavnoje cislo.\n", cislo);
    system("pause");  
}
 

int dejstvija (int cislo)

{   int delitel;
    for( delitel=2 ; cislo % delitel != 0;  delitel ++ ); 
    if (delitel == cislo)
        return 1; 
    else 
        return 0;      
    
}
      

Автор: bsa 16.4.2008, 00:22
Это единственное, что пришло мне в голову (привел только строчки, которые нужно исправить):
Код
int dejstvija(const int*);
...
    if (dejstvija(&cislo))
...

int dejstvija (const int* cislo)
{
...
    for( delitel=2 ; (*cislo) % delitel != 0;  delitel ++ ); 
    if (delitel == *cislo)
...
}

Автор: t_gran 16.4.2008, 04:09
Код

#include <stdio.h>

int dejstvija (const int *cislo)
{
   int *delitel= malloc (sizeof (int));
   for (*delitel= 2; *cislo % *delitel != 0; (*delitel)++);
   int outDat= 0;
   if (*delitel == *cislo)
      outDat= 1;  
   free (delitel);
   return outDat;
}

int main ()
{
   int *cislo= malloc (sizeof (int));
   printf ("Vvedite cislo, kotoroje xotite proverit:\n");
   scanf ("%d", cislo);
   while (*cislo < 2)
   {
      printf ("Cislo dolzno byt bolse 2.\n");
      printf ("Probujte ese raz.\n");
      printf ("Vvedite cislo, kotoroje xotite proverit:\n");
      scanf ("%d",cislo);
   }
   if (dejstvija (cislo))
      printf ("%d - prostoje cislo.\n", *cislo);
   else
      printf ("%d - sostavnoje cislo.\n", *cislo);
   free (cislo);
   system("pause");  
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)