for y repetición de numeros en c

Iniciado por diegoecw, 29 Marzo 2017, 01:56 AM

0 Miembros y 1 Visitante están viendo este tema.

diegoecw

Buenas Tardes compañeros Programadores

La situacion es la siguiente tengo de tarea el siguiente ejercicio, se como calcular los resultados pero no se como imprimir la cadena:5+5+5+5+5=25, 5*5*5*5*5=3125

La sucesion se repite hasta el numero escaneado.

41. Codifique un programa que solicite un valor entero positivo k y en base a ese valor realice lo
siguiente: escriba los números desde 1 hasta el valor k, cada uno tantas veces como indique
su propio valor; y calcule la suma y la multiplicación de ellos. Por ejemplo, si k = 4, debe
obtenerse la salida:
1 = 1, 1 = 1
2 + 2 = 4, 2 x 2 = 4
3 + 3 + 3 = 9, 3 x 3 x 3 = 27
4 + 4 + 4 + 4 = 16, 4 x 4 x 4 x 4 = 256


Lo que llevo de codigo es esto:

#include <stdio.h>
#include <conio.h>
#include<math.h>
#include <stdlib.h>
//Limpiar Pantalla
#ifdef _WIN32
#define CLEAR "cls"
#elif defined(unix)||defined(__unix__)||defined(__unix)||defined(__APPLE__)||defined(__MACH__)
#define CLEAR "clear"
#else
#error "SO no soportado para limpiar pantalla"
#endif
int main()
{
//Variables
   int i,k,suma,multiplicacion,eleccion,salir=2;
//Inserción
   do
   {
//Obteniendo valor k
       printf("Ingrese un n\243mero entero: ");
       scanf("%d",&k);
       system(CLEAR);
       if(k<1)
       {
           printf("Debe Ingresar un n\243mero mayor a 0...");
           printf("\n\nIngrese un n\243mero entero: ");
           scanf("%d",&k);
           system(CLEAR);
       }
       eleccion=0;
       suma=1;
       multiplicacion=1;
//Bucles
       for(i=1; i<=k; i++)
       {
           suma=i*i;
           multiplicacion=pow(i,i);
           printf("%d = %d, %d = %d\n",i,suma,i,multiplicacion);
       }
//Reinicio del programa
       printf("\n\nDesea realizar otra operaci\242n?");
       printf("\n\n1. SI");
       printf("\n2. NO");
       printf("\n\nIngrese aqu\241 su elecci\242n: ");
       scanf("%d",&eleccion);
       system(CLEAR);

   }

   while(!(eleccion==salir));
//Fin del Programa
   return 0;
}



Espero que me puedan ayudar muchas gracias por leer :)


· Los códigos deben ir en etiquetas GeSHi
· Los títulos deben ser descriptivos
>aquí las reglas del foro
-Engel Lex

engel lex

en la linea 24 te recomiendo cambiar el if por un while, ya que en tu codigo si meten 2 veces un numero no valido, la segunda pasará

printf("%d = %d, %d = %d\n",i,suma,i,multiplicacion);

eso no imprimirá más que eso, espero que ver este codigo te sirva a entender lo que necesitas hacer


        printf("Ingrese un número entero: ");
        scanf("%d",&k);
        printf("Contando: ");
        for(i=0;i<k;i++){
                if(i>0){
                        printf(", ");
                }
                printf("%d", i+1);
        }
        printf("\n");
        printf("adios \n");

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

diegoecw

Cita de: engel lex en 29 Marzo 2017, 02:06 AM
en la linea 24 te recomiendo cambiar el if por un while, ya que en tu codigo si meten 2 veces un numero no valido, la segunda pasará

printf("%d = %d, %d = %d\n",i,suma,i,multiplicacion);

eso no imprimirá más que eso, espero que ver este codigo te sirva a entender lo que necesitas hacer


        printf("Ingrese un número entero: ");
        scanf("%d",&k);
        printf("Contando: ");
        for(i=0;i<k;i++){
                if(i>0){
                        printf(", ");
                }
                printf("%d", i+1);
        }
        printf("\n");
        printf("adios \n");





Muchas gracias Engel buena observacion la de cambiar el if por while ya lo implemente, y de la forma de hacer la cadena pues estoy tratando de utilizar lo que hiciste obviamente adaptandolo con lo que ocupo ando batallando pero no me rendire muchas Gracias