Advertisement
TwiNNeR

Zadacha 1 feit - nizi i pointeri

Nov 30th, 2014
248
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.70 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. /*
  5. Задача:
  6. 1. Да се напише програма која во дадена низа од n цели позитивни броеви (бројот на елементи
  7. и низата се читаат од тастатура) ќе изврши замена на простите соседни елементи. На еден ист
  8. елемент од низата може најмногу еднаш да му се изврши замена. Потоа да се испечати
  9. новодобиената низа.
  10. Забелешка: Проверката дали бројот е прост да се реализира со посебна функција
  11. Пример: влезна низа: 4 6 3 5 7 11 излезна низа: 4 6 5 3 11 7
  12. влезна низа: 4 6 3 5 7 11 13 излезна низа: 4 6 5 3 11 7 13
  13.  
  14. */
  15.  
  16. int prost(int n)
  17. {
  18.     int i;
  19.     for(i=2;i*i<n;i++)
  20.     {
  21.         if(!(n%i)) return 0;
  22.     }
  23.     return 1;
  24. }
  25.  
  26. int zamena(int *a)
  27. {
  28.     int p;
  29.     if(prost(*a))
  30.     {
  31.         p=*a;
  32.         *a=*(a+1);
  33.         *(a+1)=p;
  34.         return 1;
  35.     }
  36.     return 0;
  37. }
  38.  
  39. void print_niza(int a[],int n)
  40. {
  41.     int i;
  42.     for(i=0;i<n;i++) printf("%d ",a[i]);
  43.     return;
  44. }
  45.  
  46. int main()
  47. {
  48.     int a[100],n;
  49.     printf("Vnesete broj chlenovi na niza: ");
  50.     scanf("%d",&n);
  51.     printf("Vnesete gi chlenovite: ");
  52.     int i,p,flag=0;
  53.     for(i=0;i<n;i++) scanf("%d",&a[i]);
  54.     if(prost(a[0])&&prost(a[1]))
  55.     {
  56.         p=a[0];
  57.         a[0]=a[1];
  58.         a[1]=p;
  59.     }
  60.     for(i=2;i<n-1;i++)
  61.     {
  62.         if(flag) flag=0;
  63.         else if(zamena(&a[i])) flag=1;
  64.     }
  65.     print_niza(a,n);
  66.  
  67.     return 0;
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement