none
Problem _ Edit & Run [Warning] NULL used in arithmetic [-Wpointer-arith] RRS feed

  • Pregunta

  • #include<iostream>
    #include<fstream>
    #include <stdlib.h> //Atoi change string to int
    using namespace std;
    
    int main(){
    	int usuarios[1708]; //Arreglo de 1708 usuarios
    	int sesiones[1708];
    	for(int i=0;i<1709;i++){
    		usuarios[i]=0;
    		sesiones[i]=0;  //every user start with 0 minutes and 0 sign
    	}
    	ifstream fi("tiempoespacios.txt"); //read archive  tiempo.txt	
    	string aux; //temporaly save the line
    	string aux2="fffff"; //save temporaly the element of the actually line
    	int contador_auxiliar; //knew where end the element
    	int id_usuario;
    	int duracion_usuario;
    	string temporal;
    	while (!fi.eof() ){
    		getline(fi,aux);
    		aux2="ffffff";
    		for(int i=0;i<10;i++){
    			if(aux[i]!=' ' & aux[i]!='	') aux2[i]=aux[i];
    			else{
    				contador_auxiliar=i+1; //find where end the user
    				break;
    			}			
    		}
    		char tmp[contador_auxiliar];
    		for(int j=0;j<contador_auxiliar;j++){
    			tmp[j]=aux2[j];
    		}
    		id_usuario=atoi(tmp);
    		aux2="ffffff";
    		for(int k=0; k<10; k++){
    			aux2[k]=aux[contador_auxiliar+k];
    		}
    		for(int l=0; l<5; l++){
    			if(aux2[l]!='f') contador_auxiliar=l;
    		}
    		char tmp2[contador_auxiliar];
    		for(int m=0;m<contador_auxiliar+1;m++){
    			tmp2[m]=aux2[m];
    		}
    		duracion_usuario=atoi(tmp2);
    		
    		usuarios[id_usuario]=usuarios[id_usuario]+duracion_usuario;
    		sesiones[id_usuario]=sesiones[id_usuario]+1;
    		//cout<<"Usuario: "<<id_usuario<<" Sesion: "<<usuarios[id_usuario]<<endl;
    	}
    	
    	int user_sesiones=0;
    	int user_sesiones_i=0;
    	for(int i=0; i<1708; i++){
    		if(sesiones[i]>user_sesiones){
    			user_sesiones=sesiones[i];
    			user_sesiones_i=i;
    		}
    	}
    	cout<<"El usuario con mayor cantidad de sesiones es: "<<user_sesiones_i<<endl;
    	
    	
    	ofstream fo("resultados.txt");
     	for(int i=0; i<1709; i++){
     		if(usuarios[i]==NULL) continue;
     		fo<<"El usuario "<<i<<" tuvo "<<usuarios[i]<<" minutos de sesion."<<endl;
    	 }
    	 
    	int mayor_duracion=0;
    	int mayor_duracion_u=0;
    	for (int i=0; i<1709; i++){
    	 	if(usuarios[i]==NULL) continue;
    	 	if(usuarios[i]>mayor_duracion) {
    	 		mayor_duracion=usuarios[i];
    	 		mayor_duracion_u=i;
    	 	}
    	}
    	cout<<"El usuario con mayor duracion en sesiones es: "<<mayor_duracion_u<<endl;
    	fo.close();	
    	fi.close();
    	return 0;
    }

    domingo, 18 de junio de 2017 20:08