• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

C# массивы и функции

  • Автор темы Автор темы Jenkins
  • Дата начала Дата начала

Jenkins

Ученик
Регистрация
25 Дек 2010
Сообщения
4
Реакции
0
Баллы
0
C# массивы и функции

Здравствуйте, помогите мне, пожалуйста. Сомневаюсь в своих задачах и хочу задать вопросы по их решению.

Задача на одномерные массивы:
Дан одномерный массив из 100 элементов, состоящий из случайных вещественных чисел в диапазоне от -35 до 50. Вывести в порядке неубывания (возрастания) те положительные элементы этого массива, которые меньше заданного числа Х (0<X<50).
Код:
#pragma argsused
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
int main(int argc, char* argv[])
{ float x[100]={0},sw,a;
char j=0,i=0,min;
randomize();
for(i=0;i<100;i++)
x[i]=random(85)-35+random(100)/100.;
for(i=0;i<98;i++)
 {
 min=i;
  for(j=i+1;j<99;j++)
  if (x[min]>x[j]) min=j;
 sw=x[i];
 x[i]=x[min];
 x[min]=sw;
 }
 printf("Vvedite X:"); scanf("%f",&a);
 i=0;
 while (x[i]<=a)
 {
 printf("%f\n",x[i]);
 i++;
 };
 getchar(); getchar();
	return 0;

Двумерные массивы:
Дан двумерный массив из 5 строк и 6 столбцов. Определить для каждого четного столбца максимальный элемент. Найти произведение этих элементов.

Не могу понять как приписать четность столбца.
Код:
#pragma argsused
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char* argv[])
{ int a[5][7]={0},i,j;
  float s=1;
randomize();
for (i = 0; i < 5; i++) {
for (j = 0; j < 6; j++) {
a[i][j]=random(100);
printf("%4d",a[i][j]);
if (a[i][j]>a[i][6]) a[i][6]=a[i][j];
} printf("  max=%d\n",a[i][6]);  s=s*a[i][6];
}
printf(" proizvedenie = %f",s);
getchar();getchar();
	return 0;

И последняя задачка на функции:
Дан одномерный массив из 100 случайных целых чисел в диапазоне от 5 до 25 включительно. Вывести все числа, которые максимально часто встречаются в массиве и количество их повторений. Подсчет количества повторений для числа оформить в виде функции.

Она у меня получилась нерациональной. Нужно для идеала упростить вот этот момент, выделенный синим.

Код:
#pragma argsused
#include <stdio.h>
#include <stdlib.h>
#include <vcl.h>

int ter(int t,int *y)
{
int r=0;
for (int i = 0; i < 100; i++)
{
if (y[i]==[color=blue]t+5[/color]) r++;
}
return r;
}


int main(int argc, char* argv[])
{int a[100],i,flag=0;
int c[21],m,max=0,sw;
randomize();
for (i = 0; i < 100; i++)
{
a[i]=random(21)+5;
if (i%2==0) printf("%3d\n",a[i]);
else printf("%3d",a[i]);
}

printf("\n");
for (i=0; i < 21; i++)
{
c[i]=ter(i,a);
if (c[i]>max) max=c[i];

printf("4uCjlo %d BcTpe4aeTc9|  %d\n",i+5,c[i]);
}

for (m = 0; m < 21; m++) 
if (c[m]==max) printf("max Kojlu4ecTBo %d - elementov =%d\n",m+5,c[m]);

getchar();
	return 0;

Надеюсь на понимание и вашу помощь.
 
Назад
Сверху