Нужно создать массив в котором необходимо найти min и max элемент и поменять их местами и готовый массив вывести на экран. Пробовал как в Pascal написать
int temp
temp = a[max];
a[min] = a[min];
a[min] = temp
Но ничего не получается. помогите пожалуйста заранее спасибо. Вот мой код:
#include <stdio.h>
int main(int argc, char *argv[])
{
int n;
printf("dlina massiva: "); scanf("%d",&n);
int a[n];
printf("Wwedite chisla massiva: ");
for(int i=0;i<n;i++)>);
int max = a[0], posmax = 0;
for(int i=1;i<n;i++){>){
max = a;
posmax = i;
}
}
int min =a[0], posmin = 0;
for(int i=1;i<n;i++){>a){
min = a;
posmin =i;
}
}
printf("maximum: %d,\nposition: %d\n",max,posmax);
printf("minimum: %d,\nposition: %d\n",min,posmin);
return 0;
}
Другие языки программирования и технологии
помогите дописать лабу в C (Си)
> Интересно, а в Паскале ты как массив длиной n определял? Тоже сначала вводил n
Вот, не надо передергивать, в FP, Delphi, PABC. NET, и в Си стандарта С99 и старше можно сначала ввести n, а потом задать массив длинной n.
------------------------------------
C99 и выше:
#include <stdio.h>
int main() {
int n;
printf("dlina massiva: ");
scanf("%d",&n);
int a[n];
printf("Wwedite chisla massiva: ");
for (int c = 0; c < n; c++) scanf("%d", &a[c]);
int cmin = 0;
int cmax = 0;
for (int c = 1; c < n; c++) {
if (a[c] < a[cmin]) cmin = c;
if (a[c] > a[cmax]) cmax = c;
}
int tmp = a[cmin];
a[cmin] = a[cmax];
a[cmax] = tmp;
printf("Preobrazovannyy massiv:");
for (int c = 0; c < n; c++) printf(" %d", a[c]);
return 0;
}
------------------------------------
C90/89:
#include <stdio.h>
#include <stdlib.h>
int main() {
int n, *a, c, cmin = 0, cmax = 0, tmp;
printf("dlina massiva: ");
scanf("%d",&n);
a = (int *)malloc(n * sizeof(a[0]));
printf("Wwedite chisla massiva: ");
for (c = 0; c < n; c++) scanf("%d", &a[c]);
for (c = 1; c < n; c++) {
if (a[c] < a[cmin]) cmin = c;
if (a[c] > a[cmax]) cmax = c;
}
tmp = a[cmin];
a[cmin] = a[cmax];
a[cmax] = tmp;
printf("Preobrazovannyy massiv:\n");
for (c = 0; c < n; c++) printf("%d ", a[c]);
free(a);
return 0;
}
Вот, не надо передергивать, в FP, Delphi, PABC. NET, и в Си стандарта С99 и старше можно сначала ввести n, а потом задать массив длинной n.
------------------------------------
C99 и выше:
#include <stdio.h>
int main() {
int n;
printf("dlina massiva: ");
scanf("%d",&n);
int a[n];
printf("Wwedite chisla massiva: ");
for (int c = 0; c < n; c++) scanf("%d", &a[c]);
int cmin = 0;
int cmax = 0;
for (int c = 1; c < n; c++) {
if (a[c] < a[cmin]) cmin = c;
if (a[c] > a[cmax]) cmax = c;
}
int tmp = a[cmin];
a[cmin] = a[cmax];
a[cmax] = tmp;
printf("Preobrazovannyy massiv:");
for (int c = 0; c < n; c++) printf(" %d", a[c]);
return 0;
}
------------------------------------
C90/89:
#include <stdio.h>
#include <stdlib.h>
int main() {
int n, *a, c, cmin = 0, cmax = 0, tmp;
printf("dlina massiva: ");
scanf("%d",&n);
a = (int *)malloc(n * sizeof(a[0]));
printf("Wwedite chisla massiva: ");
for (c = 0; c < n; c++) scanf("%d", &a[c]);
for (c = 1; c < n; c++) {
if (a[c] < a[cmin]) cmin = c;
if (a[c] > a[cmax]) cmax = c;
}
tmp = a[cmin];
a[cmin] = a[cmax];
a[cmax] = tmp;
printf("Preobrazovannyy massiv:\n");
for (c = 0; c < n; c++) printf("%d ", a[c]);
free(a);
return 0;
}
Интересно, а в Паскале ты как массив длиной n определял? Тоже сначала вводил n, а потом добавлял
var a:array[1..n] of integer?
Ну и "ничего не получается" - это не лечится. Вот если "выводит такую-то ошибку, а я не понимаю, почему" - помочь можно.
var a:array[1..n] of integer?
Ну и "ничего не получается" - это не лечится. Вот если "выводит такую-то ошибку, а я не понимаю, почему" - помочь можно.
Похожие вопросы
- Помогите дописать программу на C
- С++ Помогите дописать код? Как дописать сумму???
- Помогите дописать прогу на паскале
- помогите сделать лабу в VBA, по темам, "Матрицы" и "одномерные массывы"
- Помогите написать пару программ на СИ
- Пожалуйста, помогите доделать лабу!
- Помогите пожалуйста составить программу на СИ++. Заранее всем БЛАГОДАРЕН!
- Помогите с домашним задание C#
- Программирование в C#(Си шарп)
- Помогите правильно построить функцию в Си