Перевести из C++ в чисто Си - C (СИ)

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

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

Дано 7 чисел, считает количество отрицательных и сумму положительных. Тремя способами (for, while, do while). Но здесь я точнее не знаю как sizeof заменить на си.
#include "stdafx.h" 
#include "stdlib.h" 
#include <math.h>
#include <stdio.h>
#include <io.h>
#include <conio.h> 
#include <locale.h>
int array[7];
void main()
{
    int i, sum, count;
    setlocale(LC_ALL, "RUS");
    system("cls");
    printf(" Написать 7 чисел и программа тремя способами считает количество отрицательных и сумму положительных. \n \n Введите 7 чисел массива: ");
    for (i = 0; i < sizeof(array) / sizeof(int); i++)
        scanf("%d", &array[i]);
    printf("\n Вывод массива:");
    for (i = 0; i < sizeof(array) / sizeof(int); i++)
        printf("%5d", array[i]);
    sum = 0; count = 0;
    for (i = 0; i < sizeof(array) / sizeof(int); i++)
    {
        if (array[i] > 0) sum += array[i];
        else count++;
    }
    printf("\n\n Цикл For \n");
    printf(" Сумма положительных: %d \n", sum);
    printf(" Число отрицательных: %d \n", count);
    i = 0; sum = 0; count = 0;
    while (i < sizeof(array) / sizeof(int))
    {
        if (array[i] > 0) sum += array[i];
        else count++;
        i++;
    }
    printf("\n Цикл While \n");
    printf(" Сумма положительных: %d \n", sum);
    printf(" Число отрицательных: %d \n", count);
    i = 0; sum = 0; count = 0;
    do
    {
        if (array[i] > 0) sum += array[i];
        else count++;
        i++;
    } while (i < sizeof(array) / sizeof(int));
    printf("\n Цикл Do While \n");
    printf(" Сумма положительных: %d \n", sum);
    printf(" Число отрицательных: %d \n", count);
    _getch();
}
Возможно, применить это:
int x, sum, k; 
.
.
.
sum=0;
k=0;
for (i = 0; i <7; i++)
{
scanf_s("%d \n", &x);
if(x>0) sum=sum+x;
else k++;
}
printf(" Сумма положительных: %d \n", sum); 
printf(" Число отрицательных: %d \n", k);
Но у меня как то не получается.

Решение задачи: «Перевести из C++ в чисто Си»

textual
Листинг программы
#include "stdafx.h" 
#include "stdlib.h" 
#include <math.h>
#include <stdio.h>
#include <io.h>
#include <conio.h> 
#include <locale.h>
 
#define C 7  /* <-------- 1 */
 
int array[C];  /* <-------- 2 */
 
void main()
{
    int i, sum, count;
    setlocale(LC_ALL, "RUS");
    system("cls");
    printf(" Написать 7 чисел и программа тремя способами считает количество отрицательных и сумму положительных. \n \n Введите 7 чисел массива: ");
    for (i = 0; i < C; i++)  /* <-------- 3 */
        scanf("%d", &array[i]);
    printf("\n Вывод массива:");
    for (i = 0; i < C; i++)  /* <-------- 4 */
        printf("%5d", array[i]);
    sum = 0; count = 0;
    for (i = 0; i < C; i++)  /* <-------- 5 */
    {
        if (array[i] > 0) sum += array[i];
        else count++;
    }
    printf("\n\n Цикл For \n");
    printf(" Сумма положительных: %d \n", sum);
    printf(" Число отрицательных: %d \n", count);
    i = 0; sum = 0; count = 0;
    while (i < C)  /* <-------- 6 */
    {
        if (array[i] > 0) sum += array[i];
        else count++;
        i++;
    }
    printf("\n Цикл While \n");
    printf(" Сумма положительных: %d \n", sum);
    printf(" Число отрицательных: %d \n", count);
    i = 0; sum = 0; count = 0;
    do
    {
        if (array[i] > 0) sum += array[i];
        else count++;
        i++;
    } while (i < C);  /* <-------- 7 */
    printf("\n Цикл Do While \n");
    printf(" Сумма положительных: %d \n", sum);
    printf(" Число отрицательных: %d \n", count);
    _getch();
}

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

  1. Предполагается, что задача заключается в переводе кода из C++ в C.
  2. Объявлен массив array типа int размером C.
  3. В цикле for происходит ввод чисел в массив array с помощью функции scanf.
  4. В цикле for происходит вывод элементов массива array с помощью функции printf.
  5. В цикле for происходит подсчет суммы положительных чисел и количества отрицательных чисел в массиве array.
  6. В цикле while происходит подсчет суммы положительных чисел и количества отрицательных чисел в массиве array.
  7. В цикле do...while происходит подсчет суммы положительных чисел и количества отрицательных чисел в массиве array.

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

14   голосов , оценка 4.214 из 5