7.15

1、#include<stdio.h>
int main()
{
    int repeat;
    scanf("%d",&repeat);
    int m,n,j,i,div,num,sum;
    while(repeat--)
    {
    scanf("%d%d",&m,&n);
    sum=0;//全局变量与局部变量的问题,如果定义在while的前面则错误
    num=0;
    if(m==n)
    {
         j=2;
         while(j<m&&m%j!=0)j++;//j大于m就排除了1和2
         if(m==j)
         printf("count=1,sum=%d\n",m);//这里就可以直接输出,下面无须继续做了
         else
         printf("count=0,sum=0\n");
            break;//这里要注意,其实不加也可以得出结论if else的作用
    }
    for(i=m;i<=n;i++)
    {
        j=2;
        while(j<i&&i%j!=0)j++;
        if(i==j)
        {
            sum+=i;
            num++;
        }
    }
    printf("count=%d,sum=%d\n",num,sum);
    }
    return 0;

}

2、求完数

#include<stdio.h>
int is(int a)
{
int i,sum=0;
for(i=1;i<a;i++)
{
if(a%i==0)
sum+=i;
}
if(sum==a||a==1)//有个1的问题要考虑到
return 1;
else
return 0;
}
int main()
{
    int repeat;
    scanf("%d",&repeat);
    int m,n,j,i,num,sum;
    while(repeat--)
    {
    scanf("%d %d",&m,&n);
    sum=0;
num=0;
    for(i=m;i<=n;i++)
    {
j=is(i);
        if(j==1)
  printf("%d ",i);
    }
printf("\n");
    }
    return 0;

}错误显示的是显示错误,不太清楚是为什么

3、#include<stdio.h>
int main()
{
    int b,i,a[20],j;
    while(~scanf("%d",&a[0]))
    {
        for(i=1;i<10;i++)//一开始没看清题目意思,总共要输入10个数
            scanf("%d",&a[i]);
        scanf("%d",&b);
        b=b+30;
        j=0;//一定要定义初始值,即0,不然会出错
        for(i=0;i<10;i++)
        {
            if(b>=a[i])
                j++;
        }
        printf("%d\n",j);




    }
    return 0;

}

4、#include<stdio.h>
int main()//三个数排序问题,只要一直保持a是最大的,所以a>b,a>c,且b>c
{
   int T,i;
   int a[10];
   scanf("%d",&T);
   while(T--)
   {
       int a,b,c;
       scanf("%d %d %d",&a,&b,&c);
       int t;
       if(a<b)
       {
           t=a;
           a=b;
           b=t;
       }
       if(a<c)
       {
           t=a;
           a=c;
           c=t;
       }
       if(b<c)
       {
           t=b;
           b=c;
           c=t;
       }
       printf("%d %d %d\n",a,b,c);
   }

}

绝对值排序问题

#include<stdio.h>
#include<math.h>
void px(int a[],int n)
{
    int i,j;
    for(i=n-1;i>0;i--)//冒泡排序算法不太清楚,要了解
        for(j=1;j<=i;j++)
    {
        if(abs(a[j-1])<abs(a[j]))//绝对值的函数abs
        {
            int t=a[j-1];
            a[j-1]=a[j];
            a[j]=t;
        }
    }
}
int main()
{
   int T,i,j;
   int a[100+10];
   while(scanf("%d",&T)!=EOF)
   {
       if(T==0)
        break;
       for(i=0;i<T;i++)
       {
           scanf("%d",&a[i]);
       }
      px(a,T);
      for(i=0;i<T;i++)
      {
          if(i!=0)//常见显示错误的解决办法(出首字母外都要加空格)
            printf(" ");
          printf("%d",a[i]);
      }
      printf("\n");//换行也要常记住
   }
   return 0;

}

5

鸡兔同笼问题

#include<stdio.h>
#include<math.h>
int main()
{
   int T,n,m;
   scanf("%d",&T);
   while(T--)
   {
       scanf("%d %d",&n,&m);
       int x=0,y=0;
            x=2*n-m/2;
            y=m/2-n;
       if(x>=0&&y>=0&&x+y==n&&(2*x+4*y==m))//问题在于什么时候是有解的 因为无解的情况太难表示了,而有解的情况只要摆出条件即可
        {
            printf("%d %d\n",x,y);
        }
       else
        printf("No answer\n");
   }
   return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值