921. Отрицательные элементы
Задана
последовательность вещественных чисел длины n. Определить сумму и количество
отрицательных элементов в ней.
Вход. В первой строке задано количество элементов последовательности
n (n ≤ 100). В
следующей строке задано n вещественных чисел – элементы последовательности,
значения которых не превышают по модулю 100.
Выход. В одной строке
вывести количество отрицательных чисел и их сумму с двумя десятичными знаками.
Пример
входа |
Пример
выхода |
5 6 -7.5 2.1
-2.0 0 |
2 -9.50 |
циклы
При помощи
одного линейного цикла находим сумму и количество отрицательных элементов
массива.
Реализация алгоритма
Читаем длину массива n.
В переменной cnt подсчитываем количество отрицательных чисел массива,
в sum – их сумму. Инициализируем эти
переменные нулями.
scanf("%d",&n);
sum = 0;
cnt = 0;
Читаем n чисел. На
лету вычисляем сумму и количество отрицательных элементов.
for(i = 0; i < n; i++)
{
scanf("%lf",&val);
if (val <
0)
{
cnt++;
sum += val;
}
}
Выводим ответ.
printf("%d
%.2lf\n",cnt,sum);
Реализация – массив
#include <stdio.h>
int i, n, cnt;
double sum;
double m[100];
int main(void)
{
// read input array
scanf("%d",&n);
for(i = 0; i
< n; i++)
scanf("%lf",&m[i]);
// process array
sum = 0; cnt = 0;
for(i = 0; i
< n; i++)
if (m[i]
< 0)
{
cnt++;
sum += m[i];
}
// print the answer
printf("%d
%.2lf\n",cnt,sum);
return 0;
}
Java реализация
import java.util.*;
public class Main
{
public static void main(String[] args)
{
Scanner con = new Scanner(System.in);
int n = con.nextInt();
int cnt = 0;
double sum = 0;
for(int i = 0; i < n; i++)
{
double val = con.nextDouble();
if (val < 0.0)
{
cnt++;
sum += val;
}
}
System.out.printf("%d %.2f\n",cnt,sum);
con.close();
}
}
Java реализация - ArrayList
import java.util.*;
public class Main
{
public static void main(String[] args)
{
Scanner con = new Scanner(System.in);
con.useLocale(Locale.US);
int n = con.nextInt();
ArrayList<Double> m = new
ArrayList<Double>();
for(int i = 0; i < n; i++)
m.add(con.nextDouble());
int cnt = 0;
double sum = 0;
for(int i = 0; i < n; i++)
{
if (m.get(i) < 0.0)
{
cnt++;
sum += m.get(i);
}
}
System.out.printf(Locale.US,"%d %.2f\n",cnt,sum);
con.close();
}
}
Java реализация (FastScanner)
import java.util.*;
import java.io.*;
class FastScanner
{
private BufferedReader br;
private StringTokenizer st;
public FastScanner(InputStreamReader reader)
{
br = new BufferedReader(reader);
}
public String next()
{
while (st == null || !st.hasMoreTokens())
{
try
{
st = new StringTokenizer(br.readLine());
} catch (Exception e)
{
e.printStackTrace();
}
}
return st.nextToken();
}
public int nextInt()
{
return Integer.parseInt(next());
}
public double nextDouble()
{
return Double.parseDouble(next());
}
public void close() throws Exception
{
br.close();
}
}
public class Main
{
public static void main(String[] args)
{
FastScanner con =
new FastScanner(new
InputStreamReader(System.in));
int c, i, n = con.nextInt();
double s, a;
for(s = c = 0, i = 1; i <= n; i++)
{
a = con.nextDouble();
if (a < 0.0)
{
c++;
s += a;
}
}
System.out.printf(Locale.US,"%d %.2f\n",c,s);
}
}
Python реализация
n = int(input())
m = list(map(float,input().split()))
s = c = 0
for v in m:
if v < 0 :
c += 1
s += v
print (c,"%.2f"%s)