Enviado em 24/04/2019 - 16:46h
Boa tarde, estou criando um Programar em C para Algoritmo de alocação best fit, e me parece que não está percorrendo corretamente o array, se puderem dar uma olhada, obrigado desde já.#include <stdio.h>
#include <windows.h>
#include <stdbool.h>
int main(){
int p,m;
printf("Entre o numero de processos:");
scanf("%d",&p);
printf("Entre o numero de blocos de memoria:");
scanf("%d",&m);
int parr[p];
struct memoria{
int id; // identificador
int tamanho;
}marr[m];
int i;
for(i=0;i<p;i++)
{
printf("Entre o tamanho do processo %d:",i+1);
scanf("%d",&parr[i]);
}
for(i=0;i<m;i++)
{
printf("Entre o tamanho do bloco de memoria %d:",i+1);
scanf("%d",&marr[i].tamanho);
marr[i].id=i+1;
}
int j;
int tamanho = 0;
for(i=1; tamanho <= marr[i].tamanho; i++ )
tamanho = marr[i].tamanho;
int tamanho_velho = tamanho ;
int im ;
bool marcador = false ;
for(i=0;i<p;i++){
for(j=0;j<m;j++){
if((marr[j].tamanho>=parr[i]) && (marr[j].tamanho < tamanho) ){
im = j;
tamanho = marr[j].tamanho;
marcador = true ;
}
}
if(marcador){
marcador = false ;
marr[im].tamanho-=parr[i];
tamanho = tamanho_velho ;
printf("\n\nAloca o processo %d no bloco memoria %d\n Tamanho restante apos alocar %d\n",i+1,marr[im].id,marr[im].tamanho);
}else {printf("Memoria insuficiente para o processo %d",i);break;}
}
system ("pause");
return 0;
}
Criar entrada (menuentry) ISO no Grub
Como gerar qualquer emoji ou símbolo unicode a partir do seu teclado
Instalar o VIM 9.1 no Debian 12
Como saber o range de um IP público?
Muitas dificuldades ao instalar distro Linux em Notebook Sony Vaio PCG-6131L (VPCEA24FM)
Slackpkg+ (Slackpkg Plus) está de volta!
Como dividir duas janelas igualmente e lado-a-lado na sua tela
Ocomon 6.0.1 - Problemas ao editar configurações estendidas (7)
instalar o Linux em computadores Acer novos (7)
Será possível instalar Linux Mint LMDE em Sony Vaio? (19)
O livro "Linux - Guia do Administrador do Sistema (Rubem E. Ferre... (1)