Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.06.2010, 22:20   #1
Bocman
Новичок
Джуниор
 
Регистрация: 06.06.2010
Сообщений: 3
По умолчанию Массивы в C

Здравствуйте, подскажите, пожалуйста по следующему коду программы, запутался с массивами, необходимо продекларировать b, но какое ей значение прописать непонятно. Вообще в правильном ли русле идет написание? Заранее благодарен за помощь.

Задание: Каждая из 30 групп студентов имеет свой процент успеваемости (от 0% до 100%). Составить список номеров групп, которым необходимо повысить успеваемость до фактического среднего уровня. Список расположить в порядке убывания процента успеваемости этих групп.

Код:
#include <stdio.h>
int main (void)
{int g[30], i, k, t, l;
for (i=0; i<30; i++)
{printf ("Vvedi g[%i]= ", i+1);
scanf ("%i", & g[i]);}
k=0;
int n[30];
for (i=0; i<30; i++)
{if (g[i]<50)
{n[k]=i;
k++;}
}
printf ("Ne uspevaushih \n");
for (l=0; l<k; l++)
{printf ("%i", n[k]);}
for (i=0; i<30; i++)
{for (l=0; l<k; l++)
{if (i=n[l])
b[t]=g[i];}
}
for (i=0; i<30; i++)
{for (t=0; t<k; t++)
if (b[t]>b[t+1])
{l=b[t];
b[t]=b[t+1];
b[t+1]=l;}
}
printf ("Spisok otstaushih \n");
for (t=0; t<k; t++)
{printf ("%i", b[t]);}
return 0;}

Последний раз редактировалось Bocman; 06.06.2010 в 22:25.
Bocman вне форума Ответить с цитированием
Старый 07.06.2010, 01:30   #2
Bocman
Новичок
Джуниор
 
Регистрация: 06.06.2010
Сообщений: 3
По умолчанию

Возможно, у кого-то есть идеи как по другому реализовать задание, поделитесь мыслями.
Bocman вне форума Ответить с цитированием
Старый 07.06.2010, 14:20   #3
Snejnaya
Форумчанин
 
Регистрация: 12.05.2010
Сообщений: 219
По умолчанию

Составить список номеров групп, которым необходимо повысить успеваемость до фактического среднего уровня. Список расположить в порядке убывания процента успеваемости этих групп

похоже под "средним уровнем" понимается среднее арифметическое успеваемости всех групп, а не 50 процентов. Т.о. задача сводится к тому, чтобы
1)найти среднюю успеваемость всех групп
2)в отдельный массив (назовем его просто spisok) сложить отстающие группы
3)отсортировать этот список (его элементы - номера групп) по критерю успеваемости

ну, будем по порядку

int spisok[30], dlina_spiska=0, g[30];


void main(void)
{int i;
double sr_uspevaemost;
//здесь как-то формируется массив g[30] для 30 групп, вводится с клавиатуры или еще как

sr_uspevaemost=0;
for(i=0;i<30;i++)
{sr_uspevaemost=sr_uspevaemost+g[p];
}
sr_uspevaemost=sr_uspevaemost/30;
for(i=0;i<30;i++)
{if(g[i]<sr_uspevaemost)
{spisok[dlina_spiska]=i;
dlina_spiska++;
}
}
//теперь нужно отсортировать массив spisok, процедура сортировки изложена ниже
sortirovka();
//теперь в массиве spisok хранятся номера неуспевающих групп (всего их dlina_spiska) в порядке убывания успеваемостей.


}

void sortirovka(void)
{//будем сортировать методом "пузырька" (если интересует, могу описать, что это такое)
int i,j, nomer_gruppi1, nomer_gruppi2, vspom;
for (i=0;i<dlina_spiska;i++)
{for(j=i+1;j<dlina_spiska;j++)
{nomer_gruppi1=spisok[i];
nomer_gruppi2=spisok[j];
if (g[nomer_gruppi1]<g[nomer_gruppi2])
{vspom=spisok[i];
spisok[i]=spisok[j];
spisok[j]=vspom;
}
}
}
}
Snejnaya вне форума Ответить с цитированием
Старый 07.06.2010, 22:46   #4
Bocman
Новичок
Джуниор
 
Регистрация: 06.06.2010
Сообщений: 3
По умолчанию

Snejnaya, спасибо!
Bocman вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С++, Массивы, динамические массивы. -Sunshine- Помощь студентам 1 19.04.2010 02:17
Массивы в С++ icejoker Помощь студентам 2 19.01.2010 17:30
Даны одномерные массивы А и В. Сформировать массивы, состоящие из элемент LyaLya Помощь студентам 15 20.12.2009 14:12
Массивы. Limon34 Помощь студентам 6 26.11.2008 13:05