xdoj计算机程序设计收集

XDOJ计算机程序设计参考代码

1、由HarryChen编写代码并收集在xdoj上出现的所有考题。

2、本文仅用于学习并修改同学们自己的代码。为了达到学习的目的,不建议直接盗链提交代码。

1、三角形判断
#include
int main()
{
     
	int a,b,c,C;
	scanf("%d %d %d",&a,&b,&c);
	C=a+b+c;
    (((a+b>c)&&(a+c>b))&&(b+c>a))==1?printf("%d",C):printf("No");
    return 0;
}
2、部分排序
#include
int main()
{
     
	int num[1000],i,j,m,n,trans;
	scanf("%d %d",&m,&n);
	for(i=0;i<m;i++) scanf("%d",&num[i]);
	for(i=0;i<m;i++)
	{
     
		for(j=0;j<m-1;j++)
		{
     
			if(num[j]<num[j+1])
			{
     
				trans=num[j];
				num[j]=num[j+1];
				num[j+1]=trans;
			}
		}
	}
	if(m>n) for(i=0;i<n;i++) printf("%d ",num[i]);
	if(m<=n) for(i=0;i<m;i++) printf("%d ",num[i]);
} 
3、字符串查找
#include
int main()
{
     
	char a[26],b[256],ch;
	int i,j,m,a1,b1,time=0;
	gets(a);
	gets(b);
	for(ch=97;ch<=122;ch++)
	{
     
		a1=0;b1=0;
		for(i=0;i<=26;i++)
	    {
     
		    if(ch==a[i]) a1=1;
	    }
		for(i=0;i<=256;i++)
	    {
     
		    if(ch==b[i]) b1=1;
	    }
		if(a1+b1==2)
		{
     
		    printf("%c ",ch);
		    time++;
	    }
	}
	if(time==0) printf("No");
} 

4、世界杯排名
#include
struct info 
{
     
	char name[20];
	int win,tie,lose,jq,sq,jf,jsq;
} ;
struct info trans;
int main()
{
     
	int m,n;
    scanf("%d %d",&n,&m);
	void input(struct info t[],int n); 
	void output(struct info t[],int m);
	void sort(struct info t[],int n);
	struct info t[32],*p=t;
	input(p,n);
	sort(p,n);
	output(p,m);
	return 0;
}
void input(struct info t[],int n) 
{
     
	int i;
	for(i=0;i<n;i++)
	{
     
		scanf("%s %d %d %d %d %d",&t[i].name,&t[i].win,&t[i].tie,&t[i].lose,&t[i].jq,&t[i].sq); 
		t[i].jf=t[i].win*3+t[i].tie;
		t[i].jsq=t[i].jq-t[i].sq;
	}	
}
void sort(struct info t[],int n)
{
     
	int i,j,k;
	for(k=0;k<n-1;k++)
	{
     
    	for(i=0;i<n-1;i++)
    	{
     
	    	for(j=0;j<n-1;j++)
	    	{
     
	    		if(t[j].jf<t[j+1].jf)
		    	{
     
		    		trans=t[j];
		     		t[j]=t[j+1];
		     		t[j+1]=trans;
		     	}
	    	}
	    }
    }
	for(i=0;i<n;i++)
	{
     
		for(j=0;j<n-1;j++)
		{
     
			if(t[j].jf==t[j+1].jf&&t[j].jsq<t[j+1].jsq)
			{
     
				trans=t[j];
				t[j]=t[j+1];
				t[j+1]=trans;
			}
		}
	}
}
void output(struct info t[],int m)
{
     
	int i;
	for(i=0;i<m;i++) printf("%d %s %d %d\n",i+1,t[i].name,t[i].win*3+t[i].tie,t[i].jsq); 
}
6、温度转换
#include
int main()
{
     
	int f;
	float c;
	scanf("%d",&f);
	c=(f-32)*5/9.0;
	printf("%.2f",c);
	return 0;
} 
7、计算球体重量
#include
double Ag(double v)
{
     
	double m;
	m=19.3*v;
	return m;
}
double Fe(double v)
{
     
	double m;
	m=7.86*v;
	return m;
}
int main()
{
     
	double d1,d2,v1,v2;
	scanf("%lf %lf",&d1,&d2);
	v1=3.1415926*d1*d1*d1/6000;
	v2=3.1415926*d2*d2*d2/6000;
	printf("%.3lf %.3lf\n",Fe(v1),Ag(v2));
	return 0;
} 
8、阶梯电价计费
#include
int main()
{
     
	float a,ans;
	scanf("%f",&a);
	if (a<=110) ans=a*0.5;
	else if (a>110&&a<=210) ans=55+(a-110)*0.55;
	else if (a>210) ans=110+(a-210)*0.70;
	printf("%.2f",ans);
}
9、计算某月天数
#include
int main() 
{
     
	int y,m,d,leap;
	scanf("%d %d",&y,&m);
	if(m==1||m==3||m==5||m==7||m==8||m==10||m==12) 
	{
     
		d=31;
		printf("%d",d);
	}
	else if(m==4||m==6||m==9||m==11)
	{
     
		d=30;
		printf("%d",d);
	}
	else if(m==2)
	{
     
		if((y%4==0&&y%100!=0)||y%400==0)
		{
     
	    	d=29;
	    	printf("%d",d);	
		}
		else
		{
     
	    	d=28;
	    	printf("%d",d);	
		}
	} 
}
10、计算整数各位数字之和
#include
int main()
{
     
	int a,sum=0;
	scanf("%d",&a);
	while(a>=1)
	{
     
		sum+=a%10;
		a=(a-a%10)/10;
	}
	printf("%d\n",sum);
	return 0;
}
11、完数
#include
int main()
{
     
	int a,b,num1,num2,i=0;
	scanf("%d %d",&a,&b);
	for (num1=a;num1<=b;num1++)
	{
     
		i=0;
		for (num2=1;num2<num1;num2=++)
		{
     
			if (num1%num2==0) i=i+num2;
		}
		if(i==num1&&i!=1) printf("%d\n",i);
	}
	return 0;  
}
12、最大公约数
#include
#include
int main()
{
     
	int m,n,nummax,nummin;
	scanf("%d %d",&m,&n);
	while(m!=0||n!=0)
	{
     
		nummax=m;
	    for(nummax=m;nummax>=1;nummax--)
	    {
     
		    if((m%nummax==0)&&(n%nummax==0))
		    {
     
			    printf("%d\n",nummax);
			    break;	
		    }
	    }
	    scanf("%d %d",&m,&n);
	}
	return 0;
} 
14、递归数列
#include
double fun(int i)
{
     
	if(i==1) return 1;
	else return 1/(1+fun(i-1));
}
int main()
{
     
	int a,i,ans;
	scanf("%d",&a);
	for(i=0;i<a;i++)
	{
     
		scanf("%d",&ans);
	    printf("%.6lf\n",fun(ans));
	}	
}
16、歌德巴赫猜想
#include
void exec(int num)
{
     
	int i;
	for(i=2;i<num;i++)
	{
     
		if(isprime(i)+isprime(num-i)==0)
		{
     
			printf("%d %d\n",i,num-i);
			break;
		}
	}
}
int isprime(int a)
{
     
	int i,ans=1;
	for(i=2;i<a;i++) ans=ans*(a%i);
	if (ans==0) return 1;
	else return 0;
} 
int main()
{
     
	int time,a,i;
	scanf("%d",&time);
	for(i=1;i<=time;i++)
	{
     
		scanf("%d",&a);
		exec(a);
	}
	return 0;
}
18、回文数
//18
#include
#include
int main()
{
     
	int time,t,sum=0,i,len,num,a,d,reverse;
	scanf("%d",&time);
	for(i=1;i<=time;i++)
	{
     
	    scanf("%d",&a);
        num=a;
        len=0;
        sum=0;
        reverse=0;
		while(num>=1)
		{
     
		   num/=10;
            len++;
		}
		reverse=0;
		num=a;
		for (t=1;t<=len;t++)
		{
     
			d=num%10;
			num=(num-d)/10;
			reverse=reverse*10+d;
		}
		num=a;
		if(reverse==a)
		{
     
			while(num>=1)
	        {
     
		        sum+=num%10;
		        num=(num-num%10)/10;
	        }
	        printf("%d\n",sum);
		}
		if (reverse!=a) printf("no\n");
	}
	return 0;
}
19、排序2
#include
int main()
{
     
	int scanNum,i,j,t,trans,num2=0;
	scanf("%d",&scanNum);
	int a[100];
	for (i=0;i<100;i++) scanf("%d",&a[i]);
	for(j=0;j<100;j++)
	{
     
		for (i=0;i<100;i++)
	    {
     
    		trans=0;
    		if (a[i]<=a[i+1]) //switch
    		{
     
    			trans=a[i+1];
    			a[i+1]=a[i];
    			a[i]=trans;
    		}
    	}
	}
	for (i=0;i<100;i++)	if (a[i]%2==0) printf("%d ",a[i]);
	for (i=0;i<100;i++) if (a[i]%2!=0) printf("%d ",a[i]);
	printf("\n");
	return 0;
}
20、拼数字
#include
#include
int pnum(int a)// 0=prime//functional
{
     
	long ans=1;
	int i=2;
	while(i<a)
	{
     
		ans=a%i;
		i++;
		if(ans==0) break;
	}
	if(ans!=0||a==0) return 0;
	else return 1;
}
void exe(int a)
{
     
	int i;
	if (pnum(a)==1) 
	{
     
		for(i=a-1;i>=2;i--)
    	{
     
	    	if(a%i==0)
	     	{
     
	     		printf("%d\n",i);
	    		break;
	    	} 
    	}
	}
	else printf("%d\n",a);
}
int main()
{
     
	int a,num=0,i;
	char c[100];
	while(1)
	{
     
		gets(c);
		if(strlen(c)==0) break;
		num=0;
		for(i=0;i<=strlen(c);i++)
		{
     
			if(c[i]<='9'&&c[i]>='0')
			{
     
				num*=10;
				num+=c[i]-'0';
			}
		}
		exe(num);
	}	
	return 0;
}
21、马鞍点
#include
int isMin(int *p,int i,int m)
{
     
	int min=*p,t,ans1=0;
	for(t=0;t<m;t++)
	{
     
    	if(*(p-i+t)<min)
		{
     
			return 0;
			ans1=1;
		}
    }
    if(ans1==0)
	{
     
    	return 1;
	} 
}
int isMax(int *p,int i,int n)
{
     
	int max=*p,f,ans=0;
	for(f=0;f<n;f++)
	{
     
		if(*(p-100*i+100*f)>max)
		{
     
			return 0;
			ans=1;
		}
	}
	if(ans==0)
	{
     
    	return 1;
    }
}
int main()
{
     
	int a[100][100],*p=a;
	int m,n;
	int i,j;
	int ans=0;
	scanf("%d %d",&m,&n);
	for(i=0;i<m;i++) for(j=0;j<n;j++)  scanf("%d",&a[i][j]);
	for(i=0;i<m;i++)
	{
     
		for(j=0;j<n;j++)
		{
     
			if(isMin(p+100*i+j,j,n)==1&&isMax(p+100*i+j,i,m)==1)
	    	{
     
	    		ans=1;
	    		printf("%d %d %d\n",i,j,*(p+100*i+j));
	    	}
		}
	}
	if(ans==0) printf("no\n");
} 
22、等差数列
#include
int main()
{
     
	int num[100];
	int time,len,i,j,k,ans=1,trans;
	scanf("%d",&time);
	for(i=0;i<time;i++)
	{
     
		scanf("%d",&len);
		for(j=0;j<len;j++)	scanf("%d",&num[j]);
		for(j=0;j<len;j++)
		{
     
			for(k=0;k<len;k++)
			{
     
				if(num[k]>num[k+1])
				{
     
					trans=num[k];
					num[k]=num[k+1];
					num[k+1]=trans;
				}
			}
		}
		for(j=0;j<len-2;j++)
		{
     
			if(num[j+1]*2!=num[j]+num[j+2])
			{
     
				printf("no\n");
				ans=0;
				break;
			} 
		}
		if(ans==1&&num[1]-num[0]>=0) printf("%d\n",num[1]-num[0]);
		if(ans==1&&num[1]-num[0]<0) printf("%d\n",num[0]-num[1]);
		ans=1;
	}
	return 0;
}
23、寻找最长的行
#include
#include
int main(){
     
  int m,n=0;char a[100],b[100];
  while(strcmp(gets(a),"***end***")!=0)
  {
     
      m=strlen(a);
	  if(m>n){
     n=m;strcpy(b,a);}
	  if(m=n);
  }
  printf("%d\n%s\n",n,b);
  return 0;
}
24、字符串压缩
#include
#include
int main()
{
     
	char a[50];
	int i,j,len,s;
	gets(a);
	len=strlen(a);
	while(i<=len)
	{
     
		if (a[i]>=48&&a[i]<=57) i++;
		if (a[i]>=48&&a[i]<=57) i++;
		printf("%c",a[i]);
		if(a[i+1]>=48&&a[i+1]<=57)
		{
     
			s=(int)(a[i+1])-49;
			for(j=0;j<s;j++) printf("%c",a[i]);
		}
		if((a[i+2]>=48&&a[i+2]<=57)&&(a[i+1]>=48&&a[i+1]<=57))
		{
     
			s=((int)(a[i+1])-48)*9+(int)(a[i+2])-48;
			for(j=0;j<s;j++) printf("%c",a[i]);
		}
		s=0;
		i++;
	}
}
25、括号匹配
#include
#include
//inspired by LiuYing 
int ctra(int a)
{
     
	if(a<=0) return a;
	if(a>0) return a+1;
}
int tra(char *p)
{
     
	if(*p=='(') return 1;
	else if(*p==')') return -1;
	else if(*p=='[') return 3;
	else if(*p==']') return -3;
	else if(*p=='{') return 5;
	else if(*p=='}') return -5;
	else return 0;
}
int seek(char*p,int begin,int end)
{
     
	int i,j,ans=0,re=1,num=0,cans=0;
	for(i=begin;i<end;i++)
	{
     
		ans+=tra(p+i);
		cans+=ctra(tra(p+i));
	}
	if(ans==0&&cans!=0) 
	{
     
		for(i=begin;i<=end;i++)
	    {
     
	     	if(tra(p+i)>0)
	    	{
     
	    		re=0;num++;
	    		for(j=i;j<=end;j++)
	     		{
     
	    			if(tra(p+j)+tra(p+i)==0)
					{
     
			     		return seek(p,i+1,j);
			     		re=1;
			     		break;
			    	}
	     			if(tra(p+j)<0&&tra(p+j)+tra(p+i)!=0)
					{
     
					    return 1;
						break;	
				    }
	    		}
	    		if(re==0)
				{
     
					return 1;
					break;
				}
	     	}
    	}
	}
	else if(ans==0&&cans==0) return 1;
	else return 0;//ans!=0
}
int main()
{
     
	char c[50],*p=c;
	int i,ans=0,num,len;
	while(1)
	{
     
		gets(c);
		len=strlen(c);
		if(len==0) break;
		else if(seek(p,0,len)==0) printf("no\n");
		else if(seek(p,0,len)==1) printf("yes\n");
	}
	return 0;
}
29、处理字符串
#include
#include
int main()
{
     
	char c[100],a[100],b[100];
	char trans,key;
	int i,j,num,t;
	key=getchar();
	for(i=0;i<100;i++)
	{
     
		c[i]=0;
		a[i]=0;
		b[i]=0;
	}
	gets(c);
	for(i=0;i<99;i++) 
	{
     
		if(c[i]>key)
		{
     
			a[j]=c[i];
			j++;
		}
	} 
	for(i=0;i<99;i++) 
	{
     
		if(c[i]<=key)
		{
     
			b[t]=c[i];
			t++;
		}
	} 
	for(i=0;i<strlen(b);i++)
	{
     
		for(j=0;j<strlen(b)-1;j++)
		{
     
			if(b[j]>b[j+1])
			{
     
				trans=b[j];
				b[j]=b[j+1];
				b[j+1]=trans;
			}
		}
	}
	printf("%s%c%s",a,key,b);
} 
30、输出两个带分数的差
#include
long max(long m,long n)
{
     
	int i;
	for(i=m;i>=1;i--)
	{
     
		if(m%i==0&&n%i==0)
		{
     
			return i;
			break;
		}
	}
}
int main()
{
     
	int num1,num2,fz1,fz2,fm1,fm2;
	long anum=0,afz,afm;
	int i,num;
	scanf("%d[%d/%d],%d[%d/%d]",&num1,&fz1,&fm1,&num2,&fz2,&fm2);
	printf("%d[%d/%d]-%d[%d/%d]=",num1,fz1,fm1,num2,fz2,fm2);
	fz1=fz1+fm1*num1;
	fz2=fz2+fm2*num2;
	afm=fm1*fm2;
	afz=fz1*fm2-fz2*fm1;
	if (afz==0) printf("0");
	else
	{
     
		if(afz>0) num=max(afm,afz);
     	else num=max(afm,-afz);
		afz=afz/num;
		afm=afm/num;
		anum=afz/afm;
		afz=afz%afm;
		if(afz<0) afz*=-1;
		printf("%d[%d/%d]",anum,afz,afm);
	}
}
31、统计正整数的个数
#include
int main()
{
     
	int n,num[30];
	int i,j;
	int trans,counts=1;
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
     
		scanf("%d",&num[i]);
	} 
	for(i=0;i<n;i++)
	{
     
		for(j=0;j<n-1;j++)
		{
     
			if(num[j]>num[j+1])
			{
     
				trans=num[j];
				num[j]=num[j+1];
				num[j+1]=trans;
			}
		}
	}
	i=0;
	while(i<n)
	{
     
		for(j=i;j<n;j++)
		{
     
			if(num[j]==num[j+1]) counts++;
			else
			{
     
				printf("%d:%d\n",num[j],counts);
				i+=counts;
				counts=1;
				break;
			}
		}
	}
}
33、简单程序
#include
int main()
{
     		
    printf("C programming language is useful!\nI like it very much.");
    return 0;
}
34、寻找最大整数
#include
int main()
{
     
	int a,b,c,d,max;
	scanf("%d %d %d %d",&a,&b,&c,&d);
	if (a>=b)  max=a;
	else max=b;
	if (max<=c)  max=c;
	if (max<=d)  max=d;
	printf("%d",max);
	return 0;   
}
32、一元稀疏多项式计算器
#include
int main()
{
     
	int a[1000],b[1000],c[1000],rea[10],reb[10],rec[10];
	int time,nowtime=0,n,m,t;//t=0+,t=1-
	int i,j,re;
	int num1,num2,flag;
	scanf("%d",&time);
	while(nowtime!=time)
	{
     
		scanf("%d %d %d",&m,&n,&t);
		for(i=0;i<1000;i++)
		{
     
			a[i]=0;b[i]=0;c[i]=0;
		}
		flag=0;re=0;
		for(i=0;i<2*m;i+=2)
		{
     
			scanf("%d %d",&num1,&num2);
			if(num2<0)
			{
     
				re=1;
				rea[-num2]=num1;
			} 
			else a[num2]=num1;
		}
		for(i=0;i<2*n;i+=2)
		{
     
			scanf("%d %d",&num1,&num2);
			if(num2<0)
			{
     
				re=1;
				reb[-num2]=num1; 
			}  
			else b[num2]=num1;
		}	
		if(t==1) for(i=0;i<1000;i++) c[i]=a[i]-b[i];
		else for(i=0;i<1000;i++) c[i]=a[i]+b[i];
		if(t==1) for(i=0;i<10;i++) rec[i]=rea[i]-reb[i];
		else for(i=0;i<10;i++) rec[i]=rea[i]-reb[i];
		if(re==1) for(i=0;i<10;i++)
		{
     
			if(rec[i]!=0) printf("%dx^%d",rec[i],-i);
	    }
		for(i=0;i<300;i++)
		{
     
			if(c[i]!=0&&flag!=-1)
			{
     
				flag=i;
		    	break;
			}
		}
		if(flag!=0)
		{
     
			if(c[flag]!=1&&flag==1&&c[flag]!=-1) printf("%dx",c[flag]);
    		if(c[flag]!=1&&flag!=1&&c[flag]!=-1) printf("%dx^%d",c[flag],flag);
     		if(c[flag]==1&&flag!=1) printf("x^%d",flag);
    		if(c[flag]==1&&flag==1) printf("x");
    		if(c[flag]==-1&&flag!=1) printf("-x^%d",flag);
    		if(c[flag]==-1&&flag==1) printf("-x");
		}
        if(flag==0) printf("%d",c[0]);
		for(i=flag+1;i<1000;i++)
		{
     
			if(c[i]!=0)
			{
     
				if(i!=1&&c[i]==1) printf("+x^%d",i);
				if(i!=1&&c[i]>0&&c[i]!=1) printf("+%dx^%d",c[i],i);
				if(i!=1&&c[i]<0&&c[i]!=-1) printf("%dx^%d",c[i],i);
				if(i==1&&c[i]==1) printf("+x");
				if(i==1&&c[i]>0&&c[i]!=1) printf("+%dx",c[i]);
				if(i==1&&c[i]<0&&c[i]!=-1) printf("%dx",c[i]);
				if(i==1&&c[i]==-1) printf("-x");
				if(i!=1&&c[i]==-1) printf("-x^%d",i);
			}
		}	
		nowtime++;
		printf("\n");
	}
	return 0;
}
35、字符处理
#include
int main()
{
     
	char c;
	int a;
    c=getchar();
	if(c>=96&&c<=122) printf("%c",c-32);
	if(c>=65&&c<=90)  printf("%c",c+32);
	if(c<65||(c>90&&c<96)||c>122)  printf("%c",c);
	return 0;
}
36、成绩分级
#include
int main()
{
     
	int score;
	scanf("%d",&score);
	if(score>=90) printf("A");
	else if (score>=80) printf("B");
	else if (score>=70) printf("C");
	else if (score>=60) printf("D");
	else printf("E");
}
37、abc组合
#include
int main()
{
     
	int a,b,c,n;
	scanf("%d",&n);
	for(a=1;a<=9;a++)
	{
     
		for(b=0;b<=9;b++)
		{
     
			for(c=0;c<=9;c++)
			{
     
				if(n==101*(a+c)+20*b) printf("%d %d %d\n",a,b,c);
			}
		}
	}
}
38、输出26个英文字母
#include
int main()
{
     
	char a=97;
	for(a=97;a<=122;a++)
	printf("%c ",a);
	printf("\n");
	for(a=122;a>=97;a--)
	printf("%c ",a);
}
39、数列求和
#include
float fm(int i)
{
     
	if (i==1) return 1;
	else if (i==2) return 2;
	else return fm(i-1)+fm(i-2);
}
float fz(int i)
{
     
	if(i==1) return 2;
	else return fz(i-1)+fm(i-1);
}
float ai(int i)
{
     
	return fz(i)/fm(i);
}
int main()
{
     
	int n,i;
	float ans=0;
	scanf("%d",&n);
	for(i=1;i<=n;i++)  ans+=ai(i);
	printf("%.2f",ans);
}
40、直角三角形
#include
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 if(c*c+b*b==a*a) printf("%d",c*b);
	else if(a*a+c*c==b*b) printf("%d",c*a);
	else printf("no");
}
41、自然数分解
#include
int main()
{
     
	int n,i=0;
	scanf("%d",&n);
	while (i<n)
	{
     
		printf("%d ",n*(n-1)+1+i*2);
	    i+=1;
	}
	printf("\n");
	return 0; 
} 
42、数字分解排序
#include
int main()
{
     
	int num[10],a;
	int i=0,j,trans;
	int len=0;
	scanf("%d",&a);
	for(i=0;i<10;i++) num[i]=0;
	i=0;
	while(a>=1)
	{
     
		num[i]=a%10;
		a=(a-a%10)/10;
		i++;
		len++; 
	}
	for(i=0;i<10;i++)
	{
     
		for(j=0;j<9;j++)
		{
     
			if(num[j]<num[j+1])
			{
     
				trans=num[j];
				num[j]=num[j+1];
				num[j+1]=trans;
			} 
		}
	} 
	for(i=0;i<len;i++) printf("%d ",num[i]);
} 
43、Fibonacci数列
#include
int f(int i)
{
     
	if (i==0) return 7;
	else if (i==1) return 11;
	else return f(i-1)+f(i-2);
}
void jug(int n)
{
     
	if(n%3==0) printf("yes\n");
	else printf("no\n");
}
int main()
{
     
	int t,a,i;
	scanf("%d",&t);
	for(i=1;i<=t;i++)
	{
     
		scanf("%d",&a);
		jug(f(a));
	}
}
44、数字处理
#include
int van(int n)
{
     
	int ans=0;
	while(n>=1)
	{
     
		ans+=n%10; 
		n=(n-n%10)/10; 
	}
	if (ans>=10) return van(ans);
	else printf("%d\n",ans);
}
int main()
{
     
	int t=1;
	int a;
	scanf("%d",&a);
	while(a!=0)
	{
     
		van(a);
		scanf("%d",&a);
	}
}
45、拼数字并排序
#include
#include
int isnum(char *p)
{
     
	if(*p<='9'&&*p>='0') return 1;
	else return 0;
}
int main()
{
     
    char str[101],*p=str;
	int flage,flagb;
	int i,j,t,k=0,trans,ju=0;
	long long num[40],sum;
	gets(str);
	t=0;
	for(i=0;i<strlen(str);i++)
	{
     
		if(isnum(p+i)==1)
		{
     
			flagb=i;
			for(j=i;j<strlen(str);j++)
			{
     
			    ju=0;
				if(isnum(p+j)==0)
				{
     
					flage=j-1;
					ju=1;
					break;
				}
			}
			if(ju==0) flage=strlen(str)-1;
			sum=0;
			for(t=flagb;t<=flage;t++)
			{
     
				sum*=10;
				sum+=str[t]-'0';
			}
			num[k]=sum;
			k++;
			i=flage;
		}
	}
	for(i=0;i<k;i++)
	{
     
		for(j=0;j<=k-2;j++)
		{
     
			if(num[j]<num[j+1])
			{
     
				trans=num[j];
				num[j]=num[j+1];
				num[j+1]=trans;
			}
		}
	}
	for(i=0;i<k;i++) printf("%lld ",num[i]);
}

46、0-1矩阵
#include
int main()
{
     
	int num[100][100],*p=num;
	int m,n,i,j,sum=0;
	int flagb,flage,max,maxb,maxe;
	scanf("%d %d",&n,&m);
	for(j=0;j<n;j++) for(i=0;i<m;i++) scanf("%d",&num[j][i]);
	for(j=0;j<n;j++)
	{
     
		sum=0;   max=0;
		flagb=0; flage=0;
		maxb=0;  maxe=0;
		for(i=0;i<m;i++) sum+=num[j][i];
		if(sum==0) printf("-1 -1\n");
		else
		{
     
			if(num[j][0]==1)
			{
     
				flagb=-1;
				maxb=-1;
			}
			for(i=flagb;i<m;i++)
	    	{
     		
	    		if(*(p+100*j+i)==0)
    			{
     
  	    			flage=i;
	    			if(max<flage-flagb)
	    			{
     
	    				max=flage-flagb;
	    				maxb=flagb;
	    				maxe=flage;
		    		}
		    		flagb=flage;
		    	}
	     	}
	     	if(num[j][m-1]==1)
	     	{
     
	     		flage=m;
	     		if(flage-flagb>max)
	     		{
     
	     			maxb=flagb;
	     			maxe=flage;
				}
			}
	     	printf("%d %d\n",maxb+1,maxe-1);
		}
	}
} 
49、A+B
#include
int main()
{
     
	int a,b,sum;
	scanf("%d %d",&a,&b);
	sum=a+b;
	printf("%d",sum);
	return 0;
} 
50、平均数
#include
int main()
{
     
	int a;
	float b,ans=0,i;
	scanf("%d",&a);
	for(i=1;i<=a;i++)
	{
     
		scanf("%f",&b);
		ans=ans+b;
	}
	ans/=a;
	printf("%.2f",ans);
}
51、简单计算
#include
int main()
{
     
	int a,b,c,d;
	scanf("%d %d",&a,&b);
	if(a%b==0) printf("yes");
	else
	{
     
		d=a%b;
		c=(a-d)/b;
		printf("%d %d",c,d);
	}
}
52、PM2.5
#include
int main()
{
     
	int days,i,d1=0,d2=0,d3=0,d4=0,d5=0,d6=0;
	float sum=0,pm[50];
	scanf("%d",&days);
	for(i=0;i<days;i++)
	{
     
		scanf("%f",&pm[i]);
		sum+=pm[i];
		if(pm[i]<=50) d1++;
		else if(pm[i]<=100) d2++;
		else if(pm[i]<=150) d3++;
		else if(pm[i]<=200) d4++;
		else if(pm[i]<=300) d5++;
		else d6++;
	}
	printf("%.2f\n%d %d %d %d %d %d",sum/days,d1,d2,d3,d4,d5,d6);	
}
54、斐波那契数列
#include
int f(int i)
{
     
	if(i==1) return 1;
	else if(i==2) return 1;
	else return f(i-1)+f(i-2);
}
void judge(int m)
{
     
	int i,j=1,t=0;
	for(i=2;i<m;i++)
	{
     
		if(m%i==0) 
		{
     
			printf("%d",m);
			t=1;
			break;
		}
	}
	if(t==0) printf("yes");
}
int main()
{
     
	int a;
	scanf("%d",&a);
	judge(f(a));
}
64、折点计数
#include
int judge(int a,int b,int c)
{
     
	if (a>b&&b>c) return 0;
	if (a<b&&b<c) return 0;
	if (a<b&&b>c) return 1;
	if (a>b&&b<c) return 1;
}
int main()
{
     
	int a[100],time,i,ans,sum=0;
	scanf("%d",&time);
	for(i=0;i<time;i++) scanf("%d",&a[i]); 
	for(i=0;i<time-2;i++)  sum+=judge(a[i],a[i+1],a[i+2]);
	printf("%d",sum);
}
75、选号程序
#include
int len(int a)
{
     
	int i;
	while(a>=1)
	{
     
		a=a/10;
		i++;
	}
	return i;
}
int sum(int a)
{
     
	int i, ans=0;
	for(i=0;i<=len(a);i++)
	{
     
		ans+=a%10;
		a=(a-a%10)/10;
	}
	return ans;
}
int main()
{
     
	int max,times,num,i;
	scanf("%d",&times);
	scanf("%d",&max);
	for(i=0;i<=times-2;i++)
	{
     
		scanf("%d",&num);
		if(sum(max)<sum(num))
		max=num;
		if(sum(max)==sum(num)&&max<=num)
		max=num;
	}
	printf("%d",max);
} 
85、日期计算
#include
int leap(int y)
{
     
	if(y%4==0&&y%100!=0||y%400==0) return 1;
	else return 0;
} 
int main()
{
     
	int y,d1,m,d2,d3=0,month[12]={
     31,28,31,30,31,30,31,31,30,31,30,31};
	scanf("%d %d",&y,&d1);
	if(leap(y)==1) month[1]=29;
	for(m=0;m<12;m++)
	{
     
		d3+=month[m];
		if(d3>=d1)
		{
     
			printf("%d %d",m+1,month[m]+d1-d3);
			break;
		}
	}
}
93、测试程序
#include
int main()
{
     
	int a,s=5050;
	scanf("%d",&a);
	while(a>0)
	{
     
		s-=a-1;
		a--;
	}
	printf("%d\n",s);
}
94、基本运算测试
#include
int main()
{
     
	int a,ans;
	scanf("%d",&a);
	ans=(a+100)*(101-a)/2;
	printf("%d",ans);
} 
95、测试
#include
int main()
{
     
	int a;
	scanf("%d",&a);
	printf("5");
}
98、四则运算
#include
int main()
{
     
	int a,b,c;
	char cal;
	scanf("%d%c%d",&a,&cal,&b);
	if(cal=='+') c=a+b;
	if(cal=='-') c=a-b;
	if(cal=='*') c=a*b;
	if(cal=='/') c=a/b;
	if(cal=='%') c=a%b;
	printf("%d%c%d=%d",a,cal,b,c);
}
99、数位输出
#include
int main()
{
     
	int a,d1,d2,d3; 
	scanf("%d",&a);
	d1=a%10;
	d2=((a-d1)/10)%10;
	d3=(a-10*d2-d1)/100;
	printf("%d %d %d",d3,d2,d1);
	return 0;
}
110、4个整数排序
#include
int main()
{
     
	int i,a[4],term,j;
	for(i=0;i<4;i++)
	{
     
		scanf("%d",&a[i]);
	}
	for(j=0;j<3;j++)
	{
     
	    for(i=0;i<3;i++)
	    {
     
		    term=0;
			if(a[i]>a[i+1])
		    {
     
			    term=a[i];
			    a[i]=a[i+1];
		    	a[i+1]=term;
		    }
     	}
	}	
	for(i=0;i<4;i++)
	{
     
		printf("%d ",a[i]);
	}
} 
113、奇偶数之和
#include
int main()
{
     
	int i,ans1=0,ans2=0;
	for(i=1;i<=100;i++)
	{
     
		if(i%2==0) ans2+=i;
		else ans1+=i;
	}
	printf("%d\n%d",ans1,ans2);
}
116、阶乘之和
#include
int f(int n)
{
     
	int i,ans=1;
	for(i=1;i<=n;i++)
	{
     
		ans*=i;
	}
	return ans;
}
int f1(int n)
{
     
	int i,ans=0;
	for(i=1;i<=n;i++)
	{
     
		ans+=f(i);
	}
	return ans;
}
int main()
{
     
	int n;
	scanf("%d",&n);
	printf("%d %d %d",n,f(n),f1(n));
} 
119、公式求值2
#include
#include
int main()
{
     
    int i=1;
    float an=1,sn=1;
	while(an<100000)
	{
     
		i++;
		an+=i;
		sn+=(1/an);
	}	
	printf("%d %.6lf %.8lf",i,sn,1/an);
} 
120、阶乘运算
#include
int jc(int i)
{
     
	if (i==1) return 1;
	if (i>1) return i*jc(i-1);
}
int main()
{
     
	int m,n;
	float ans;
	scanf("%d %d",&m,&n);
	ans=jc(m)/jc(n)/jc(m-n);
	printf("%.2f",ans);	
}
121、数位数值之和
#include
int main()
{
     
	int a,d1,d2,d3,d4;
	scanf("%d",&a);
	d4=a%10;a=a/10;
	d3=a%10;a=a/10;
	d2=a%10;a=a/10;
	d1=a%10;
    printf("%d %d %d %d %d",d1,d2,d3,d4,d1+d2+d3+d4);
}
122、数字个数统计2
#include
int main()
{
     
	int a,s=0,d=0,n3=0,n5=0,n7=0,i;
	scanf("%d",&a);
	for(i=1;i<=a;i++)
	{
     
		if (i%2==1) s++;
		if (i%2==0) d++;
		if (i%3==0) n3++;
		if (i%5==0) n5++;
		if (i%7==0) n7++;
    }
	printf("%d %d %d %d %d",s,d,n3,n5,n7);
} 
123、进入复赛
#include
struct info 
{
     
	int name,a,b,c,tot,min;
} ;
struct info trans;
int eva(int a,int b,int c)
{
     
	int ans,max=a,min=mini(a,b,c);
	if (max<b) max=b;if (max<c) max=c;
	if(max-min>100) return 1;
	else return 0;
}
int mini(int a,int b,int c)
{
     
	int ans=a;
	if (ans>b) ans=b;
	if (ans>c) ans=c;
	return ans;
}
int main()
{
     
	int m;
    scanf("%d",&m);
	void input(struct info t[],int m); 
	void output(struct info t[],int m);
	void sort(struct info t[],int m);
	struct info t[100],*p=t;
	input(p,m);
	sort(p,m);
	output(p,m);
	return 0;
}
void input(struct info t[],int m) 
{
     
	int i;
	for(i=0;i<m;i++)
	{
     
		scanf("%d %d %d %d",&t[i].name,&t[i].a,&t[i].b,&t[i].c); 
		if(eva(t[i].a,t[i].b,t[i].c)==0) t[i].tot=t[i].a+t[i].b+t[i].c;
		else t[i].tot=0;
		t[i].min=mini(t[i].a,t[i].b,t[i].c);
	}	
}
void sort(struct info t[],int n)
{
     
	int i,j,k;
	for(k=0;k<n-1;k++)
	{
     
    	for(i=0;i<n-1;i++)
    	{
     
	    	for(j=0;j<n-1;j++)
	    	{
     
	    		if(t[j].tot<t[j+1].tot)
		    	{
     
		    		trans=t[j];
		     		t[j]=t[j+1];
		     		t[j+1]=trans;
		     	}
	    	}
	    }
    }
	for(i=0;i<n;i++)
	{
     
		for(j=0;j<n-2;j++)
		{
     
			if(t[j].tot==t[j+1].tot&&t[j].min<t[j+1].min)
			{
     
				trans=t[j];
				t[j]=t[j+1];
				t[j+1]=trans;
			}
		}
	}
	for(i=0;i<n;i++)
	{
     
		for(j=0;j<n-2;j++)
		{
     
			if(t[j].tot==t[j+1].tot&&t[j].min==t[j+1].min&&t[j].name>t[j+1].name)
			{
     
				trans=t[j];
				t[j]=t[j+1];
				t[j+1]=trans;
			}
		}
	}
}
void output(struct info t[],int m)
{
     
	int i,rate=1;
	for(i=0;i<m;i++)
	{
     
		if(t[i].tot>=400)
		{
     
			printf("%d %d %d %d %d %d\n",rate,t[i].name,t[i].tot,t[i].a,t[i].b,t[i].c);
			rate++;
		}  
	}
}
125、成绩统计及排序
#include
void sort(int *peo[],int p)
{
     
	int *trans,time,alltime;
	for(alltime=0;alltime<p;alltime++)
	{
     
		for(time=0;time<p;time++)
        {
     
	    if(peo[time]>peo[time+1])
	       	{
     
	    	trans=peo[time];
			peo[time]=peo[time+1];
			peo[time+1]=trans;
		    }
    	}
	}
}
int main()
{
     
	int a,b,p,*peo[200],i;
	scanf("%d %d %d",&p,&a,&b);
	for(i=0;i<p;i++)
	{
     
		scanf("%d",&peo[i]);
	}
	sort(peo[200],p);
	for(i=0;i<p;i++)
	{
     
		printf("%d ",peo[i]);
	}
}
128、用指针移动元素
#include//有n个整数,使前面各数顺序向后移m个位置
void move(int *p,int m,int n)
{
     
	int i;
	for(i=n-m;i<n;i++) printf("%d ",*(p+i));
	for(i=0;i<n-m-1;i++) printf("%d ",*(p+i));
	printf("%d",*(p+n-m-1));
}
int main()
{
     
	int m,n,num[100],*p=num;
	int i;
	scanf("%d %d",&n,&m);
	for(i=0;i<n;i++) scanf("%d",&num[i]);
	move(p,m,n);
	return 0;
}
130、计算组合数
#include
long long unsigned f(int m,int j)
{
     
	int i=0;
	long long unsigned ans=1;
	for(i=0;i<j;i++) ans*=(m-i);
	return ans;
}
long long unsigned g(int i)
{
     
	if(i==1) return 1)O;
	else return i*g(i-1);
}
int main()
{
     
	int m,n;
	long long unsigned ans,ans1,ans2;
	scanf("%d %d",&m,&n);
	ans1=f(n,m);
	ans2=g(m);
    ans=ans1/ans2;
	printf("%llu",ans);
}
136、分数化小数
#include
int main()
{
     
	double a,b;
	int c;
	scanf("%lf %lf %d",&a,&b,&c);
	printf("%.*lf\n",c,a/b);
	return 0;
} 
140、矩阵相乘
#include
int main()
{
     
	int a[2][3],b[3][2],c[2][2];
	int i,j;
	for(j=0;j<2;j++) for(i=0;i<3;i++) scanf("%d",&a[j][i]);
	for(j=0;j<3;j++) for(i=0;i<2;i++) scanf("%d",&b[j][i]);
	for(j=0;j<2;j++)
	{
     
		for(i=0;i<3;i++) printf("%5d",a[j][i]);
		printf("\n");
	}
	for(j=0;j<3;j++)
	{
     
		for(i=0;i<2;i++) printf("%5d",b[j][i]);
		printf("\n");
	}
	c[0][0]=a[0][0]*b[0][0]+a[0][1]*b[1][0]+a[0][2]*b[2][0];
	c[1][0]=a[1][0]*b[0][0]+a[1][1]*b[1][0]+a[1][2]*b[2][0];
	c[0][1]=a[0][0]*b[0][1]+a[0][1]*b[1][1]+a[0][2]*b[2][1];
	c[1][1]=a[1][0]*b[0][1]+a[1][1]*b[1][1]+a[1][2]*b[2][1];
	printf("%5d %5d\n",c[0][0],c[0][1]);
	printf("%5d %5d",c[1][0],c[1][1]);
}
142、转换排序
#include
int main()
{
     
	char str[80],trans;
	int i,j,k,q,ans;
	gets(str);
	for(i=0;i<80;i++)
	{
     
		if(str[i]>='a'&&str[i]<='z') str[i]-=32;
	}
	for(i=0;i<80;i++)
	{
     
		for(j=0;j<80;j++)
		{
     
			if (str[j]>='A'&&str[j]<='Z')
			{
     
				for(q=j;q<80;q++)
				{
     
					if (str[q]<=str[j]&&str[q]>='A')
					{
     
						trans=str[q];
						str[q]=str[j];
						str[j]=trans;
					}
				}
			}
		}
	}
	printf("%s",str);
	return 0;
}
143、最值位置
#include
int main()
{
     
	int num[80],*p=num;
	int i,j,time,max,add=0;
	scanf("%d ",&time);
	for(i=0;i<time;i++) scanf("%d",&num[i]);
	max=num[0];
	for(i=0;i<time;i++)
	{
     
		if(*(p+i)>max) 
		{
     
			add=i;
			max=*p+i;
		}
	}
	printf("%d %d %d",time,max,add);
	return 0;	
} 
144、构造表达式
#include
int main()
{
     
	int a,b,ans;
	char c;
	scanf("%d %d %c",&a,&b,&c);
	if(c=='+') ans=a+b;
	if(c=='-') ans=a-b;
	if(c=='/') ans=a/b;
	if(c=='%') ans=a%b;
	if(c=='*') ans=a*b;
	printf("%d%c%d=%d",a,c,b,ans);
}
145、单词统计
#include
#include
int main()
{
     
	char m[100],word[9];
	int i,j,ans,counts=0,flag;
	gets(m);
	gets(word);
	for(i=0;i<strlen(m);i++)
	{
     
		for(j=i;j<strlen(m);j++)
		{
     
			if(m[j]==' ')
			{
     
				flag=j;
				break;
			}
			if(flag<j) flag=strlen(m);
		}
		ans=1;
		for(j=i;j<flag;j++)
		{
     
			if(m[j]!=word[j-i])
	    	{
     
	   			ans=0;
	   			break;
	   		}
		}
		if(strlen(word)!=flag-i) ans=0;
		if(ans==1) counts++;
		i=flag;
	}
	printf("%s %d",word,counts);
	return 0;
}
146、金字塔打印
#include
void draw(char c,int n)
{
     
	int line=2*n-1;
	int i,j;
	for(i=1;i<=n;i++)
	{
     
		for(j=0;j<line-i;j++) printf(" ");
		for(j=0;j<i;j++)
		{
     
			printf("%c ",c);
		}
		for(j=0;j<line-i-1;j++) printf(" ");
		printf("\n");
	}
}
int main()
{
     
	char c;
	int n;
	scanf("%c %d",&c,&n);
	draw(c,n);
	return 0;
}
147、字符删除
#include
#include
void dele(char*p,char ch,int len)
{
     
	int i,j;
	char trans;
	for(i=0;i<=len;i++)
	{
     
		if(*(p+i)==ch)
		{
     
			for(j=i;j<len;j++) *(p+j)=*(p+j+1);
			*(p+len)='\0';
			len--;
		}
	}
	for(i=0;i<=len;i++)
	{
     
		if(*(p+i)==ch)
		{
     
			for(j=i;j<len;j++) *(p+j)=*(p+j+1);
			*(p+len)='\0';
			len--;
		}
	}
	puts(p);
}
int main()
{
     
	char str[50],ch,*p=str;
	gets(str);
	scanf("%c",&ch);
	dele(p,ch,strlen(str));
}
148、开灯问题
#include
int main()
{
     
	int ln,pn,time,lan[100],peo;
	scanf("%d %d",&ln,&pn);
	for(time=0;time<ln;time++)
	{
     
		lan[time]=1;
	}
	for(time=0;time<ln;time++)
	{
     
		for(peo=2;peo<=pn;peo++)
		{
     
			if((time+1)%peo==0) lan[time]=-lan[time];
		}
	}
	for(time=0;time<ln;time++)
	{
     
		if(lan[time]==1) printf("%d ",time+1);
	}
}
151、单词排序
#include
#include 
int main()
{
     
	char str[10][20],*p=str,trans[20];
	int n,i,j,t;
	scanf("%d",&n);
	for(i=0;i<n;i++) scanf("%s",str[i]);
	for(i=0;i<n;i++)
	{
     
		for(j=0;j<n-1;j++)
		{
     
			if(strcmp(str[j],str[j+1])>0)
			{
     
                 for(t=0;t<20;t++) trans[t]=str[j][t];
	    		for(t=0;t<20;t++) str[j][t]=str[j+1][t];
	    		for(t=0;t<20;t++) str[j+1][t]=trans[t];
			}
		}
	}
	for(i=0;i<n;i++)
	{
     
		puts(str[i]);
		printf("\n");
	}
}
155、成绩处理
#include
void well(float *p)
{
     
	int i,j;
	int ans=0;
	int avernum=0,weltem=0;
	for(i=0;i<5;i++) 
	{
     
		avernum=0;
		weltem=0;
		for(j=0;j<4;j++)
		{
     
			avernum+=*(p+j+4*i);
			if(*(p+j+4*i)>=85) weltem++;
		}
		if(avernum/4>=90||weltem==4) ans++;
	}
	printf("%d ",ans);
}
void aver(float *p)
{
     
	int i;
	float ans=0;
	for(i=0;i<5;i++) ans+=*(p+i*4);
	printf("%.1f ",ans/5);
}
void fal(float *p)
{
     
	int i,j,ans=0,faltem=0;
	for(i=0;i<5;i++) 
	{
     
		faltem=0;
		for(j=0;j<4;j++) if(*(p+j+4*i)<60) faltem++;
		if(faltem>=2) ans++;
	}
	printf("%d ",ans);
}
int main()
{
     
	float stu[5][4];
	int i,j;
	for(i=0;i<5;i++) for(j=0;j<4;j++) scanf("%f",&stu[i][j]);
	aver(stu);
	fal(stu);
	well(stu);
}
152、奇偶排序
#include
int main()
{
     
	int a[20],num,time,trans,numN;
	scanf("%d",&time);
	for(num=0;num<time;num++)
	{
     
		scanf("%d",&a[num]);
	}
	for(num=0;num<time-1;num++)
	{
     
		for(numN=0;numN<time-1;numN++)
		{
     
			if(a[numN]>a[numN+1])
			{
     
				trans=a[numN];
		    	a[numN]=a[numN+1];
		    	a[numN+1]=trans;
			}
		}
	}
	for(num=0;num<time;num++)
	{
     
		if(a[num]%2==1) printf("%d ",a[num]);	
	}
	printf("   "); 
	for(num=0;num<time;num++)
	{
     
		if(a[num]%2==0) printf("%d ",a[num]); 
	}
}
156、大数相加
#include
#include
int main()
{
     
	int i,j,lena,lenb,delta,max,num;
	char a[30],b[30],c[50],ans[50],*p;
	for(i=0;i<200;i++) c[i]='\0';
	scanf("%d %d",&lena,&lenb);
	scanf("%s",&a);
	scanf("%s",&b);
	delta=lena-lenb;
	max=strlen(a);
	if(delta<0)
	{
     
		delta=-delta;
		max=strlen(b);
	}
	for(i=0;i<delta;i++) c[i]='0';
	if(lena>lenb) strcat(c,b);
	if(lena<lenb) strcat(c,a);
	if(lena>lenb&&delta!=0)
	{
     
		for(i=0;c[i];i++) ans[i]=a[i]+c[i]-'0';
		num=strlen(a);
	}
	if(lena<lenb&&delta!=0)
	{
     
		for(i=0;c[i];i++) ans[i]=b[i]+c[i]-'0';
        num=strlen(b);
	}
	if(delta==0)
	{
     
		for(i=0;a[i];i++) ans[i]=a[i]+b[i]-'0';
		num=strlen(a);
	}
	while(num>0)
	{
     
		if(ans[num]>'9'&&num!=0)
		{
     
			ans[num]-=10;
			ans[num-1]++;
		}
		if(ans[0]>'9')
		{
     
			ans[0]-=10;
			printf("1"); 
		}
		num--;
	}
	for(i=0;ans[i];i++) printf("%c",ans[i]);
}
157、元素放置
#include
void sort(int *p,int m,int n)
{
     
	int i,j,trans;
	for(i=0;i<m*n;i++)
	{
     
		for(j=0;j<m*n-1;j++)
		{
     
			if(*(p+j)>*(p+j+1))
			{
     
				trans=*(p+j);
				*(p+j)=*(p+j+1);
				*(p+j+1)=trans; 
			}
		}
	}
}
void output(int *p,int m,int n)
{
     
	int i=1,j,line=1;
	while(line!=n)
	{
     
		if(line%2==1)for(i=line*m-1;i>=(line-1)*m;i--) printf("%3d",*(p+i));
		if(line%2==0)for(i=(line-1)*m;i<=line*m-1;i++) printf("%3d",*(p+i));
		line++;
		printf("\n");
	}
	if(line%2==1)for(i=line*m-1;i>=(line-1)*m;i--) printf("%3d",*(p+i));
	if(line%2==0)for(i=(line-1)*m;i<=line*m-1;i++) printf("%3d",*(p+i));
}
int main()
{
     
	int num[50],*p=num;
	int m,n;
	int i,len;
	scanf("%d %d",&m,&n);
	len=m*n;
	for(i=0;i<len;i++) scanf("%d",&num[i]);
	sort(p,m,n);
	output(p,n,m); 
	return 0;
}
158、字符统计
#include
#include
void execute(char *p,int len)
{
     
	int i;
	int ans1=0,ans2=0,ans3=0,ans4=0,ans5=0;//大写字母、小写字母、空格、数字以及其他字符
	for(i=0;i<=len;i++)
	{
     
		if(*(p+i)>='A'&&*(p+i)<='Z') ans1++;
		else if(*(p+i)>='a'&&*(p+i)<='z') ans2++;
		else if(*(p+i)==' ') ans3++;
		else if(*(p+i)>='0'&&*(p+i)<='9') ans4++;
		else ans5++;
	}
	printf("%d %d %d %d %d",ans1,ans2,ans3,ans4,ans5-1);
}
int main()
{
     
	char str[100],*p=str;
	gets(str);
	execute(p,strlen(str));
}

你可能感兴趣的:(C语言)