C/C++
Помогите решить задачу на си!!!
Составьте программу формирования из массива A (N) двух массивов, в которых первый массив заполнен элементами, предшествующими минимальному, а второй – остальными элементами. И отсортировать первый – по убыванию, второй – по возрастанию.
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#define RAND(min, max) (rand() % ((max) - (min)) + (min))
#define BUFFER 19
void fill(int* box, int a, int b) {
int i;
srand((unsigned)time(NULL));
for (i = 0; i < BUFFER; ++i) box[i] = RAND(a, b);
}
void show(int* box, int n) {
int i;
for (i = 0; i < n; ++i) printf("%4i", box[i]);
puts("");
}
int posmin(int* box) {
int m = box[0];
int i, j = 0;
for (i = 1; i < BUFFER; ++i) {
if (box[i] < m) {
m = box[i];
j = i;
}
}
return j;
}
int copy(int* dest, int* src, int n) {
int i;
for (i = 0; i < n; ++i) dest[i] = src[i];
return n;
}
int ascending(const void* a, const void* b) {
if (*((int*)a) < *((int*)b)) return -1;
if (*((int*)a) > *((int*)b)) return 1;
return 0;
}
int descending(const void* a, const void* b) {
if (*((int*)a) > *((int*)b)) return -1;
if (*((int*)a) < *((int*)b)) return 1;
return 0;
}
int main(void) {
int nb = 0, nc = 0;
int mn;
int a[BUFFER], b[BUFFER], c[BUFFER];
fill(a, 10, 100);
show(a, BUFFER);
mn = posmin(a);
nb = copy(b, a, mn);
qsort(b, nb, sizeof(b[0]), descending);
show(b, nb);
nc = copy(c, a + mn, BUFFER - mn);
qsort(c, nc, sizeof(c[0]), ascending);
show(c, nc);
system("pause > nul");
return 0;
}
#include <stdio.h>
#include <time.h>
#define RAND(min, max) (rand() % ((max) - (min)) + (min))
#define BUFFER 19
void fill(int* box, int a, int b) {
int i;
srand((unsigned)time(NULL));
for (i = 0; i < BUFFER; ++i) box[i] = RAND(a, b);
}
void show(int* box, int n) {
int i;
for (i = 0; i < n; ++i) printf("%4i", box[i]);
puts("");
}
int posmin(int* box) {
int m = box[0];
int i, j = 0;
for (i = 1; i < BUFFER; ++i) {
if (box[i] < m) {
m = box[i];
j = i;
}
}
return j;
}
int copy(int* dest, int* src, int n) {
int i;
for (i = 0; i < n; ++i) dest[i] = src[i];
return n;
}
int ascending(const void* a, const void* b) {
if (*((int*)a) < *((int*)b)) return -1;
if (*((int*)a) > *((int*)b)) return 1;
return 0;
}
int descending(const void* a, const void* b) {
if (*((int*)a) > *((int*)b)) return -1;
if (*((int*)a) < *((int*)b)) return 1;
return 0;
}
int main(void) {
int nb = 0, nc = 0;
int mn;
int a[BUFFER], b[BUFFER], c[BUFFER];
fill(a, 10, 100);
show(a, BUFFER);
mn = posmin(a);
nb = copy(b, a, mn);
qsort(b, nb, sizeof(b[0]), descending);
show(b, nb);
nc = copy(c, a + mn, BUFFER - mn);
qsort(c, nc, sizeof(c[0]), ascending);
show(c, nc);
system("pause > nul");
return 0;
}
Владимир Канев
спасибо большое))
char str[50]; strcpy(str, "ABCDEXYZFGHIXZJXYZKL");
char line[4]; strcpy(line, "XYZ");
printf("Ищем пространство между %s в строке %s\n", line, str);
char *it1= strstr(str, line);
printf("%d\n", it1-str);
char *it2= strstr(it1+1, line);
printf("%d\n", it2-str);
it1= it1+strlen(line);
printf("Между последовательностями %d символов", it2-it1);
char line[4]; strcpy(line, "XYZ");
printf("Ищем пространство между %s в строке %s\n", line, str);
char *it1= strstr(str, line);
printf("%d\n", it1-str);
char *it2= strstr(it1+1, line);
printf("%d\n", it2-str);
it1= it1+strlen(line);
printf("Между последовательностями %d символов", it2-it1);
Николай Тимин
Ты просто гений!
Похожие вопросы
- Помогите решить задачу на СИ!
- Помогите решить задачу на СИ желательно с объяснением
- Помогите пожалуйста решить задачу на Си
- Помогите решить задачу на структуры в Си.
- Помогите решить задачу по программированию на C++
- Помогите решить задачу, пожалуйста. (Язык Си)
- Помогите решить задачу, пожалуйста. Сам не понимаю. (Язык Си)
- Помогите решить задачу на языке программирования Си, пожалуйста
- Помогите решить задачу по C++!
- Помогите решить задачу по программированию