Во-первых, 5 не считается частью списка, это количество для списка. Следовательно, это не должно быть включено в расчеты.
Так как это домашняя работа, вот псевдокод. Ваша задача - сначала понять псевдокод (пропустить его через голову с примерами ввода), затем превратить его в код C и попытаться заставить его скомпилироваться и успешно работать (с теми же примерами ввода).
Я бы предложил пример ввода «2 7 3» (два элемента, те, которые 7 и 3) в качестве хорошей начальной точки, так как он маленький, и сумма будет 10, наименьший 3.
Если вы пытались делать это более одного дня, опубликуйте свой код в этом вопросе в качестве редактирования, и мы посмотрим, что мы можем сделать, чтобы помочь вам.
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
Переполнение стека, по-видимому, разделено на три лагеря: те, которые просто дадут вам код, те, которые скажут вам оттолкнуться и делать свою домашнюю работу, и те, как я, которые предпочли бы, чтобы вы получили образование - Я надеюсь, что когда ты найдешь рабочую силу, я уйду на пенсию, и ты не будешь конкурировать с me : -).
И прежде чем кто-нибудь обнаружит дыры в моем алгоритме, это для образования . Я оставил в нем хотя бы одну гочу, чтобы помочь обучить этого парня - могут быть и другие, и я буду утверждать, что я специально положил их туда, чтобы проверить его: -).
Обновление:
Роберт, после вашей (очень хорошей) попытки, которую я уже прокомментировал, именно так я бы изменил ваш код для выполнения задачи (передайте, конечно, ваш, а не мой). Вы можете надеяться увидеть, как мои комментарии изменяют код для достижения этого решения:
#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;
}
А вот вывод данных вашего образца:
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.
Кстати, всегда добавляйте комментарии к своему коду. Педагоги любят такие вещи. Так и разработчикам, которые должны постараться понять ваш код через 10 лет.