Ввести размерность массива и проконтролировать её и данные на корректность - C (СИ)
Формулировка задачи:
Нужно ввести размерность массива и проконтролировать её и данные на корректность...
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <math.h>
void main(void)
{
float mas[50] = {0};
float summ = 0;
printf("Vvedite chislo:\n");
for( int i = 0; i < 50; i++ )
{
scanf("%f",&mas[i])
}
printf("=============================\n");
for( int i = 0; i < 50; i++ )
{
int integerValue = (int)mas[i];
float drobValue = mas[i] - integerValue;
float drobAbs = fabsf( drobValue );
if( drobValue == 0 )
{
printf( "Integer element: %f\n", mas[i] );
}
summ+ = drobAbs;
}
printf("=============================\n");
printf( "Drob summ = %f", summ );
getch();
}
Поправлю вопрос: мне нужно реализовать возможность выбора размерности массива с клавиатуры. Например, у меня линейный массив на 50 элементов, а мне нужно из этих 50 выбрать всего, ну например, 5 элементов
Решение задачи: «Ввести размерность массива и проконтролировать её и данные на корректность»
textual
Листинг программы
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <math.h>
void main(void)
{
int n;
scanf("%d",&n);
if (n<50) {
float mas[[B]50[/B]] = {0},summ = 0;
printf("Vvedite chislo:\n");
for( int i = 0; i < n; i++ )
{
scanf("%f",&mas[i])
}
printf("=============================\n");
for( int i = 0; i < n; i++ )
{
int integerValue = (int)mas[i];
float drobValue = mas[i] - integerValue;
float drobAbs = fabsf( drobValue );
if( drobValue == 0 )
{
printf( "Integer element: %f\n", mas[i] );
}
summ+ = drobAbs;
}
printf("=============================\n");
printf( "Drob summ = %f", summ );
getch();
}
}
Объяснение кода листинга программы
Вывод:
- Ввод размера массива
nс помощьюscanf(%d,&n); - Проверка корректности ввода размера массива. Если
nменьше 50, то программа переходит к следующему шагу, иначе выводит сообщение об ошибке. - Создание одномерного массива
masс помощью оператора[]и заполнение его нулями. Размер массива не указан, он определяется переменнойn. - Ввод элементов массива с помощью цикла
forи функцииscanf(%f,&mas[i]). - Вывод всех элементов массива с помощью цикла
forи функцииprintf(Integer element: %f\n, mas[i]). - Вычисление абсолютного значения каждого нецелого элемента массива с помощью функции
fabsf( drobValue ). - Суммирование абсолютных значений нецелых элементов массива с помощью переменной
summ. - Вывод суммы нецелых элементов массива с помощью функции
printf(Drob summ = %f, summ). - Получение ввода с помощью
getch().