SDA Lucrarea 1: Diferență între versiuni

De la WikiLabs
Jump to navigationJump to search
Linia 38: Linia 38:
         done = 1;
         done = 1;
         for(i=0; i<vectorLength; i++){
         for(i=0; i<vectorLength; i++){
             if(v[i] > v[i + 1]){
             if(vector[i] > vector[i + 1]){
                 temp = v[i];
                 temp = vector[i];
                 v[i] = v[i + 1];
                 vector[i] = vector[i + 1];
                 v[i + 1] = temp;
                 vector[i + 1] = temp;
                 done = 0;
                 done = 0;
             }
             }
Linia 48: Linia 48:
      
      
     for(i=0; i<vectorLength; i++){
     for(i=0; i<vectorLength; i++){
         printf("%d, ", v[i]);
         printf("%d, ", vector[i]);
     }
     }
     printf("\n");
     printf("\n");

Versiunea de la data 5 martie 2015 22:45

Exercițiul 1

Realizați un program care să citească de la tastatură o lungime n, apoi n numere care să fie stocate într-un vector. Apoi se va citi de la tastatură o valoare v și se va afișa pe ecran de câte ori apare valoarea v în vector.

Exercițiul 2

Modificați programul de la exercițiul 1 astfel încât citirea datelor și cautarea valorii în vector să fie scrise în funcții diferite.

Exercițiul 3

Modificați programul de la exercițiul 2 astfel încât cele două funcții și main să se afle în fișiere separate.

Exercițiul 4

Următorul program implementează o sortare de vector dar are o eroare. Utilizați debugger-ul grafic pentru a identifica problema.

#include <stdio.h>

int main(){
    int vectorLength;
    printf("Length = ");
    scanf("%d", &vectorLength);

    int vector[vectorLength];
    int i;    
    
    for(i=0; i<vectorLength; i++){
        printf("v[%d] = ", i);
        scanf("%d", &vector[i]);
    }
    

    int temp;
    int done;
    
    do{
        done = 1;
        for(i=0; i<vectorLength; i++){
            if(vector[i] > vector[i + 1]){
                temp = vector[i];
                vector[i] = vector[i + 1];
                vector[i + 1] = temp;
                done = 0;
            }
        }
    }while(!done);
    
    for(i=0; i<vectorLength; i++){
        printf("%d, ", vector[i]);
    }
    printf("\n");
    return 0;
}

Exercițiul 5

Următorul program calculează factorial-ul unui număr, dar are o eroare. Utilizați debugger-ul grafic pentru a identifica problema.

#include<stdio.h>

int factorial(int n){
    return n * factorial(n - 1);
}

int main(){

    int number;
    scanf("%d", &number);
    
    printf("n! = %d\n", factorial(number));
    
    return 0;
}