Перейти к содержанию

Guard

Members
  • Постов

    149
  • Зарегистрирован

  • Посещение

    Никогда

Сообщения, опубликованные Guard

  1. Хех. Smile

    Ну прежде всего это лаба. На работу структур. Поэтому здесь лучшее - враг зачета. Smile

    Если проблему описывать конкретнее, то функция strcmp должна возвращать 0, если строки переданные ей одинаковы. Путем отладки выяснено, что проблема в том, что она не корректно сравнивает элемент структуры(формата char *s) с введенной строкой(аналогичного формата). В чем загвозтка понять не могу. Sad

    P/S/

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

  2. Смотрится. Только вызывает ощущение deja vu:) jino-net.ru yard.ru

    По реализации - советую убрать этот чат(слишком дырявый), по форуму - когда форумов больше чем тем - это наводит на нехорошие мысли, а следовательно посещаемость падает.

  3. Функция sp в приведенном коде не пашет. Почему - непонятно.

    #include <stdio.h>
    #include <conio.h>
    #include <string.h>
    
    #define N 20
    
    struct car{
    	char reg_number[20];
    	char *car_model;
    	int probeg;
    	};
    
    car *D;		// Указатель на ДМ строк таблицы
    int n=0,sz=10;	// кол-во строк и размерность ДМ (глобальные)
    
    void extend(){	// проверка на переполнение ДМ и расширение
    	if (n!=sz) return;
    	sz=sz*2;
    	car *q=new car[sz];
    	for (int i=0;i<sz/2;i++) q=D;
    	delete D;
    	D=q;
    }
    
    void add(){
    	extend();				// не переполнен ли ДМ
    	printf("\nRegistration number:"); scanf("%s",D[n].reg_number);
    	char c[80];
    	gets©;				// читать оставшийся \n из входного потока
    	printf("\nModel of car:"); gets©;
    	D[n].car_model=strdup©;	// копия строки в ДМ
    	printf("\nWay:"); scanf("%d", &D[n].probeg);
    	n++;
    	}
    
    int get_num(){
    	int m;
    	do {
    		printf("\nn="); scanf("%d",&m);
    	} while (m<1 || m>n);
    	return m-1;
    	}
    
    void show(){
    	printf("\n\nN   Registration number\t\tWay\tModel\n");
    	printf("--------------------------------------------------\n");
    	for (int i=0;i<n;i++){
    		printf("%-3d %-20s",i+1,D.reg_number);
    		printf("\t%d\t", D.probeg);
    		printf("%s\n",D.car_model);
    		if((i+1)%20==0) getch();
    		}
    	}
    
    void save(char f[]){
    	FILE *fd=fopen(f,"w");
    	fprintf(fd,"%d\n",n);
    	for (int i=0;i<n;i++){
    		fprintf(fd,"%s\n",D.reg_number);
    		fprintf(fd,"%s",D.car_model);
    		fprintf(fd,"%d\n\n",D.probeg);
    		}
    	fclose(fd);
    	}
    
    void load(char f[]){
    	FILE *fd=fopen(f,"r");
    	if (fd==NULL) return;
    	int m;
    	fscanf(fd,"%d",&m);
    	for (;m!=0;m--,n++){
    		extend();
    		fscanf(fd,"%s",D[n].reg_number);
    		char c[80];
    		fgets(c,80,fd);					// читать "хвост" предыд. строки
    		fgets(c,80,fd);
    		D[n].car_model=strdup©;
    		fscanf(fd,"%d",&D[n].probeg);
    		}
    	fclose(fd);
    	}
    
    void edit(int k){
        printf("\nEnter new values:\n");
    	printf("\nRegistration number:"); scanf("%s",D[k].reg_number);
    	char c[80];
    	gets©;				// читать оставшийся \n из входного потока
    	printf("\nModel of car:"); gets©;
    	D[k].car_model=strdup©;	// копия строки в ДМ
    	printf("\nWay:"); scanf("%d", &D[k].probeg);
    }
    
    void sp(){
      char *s;
      int t=0,p=0;
    	printf("\nEnter model of car: ");
    	gets(s);
    	   for(int i=0; i<n; i++){
    	   if (strcmp(s, D.car_model)==0) t=t+D.probeg;
    	   p=p+1;
    	   }
    	t=t/p;
    
    	printf("\nSrednii probeg = %d", t);
    
    	getch();
    }
    
    void main(){
    int k,i,t;
    D = new car[sz];
    while(1){
    	printf("\n1 - add\n2 - show\n3 - delete\n4 - save\n5 - load\n6 - edit\n7 - Srednii probeg\nwhat to do? ");
    	switch(getch()){
    case '1':	add(); break;
    case '2':	show(); break;
    case '3':	if (n==0) break;
    			k=get_num();
    			for (i=k;i<n-1;i++) D=D[i+1];
    			n--;
    			break;
    case '4':	save("a.txt"); break;
    case '5':	load("a.txt"); break;
    case '6':       if (n==0) break;
    			t=get_num();
    			edit(t); break;
    case '7':	sp(); break;
    case 27:	return;
    		}
    	}
    }
  4. У меня знакомые работают во дворе здания, которое имеет очень узкий проезд между стенами. С трудом разъезжаются две легковые машины. Дорога заканчивается тупиком (как в «Бриллиантовой руке») Вдоль всей этой кишки офисы, соответственно и припаркованные машины. Соответственно, въехал- места нет?? Быстро выгружай высаживай и проваливай... не создавая пробку.

    За долгое время дорога развалилась совсем, и решено было всем "бизнесцентровским колхозом" дорогу заасфальтировать. В добровольно принудительном порядке соответственно.

    Все среди себя договорились что машины парковать не будут, и охраннику сказали что бы всех пришлых гонял.

    И вот в один прекрасный день в кишку въезжает светловолосое насекомое на мерине "S" класса ни разу не старом. Останавливается поперек всей дороги, с понтом закрыла машину и направляется в здание. К ней подошел охранник и вполне корректно сказал, что не стоит машину здесь ставить. Мол, тут дорогу делать будут и сейчас щебень привезут. На что соответственно охранник был торжественно послан. (На что он даже не обиделся). Блондинка была в здании достаточно долго. Но когда она вышла то увидела следующую картину....

    Восемь куч приблизительно по 13 тонн каждая, были насыпаны от ее машины до самого выхода в шахматном порядке (подозреваю что охранник подсуетился) исключая даже мысль о том что отсюда можно выехать. При этом из окон офисов уже свисали истерически ржущие работники.

    Визг блондинки был пронзителен, а фантазия безгранична....

    Судья по излагаемому матом, здесь должны были материализоваться из воздуха "братки" в количестве уж ни как не меньше чем с 2-ой Белорусский фронт....

    А дальше она допустила громадную ошибку.

    Демонстративно достает телефон.

    Звонит.

    При этом давит слезу в вкратце рассказывая суть проблемы....

    И ожидая праведного гнева благоверного (для окружающих) переводит телефон в режим громкой связи... (дабы окружающие да убоялись)

    После небольшой паузы из телефона устало обреченным голосом раздается.....

    "СТОЙ ТАМ! СЕЙЧАС Я ПРИВЕЗУ ТЕБЕ ЛОПАТУ!"

    Люди начинают падать из окон....

    ЗАНАВЕС!

    P/S/

    Текст не мой, первоисточник утерян...

×
×
  • Создать...