Указатель == ссылка? - C (СИ)
Формулировка задачи:
Добрый день.
При реализации л/р нельзя использовать указатели вообще.
Если я буду использовать такую конструкцию - будет ли это удовлетворять условию выполнения лр?
Формально я не использую указатель (*), но переменная val будет восприниматься как указатель.
Подскажите пожалуйста
void print(int& val)
{
// вывод на экран val
}
int main()
{
int x = 10;
print(x);
}
Блин, похоже такая конструкция в принципе невозможна :/
Решение задачи: «Указатель == ссылка?»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#define N 6
#define M 10
void fill(int a[M][N])
{
int i = 0;
int j = 0;
for(i = 0; i < N; i++)
{
for(j = 0; j < M; j++) a[i][j] = rand() % 10;
}
}
void print(int a[M][N])
{
int i = 0;
int j = 0;
printf("--------------------------------\n");
for(i = 0; i < N; i++)
{
for(j = 0; j < M; j++) printf("%d ", a[i][j]);
printf("\n");
}
}
void removemaxes(int a[M][N])
{
int i = 0;
int j = 0;
int max = 0;
for(i = 0; i < N; i++)
{
max = a[i][0];
for(j = 1; j < M; j++)
{
if (a[i][j] > max) max = a[i][j];
}
for(j = 0; j < M; j++)
{
if (a[i][j] == max) a[i][j] = 0;
}
}
}
int main(void)
{
int x[M][N];
fill(x);
print(x);
removemaxes(x);
print(x);
getchar();
return 0;
}
Объяснение кода листинга программы
- Включаются заголовочные файлы
и . - Определяются константы N и M, которые представляют собой размеры массива.
- Создаются две функции: fill и print, которые работают с массивом.
- В функции fill происходит заполнение массива случайными числами от 0 до 9.
- В функции print происходит вывод содержимого массива на экран.
- В функции removemaxes происходит удаление максимальных значений из массива.
- В функции main создается массив x, затем он заполняется случайными числами, выводится на экран, затем удаляются максимальные значения и снова выводится на экран.
- В конце программы ожидается нажатие клавиши для выхода из программы.
- Возвращается 0, что означает успешный конец работы программы.