Реализовать в программах проверку на корректный ввод - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Помогите пожалуйста реализовать в программах проверку на корректный ввод! То есть нужно, что бы в первой программе: 1) при вводе n - отрицательного числа или буквы, 2) элемента массива - буквы, прога не зависала и вылетала, а выдавала ошибку в виде сообщения "неверное значение параметра". И такую же проверку во второй задаче в случае ввода отрицательного числа или буквы. Заранее спасибо! 1.
#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;
}
2.
#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;
}

Объяснение кода листинга программы

  1. Включаемые заголовочные файлы: stdafx.h, ,
  2. Описание функции: func(int[], int)
  3. Переменные: n, a, i, j, k;
  4. Цель программы: Проверка корректности ввода данных при заполнении массива
  5. Основные шаги программы:
    • Ввод количества элементов массива с помощью функции scanf_s
    • Проверка корректности ввода количества элементов (больше 0)
    • Ввод элементов массива с помощью функции scanf_s
    • Проверка корректности ввода каждого элемента (больше 0)
    • Вызов функции func для вычисления квадратов элементов массива
    • Вывод результатов на экран с помощью функции printf
  6. Ключевые слова и операторы:
    • scanf_s - для безопасного ввода данных
    • if - для проверки корректности ввода
    • printf - для вывода данных на экран
    • return - для завершения функции
  7. Особенности реализации:
    • Использование функции scanf_s для безопасного ввода данных
    • Проверка корректности ввода на этапе заполнения массива
    • Вывод на экран исходного массива и его квадратов

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.455 из 5
Похожие ответы