Перевести из 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(); }
Объяснение кода листинга программы
- Предполагается, что задача заключается в переводе кода из C++ в C.
- Объявлен массив array типа int размером C.
- В цикле for происходит ввод чисел в массив array с помощью функции scanf.
- В цикле for происходит вывод элементов массива array с помощью функции printf.
- В цикле for происходит подсчет суммы положительных чисел и количества отрицательных чисел в массиве array.
- В цикле while происходит подсчет суммы положительных чисел и количества отрицательных чисел в массиве array.
- В цикле do...while происходит подсчет суммы положительных чисел и количества отрицательных чисел в массиве array.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д