C语言程序设计练习(一)(HDU 2000-2007)

这篇博客包含了多个编程题目解法,包括ASCII码排序、两点间距离计算、球体积计算、绝对值求解、成绩转换、日期处理、奇数乘积计算以及平方和与立方和的求解。每道题目的AC代码使用了不同的算法,如冒泡排序、平方根计算等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目网址:http://acm.hdu.edu.cn/search.php?field=problem&key=C%D3%EF%D1%D4%B3%CC%D0%F2%C9%E8%BC%C6%C1%B7%CF%B0%A3%A8%D2%BB%A3%A9&source=1&searchmode=source

ASCII码排序(HDU 2000)
在这里插入图片描述
AC代码:

//ASCII排序 
#include<stdio.h>
int main()
{
	char a,b,c,t;
	while(scanf("%c%c%c",&a,&b,&c)!=EOF)
	{
		if(a>b)
		{
			t=a;
			a=b;
			b=t;
		}
		if(a>c)
		{
			t=a;
			a=c;
			c=t;
		}
		if(b>c)
		{
			t=b;
			b=c;
			c=t;
		}
		printf("%c %c %c\n",a,b,c);
	}
	return 0;
}

AC代码:

#include<stdio.h>
int main()
{
	int i=0;
	int j=0;
	int tmp;
	char str[3];
	
	while(scanf("%s",&str)!=EOF)
	{
		for(i=0;i<3-1;i++)
		{
			for(j=0;j<3-i-1;j++)
			{
				if(str[j]>str[j+1])
				{
					tmp=str[j];
					str[j]=str[j+1];
					str[j+1]=tmp;
				}
			}
		}
		for(i=0;i<3;i++)
		{
			printf("%c ",str[i]);
		}
	}
	return 0;
}

计算两点间的距离(HDU 2001)
在这里插入图片描述
AC代码:

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

int main()
{
	int x1,y1,x2,y2;
	double distance=0;
	
	while(scanf("%d%d%d%d",&x1,&y1,&x2,&y2)!=EOF)
	{
		distance=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
		
		printf("%.2lf",distance);
	}
	return 0;
}

计算球体积(HDU 2002)
在这里插入图片描述
AC代码:

#include<stdio.h>
#define PI 3.1415927
int main()
{
	double r,v;
	while(scanf("%lf",&r)!=EOF)
	{
		v=4*PI*r*r*r/3;
		printf("%.3lf",v);
	}
	return 0;
}

求绝对值(HDU 2003)
在这里插入图片描述
AC代码:

#include<stdio.h>
#include<math.h>
int main()
{
	double n;
	while(scanf("%lf",&n)!=EOF)
	{
		printf("%.2lf",fabs(n));
	}
	return 0;
}

成绩转换(HDU 2004)
在这里插入图片描述
AC代码:

#include<stdio.h>
int main()
{
	int n;
	while(scanf("%d",&n)!=EOF)
	{
		if(n>=90&&n<=100)
		{
			printf("A\n");
		}
		else if(n>=80&&n<=89)
		{
			printf("B\n");
		}
		else if(n>=70&&n<=79)
		{
			printf("C\n");
		}
		else if(n>=60&&n<=69)
		{
			printf("D\n");
		}
		else if(n>=0&&n<=59)
		{
			printf("E\n");
		}
		else
		{
			printf("Score is error!\n");
		}
	}
	return 0;
}

第几天?(HDU 2005)
在这里插入图片描述
AC代码:

#include<stdio.h>
int main()
{
	int y,m,d,days,i;
	int month[]={0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
	
	while(scanf("%d/%d/%d",&y,&m,&d)!=EOF)
	{
		if(y % 4 == 0 && (y % 100 || y % 400 == 0))
		{
			month[2]=29;
		}
		else
		{
			month[2]=28;
		}
		for(i=1;i<m;i++)
		{
			days+=month[i];
		}
		days+=d;	
		printf("%d",days);
	}
	return 0;
}

求奇数的乘积(HDU 2006)
在这里插入图片描述
AC代码:

#include<stdio.h>
int main()
{
	int n,m,sum=1;
	scanf("%d",&n);
	while(n--)
	{
		scanf("%d",&m);
		if(m%2!=0)
		{
			sum*=m;
		}
	}
	printf("%d",sum);
	return 0;
}

平方和与立方和(HDU 2007)
在这里插入图片描述
AC代码:

#include<stdio.h>
int main()
{
	int n,m,i,sum1=0,sum2=0;
	
	while(scanf("%d %d",&n,&m)!=EOF)
	{
		i=0;
		for(i=n;i<=m;i++)
		{
			if(i%2==0)
			{
				sum1+=i*i;
			}
			else
			{
				sum2+=i*i*i;
			}
		}
		printf("%d %d",sum1,sum2);
	}
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值