Реализовать в программах проверку на корректный ввод - 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 для безопасного ввода данных
- Проверка корректности ввода на этапе заполнения массива
- Вывод на экран исходного массива и его квадратов