Estoy tratando de comparar una cadena (t_borrar) la cual representa el nombre de una tarea que debe borrarse dentro de una partición fija, y quiero que en el momento de que se capture la cadena, la tarea elegida para borrar (t1, t2, t3, t4, t5) sea borrada.
Pero no me ha salido:
esto es lo que tengo de momento:
Código:
#include <iostream>
#include <stdio.h>
using namespace std;
int main(){
int opcion;
void partFija();
void partDinamica();
//MENU DE BIENVENIDA
printf("\t\t BIENVENIDO: ");
printf("OPCIONES \n\n");
printf("\t 1. PARTICION FIJA \n");
printf("\t 2. PARTICION DINAMICA \n");
printf("\t 3. SALIDA \n\n");
printf("digite una de las opciones: ");
scanf( "%i", &opcion);
switch (opcion){
case 1:
printf("PARTICION FIJA \n\n");
printf("NO HAY RELOCALIZACION \n\n");
partFija();
break;
case 2:
printf("PARTICION DINAMICA \n\n");
partDinamica();
break;
case 3:
break;
}
getchar();
return EXIT_SUCCESS;
}
void partFija(){
int t[5];
int p[5]={20,15,20,10,30};
printf("HOLA!!\n\n");
//IMAGEN DE PARTICIONES
printf("\n\n");
printf("PARTICION FIJA\n");
printf("------------------- 0\n");
printf("| SO | \n");
printf("------------------- 30\n");
for(int i=0; i<5; i++){
printf("| p%i | \n", i+1);
printf("------------------- %i\n", p[i]);
}
//INGRESO DE TAREAS
printf("5 TAREAS MAXIMO \n\n");
for(int i=0; i<5; i++){
printf("TAREA %i: ", i+1); scanf( "%i", &t[i]);
}
//INGRESO DE TAREAS EN PARTICIONES
printf("\n\n");
printf("PARTICION FIJA\n");
printf("------------------- 0\n");
printf("| SO | \n");
printf("------------------- 30\n");
for(int i=0; i<5; i++){
if(t[i]==0){
printf("| p%i | \n", i+1);
printf("| *********** | \n");
printf("| LIBRE: %i | \n", p[i]);
printf("------------------- %i\n", p[i]);
}
else{
printf("| p%i | \n", i+1);
printf("| *********** | \n");
printf("| Frag: %i | \n", p[i]-t[i]);
printf("------------------- %i\n", p[i]);
}
}
do{
********************************************PROBLEMA!!!!**************
printf("\n\nQUE TAREA DESEA ELIMINAR?? ");
char t_borrar[2]; scanf( "%s", t_borrar);
printf("------------------- 0\n");
printf("| SO | \n");
printf("------------------- 30\n");
for(int i=0; i<5; i++){
if(t[i]==atoi(t_borrar)){
t[i]=0;
}
//IMAGEN DE PARTICIONES FIJAS CON TAREA RETIRADA
if(t[i]==0){
printf("| p%i | \n", i+1);
printf("| *********** | \n");
printf("| LIBRE: %i | \n", p[i]);
printf("------------------- %i\n", p[i]);
}
else{
printf("| p%i | \n", i+1);
printf("| *********** | \n");
printf("| Frag: %i | \n", p[i]-t[i]);
printf("------------------- %i\n", p[i]);
}
}
*****************************HASTA AQUI COMO LE HAGO???*******************
//El programa pregunta si quiere continuar
char opc;
fflush(stdin);
printf("\n\n\nDESEA RETIRAR OTRA TAREA?? (S/N) ");
scanf("%c", &opc);
if(opc=='n' or opc=='N')
break;
printf("\n\n");
}while(true);
getchar();
}
void partDinamica(){
printf("HOLA!! particion dinamica\n\n");
getchar();
}
#include <stdio.h>
using namespace std;
int main(){
int opcion;
void partFija();
void partDinamica();
//MENU DE BIENVENIDA
printf("\t\t BIENVENIDO: ");
printf("OPCIONES \n\n");
printf("\t 1. PARTICION FIJA \n");
printf("\t 2. PARTICION DINAMICA \n");
printf("\t 3. SALIDA \n\n");
printf("digite una de las opciones: ");
scanf( "%i", &opcion);
switch (opcion){
case 1:
printf("PARTICION FIJA \n\n");
printf("NO HAY RELOCALIZACION \n\n");
partFija();
break;
case 2:
printf("PARTICION DINAMICA \n\n");
partDinamica();
break;
case 3:
break;
}
getchar();
return EXIT_SUCCESS;
}
void partFija(){
int t[5];
int p[5]={20,15,20,10,30};
printf("HOLA!!\n\n");
//IMAGEN DE PARTICIONES
printf("\n\n");
printf("PARTICION FIJA\n");
printf("------------------- 0\n");
printf("| SO | \n");
printf("------------------- 30\n");
for(int i=0; i<5; i++){
printf("| p%i | \n", i+1);
printf("------------------- %i\n", p[i]);
}
//INGRESO DE TAREAS
printf("5 TAREAS MAXIMO \n\n");
for(int i=0; i<5; i++){
printf("TAREA %i: ", i+1); scanf( "%i", &t[i]);
}
//INGRESO DE TAREAS EN PARTICIONES
printf("\n\n");
printf("PARTICION FIJA\n");
printf("------------------- 0\n");
printf("| SO | \n");
printf("------------------- 30\n");
for(int i=0; i<5; i++){
if(t[i]==0){
printf("| p%i | \n", i+1);
printf("| *********** | \n");
printf("| LIBRE: %i | \n", p[i]);
printf("------------------- %i\n", p[i]);
}
else{
printf("| p%i | \n", i+1);
printf("| *********** | \n");
printf("| Frag: %i | \n", p[i]-t[i]);
printf("------------------- %i\n", p[i]);
}
}
do{
********************************************PROBLEMA!!!!**************
printf("\n\nQUE TAREA DESEA ELIMINAR?? ");
char t_borrar[2]; scanf( "%s", t_borrar);
printf("------------------- 0\n");
printf("| SO | \n");
printf("------------------- 30\n");
for(int i=0; i<5; i++){
if(t[i]==atoi(t_borrar)){
t[i]=0;
}
//IMAGEN DE PARTICIONES FIJAS CON TAREA RETIRADA
if(t[i]==0){
printf("| p%i | \n", i+1);
printf("| *********** | \n");
printf("| LIBRE: %i | \n", p[i]);
printf("------------------- %i\n", p[i]);
}
else{
printf("| p%i | \n", i+1);
printf("| *********** | \n");
printf("| Frag: %i | \n", p[i]-t[i]);
printf("------------------- %i\n", p[i]);
}
}
*****************************HASTA AQUI COMO LE HAGO???*******************
//El programa pregunta si quiere continuar
char opc;
fflush(stdin);
printf("\n\n\nDESEA RETIRAR OTRA TAREA?? (S/N) ");
scanf("%c", &opc);
if(opc=='n' or opc=='N')
break;
printf("\n\n");
}while(true);
getchar();
}
void partDinamica(){
printf("HOLA!! particion dinamica\n\n");
getchar();
}
gracias por cualquier ayuda, realmente necesito cualquier ayuda posible, ya me queme las pestañas, pero con el atoi se borran todas las tareas!!!!