Выводятся ненужные нули - C (СИ)
Формулировка задачи:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
void InputArray(double a[], unsigned n);
void PrintArray(double a[], unsigned n );
double Decreasing(double a[], unsigned n);
int main (void)
{
double a [20];
int n;
while( n < 3 || n > 20 )
{
printf("Input size of Array : ");
scanf("%d",&n);
}
InputArray( a, n);
PrintArray( a, n);
printf("\n\t Press any key to continue...");
getch ();
Decreasing( a, n);
printf("\n\t Press any key to exit");
fflush (stdin);
getchar ();
return 0;
}
void InputArray(double a[], unsigned n)
{
int i;
srand(5);
printf("\n Array:\n ");
for(i=0;i<n;i++)
{
a[i]=rand()%100;
printf("%lf\n ", a[i]);
}
}
void PrintArray (double a[],unsigned n)
{
for (int i=0; i<n; i++)
{
printf("%d ", a[i]);
}
}
double Decreasing(double a [], unsigned n)
{
double current=a[0];
for (int j=0; j<n;j++)
{
if(current <=a[j]) current=a[j];
else
{
printf("\n\t !!!The Array isn't decreasing!!!");
return 0;
}
}
printf("\n\t !!!The Array is decreasing!!!");
}Решение задачи: «Выводятся ненужные нули»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
void InputArray(double *a, unsigned n);
void PrintArray(double *a, unsigned n);
bool Decreasing(double *a, unsigned n);
int main (void)
{
double a[20];int n;
while( n < 3 || n > 20 )
{
printf("Input size of Array : ");
scanf("%d",&n);
}
InputArray( a, n);
PrintArray( a, n);
system("pause");//ÆäГ*ГІГј Г*Г*Г¦Г*ГІГЁГї ГЄГ«Г*ГўГЁГёГЁ
if(!Decreasing( a, n))
printf("The Array is not decreasing\n");
else
printf("The Array is decreasing\n");
system("pause");//ÆäГ*ГІГј Г*Г*Г¦Г*ГІГЁГї ГЄГ«Г*ГўГЁГёГЁ
return 0;
}
void InputArray(double a[], unsigned n)
{
srand(5);
printf("\n Array:\n ");
for(unsigned i = 0; i < n; i++)
{
a[i]=rand()%100;
//Г‡Г*Г·ГҐГ¬ ГЇГҐГ·Г*ГІГ*ГІГј âåëè÷èГ*Г» Гў ГґГіГ*ГЄГ¶ГЁГЁ ââîäГ*?
//Г‡Г*Г·ГҐГ¬ òîãäГ* PrintArray( a, n);???!!!
//printf("%lf\n ", a[i]);
}
}
void PrintArray (double a[],unsigned n)
{
for(unsigned i = 0; i < n; i++)
printf("a[%02d] = %lf\n",i + 1, a[i]);
}
bool Decreasing(double a [], unsigned n)
{
bool bDecr = true;//ÔëГ*ГЈ ãîâîðÿùèé Г·ГІГ® Г¬Г*Г±Г±ГЁГў óáûâГ*ГѕГ№ГЁГ©
double current = a[0];
for(unsigned j = 1; j < n && bDecr;j++)
{
if(current <= a[j])
current = a[j];
else
bDecr = false;
}
return bDecr;
}
Объяснение кода листинга программы
- Ввод размера массива с помощью функции scanf.
- Использование цикла while для контроля ввода корректного размера массива.
- Вызов функции InputArray для заполнения массива случайными числами.
- Вызов функции PrintArray для вывода массива на экран.
- Проверка свойства убывания массива с помощью функции Decreasing.
- Вывод сообщения в зависимости от результата проверки.
- Ввод размера массива с помощью функции scanf.
- Возвращение в основную программу.
- Вывод массива на экран с помощью цикла for и функции printf.
- Инициализация переменной bDecr в функции Decreasing.
- Инициализация переменной current значением первого элемента массива.
- Использование цикла for для проверки всех элементов массива, начиная со второго.
- Сравнение текущего элемента с предыдущим.
- Обновление значения current при необходимости.
- Обновление значения bDecr в зависимости от результата сравнения.
- Возвращение значения bDecr в функцию main.
- Завершение работы программы с помощью функции system.
- Вывод сообщения в зависимости от результата проверки свойства убывания массива.
- Завершение работы программы с помощью функции system.
- Возвращение значения 0 в функцию main, что означает успешное завершение работы программы.