每日三百行代码 第十四天

补交,因为3/19参加了学校的比赛。

#include<stdio.h>
int main()
{
   
	int i,j=1,x=0,y=0,rest,N;
	char C;
	scanf("%d %c",&N,&C);
	while(2*j*j-1<=N)//计算层数
	{
   
		j++;
	}
	j--;
	y=2*j-1;	
	rest=N-2*j*j+1;//剩下字符的数量
	while(y>0)//输出沙漏上半部分
	{
   
		for(i=0;i<x;i++)
			printf(" ");
		for(i=0;i<y;i++)
			printf("%c",C);
		printf("\n");
		x++;
		y-=2;
	}
	x--;
	y+=2;
	while(x>0)//输出沙漏下半部分
	{
   
		x--;
		y+=2;
		for(i=0;i<x;i++)
			printf(" ");
		for(i=0;i<y;i++)
			printf("%c",C);
		printf("\n");	
	}
	printf("%d",rest);
	return 0;
}


#include <stdio.h>
 
typedef long long ll;
 
int main()
{
   
    ll n, sum, m, Maxlen, b;
    scanf("%lld", &n);
    m = sqrt(n);
    Maxlen = 0;
    b = 0;
    for(int i = 2; i <= m; i ++)
    {
   
        sum = 1;
        for(int j = i; sum * j <= n; j ++)
        {
   
            sum *= j;
            if(n % sum == 0 && (j - i + 1) > Maxlen)
            {
   
                Maxlen = j - i + 1;
                b = i;
            }
        }
    }
    if(b == 0)  //n 是素数
    {
   
        printf("1\n%lld\n",n);
    }
    else
    {
   
        printf("%d\n",Maxlen);
        for(int i = b; i < Maxlen + b; i ++)
        {
   
            if(i == b) printf("%d", i);
            else printf("*%d",i);
        }
        printf("\n");
    }
    return 0;
}

#include <stdio.h>
int gcd(long long int p, long long int q)
{
   
	if (p%q == 0)
	{
   
		return q;
	}
	else
		return gcd(q, p%q);
}


int main()
{
   
	long long int a, b,suma = 0, sumb = 1,m;
	int n, i;
	scanf("%d", &n);
	for (i = 0; i < n; i++)
	{
   
		scanf("%lld/%lld", &a, &b);
		suma *= b;//分子乘以第二个分式的分母
		suma = (suma + a*sumb);//分子的和
		sumb *= b;//分母通分
		m = gcd(suma, sumb);//约去公约数`在这里插入代码片`
		suma /= m;
		sumb /= m;
	}
	if (suma&&(suma/sumb==0))
		printf("%lld/%lld\n", suma, sumb);
	else if (suma%sumb==0)
		printf("%lld\n", suma / sumb);
	else
	{
   
		printf("%lld %lld/%lld\n",suma/sumb,suma%sumb,sumb);
	}
}

#include<stdio.h>
#include<string.h>
int main()
{
   
	char a[10001],b[10001];
	int i,j=0;
	int num=0;
	gets(a);
	gets(b);
	while(a[j])
	{
   
		for(i=0;i<strlen(b);i++)
		{
   
			if(a[j]==b[i])
			{
   
				num++;
			}
		}
		if(num==0)
		{
   
			printf("%c",a[j]);
		}
		j++;
		num=0;
	}

	return 0;
}

#include<stdio.h> 

int main()  
{
     
        int Person[100000]={
   0};  
        int N,n,m,K,i,j,sum=0;  
        scanf("%d",&N);  
        for(i=1;i<=N;i++)  
        {
      scanf("%d",&n);  
         for(j=1;j<=n;j++)  
              {
     
                        scanf("%d",&m);   
                        if(n!=1)  
                                Person[m]=1;  
                }  
        }  
        scanf("%d",&K);  
        for(i=1;i<=K;i++)  
        {
     
                scanf("%d",&m);    
                if(Person[m]==0)  
                {
     
                        if(sum!=0)  
                                printf(" ");  
                        printf("%05d",m);  
                        Person[m]=-1; //更新对应数组的值,避免重复输出 
                        sum++;  
                }  
        }   
        if(sum==0)  
                printf("No one is handsome");  
        printf("\n");  
        return 0;  
}

#include <stdio.h>
int main()
{
   
	char a[10005],ch;
	int i, j, x = 0, b = 0, c = 0, d = 0;
	gets(a);
	for (i = 0; i < strlen(a); i++)
	{
   
		if (a[i] == 'G'||a[i] == 'g')
		{
   
			x++;
		}
		else if (a[i] == 'P' || a[i] == 'p')
		{
   
			b++;
		}
		else if (a[i] == 'l' || a[i] == 'L')
		{
   
			c++;
		}
		else if (a[i] == 'T' || a[i] == 't')
		{
   
			d++;
		}
	}
	while (x > 0 || b > 0 || c > 0 || d > 0)
	{
   
		if (x>0)
		{
   
			printf("G"); x--;
		}
		if (b>0)
		{
   
			printf("P"); b--;
		}
		if (c>0)
		{
   
			printf("L"); c--;
		}
		if (d>0)
		{
   
			printf("T"); d--;
		}
	}
}

#include<stdio.h>
#include<math.h>
#include<string.h>
int main()
{
   
    char s[101];
    scanf("%s",s);
    int book[101]={
   0};
    int arr[101];
    int index[101];
    int all=0;
    for(int i=0;s[i]!='\0';i++){
   
        if(book[s[i]-'0']==0){
   
            arr[all++]=s[i]-'0';
        }
        book[s[i]-'0']=1;
    }
    int t;
    for(int i=0;i<all;i++){
   
        for(int j=i;j<all;j++){
   
            if(arr[i]<arr[j]){
   
                t=arr[i];
                arr[i]=arr[j];
                arr[j]=t;
            }
        }
    }
    for(int i=0;s[i]!='\0';i++){
   
        for(int j=0;j<all;j++){
   
            if(s[i]-'0'==arr[j]){
   
                index[i]=j;
                break;
            }
        }
    }
   printf("int[] arr = new int[]{");
   for(int i=0;i<all-1;i++){
   
    printf("%d",arr[i]);
    printf(",");
   }
   printf("%d};",arr[all-1]);
   printf("\n");
   printf("int[] index = new int[]{");
   for(int i=0;i<10;i++){
   
    printf("%d",index[i]);
    printf(",");
   }
   printf("%d};",index[10]);
}

#include <stdio.h> 
#include <string.h> 

int main()  
{
     
    int N,i,lenth;  
    char c;  
    char a[40000];  
    scanf("%d %c",&N,&c);  
    getchar();  
    gets(a);  
    lenth = strlen(a);  
    if(lenth >= N)  
    {
     
        for(i=lenth-N;i<lenth;i++)  
        {
     
            putchar(a[i]);  
        }  
    }  
    else  
    {
     
        for(i=0;i<N-lenth;i++)  
        {
     
            putchar(c);  
        }  
        puts(a);  
    }  
    return 0;  
}  

#include<stdio.h>
int main()
{
   
	int m[1000]={
   0},a,b,c,d,e=999,N,n;
	scanf("%d",&N);
	for(a=0;a<N;a++)
	{
   
		scanf("%d",&n);
		for(b=0;b<n;b++)
		{
   
			scanf("%d",&c);
			m[c-1]++;
		}
	}
	for(d=999;d>0;d--)
		if(m[e]<m[d-1])
	       e=d-1;
	printf("%d %d",e+1,m[e]);
	return 0;
}

#include<string.h>
#include <stdio.h>
	int main()
	{
   
		int n;
        char a[100][100],b[1050];
		int i, j,m,t=0;
		scanf("%d\n", &n);
		gets(b);
		m = strlen(b) / n;
		if (m*n != strlen(b))
		{
   //不能整除m多一列
			m++;
		}
		for (j = m - 1; j >= 0; j--)//倒序
		{
   
			for (i = 0; i < n; i++)//顺序
			{
   
				if (b[t] != '\0')//是否为空格
				{
   
					a[i][j] = b[t];
					t++;
				}
				else
				{
   
					a[i][j] = ' ';
				}
			}

		}
		for (i = 0; i < n; i++)
		{
   
			for (j = 0; j < m; j++)
			{
   
				printf("%c", a[i][j]);
			}
			printf("\n");

		}

		
	return 0;
    }

#include<stdio.h>
int main(){
   
	int s=1,n,num=0,k=0;
	scanf("%d",&n);
	while(1){
   
		if(s/n!=0)k=1;//判断首位是否为零,如果为零不需要输出
		num++;//每次循环加一位
		if(k)printf("%d",s/n);
		s=s%n;
		if(s==0)break;
		s=s*10+1;
	}
	printf(" %d",num);
}

#include <stdio.h>
int main()
{
   
    int stu[100][10][10];//高校某个队的第某个人的位置用三维数组;
    int max=0;//记录一下最大的高校的队伍数量
    int n;
    int a,b,i,j,k,l;
    int d[100];//每个高校队伍的数量 
    scanf("%d",&n);
    for(i=0;i<n;i++){
   
        scanf("%d",&d[i]);
        if(d[i]>max){
   
            max = d[i];//高校最高的数量 
        }    
    }
    l = 0;// 
    int GX=-1;//高校编号
    for(i=0;i<max;i++){
   
        for(j=0;j<10;j++){
   
            for(k=0;k<n;k++){
     
                if(i<d[k]){
    //如果小于这个高校的队伍数量 
                    if(GX==k){
   
                        l+=2;
                    }else{
   
                        l+=1;
                    }
                    stu[k][i][j] = l;
                    GX = k;
                }
            }
        }
    }
    for(i=0;i<n;i++){
   
        printf("#%d\n",i+1);
        for(j=0;j<d[i];j++){
   
            for(k=0;k<10;k++){
   
                printf("%d",stu[i][j][k]);
                if(k!=9){
   
                    printf(" ");
                }
            }
            printf("\n");
        }
    }
    return 0; 
} 

#include<stdio.h>
#include<math.h>

struct people{
   
    int num;
    char name[10];
}p[10005],pmin;

int main(){
   
    int i,n,sum=0;
    double half;
    scanf("%d",&n);
    for(i=0;i<n;i++){
   
        scanf("%s %d",p[i].name ,&p[i].num);
        sum=sum+p[i].num;
    }
    half=sum*1.0/n*0.5;
    pmin=p[0];
    for(i=0;i<n;i++){
   
        if(fabs(pmin.num-half)>fabs(p[i].num-half)){
   
            pmin=p[i];
        }
    }
    printf("%.0f %s",half,pmin.name);
    return 0;

}

#include<stdio.h>
#include<string.h>

int judge(char a[][101],int row){
   
    int j=0;
    char temp[]={
   "ong,"};
    char t[]={
   "ong."};
    if(strstr(a[row],temp)){
   
        if(strstr(a[row],t)){
   
            return 1;
        }
    }
    return 0;
}

int main(){
   
    char input[21][101]={
   0};
    int n=0,i=0;
    scanf("%d",&n);
    getchar();
    for(i=0;i<n;i++){
   
        gets(input[i]);
    }
    for(i=0;i<n;i++){
   
        if(judge(input,i)){
   
            int j=0;
            int cnt=strlen(input[i]);
            int blank=0;
            char insert[]={
   "qiao ben zhong."};
            for(j=cnt-1;;j--){
   
                if(input[i][j]==' '){
   
                    blank++;
                }
                if(input[i][j]==','){
   
                    blank++;
                }
                if(blank==3){
   
                    j++;
                    break;
                }
            }
            strcpy(input[i]+j,insert);
            printf("%s\n",input[i]);
        }
        else{
   
            printf("Skipped\n");
        }
    }
    return 0;
}