Почему выдает такой результат? - 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; }
Объяснение кода листинга программы
- В функции
BubbleSort
происходит сортировка массива методом пузырька. - В функции
OtriChisla
генерируется случайный массив чисел, затем он сортируется по возрастанию и выводится на экран. - В функции
KorniYravnenia
пользователь вводит коэффициенты квадратного уравнения, затем программа находит его корни и выводит их на экран. - В функции
AlgSort
генерируется случайный массив чисел, затем он сортируется методом пузырька и выводится на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д