En primer lugar, el 5 no se considera parte de la lista, es el recuento de la lista. Por lo tanto, no debería incluirse en los cálculos.
Dado que esto es tarea, aquí está el pseudo-código. Su trabajo es comprender primero el pseudo código (ejecútelo a través de su cabeza con entradas de muestra) y luego conviértalo en código C e intente que compile y se ejecute correctamente (con esas mismas entradas de muestra).
que sugeriría la entrada de la muestra de "2 7 3" (dos artículos, los que están siendo 7 y 3) como un buen punto de partida, ya que es pequeña y la suma será de 10, más pequeño 3.
Si Hemos intentado hacer eso por más de un día, luego publicamos su código en esta pregunta como una edición y veremos qué podemos hacer para ayudarlo.
get a number into quantity
set sum to zero
loop varying index from 1 to quantity
get a number into value
add value to sum
if index is 1
set smallest to value
else
if value is less than smallest
set smallest to value
endif
endif
endloop
output "The sum of the sequence of integers is: ", sum
output "The smallest of the integers entered is: ", smallest
desbordamiento de pila parece estar dividida en tres campos, los que sólo le dará el código, los que le dirá a empujar y hacer su propia tarea y los que, como yo, que más bien se podría ver educado: para cuando llegue a la fuerza laboral, espero que me retiren para no estar compitiendo con mí :-).
Y antes de que alguien haga huecos en mi algoritmo, esto es para educación. He dejado al menos una gotcha para ayudar a entrenar al tipo - puede haber otros y yo afirmo que los puse allí intencionalmente para ponerlo a prueba :-).
Actualización:
Robert, después de su (muy bien) intento que ya he comentado, esto es cómo me modificar el código para hacer la tarea (el suyo mano en la de Por supuesto, no mío). Se espera que puedan ver cómo mis comentarios modificar el código para llegar a esta solución:
#include <stdio.h>
int main (int argCount, char *argVal[]) {
int i; // General purpose counter.
int smallNum; // Holds the smallest number.
int numSum; // Holds the sum of all numbers.
int currentNum; // Holds the current number.
int numCount; // Holds the count of numbers.
// Get count of numbers and make sure it's in range 1 through 50.
printf ("How many numbers will be entered (max 50)? ");
scanf ("%d", &numCount);
if ((numCount < 1) || (numCount > 50)) {
printf ("Invalid count of %d.\n", numCount);
return 1;
}
printf("\nEnter %d numbers then press enter after each entry:\n",
numCount);
// Set initial sum to zero, numbers will be added to this.
numSum = 0;
// Loop, getting and processing all numbers.
for (i = 0; i < numCount; i++) {
// Get the number.
printf("%2d> ", i+1);
scanf("%d", ¤tNum);
// Add the number to sum.
numSum += currentNum;
// First number entered is always lowest.
if (i == 0) {
smallNum = currentNum;
} else {
// Replace if current is smaller.
if (currentNum < smallNum) {
smallNum = currentNum;
}
}
}
// Output results.
printf ("The sum of the numbers is: %d\n", numSum);
printf ("The smallest number is: %d\n", smallNum);
return 0;
}
Y aquí es la salida de los datos de la muestra:
pax> ./qq
How many numbers will be entered (max 50)? 5
Enter 5 numbers then press enter after each entry:
1> 100
2> 350
3> 400
4> 550
5> 678
The sum of the numbers is: 2078
The smallest number is: 100
pax> ./qq
How many numbers will be entered (max 50)? 5
Enter 5 numbers then press enter after each entry:
1> 40
2> 67
3> 9
4> 13
5> 98
The sum of the numbers is: 227
The smallest number is: 9
pax> ./qq
How many numbers will be entered (max 50)? 0
Invalid count of 0.
[fury]$ ./qq
How many numbers will be entered (max 50)? 51
Invalid count of 51.
Por cierto, asegúrese de que siempre añadir comentarios a tu codigo. A los educadores les encantan ese tipo de cosas. También lo hacen los desarrolladores que deben intentar comprender su código dentro de 10 años.
¿Es este el lenguaje de programación C? –
La pregunta dice 'leer con scanf'. Es seguro suponer que es C. – Abbas
No creo que esta pregunta deba ser downvoted ... no nos está pidiendo que la escribamos para él, simplemente está teniendo problemas para entender el problema. –