Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - bobitttyy

#1
tenemos la cadena siguiente:
char cad[19]="esto es un mensaje";
y quiero llevaro a otro arreglo pero sus elementos son sus palabras, es decir:
char copia[4][20]={"esto","es","un","mensaje"};
#include <iostream>
#include <string.h>
using namespace std;
void main(){
char cad[80]="esto es un mensaje";
        char copia[80][20];//con[80] es longitud de cada palabra
int con[80], num_p=1,k=0;//num_p es el numero de palabras
for (int i = 0; i < strlen(cad); i++){
if (cad[i] == ' ')num_p++;
}
for (int i = 0; i < num_p; i++){
con[i] = 0;
}
num_p = 1; k = 0;
for (int i = 0; cad[i] != '\0';i++){
if (cad[i] == ' '){
num_p++; k = 0;
}
else{
cad[num_p - 1]++;
copia[num_p - 1][k++] = cad[i];
}
}
for (int i = 0; i < num_p; i++){
cout << copia[i] << "\n";
}
system("PAUSE");
}

se que hay un metodo de los tokens, pero yo quiero sin eso....consejos por favor
#2
Programación C/C++ / arreglo con varias modas
15 Abril 2015, 01:15 AM
quiero saber cual es el elemento que se repite en mayor cantidad.....pongo el cuerpo del código:

int a[9]={2,3,1,2,4,1,5,1,2};
int max=0,repite,masrep;
for(int i=0;i<9;i++){
repite=0;
for(int j=0;j<9;j++){
if(a[i]==a[j]){
repite++;
}
}
if(repite>max){
masrep=a[i];
max=repite;
}
}
cout<<"el elemnto que mas se repite es "<<masrep<<"\n";
cout<<"y se repite "<<max<<" veces";


el problema es que este arreglo tiene dos elementos que se repiten en mayor cantidad
y me bota asi:
EL ELEMENTO QUE MAS SE REPITE ES 2
pero yo quiero que me bote  no solo a uno sino también al otro
EL ELEMENTO QUE MAS SE REPITE ES 2
EL ELEMENTO QUE MAS SE REPITE ES 1
sugerencias.....
#3
si tengo la siguiente oración:
*esto es un mensaje
y quiero cambiarlo a :
*Esto Es Un Mensaje

#include <stdio.h>
int main (void) {
int n;
char cad[80],c;
cout<<"ingresa frase:\n";
gets(cad);
n=strlen(cad);
cad[0]=cad[0]-32;
for(int i=0;i<n-2;i++){
if (cad[i]== ' ' || cad[i]== '.' || cad[i]== ','){
cad[i+1] =cad[i+1]-32;
}
}
for(int i=0;i<n;i++){
cout<<cad[i];
}
cad[n]= '\0';
return 0;
}


pero esto solo me funciona solo para un espacio en blanco entre palabra y palabra. Yo quiero un metodo mas general.....con mas espacios en blanco, por ejemplo:

esto___es__un____mensaje
Esto___Es__Un____Mensaje
#4
sea un arreglo entero
int A[8] ={2,4,7,2,3,4,7,7}

pongo solo el cuerpo del codigo
Código (cpp) [Seleccionar]
#include <stdio.h>

int main (void) {
 int a[8],i,j,cont=0;
a[8] ={2,4,7,2,3,4,7,7}
cout<<"\n";
for(i=0;i<N;i++){
for(j=0;j<N;j++){
if(a[i]==a[j])
cont++;
}
cout<<"el elemento "<<a[i]<<" se repite "<<cont<<" veces\n";
cont=0;
}    
return 0;
}


el problema es que me vota asi
Código (cpp) [Seleccionar]
[code=cpp][/code]por ejemplo A[8] ={2,4,7,2,3,4,7,7}
2 se repite 2 veces
4 se repite 2 veces
7 se repite 3 veces
2 se repite 2 veces
3 se repite 1 veces
4 se repite 2 veces
7 se repite 3 veces
7 se repite 3 veces
pero yo quiero que me vote simplemente asi
2 se repite 2 veces
4 se repite 2 veces
7 se repite 3 veces
3 se repite 1 veces

necesito consejos ...

Mod: tema modificado, los códigos deben ir en etiquetas GeSHi