int car_module::readdate()
{
	FILE* fpin;
	fpin=fopen("date.txt","r");
	if(fpin==NULL)
	{
		printf("can not open date.txt\n");
		return 1;
	}
	fscanf(fpin,"%d\n",&mac);
	fscanf(fpin,"%d%d\n",&rows,&cols);
	fscanf(fpin,"%lf%lf\n",&speed_rows,&speed_cols);
	sumcar=rows*cols;
	spendcar=0;
	for(int i=0;i<rows*cols;i++)
	{
		speed_location tmp;
		fscanf(fpin,"%d",&tmp.id);
		tmp.idle=judgeposition(tmp.id);
		tmp.id=getid(tmp.id)-1;

		if(tmp.idle==2)sumcar--;
		if(!tmp.idle)spendcar++;

		//突然发现不需要用到rows值计算时间
		//难怪一直找不到问题出在哪
		tmp.time=(tmp.id/cols)/speed_rows+(tmp.id%cols)/speed_cols;
		map_queue.push_back(tmp);
	}
	fclose(fpin);
	countqueue();
	return 0;
}
Ejemplo n.º 2
0
int main(){
	srand (time(NULL));
	int skoka = 7;
	int *ar1 = malloc(sizeof(int)*skoka);
	ar1[0]=3;
	for (int i=1; i<skoka; i++) {
		ar1[i]=ar1[i-1] + (rand() & 63);
	}
	for (int i=0; i<skoka; i++){printf("%i ", ar1[i]);}
	printf("\n");
	printf("Сумма! %i\n", sum(ar1, skoka));
	printf("Сколько экземпляров наибольшего? %i\n", countmax(ar1, skoka));
	int *ar2 = malloc(sizeof(int)*skoka);
	ar2[0]=3;
	for (int i=1; i<7; i++) {
		ar2[i]=ar2[i-1] + (rand() & 63);
	}
	for (int i=0; i<skoka; i++){printf("%i ", ar2[i]);}
	const char *answ;
	switch (compare(ar1,ar2,skoka)){
		case -1: answ = "2-ой больше"; break;
		case 0: answ = "равны"; break;
		case 1: answ = "1-ый больше"; break;
	}
	printf("Равны ли оне?! %s\n", answ);
	printf("Введите, пожалуйста, число:\n");
	int x;
	scanf("%d", &x);
	printf("%i (ячейка ближайшего от серединного деления, [-1 - нет такого числа в 1-м массиве])\n\n", search(ar1, skoka, x));
	char trash;
	scanf("%c", &trash);
	int skoka2 = 30;
	int *ar3 = malloc(sizeof(int)*skoka2);
	for (int i=0; i<skoka2; i++) {
		ar3[i]=(rand() % 4294967296*2);
	}
	for (int i=0; i<skoka2; i++) printf("%u\n", ar3[i]);
	printf("Это то, что было сначала\n\n");
	bitsort(ar3, skoka2);
	for (int i=0; i<skoka2; i++) {printf("%u\n", ar3[i]);}
	printf("А это - то, что насортировалось\n\n");
	
	free(ar1);
	free(ar2);
	free(ar3);
	
	skoka = 30; 
	ar1 = malloc(sizeof(int)*skoka);
	for (int i=0; i<skoka; i++) {
		printf("%3i", i);
	}
	printf("\n");
	for (int i=0; i<skoka; i++) {
		ar1[i]=(rand() & 15)-8;
		printf("%3i", ar1[i]);
	}
	int fr, to, rez;
	getmix(ar1, skoka, &fr, &to, &rez);
	printf("\nСейчас я найду самый выгодный микс! Это: с %i-й ячейки по %i-ю, сумма их - %i\n\n", fr, to, rez);
	
	otnulirovaniye(ar1, skoka);
	printf("Здесь мы видим, как все числа < 0 перешли в левую сторону, > 0 - в правую, а нули встали по-середине: \n");
	for (int i=0; i<skoka; i++) {
		printf("%i ", ar1[i]);
	}
	printf("\n");
	printf("\nСейчас посчитаем, сколько в том массиве разных чисел: %i\n", countdif(ar1, skoka));
	printf("\nА теперь я выведу размер самой длинной очереди подряд идущих чисел: %i\n", countqueue(ar1, skoka));
	return 0;
}