⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ulti.c

📁 是C++的基础
💻 C
📖 第 1 页 / 共 2 页
字号:
#include "Global.h"
#include "MyAssert.h"
#include "Ulti.h"
#include <stdlib.h>
#include <math.h>
#include <stdio.h>
#include <time.h>
void swap(Type* a,Type* b)
{
	Type tmpV;
	assertF(a!=NULL,"in swap,a is NULL");
	assertF(b!=NULL,"in swap,b is NULL");
	
	tmpV=*a;
	*a=*b;
	*b=tmpV;
}

/*swap array data*/
void swapArrData(Type* arr,int pos1,int pos2)
{
	Type tmpData;
	assertF(arr!=NULL,"In swapArrData,arr is NULL\n");
	tmpData=arr[pos1];
	arr[pos1]=arr[pos2];
	arr[pos2]=tmpData;
}

void outputListArrFloat(Type* arr,long startPos,long len,FILE* outputFile)
{
	long i=0;/*iterator num*/
	assertF(len-startPos>0,"in outputListArrFloat len-startPos<=0\n");
	assertF(arr!=NULL,"In outputListArrFloat,arr is NULL\n");
	assertF(outputFile!=NULL,"in outputListArrFloat ,outputFile is NULL\n");
	for(i=startPos;i<len;i++)	
	{
		fprintf(outputFile,"%10.5f ",arr[i]);
		if((i+1)%10==0)
			fprintf(outputFile,"\r\n");
	}
	fprintf(outputFile,"\r\n");
}

extern void outputListArrInt(Type* arr,long startPos,long len,FILE* outputFile)
{
	long i=0;/*iterator num*/
	assertF(len-startPos>0,"in outputListArrFloat len-startPos<=0\n");
	assertF(arr!=NULL,"In outputListArrFloat,arr is NULL\n");
	assertF(outputFile!=NULL,"in outputListArrFloat ,outputFile is NULL\n");
	for(i=startPos;i<len;i++)	
	{
		fprintf(outputFile,"%3d",arr[i]);
		if((i+1)%10==0)
			fprintf(outputFile,"\r\n");
	}
	fprintf(outputFile,"\r\n");
}
extern void outputListArrInt2(int* arr,int startPos,int len,char* outputFileName)
{
	FILE* outputFile;/*the outputFile for the data output*/
	int i;/*iterator number*/
	/*assertion*/
	assertF(len-startPos>0,"in outputListArrFloat2 len-startPos<=0\n");
	assertF(arr!=NULL,"In outputListArrFloa2t,arr is NULL\n");
	assertF(outputFileName!=NULL,"in outputListArrFloat2,listFileName is null\n");
	/*open file*/
	assertF((outputFile=fopen(outputFileName,"wb"))!=NULL,"output file open error\n");
	for(i=startPos;i<len;i++)	
	{
		fprintf(outputFile,"%10d",arr[i]);
		if((i+1)%10==0)
			fprintf(outputFile,"\r\n");
	}
	fprintf(outputFile,"\r\n");
	fclose(outputFile);
}

void outputListArrFloat2(Type* arr,int startPos,int len,char* outputFileName)
{
	FILE* outputFile;/*the outputFile for the data output*/
	int i;/*iterator number*/
	/*assertion*/
	assertF(len-startPos>0,"in outputListArrFloat2 len-startPos<=0\n");
	assertF(arr!=NULL,"In outputListArrFloa2t,arr is NULL\n");
	assertF(outputFileName!=NULL,"in outputListArrFloat2,listFileName is null\n");
	/*open file*/
	assertF((outputFile=fopen(outputFileName,"wb"))!=NULL,"output file open error\n");
	for(i=startPos;i<len;i++)	
	{
		fprintf(outputFile,"%10.5f ",arr[i]);
		if((i+1)%10==0)
			fprintf(outputFile,"\r\n");
	}
	fprintf(outputFile,"\r\n");
	fclose(outputFile);
}

void outputListArrIntToMatlab(int* arr,int startPos,int len,char* outputFileName)
{
	FILE* outputFile;/*the outputFile for the data output*/
	int i;/*iterator number*/
	/*assertion*/
	assertF(len-startPos>0,"in outputListArrFloat2 len-startPos<=0\n");
	assertF(arr!=NULL,"In outputListArrFloa2t,arr is NULL\n");
	assertF(outputFileName!=NULL,"in outputListArrFloat2,listFileName is null\n");
	/*open file*/
	assertF((outputFile=fopen(outputFileName,"wb"))!=NULL,"output file open error\n");
	fprintf(outputFile,"arr=[");
	for(i=startPos;i<len;i++)
		fprintf(outputFile,"%d ",arr[i]);
	fprintf(outputFile,"]\r\n");
	
	fclose(outputFile);	
	
	
	
}
void outputListArrFloatToMatlab(Type* arr,int startPos,int len,char* outputFileName)
{
	FILE* outputFile;/*the outputFile for the data output*/
	int i;/*iterator number*/
	/*assertion*/
	assertF(len-startPos>0,"in outputListArrFloat2 len-startPos<=0\n");
	assertF(arr!=NULL,"In outputListArrFloa2t,arr is NULL\n");
	assertF(outputFileName!=NULL,"in outputListArrFloat2,listFileName is null\n");
	/*open file*/
	assertF((outputFile=fopen(outputFileName,"wb"))!=NULL,"output file open error\n");
	fprintf(outputFile,"arr=[");
	for(i=startPos;i<len;i++)
		fprintf(outputFile,"%f ",arr[i]);
	fprintf(outputFile,"]\r\n");
	
	fclose(outputFile);	
}

void output2DArrInt(Type** arr,int col,int row,FILE* outputFile)
{
	int i=0,j=0;/*iterator value*/
	assertF(arr!=NULL,"In output2DArr,arr is NULL\n");
	assertF(outputFile!=NULL,"in output2DArr, outputFile is NULL");
	for(i=0;i<col;i++)
		{
			for(j=0;j<row-1;j++)
				{
					fprintf(outputFile,"%d,",arr[i][j]);
				}
			fprintf(outputFile,"%d;\r\n",arr[i][j]);	
		}
}

void output2DArrFloat(Type** arr,int col,int row,FILE* outputFile)
{
	int i=0,j=0;/*iterator value*/
	assertF(arr!=NULL,"In output2DArr,arr is NULL\n");
	assertF(outputFile!=NULL,"in output2DArr, outputFile is NULL");
	for(i=0;i<col;i++)
		{
			for(j=0;j<row-1;j++)
				{
					fprintf(outputFile,"%f,",arr[i][j]);
				}
			fprintf(outputFile,"%f;\r\n",arr[i][j]);	
		}	
}
void show2DArrInt(Type** arr,int col,int row)
{
	int i=0,j=0;/*iterator value*/
	int pos=0;/*output control*/
	assertF(arr!=NULL,"In showArr,arr is NULL\n");
	for(i=0;i<col;i++)
		{
			for(j=0;j<row-1;j++)
				{
					printf("%d,",arr[i][j]);
					pos++;
					if(pos>10)
					{
						printf("\n");
						pos=0;
					}
				}
			printf("%d;\n",arr[i][j]);
			pos=0;	
		}
	printf("\n");
}

void show2DArrFloat(Type** arr,int col,int row)
{
	int i=0,j=0;/*iterator value*/
	int pos=0;/*output control*/
	assertF(arr!=NULL,"In showArr,arr is NULL\n");
	for(i=0;i<col;i++)
		{
			for(j=0;j<row-1;j++)
				{
					printf("%f,",arr[i][j]);
					pos++;
					if(pos>10)
					{
						printf("\n");
						pos=0;
					}
				}
			printf("%f;\n",arr[i][j]);
			pos=0;	
		}
	printf("\n");
}
void showArrListInt(Type* arr,int startPos,int len)
{
	int i=0;/*iterator num*/
	assertF(len-startPos>0,"in sumArr len-startPos<=0\n");
	assertF(arr!=NULL,"In showArrListFloat,arr is NULL\n");
	for(i=startPos;i<len-1;i++)	
		printf("%d,",arr[i]);
	printf("%d;\n",arr[i]);
}

void showArrListFloat(Type* arr,int startPos,int len)
{
	int i=0;/*iterator num*/
	assertF(len-startPos>0,"in sumArr len-startPos<=0\n");
	assertF(arr!=NULL,"In showArrListFloat,arr is NULL\n");
	for(i=startPos;i<len-1;i++)	
		printf("%f,",arr[i]);
	printf("%f;\n",arr[i]);
}

Type sumArr(Type* inArr,int len)
{
	int i=0;/*iterator num*/
	Type ans=0;
	assertF(inArr!=NULL,"in sumArr,inArr is NULL\n");
	for(i=0;i<len;i++)
		ans+=inArr[i];
	return ans;
}

void arrEachBy(Type* firstArr,Type* secondArr,Type** ansArr,int len)
{
	int i=0;/*iterator num*/
	/*assertion*/
	assertF(firstArr!=NULL,"in arrEachBy,firstArr is NULL\n");
	assertF(secondArr!=NULL,"in arrEachBy,secondArr is NULL\n");	
	assertF(ansArr!=NULL,"in arrEachBy,ansArr is NULL\n");
	
	for(i=0;i<len;i++)
		(*ansArr)[i]=firstArr[i]*secondArr[i];
}

void reverseArr(Type** arr,int len)
{
	int i=0,j=0;/*iterator num*/
	Type* tmpArr;/*tmp arr*/
	
	assertF(*arr!=NULL,"in reverseArr,arr is NULL\n");
	/*memory apply*/
	tmpArr=(Type*)malloc(len*sizeof(Type));
	assertF(tmpArr!=NULL,"in reverseArr,tmpArr is NULL\n");
	
	for(i=0;i<len;i++)
		tmpArr[i]=(*arr)[i];
	
	/*rever operator*/
	j=len;
	for(i=0;i<len;i++)
	{	j--;
		(*arr)[i]=tmpArr[j];
	}
		
	free(tmpArr);
}

void twoDArrMemApply(Type*** inArr,int rowNum,int colNum)
{
	int i=0;/*iterator vaule*/
	(*inArr)=(Type**)malloc(sizeof(Type*)*rowNum);
	for(i=0;i<rowNum;i++)
		(*inArr)[i]=(Type*)malloc(sizeof(Type)*colNum);
	assertF(*inArr!=NULL,"in twoDArrMemApply,inArr at last is null\n");
}

void twoDArrMemFree(Type*** inArr,int rowNum)
{
	int i=0;/*iterator value*/
	assertF((*inArr)!=NULL,"in 2d arr mem free,in arr is null\n");
	
	for(i=0;i<rowNum;i++)
		free((*inArr)[i]);
	
	free((*inArr));
}

void listArrMemApply(Type** inArr,int len)
{
	int i=0;/*iterator vaule*/
	(*inArr)=(Type*)malloc(sizeof(Type)*len);
	
	assertF(*inArr!=NULL,"in listArrMemApply,inArr at last is null\n");
}

void readListFloat(Type** listArr,int* len,char* listFileName)
{
	int i=0;/*iterator value*/
	FILE* inputFile;/*input file pointer*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -