XDOJ第二弹:流程控制

P-0002

在这里插入图片描述

#include<stdio.h>
int main(){
    unsigned int n;
    unsigned int count=0;
    unsigned int a;
    scanf("%d",&n);
    int num[1000];
    for(int i=0;i<n;i++){
        scanf("%d",&a);
        num[i]=a;
    }
    for(int j=0;j<n;j++){
        if(num[j]!=num[j+1]){
            count++;
        }
    }
    printf("%d",count);
    return 0;
}

P-0003

在这里插入图片描述

#include <stdio.h>
int main(){
  int n,i,j,k,t,min;
  scanf("%d",&n);
  int a[1000],b[999];
  for(i=0;i<n;i++){
    scanf("%d",&a[i]);
  }
  for(i=0;i<n-1;i++){
    k=i;
    for(j=i+1;j<n;j++)
       if(a[k]>a[j])
            k=j;
    if(k!=i){
      t=a[i];
      a[i]=a[k];
      a[k]=t;
    }
  }
  for(i=0;i<n-1;i++){
    b[i]=a[i+1]-a[i];
  }
  for(min=b[0],i=0;i<n-1;i++)
     if(min>b[i])
         min=b[i];
  printf("%d",min);
  return 0;
}

P-0007

在这里插入图片描述

#include<stdio.h>
int main(){
    int day,fog,num;
    int nums[10]={1,2,3,4,5,6,7,8,9,0};
    scanf("%d%d%d",&day,&fog,&num);
    if(day>=6||fog<200){//不限行的情况
        printf("%d no",num%10);
    }else if(day>0&&day<6&&fog>=200&&fog<400){//周一到周五且200-400的限行
        if(num%10==nums[day-1]||num%10==nums[day+4]){//yes
            printf("%d yes",num%10);
        }else{
            printf("%d no",num%10);//no
        }
    }else if(day>0&&day<6&&fog>=400&&fog<600){//周一到周五且大于400
        //偶数周情况
        if(day%2==0){//yes
            if(num%10==0||num%10==2||num%10==4||num%10==6||num%10==8){
                printf("%d yes",num%10);
            }else{
                printf("%d no",num%10);
            }
        }else{//奇数周情况
            if(num%10==1||num%10==3||num%10==5||num%10==7||num%10==9){
                printf("%d yes",num%10);//yes
            }else{
                printf("%d no",num%10);//no
            }
        }}
    return 0;
}

P-0027

在这里插入图片描述

#include<stdio.h>
int main(){
    int es[3]={0,110,210};
    double e;
    scanf("%lf",&e);
    if(e>=es[0]&&e<=es[1]){
        //每度0.5元
        printf("%.2lf",e/2);
    }else if(e>es[1]&&e<=es[2]){
        //超过部分0.55元
        printf("%.2lf",55+(e-110)*0.55);
    }else{
        //每度电0.70元
        printf("%.2lf",110+0.7*(e-210));
    }
    return 0;

P-0028

在这里插入图片描述

#include<stdio.h>
int main(){
    int days[12]={31,28,31,30,31,30,31,31,30,31,30,31};
    int a,b;
    scanf("%d%d",&a,&b);
    if(a%4==0&&a%100!=0||a%400==0){//闰年的二月
        if(b==2){
            printf("%d",days[b-1]+1);
        }
    }else{
        printf("%d",days[b-1]);
    }return 0;
}

P-0029

在这里插入图片描述

#include<stdio.h>
int main(){
    int n,sum=0;
    scanf("%d",&n);
    while(n!=0){
        sum+=n%10;
        n/=10;
    }
    printf("%d",sum);
    return 0;
}

P-0030

在这里插入图片描述

#include<stdio.h>
int main(){
    unsigned int a,b;
    int sum=0;
    scanf("%d%d",&a,&b);
    for(int i=a;i<=b;i++){
        sum=i;
        for(int j=1;j<i/2+1;j++){
            if(i%j==0){
                sum-=j;
            }
        }
        if(sum==0){
            printf("%d\n",i);
        }
    }
    return 0;
}

P-0031

在这里插入图片描述

(前几行注释是迭代法,可以参考)

#include<stdio.h>
//int gcd(int a,int b){
//    return(b?gcd(b,a%b):a);
//}
int main(){
    int a,b;
    scanf("%d%d",&a,&b);
    int r;
    while(a%b!=0){
        r=a%b;
        a=b;
        b=r;
    }
    printf("%d",b);
    return 0;
}

P-0032

#include<stdio.h>
int main(){
    int n;
    int count=0;
    scanf("%d",&n);
    while(n!=1){
        if(n%2==0){
            n/=2;
        }else{
            n=3*n+1;
        }
        count++;
    }
    printf("%d",count);
    return 0;
}

P-0041

在这里插入图片描述

#include<stdio.h>
int main(){
    int n;
    int c1=0;
    int c2=0;
    int c3=0;
    int c4=0;
    int c5=0;
    int c6=0;
    int num[1000];
    double sum=0;
    int air[]={0,50,100,150,200,250,300};
    scanf("%d",&n);
    for(int i=0;i<n;i++){
        scanf("%d",&num[i]);
        sum+=num[i];
    }
    printf("%.2lf\n",sum/n);
    for(int i=0;i<n;i++){
        if(num[i]>=0&&num[i]<=50){
            c1++;
        }else if(num[i]>=51&&num[i]<=100){
            c2++;
        }else if(num[i]>=101&&num[i]<=150){
            c3++;
        }else if(num[i]>=151&&num[i]<=200){
            c4++;
        }else if(num[i]>=201&&num[i]<=300){
            c5++;
        }else if(num[i]>300){
            c6++;
        }
    }
    printf("%d %d %d %d %d %d",c1,c2,c3,c4,c5,c6);
    return 0;
}

P-0043

在这里插入图片描述

#include <stdio.h>
int main(){
    long a;
    int c=0,max=0,min=9;
    scanf("%ld",&a);
    do{
        int t = a%10;
        if(t>max)max=t;
        if(t<min)min=t;
        a/=10;
        c++;
    }while(a>0);
    printf("%d %d %d",c,max,min);
    return 0;
}

P-0045

在这里插入图片描述

#include<stdio.h>
#include<math.h>//fabs()里面要浮点数
int main(){
    int n,max;
    scanf("%d",&n);
    int t[30];
    if(n>=2&&n<=30){
        for(int i=0;i<n;i++){
            scanf("%d",&t[i]);
        }
        max=fabs((double)t[0]-t[1]);//假设波动最大的是前俩项差
      for(int i=0; i <n-1;i++){
            if(fabs((double)t[i+1]-t[i])>max){
                max=fabs((double)t[i + 1]-t[i]);
        }
      }
        printf("%d",max);
    }
    return 0;
}
(要注意函数调用的参数的类型,不然有可能编译错误)

P-0046

在这里插入图片描述

#include<stdio.h>
void FindTurningPoint(int a[],int length){
    int count=0;
    for(int i=1;i<length-1;i++){//从第二个到倒数第二个
        if((a[i]>a[i+1]&&a[i]>a[i-1])||(a[i]<a[i+1]&&a[i]<a[i-1])){
            count++;
        }
    }
    printf("%d",count);
}
int main(){
    int n,count=0;
    scanf("%d",&n);
    int num[100];
    if(n>=3&&n<=100){
        for(int i=0;i<n;i++){
            scanf("%d",&num[i]);
        }
        FindTurningPoint(num,n);
    }
    return 0;
}

P-0049

在这里插入图片描述

#include<stdio.h>
#include<math.h>
int main(){
    int a;
    scanf("%d",&a);
    if(sqrt((double)a)==(int)sqrt((double)a)){
        printf("%d",(int)sqrt((double)a));
    }else{
        printf("no");
    }
    return 0;
}
(sqrt函数调用参数一定要是double,不然可能oj编译错误)

P-0050

在这里插入图片描述

#include<stdio.h>
int swap(int *a,int *b){//总共用到三处俩个变量互换,特此剔出声明
  int t;
  t=*a;
  *a=*b;
  *b=t;
  return 0;
}
void DoubleSort(int a[],int length,int b[]){//排序魔改版,qq号和位数合一一映射
    int i,j,t;
    for (i=0;i<length-1;i++){
    for (j=i+1;j<length;j++){
      if (a[i]>a[j]){
        swap(&a[i],&a[j]);
        swap(&b[i],&b[j]);
      }
    }
  }
}
int main(){
    int n,t;
    int qq[99];
    int sum[99];
    int qqcopy[99];
    scanf("%d",&n);
    for(int i=0;i<n;i++){
        scanf("%d",&qq[i]);
    }
    for (int i=0;i<n;i++){
    qqcopy[i]=qq[i];
    sum[i]=0;
    for (qq[i];qq[i]>=1;qq[i]/=10) {
      sum[i]+=qq[i]%10;
    }
  }
    DoubleSort(sum,n,qqcopy);
    for(int i=0;i<n;i++){//合相等且qq号比较大
    if(sum[i]==sum[i+1]&&qqcopy[i]>qqcopy[i+1]){
           swap(&qqcopy[i],&qqcopy[i+1]);
        }
  }
    printf("%d",qqcopy[n-1]);//最后一个肯定是最大的了
    return 0;
}

P-0051

在这里插入图片描述

#include<stdio.h>
int main(){
    int a,b,c,d,min,t;
    scanf("%d%d%d%d",&a,&b,&c,&d);
    int num[4];
    num[0]=a;
    num[1]=b;
    num[2]=c;
    num[3]=d;
    //Selection Sort
    for(int i=0;i<3;i++){
        for(int j=i+1,min=i;j<4;j++){
            if(num[min]>num[j]){
                min=j;
            }
            if(min!=i){
                t=num[i];
                num[i]=num[min];
                num[min]=t;
            }
        }
    }
    printf("%d",num[3]);
    return 0;
}
(如果你想时间更快,就不要像我这样用排序)

P-0052

在这里插入图片描述

#include<stdio.h>
int main(){
    char c=getchar();
    if(c>=97&&c<=122){//小a是97,z是122
        putchar(c-32);
    }else if(c>=65&&c<=90){//A 65 Z 90
        putchar(c+32);
    }else{
        putchar(c);
    }
    return 0;
}

P-0053

在这里插入图片描述

#include<stdio.h>
int main(){
    int m;
    scanf("%d",&m);
    if(m>=90){
        putchar(65);
    }else if(m>=80&&m<=89){
        putchar(66);
    }else if(m>=70&&m<=79){
        putchar(67);
    }else if(m>=60&&m<=69){
        putchar(68);
    }else{
        putchar(69);
    }
    return 0;
}

P-0054

在这里插入图片描述

#include<stdio.h>
int main(){
    int n,a,b,c;//1000-2000
    scanf("%d",&n);
    for(int i=1;i<1000;i++){//穷举1~1000的所有数,因为abc最多是三位数
        //abc最多三位数,分别求i的个十百位
        a=i%10;
        b=(i/10)%10;
        c=(i/100)%10;
        if(i+a*100+b*10+c==n){
            printf("%d %d %d\n",c,b,a);
        }
    }
    return 0;
}

P-0056

在这里插入图片描述

#include<stdio.h>
int main(){
    int a,b,c;
    scanf("%d%d%d",&a,&b,&c);
    if(a*a+b*b==c*c){
        printf("%d",a*b);
    }else{
        printf("no");
    }
    return 0;
}

P-0063

在这里插入图片描述

#include <stdio.h>
int main(){
  int S,A,T;
  float s;
  scanf("%d",&S);
    if(S<=3500){
        s=0;
    }else{
        A=S-3500;
        if(A<=1500){
            s=0.03*A;
        }else if(A>1500&&A<=4500){
            s=1500*0.03+(A-1500)*0.1;
        }else if(A>4500&&A<=9000){
            s=1500*0.03+3000*0.1+0.2*(A-4500);
        }else if(A>9000&&A<=35000){
            s=1500*0.03+3000*0.1+0.2*4500+0.25*(A-9000);
        }else{
            s=1500*0.03+3000*0.1+0.2*4500+0.25*26000+0.3*(A-35000);
        }
  }
  T=S-s;
  printf("%d",T);
  return 0; 
}

P-0064

在这里插入图片描述

#include<stdio.h>
int main(){
    int n;
    scanf("%d",&n);
    for(int i=(n*n-n+1);i<=(n*n+n-1);i+=2){
        printf("%d ",i);
    }
    return 0;
}

解释:

//给奇数排序的话,n^3等于n个奇数合
//可以证明最后一个奇数的序号就是n(n+1)/2
//第一个奇数的序号就是(n-1)n/2
//第一个奇数的值是n^2-n+1
//最后一个奇数的值是序号的两倍减去一 也就是n^2+n-1

P-0066

在这里插入图片描述

#include<stdio.h>
int main(){
    int n;
    scanf("%d",&n);
    double sum=0;
    int num[100];
    for(int i=0;i<n;i++){
        scanf("%d",&num[i]);
    }
    for(int i=0;i<n;i++){
        sum+=num[i];
    }
    printf("%.2lf",sum/n);
    return 0;
}

P-0068

在这里插入图片描述

#include<stdio.h>
int main(){
    int months[12]={31,28,31,30,31,30,31,31,30,31,30,31};
    int y,d,t,sum=0,i=0;
    scanf("%d%d",&y,&d);
    if(y%400==0||(y%100!=0&&y%4==0)){
        months[1] =29;
    }
    for(;i<12;i++){
        sum+=months[i];
        if(sum>=d){//d-(sum-months[i])先sum减去该索引的天数,得到前几个月天数之和,再用d减去就行
            printf("%d %d",i+1,d-sum+months[i]);
            break;
        }
    }
    return 0;
}

P-0087

在这里插入图片描述

#include<stdio.h>
int main(){
    int i,l,j;
  int count;
  int sum=0;
  int num[1000];
  for(i=0;i<1000;i++){
    scanf("%d",&num[i]);
    if(num[i]==0){
            break;
        }
  }
  for(i=0;i<1000;i++){
    count=1;
    if(num[i]==1){
            sum+=1;
        }
    if(num[i]==2){
      if(i==0||num[i-1]==1){
                sum+=2;
            }else{
        for(j=i-1;j>=0;j--){
          if(num[j]==2){
                        count+=1;
                    }else{
                        break;
                    }
        }
        sum+=2*count;
      }
    }
        if(num[i]==0){
      sum+=0;
      break;
    }
  }
  printf("%d",sum);
  return 0;
}

P-0093

在这里插入图片描述

#include<stdio.h>
int main(){
    int a,b;
    scanf("%d%d",&a,&b);
    printf("%d %d",a>b?(a%10):(b%10),a>b?(b*b):(a*a));
    return 0;
}

P-0094

在这里插入图片描述

#include<stdio.h>
int main(){
    int a[4];
    int min,t,i,j;
    for(int i=0;i<4;i++){
        scanf("%d",&a[i]);
    }
    for(i=0;i<3;i++){//选择排序
        for(j=i+1,min=i;j<4;j++){
            if(a[j]<a[min]){
                min=j;
            }
        }
        if(min!=i){
            t=a[i];
            a[i]=a[min];
            a[min]=t;
        }
    }
    for(int i=0;i<4;i++){
        printf("%d ",a[i]);
    }
    return 0;
}

P-0097

在这里插入图片描述

#include<stdio.h>
int main(){
    for(int i=97;i<=122;i++){
        printf("%c ",i);
    }
    printf("\n");
    for(int i=122;i>=97;i--){
        printf("%c ",i);
    }
    return 0;
}

P-0098

在这里插入图片描述

#include<stdio.h>
int main(){
    double m;
    scanf("%lf",&m);
    if(m>=90){
        printf("%.2f %c",m,65);
    }else if(m>=80&&m<=89){
        printf("%.2f %c",m,66);
    }else if(m>=70&&m<=79){
        printf("%.2f %c",m,67);
    }else if(m>=60&&m<=69){
        printf("%.2f %c",m,68);
    }else{
        printf("%.2f %c",m,69);
    }
    return 0;
}

P-0099

在这里插入图片描述

#include<stdio.h>
int main(){
    int es[3]={0,110,210};
    double e;
    scanf("%lf",&e);
    if(e>=es[0]&&e<=es[1]){
        //每度0.5元
        printf("%.2lf %c %.2f",e/2,65,0.00);
    }else if(e>es[1]&&e<=es[2]){
        //超过部分0.55元
        printf("%.2lf %c %.2f",55+(e-110)*0.55,66,e-110);
    }else{
        //每度电0.70元
        printf("%.2lf %c %.2f",110+0.7*(e-210),67,e-210);
    }
    return 0;
}

P-0101

在这里插入图片描述

#include<stdio.h>
int main(){
    char str[4];
    for(int i=0;i<4;i++){
        scanf("%c",&str[i]);
        if(str[i]>=65&&str[i]<=90){//大写转小写
            str[i]+=32;
        }else if(str[i]>=97&&str[i]<=122){//小写转大写
            str[i]-=32;
        }else if(str[i]>=48&&str[i]<=57){//48-57是数字,转为*
            str[i]='*';
        }else{
            str[i]='@';
        }
        printf("%c",str[i]);
    }
    return 0;
}

P-0112

在这里插入图片描述

#include<stdio.h>
#include<math.h>
int main(){
    double x;
    scanf("%lf",&x);
    printf("%.2f",x>=0?sqrt(x):(pow(x+1,2)+2*x+1/x));
    return 0;
}

P-0114&P-0116

在这里插入图片描述

#include<stdio.h>
int main(){
    int es[3]={0,110,210};
    double e;
    scanf("%lf",&e);
    if(e>=es[0]&&e<=es[1]){
        //每度0.5元
        printf("%.2lf",e/2);
    }else if(e>es[1]&&e<=es[2]){
        //超过部分0.55元
        printf("%.2lf",55+(e-110)*0.55);
    }else{
        //每度电0.70元
        printf("%.2lf",110+0.7*(e-210));
    }
    return 0;
}

P-0146

在这里插入图片描述

#include<stdio.h>
int main(){
    int n;
    scanf("%d",&n);
    switch(n){
        case 0:printf("zero");break;
        case 1:printf("one");break;
        case 2:printf("two");break;
        case 3:printf("three");break;
        case 4:printf("four");break;
        case 5:printf("five");break;
        case 6:printf("six");break;
        case 7:printf("seven");break;
        case 8:printf("eight");break;
        case 9:printf("nine");break;
    }
    return 0;
}

P-0147

在这里插入图片描述

#include<stdio.h>
int main(){
    int a,b;
    int sum=0;
    scanf("%d ",&a);
    while(a!=0){
        if(a%2!=0){
            sum=sum+a;
        }
        scanf("%d ",&a);
    }
    printf("%d",sum);
    return 0;
}

P-0149

在这里插入图片描述

#include<stdio.h>
int main(){
    int n,flag=1;
    double sum=0;
    scanf("%d",&n);
    for(double i=1;i<=n;i++){
        sum=sum+flag*(i/(2*i-1));
        flag*=-1;
    }
    printf("%.3f",sum);
    return 0;
}

P-0150

在这里插入图片描述

#include<stdio.h>
int main(){
    int x;
    scanf("%d",&x);
    if(x<1){
        printf("%d",x);
    }else if(x>=1&&x<10){
        printf("%d",2*x-1);
    }else{
        printf("%d",3*x-11);
    }
    return 0;
}

P-0151

在这里插入图片描述

#include<stdio.h>
int main(){
    double i;
    double bonus1,bonus2,bonus4,bonus6,bonus10,bonus;
    scanf("%lf",&i);
    bonus1=100000*0.1;
    bonus2=bonus1+100000*0.075;
    bonus4=bonus2+200000*0.05;
    bonus6=bonus4+200000*0.03;
    bonus10=bonus6+400000*0.015;
    if(i<=100000) {
        bonus=i*0.1;
    } else if(i<=200000) {
        bonus=bonus1+(i-100000)*0.075;
    } else if(i<=400000) {
        bonus=bonus2+(i-200000)*0.05;
    } else if(i<=600000) {
        bonus=bonus4+(i-400000)*0.03;
    } else if(i<=1000000) {
        bonus=bonus6+(i-600000)*0.015;
    } else if(i>1000000) {
        bonus=bonus10+(i-1000000)*0.01;
    }
    printf("%.2lf",bonus);
    return 0;
}

P-0155

在这里插入图片描述

#include<stdio.h>
int main(){
    unsigned int n;
    int shit=1;
    int peach=0;
    scanf("%u",&n);
    printf("%d ",n);
    if(n>0&&n<=10){
        for(int i=1;i<=n;i++){
            shit*=i;
            peach+=shit;
        }
        printf("%d ",shit);
        printf("%d",peach);
    }else if(n==0){
        printf("%d %d",1,1);
    }
    
    return 0;
}

P-0156

在这里插入图片描述

#include<stdio.h>
int main(){
    int count=0;
    for(int i=100;i<=500;i++){
        if(i%77!=0&&(i%7==0||i%11== 0)){
            count++;
        }
    }
    printf("%d",count);
    return 0;
}

P-0157

在这里插入图片描述

#include<stdio.h>
int main(){
    int n,i=1;
    int sum=0;
    scanf("%d",&n);
    while(i<=n){
        sum+=i;
        i++;
    }
    printf("%d",sum);
    return 0;
}

P-0161

在这里插入图片描述

#include<stdio.h>
int main(){
    int n;
    int c1=0,c2=0,c3=0,c4=0,c5=0;
    scanf("%d",&n);
    for(int i=1;i<=n;i++){
        if(i%2!=0){
            c1++;
        }else if(i%2==0){
            c2++;
        }
        if(i%3==0)c3++;
        if(i%5==0)c4++;
        if(i%7==0)c5++;
    }
    printf("%d %d %d %d %d",c1,c2,c3,c4,c5);
    return 0;
}

P-0177

在这里插入图片描述

#include<stdio.h>
#include<string.h>
int main(){
    char str[101]={'\0'};
    int sum=0;
    gets(str);//scanf("%s",&str);scanf不行
    //因为scanf不能输入空格,gets可以接收空格,估计是xdoj例子里面有一个输入了空格
    for(int i=0;str[i]!='\0';i++){
        sum+=(int)str[i];//算出十进制的合
    }
    //再转化为2进制,取后面一字节,也就是后八位
    printf("%d",sum&255);
    //(255二进制是1111 1111 只有后八位是1,& 运算后sum只保留了二进制的后八位,再用%d输出后变成了10进制)
    return 0;
}

P-0183

在这里插入图片描述

#include<stdio.h>
int GreatCommonDivsior(int a,int b){
    int r=a%b;
    while(r!=0){
        a=b;
        b=r;
        r=a%b;
    }
    return b;
}
int main(){
    int a,b;
    scanf("%d%d",&a,&b);
    //最小公倍数=两数的乘积 除 最大公约数
    printf("%d %d",GreatCommonDivsior(a,b),a*b/GreatCommonDivsior(a,b));
    return 0;
}

P-0185

在这里插入图片描述

#include<stdio.h>
#include<math.h>
int main(){
    double x1,x2,a,t;
    scanf("%lf",&a);
    x2=1;
    do{
        x1=x2;
        x2=0.5*(x1+a/x1);
    }while(fabs(x1-x2)>=1e-5);
    printf("%.5lf",x2);
    return 0;
}

P-0189

在这里插入图片描述

#include<stdio.h>
int main(){
    double s=100,h=50;
    int n;
    scanf("%d",&n);
    for(int i=1;i<n;i++){
        s+=2*h;
        h*=0.5;
    }
    printf("S=%.3lf h=%.3lf",s,h);
    return 0;
}

P-0196

在这里插入图片描述

#include<stdio.h>
int main(){
    int i,j,k;
  char n;
  scanf("%c",&n);
  for(i=65;i<=n;i++){//大写A是65,n-i表示行数
    for(j=n-i;j>0;j--){//空格的个数是递减的
      printf(" ");
    }
    for(k=65;k<=i;k++){//从A开始正向输出 ABCDE...
      printf("%c",k);
    }
    for(k=i-1;k>=65;k--){//从中间的字母开始反向输出 ...EDCBA
      printf("%c",k);
    }
    printf("\n");//最外层结束一次,换一次行
  }
    return 0;
}

P-0249

在这里插入图片描述

#include<stdio.h>
int main(){
    int n,i;
    scanf("%d",&n);
    int t=n;
    for(i=2;i<=t/2;i++){//因数不超一半,1肯定是因数,直接跳过,从2始 从小到大找
    //不用i<=n/2的原因是下面的操作会改变n的值
        while(n%i==0){
            printf("%d",i);
            n/=i;//直接除以因数i
            if(n!=1){
                printf("*");//不是1表示 仍有因数,输出乘号
            }
        }
    }
    return 0;
}

P-0298

在这里插入图片描述

#include<stdio.h>
int main(){
    int a,b,i,j,min,t;
    scanf("%d%d",&a,&b);
    int num[4]={
        (a+b)*(a+b),(a-b)*(a-b),
        a*a+b*b,a*a-b*b
    };
    for(i=0;i<3;i++){
        for(j=i+1,min=i;j<4;j++){
            if(num[min]>num[j]){
                min=j;
            }
        }
        if(min!=i){
            t=num[min];
            num[min]=num[i];
            num[i]=t;
        }
    }
    printf("%d %d",num[3],num[0]);
    return 0;
}

P-0299

在这里插入图片描述

#include <stdio.h>
#include <math.h>
int main(){
    int p,c;
    int t;
    scanf("%d",&p);
    t=(p-1)/1e5;
    switch(t){
    case 0:
        c=p*0.1;
        break;
    case 1:
        c=(p-1e5)*0.075+1e5*0.1;
        break;
    case 2:
    case 3:
        c=(p-2e5)*0.05+1e5*0.1+1e5*0.075;
        break;
    case 4:
    case 5:
        c=(p-4e5)*0.03+1e5*0.1+1e5*0.075+2e5*0.05;
        break;
    case 6:
    case 7:
    case 8:
    case 9:
        c=(p-6e5)*0.015+1e5*0.1+1e5*0.075+2e5*0.05+2e5*0.03;
        break;
    default:
        c=(p-1e6)*0.01+1e5*0.1+1e5*0.075+2e5*0.05+2e5*0.03+4e5*0.015;
    }
    printf("%d\n",c);
    return 0;
}

P-0300

在这里插入图片描述

#include<stdio.h>
int main(){
    int n;
    int count=0;
    scanf("%d",&n);
    if(n!=0){
        while(n<=999999999&&n>0){
            n/=10;
            count++;
        }
        printf("%d",count);
    }else{//没0的情况会只有75分
        printf("%d",1);
    }
    return 0;
}

P-0301

在这里插入图片描述

#include<stdio.h>
void Sum(int a,int anum[]){
    int count=1;
    int sum=1;
    for(int i=2;i<=a/2;i++){
        if(a%i==0){
            sum+=i;
            count++;
        }
    }
    anum[0]=sum;
    anum[1]=count;
}
int main(){
    int a,b;
    int anum[2];
    int bnum[2];
    scanf("%d%d",&a,&b);
    Sum(a,anum);
    Sum(b,bnum);
    if(a==bnum[0]&&b==anum[0]){
        printf("yes %d %d",anum[1],bnum[1]);
    }else{
        printf("no %d %d",anum[1],bnum[1]);
    }
    return 0;
}

P-0302

在这里插入图片描述

#include<stdio.h>
#include<math.h>
int isPrimenum(int j){//判断j是不是素数
    int flag=1;
    for(int i=2;i<=sqrt((double)j);i++){//sqrt函数的参数要是实数
        if(j%i==0){
            flag=0;
            break;
        }
    }
    if(flag){
        return flag;
    }
    return 0;
}
void ProducePrimeNums(int prnums[],int p){
    int i=0;
    for(int j=2;i<p+10;j++){//判断j是不是素数
        if(isPrimenum(j)){
            prnums[i++]=j;
        }
    }
}
int main(){
    int prnums[150];//素数数组
    int p,sum=0;
    scanf("%d",&p);
    ProducePrimeNums(prnums,p);//找出p+10个素数,并存到数组里
    for(int i=p-1;i<p+10;i++){
        sum+=prnums[i];
    }
    printf("%d",sum);
    return 0;
}

最后

感兴趣的可以关注我的微信公众号,第一时间收到动态
在这里插入图片描述

  • 6
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PHP经典100例.,php教材实例,从基础到实践,由浅到深... 24:经典循环例子 25:for的高级运用 26:简单的函数 27:有返回值的函数 28:有默认参数的函数 29:判断整数 30:动态调用函数 31:一个简单的数组 32给数组增加元素 33初始化数组 34获取数组中的元素 35创建一个多维数组 36PHP 4.0实现表格状打印 37实现背景颜色的改变 38文件上传 39查看PHP的环境变量 40使用文件包含 41打开本地或者远程文件 42读取文件内容 43访问文件常见属性 44调用文本文件内容 45PHP判断文件是否存在 46访问文件时间属性 47创建目录函数 48浏览目录 49取得浏览器的信息 50PHP相关信息 51常用的数值判断函数 52数组排序的使用 53常用数组函数 54常用字符串函数(一) 55常用字符串函数(二) 56常用字符串函数(三) 57编码和解码函数 58常用数学函数(一) 59常用时间函数(二) 60日期检查函数 61常用时间函数(一) 62常用时间函数(二) 63程序暂停函数 64图像函数 65session函数 66拼写检查 67循环中调用函数 68转换所有的标记为PHP 69取得页面的链接 70对分查找法 71文件上传界面 72用PHP4实现顶级域名查询 73日期合法性检查 74检查一个邮政编码 75得到100个随机数字 76得到十个随机数 77分成数组 78计算星座的函数 s 79检测OICQ用户是否在线 80检测操作系统和浏览器类型 81用PHP4连接一个mysql数据库操作的演示 82//本例是用PHP4实现向一个mysql数据表添加记录, 83//本例是用PHP4实现修改一个mysql数据表 84本例是用PHP4实现删除一个mysql数据记录 85//本例是用PHP4实现向一个ODBC数据表添加记录 86//本例是用PHP4实现向一个ODBC数据表添加记录 87用户登录,注册新用户 88用COOKIE保存投票人的投票记录 89php4+mysql 留言本 90文件上传处理 91页面浏览计数器 92链接 93在线聊天 94简单的新闻公告栏 95PHP目录树演示 96访客留言本 97实现在线投票 98世纪万年历 99php挖地雷 100文件管理系统
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值