c语言百日刷题第二天

目录

6.校门外的树

7.明明的随机数

8.质因数分解

9.不高兴的津津

10.津津的储蓄计划


6.校门外的树

c语言百日刷题第二天_第1张图片

题目分析:用0标记有树,用1标记被砍掉的树,不难知道只需要遍历L+1个节点就可以找出被砍的的树木,最后再用if指定条件,计算出树木总数

#include
int main(){
    int sum=0;      //最后树木和
    int i,j,L,M,begin,end;//i,j为计数工具,L为路长,M为区块数目
    scanf("%d %d",&L,&M);
    int road[L+1];         //路的节点有L+1
    for(i=0;i

7.明明的随机数

c语言百日刷题第二天_第2张图片 题目分析:输入n个数,然后把重复的筛选出来标记,再把未重复的重新放在一起,然后排序输出

#include
int main()
{   int count=0;               //计数
    int a[100],b[100],n,i,j,k,t;
	scanf("%d",&n);     
	for(i=0;ib[j]) k=j;
        t=b[k];b[k]=b[i];b[i]=t;
       }
    printf("%d\n",count);
    for(i=0;i

优化:先把数组初始化为0,输入n个数的时候直接输入,不给数组 ,然后判断数组该位置是不是0,是则把该数给对应序号的数组元素,相当于1号占第1个格子,10号站第10个格子,这样一下子把重复,排序两个动作都完成了,最后就是输出

#include
int main(){
    int n,m;
    int a[1001]={0},count=0;
    scanf("%d",&n);
    for(int i=0;i

8.质因数分解

c语言百日刷题第二天_第3张图片

题目分析:质数分解唯一性定理,即该数分解方式只有一种,为两个质数的乘积

#include
int main(){
    int n;
    scanf("%d",&n);
    for(int i=2;i

9.不高兴的津津

c语言百日刷题第二天_第4张图片 题目分析:把周一的值赋为最大值,接着下一天,如果学习时间超过max,则赋给max,如此遍历,如果max同时大于8,则最后输出周几,如果小于8,则输出0;巧妙利用初值 

#include
int main(){
    int x,y;
    int p=0,max=0;
    for(int i=1;i<=7;i++){
        scanf("%d %d",&x,&y);
        if(x+y>max&&x+y>8){
            max=x+y;
            p=i;
          }
        }
    printf("%d",p);
    return 0;
}

10.津津的储蓄计划

c语言百日刷题第二天_第5张图片

题目分析:很明显每个月成递推关系,所以把每月预算,给妈妈的钱的张数(100),剩余放在一个12行3列的二维数组中存储,再定义一个常量来标注超预算,还有要注意把第一个月分开来讨论,因为第一个月没有剩余

#include
int main(){
    int m[12][3];//预算,给妈妈的钱的张数(100),剩余
    int flag=-1,count=0; //标记超没超预算,给妈妈的钱的张数总和
    for(int i=0;i<12;i++){
      scanf("%d",&m[i][0]);
      if(i==0){         //第一个月单独讨论,上个月没有剩余
        if(m[i][0]>300) flag=i;     //超预算
        else{ 
              m[i][1]=(300-m[i][0])/100; //存储给妈妈的钱张数
              m[i][2]=300-m[i][1]*100-m[i][0];  //剩余
            }
        }
       else { if(m[i-1][2]+300

你可能感兴趣的:(C语言,c语言,算法,c++)