Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- FILE *fin;
- float L;
- float minLength,controlLength;
- int pointer;
- int N,controlNumber;
- int minNumber;
- struct Book *d;
- struct Book
- {
- float length;
- int number;
- };
- int main(void)
- {
- fin = fopen("books.dat","r");
- fscanf(fin,"%f",&L);
- fscanf(fin,"%d",&N);
- d = (struct Book*)malloc(sizeof(struct Book) * N);
- for (int i = 0; i < N;i++)
- {
- fscanf(fin,"%f",&d[i].length);
- d[i].number = i;
- //printf("NUMBERCHECK:%d",d[i].number);
- }
- do{
- minLength = d[0].length;
- //printf("MINLENGTHCHECK:%f\n",minLength);
- for (int i = 0; i < N; i++){
- if (d[i].length <= minLength){
- pointer = i;
- minLength = d[i].length;
- minNumber = d[i].number;
- //printf("NUMBERCHECK:%d\n",d[i].number);
- }
- }
- //N--;
- //L = L - minLength;
- /*if ((N>0) && (L>0)){
- printf("BOOK #:%d LENGTH:%f\n",minNumber,minLength);
- controlLength += minLength;
- controlNumber++;
- }*/
- for (int i = pointer; i < N - 1; i++){
- d[i] = d[i+1];
- }
- N--;
- L = L - minLength;
- if ((N>=0) && (L>=0)){
- printf("BOOK #:%d LENGTH:%f\n",minNumber+1,minLength);
- controlLength += minLength;
- controlNumber++;
- }
- } while((L >= 0) && (N>=0));
- printf("\nN=%d\nL=%f\n",controlNumber,controlLength);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement