Мне нужна помощь с петлями..
Это фрагмент кода, в котором пользователь вводит массив чисел, затем выбирает его элементы и, наконец, среднее значение этих элементов.
Итак ... если пользователь набирает первый элемент и неправильно набирает второй, я хочу, чтобы моя программа напечатала то же самое, включая первый элемент с правильным значением, и начала с того момента, когда пользователь неправильно набрал второй элемент и так далее.
Это просто вопрос печати каждый раз, когда элементы были добавлены первыми со своими значениями и начинаются со следующего элемента до конца массива, где появляется меню, чтобы сделать среднее значение этих элементов.
. .. else if(options == 4) { int mark[100], j, n, sum = 0, average; int temp4, status4; printf("\n\n\t 4. Average of n numbers using arrays"); printf("\n\n\n\tInput number of elelments: "); status4 = scanf("%d", &n); while(status4 != 1) { while((temp4 = getchar()) != EOF && temp4 != '\n') { printf("\n\n Input only numbers..."); Sleep(1500); system("cls"); printf("\n\n\t 4. Average of n numbers using arrays"); printf("\n\n\n\tInput number of elelments: "); status4 = scanf("%d", &n); } } system("cls"); printf("\n\n\t 4. Average of n numbers using arrays"); printf("\n\n\n\t%d elements were entered\n", n); for(j = 0; j < n; ++j) { printf("\n\tElement %d = ", j + 1); status4 = scanf("%d", &mark[j]); while(status4 != 1) { while((temp4 = getchar()) != EOF && temp4 != '\n') { printf("\n\n Input only numbers..."); Sleep(1500); system("cls"); printf("\n\n\t 4. Average of n numbers using arrays"); printf("\n\n\n\t%d elements were entered\n", n); int k = j - 1; for(k = 1; k < n; ++k) { printf("\n\tElement %d = %d\n", k, ); } printf("\n\tElement %d = ", j + 1); status4 = scanf("%d", &mark[j]); } } sum += mark[j]; } int options4; printf("\n 1. Average of the entered numbers" "\n 2. Back to main menu" "\n\n Select: "); status4 = scanf("%d", &options4); while(status4 != 1) { while((temp4 = getchar()) != EOF && temp4 != '\n') { printf("\n\n Invalid option.."); Sleep(1500); printf("\n\n Choose 1 or 2\n"); Sleep(1500); system("cls"); printf("\n\n\t 4. Average of n numbers using arrays"); printf("\n\n\n\t%d elements were entered\n", n); int k = j - 1; for(k = 1; k <= n; ++k) { printf("\n\tElement %d = %d\n", k, ); } printf("\n 1. Average of the entered numbers" "\n 2. Back to main menu" "\n\n Select: "); status4 = scanf("%d", &options4); } } int i; for(i = 0; i < options4;) { if(options4 == 1) { average = sum / n; printf("\n Average of the entered numbers is %d\n", average); Sleep(2500); break; } else if(options4 == 2) { printf("\n\n Back to main menu"); Sleep(2000); system("cls"); menu(); } else { printf("\n\n Invalid option.."); Sleep(1500); printf("\n\n Choose 1 or 2\n"); Sleep(1500); system("cls"); } } } .. .
Что я уже пробовал:
Строки 41 и 68 не являются полными, пропуская 3-й аргумент, поскольку я оставил его специально.. Вот тут-то мне и нужна помощь.. Спасибо.
строки 41 и 68 одинаковы
printf("\n\tElement %d = %d\n", k, );
Gerry Schmitz
Поскольку мы не можем сказать, что такое "строка 41 или 68", вы должны добавить комментарий к коду, указывающий "где". Время-это деньги.
M@gelearn
printf("\n\tElement %d = %d\n", k, ); это строка 41 и то же самое для 68
Gerry Schmitz
А теперь вы хотите, чтобы мы посмотрели контекст?
jeron1
Можно ли сконцентрироваться на одном цикле и попытаться точно описать, что вы пытаетесь сделать?
Rick York
Часть проблемы заключается в том, что это, по-видимому, один монолитный кусок кода, и это никогда не бывает хорошей идеей, если этот монолит не состоит из дюжины строк. Разбейте вещи на функции, чтобы они были модульными, имея в виду, что, как правило, функции не должны делать очень много. В том, что я вижу в вашем коде, у вас есть несколько повторяющихся разделов кода, и они являются идеальными кандидатами для функций.
Кроме того - подумайте о принятии ваших входных данных из файлов. Я думаю, что это делает вещи намного быстрее и проще в отладке. Если вы сделаете это правильно, вы можете вызвать функцию для ввода, которая принимает указатель файла, который может быть stdin для пользовательского ввода или открытый файл, из которого вы можете читать.