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;
}
Servidor de Backup com Ubuntu Server 24.04 LTS, RAID e Duplicati (Dell PowerEdge T420)
Visualizar câmeras IP ONVIF no Linux sem necessidade de instalar aplicativos
Atualizar Debian Online de uma Versão para outra
Redimensionando, espelhando, convertendo e rotacionando imagens com script
Debian 13 Trixie para Iniciantes
Convertendo pacotes DEB que usam ZSTD (Padrão Novo) para XZ (Padrão Antigo)
O que você está ouvindo agora? [2] (212)
Debian 13 "trixie&... lançado! (43)
baschrc customizado pegeui vários. (1)
eu tive uma idéia, mas mais privada sobre o assunto de mu online e ser... (7)