Реализовать в программах проверку на корректный ввод - C (СИ)
Формулировка задачи:
Помогите пожалуйста реализовать в программах проверку на корректный ввод! То есть нужно, что бы в первой программе: 1) при вводе n - отрицательного числа или буквы, 2) элемента массива - буквы, прога не зависала и вылетала, а выдавала ошибку в виде сообщения "неверное значение параметра". И такую же проверку во второй задаче в случае ввода отрицательного числа или буквы. Заранее спасибо!
1.
2.
#include "stdafx.h" #include <stdio.h> #include <conio.h> int _tmain(int argc, _TCHAR* argv[]) { return 0; } int func(int[], int); int n; int main() { int a[1000], i; printf("vvedite kol-vo el-ov: "); scanf_s("%d", &n); if (n < 0) {// Проверка правильности ввода данных printf ("error\n"); return 0;} else for (i=0; i<n; i++) { printf("vvedite %d element massiva: ",i+1); scanf_s("%d",&a[i]); } if (a[i] < 0) { // Проверка правильности ввода данных printf ("error\n"); return 0;} func(a,n); getch(); return 0; } int func(int b[], int l) { int j, k; printf("\n massiv: \n"); for (j=0; j<l; j++) { printf("%d ", b[j]); } printf("\n\n\n massiv v kvadrate: \n"); for (j=0; j<l; j++) { printf("%d ", b[j]*b[j]); } return n; }
#include "stdafx.h" #include <stdio.h> #include <math.h> #include <conio.h> inline float shar (float x=0) { float V=pow(x,3)*3.14*4/3; return V; } int main() { float V=0,R,r; printf("Vvedite vneshnii i vnutrennii radius pologo shara"); scanf_s("%f", &R); scanf_s("%f", &r); V=shar(R) - shar(r); printf("V pologo shara = %f", V); getch(); return 0; }
Решение задачи: «Реализовать в программах проверку на корректный ввод»
textual
Листинг программы
#include "stdafx.h" #include <stdio.h> #include <conio.h> int _tmain(int argc, _TCHAR* argv[]) { return 0; } int func(int[], int); int n; int main() { int a[1000], i; printf("vvedite kol-vo el-ov: "); scanf_s("%d", &n); if (n < 0) {// Проверка правильности ввода данных printf ("error\n"); return 0;} else for (i=0; i<n; i++) { printf("vvedite %d element massiva: ",i+1); scanf_s("%d",&a[i]); } if (a[i] < 0) { // Проверка правильности ввода данных printf ("error\n"); return 0;} func(a,n); getch(); return 0; } int func(int b[], int l) { int j, k; printf("\n massiv: \n"); for (j=0; j<l; j++) { printf("%d ", b[j]); } printf("\n\n\n massiv v kvadrate: \n"); for (j=0; j<l; j++) { printf("%d ", b[j]*b[j]); } return n; }
Объяснение кода листинга программы
- Включаемые заголовочные файлы:
stdafx.h
,, - Описание функции: func(int[], int)
- Переменные: n, a, i, j, k;
- Цель программы: Проверка корректности ввода данных при заполнении массива
- Основные шаги программы:
- Ввод количества элементов массива с помощью функции scanf_s
- Проверка корректности ввода количества элементов (больше 0)
- Ввод элементов массива с помощью функции scanf_s
- Проверка корректности ввода каждого элемента (больше 0)
- Вызов функции func для вычисления квадратов элементов массива
- Вывод результатов на экран с помощью функции printf
- Ключевые слова и операторы:
- scanf_s - для безопасного ввода данных
- if - для проверки корректности ввода
- printf - для вывода данных на экран
- return - для завершения функции
- Особенности реализации:
- Использование функции scanf_s для безопасного ввода данных
- Проверка корректности ввода на этапе заполнения массива
- Вывод на экран исходного массива и его квадратов
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д