@im_noob

Как сделать массив с указателями?

Как правильно передать массивы с помощью указателей, и как реализовать ввод x у через указатели?

Я с ними никогда не работал, так что знаний у меня толком никаких нет, кроме того, что нагуглил.
Моей основной задачей является переписать этот код с использованием указателей.
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <conio.h>
#define MAX 100
main()
{
	float a[MAX], b[MAX], x, y;
	unsigned int i, n;
 
	printf("x=");// действительная переменная х
	scanf_s("%f", &x);
	printf("y=");// действительная переменная у
	scanf_s("%f", &y);
	printf("size of massiv= ");
	scanf_s("%i", &n);
	
	for (i = 0; i < n; i++)
	{
		printf("a[%i]=", i);
		scanf_s("%f", a[i]);
		if (a[i] == 0.0)
		{
			n = i;
			break;
		}
	}
		
		printf("M1 \n");
		for (i = 0; i < n; ++i){
			printf("%f ", a[i]);

		}
		for (i = 0; i < n; i++) {
			if (a[i] <y || a[i] > x)
			{
				b[i] = 0;
			}
			else
			{
				b[i] = a[i];
			}
		}
			
		printf("\nM2 \n");
		for (i = 0; i < n; ++i){
			printf("%f ", b[i]);

		}
		printf("x= %f", x);
		printf("y= %f", y);
	_getch();
	return 0;
}
  • Вопрос задан
  • 69 просмотров
Пригласить эксперта
Ответы на вопрос 1
CityCat4
@CityCat4
Если я чешу в затылке - не беда!
Обьем массива известен.
Берем память

float *fptr;
fptr = (float *) calloc(sizeof(float*), MAX);

И все :) Массив указателей на float есть :) Теперь перемещаемся по нему, заполняем (разумеется и под числа тоже место нужно), когда надо - перемещаемся и ищем. Обычная работа с массивом, только для счетчика нужно float* использовать - тогда при простом инкременте у тебя он будет автоматом прыгать на следующий элемент массива.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы