блок схема

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Ответить
zoja1739
Сообщения: 2
Зарегистрирован: 22 ноя 2009, 18:55

22 ноя 2009, 19:22

// помогите пожалуйста составить блок схему

Код: Выделить всё

#include<string.h>
#include<conio.h>
#include<stdio.h>
#include <ctype.h>
 
struct STUDENT
{
char kafedra[20],famil[20],spec[20];
int ocenka;
};
int main()
{
int n,i,j,s, count; char c;
struct STUDENT arr[10];
struct STUDENT temp;

i=0;
do
{
        printf("Vvedite famil %u stud-", i+1);
        scanf("%s",&arr[i].famil);
 
        printf("Vvedite kafedru %u stud-", i+1);
        scanf("%s",&arr[i].kafedra);
 
        printf("Vvedite ocenku %u stud-", i+1);
        scanf("%d",&arr[i].ocenka);
 
        printf("%s,%s,%d\n", arr[i].famil, arr[i].kafedra, arr[i].ocenka);
 
        i=i+1;
        printf("%d\n",i);
        puts("Vvesti dannue pro studenta(Y/N)");
        scanf("%s",&c);
}while ( (c != 'n' ) && (c != 'N') );
n=i;
// sortirovka
for(i=0; i<n-1; i++)
for(j=i+1; j<n; j++)
{
        if(!strcmp(arr[i].kafedra, arr[j].kafedra) && i==j-1)
        {
                i++;
                j++;
        }
        if(!strcmp(arr[i].kafedra, arr[j].kafedra) && i!=j-1 && j<n)
        {
                temp=arr[i+1];
                arr[i+1]=arr[j];
                arr[j]=temp;
                i++;
        }
}
s=0;
count=0;
printf("Kafedra: %s\n", arr[0].kafedra);
 
for(i=0; i<n; i++)
{
                printf("%s\n", arr[i].famil);
                count++;
                s+=arr[i].ocenka;
        if(strcmp(arr[i].kafedra, arr[i+1].kafedra) && i!=n-1)
        {
                printf("Srednii ball kafedry %s: %f\n", arr[i].kafedra, (float)s/count);
                printf("Kafedra: %s\n", arr[i+1].kafedra);      
                s=0;
                count=0;
        }
 
}
                printf("Srednii ball kafedry %s: %f", arr[i-1].kafedra, (float)s/count);
        
getch();
return 0;
}
Аватара пользователя
Airhand
Сообщения: 234
Зарегистрирован: 06 окт 2005, 16:21
Откуда: Dnepropetrovsk

23 ноя 2009, 13:32

Зачем 2 темы ?
У тебя ошибка в условии while цикла do...while. Там должно быть "или"(||), а не "и"(&&).
Оптимизация по скорости:
#define while if
Оптимизация по размеру:
#define struct union
Ответить