<< Chapter < Page Chapter >> Page >
Се прикажуваат повеке задачи со низи и нивни решениja во вид на програма во програмскиот јазик "C".

Пример 1.

Од дадена низа да се формира подниза од елементи чии вредности се од даден интервал кој ќе се внесе преку тастатура. Да се отпечати новата низа.

Програма:

#include<stdio.h>int main() {int pocetok, kraj, vlez[50], izlez[50]; int brojac = 0, i;printf (“Vnesi pocetok i kraj”); scanf (“%d %d”,&pocetok,&kraj);for(i = 0; i<50; i++) {printf(“Vnesete element %d:i”, i); scanf(“%d”,&vlez[i]);}for(i = 0; i<50; i++) {if (vlez[i]>pocetok&&vlez[i]<kraj) {izlez[i]=vlez[i]; brojac ++;} }printf(“Izleznata niza:”); for(i = 0; i<brojac; i++) {printf(“izlez[%d]:%d\n”, i, izlez[i]); }return (0) }

Пример 2.

Да се прикаже бројот на деновите во сите месеци во годината.

Програма:

#include<stdio.h>int main() {int i, meseci[] = {31,28,31,30,31,30,31,31,30,31,30,31};for(i = 1; i<13; i++) printf("Mesecot broj %d ima %d denovi\n",i,meseci[i-1]); }

Програмски сегмент:

Да се напише програмски сегмент што ќе овозможи проверка дали две низи a и b со должини n1 и n2 се идентични.

Забелешка

Две низи се идентични ако имаат ист број на елементи и ако елементите на двете низи што се наоѓаат на иста позиција имаат идентична вредност.

Програмски сегмент:

int i; if(n1 == n2) for(i=0; a[i]==b[i]&&i<n1; i++); if(i==n1) Исти се ...

Пример 4.

Да се напише програма која за низа а составена од 10 целобројни вредности, ќе ја пресмета просечната вредност на елементите од низата.

Програма:

#include<stdio.h>void main() {int a[10], i;float suma=0.0; printf ("Vnesi 10 elementi od nizata:\n");for(i=1;i<=10;i++) {scanf("%d",&a[i]);} for(i=1;i<=10;i++) {suma+=a[i];} printf("Prosecnata vrednost e: %f.\n",suma/10.0);}

Пример 5.

Да се напише програма која за дадена низа а од m (m<100) реални броеви ќе ја најде аритметичката средина на елементите. Потоа низата да се трансформира така што ќе се исфрлат елементите помали од средната вредност, и новодобиената низа да се испечати на екран.

Програма:

#include<stdio.h>void main() {int i, m, j=0; float arSred=0.0, a[100], b[100];printf("Kolku elementi ima nizata (m<100):\n"); scanf("%d",&m); for( i=1; i<= m; i++ ) {scanf("%f",&a[i]);} for(i=1;i<= m;i++) {arSred+=a[i];} arSred/= m ;for(i=1;i<= m ;i++) if(!(a[i]<arSred)) {j++; b[j]=a[i];} for(i=1;i<=j;i++) printf("b[%d]= %f\n", i, b[i]);}

Пример 6.

Непознат број студенти одговарале на по десет прашања. На секое од прашањата студентот или не одговорил или одговорил со заокружување на еден од понудените пет одговори (1, 2, 3, 4 и 5). За секој точен одговор студентот добива по два поени, а за секој погрешен му се одзема по еден поен. Да се напише програма која на почетокот од тастатура ќе ги прочита точните одговори на десетте прашања, а потоа за внесените одговори на секој студент ќе го испечати бројот на поени кои ги освоил студентот.

Забелешка:

Прашањата на кои студентот не одговорил се кодираат со било кој знак различен од 1, 2, 3, 4 и 5.

Програма:

#include<stdio.h>#define BrPrasanja 10 void main(){ int kluc[BrPrasanja], odgovor[BrPrasanja];char c=’ ‘; int bod, i, j=1;printf(“Vnesi tocni odgovori:\n”); for(i=1;i<=BrPrasanja;i++) scanf(“%d”,&kluc[i]);printf(“Vnesuvaj odgovori na studenti:\n”); while(c != ‘.’){ for(i=1;i<=BrPrasanja;i++) scanf(“%d”,&odgovor[i]);bod=0; for(i=1;i<=BrPrasanja;i++) if((odgovor[i]>=1)&&(odgovor[i]<=5)) if(odgovor[i]==kluc[i]) bod+=2;else bod-=1; printf(“Student %d: %d bodovi.\n”, j, bod);j++; printf(“Sleden student (. Za kraj)\n”);c=getchar(); }}

Пример 7.

Да се напише програма која за дадена низа A од реални броеви и N, број на елементи во A, ќе ја пресмета најголемата разлика меѓу два соседни елементи од оваа низа.

Програма:

#include “stdio.h” #include “math.h”#define MAXELEM 10 void main(void){ float a[MAXELEM]; int i,n;float raz,maxr; printf(“Vnesi kolku elementi ke ima nizata A\n”);scanf(“%d”,&n); printf(“Vnesi gi elementite na nizata A\n”);for (i=0; i<n; i++) {printf(“A[%d]=”,i);scanf(“%f”,&a[i]);} maxr=fabs(a[1]-a[0]);for (i=2; i<n; i++) {raz=fabs(a[i]-a[i-1]); if(raz>maxr) maxr=raz;}printf(“Najgolemata razlika medju dva sosedni elementi e:%f\n”,maxr); }

Пример 8.

Да се напише програма која во низа од N цели броеви ќе го пронајде почетокот и должината на најдолгата растечка подниза.

Програма:

#include "stdio.h" #define MaxElem 10int main() {float a[MaxElem];int i,n,pos,len; printf("Dolzina na nizata: "); scanf("%d",&n); for (i=0; i<n; i++) scanf("%f",&a[i]);int poc,dolz; poc=0; dolz=1;pos=0; len=1; i=0;while (i<n-1) {poc=i; dolz=1;while ((a[i]<a[i+1])&&(i<n)) {i=i+1; dolz=dolz+1;} if (dolz>len) {len=dolz; pos=poc;} i=i+1;} printf("Pocetok:%d, dolzina:%d",pos,len);return 0; }

Пример 9.

Да се напише програма во која од тастатура се чита влезната низа { a 0 , a 1 , , a n 1 } size 12{ lbrace a rSub { size 8{0} } ,a rSub { size 8{1} } , dotslow ,a rSub { size 8{n - 1} } rbrace } {} и потоа ќе се испечати трансформирана низа { b 0 , b 1 , , b n 1 } size 12{ lbrace b rSub { size 8{0} } ,b rSub { size 8{1} } , dotslow ,b rSub { size 8{n - 1} } rbrace } {} на следниот начин:

b 0 = a 0 + a n 1 b 1 = a 1 + a n 2 b n 1 = a n 1 + a 0 alignl { stack { size 12{b rSub { size 8{0} } =a rSub { size 8{0} } +a rSub { size 8{n - 1} } } {} #b rSub { size 8{1} } =a rSub { size 8{1} } +a rSub { size 8{n - 2} } {} # dotsvert {} #b rSub { size 8{n - 1} } =a rSub { size 8{n - 1} } +a rSub { size 8{0} } {} } } {}

На пример, влезната низа 1, 2, 3, 5, 7, треба да се трансформира во 8, 7, 6, 7, 8.

Програма:

#include “stdio.h” #define Max 100int main() {int n,i,a[Max];printf("Kolku elementi ima nizata: "); scanf(“%d”,&n); printf(“Vnesi gi elementite na nizata\n”);for (i=0; i<n; i++) scanf(“%d”,&a[i]);int b[Max];for (i=0; i<n; i++) b[i]=a[i]+a[n-i-1];for (i=0; i<n; i++) printf(“b[%d]=%d a[%d]=%d\t”,i,*(b+i),i,a[i]); printf(“\n”);return 0; }

Пример 10.

Да се напише програма која ќе прочита од тастатурата несортирана низа А од цели броеви за потоа да ја испечати низата во ист редослед, но предходно ќе изврши бришење на броевите кои се дупликати.

На пример, за дадено поле A: 15, 31, 23, 15, 75, 23, 41, 15, 31, 85 од 10 цели броеви, излезното поле треба да биде: 15, 31, 23, 75, 41, 85 со должина 6.

Програма:

#include "stdio.h" #define MAX 100int main() {int i,n,brElem, a[MAX];printf("Kolku elementi ima nizata: ");scanf("%d",&n); printf("Vnesi gi elementite na nizata\n");for (i=0; i<n; i++) scanf("%d",&a[i]);int j, brojac;brojac=0; for (i=0; i<n; i++) {j=0; while ((j<= brojac)&&(a[i] != a[j])) j++;if (j>brojac) {brojac++; a[brojac]=a[i];} }brElem=brojac+1; for (i=0; i<brElem; i++) printf("%d",a[i]); return 0;}

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Вовед во програмирање. OpenStax CNX. Oct 28, 2013 Download for free at http://cnx.org/content/col11379/1.12
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Вовед во програмирање' conversation and receive update notifications?

Ask