Запретить ввод отрицательного числа при вводе количества элементов массива - C (СИ)
Формулировка задачи:
как сделать так,что бы при вводе кол-ва эллементов массива нельзя было ввести отрицательное число
#include<stdio.h>
#include<windows.h>
#include<locale.h>
int main()
{
setlocale(LC_ALL,"Russian");
int *mas1, *mas2, n, i, sum, num, k;
puts("Введите размер массивов ");
scanf_s("%d", &n);
mas1 = (int*)malloc(n*sizeof(int));//выделяет память массиву,определяет размер в байтах
mas2 = (int*)malloc(n*sizeof(int));
sum = 0;
num = 0;
for (i = 0; i < n; i++)
{
fflush(stdin);
printf("\nВведите %d элемент массива 1 ",i+1);
if (!scanf_s("%d", &mas1[i]))
{
puts("Вы ввели неверное значение");
i--;
}
}
for (i = 0; i < n; i++)
{
fflush(stdin);
printf("\nВведите %d элемент массива 2 ", i + 1);
if (!scanf_s("%d", &mas2[i]))
{
puts("Вы ввели неверное значение");
i--;
}
}
puts("Вывод индексов массивов(Массив1 - массив 2): ");
for (i = 0; i < n; i++)
{
for (k = 0; k < n; k++)
{
if ((mas1[i] * mas2[k]) > 10)
{
printf(" %d - %d ; ", i, k);
num++;
sum += (mas1[i] * mas2[k]);
}
}
}
free(mas1);
free(mas2);
printf("\nКолличество пар - %d \nСумма пар - %d\n", num, sum);
system("pause");
return 0;
}Решение задачи: «Запретить ввод отрицательного числа при вводе количества элементов массива»
textual
Листинг программы
do
{
puts("Введите размер массивов ");
scanf("%d", &n);
} while (n <= 0);
Объяснение кода листинга программы
- Программа запрашивает у пользователя ввод размера массива с помощью функции scanf().
- Введенное значение сохраняется в переменной n типа int.
- С помощью оператора while программа проверяет, является ли значение переменной n меньше или равным нулю.
- Если это условие истинно, то программа повторно запрашивает ввод размера массива.
- Если это условие ложно, то программа продолжает работу с введенным значением размера массива.