今天主要是习题讲解课,针对最近学习的数组、矩阵遗留的难题进行讲解。通过学习,我发现其实编程是一个很有意思的过程,针对不同的题目,只要理清题意,一步一步进行分解,很快就能得到有效的解题步骤。通俗来讲,我突然觉得那个冷笑话就是真理,要把大象装冰箱,其实就三步。
//1. 找出二维数组(4*4)中,最大元素的位置,即行列数
/*
#include<stdio.h>
int main()
{
int a[4][4]={12,17,12,13,
14,25,26,67,
76,88,64,34,
10,24,46,15};
int i,j,b,c;
int max=a[0][0];
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
if(a[i][j]>max)
{
max=a[i][j];
b=i;
c=j;
}
}
}
printf("最大值是%d,在第%d行第%d列",max,b+1,c+1);
}
*/
//2.输入某年某月某日,判断这一天是这一年的第几天
/*
#include<stdio.h>
int main()
{
int a[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};
int b[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int year,month,day;
int i,j;
int sum[1]={0};
printf("请输入年、月、日:");
scanf("%d%d%d",&year,&month,&day);
if((year%100==0&&year%400==0)||(year%100!=0&&year%4==0))
{
sum[1]=0;
for(i=0;i<month;i++)
{
sum[1]=sum[1]+a[i];
}
}
else
{
sum[1]=0;
for(i=0;i<month;i++)
{
sum[1]=sum[1]+b[i];
}
}
printf("%d",sum[1]+day);
}
*/
//3.输入某年某月某日,判断这一天到今天一共有多少天
#include<stdio.h>
int main()
{
int year,month,day,year1,month1,day1;
int a[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};
int b[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int m,n;
int i,sum=0,sum1=0,sum2=0;
printf("请输入年,月,日:");
scanf("%d%d%d",&year,&month,&day);
printf("请输入当前年,月,日:");
scanf("%d%d%d",&year1,&month1,&day1);
if((year%100==0&&year%400==0)||(year%100!=0&&year%4==0))
{
sum=0;
for(i=0;i<month;i++)
{
sum=sum+a[i];
}
m=366-sum-day;
}
else
{
sum=0;
for(i=0;i<month;i++)
{
sum=sum+b[i];
}
m=365-sum-day;
}
for(i=year+1;i<2020;i++)
{
if(((year+1)%100==0&&(year+1)%400==0)||((year+1)%100!=0&&(year+1)%4==0))
{
sum1=sum1+366;
}
else
{
sum1=sum1+365;
}
}
for(i=0;i<month1;i++)
{
sum2=sum2+a[i];
}
printf("%d年%d月%d日到今天一共%d天\n",year,month,day,m+sum1+sum2+day1);
}
//4.斐波那契数列
/*
#include<stdio.h>
int main()
{
int a[15]={0,1};
int i;
printf("%d %d ",a[0],a[1]);
for (i=2;i<15;i++)
{
a[i]=a[i-1]+a[i-2];
printf("%d ",a[i]);
}
}
*/
//5.哥德巴赫猜想
/*
#include<stdio.h>
int main()
{
int a,i,m=0,n,n1,j;
printf("请输入一个大于4的偶数:");
scanf("%d",&n);
for(a=1;a<=n/2;a++)
{
m=0;
for(i=1;i<=a;i++)
{
if(a%i==0)
{
m++;
}
}
if(m==2)
{
n1=n-a;
m=0;
for(j=1;j<=n1;j++)
{
if(n1%j==0)
{
m++;
}
}
}
if(m==2)
{
printf("%d=%d+%d ",n,a,n1);
}
}
}
*/