图论作业

判断今天是今年的第几天:

#include<stdio.h>

 

bool Leap_year(int year)

{

if( year / 4 == 0 && year / 100 !=0 || year / 400 ==0)

{

return true;

}

else

{

return false;

}

}

int today( int year,int month,int day)

{

int i;

int sum=0;

for( i=1;i<month;i++)

{

if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)

{

sum+=31;

}

if(i==4||i==6||i==9||i==11)

{

sum+=30;

}

if(Leap_year(year)&&i==2)

{

sum+=29;

}

if(!Leap_year(year)&&i==2)

{

sum+=28;

}

}

    sum+=day;

return sum;

}

int main()

{

 

int a=today( 2018,1,3);

printf("今天是今年的第%d天\n",a);

int b=today( 2018,12,31);

printf("今天是今年的第%d天\n",b);

return 0;

}

 

//有一个二维数组,行列均为递增。

//现在需要输入一个数字,是否存在该数字?

//存在,打印或者返回其第一次出现的位置。

//{ 1,2,8,9,

//  2,4,9,12,

//  4,7,10,13,

//  6,8,11,15

//  };

#include<stdio.h>

#define n 4

int Two(int (*arr)[n],int a)

{

int flag=0;

for(int i=0;i<n;i++)

{

for(int j=0;j<n;j++)

{

if(arr[i][j]==a)

{

flag=1;

printf("YES\n");

printf("该数第一次出现的坐标为(%d,%d)\n",i,j);

return 1;

}

}

}

if(flag!=0)

{

printf("NO\n");

}

}

void Show(int *arr)

{

for (int i=0;i<n;i++)

{

for(int j=0;j<n;j++)

{

printf("%4d",arr[i*n+j]);

}

printf("\n");

}

}

 

int main()

{

int arr[4][4]={ 1,2,8,9,2,4,9,12,4,7,10,13,6,8,11,15};

Show((int *)arr);

 Two(arr,2);

 return 0;

}

斐波那契(无递归)

#include<stdio.h>

void Fabonacio(int *arr,int len)

{   int n;

arr[0]=arr[1]=1;

//printf("%d%4d",arr[0],arr[1]);

for(n=2;n<40;n++)

{

arr[n]=arr[n-1]+arr[n-2];

//printf("%11d",arr[n]);

}

}

void Show(int *arr,int len)

{

for(int i = 0;i < len;i++)

{

printf("%11d ",*(arr+i));

}

printf("\n");

}

int main()

{

int arr[40] = {};

int len = sizeof(arr)/sizeof(arr[0]);

Fabonacio( arr,len);

Show(arr,len);

return 0;

}

 

图论作业