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

📄 1.cpp

📁 2006年大学生数学建模参赛程序 第一题
💻 CPP
字号:
/*题一程序*/
#include<stdio.h>
#include<math.h>
void change(float b[][7],float c[][7])
{
    int i,j,k;
    for(i=0;i<354;i++)
	    for(j=0;j<7;j++)
        {
		    if(b[i][j]>0 && b[i][j]<4 && b[i][j+1]!=0)
			{
				b[i][j]=0;
				c[i][j]=c[i][j]-(c[i][j+1]-c[i][j])/(b[i][j+1]-b[i][j]);
			}
            else if(b[i][j]<0)
			{
				b[i][j]=0;
			    c[i][j]=c[i][j]+(c[i][j+1]-c[i][j])/(b[i][j+1]-b[i][j]);
			}
            else if(b[i][j]>0 && b[i][j]<4 && b[i][j-1]==0 && j!=0)
			{
				b[i][j]=4;
			    c[i][j]=c[i][j]+(c[i][j+1]-c[i][j])/(b[i][j+1]-b[i][j]);
			}
			else if(b[i][j]>4 && b[i][j]<8 && b[i][j-1]!=4)
			{
				b[i][j]=4;
			    c[i][j]=c[i][j]-(c[i][j+1]-c[i][j])/(b[i][j+1]-b[i][j]);
			}
			else if(b[i][j]>4 && b[i][j]<8 && b[i][j-1]==4)
			{
                b[i][j]=8;
				c[i][j]=c[i][j]+(c[i][j+1]-c[i][j])/(b[i][j+1]-b[i][j]);
			}
	        else if(b[i][j]>8 && b[i][j]<24 && b[i][j-1]!=8 && (b[i][j+1]-b[i][j])!=0)
			{
			    b[i][j]=8;
				c[i][j]=c[i][j]-(c[i][j+1]-c[i][j])/(b[i][j+1]-b[i][j]);
			}
			else if(b[i][j]>8 && b[i][j]<24 && b[i][j-1]!=8 && (b[i][j+1]-b[i][j])==0)
			{
			    b[i][j]=8;
				c[i][j]=c[i][j]-(c[i][j]-c[i][j-1])/(b[i][j]-b[i][j-1]);
			}
			else if(b[i][j]>8 && b[i][j]<24 && b[i][j-1]==8 && (b[i][j+1]-b[i][j])!=0)
			{
			   b[i][j]=24;
			   c[i][j]=c[i][j]+(c[i][j+1]-c[i][j])/(b[i][j+1]-b[i][j]);
			}
			else if(b[i][j]>8 && b[i][j]<24 && b[i][j-1]==8 && (b[i][j+1]-b[i][j])==0)
			{
			   b[i][j]=24;
			   c[i][j]=c[i][j]+(c[i][j]-c[i][j-1])/(b[i][j]-b[i][j-1]);
			}
			else if(b[i][j]>24 && b[i][j]<40 && b[i][j-1]!=24 && (b[i][j+1]-b[i][j])!=0)
            {
			   b[i][j]=24;
			   c[i][j]=c[i][j]-(c[i][j+1]-c[i][j])/(b[i][j+1]-b[i][j]);
			}
			else if(b[i][j]>24 && b[i][j]<40 && b[i][j-1]!=24 && (b[i][j+1]-b[i][j])==0)
            {
			   b[i][j]=24;
			   c[i][j]=c[i][j]-(c[i][j]-c[i][j-1])/(b[i][j]-b[i][j-1]);
			}
			else if(b[i][j]>24 && b[i][j]<40 && b[i][j-1]==24 && (b[i][j+1]-b[i][j])!=0)
            {
			   b[i][j]=40;
			   c[i][j]=c[i][j]+(c[i][j+1]-c[i][j])/(b[i][j+1]-b[i][j]);
			}
			else if(b[i][j]>24 && b[i][j]<40 && b[i][j-1]==24 && (b[i][j+1]-b[i][j])==0)
            {
			   b[i][j]=40;
			   c[i][j]=c[i][j]+(c[i][j]-c[i][j-1])/(b[i][j]-b[i][j-1]);
			}
			else if(b[i][j]>40 && b[i][j]!=40 && (b[i][j+1]-b[i][j])!=0)
            {
			   b[i][j]=40;
			   c[i][j]=c[i][j]-(c[i][j+1]-c[i][j])/(b[i][j+1]-b[i][j]);
			}
			else if(b[i][j]>40 && b[i][j]!=40 && (b[i][j+1]-b[i][j])==0)
            {
			   b[i][j]=40;
			   c[i][j]=c[i][j]-(c[i][j]-c[i][j-1])/(b[i][j]-b[i][j-1]);
			}
		}
}
void load1(float a[])
{
    FILE *fp;
	int i;
	if((fp=fopen("1.txt","rb"))==NULL)
	{
	    printf("cannot open");
        return;
	}
	for(i=1;i<1570;i++)
		fscanf(fp,"%f",&a[i]);
	fclose(fp);
}
void load2(float a[])
{
    FILE *fp;
	int i;
	if((fp=fopen("2.txt","rb"))==NULL)
	{
	    printf("cannot open");
        return;
	}
	for(i=1;i<1570;i++)
		fscanf(fp,"%f",&a[i]);
	fclose(fp);
}
void load3(float a[])
{
    FILE *fp;
	int i;
	if((fp=fopen("3.txt","rb"))==NULL)
	{
	    printf("cannot open");
        return;
	}
	for(i=1;i<1570;i++)
		fscanf(fp,"%f",&a[i]);
	fclose(fp);
}
main()
{
    float a[1570],b[1570],c[1570],c1[354][7]={0},b1[354][7]={0},y[6]={0},num[6]={0};
	int i,j,k,l,m,n;
	load1(a);
	load2(b);
	load3(c);
/*	for(i=1;i<1570;i++)
		printf("%3.2f ",a[i]);*/
	j=0;
    k=0;
    for(i=1;i<1570;i++)
	    if(a[i]==a[i+1])
		{
		    c1[j][k]=c[i];
	        b1[j][k++]=b[i];
		}
	    else
		{
	        c1[j][k]=c[i];
		    b1[j][k]=b[i];
		    j++;
		    k=0;
		}
    change(b1,c1);
   /* for(i=0;i<354;i++)
	{
		for(j=0;j<7;j++)
			printf("%3.2f ",c1[i][j]);
		printf("\n");
	}*/
    for(i=0;i<354;i++)
		for(j=0;j<7;j++)
		{
			if(b1[i][j]==0 && j<=2)
			{
			   y[0]+=c1[i][j];
			   num[0]++;
			}
			else if(b1[i][j]==4)
			{
			   y[1]+=c1[i][j];
			   num[1]++;
			}
			else if(b1[i][j]==8)
			{
			   y[2]+=c1[i][j];
			   num[2]++;
			}
			else if(b1[i][j]==24)
			{
			   y[3]+=c1[i][j];
			   num[3]++;
			}
			else if(b1[i][j]==40)
			{
			   y[4]+=c1[i][j];
			   num[4]++;
			}
		}
    for(i=0;i<5;i++)
		y[i]=y[i]/num[i];
	for(i=0;i<5;i++)
		printf("%3.5f ",y[i]);

}

⌨️ 快捷键说明

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