今天主要是习题讲解课,针对最近学习的数组、矩阵遗留的难题进行讲解。通过学习,我发现其实编程是一个很有意思的过程,针对不同的题目,只要理清题意,一步一步进行分解,很快就能得到有效的解题步骤。通俗来讲,我突然觉得那个冷笑话就是真理,要把大象装冰箱,其实就三步。
//1. 找出二维数组(4*4)中,最大元素的位置,即行列数
/*
#include
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
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 { sum[1]=sum[1]+a[i]; } } else { sum[1]=0; for(i=0;i { sum[1]=sum[1]+b[i]; } } printf("%d",sum[1]+day); } */ //3.输入某年某月某日,判断这一天到今天一共有多少天 #include 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 { sum=sum+a[i]; } m=366-sum-day; } else { sum=0; for(i=0;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 { sum2=sum2+a[i]; } printf("%d年%d月%d日到今天一共%d天\n",year,month,day,m+sum1+sum2+day1); } //4.斐波那契数列 /* #include 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 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); } } } */