Почему выдает такой результат? - C (СИ)

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

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

#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#include <math.h.>
#include <time.h>
#define max 10
    void BubbleSort(float m[],int n)
{
    int i,j;
    float tmp;
    for(i=0;i<n;i++)
        for(j=0;j<n-1;j++)
            if(m[j]>m[j+1])
            {
                tmp=m[j];
                m[j]=m[j+1];
                m[j+1]=tmp;
            }
}
int OtriChisla()
{
    int i,n,j,p;
    int g[max];
        FILE *file;
    file=fopen("vvod_chisel.txt","w");
    if(file==NULL)
    {
        printf("ERROR, Bad file");
        return 1;
    }
    fclose(file);
    printf("Наберите числа в файле: vvod_chisel.txt\n Затем нажмите 1");
    scanf("%d",&p);
        if(p==1){
    file=fopen("vvod_chosel.txt","r");
    for(i;i<max;i++)
    {
    fscanf(file,"%d ",&g[i]);
    }
    fclose(file);
    printf("Вы ввели такой массив: ");
    for(i;i<max-1;i++) printf("%d, ",g[i]);
    printf("%d.",g[i]);
    printf("\n");
    n = max;
   for(i=0;i<n;i++)
        if (g[i] < 0) {
            n=n-1;
            for (j=i; j < n; j++)
                g[j] = g[j+1];
            i--;    
        }
    
        for(i;i<max-1;i++)
        
        printf("%d, ",g[i]);
    
        printf("%d.",g[i]);}else printf("Error");
}
int KorniYravnenia()
{
    
    float a,b,c,d,x1,x2;
    printf("\nax^2+ bx + c = 0");
    printf("\nЧему равен первый коэффициент? ");
    scanf("%f",&a);
    printf("Чему равен второй коэффициент? ");
    scanf("%f",&b);
    printf("Чему равен третий коэффициент? ");
    scanf("%f",&c);
    d=(b*b)-(4*a*c);
    printf("D=%f",d);
        if(d<0){
            printf("\nD<0");
            printf("\nНет Решения");
        }else if(d==0){
            printf("\nD=0");
            x1=(-1.*b)/(2*a);
        printf("x1,2=%f",x1);
            }else if (d>0) {
                printf("\nD>0");
                x1=((-1.*b)+sqrt(d))/(2*a);
                x2=((-1.*b)-sqrt(d))/(2*a);
                printf("\nx1=%f",x1);
                printf("\nx2=%f",x2);
            }
}
float AlgSort()
{
    float m[max];
    int i;
    srand(time(NULL));
    for(i=0;i<max;i++)
    {
        m[i]=rand()%100/10.;
    }
    printf("Сгенерированный массив: ");
    for(i=0;i<max-1;i++) printf("%.1f ",m[i]);
    printf("%.1f\n",m[i]);
    BubbleSort(m,max);
    printf("Упорядоченный массив: ");
    for(i=0;i<max;i++) printf("%.1f ",m[i]);
}
 
int main(int argc, char *argv[]) 
{
    float x1,x2;
    setlocale(LC_ALL , "RUS");
    int VSE;
    printf("[1]Корни квадратного уравнения.\n[2]Алгоритм сортировки массива (Алгоритм пузырька).\n[3]Уничтожение всех отрицательный чисел в массиве.\n ");
    printf("        Введите значение ");
    scanf("%d",&VSE);
    switch(VSE)
    {
        case 1: KorniYravnenia();break;
        case 2: AlgSort();break;
        case 3: OtriChisla();break;
        default: printf("ERROR");   
    }
    return 0;
}

Решение задачи: «Почему выдает такой результат?»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#include <math.h>
#include <time.h>
#define max 10
    void BubbleSort(float m[],int n)
{
    int i,j;
    float tmp;
    for(i=0;i<n;i++)
        for(j=0;j<n-1;j++)
            if(m[j]>m[j+1])
            {
                tmp=m[j];
                m[j]=m[j+1];
                m[j+1]=tmp;
            }
}
int OtriChisla()
{
    int i, n, j, p, a;
    int g[max];
    srand(time(NULL));
    FILE * file;
    file = fopen("vvod_chisel.txt", "w");
    if (file == NULL)
    {
        printf("ERROR, Bad file");
        return 1;
    }
    else
    {
        for(i = 0; i < max; i++) 
        { 
            a = -100 + rand() % 200;
            fprintf(file, "%d\n", a); 
        }
    }
    fclose(file);
    
        file = fopen("vvod_chisel.txt", "r");
        for(i = 0; i < max || !feof(file); i++) 
        { 
            fscanf(file, "%d", &g[i]); 
        }
        fclose(file);
 
        printf("Вы ввели такой массив: ");
        for (i = 0; i < max; i++)
            printf("%d ", g[i]);
 
        printf("\n");
        n = max;
        for (i = 0; i < n; i++)
            if (g[i] < 0)
            {
                n = n - 1;
                for (j = i; j < n; j++)
                    g[j] = g[j + 1];
                i--;
            }
        printf("Результат: ");
        for (i = 0; i < n; i++)
 
            printf("%d, ", g[i]);
 
    }
 
int KorniYravnenia()
{
 
    float a,b,c,d,x1,x2;
    printf("\nax^2+ bx + c = 0");
    printf("\nЧему равен первый коэффициент? ");
    scanf("%f",&a);
    printf("Чему равен второй коэффициент? ");
    scanf("%f",&b);
    printf("Чему равен третий коэффициент? ");
    scanf("%f",&c);
    d=(b*b)-(4*a*c);
    printf("D=%f",d);
        if(d<0){
            printf("\nD<0");
            printf("\nНет Решения");
        }else if(d==0){
            printf("\nD=0");
            x1=(-1.*b)/(2*a);
        printf("x1,2=%f",x1);
            }else if (d>0) {
                printf("\nD>0");
                x1=((-1.*b)+sqrt(d))/(2*a);
                x2=((-1.*b)-sqrt(d))/(2*a);
                printf("\nx1=%f",x1);
                printf("\nx2=%f",x2);
            }
}
float AlgSort()
{
    float m[max];
    int i;
    srand(time(NULL));
    for(i=0;i<max;i++)
    {
        m[i]=rand()%100/10.;
    }
    printf("Сгенерированный массив: ");
    for(i=0;i<max-1;i++) printf("%.1f ",m[i]);
    printf("%.1f\n",m[i]);
    BubbleSort(m,max);
    printf("Упорядоченный массив: ");
    for(i=0;i<max;i++) printf("%.1f ",m[i]);
}
 
int main(int argc, char *argv[])
{
    float x1,x2;
    setlocale(LC_ALL , "RUS");
    int VSE;
    printf("[1]Корни квадратного уравнения.\n[2]Алгоритм сортировки массива (Алгоритм пузырька).\n[3]Уничтожение всех отрицательный чисел в массиве.\n");
    printf("Введите значение: ");
    scanf("%d",&VSE);
    switch(VSE)
    {
        case 1: KorniYravnenia();break;
        case 2: AlgSort();break;
        case 3: OtriChisla();break;
        default: printf("ERROR");
    }
    printf("\n");
    return 0;
}

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

  1. В функции BubbleSort происходит сортировка массива методом пузырька.
  2. В функции OtriChisla генерируется случайный массив чисел, затем он сортируется по возрастанию и выводится на экран.
  3. В функции KorniYravnenia пользователь вводит коэффициенты квадратного уравнения, затем программа находит его корни и выводит их на экран.
  4. В функции AlgSort генерируется случайный массив чисел, затем он сортируется методом пузырька и выводится на экран.

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


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

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

7   голосов , оценка 3.571 из 5
Похожие ответы