Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Работа с массивом структур


Автор: M9C1K 26.5.2009, 14:08
Дана информация о четырех вузах. Структура имеет вид: название вуза, число студентов, количество факультетов, количество кафедр. Вывести данные об общем числе студентов, факультетов и кафедр
Найдите плз ошибку.

Код

#include<stdio.h>
#include<conio.h>
#include<string.h>
#define n 4
main()
{
int i,k,allStudents,allKafedrs,allFacultets; 
 struct univer{char nazvanie[4];int stud;int kafed;int facult;}vuz;
 struct univer un[4];
 char nazv[4];
 printf("\n vvedite nazv vuza \n");
 for (i=0;i<n;i++)
 {printf("\n vvedite 4islo stud, kaf, fac :");
 scanf("%s %d %d",vuz.stud,&vuz.kafed,&vuz.facult);
 un[i]=vuz;
  }
  printf("\n vvedite nazv vuza: ");
  scanf("/n %s /n",nazv);
  for (i=0,allStudents=0,allKafedrs=0,allKafedrs=0,k=0; i<n;i++)
  if (strcmp(un[i].nazvanie,nazv)==0)
  {allStudents += un[i].stud;
   allKafedrs += un[i].kafed;
   allFacultets += un[i].facult;
     k++;
    }
    printf("kol stud %d, kaf %d,fac %d ",allStudents,allKafedrs,allFacultets);
    getch();
    }
 

Автор: zim22 26.5.2009, 14:36
Цитата(M9C1K @  26.5.2009,  14:08 Найти цитируемый пост)
Найдите плз ошибку.

это игра такая?

Автор: gosn1ck 26.5.2009, 14:43
Код
#include<stdio.h>#include<conio.h>#include<string.h>
#define n 4main(){int i,k,allStudents,allKafedrs,allFacultets; struct univer{char nazvanie[4];int stud;int kafed;int facult;}vuz;
 struct univer un[4];char nazv[4];printf("\n vvedite nazv vuza \n");
 for (i=0;i<n;i++){printf("\n vvedite 4islo stud, kaf, fac :");scanf("%s %d %d",vuz.stud,&vuz.kafed,&vuz.facult);
 un[i]=vuz;}printf("\n vvedite nazv vuza: ");scanf("/n %s /n",nazv);
  for (i=0,allStudents=0,allKafedrs=0,allKafedrs=0,k=0; i<n;i++) if (strcmp(un[i].nazvanie,nazv)==0)
  {allStudents += un[i].stud;allKafedrs += un[i].kafed;allFacultets += un[i].facult;k++;}printf("kol stud %d, kaf %d,fac %d ",allStudents,allKafedrs,allFacultets);getch();}

я нашел smile дайте конфетку smile

Автор: Dmi3ev 26.5.2009, 23:45
1)
Цитата

struct univer{char nazvanie[4];int stud;int kafed;int facult;}vuz;

вот такая структура, а ты как-то по разному пишешь флаги, хотя данные имеют одинаковый тип + & тоже как-то в разнобой ставишь...
scanf("%s %d %d",vuz.stud,&vuz.kafed,&vuz.facult);
2)
Цитата

printf("\n vvedite nazv vuza \n");

эта штука тоже не к месту встречается в строке 11
3)
а почему сразу в массив нельзя читать, а надо делать вот так?
Цитата

un[i]=vuz;

4)
Цитата

if (strcmp(un[i].nazvanie,nazv)==0)

у тебя название нигде в массиве нет значений поля название... ты его не задаешь... че ты там сравниваешь?
5)
Цитата

for (i=0,allStudents=0,allKafedrs=0,allKafedrs=0,k=0; i<n;i++)

нах так делать???
Цитата

Найдите плз ошибку.

А ошибки тут нет, программа компилируется...
28 строк далеко не самого сложного кода, а столько лажи... не знаю... внимательнее будь... косяки все твои, комп работает нормально...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)