Практика программирования (Бейсик, Си, Паскаль)



         

Задачи, советы и ответы - часть 15


getch (); }

int difference(int *a,int n) {

int i,j,k0,m;

for(i=k0=0; i<n; i++)

if(a[i] == 0) { k0=1; break; }

for(i=0; i<n-l; i++)

{ if(a[i]==0) continue;

for(j=i+l; j<n; j++)

if(a[i]==a[j]) { a[i]=0; break; } }

for(i=m=0; i<n; i++)

if(a[i] !=0)m++;

return m+k0; }

Программа 4_09с.с

#include <stdio.h>

#include <conio.h>

#include <alloc.h>

int difference(int *a,int n);

main() {

int a0[5]={0,0,0,0,0};

int a1[5]={l,l,l,l,l};

int a2[5]={0,l,l,l,l};

int a3[5]={0,0,l,l,2);

int a4[5]={0,l,2,3,4);

int a5[5]={l,2,3,4,5};

printf("\n Количество разных чисел в этом массиве равно ");

printf("%d",difference(a5, 5)) ;

getch(); }

int difference(int *a, int n) {

char *b;

char mask[8]={128,64,32,16,8,4,2,1};

int bit,byte,i,m;

b=calloc(4096,1);

for(i=m=0; i<n; i++) {

byte = a[i]/8; bit = a[i]%8;

if ((b [byte] & mask [bit] )=0)

{ m++; b[byte] | = mask[bit]; } }

free(b); return m; }

Программа 4_09a.pas

program dif;

const

a0:array [0..4] of integer=(0,0,0,0, 0)

al:array [0..4] of integer=(l,1,1,1,1)

a2:array [0..4] of integer=(0,1,1,1,1)

a3:array [0..4] of integer=(0,0,1,1, 2)

a4:array [0..4] of integer=(0,1,2,3,4)

a5:array [0..4] of integer=(1,2, 3, 4, 5)

procedure sort(var a:array of integer);

begin end;

function difference(a:array of integer):integer;

var i,m: integer;

begin

sort(a);

m:=l;

for i:=0 to High(a)-1 do

if a[i] <> a[i+l] then inc(m);

difference:=m;

end;

begin

write('Количество разных чисел в этом массиве равно ');

write(difference(a5));

readln; end.

Программа 4_09b.pas

program difl; const

a0:array [0..4J of integer=(0,0,0,0,0)

a1:array [0..4] of integer= (1,1,1,1,1)

a2:array [0..4] of integer=(0,1,1,1,1)

a3:array [0..4] of integer=(0,0,1,1,2)

a4:array [0..4] of integer=(0,1,2,3,4)

a5:array [0..4] of integer=(1,2,3,4,5)

function difference(a:array of integer):integer;

var

i,j,k0,m,n:integer;

begin




Содержание  Назад  Вперед