21

(5 відповідей, залишених у C++)

Я вибачаюсь звичайно, але ви можете елементарно пояснити, або кинути фрагмент коду, що мені зробити щоб видалити запис із файлу декілька разів?

22

(5 відповідей, залишених у C++)

Дивіться, коли все роблю по-порядку все працює, але коли я хочу повторно добавити записи, ось фрагмент

 case 3:system("cls");
          for(;;)
            {
                printf("\n1.Початок \n2.Кiнець\n0.Exit\n");
                int c;
                scanf("%d",&c);
                switch (c)
                {
                case 1:
            printf("Скiльки записiв ви бажаєте добавити?->");
            scanf("%d",&start);
            fo=fopen("Add.txt","w");
            for(i=0;i<start;i++){
                print(i);
                fprint(i,fo);}
            fclose(fo);
            fo=fopen("Database.txt","r");
            for(i=0;i<basic+end;i++)
    {
        fscan(i,fo);
            }
            fclose(fo);
            fo=fopen("Add.txt","a");
            for(i=0;i<basic+end;i++){
                fprint(i,fo);
                }
        fclose(fo);
        count=basic+start+end;
        remove("Database.txt"); rename("Add.txt","Database.txt");
        system("cls");
        break;
        case 2:
        printf("Скiльки записiв ви бажаєте добавити?->");
        scanf("%d",&end);
            for(int i=0;i<end;i++)
            {
                print(i);
            }
            fo=fopen("Database.txt","a");
            for(i=0;i<end;i++){
                fprint(i,fo);
    }
            fclose(fo);
            count=basic+start+end;
            break;
                default:printf("!ooooooooog!");
                break;
                }
        if(c==0) break;
    }system("cls");
        break;

або видалити запис

 case 5:printf("Введiть прiзвище потрiбної людини: "); scanf("%s",&str);
        fo=fopen("Database.txt","r");
        for(i=0;i<count;i++)
    {
        fscan(i,fo);
        if(_stricmp(str,rt[i].lastname)>0||_stricmp(str,rt[i].lastname)<0){
                print1(i);}
        }
            fclose(fo);
        fo=fopen("Delete.txt","w");
        for(i=0;i<count;i++){
        if(_stricmp(str,rt[i].lastname)>0||_stricmp(str,rt[i].lastname)<0){
            fprint(i,fo);
        }
        }
        count=count-1;
        fclose(fo);
        remove("Database.txt"); rename("Delete.txt","Database.txt");
        fo=fopen("Rezultat.txt","a");
        fprintf(fo,"\nЗаписи після видалення\n");
        for(i=0;i<count;i++){
        if(_stricmp(str,rt[i].lastname)>0||_stricmp(str,rt[i].lastname)<0){
            fprint(i,fo);
        }}
        fclose(fo);
        system("pause");
        system("cls");
        break;

виконується з помилками.... я розумію що потрібно міняти значення змінних count, start,end i basic, просто не получається це зробити...

23

(5 відповідей, залишених у C++)

Доброго дня! Підкажіть як зробити так, щоб можна було вводити дані(на початок/в кінець) і видаляти записи з структури декілька разів... ніяк це не получається *WALL*  *WALL*  *WALL* 

#include<locale.h>
#include<stdio.h>
#include<conio.h>
#include<fstream>
#include <memory.h> 
#include<iostream>
#include<string.h>
#include<windows.h>
#define r 100
#define STUD struct Zodiak
#define SSTUD sizeof(struct Zodiak)
struct Zodiak
{
    char lastname[15];
    char firstname[15];
    int date[3];
    char znak[10];
    char stat[8];
    char adresa[30];
};
Zodiak rt[r];

//Function;
void print(int i);
void fprint(int i,FILE *fo);
void fscan(int i,FILE *fo);
void print1(int i);

int main(void){
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    FILE *fo;
    int i,j,start=0,end=0,basic=0,count=0,tmp;
    char str[15];
    setlocale(0,"");
    char eoj;
    for(eoj=0;!eoj;)
    {
    printf("1 – Створити БД 'New Base' і додати записи\n"); 
    printf("2 – Відкрити існуючу БД\n"); 
    printf("3 – Добавити записи(початок, кінець) \n");     
    printf("4 – Показати все\n");     
    printf("5 – Видалення\n");   
    printf("6 – Сортування по даті народження\n");
    printf("7– Жінки водолії\n");
    printf("8– Список знаків зодіаку стихії Земля(Telez,Diva,Kozerig)\n");
    printf("9– Список адрес, де проживають чоловіки народжені у травні\n");
    printf("0 – Вихiд\n");     
        int choose;
    printf("Введiть >  ");     
    scanf("%d",&choose);
    switch(choose) { 
    case 1:system("cls");
          printf("Скiльки записiв ви бажаєте добавити?->");
          scanf("%d",&basic);
          for(i=0;i<basic;i++)
        {
            print(i);system("cls");
        }
         fo=fopen("Database.txt","w");
         for(i=0;i<basic;i++){
             fprint(i,fo);
            }
            fclose(fo);
            count=basic+start+end;
          break;
      case 2:system("cls");
          number1:printf("Скільки записів ви хочете використати?->");
          scanf("%d",&basic);
        fo=fopen("Base.txt","r");
        for(i=0;i<basic;i++)
        { fscan(i,fo); }
        fclose(fo);
        fo=fopen("Database.txt","w");
        for(i=0;i<basic;i++)
        {fprint(i,fo);}
        fclose(fo);
        if(basic>27){printf("\nПомилка! У базі даних тільки 27 записів.\n");
        goto number1;}
        else {printf("\nЗчитано %d записів\n",basic); count=basic+start+end;}
        system("pause");
        system("cls");
          break;
      case 3:system("cls");
          for(;;)
            {
                printf("\n1.Початок \n2.Кiнець\n0.Exit\n");
                int c;
                scanf("%d",&c);
                switch (c)
                {
                case 1:
            printf("Скiльки записiв ви бажаєте добавити?->");
            scanf("%d",&start);
            fo=fopen("Add.txt","w");
            for(i=0;i<start;i++){
                print(i);
                fprint(i,fo);}
            fclose(fo);
            fo=fopen("Database.txt","r");
            for(i=0;i<basic+end;i++)
    {
        fscan(i,fo);
            }
            fclose(fo);
            fo=fopen("Add.txt","a");
            for(i=0;i<basic+end;i++){
                fprint(i,fo);
                }
        fclose(fo);
        count=basic+start+end;
        remove("Database.txt"); rename("Add.txt","Database.txt");
        system("cls");
        break;
        case 2:
        printf("Скiльки записiв ви бажаєте добавити?->");
        scanf("%d",&end);
            for(int i=0;i<end;i++)
            {
                print(i);
            }
            fo=fopen("Database.txt","a");
            for(i=0;i<end;i++){
                fprint(i,fo);
    }
            fclose(fo);
            count=basic+start+end;
            break;
                default:printf("!ooooooooog!");
                break;
                }
        if(c==0) break;
    }system("cls");
        break;
      case 4:
        fo=fopen("Database.txt","r");
        for(i=0;i<count;i++)
        {
            fscan(i,fo);
        }
            fclose(fo);
        for(i=0;i<count;i++)
        {
            print1(i);
    }
        fo=fopen("Rezultat.txt","a");
        fprintf(fo,"\nВсі записи\n");
        for(i=0;i<count;i++)
            {
                fprint(i,fo);
            }
            fclose(fo);
            system("pause");
            system("cls");
          break;
      case 5:printf("Введiть прiзвище потрiбної людини: "); scanf("%s",&str);
        fo=fopen("Database.txt","r");
        for(i=0;i<count;i++)
    {
        fscan(i,fo);
        if(_stricmp(str,rt[i].lastname)>0||_stricmp(str,rt[i].lastname)<0){
                print1(i);}
        }
            fclose(fo);
        fo=fopen("Delete.txt","w");
        for(i=0;i<count;i++){
        if(_stricmp(str,rt[i].lastname)>0||_stricmp(str,rt[i].lastname)<0){
            fprint(i,fo);
        }
        }
        count=count-1;
        fclose(fo);
        remove("Database.txt"); rename("Delete.txt","Database.txt");
        fo=fopen("Rezultat.txt","a");
        fprintf(fo,"\nЗаписи після видалення\n");
        for(i=0;i<count;i++){
        if(_stricmp(str,rt[i].lastname)>0||_stricmp(str,rt[i].lastname)<0){
            fprint(i,fo);
        }}
        fclose(fo);
        system("pause");
        system("cls");
        break;
      case 6:system("cls");
          fo=fopen("Database.txt","r");
            for(i=0;i<count;i++)
    {
        fscan(i,fo);
        }
            fclose(fo);
        for(tmp=0;tmp<count-1;tmp++)
            for(i=0;i<count-1-tmp;i++)
        {
                if(rt[i].date[2]<rt[i+1].date[2])
                {
                    rt[count]=rt[i];
                    rt[i]=rt[i+1];
                    rt[i+1]=rt[count];
                }
                if(rt[i].date[2]==rt[i+1].date[2])
                {if(rt[i].date[1]<rt[i+1].date[1])
                {
                    rt[count]=rt[i];
                    rt[i]=rt[i+1];
                    rt[i+1]=rt[count];
                }
                if(rt[i].date[1]==rt[i+1].date[1])
                    if(rt[i].date[0]<rt[i+1].date[0]){
                        rt[count]=rt[i];
                        rt[i]=rt[i+1];
                        rt[i+1]=rt[count];}
                }
                }
            printf("\nСортування завершено успішно!\n");
            fo=fopen("Rezultat.txt","a");
            fprintf(fo,"\nЗаписи після сортування\n");
            for(i=0;i<count;i++)
            {
                fprint(i,fo);
            }
            fclose(fo);
            printf("\nЗаписи після сортування\n");
            for(int i=0;i<count;i++)
        { print1(i);}
            system("pause");
            system("cls");
          break;
      case 7:system("cls");
          fo=fopen("Database.txt","r");
            for(i=0;i<count;i++)
            {
                fscan(i,fo);
            }
            fclose(fo);
            printf("\nЖінки Водолії\n");
            for(int i=0;i<count;i++)
            {
                if((_stricmp("Водолій",rt[i].znak)==0)&&(_stricmp("Ж",rt[i].stat)==0)){
                    print1(i);}
            }
            fo=fopen("Rezultat.txt","a");
            fprintf(fo,"\nЖінки-водолії\n");
            for(int i=0;i<count;i++)
            {
            if((_stricmp("Водолій",rt[i].znak)==0)&&(_stricmp("Ж",rt[i].stat)==0)){
                fprint(i,fo);
            }}
            fclose(fo);
            system("pause");
            system("cls");
          break;
      case 8:system("cls");
          fo=fopen("Database.txt","r");
            for(i=0;i<count;i++)
    {
        fscan(i,fo);
        }
            fclose(fo);
            printf("\nЗнаки зодіаку стихії Земля\n");
        for(int i=0;i<count;i++){
        if((_stricmp("Козеріг",rt[i].znak)==0)||(_stricmp("Телець",rt[i].znak)==0)||(_stricmp("Діва",rt[i].znak)==0)){
            print1(i);}
        }
        fo=fopen("Rezultat.txt","a");
        fprintf(fo,"\nЗнаки зодіаку стихії Земля\n");
            for(int i=0;i<count;i++)
            {
            if((_stricmp("Козеріг",rt[i].znak)==0)||(_stricmp("Телець",rt[i].znak)==0)||(_stricmp("Діва",rt[i].znak)==0)){
                fprint(i,fo);
            }}
            fclose(fo);
            system("pause");
            system("cls");
          break;
      case 9:system("cls");
          fo=fopen("Database.txt","r");
            for(i=0;i<count;i++)
    {
        fscan(i,fo);
        }
        fclose(fo); 
        printf("\nЧоловіки, народжені у травні\n");
        for(int i=0;i<count;i++){
        if((_stricmp("Ч",rt[i].stat)==0)&&(rt[i].date[1]==5)){
        printf("|%10s |",rt[i].lastname);
        printf("%10s |",rt[i].firstname);
        printf("%10s |\n",rt[i].adresa);}
        }
        fo=fopen("Rezultat.txt","a");
        fprintf(fo,"\nЧоловіки, народжені у травні\n");
        for(int i=0;i<count;i++){
        if((_stricmp("Ч",rt[i].stat)==0)&&(rt[i].date[1]==5)){
            fprint(i,fo);
            }}
            fclose(fo);
            system("pause");
            system("cls");
          break;
default: printf("\nПомилка!! Зробіть правильний вибір(1-9)\n"); 
                 break; 
    }
    if (choose) {       
        getch();}
    if(choose==0)break;
}
return 0; }

void print(int i)
{
    printf("Прiзвище: "); scanf("%s",rt[i].lastname);
    printf("Iм`я: ");scanf("%s",rt[i].firstname); 
    door:printf("Введiть дату народження(ДД ММ РРРР): ");
    for(int j=0;j<3;j++){
    scanf("%d",&(rt[i].date[j]));}
    if((rt[i].date[0]>31)||(rt[i].date[0]<1)||(rt[i].date[1]>12)||(rt[i].date[1]<1)||(rt[i].date[2]>2016)||(rt[i].date[2]<1945)){
    printf("Некоректно введена дата!!!\n");
    goto door;}
    printf("Знак зодiаку: "); scanf("%s",rt[i].znak);
    printf("Стать(Ч,Ж): "); scanf("%s",rt[i].stat);
    printf("Адреса: "); scanf("%s",rt[i].adresa);
}

void fprint(int i,FILE *fo)
{
    fprintf(fo,"%s ",rt[i].lastname);
    fprintf(fo,"%s ",rt[i].firstname);
    for(int j=0;j<3;j++){
    fprintf(fo,"%d ",rt[i].date[j]);}
    fprintf(fo,"%s ",rt[i].znak);
    fprintf(fo,"%s ",rt[i].stat);
    fprintf(fo,"%s \n",rt[i].adresa);
}

void fscan(int i,FILE *fo)
{
    fscanf(fo,"%s ",rt[i].lastname);
    fscanf(fo,"%s ",rt[i].firstname); 
    for(int j=0;j<3;j++){
    fscanf(fo,"%d ",&(rt[i].date[j]));}
    fscanf(fo,"%s ",rt[i].znak);
    fscanf(fo,"%s ",rt[i].stat);
    fscanf(fo,"%s ",rt[i].adresa);
}

void print1(int i)
{
    printf("|%10s |",rt[i].lastname);
    printf("%10s |",rt[i].firstname);
    for(int j=0;j<3;j++){
    printf("%1d   ",rt[i].date[j]);}
    printf("|%9s |",rt[i].znak);
    printf("%6s |",rt[i].stat);
    printf("%10s |\n",rt[i].adresa);
}

24

(4 відповідей, залишених у C++)

ви можете допомогти написати функцію для сортування?
функції для читання\виведення я напишу сам..



ВСІМ ДЯКУЮ!!! ВЖЕ ЗРОБИВ САМ!

25

(4 відповідей, залишених у C++)

це я просто пробував...як це правильно записати?
тут я просто сортував з доданими на початок і кінець записами...відповідно 1 на початок і 1 кінець.... а ще 2 записані у початковому файлі...
короче там не 4 а так в мене rt[r+m+k],

26

(4 відповідей, залишених у C++)

Підкажіть будь ласка що в моєму коді не так...Програма працює, але не можу виконати сортування по даті, а саме цей блок

    case 5: fm=fopen("All.txt","r");
        for(i=0;i<r+m+k;i++)
    {
        fscanf(fm,"%s ",rt[i].lastname);
        fscanf(fm,"%s ",rt[i].firstname); 
        for(j=0;j<3;j++){
        fscanf(fm,"%d ",&(rt[i].date[j]));
        }
        fscanf(fm,"%s ",rt[i].znak);
        fscanf(fm,"%s ",rt[i].stat);
        fscanf(fm,"%s ",rt[i].adresa);
        }

        for(i=0;i<r+m+k;i++)
        {
            for(j=0;j<3;j++)
            {
                if(rt[i].date[2]>rt[i+1].date[2])
                {
                    rt[4]=rt[i];
                    rt[i]=rt[i+1];
                    rt[i+1]=rt[4];
                }
                if(rt[i].date[2]==rt[i+1].date[2])
                {if(rt[i].date[1]>rt[i+1].date[1])
                {
                    rt[4]=rt[i];
                    rt[i]=rt[i+1];
                    rt[i+1]=rt[4];
                }
                if(rt[i].date[1]==rt[i+1].date[1])
                {
                    if(rt[i].date[0]>rt[i+1].date[0]){
                        rt[4]=rt[i];
                        rt[i]=rt[i+1];
                        rt[i+1]=rt[4];}
                }
                }
            }
        }
            for(i=0;i<r+m+k;i++)
        {
        printf("%s ",rt[i].lastname);
        printf("%s ",rt[i].firstname);
        for(j=0;j<3;j++){
            printf("%d ",rt[i].date[j]);
        }
        printf("%s ",rt[i].znak);
        printf("%s ",rt[i].stat);
        printf("%s\n",rt[i].adresa);
    }
        fclose(fm);
          break;

Ось ціла програма...

#include<locale.h>
#include<stdio.h>
#include<conio.h>
#include<fstream>
#include <memory.h> 
#include<iostream>
#include<string.h>
#define r 2
#define STUD struct Zodiak
#define SSTUD sizeof(struct Zodiak)
struct Zodiak
{
    char lastname[10];
    char firstname[10];
    int date[3];
    char znak[10];
    char stat[8];
    char adresa[30];
};
Zodiak rt[r];
void del_item(int);
int n=0,d;
int main(void){
    FILE *fo, *fm, *fp;
    int i,j,m,k,count,tmp,tmp1,tmp2;
    char str[10];
    setlocale(0,"");
    for(;;)
    {
    printf("1 – Створити файл і добавити в нього записи\n");   
    printf("11 – Переглянути початкові записи\n");
    printf("2 – Добавити(початок, кінець) \n");     
    printf("3 – Показати все\n");     
    printf("4 – Видалення\n");   
    printf("12 – Показати вмiст пiсля видалення\n");
    printf("5 – Сортування по даті народження\n");
    printf("6– Жінки водолії\n");
    printf("7– Список знаків зодіаку стихії Земля(Telez,Diva,Kozerig)\n");
    printf("8– Список адрес, де проживають чоловіки народжені у травні\n");
    printf("0 – Вихiд\n");     
        int choose;
    printf("Введiть >  ");     
    scanf("%d",&choose);
    switch(choose) { 
      case 1:fo=fopen("One.txt","w");
            for(i=0;i<r;i++)
            {
                printf("Введiть прiзвище"); scanf("%s",rt[i].lastname);
                printf("Ведiть iм`я");scanf("%s",rt[i].firstname); 
                printf("Введiть дату народження ");
                for(j=0;j<3;j++){
                    scanf("%d",&(rt[i].date[j]));
                }
                printf("Знак зодіаку"); scanf("%s",rt[i].znak);
                printf("Стать"); scanf("%s",rt[i].stat);
                printf("Введiть адресу"); scanf("%s",rt[i].adresa);
            }
            for(i=0;i<r;i++){
            fprintf(fo,"%s ",rt[i].lastname);
            fprintf(fo,"%s ",rt[i].firstname);
            for(j=0;j<3;j++){
                fprintf(fo,"%d ",rt[i].date[j]);}
            fprintf(fo,"%s ",rt[i].znak);
            fprintf(fo,"%s ",rt[i].stat);
            fprintf(fo,"%s ",rt[i].adresa);
    }
            fclose(fo);
          break;
    case 11:
        fo=fopen("One.txt","r");
        for(i=0;i<r;i++)
            {
                fscanf(fo,"%s ",rt[i].lastname);
                fscanf(fo,"%s ",rt[i].firstname); 
                for(j=0;j<3;j++){
                    fscanf(fo,"%d ",&(rt[i].date[j]));
                }
                fscanf(fo,"%s ",rt[i].znak);
                fscanf(fo,"%s ",rt[i].stat);
                fscanf(fo,"%s ",rt[i].adresa);
            }
        for(i=0;i<r;i++)
        {
        printf("%s ",rt[i].lastname);
        printf("%s ",rt[i].firstname);
        for(j=0;j<3;j++){
            printf("%d ",rt[i].date[j]);
        }
        printf("%s ",rt[i].znak);
        printf("%s ",rt[i].stat);
        printf("%s\n",rt[i].adresa);
    }
        fclose(fo);
          break;
    case 2:
        for(;;)
            {
                printf("\n1.Початок \n2.Кiнець\n");
                int c;
                scanf("%d",&c);
                switch (c)
                {
                case 1:
                    fm=fopen("All.txt","w");
            printf("Скiльки записiв ви бажаєте добавити?->");
            scanf("%d",&m);
            for(i=0;i<m;i++){
            printf("Введiть прiзвище"); scanf("%s",rt[i].lastname);
                printf("Ведiть iм`я");scanf("%s",rt[i].firstname); 
                printf("Введiть дату народження ");
                for(j=0;j<3;j++){
                    scanf("%d",&(rt[i].date[j]));
                }
                printf("Знак зодіаку"); scanf("%s",rt[i].znak);
                printf("Стать"); scanf("%s",rt[i].stat);
                printf("Введiть адресу"); scanf("%s",rt[i].adresa);
            }
            for(i=0;i<m;i++){
            fprintf(fm,"%s ",rt[i].lastname);
            fprintf(fm,"%s ",rt[i].firstname);
            for(j=0;j<3;j++){
                fprintf(fm,"%d ",rt[i].date[j]);}
            fprintf(fm,"%s ",rt[i].znak);
            fprintf(fm,"%s ",rt[i].stat);
            fprintf(fm,"%s ",rt[i].adresa);
    }
            fo=fopen("One.txt","r");
            for(i=0;i<r;i++)
    {
        fscanf(fo,"%s ",rt[i].lastname);
                fscanf(fo,"%s ",rt[i].firstname); 
                for(j=0;j<3;j++){
                    fscanf(fo,"%d ",&(rt[i].date[j]));
                }
                fscanf(fo,"%s ",rt[i].znak);
                fscanf(fo,"%s ",rt[i].stat);
                fscanf(fo,"%s ",rt[i].adresa);
            }
            for(i=0;i<r;i++){
            fprintf(fm,"%s ",rt[i].lastname);
            fprintf(fm,"%s ",rt[i].firstname);
            for(j=0;j<3;j++){
                fprintf(fm,"%d ",rt[i].date[j]);}
            fprintf(fm,"%s ",rt[i].znak);
            fprintf(fm,"%s ",rt[i].stat);
            fprintf(fm,"%s ",rt[i].adresa);
                }
            fclose(fo);fclose(fm);
            break;
                case 2:
fm=fopen("All.txt","a");
printf("Скiльки записiв ви бажаєте добавити?->");
            scanf("%d",&k);
            for(int i=0;i<k;i++)
            {printf("Введiть прiзвище"); scanf("%s",rt[i].lastname);
                printf("Ведiть iм`я");scanf("%s",rt[i].firstname); 
                printf("Введiть дату народження ");
                for(j=0;j<3;j++){
                    scanf("%d",&(rt[i].date[j]));
                }
                printf("Знак зодіаку"); scanf("%s",rt[i].znak);
                printf("Стать"); scanf("%s",rt[i].stat);
                printf("Введiть адресу"); scanf("%s",rt[i].adresa);
            }
            for(i=0;i<k;i++){
            fprintf(fm,"%s ",rt[i].lastname);
            fprintf(fm,"%s ",rt[i].firstname);
            for(j=0;j<3;j++){
                fprintf(fm,"%d ",rt[i].date[j]);}
            fprintf(fm,"%s ",rt[i].znak);
            fprintf(fm,"%s ",rt[i].stat);
            fprintf(fm,"%s ",rt[i].adresa);
    }
            break;
                default:printf("Other error\n");
                    break;
                }
                printf("\n...press any key...\n");
        if(c==0) break;
    }
            fclose(fm);
            count=r+m+k;
        break;
      case 3:fm=fopen("All.txt","r");
        for(i=0;i<r+m+k;i++)
    {
        fscanf(fm,"%s ",rt[i].lastname);
                fscanf(fm,"%s ",rt[i].firstname); 
                for(j=0;j<3;j++){
                    fscanf(fm,"%d ",&(rt[i].date[j]));
                }
                fscanf(fm,"%s ",rt[i].znak);
                fscanf(fm,"%s ",rt[i].stat);
                fscanf(fm,"%s ",rt[i].adresa);
            }
        for(i=0;i<r+m+k;i++)
        {
        printf("%s ",rt[i].lastname);
        printf("%s ",rt[i].firstname);
        for(j=0;j<3;j++){
            printf("%d ",rt[i].date[j]);
        }
        printf("%s ",rt[i].znak);
        printf("%s ",rt[i].stat);
        printf("%s\n",rt[i].adresa);
    }
        fclose(fm);
          break;
    case 4:fm=fopen("All.txt","r");
        printf("Введiть прiзвище потрiбної людини: "); scanf("%s",&str);
        for(i=0;i<r+m+k;i++)
    {
        fscanf(fm,"%s ",rt[i].lastname);
                fscanf(fm,"%s ",rt[i].firstname); 
                for(j=0;j<3;j++){
                    fscanf(fm,"%d ",&(rt[i].date[j]));
                }
                fscanf(fm,"%s ",rt[i].znak);
                fscanf(fm,"%s ",rt[i].stat);
                fscanf(fm,"%s ",rt[i].adresa);
        }
        fp=fopen("Finish.txt","w");
        for(i=0;i<r+m+k;i++){
            if(_stricmp(str,rt[i].lastname)>0||_stricmp(str,rt[i].lastname)<0){
                    fprintf(fp,"%s ",rt[i].lastname);
                    fprintf(fp,"%s ",rt[i].firstname);
            for(j=0;j<3;j++){
                fprintf(fp,"%d ",rt[i].date[j]);}
            fprintf(fp,"%s ",rt[i].znak);
            fprintf(fp,"%s ",rt[i].stat);
            fprintf(fp,"%s ",rt[i].adresa);
                }
                }
        fclose(fm); fclose(fp);
          break;
    case 12:fp=fopen("Finish.txt","r");
        for(i=0;i<r+m+k-1;i++)
    {
        fscanf(fp,"%s ",rt[i].lastname);
                fscanf(fp,"%s ",rt[i].firstname); 
                for(j=0;j<3;j++){
                    fscanf(fp,"%d ",&(rt[i].date[j]));
                }
                fscanf(fp,"%s ",rt[i].znak);
                fscanf(fp,"%s ",rt[i].stat);
                fscanf(fp,"%s ",rt[i].adresa);
            }
        for(i=0;i<r+m+k-1;i++)
        {
        printf("%s ",rt[i].lastname);
        printf("%s ",rt[i].firstname);
        for(j=0;j<3;j++){
            printf("%d ",rt[i].date[j]);
        }
        printf("%s ",rt[i].znak);
        printf("%s ",rt[i].stat);
        printf("%s\n",rt[i].adresa);
    }
        fclose(fp);
        break;
    case 5: fm=fopen("All.txt","r");
        for(i=0;i<r+m+k;i++)
    {
        fscanf(fm,"%s ",rt[i].lastname);
        fscanf(fm,"%s ",rt[i].firstname); 
        for(j=0;j<3;j++){
        fscanf(fm,"%d ",&(rt[i].date[j]));
        }
        fscanf(fm,"%s ",rt[i].znak);
        fscanf(fm,"%s ",rt[i].stat);
        fscanf(fm,"%s ",rt[i].adresa);
        }

        for(i=0;i<r+m+k;i++)
        {
            for(j=0;j<3;j++)
            {
                if(rt[i].date[2]>rt[i+1].date[2])
                {
                    rt[4]=rt[i];
                    rt[i]=rt[i+1];
                    rt[i+1]=rt[4];
                }
                if(rt[i].date[2]==rt[i+1].date[2])
                {if(rt[i].date[1]>rt[i+1].date[1])
                {
                    rt[4]=rt[i];
                    rt[i]=rt[i+1];
                    rt[i+1]=rt[4];
                }
                if(rt[i].date[1]==rt[i+1].date[1])
                {
                    if(rt[i].date[0]>rt[i+1].date[0]){
                        rt[4]=rt[i];
                        rt[i]=rt[i+1];
                        rt[i+1]=rt[4];}
                }
                }
            }
        }
            for(i=0;i<r+m+k;i++)
        {
        printf("%s ",rt[i].lastname);
        printf("%s ",rt[i].firstname);
        for(j=0;j<3;j++){
            printf("%d ",rt[i].date[j]);
        }
        printf("%s ",rt[i].znak);
        printf("%s ",rt[i].stat);
        printf("%s\n",rt[i].adresa);
    }
        fclose(fm);
          break;
    case 6:fm=fopen("All.txt","r");
        for(i=0;i<r+m+k;i++)
    {
        fscanf(fm,"%s ",rt[i].lastname);
        fscanf(fm,"%s ",rt[i].firstname); 
        for(j=0;j<3;j++){
        fscanf(fm,"%d ",&(rt[i].date[j]));
        }
        fscanf(fm,"%s ",rt[i].znak);
        fscanf(fm,"%s ",rt[i].stat);
        fscanf(fm,"%s ",rt[i].adresa);
        if((_stricmp("Vodoliy",rt[i].znak)==0)&&(_stricmp("Woman",rt[i].stat)==0)){
        printf("%s ",rt[i].lastname);
        printf("%s ",rt[i].firstname);
        for(j=0;j<3;j++){
            printf("%d ",rt[i].date[j]);
        }
        printf("%s ",rt[i].znak);
        printf("%s ",rt[i].stat);
        printf("%s\n",rt[i].adresa);}
        }
        fclose(fm);
          break;
    case 7:fm=fopen("All.txt","r");
        for(i=0;i<r+m+k;i++)
    {
        fscanf(fm,"%s ",rt[i].lastname);
        fscanf(fm,"%s ",rt[i].firstname); 
        for(j=0;j<3;j++){
        fscanf(fm,"%d ",&(rt[i].date[j]));
        }
        fscanf(fm,"%s ",rt[i].znak);
        fscanf(fm,"%s ",rt[i].stat);
        fscanf(fm,"%s ",rt[i].adresa);
        if((_stricmp("Kozerig",rt[i].znak)==0)||(_stricmp("Telez",rt[i].znak)==0)||(_stricmp("Diva",rt[i].znak)==0)){
        printf("%s ",rt[i].lastname);
        printf("%s ",rt[i].firstname);
        for(j=0;j<3;j++){
            printf("%d ",rt[i].date[j]);
        }
        printf("%s ",rt[i].znak);
        printf("%s ",rt[i].stat);
        printf("%s\n",rt[i].adresa);}
        }
        fclose(fm);
          break;
    case 8:fm=fopen("All.txt","r");
        for(i=0;i<r+m+k;i++)
    {
        fscanf(fm,"%s ",rt[i].lastname);
        fscanf(fm,"%s ",rt[i].firstname); 
        for(j=0;j<3;j++){
        fscanf(fm,"%d ",&(rt[i].date[j]));
        }
        fscanf(fm,"%s ",rt[i].znak);
        fscanf(fm,"%s ",rt[i].stat);
        fscanf(fm,"%s ",rt[i].adresa);
        }
        for(i=0;i<r+m+k;i++)
        if((_stricmp("Man",rt[i].stat)==0)&&(rt[i].date[1]==5)){
        printf("%s ",rt[i].lastname);
        printf("%s ",rt[i].firstname);
        printf("%s\n",rt[i].adresa);
        }
        fclose(fm);
          break;
default: printf("Неправильна операція\n"); 
                 break; 
    }
    printf("\n...press any key...\n");
        if(choose==0) break;
    }
    _getch();
return 0; }

27

(2 відповідей, залишених у C++)

скільки це буде коштувати?

28

(2 відповідей, залишених у C++)

Підготувати дані, що містять інформацію про Знаки зодіаку. Дані оформити у вигляді запису, що містить наступні поля: Прізвище ім’я, Дата народження, Знак зодіаку, Стать, Адреса. Кількість записів довільна.  Створити програму запису підготовлених даних до зовнішнього файлу і програму обробки цього зовнішнього файлу, що виконує наступні операції:
•Виводить на екран введені дані;
•Додає n записів в початок або кінець файлу;
•Видаляє всі дані про людину, прізвище якої задано користувачем, і виводить на екран оновлений вміст файлу;
•Сортує людей за датами народження від наймолодшого до найстаршого;
•Список  жінок водоліїв;
•Список знаків зодіаку стихії Земля;
•Список  адрес, де проживають чоловіки народжені в травні.

29

(0 відповідей, залишених у C++)

Доброго дня) Допоможіть будь ласка зробити цю задачу так, щоб:
–    вхідні дані (поля структури) вводилися з клавіатури і після введення записувалися у файл (окрема функція);
–    програма мала можливість дописувати  дані у файл (окрема функція);
–    дані з файлу виводились на екран (окрема функція);
–    результати виконання другого підпункту виводились на екран і у файл.

#include <stdio.h> 
#include <conio.h> 
#include <locale.h>
#define n 3
void main() {  
    setlocale(0,"");
    int i,f=0,number; 
    struct ITRN
    {    char first[20];          
    char final[20];          
    int num; 
    int distance;
    } 
    rt[n];      
    for(i=0;i<n;i++) 
     { 
printf("\nВведiть назву початкового пункту маршруту:");        
scanf("%s",&rt[i].first);        
printf("Введiть назву кiнцевого пункту маршруту:");       
scanf("%s",&rt[i].final);        
printf("Введiть номер маршруту:");        
scanf("%d",&rt[i].num); 
printf("\nВведiть вiдстань(в кiлометрах):");      
scanf("%d",&rt[i].distance); 
    }
    printf("Введiть номер потрiбного маршруту:");
    scanf("%d",&number);

    for(i=0;i<n;i++) 
    {  if(rt[i].num==number) 
       { f++; 
        printf("\nПоч.пункт маршруту\tКiнцевий пункт\tНомер маршруту\tВiдстань");
          printf("\n%13s\t%15s\t\t   %3i\t\t %3iкм ", 
            rt[i].first,rt[i].final,rt[i].num,rt[i].distance); 
       }
    }
    if(f==0) printf("\n Помилка! Таких маршрутiв немає!"); 
     getch(); 
}

30

(13 відповідей, залишених у C++)

koala написав:

А ще:
- вирівняйте код;
- дайте змінним зрозуміліші назви;
- середнє зробіть float чи double, бо середнє там насправді (12+17+29)/3=19.333333, а ви ризикуєте підхопити зайві значення (чи пропустити потрібні).

добре..) *THUMBSUP*

31

(13 відповідей, залишених у C++)

koala написав:

Але порівнюєте ви з 19 тільки в останній ітерації, до того ви порівнюєте з 4 і 9.

вже зрозумів....блін просто ж треба було в іншому циклі вирахувати середнє... *WALL*  *WALL*
дуже дякую..) *DRINK*

32

(13 відповідей, залишених у C++)

чому воно не виводить цього?

if(aks[i].years<ser1){
         printf("\n%13s\t %3i\t %3icm ", 
            aks[i].fio,aks[i].years,aks[i].hight);  
    }

середнє я і у своєму прикладі виводив.."19"

33

(13 відповідей, залишених у C++)

koala написав:

У мене таке враження, що вам хтось дав пару прикладів, але не пояснив, як вони працюють, і ви зараз намагаєтеся хаотично змішати рядки з цих прикладів в надії, що воно запрацює "як треба". Звісно, це може бути помилкове враження, але поки що воно саме таке.
Давайте я вам підкажу. Додайте у ваш блок вивід ще декількох змінних:

for(i=0;i<n;i++) 
    {
printf("Початок циклу, i=%d ", i);
m+=aks[i].years;
printf("m=%d ", m);
ser1=m/n;
printf("ser1=%d ", ser1);
printf("%d %s %d\n", aks[i].years, (aks[i].years<ser1?"менше за":"не менше за") , ser1);
if(aks[i].years<ser1){
         printf("\n%13s\t %3i\t %3icm ", 
            aks[i].fio,aks[i].years,aks[i].hight);  
    }
printf("ser1=%d\n", ser1);
}

і, якщо ще не зрозумієте, скопіюйте результат сюди.

Ось результат...
Введiть прiзвище:vovk
Введiть вiк:12

Введiть зрiст:167

Введiть прiзвище:medvid
Введiть вiк:17

Введiть зрiст:189

Введiть прiзвище:boss
Введiть вiк:29

Введiть зрiст:177

         vovk     12     167cm
       medvid     17     189cm
         boss     29     177cm
Прiзвище найвищого:medvid
Початок циклу, i=0 m=12 ser1=4 12 не менше за 4
ser1=4
Початок циклу, i=1 m=29 ser1=9 17 не менше за 9
ser1=9
Початок циклу, i=2 m=58 ser1=19 29 не менше за 19
ser1=19

34

(13 відповідей, залишених у C++)

Введiть прiзвище:vovk
Введiть вiк:12

Введiть зрiст:167

Введiть прiзвище:medvid
Введiть вiк:17

Введiть зрiст:189

Введiть прiзвище:boss
Введiть вiк:29

Введiть зрiст:177

         vovk     12     167cm
       medvid     17     189cm
         boss     29     177cm
Прiзвище найвищого:medvid

(m=58
ser1=19) це я просто вивів середнє..

35

(13 відповідей, залишених у C++)

я запускав це в VisualBasic12...виводить все окрім цього блоку...

for(i=0;i<n;i++) 
    {
m+=aks[i].years;
ser1=m/n;
if(aks[i].years<ser1){
         printf("\n%13s\t %3i\t %3icm ", 
            aks[i].fio,aks[i].years,aks[i].hight);  
    }
}

36

(13 відповідей, залишених у C++)

koala написав:

Там опущене речення "знайти середній зріст і середній вік" - оскільки їх треба не виводити, а використати для вашого завдання.
Так, середнє кількох величин дорівнює сумі цих величин, поділеній на їхню кількість.

я написав так..але воно не працює...

for(i=0;i<n;i++) 
    {
m+=aks[i].years;
ser1=m/n;
if(aks[i].years<ser1){
         printf("\n%13s\t %3i\t %3icm ", 
            aks[i].fio,aks[i].years,aks[i].hight);  
    }
}

що тут не так..?

37

(13 відповідей, залишених у C++)

Доброго дня..) Допоможіть закінчити задачу....
Є інформація про N членів спортивної секції: прізвище, вік, зріст. Ввести інформацію про кожного. Надрукувати прізвище найвищого. Надрукувати інформацію про тих, чий вік нижче середнього, а зріст вище середнього по секції.
Не можу виконати цю умову..."Надрукувати інформацію про тих, чий вік нижче середнього, а зріст вище середнього по секції." Наведіть будь ласка хоч приклад про зріст...як правильно порівнювати... *WALL*
Ось мій код...

#include <stdio.h> 
#include <conio.h> 
#include <locale.h>
#define n 3
void main() {  
    setlocale(0,"");
    int i,p,f=0,men,max,ser1,m=0,ser2; 
    struct 
    {    char fio[20];                    
    int years; 
    int hight;
    } 
    aks[n];      
    for(i=0;i<n;i++) 
     { 
printf("\nВведiть прiзвище:");        
scanf("%s",&aks[i].fio);              
printf("Введiть вiк:");        
scanf("%d",&aks[i].years); 
printf("\nВведiть зрiст:");      
scanf("%d",&aks[i].hight); 
    }

    for(i=0;i<n;i++) 
    {  
          printf("\n%13s\t %3i\t %3icm ", 
            aks[i].fio,aks[i].years,aks[i].hight); 
       }
    max=aks[0].hight;
    for(i=0;i<n;i++) 
    {  
        if(aks[i].hight>max)
        {
            p=i;
            max=aks[i].hight;
        }
    }
    printf("\nПрiзвище найвищого:%s\n",aks[p].fio);





     _getch(); 
}

38

(6 відповідей, залишених у C++)

P.Y. написав:

Технічно, можна й так, але в такому виділенні функції особливого сенсу нема. Я мав на увазі зробити функцію лише з оцього:

if (x>25) y=1+x*x;  else 
 if (x<=25&&x>8) y=2+x*x; else
        if(x<=8&&x>2) y=3+x*x;
        else y=4+x*x;

Замість y= функція використовуватиме return, а замість цього фрагменту в основній програмі буде

y=f(x);

я попробую..) всеодно дякую.) *THUMBSUP*

39

(6 відповідей, залишених у C++)

P.Y. написав:

Очевидно, в іншу функцію треба винести ту частину, де на основі x обчислюється y — тоді x буде параметром такої функції, а значення y повертатиметься через return.

вже зробив..)

#include <locale.h>
#include <conio.h> 
 
void func(float X0, float Xk, float h)
{
float x,y;
 x=X0; while (x<=Xk) 
 {if (x>25) y=1+x*x;  else 
 if (x<=25&&x>8) y=2+x*x; else
        if(x<=8&&x>2) y=3+x*x;
        else y=4+x*x; 
 printf("\n|  %7.2f |  %7.2f |",x,y); 
    x+=h; 
 } 
 printf("\n-----------------------");
}
 
 
int main() 
{ setlocale(0,"");
float X0,Xk,x,y,h ;
 
printf("Введ1ть дан1:\n");
printf("\nВвед1ть Хпоч,"         "Хк1н, h ...  ");
 
scanf_s("%f %f %f", &X0,&Xk,&h); 
 
printf("\nІнтервал [%3.2f, %3.2f]\n Крок h = %3.2f\n", X0,Xk,h); 
printf("\n----------------------\n|     x    |    y    |"); 
printf("\n|----------|---------|");
 
func(X0, Xk, h);
 
 _getch();
 return 0; }

40

(6 відповідей, залишених у C++)

koala написав:

1. Чим вас функція main не влаштовує?
2. Якщо написати іншу програму, то вона не буде цією програмою. Уточніть, що саме вам потрібно.

Мені потрібно щоб функція main() викликала іншу функцію, яка робить розрахунки...