郑轻OJ151-200题答案+详细解析

前言

本部分由Frex和Godyu辅助分享答案,部分题解用python较为简单也附上了python答案.

有什么不懂的问题联系FrexQQ2821154546或Godyu QQ1641281102

域用python写的

n=int(input())
for i in range(0,n):
    a=input()
    n,m=a.split()
    print(int(n)+int(m))

C语言

#include <stdio.h>
#include <string.h>
int main()
{
	char arr1[1000],arr2[1000];
	int a1[1000],a2[1000];
	int str[1000];
	int len1,len2;
	int t,flag=0,n;
	scanf("%d",&t);
	while(t--)
	{
		flag=0;
		memset(a1,0,sizeof(a1));
		memset(a2,0,sizeof(a2));
		memset(str,0,sizeof(str));
		scanf("%s%s",arr1,arr2);
		len1=strlen(arr1);
		len2=strlen(arr2);
		if(len1>len2)
		{
			n=len1-len2;
			for(int i=0;i<len1;i++)
			{
				a1[i]=arr1[i]-'0';
				if(i<len2)
				{
					a2[i+n]=arr2[i]-'0';
				}
			}
		}
		else
		{
			n=len2-len1;
			for(int i=0;i<len2;i++)
			{
				a2[i]=arr2[i]-'0';
				if(i<len1)
				{
					a1[i+n]=arr1[i]-'0';	
				}
			}
		}if(len2>len1)
		{
			n=len1;
			len1=len2;
			len2=n;
		}
		for(int i=len1-1;i>=0;i--)
		{
			str[i]=a1[i]+a2[i]+flag;
			flag=0;
			if(i>0)
			{
				if(str[i]>=10)
				{
					str[i]=str[i]%10;
					flag=1;
				}
			}
		}
		for(int i=0;i<len1;i++)
		{
			printf("%d",str[i]);
		}
		printf("\n");
	}
		
	return 0;
}
#include <stdio.h>
int serch(int num[],int serchnum,int len)
{
	int ret=-1;
	int left=0,right=len-1;
	int mid;
	while(left<=right)
	{
		mid=(left+right)/2;
		if(num[mid]==serchnum)
		{
			ret=mid;
			break;
		}
		else if(serchnum>num[mid])
		{
			left=mid+1;
		}else
		{
			right=mid-1;
		}
	}
	return ret;
}
int main()
{
	int ret;
	int num[100000];
	int n;
	scanf("%d",&n);
	for(int i=0;i<n;i++)
	{
		scanf("%d",&num[i]);
	}
	int m;
	scanf("%d",&m);
	int serchnum;
	for(int k=0;k<m;k++)
		{
			scanf("%d",&serchnum);
			ret=serch(num,serchnum,n);
			if(ret==-1)
			{
				printf("Not found!\n");
			}else
			{
				printf("%d\n",ret);
			}
		}
	return 0;
}

python:

# 方法一:用字典
t = int(input()) # 读取t的值
for _ in range(t): # 循环t次
    n = int(input()) # 读取n的值
    g = list(map(int, input().split())) # 读取n个整数,并转换为列表
    count = {} # 创建一个空字典
    for x in g: # 遍历列表中的每个元素
        count[x] = count.get(x, 0) + 1 # 如果元素在字典中,就加一,否则就设为一
    max_count = max(count.values()) # 找出字典中最大的值
    print(max_count) # 输出最大的值

C语言

#include <stdio.h>
int main()
{
	int t,n;
	scanf("%d",&t);
	int a[10000];
	int ts;
	while(t--)
	{
		int len=1,maxlen=1;
		scanf("%d",&n);
		for(int i=0;i<n;i++)
		{
			scanf("%d",&a[i]);
		}
		for(int i=0;i<n;i++)
		{
			for(int j=i+1;j<n;j++)
			{
				if(a[i]>a[j])
				{
					ts=a[i];
					a[i]=a[j];
					a[j]=ts;
				}
			}
		}
		for(int i=0;i<n;i++)
		{
			if(a[i-1]==a[i])
			{
				len++;
			}
			else
			{
				len=1;
			}
			if(len>maxlen)
			{
				maxlen=len;
			}
		}
		printf("%d\n",maxlen);
	}
	
	return 0;
}
#include<stdio.h>
#include<string.h>
 
int main()
{
    int n, m, l, a, b, i, sum;
    scanf("%d", &n);
    while(n--)
    {
        int c[10000]={0};
        sum=0;
        scanf("%d%d", &l, &m);
 
        while(m--)
        {
            scanf("%d%d", &a, &b);
            for(i=a;i<=b;i++)
            {
                c[i]++;
            }
        }
        for(i=0;i<=l;i++)
        {
            if(c[i]!=0)
                sum++;
        }
        printf("%d\n", l+1-sum);
    }
    return 0;
}
#include <stdio.h>
#include <string.h>
int main()
{
	char a[10005],b[10005];
	while(scanf("%s %s",a,b)!=EOF)
	{
		for(int i=0;a[i]!='\0';i++)
		{
			if(a[i]>='a')
			{
				a[i]=(a[i]-96)*2+1;
			}
			else
			{
				a[i]=(a[i]-64)*2;
			}
		}
		for(int i=0;b[i]!='\0';i++)
		{
			if(b[i]>='a')
			{
				b[i]=(b[i]-96)*2+1;
			}
			else
			{
				b[i]=(b[i]-64)*2;
			}
		}if(strcmp(a,b)<0)
			printf("YES\n");
		else printf("NO\n");
	}
	return 0;
}
#include<stdio.h>
#include<string.h>
int main()
{
	char a[25];
	int l;
	gets(a);
	l=strlen(a);
	if(a[l-1]=='s' || a[l-1]=='x' || a[l-1]=='o' || (a[l-2]=='s'&&a[l-1]=='h') || (a[l-2]=='c'&&a[l-1]=='h')){
		a[l]='e';
		a[l+1]='s';
		a[l+2]='\0';
	}
	else if(a[l-1]=='y'){
		a[l-1]='i';
		a[l]='e';
		a[l+1]='s';
		a[l+2]='\0';
	}
	else{
		a[l]='s';
		a[l+1]='\0';
	}
	puts(a);
	return 0;
}

python:

n = input()
n = list(map(int, n))
c = int(input())
sum=0
h=0
for x in range(len(n)):
    if n[x]==1:
        count=1
        for y in range(x+1,len(n)):
            if n[y]==1:
                count=count+1
            else:
                break
        if count>=c:
          h=h+1
print(h)

C语言:

#include <stdio.h>
int main()
{
	char str[1000];
	gets(str);
	int num;
	scanf("%d",&num);
	int cnt,count=0;
	for(int i=0;str[i]!='\0';i++)
	{
		cnt=0;
		for(int k=i;k<i+num;k++)
		{
			if(str[k]=='1')
				{
					cnt++;
				}
		}
		if(cnt==num)
		{
			count++;
		}
	}
	printf("%d\n",count);
	return 0;
}
#include <stdio.h>
void psort(int *pa,int *pb,int *pc,int *pd);
int main()
{
	
  int a,b,c,d;
  scanf("%d %d %d %d",&a,&b,&c,&d);
  psort(&a,&b,&c,&d);
	return 0;
}
void psort(int *pa,int *pb,int *pc,int *pd)
{    
    int h=0;
	int i=0;
	int g=0;
	int t=0;
	int arr[4]={*pa,*pb,*pc,*pd};
	for(i=0;i<4;i++)
	{   
	  for(g=i+1;g<4;g++){
	  
	  if(arr[i]<arr[g]){
	  	   t=arr[i];
	  	   arr[i]=arr[g];
	  	   arr[g]=t;
	  }
	  }
	  	
	}
	for(i=0;i<4;i++)
	{
		printf("%d",arr[i]);
		if(i<4)
		{
			printf(" ");
		}
	}

	}
#include <stdio.h>
 void LargestTwo(int a[],int n,int *pfirst,int *psecond);
int main()
{
	int a[100001];
	int n;
	int c,d;
	LargestTwo(a,n,&c,&d);
	printf("%d %d",c,d);
		
	
	
	return 0;
 } 
 
 void LargestTwo(int a[],int n,int *pfirst,int *psecond)
{   int i;
    int t;
    int g;
        scanf("%d",&n);
        for(int i=0;i<n;i++)
        {
        	scanf("%d",&a[i]);
		}
		
     for(i=0;i<n;i++)
	{   
	  for(g=i+1;g<n;g++){
	  
	  if(a[i]<a[g]){
	  	   t=a[i];
	  	   a[i]=a[g];
	  	   a[g]=t;
	  }
	  }
	  	
	}
	 *pfirst=a[0];
	*psecond=a[1];
	
	
      
      
}

python:

def Maritx(matrix):
    matrix_max= matrix[0][0]
    matrix_max = 0
    max_max=0
    max_low=0
    for i in range(len(matrix)):
        for j in range(len(matrix)):
            if matrix[i][j]>matrix_max:
                matrix_max=matrix[i][j]
                max_row=i
                max_low=j

    return matrix_max,max_row,max_low






matrix = []
for _ in range(2):
    row=list(map(int,input().split()))
    matrix.append(row)
matrix_max, max_row, max_low =  Maritx(matrix)
print(matrix_max,max_row,max_low)

C语言:

#include <stdio.h>
void FindMax(int p[][3], int m, int n, int *pRow, int *pCol)
{
    int x=0,y=0;
    int max=p[0][0];
    for(int i=0;i<m;i++)
    {
        for(int k=0;k<n;k++)
        {
           if(p[i][k]>max)
           {
                max=p[i][k];
                x=i;
                y=k;
                pRow=&x;
                pCol=&y;
           }
        }
    }
    printf("%d %d %d",max,*pRow,*pCol);
}
int main()
{
    int a[2][3];
    for(int i=0;i<2;i++)
    {
        for(int k=0;k<3;k++)
        {
            scanf("%d",&a[i][k]);
        }
    }
    int *pRow=NULL,*pCol=NULL;
	FindMax(a,2,3,pRow,pCol);
    return 0;
}
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int len(char *sp);
 int main()
{
char arr[101];
gets(arr);
len(arr);	

return 0;
 } 
 int len(char *sp){
 	int x=strlen(sp);
 	int i=0;
 	int num=0;
 	for(i=0;i<x;i++)
 	{  
 	      if(sp[i]!=' ')
 	      {
 	      	num++;
		   }
	 }
	 printf("%d",num);
	
 }

此题python切片较为简单,具体看我文章

Python中切片的用法,网络安全爱好者中心-神域博客网
Python中切片的用法,网络安全爱好者中心-神域博客网
阿尔法神域的头像,网络安全爱好者中心-神域博客网5个月前
150713
def f(a,n,k):
    a=a[-k:]+a[:-k]
    return a
n=int(input())
a=list(map(str,input().split()))
k=int(input())
a=f(a,n,k)
# 用enumerate函数遍历列表a,同时得到索引和元素
for x, val in enumerate(a):
    # 只打印元素,不打印索引
    print(val,end=' ')

python第二种方法:

def f(a,n,k):
    a=a[-k:]+a[:-k]
    return a
n=int(input())
a=list(map(str,input().split()))
k=int(input())
a=f(a,n,k)
print(*a)

C语言:

#include <stdio.h>
#include <malloc.h>
void ringShift(int *a, int n, int k)
{
	int *b=malloc(n*sizeof(int));
	for(int i=0;i<n;i++)
	{
		if(i+k<n)
		{
			b[i+k]=a[i];
		}
		else b[i+k-n]=a[i];
	}
	for(int i=0;i<n-1;i++)
	{
		printf("%d ",b[i]);
	}
	printf("%d",b[n-1]);
}
int main()
{
	int n;
	scanf("%d",&n);
	int *a=malloc(n*sizeof(int));
	for(int i=0;i<n;i++)
	{
		scanf("%d",&a[i]);
	}
	int k;
	scanf("%d",&k);
	ringShift(a,n,k);
	return 0;
}

python:

def main():
    while 1:
        try:
            str1=input()
            str2=input()
        except EOFError:
            break


        if len(str1)<len(str2):
             print("no")
        else:
                str3=str1+str1
                if str2 in str3:
                    print("yes")
                else:
                    print("no")

if __name__ =="__main__":
    main()

C语言:

#include <stdio.h>
#include <string.h>
char s1[1000001],s2[1000000],s3[2000000];
int main()
{
	int len1,len2;
	while(scanf("%s\n%s",s1,s2)!=EOF)
	{
		len1=strlen(s1);
		len2=strlen(s2);
		if(len1<len2)
		{
			printf("no\n");
		}
		else
		{
			strcpy(s3,s1);
			strcat(s1,s3);
			if(strstr(s1,s2)!=NULL)
			{
				printf("yes\n");
			}
			else printf("no\n");
		}
	}
	return 0;
}
#include<stdio.h>
#include<string.h>
/*
    字符串加密(循环)
	共有26字母,+k后对26求余
*/

int main(){
    char str[10001];
    int k,a=0;
    gets(str);
    scanf("%d",&k);
    for(int i=0;str[i]!='\0';i++){
        if(str[i]>='a'&&str[i]<='z'){
            str[i]=(str[i]-'a'+k)%26+'a';
            a=1;
        }
        if(str[i]>='A'&&str[i]<='Z'){
            str[i]=(str[i]-'A'+k)%26+'A';
            a=1;
        }
    }
    if(a==1) puts(str);
    return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char *decimal(char *p);
int main()
{   char str[10001];
	char *p;
	p=decimal(str);
	int h=0;
 if(p!= NULL)
        printf("0%s", p);
    else
        printf("No decimal part");
return 0;
 } 
char *decimal(char *p)
{   int flag=0;
	int i=0;
	char *star;
	int j=0;
	star = (char*)malloc(100*sizeof(char)); 
	scanf("%s",p);
	int x = strlen(p);
	for (i=0;i<x;i++){
		if(p[i]=='.'){
			flag=1;
		}
		if(flag==1){
			star[j++]=p[i];
		}
	}
	star[j]='\0';
	while(j--){
		if(star[j]=='0'){
			star[j]='\0';
		}
		else{
			break;
		}
	}
	if(star[j]=='.')
		return NULL;
	return star;
	 
}
#include <stdio.h>
#include <stdlib.h>
#include<string.h>

char *rounding(char *p);
int main(){
	char *p;
	p=(char*)malloc(sizeof(char)*100);
	gets(p);
	printf("%s\n",rounding(p));
	return 0;
}
char *rounding(char *p){
	
	char *q;
	while(*p=='0'){
		p++;
	}
	while(*p=='\0'||*p=='.'){
		p--;
	}
	q=strchr(p,'.');
	if(q!=NULL){
		*q='\0';
	}
//	printf("%s",p);
	return p;
	
}
#include <stdio.h>
#include <string.h>
void reverse(char *str)
{
	int len=strlen(str);
	int idex;
	for(int i=len-1;i>0;i--)
	{
		if(str[i]!='0')
		{
			idex=i;
			break;
		}
	}
	if(str[0]!='-')
	{
		for(int i=idex;i>=0;i--)
		{
			printf("%c",str[i]);
		}
		
	}
	if(str[0]=='-')
	{
		printf("-");
		for(int i=idex;i>0;i--)
		{
			printf("%c",str[i]);
		}
	}
	for(int i=idex+1;i<len;i++)
	{
		printf("%c",str[i]);
	}
}

int main()
{
	char a[101];
	scanf("%s",a);
	reverse(a);
	return 0;
}
#include <string.h>
#include <stdio.h>
#include <math.h>
#define N 100
int main()
{
	int ncase,n;
	char *p,*q;
   p = (char *)malloc(sizeof(char) * N);  
	scanf("%d",&ncase);
	double money;
	double sum;
	while(ncase--){
		sum=0;
	scanf("%d ",&n);
	while(n--){
		gets(p);
		q=strrchr(p,' ');
		sscanf(q,"%lf",&money);
		sum=sum+money;
	}
	printf("%.1lf\n",sum);
	}
	
	return 0;
	
}
#include <stdio.h>
#include <string.h>
#include <malloc.h>
int cmp(char *a,char *b)
{
	int ret;
	int len1=strlen(a);
	int len2=strlen(b);
	if(len1>len2)
		ret=1;
	else if(len1<len2)
		ret=-1;
	else
	{
		if(strcmp(a,b)>0)
			ret=1;
		else if(strcmp<0)
			ret=-1;
		else
			ret=0;
	}
	return ret;
}
int main()
{
	char *p[3],temp[101];
	for(int i=0;i<3;i++)
	{
		p[i]=(char *)malloc(sizeof(char)*101);
		scanf("%s",p[i]);
	}
	for(int i=0;i<3;i++)
	{
		for(int j=i+1;j<3;j++)
		{
			if(cmp(p[i],p[j])>0)
			{
				strcpy(temp,p[i]);
				strcpy(p[i],p[j]);
				strcpy(p[j],temp);
			}
		}
	}
	for(int i=0;i<3;i++)
	{
		printf("%s\n",p[i]);
	}
	return 0;
}
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define P 90
//从字符串数组str中找出最长的一个字符串,并将其下标存入形参指针max所指内存。
void maxLenStr(char *str[],int n,int *max)
{
    int i,m=0;
    for(i=0; i<n; i++)
    {
        if(strlen(str[m])<strlen(str[i]))
        {
 
            m=i;
        }
    }
    *max=m;
 
}
int main()
{
    int i,max;
    char *str[101],s[90];
    for(i=0;; i++)
    {
        gets(s);
        if(strcmp(s,"****")==0)
            break;
        else
        {
            str[i]=(char*)malloc(sizeof(char)*(strlen(s)+1));
            strcpy(str[i],s);
        }
    }
 
 
    maxLenStr(str,i,&max);
    printf("%s\n",str[max]);
    return 0;
}

C语言:

#include <stdio.h>
#include <string.h>
int  encrypt(char *plain, char *cipher)
{
	int i;
	for(i=0;plain[i]!='\0';i++)
	{
		cipher[i]=plain[i]-24;
	}
	cipher[i]='\0';
}
int main()
{
	char a[200],b[200];
	gets(a);
	encrypt(a,b);
	int len=strlen(b);
	for(int j=len-1;j>=0;j--)
	{
		printf("%d%d",b[j]%10,b[j]/10);
	}
	return 0;
}

python:

a = list(input())
for x in range(len(a)):
    a[x] = str(ord(a[x]) - 24)
a = ''.join(a)  # 将列表转换为字符串
a = a[::-1]  # 反转字符串
print(a)
#include <stdio.h>
#include <string.h>
#include <stdlib.h> 
int main()
{
	int m,n;
	scanf("%d %d",&m,&n);
	int i=0;
	int j=0;
	int *p;
	int sum=0;
	p = (int*) malloc(sizeof(int) *(m*n));
	for(i=0;i<m;i++){
		
		for(j=0;j<n;j++){
			scanf("%d",&p[i*n+j]);
		}
	}	
	for(i=0;i<m;i++){
		
		for(j=0;j<n;j++){
			if(i==0||j==0||i==m-1||j==n-1){
				sum=sum+p[i*n+j];
			}
		}
	}
	free(p);
	printf("%d",sum);
		return 0;
}
	
	
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define N 100
void decrypt(char *cipher, char *plain);
int main()
{
	 char *p;
	 char *q;
	 p=(char *)(malloc(sizeof(char)*200));
	 q=(char*)(malloc(sizeof(char)*300));
	 gets(p);
	 decrypt(p,q);
	   puts(q);
	 return 0;
 } 
 void decrypt(char *cipher, char *plain)
{       int i=0;
        int j=0;
        for(i=0;cipher[i]!='\0';){
        	plain[j++]=(cipher[i]-'0')*10+(cipher[i+1]-'0')+24;
        	i=i+2;
		}
		plain[j]='\0';
		
}
#include <stdio.h>
#include <string.h>
#include <malloc.h>
int greater(char *s1, char *s2)
{
    int ret;
    int len1=strlen(s1);
    int len2=strlen(s2);
    if(len1>len2)
        ret=1;
    else if(len1<len2)
        ret=-1;
    else if(len1==len2)
    {
        if(strcmp(s1,s2)>0)
            ret=1;
        if(strcmp(s1,s2)<0)
            ret=-1;
        if(strcmp(s1,s2)==0)
            ret=0;
    }
    return ret;
}
char*del(char*buf)
{
	char *ch;
	int i;
	for(i=0;buf[i]!='\0';i++)
	{
		if(buf[i+1]=='\0')
			break;
		if(buf[i]!='0')
			break;
	}
	ch=&buf[i];
	return ch;
}
int main()
{
    char *a[11],*t,buf[101];
    int n;
    scanf("%d",&n);
    for(int i=0;i<n;i++)
    {
        scanf("%s",buf);
		t=del(buf);
		a[i]=(char*)malloc(sizeof(char)*(strlen(t)+1));
		strcpy(a[i],t);
    }
    for(int i=0;i<n;i++)
    {
        for(int j=i+1;j<n;j++)
        {
            if(greater(a[i],a[j])==1)
            {
		        t=a[i];
				a[i]=a[j];
				a[j]=t;
            }
        }
    }
    for(int i=0;i<n;i++)
    {
        printf("%s\n",a[i]);
    }
    return 0;
}
#include <stdio.h>
#include <malloc.h>
int main()
{
	int m,n;
	scanf("%d %d",&m,&n);
	int  *a;
	a=(int *)malloc(sizeof(int)*(m*n));
	for(int i=0;i<m;i++)
	{
		for(int j=0;j<n;j++)
		{
			scanf("%d",&a[n*i+j]);
		}
	}
	for(int j=0;j<n;j++)
	{
		for(int i=0;i<m;i++)
		{
			printf("%d ",a[n*i+j]);
		}
		printf("\n");
	}
	return 0;
}
#include <stdio.h>
#include <string.h>
#include <malloc.h>
void find(char *name[], int n, int *p)
{
    int idex=0;
    char*ch=name[0];
    for(int i=1;i<n;i++)
    {
        if(strcmp(ch,name[i])<0)
        {
            ch=name[i];
            idex=i;
        }
    }
    *p=idex;
}
int main()
{
    char *name[100];
    char str[6];
    int i=0;
    for(i=0;;i++)
    {
        gets(str);
        if(strcmp(str,"*****")==0)
        {
            break;
        }
		else
		{
			name[i]=(char*)malloc(sizeof(char)*6);
			strcpy(name[i],str);
		}
    }
    int flag=0,n=i;
    find(name,n,&flag);
    printf("%s",name[flag]);
}
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
void sort1(int a[], int n, int (*cmp)(int x,int y));
int CmpAsc(int x, int y); /*按升序要求判断两元素是否逆序*/
int CmpDec(int x, int y); /*按降序要求判断两元素是否逆序*/
int CmpAbsAsc(int x, int y);  /*按绝对值升序要求判断两元素是否逆序*/
int main()
{
   int a[10],i,n;
   int slt;
 /*读入n和n个整数,存入数组a*/
  	scanf("%d",&n);
	for(i=0;i<n;i++)
		scanf("%d",&a[i]);
   /*读入用户的选择,存入slt; */
	scanf("%d",&slt);
    switch(slt)
   {
     case 1:   sort1(a, n, CmpAsc); break;
     case 2:   sort1(a, n, CmpDec); break;
     case 3:   sort1(a, n, CmpAbsAsc);break;
   }
   /*输出排序后的数组*/
   for(i=0;i<n-1;i++)
       printf("%d ",a[i]);
   printf("%d\n",a[n-1]);
   return 0;
}

void sort1(int a[], int n, int (*cmp)(int x,int y))
{
 /*对数组a排序,排序原则由cmp指定,若cmp为真,表示两元素逆序*/
 	int t;
 	for(int i=0;i<n-1;i++)
	 	for(int j=i+1;j<n;j++)//冒泡循环
		{
			if(cmp(a[i],a[j]))
			{
				t=a[i];
				a[i]=a[j];
				a[j]=t;
			}
		}
 }

int CmpAsc(int x, int y)
{
 //如果x>y返回1,否则返回0;
 	if(x>y)
 		return 1;
 	return 0;

}
int CmpDec(int x, int y)
{
 //如果x<y返回1,否则返回0;
 	if(x<y)
 		return 1;
 	return 0;
 }
int CmpAbsAsc(int x, int y)
{

//如果abs(x)>abs(y)返回1,否则返回0
	if(abs(x)>abs(y))
		return 1;
//若绝对值相同,符号不同时,负数在前;
	if(abs(x)==abs(y)&&x>y)//abs头文件不是math.h而是stdlib.h
		return 1;
	return 0;
}
#include <stdio.h>
#include<string.h>
int main()
{
    char a[30001]={0},b[31]={0},c[1001][31]={0};
    int len,i,j=0,o,l,q=0;
    while(gets(a),strcmp(a,"#")!=0){
    l=0;
    len=strlen(a);
    for(i=0;i<=len;i++){
    if(a[i]!=' '){
    b[j]=a[i];
    j++;}
    if((a[i-1]!=' '&&a[i]==' '&&i>0)||(a[i-1]!=' '&&a[i]=='\0'&&i>0)){
    for(o=0;o<l;o++)
    if(strcmp(c[o],b)==0)
    q=1;
    if(q==0){
    strcpy(c[l],b);
    l++;}
    memset(b,'\0',sizeof(b));
    j=0,q=0;}}
    printf("%d\n",l);}
    return 0;
}
#include <stdio.h>
#define SWAP(a, b, t) { t=a; a=b; b=t; }
int main()
{
    char a,b,c,t;
    scanf("%c %c %c",&a,&b,&c);
    if(a<b)
    {
        SWAP(a,b,t)

    }
    if(a<c)
    {
        SWAP(a,c,t);
    }
    if(b<c)
    {
        SWAP(b,c,t);
    }
    printf("%c %c %c\n",a,b,c);
    return 0;
}

答案2:

#include<stdio.h>
#define SWAP(a,b,t){t=a; a=b; b=t;}
int main()
{
	char a,b,c,t;
	scanf("%c %c %c",&a,&b,&c);
	if(a<b)
		SWAP(a,b,t);
	if(a<c)
		SWAP(a,c,t);
	if(b<c)
		SWAP(b,c,t);
	printf("%c %c %c\n",a,b,c);
	return 0;
}
#include<stdio.h>
 struct u{
    char ID[20];
    char name[30];
    int a,b,c;
};
int main()
{
    int i,max=0,n,sum[100];//存储每个学生的总成绩
    struct u stu[100];//结构体数组
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%s %s %d %d %d",stu[i].ID,stu[i].name,&stu[i].a,&stu[i].b,&stu[i].c);//输入各个学生的数据存入结构体数组
        sum[i]=stu[i].a+stu[i].b+stu[i].c;//将每个学生的总成绩存入数组
        if(sum[i]>sum[max])//记录最高成绩的下标
            max=i;
    }
    printf("%s %s %d %d %d\n",stu[max].ID,stu[max].name,stu[max].a,stu[max].b,stu[max].c);
    return 0;
}
#include <stdio.h>
typedef struct s{
char name[21];
int a,b,c;	
}G;
int main()
{
 int n;
 scanf("%d",&n);
 int i=0;
 int max=0;
 G stu[100];
 for(i=0;i<n;i++){
 	scanf("%s %d %d %d",stu[i].name,&stu[i].a,&stu[i].b,&stu[i].c);
 	 if(stu[i].a>stu[max].a){
        	max=i;
		}
		else if(stu[i].a==stu[max].a){
			if(stu[i].b>stu[max].b){
				max=i;
			}
			else if(stu[i].b==stu[max].b){
				if(stu[i].c>stu[max].c)
				{
					max=i;
				}
			}		      
    }
 }
 printf("%s %04d-%02d-%02d",stu[max].name,stu[max].a,stu[max].b,stu[max].c);
return 0; 
}
#include <stdio.h>
#include <string.h>
typedef struct s{
char name[21];
char id[21];
int a,b,c;	
}G;
int main()
{
 int n;
 int flag=0;
 scanf("%d",&n);
 int i=0;
 int max=0;
 G stu[1000];
 for(i=0;i<n;i++){
 	scanf("%s %s %d %d %d",stu[i].id,stu[i].name,&stu[i].a,&stu[i].b,&stu[i].c);
 }
  char g[25];
    scanf("%s",g);
    int j=0;
 for(j=0;j<n;j++){
  if(strcmp(stu[j].id,g)==0){
 	max=j;
 	flag=1;
 	break;
 }	
 	
 } 
// printf("%s %04d-%02d-%02d",stu[max].name,stu[max].a,stu[max].b,stu[max].c);
if(flag==0){
	printf("Not Found");
}
else{
 printf("%s %s %d %d %d",stu[max].id,stu[max].name,stu[max].a,stu[max].b,stu[max].c);
}
return 0; 
}
#include<stdio.h>
#include <math.h>
typedef struct dis
    {
        int x;
        int y;
        int d;
    }s;
int main()
{
    int n;
    s a[11];
    scanf("%d",&n);
    for(int i=0;i<n;i++)
    {
            scanf("%d %d",&a[i].x,&a[i].y);
            a[i].d=pow(a[i].x*a[i].x+a[i].y*a[i].y,0.5);
    }
    s t;
    for(int i=0;i<n;i++)
    {
        for(int k=i+1;k<n;k++)
        {
            if(a[i].d>a[k].d)
            {
                t=a[i];
                a[i]=a[k];
                a[k]=t;

            }
        }
    }
    for(int i=0;i<n;i++)
    {
        printf("(%d,%d) ",a[i].x,a[i].y);
    }
    return 0;
}
#include<stdio.h>
#include<math.h>
struct Dis{
	int x;  //x轴坐标值 
	int y;  //y轴坐标值 
}; 

int main()
{
	int i,j,n;
	scanf("%d",&n);  //输入整数的个数n
	struct Dis a[n];   //创建一个结构体数组
	struct Dis temp;    //定义结构体变量temp,用作交换时的临时变量。
	//输入数据
	for(i=0;i<n;i++)
	{
		scanf("%d%d",&a[i].x,&a[i].y);   //输入x,y
	} 
	//进行升序排序,到时候逆序输出就是降序排序 
	for(i=0;i<n;i++)
	for(j=i+1;j<n;j++)
	{
		if(a[i].x==a[j].x)    //如果横坐标相同,按照纵坐标排序 
		{
			if(a[i].y>a[j].y)
			{
				temp=a[i];a[i]=a[j];a[j]=temp;	
			}	
		}
		else   //横坐标不同,按照纵坐标排序 
		{
			if(a[i].x>a[j].x)
			{
				temp=a[i];a[i]=a[j];a[j]=temp;	
			}	
		}	
	} 
	//输出升序排好序的数据
	for(i=0;i<n;i++)
		printf("(%d,%d) ",a[i].x,a[i].y);
	printf("\n");
	//逆序输出,得到降序序列
	for(i=n-1;i>=0;i--)
		printf("(%d,%d) ",a[i].x,a[i].y); 
	printf("\n");
	return 0; 
}

答案1:

#include<stdio.h>
#include<string.h>
#define swap(a,b,t) {t=a;a=b;b=t;}
struct Student{
	long long id;  //学号
	char name[21];   //姓名
	int a,b,c;   //三门课的成绩 
};

int main()
{
	int i,j,k,n,flag=0;
	struct Student stu[102];   //定义一个结构体数组 
	struct Student p,t;   
	scanf("%d",&n);  //输入学生人数
	//输入学生信息
	for(i=0;i<n;i++)
		scanf("%lld%s%d%d%d",&stu[i].id,stu[i].name,&stu[i].a,&stu[i].b,&stu[i].c);
	//输入要添加的信息 
	scanf("%lld%s%d%d%d",&p.id,p.name,&p.a,&p.b,&p.c);
	
	for(i=0;i<n-1;i++)
	for(j=i+1;j<n;j++)
	{
		if(stu[i].id>stu[j].id)
			swap(stu[i],stu[j],t);
	}
	
	//利用循环判断能否插入及插入的位置
	for(i=0;i<n;i++)
	{ 
		if(stu[i].id==p.id)   //若学号相等则存在重复,无法插入,结束循环 
			break;
		if(i==0&&p.id<stu[0].id)  //考虑需要在第一个元素之前插入的情况 
		{
			flag=1;
			k=0;
			break;
		}
		if(p.id>stu[i].id&&(p.id<stu[i+1].id||i==n-1))
		{
			flag=1;   //标志着有合法插入位置 
			k=i+1; //表示应该在k位置插入信息 
			break;	
		} 		
	} 
	//插入
	if(flag==0)
		printf("error!\n");
	else
	{
		for(i=n;i>k;i--)    //把插入位置后的元素都后移 
		{
			stu[i]=stu[i-1];
		}
		stu[k]=p; 
		//输出插入后的元素 
		for(i=0;i<=n;i++) 
		{
			printf("%lld %s %d %d %d\n",stu[i].id,stu[i].name,stu[i].a,stu[i].b,stu[i].c);
		}
	} 
	return 0;
}

答案2:

#include <string.h>
#include <stdio.h>
typedef struct s{
char name[13];
char id[21];
int a,b,c;	
}SY;
int main()
{
	int n;
	scanf("%d",&n);
	SY b[105];
	int flag=0; 
	int i=0;
	for(i=0;i<n;i++){
		scanf("%s %s %d %d %d",b[i].id,b[i].name,&b[i].a,&b[i].b,&b[i].c); // 这里没有逻辑错误,但是建议使用%12s和%20s限制输入的长度,避免溢出
	}
	getchar();
	SY t,y;
	scanf("%s %s %d %d %d",&y.id,&y.name,&y.a,&y.b,&y.c);
	  b[n]=y;
	for(i=0;i<n;i++){
		 if(strcmp(b[i].id, y.id) == 0){
			flag=1;
			break;
		}
	}
	if(flag==1){
			printf("error!");
	}
	if(flag==0){
	for(i=n-1;i>=0;i--){  
		if(strcmp(y.id,b[i].id)<0){
		 t=b[i];
		 b[i]=b[i+1];
		 b[i+1]=t;
		}	
	}
	for(i=0;i<n+1;i++){
            printf("%s %s %d %d %d\n",b[i].id,b[i].name,b[i].a,b[i].b,b[i].c); // 这里应该加一个换行符\n,否则输出不会换行
 } 
}
 	return 0;
}
#include <stdio.h>
#include <string.h>
int main()
{
    typedef struct student
    {
        char no[13];
        char name[25];
        int c;
        int m;
        int e;
    }date;
    int flag=0;
    date a[101];
    int n;
    int idex;
    scanf("%d",&n);
    for(int i=0;i<n;i++)
    {
        scanf("%s %s %d %d %d",&a[i].no,&a[i].name,&a[i].c,&a[i].m,&a[i].e);
    }
    char num[13];
    scanf("%s",num);
    for(int i=0;i<n;i++)
    {
        if(strcmp(a[i].no,num)==0)
        {
            flag=1;
            break;
        }
    }
    if(flag==0)
    {
        printf("error!\n");
    }
    else
    {
        for(int i=0;i<n;i++)
        {
            if(strcmp(a[i].no,num)==0)
            {
                idex=i;
            }
        }
        for(int i=0;i<n;i++)
        {
            if(i==idex)
            {
                continue;
            }
            printf("%s %s %d %d %d\n",a[i].no,a[i].name,a[i].c,a[i].m,a[i].e);
        }
    }
    return 0;
}
#include <stdio.h>
#include<math.h>
#include<limits.h>
#include<string.h>
#include<ctype.h>
#include<malloc.h>
typedef struct  lollipop
{
     double c;
     int b;
}POP;
int main()
{
    POP a[10],b;
    int n,i,m,j,num=0;
    double sum=0.0;
    scanf("%d",&n);
    scanf("%d",&m);
    for(i=0;i<m;i++)
    scanf("%lf %d",&a[i].c,&a[i].b);
    for(i=0;i<m-1;i++)
    for(j=1;j<m-i;j++)
    {
        if(a[j-1].c>a[j].c)
        {
            b=a[j-1];
            a[j-1]=a[j];
            a[j]=b;
        }
    }
    for(i=0;i<m;i++)
    {
        if(num+a[i].b<=n)
        {
            sum+=a[i].b*a[i].c;
            num+=a[i].b;
        }
        else
        {
            a[i].b=n-num;
            sum+=a[i].b*a[i].c;
            num+=a[i].b;
        }
        if(num==n)
        {
         printf("%.2lf",sum);
         return 0;
        }
    }
}

#include <stdio.h>
#include <string.h>
int main()
{
	typedef struct voter
	{
		char name[11];
		int votes;
	}date;
	int n;
	scanf("%d",&n);
	date a[5]=
	{
		{"zhang",0},
		{"wang",0},
		{"zhao",0},
		{"liu",0},
		{"miao",0},
		
	};
	char s[6];
	for(int i=0;i<n;i++)
	{
		scanf("%s",s);
		for(int k=0;k<5;k++)
		{
			if(strcmp(a[k].name,s)==0)
			{
				a[k].votes++;
			}
		}
	}
	for(int i=0;i<5;i++)
	{
		printf("%s %d\n",a[i].name,a[i].votes);
	}
	return 0;
}

#include <stdio.h>
#include <string.h>
int main()
{
	typedef struct student
	{
		char name[25];
		 int votes;
	}date;
	date a[505];
	char name[25];
	int i=0,j=0,flag,max=0;
	while(strcmp("#",gets(name))!=0)
	{
		flag=1;
		for(i=0;i<j;i++)
		{
			if(strcmp(name,a[i].name)==0)
			{
				flag=0;
				a[i].votes++;
			}
		}
		if(flag==1)
		{
			strcpy(a[j].name,name);
			a[j].votes=1;
			j++;
		}
		for(i=0;i<j;i++)
		{
			if(a[i].votes>a[max].votes)
			{
				max=i;
			}
		}
	}
	printf("%s",a[max].name);
	return 0;
}
#include <stdio.h>
int main()
{
	typedef struct friend
	{
		char name[21];
		int y;int m;int d;
	}date;
	date a[11],t;
	int n;
	scanf("%d",&n);
	for(int i=0;i<n;i++)
	{
		scanf("%s %d %d %d",a[i].name,&a[i].y,&a[i].m,&a[i].d);
	}
	for(int j=0;j<n;j++)
	{
		for(int k=j+1;k<n;k++)
		{
			if(a[j].m>a[k].m)
			{
				t=a[j];
				a[j]=a[k];
				a[k]=t;
			}
			else if(a[j].m==a[k].m)
			{
				if(a[j].d>a[k].d)
				{
					t=a[j];
					a[j]=a[k];
					a[k]=t;
				}
			}
		}
	}
	for(int i=0;i<n;i++)
	{
		printf("%s %d-%02d-%02d\n",a[i].name,a[i].y,a[i].m,a[i].d);
	}
	return 0;
}
#include <stdio.h>
int main()
{
	typedef struct star
	{
		int x;
		int y;
	}date;
	date a[303];
	int n;
	scanf("%d",&n);
	for(int i=0;i<n;i++)
	{
		scanf("%d %d",&a[i].x,&a[i].y);
	}
	date t;
	for(int i=0;i<n;i++)
	{
		for(int j=i+1;j<n;j++)
		{
			if(a[i].x>a[j].x)
			{
				t=a[i];
				a[i]=a[j];
				a[j]=t;
			}
			else if(a[i].x==a[j].x)
			{
				if(a[i].y>a[j].y)
				{
					t=a[i];
					a[i]=a[j];
					a[j]=t;
				}
			}
		}
	}
	for(int i=1;i<n;i++)
	{
		if(a[i].x==a[i-1].x&&a[i].y==a[i-1].y)
		{
			n--;
		}
	}
	printf("%d\n",n);
	return 0;
}
#include <stdio.h>
#include <malloc.h>
int main()
{
    typedef struct student
    {
        char name[21];
        int s1;
        int s2;
        char ch1;
        char ch2;
        int num;
        int sum;
    }date;
    date a[11];
    int n,sum=0,max=0,idex;
    scanf("%d",&n);
    for(int i=0;i<n;i++)
    {
        a[i].sum=0;
        scanf("%s %d %d %c %c %d",a[i].name,&a[i].s1,&a[i].s2,&a[i].ch1,&a[i].ch2,&a[i].num);
        if(a[i].s1>80&&a[i].num>0)
            a[i].sum+=8000;
        if(a[i].s1>85&&a[i].s2>80)
            a[i].sum+=4000;
        if(a[i].s1>90)
            a[i].sum+=2000;
        if(a[i].s1>85&&a[i].ch2=='Y')
            a[i].sum+=1000;
        if(a[i].s2>80&&a[i].ch1=='Y')
            a[i].sum+=850;
        sum+=a[i].sum;
        if(a[i].sum>a[max].sum)
        {
            max=i;
        }
        
    }
    for(int i=0;i<n;i++)
    {
        
    }
    printf("%s\n%d\n%d",a[max].name,a[max].sum,sum);

    return 0;
}
#include <stdio.h>
#include <string.h>
int main()
{
    typedef struct student
    {
        char no[13];
        char name[21];
        int c,m,e;
    }date;
    date a[101],t;
    int n;
    scanf("%d",&n);
    for(int i=0;i<n;i++)
    {
        scanf("%s %s %d %d %d",a[i].no,a[i].name,&a[i].c,&a[i].m,&a[i].e);
    }
    int num;
    scanf("%d",&num);
    if(num==1)
    {
        for(int i=0;i<n;i++)
            for(int j=i+1;j<n;j++)
            {
                if(a[i].c<a[j].c)
                {
                    t=a[i];
				    a[i]=a[j];
				    a[j]=t;
                }
                else if(a[i].c==a[j].c)
                {
                    if(strcmp(a[i].no,a[j].no)>0)
                    {
                        t=a[i];
                        a[i]=a[j];
                        a[j]=t;
                    }
                }
            }
    }
    if(num==2)
    {
        for(int i=0;i<n;i++)
            for(int j=i+1;j<n;j++)
            {
                if(a[i].m<a[j].m)
                {
                    t=a[i];
				    a[i]=a[j];
				    a[j]=t;
                }
                else if(a[i].m==a[j].m)
                {
                    if(strcmp(a[i].no,a[j].no)>0)
                    {
                        t=a[i];
                        a[i]=a[j];
                        a[j]=t;
                    }
                }
            }
    }
    if(num==3)
    {
        for(int i=0;i<n;i++)
            for(int j=i+1;j<n;j++)
            {
                if(a[i].e<a[j].e)
                {
                    t=a[i];
				    a[i]=a[j];
				    a[j]=t;
                }
                else if(a[i].e==a[j].e)
                {
                    if(strcmp(a[i].no,a[j].no)>0)
                    {
                        t=a[i];
                        a[i]=a[j];
                        a[j]=t;
                    }
                }
            }
    }
    
    for(int i=0;i<n;i++)
    {
        printf("%s %s %d %d %d\n",a[i].no,a[i].name,a[i].c,a[i].m,a[i].e);
    }
    return 0;
}
#include <stdio.h>
#include <string.h>
int main()
{
    typedef struct student
    {
        char no[13];
        char name[21];
        int c,m,e;
        int sum;
    }date;
    date a[101],t;
    int n;
    scanf("%d",&n);
    for(int i=0;i<n;i++)
    {
        scanf("%s %s %d %d %d",a[i].no,a[i].name,&a[i].c,&a[i].m,&a[i].e);
        a[i].sum=a[i].c+a[i].m+a[i].e;
    }
    for(int i=0;i<n;i++)
        for(int j=i+1;j<n;j++)
        {
            if(a[i].sum<a[j].sum)
            {
                t=a[i];
				a[i]=a[j];
				a[j]=t;
            }
            else if(a[i].sum==a[j].sum)
            {
                if(strcmp(a[i].name,a[j].name)>0)
                {
                    t=a[i];
				    a[i]=a[j];
				    a[j]=t;
                }
            }
        }
     for(int i=0;i<n;i++)
    {
        printf("%s %s %d %d %d %d\n",a[i].no,a[i].name,a[i].c,a[i].m,a[i].e,a[i].sum);
    }
    return 0;
}
#include <stdio.h>
int main()
{
    typedef struct monkey
    {
        int id;
    }date;
    date a[102];
    int m,n,k=1;
    scanf("%d %d",&n,&m);
    for(int i=1;i<=n;i++)
    {
        a[i].id=i;
    }
    while(n>1)
    {
        if((k+m-1)%n!=0)
        {
            k=(k+m-1)%n;
        }
        else k=n;
        for(int i=k;i<=n;i++)
        {
            a[i]=a[i+1];
        }
        n--;
        if(k==n+1)
        {
            k=1;
        }
    }
    printf("%d",a[1].id);
    return 0;
}
//就三百组点,全给试一遍就完事了
#include<stdio.h>
struct star
{
	double x, y;
}s[301];
int main()
{
	int n;
	int i, j, t, answer;
	int m, max = 2;
	double k;
	scanf("%d", &n);
	for (i = 0; i < n; i++)
		scanf("%lf %lf", &s[i].x, &s[i].y);
	for (i = 0; i < n - 1; i++)//每次选两个点,遍历所有可能的直线
	{
		for (j = i+1; j < n; j++)
		{
			m = 2;//两点确定一条直线,至少有两个点在一条直线上
			answer = 1;//记录斜率的状况
			if (s[i].x != s[j].x)
				k = (s[i].y - s[j].y) / (s[i].x - s[j].x);//有斜率的话,套斜率公式求斜率
			else
				answer = 0;//没有的话,记录斜率状态
			if (answer == 1)
			{
				for (t = 0; t < n; t++)//遍历出点i,j外的所有点,寻找在当前判断的这条直线上的点
					if (t != i && t != j)
						if (s[t].y - s[i].y == k * (s[t].x - s[i].x))//公式原型:y-y0=k(x-x0);
							m++;
			}
			else
			{
				for (t = 0; t < n; t++)
					if (t != i && t != j)
						if (s[t].x == s[i].x)//只要横坐标相等,就在线上
							m++;
			}
			if (m > max)
				max = m;
		}
	}
	printf("%d", max);
	return 0;
}
#include <stdio.h>
#include <string.h>
struct score
{
    char name[20];
    int n;
    int arr[10];
    int s;
};
int main()
{
    int b[10],m,i,j,c,d=0,z;
    struct score a[100],t;
    scanf("%d%d%d",&m,&c,&z);
    for(i=0;i<c;i++)
    {
        scanf("%d",&b[i]);
    }
    for(i=0;i<m;i++)
    {
        a[i].s=0;
        scanf("%s%d",&a[i].name,&a[i].n);
        for(j=0; j<a[i].n; j++)
        {
            scanf("%d",&a[i].arr[j]);
        }
    }
    for(i=0;i<m;i++)
    {
        for(j=0;j<a[i].n;j++)
        {
            a[i].s+=b[a[i].arr[j]-1];
        }
    }
    for(i=1;i<=m;i++)
    {
        for(j=0;j<m-i;j++)
        {
            if(a[j].s<a[j+1].s)
            {
                t=a[j];
                a[j]=a[j+1];
                a[j+1]=t;
            }
            else if(a[j].s==a[j+1].s&&strcmp(a[j].name,a[j+1].name)>0)
            {
                t=a[j];
                a[j]=a[j+1];
                a[j+1]=t;
            }
        }
    }
    for(i=0;i<m;i++)
    {
        if(a[i].s>=z)
        {
            d++;
        }
    }
    printf("%d\n",d);
    for(i=0; i<m; i++)
    {
        if(a[i].s>=z)
        {
             printf("%s %d\n",a[i].name,a[i].s);
        }
    }
    return 0;
}
#include<stdio.h>
#include<string.h>
struct player{//定义结构体player
    char name[11];//名字
    int sum;//总时长
    int t;//答对题目的数目
};
int main(){
    struct player man[120];
    int n;
    scanf("%d",&n);
    int num=0;
    while((scanf("%s",man[num].name))!=EOF){
        man[num].t=0;				//输入一个人将其答对题目初始化为0
        man[num].sum=0;				//输入一个人将答题总时初始化为0
        int  c;
		for(int j=0;j<n;j++){
			scanf("%d",&c);//输入一个数c表示这一题的时长
			if(c>0){//如果c大于0说明答对了,c此时代表的是答题所用时长
				man[num].sum+=c;//总时长加上c即为现在总用时
				man[num].t++;//答对题目数目加1
			}
			char b;//录入这个数的下一个字符
			b=getchar();
			if(b=='('){//如果答对没有罚时b应为空格,如果没有答对也应该为空格
				scanf("%d",&c);//此时录入c,c表示在答对前答错的次数
				man[num].sum+=c*20;//求现在的总时长
				getchar();//将)从缓冲区取出
			}
		}
		num++;//进入下一位选手
    }
    for(int i=0;i<num-1;i++){//按题目数量排序
        for(int j=i+1;j<num;j++){
            if(man[i].t<man[j].t){
                struct player killer=man[i];
                man[i]=man[j];
                man[j]=killer;
            }
        }
    }
    for(int i=0;i<num-1;i++){//题目数量相同按时长排序
        for(int j=i+1;j<num;j++){
            if(man[i].t==man[j].t&&man[i].sum>man[j].sum){
                struct player killer=man[i];
                man[i]=man[j];
                man[j]=killer;
            }
        }
    }
    for(int i=0;i<num-1;i++){//都相同按字典序排序
        for(int j=i+1;j<num;j++){
            if(man[i].t==man[j].t&&man[i].sum==man[j].sum&&strcmp(man[i].name,man[j].name)>0){
                struct player killer=man[i];
                man[i]=man[j];
                man[j]=killer;
            }
        }
    }
    for(int i=0;i<num;i++){//按格式输出
        printf("%-10s %2d %4d\n",man[i].name,man[i].t,man[i].sum);
    }
    return 0;
}
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
/*该函数用于除去s1和s2的空格符和制表符再进行判断*/
int Judge(char *s1, char *s2)
{
	char a1[1000], a2[1000];
	int i, j = 0;
	for(i = 0; s1[i] != '\0'; i++){
		if(s1[i] != ' ' && s1[i] != '\t' && s1[i] != '\n')
			a1[j++] = s1[i];
	}
	a1[j] = '\0';
	j = 0;
	for(i = 0; s2[i] != '\0'; i++){
		if(s2[i] != ' ' && s2[i] != '\t' && s2[i] !='\n')
			a2[j++] = s2[i];
	}
	a2[j] = '\0';
	if(strlen(a1) == strlen(a2)){
		for(i = 0; i < strlen(a1); i++){
			if(a1[i] != a2[i])
				return 0;
		}
		return 1;
	}
	else
		return 0;
}

int main()
{
	/*a和b做换行符计数器,flag当控制器,控制文件的读入*/
	int n, i, flag = 0, a, b;
	/*buf和s做缓存判断,s1和s2分别是两个文件*/
	char s[1000], s1[1000], s2[1000], buf[1000];
	scanf("%d",&n);
	for(i = 0; i < n; i++){
		flag = 0;
		a = 0;
		b = 0;
		memset(s1,0,sizeof(s1));
		memset(s1,0,sizeof(s2));
		while(1){
			if(flag == 0){
				gets(s);
				if(strcmp(s,"START") == 0)
					flag = 1;
			}
			else if(flag == 1){
				gets(s);
				flag = 2;
				if(strcmp(s,"END") == 0)	//这里先判断是否已经结束,如果没有结束再将s复制给s1,下面同理
					break;
				strcpy(s1,s);
				a++;
			}
			else if(flag == 2){
				gets(buf);
				if(strcmp(buf,"END") == 0)
					break;
				strcat(s1,buf);
				a++;
			}
		}
		flag = 0;
		while(1){
			if(flag == 0){
				gets(s);
				if(strcmp(s,"START") == 0)
					flag = 1;
			}
			else if(flag == 1){
				gets(s);
				flag = 2;
				if(strcmp(s2,"END") == 0)
					break;
				strcpy(s2,s);
				b++;
			}
			else if(flag == 2){
				gets(buf);
				if(strcmp(buf,"END") == 0)
					break;
				strcat(s2,buf);
				b++;
			}
		}
		if(strcmp(s1,s2) == 0 && a == b)
			printf("Accepted\n");
		else{
			if(Judge(s1,s2))
				printf("Presentation Error\n");
			else
				printf("Wrong Answer\n");
		}
	}
	return 0;
}
#include <stdio.h>
#include <math.h>
int main()
{
	int m,n,i,j;
	scanf("%d %d",&m,&n);
	int f[m];
	int g[n];
	for(i=0;i<m;i++)
	{
		scanf("%d",&f[i]);
	}
	for(i=0;i<n;i++)
	{
		scanf("%d",&g[i]);
	}
	int max;
	max=abs(f[0]-g[0]);
	for(i=0;i<m;i++)
	for(j=0;j<n;j++)
	{
		if(abs(f[i]-g[j])<max)
			max=abs(f[i]-g[j]);
	}
	printf("%d\n",max);
	return 0;
}
------本文已结束,感谢您的阅读------
THE END
喜欢就支持一下吧
点赞6 分享
评论 抢沙发
头像
善语结善缘,恶语伤人心
提交
头像

昵称

取消
昵称常用语 夸夸
夸夸
还有吗!没看够!
表情图片

    暂无评论内容