1.鸡兔同笼问题
这题鸡兔同笼没啥技术含量,只需要知道如何用数学方法去求就行。代码段如下:
#include<stdio.h>
int main()
{
int m,n;
scanf("%d %d",&n,&m);
printf("%d ",(4*n-m)/2);
printf("%d",n-(4*n-m)/2);
return 0;
}
2.找最小
找最小问题,需要简单运用一维数组的数据输入,运用for循环对一维数组内的数据遍历,然后定义其所需的变量,循环判断后找到其所需要的值,然后在赋值给变量,在让其和最后一个数交换。
代码段如下
#include<stdio.h>
#include<math.h>
int main()
{
int a[10],min,i,n;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(n=0,i=0;i<10;i++)
if(abs(a[n])>abs(a[i]))
n=i;
min=a[n];
a[n]=a[9];
a[9]=min;
for(i=0;i<10;i++)
printf("%d ",a[i]);
return 0;
}
3.最大与最小
最大与最小问题和第2题类似,先循环输入 ,在定义 max和min,用for循环循环判断与max和min的关系 满足要求就把那位数赋值给我们定义的max和min。最后输出的时候不要忘记是输出2位小数 , 浮点数一般用%.2f即可。
#include<stdio.h>
int main()
{
int n,i;
scanf("%d",&n);
float a[n],min,max;
for(i=0;i<n;i++)
scanf("%f",&a[i]);
for( max=min=a[0],i=1;i<n;i++)
{
if(a[i]>max)
max=a[i];
if(a[i]<min)
min=a[i];
}
printf("%.2f %.2f",max,min);
return 0;
4.递归初体验(阶乘)
程序调用自身的编程技巧称为递归( recursion)。递归作为一种算法在程序设计语言中广泛应用。 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。一般来说,递归需要有边界条件、递归前进段和递归返回段。当边界条件不满足时,递归前进;当边界条件满足时,递归返回。
今天在慕课初步了解递归,简单来说就是在函数中调用其本身。
其中阶乘是其简单应用,自己的感觉就是能简单写就简单写,此题重点就是会定义结成运算的函数 ,懂得阶乘的实质,然后点出特殊情况当阶乘数小于0和等于0或者等于1时的值,然后返回他。定义完后,一定要记得要在主函数中调用他 ,今天那道用函数求数组元素的和我就没搞好。
#include<stdio.h>
int asd(int n)
{
if(n<0)
return 0;
else if(n==0||n==1)
return 1;
else
return asd(n-1)*n;
}
int main()
{
int n;
scanf("%d",&n);
printf("%d",asd(n));
return 0;
}
5.闰年问题
闰年问题 ,重点是要理解闰年的定义,能同时被4和100整除或不能被400整除的年份,会用if语句表示条件,还有逻辑语句。定义完后需要循环输入年份 一般循环输入使用while(scanf("%d",&n)!=EOF)
#include<stdio.h>
int isLeap(int year)
{
if((year%4==0&&year%100!=0)||(year%400==0))
{
return 1;
}
return 0;
}
int main()
{
int n,m;
while(scanf("%d",&n)!=EOF)
{
if(isLeap(n)==1)
{
printf("yes\r\n");
}
else
printf("no\r\n");
}
return 0;
}
6.总结
本周慢慢的学到一些新的东西,尽管有很多还是不会,但身边大佬云集,每次和他(她)们请教,我都能学到新的东西,很享受交流的时刻。慢慢减少每次不会就往网上搜,这样没啥意义,多去问问,更好。心态放稳,不急,也要快快的赶上大家的步伐,我一直很相信自己,加油!!!
冲压横行霸道qyz!!!