Lo bueno que tiene el código de rir3760 es que no hace ningún cambio en la cadena. Es genial.
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útuket@debian:~$ ./a.out
hole
hol
lho
olh
k=strlen (cadena)-1;
for (i=k;i<strlen (cadena);i++)
.typedef struct {
char cidade[20];
double datos[365];
int n_datos;
}T_TEMP;
T_TEMP *espacio;
espacio=(T_TEMP*)malloc(n*sizeof(T_TEMP));
return(*espacio); //Que sepas que seguramente esto no es lo que realmente quieres hacer pero tampoco lo se si no veo el contexto
struct T_TEMP{
char cidade[20];
double datos[365];
int n_datos;
};
struct T_TEMP *espacio;
espacio=(struct T_TEMP*)malloc(n*sizeof(struct T_TEMP));
return(*espacio);
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
#include <dos.h>
#include "windows.h"
void jabon (int *a, float *total, int n, float (*tabla)[2], int *seleccion);
void afeitadora (int *a, float *total, int n, float (*tabla)[2], int *seleccion);
void shampoo (int *a, float *total, int n, float (*tabla)[2], int *seleccion);
void acondicionador(int *a, float *total, int n, float (*tabla)[2], int *seleccion);
void pasta (int *a, float *total, int n, float (*tabla)[2], int *seleccion);
int main (void){
float tabla [6][2] = {{1,5.00}, {2,3.50}, {3,7.45}, {4,8.32}, {5,4.50}, {6, 0}};
int a , n, seleccion;
float total;
do {
puts("\t\t\t*****Menu*****\n");
printf("1. Jabon..............(c/u) %.2f Pesos" ,tabla[0][1]);
printf("\n2. Afeitadora.........(c/u) %.2f Pesos", tabla[1][1]);
printf("\n3. Shampoo............(c/u) %.2f Pesos", tabla[2][1]);
printf("\n4. Acondicionador.....(c/u) %.2f Pesos", tabla[3][1]);
printf("\n5. Pasta Dental.......(c/u) %.2f Pesos", tabla[4][1]);
printf("\n6. Salir Del Sistema",tabla[5][1]);
printf("\n \n Ingrese el numero del producto que desea adquirir: ");
scanf("%d",&n);
switch(n)
{
case 1:
jabon(&a, &total, n, tabla, &seleccion);
break;
case 2:
afeitadora(&a, &total, n, tabla, &seleccion);
break;
case 3:
shampoo(&a, &total, n, tabla, &seleccion);
break;
case 4:
acondicionador(&a, &total, n, tabla, &seleccion);
break;
case 5:
pasta(&a, &total, n, tabla, &seleccion);
break;
case 6:
system("cls");
printf("\n***Gracias Por Usar Nuestros Servicios***\n");
Sleep(800);
break;
default:
if(n<1 || n>6)
{
system("cls");
puts("\n\n ***Opcion Invalida***\n\n");
Sleep(500);
}
break;
}
} while(seleccion!=2);
printf("\nTotal a pagar es: %.3f Pesos",total);
printf("\n\n\t");
system("pause");
}
void jabon (int *a, float *total, int n, float (*tabla)[2], int *seleccion){
printf("\n Cuantos Jabones desea adquirir? ");
scanf("%d",a);
*total= tabla[n - 1][1] * (*a) + (*total);
printf("\n Desea adquirir otro producto?");
printf("\n\n1.Si 2.No: ");
scanf("%d",seleccion);
}
void afeitadora (int *a, float *total, int n, float (*tabla)[2], int *seleccion){
printf("\n Cuantas Afeitadoras desea adquirir? ");
scanf("%d",a);
*total= tabla[n - 1][1] * (*a) + (*total);
printf("\n Desea adquirir otro producto?");
printf("\n\n 1.Si 2.No: ");
scanf("%d",seleccion);
}
void shampoo (int *a, float *total, int n, float (*tabla)[2], int *seleccion){
printf("\n Cuantos Shampoos desea adquirir? ");
scanf("%d",a);
*total= tabla[n - 1][1] * (*a) + (*total);
printf("\n Desea adquirir otro producto?");
printf("\n\n1.Si 2.No: ");
scanf("%d",seleccion);
}
void acondicionador (int *a, float *total, int n, float (*tabla)[2], int *seleccion){
printf("\n Cuantos Acondicionadores desea adquirir? ");
scanf("%d",a);
*total= tabla[n - 1][1] * (*a) + (*total);
printf("\n Desea adquirir otro producto?");
printf("\n\n1.Si 2.No: ");
scanf("%d",seleccion);
}
void pasta (int *a, float *total, int n, float (*tabla)[2], int *seleccion){
printf("\n Cuantas Pasta Dental desea aquirir? ");
scanf("%d",a);
*total= tabla[n - 1][1] * (*a) + (*total);
printf("\n Desea adquirir otro producto?");
printf("\n\n1.Si 2.No: ");
scanf("%d",seleccion);
}
#include <stdio.h>
int cnoc(char*);
void rotate(char*);
int main(){
char cad[256]={};
scanf("%s",cad);
printf("length=%20s\n", cad); //NOTA: cuidado con el buffer overflow(printf("length=%s\n", cad);)
int n=cnoc(cad);
int i;
for(i=0; i<n; i++){ //rotar n veces. Así conseguimos todas las combinaciones posibles
rotate(cad);
printf("%s\n", cad);
}
}
int cnoc(char cad[]){ // Devuelve el número de caracteres en una cadena
int i=0;
while(cad[i]) i++;
return i;
}
void rotate(char cad[]){ //rotar la cadena 1 posición
int n=cnoc(cad)-1; //n apunta a la untima posición
char last= cad[n--]; //guardamos el valor de la ultima posición en variable last
for(;n>=0;n--) cad[n+1]=cad[n]; //desplazamos todos los caracteres una posición hacia delante
cad[0]=last; //como el primer elemento no tiene precedente tenemos que==>
// ==>poner en él el que fue el el último
}