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


         

n Количество разных чисел


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

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