Перевести программу с C++ - C (СИ) (73277)

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

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

Программа.
#include<stdio.h>
#include<math.h>
#include<conio.h>
#include<stdlib.h>
#include<iostream>
 
#define N 10 //количество шариков каждого вида
 
int main()
{
    setlocale(LC_ALL, "Russian"); // русский язык
    int x,nk=10,ns=10,nz=10;
    char mas[N*3],mas1[N*3];
    //случайный порядок
    for (int i=0;i<N*3;i++){
        if (nk>0 && ns>0 && nz>0){
            x=int(rand()/(RAND_MAX/(N/3))); //случайное число от 0 до 2
            if (x==0)
                mas[i]='К',nk--;
            else if (x==1)
                mas[i]='С',ns--;
            else
                mas[i]='З',nz--;
            }
        else if (nk==0 && ns>0 && nz>0){
            x=int(rand()/(RAND_MAX/(N/5))); //случайное число от 0 до 1
            if (x==0)
                mas[i]='С',ns--;
            else
                mas[i]='З',nz--;
            }
        else if (nk>0 && ns==0 && nz>0){
            x=int(rand()/(RAND_MAX/(N/5))); //случайное число от 0 до 1
            if (x==0)
                mas[i]='К',nk--;
            else
                mas[i]='З',nz--;
            }
        else if (nk>0 && ns>0 && nz==0){
            x=int(rand()/(RAND_MAX/(N/5))); //случайное число от 0 до 1
            if (x==0)
                mas[i]='К',nk--;
            else
                mas[i]='С',ns--;
            }
        else if (nk==0 && ns==0 && nz>0)
            mas[i]='З',nz--;
        else if (nk==0 && ns>0 && nz==0)
            mas[i]='С',ns--;
        else if (nk>0 && ns==0 && nz==0)
            mas[i]='К',nk--;
 
        printf("%c ",mas[i]);
    }
    printf("\n");
    //сортировка
    for (int i=0;i<N*3;i++){
        if (i%3==0)
            mas1[i]='К';
        if (i%3==1)
            mas1[i]='С';
        if (i%3==2)
            mas1[i]='З';
        printf("%c ",mas1[i]);
    }
 
    getch();
    return 0;
}
Нужно чтобы программа работала на обычном C с компилятором от GCC.

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

textual
Листинг программы
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include <locale.h>
 
#define N 10 //количество шариков каждого вида
 
int main()
{
    int i,x,nk=10,ns=10,nz=10;
    char mas[N*3],mas1[N*3];
    //случайный порядок
    for (i=0;i<N*3;i++){
        if (nk>0 && ns>0 && nz>0){
            x=rand()/(RAND_MAX/(N/3)); //случайное число от 0 до 2
            if (x==0)
                mas[i]='1',nk--;
            else if (x==1)
                mas[i]='4',ns--;
            else
                mas[i]='2',nz--;
            }
        else if (nk==0 && ns>0 && nz>0){
            x=rand()/(RAND_MAX/(N/5)); //случайное число от 0 до 1
            if (x==0)
                mas[i]='4',ns--;
            else
                mas[i]='2',nz--;
            }
        else if (nk>0 && ns==0 && nz>0){
            x=rand()/(RAND_MAX/(N/5)); //случайное число от 0 до 1
            if (x==0)
                mas[i]='1',nk--;
            else
                mas[i]='2',nz--;
            }
        else if (nk>0 && ns>0 && nz==0){
            x=rand()/(RAND_MAX/(N/5)); //случайное число от 0 до 1
            if (x==0)
                mas[i]='1',nk--;
            else
                mas[i]='4',ns--;
            }
        else if (nk==0 && ns==0 && nz>0)
            mas[i]='2',nz--;
        else if (nk==0 && ns>0 && nz==0)
            mas[i]='4',ns--;
        else if (nk>0 && ns==0 && nz==0)
            mas[i]='1',nk--;
 
        printf("[3%cm* ",mas[i]);
    }
    printf("\n");
    //сортировка
    for (i=0;i<N*3;i++){
        if (i%3==0)
            mas1[i]='1';
        if (i%3==1)
            mas1[i]='4';
        if (i%3==2)
            mas1[i]='2';
        printf("[3%cm* ",mas[i]);
    }
 
    getchar();
    return 0;
}

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

  1. Объявлены переменные: i,x,nk,ns,nz,mas,mas1,N,rand(),RAND_MAX,printf(),getchar()
  2. Определены константы: #define N 10
  3. Задается случайный порядок шариков
    • При условии nk>0, ns>0, nz>0 выполняется блок кода - Переменная x принимает случайное значение от 0 до 2 - В зависимости от значения x, переменная mas[i] принимает значение '1', '4' или '2' - Если значение x равно 0, то уменьшается значение переменной nk на 1 - Если значение x равно 1, то уменьшается значение переменной ns на 1 - В остальных случаях уменьшается значение переменной nz на 1
    • При условии nk==0, ns>0, nz>0 выполняется блок кода - Переменная x принимает случайное значение от 0 до 1 - В зависимости от значения x, переменная mas[i] принимает значение '4' или '2' - Если значение x равно 0, то уменьшается значение переменной ns на 1
    • При условии nk>0, ns==0, nz>0 выполняется блок кода - Переменная x принимает случайное значение от 0 до 1 - В зависимости от значения x, переменная mas[i] принимает значение '1' или '2' - Если значение x равно 0, то уменьшается значение переменной nk на 1
    • При условии nk==0, ns==0, nz>0 выполняется блок кода - Переменная mas[i] принимает значение '2' - Уменьшается значение переменной nz на 1
    • При условии nk>0, ns>0, nz==0 выполняется блок кода - Переменная x принимает случайное значение от 0 до 1 - В зависимости от значения x, переменная mas[i] принимает значение '1' или '4' - Если значение x равно 0, то уменьшается значение переменной nk на 1
    • При условии nk==0, ns>0, nz==0 выполняется блок кода - Переменная mas[i] принимает значение '4' - Уменьшается значение переменной ns на 1
    • При условии nk>0, ns==0, nz==0 выполняется блок кода - Переменная mas[i] принимает значение '1' - Уменьшается значение переменной nk на 1
  4. Выводится сообщение [3%cm* с использованием функции printf()
  5. Происходит сортировка массива mas1
    • Если значение i%3 равно 0, то переменная mas1[i] принимает значение '1'
    • Если значение i%3 равно 1, то переменная mas1[i] принимает значение '4'
    • Если значение i%3 равно 2, то переменная mas1[i] принимает значение '2'
    • Выводится сообщение [3%cm* с использованием функции printf()
  6. Программа ожидает ввода с помощью функции getchar()
  7. Возвращается 0, что означает успешное выполнение программы

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

9   голосов , оценка 4.111 из 5