Probleme in C

Imagine preview
(7/10 din 1 vot)

Acest referat descrie Probleme in C.
Mai jos poate fi vizualizat un extras din document (aprox. 2 pagini).

Arhiva contine 1 fisier doc de 17 pagini .

Iti recomandam sa te uiti bine pe extras si pe imaginile oferite iar daca este ceea ce-ti trebuie pentru documentarea ta, il poti descarca. Ai nevoie de doar 5 puncte.

Domeniu: Limbaje de Programare

Extras din document

1. Se considera un nr natural n (n< 100000000). Se cere sa se verifice daca n are toate cifrele distincte doua cate doua.

-pt fiecare cifra calculez de cate ori se afla printre cifrele nr n.

-daca o cifra apare de cel putin doua ori, atunci cfrele care compun nr nu sunt distincte

Pseudocod:

read n

b=1

for i=0,9 do

m=n

k=0

while m<>0 do

if i=m%10 then kßk+1

m=m/10

if k>=2 then b=0

if b=1 then write cifre distincte

else write nu sunt distincte

C:

#include<stdio.h>

long n,m,k,i,b;

void main()

{

printf("intr numarul");

scanf("%d",&n);

b=1;

for(i=0;i<=9;i++)

{

m=n;

k=0;

while(m!=0)

{

if(i==m%10) k++;

m=m/10;

}

if (k>=2) b=0;

}

if (b)

printf("cifre distincten");

else

printf("nu sunt distincten");

}

2. Fie o matrice cu m linii si n coloane, componente numere intregi.Folosind numai operatii de interschimbare de coloane, se cere sa se ordoneze crescator ultima linie a matricei.

-se ordoneaza crescator elementele de pe ultima linie a matricei (prin metoda bulelor) interschimband nu numai elemntele ultimei linii ci toate elementele asociate coloanelor acestora

Pseudocod:

read m,n

for iß1,m do

for iß1,n do

read a[i,j]

ordß1

for jß1,n do

if a[m,j]>a[m,j+1] then

ordß0

for iß1,m do

auxßa[i,j]

a[i,j]ßa[i,j+1]

a[i,j+1]ßaux

while ord=0 do

for iß1,m do

for jß1,n do

write(a[i,j])

C:

#include<stdio.h>

int a[51][51] , m,n,i,j;

int aux, ord;

void main()

{

printf("nr linii ");scanf("%i", &m);

printf("nr coloane ");scanf("%i",&n);

for (i=1;i<=m;i++)

for (j=1;j<=n;j++)

{

printf("a[%d][%d]= ",i,j);

scanf("%d",&a[i][j]);

}

do

{

ord=1;

for (j=1;j<n;j++)

if(a[m][j]>a[m][j+1])

{

ord=0;

for(i=1;i<=m;i++)

{ aux=a[i][j];

a[i][j]=a[i][j+1];

a[i][j+1]=aux;

}

}

}

while (!ord);

for(i=1;i<=m;i++)

{

for(j=1;j<=n;j++)

printf("%d",a[i][j]);

printf("n");}

}

Fisiere in arhiva (1):

  • Probleme in C.doc