补充练习

补充练习

3.输入一个小于255的十进制非负整数,输出对应的二进制、八进制和十六进制

#include <stdio.h>
#include<stdlib.h>
int main()
{
   
    int a;
	char s[10];
    scanf("%d",&a);
	itoa(a, s, 2);
    printf("%s %o %X ",s,a,a);
    return 0;
}

歌唱比赛

题目描述:
为歌唱比赛设计一个评分系统,规则如下:
共有n名评委给分(0~100分,整数),要求去掉一个最高分,去掉一个最低分,剩余成绩的平均分为最终得分。

输入一个正整数n(3≤n≤10),表示有n个评委,输入n个成绩,输出最终得分。

输入格式:第一行输入一个正整数n(3≤n≤10),第二行输入每位评委给分,用空格分隔。

输出格式:输出最终得分,结果保留两位小数。

示例:
输入:5
70 75 80 85 90
输出:80.00

#include<stdio.h>
int main()
{
   
/**************************函数参数********************************************
num			评委人数 
average		平均分 
score[10]	得分 
i,j,k		临时变量 
*******************************************************************************/
	int num;
	double average=0;
	int score[10];
	int i,j,k;
	
	/*输入*/ 
	scanf("%d",&num);
	for(i=0;i<num;i++)
	scanf("%d",&score[i]);
	
	/*排序*/
	for(i=0;i<num-1;i++)
	for(j=i;j<num;j++)
	if(score[i]<score[j]){
   
		k=score[i];
		score[i]=score[j];
		score[j]=k;
	}
	
	/*求平均*/
	for(i=1;i<num-1;i++)
	average=average+score[i]*1.0/(num-2);
	
	/*打印*/
	printf("%.2f\n",average);
	
	return 0;
}

除法计算器

标题
除法计算器

类别
基本计算

时间限制
1S

内存限制
256Kb

问题描述
小明的弟弟刚开始学习除法,为了检查弟弟的计算结果是否正确,小明决定设计一个简单计算器程序来验算。

输入说明
输入数据由四个整数m,n,q,r构成,m为被除数,n为除数,q和r为小明的弟弟计算出的商和余数。整数之间用空格分隔,所有整数取值范围在(-100000~100000),n不为0。

输出说明
如果验算结果正确,输出yes,否则输出正确的商和余数

输入样例
输入样例:
样例1:
10 3 3 1
样例2:
10 3 3 2

输出样例
样例1输出:
yes
样例2输出:
3 1

#include<stdio.h>
int main()
{
   
	int m,n,p,r;
	
	scanf("%d%d%d%d",&m,&n,&p,&r);
	
	if(p==m/n&&r==m%n)
	printf("yes");
	else
	printf("%d %d",m/n,m%n);
	
	return 0;
}

求平均值

题目描述:计算三个整数的平均值,结果保留两位小数。

输入格式:共一行,包含三个整数,整数之间用空格分隔。

输出格式:共一行,输出平均值,结果保留两位小数。

输入示例:20 42 55

输出示例:39.00

#include<stdio.h>
int main()
{
   
	int num1,num2,num3;
	double ave;
	
	scanf("%d%d%d",&num1,&num2,&num3);
	
	ave=(num1+num2+num3)*1.0/3;
	
	printf("%.2f",ave);
	
	return 0;
	
}

4.输入一个字母,若输入小写字母,转换为大写输出,若输入大写字母,转换为小写输出

#include<stdio.h>
int main()
{
   
	//输入一个字母,若输入小写字母,转换为大写输出,
	//若输入大写字母,转换为小写输出
	char a;
	scanf("%c",&a);
	
	if(a<'z'&&a>'a')
	printf("%c",a-32);
	else if(a<'Z'&&a>'A')
	printf("%c",a+32);
	
	return 0;
 } 

计算某月天数

标题:计算某月天数
类别:流程控制
时间限制:2S
内存限制:10000Kb
问题描述:
每年的1,3,5,7,8,10,12月有31天,4,6,9,11月有30天,闰年2月29天,其他年份2月28天,给定年份和月份求该月的天数

输入说明:
输入由两个正整数a和b构成,a表示年份,b表示月份,a和b之间用空格分隔

输出说明:
根据年份和月份计算该月天数并输出

输入样例
输入样例1
2000 3
输入样例2
2001 2
输出样例
输出样例1
31
输出样例2
28

#include<stdio.h>
int main()
{
   
	int year,month,day;
	
	scanf("%d%d",&year,&month);
	
	if(month==2){
   
	if((year%4==0&&year%100!=0)||year%400==0)
		printf("29");
	else
		printf("28");
	}
	else if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)
	printf("31");
	else
	printf("30");
	
	return 0;
	
}

最大公约数

标题:
最大公约数

类别:

时间限制:
1 S

内存限制:
1000 Kb

问题描述:
最大公约数(GCD)指某几个整数共有因子中最大的一个,最大公约数具有如下性质,
gcd(a,0)=a
gcd(a,1)=1
因此当两个数中有一个为0时,gcd是不为0的那个整数,
当两个整数互质时最大公约数为1。
输入两个整数a和b,求最大公约数

输入说明:
输入为两个非负整数a和b(0<=a,b<10000),a和b之间用空格分隔,

输出说明:
输出其最大公约数

输入样例:
样例1输入
2 4
样例2输入:
12 6
样例3输入:
3 5

输出样例:
样例1输出
2
样例2输出
6
样例3输出
1

#include<stdio.h>
void gcd(int x,int y);
int i;
int main()
{
   
	int a,b;
	scanf("%d%d",&a,&b);
	
	if(a==0)
	printf("%d",b);
	else if(b==0)
	printf("%d",a);
	else if(a==1||b==1)
	printf("1");
	else
	gcd(a,b);
	
	return 0;
}
void gcd(int x,int y)
{
   
	if(x<y)
	i=y;
	else
	i=x;
	while(1){
   
		if(x%i==0&&y%i==0){
   
			printf("%d",i);
			break; 
		}
		else {
   
			i--;
		}	
	}
}

歌德巴赫猜想

标题
歌德巴赫猜想

类别
函数与递归

时间限制
2S

内存限制
10000Kb

问题描述
德巴赫猜想:
任意一个大偶数都能分解为两个素数的和,
对与输入的一个正偶数,写一个程序来验证歌德巴赫猜想。
由于每个正偶数可能分解成多组素数和,仅输出分解值分别是最小和最大素数的一组,按从小到大顺序输出。

输入说明
输入一个正偶数n,1<n<1000。

输出说明
输出分解出的两个最小和最大素数。

输入样例
10

输出样例
3 7

#include<stdio.h>
int prime_number(int x);
int n;
int i,j,k,l,m,h;
int main()
{
   
	scanf("%d",&n);
	if(n==2||n==4)
	printf("2 2");
	else{
   
		for(k=2;k<n;k++){
   
			l=n-k;
			if(prime_number(k)==1&&prime_number(l)==1){
   
				printf("%d %d",k,l);
				break;
			}
		}
	}
	
	return 0;
}

int prime_number(int x)
{
   
	j=1;
	i=2;
	while(1){
   
		if(x%i==0&&i<x){
   
		j=0;
		break;
	}
	else{
   
		i++;
		if(i>=x)
		break;
	}
	}
	return j;
}

整数分析

标题
整数分析

类别
流程控制

时间限制
1S

内存限制
256Kb

问题描述
给出一个整数n(0<=n<=100000000)。求出该整数的位数,以及组成该整数的所有数字中的最大数字和最小数字。

输入说明
输入一个整数n(0<=n<=100000000)

输出说明
在一行上依次输出整数n的位数,以及组成该整数的所有数字中的最大数字和最小数字,各个数字之间用空格分隔。

输入样例
217

输出样例
3 7 1

#include<stdio.h>
int main()
{
   
	int count[20];
	int num,xnum;
	int i,j,k,l;
	
	xnum=0;
	i=0;
	
	scanf("%d",&num);
	
	if(num==0)
	printf("1 0 0");
	else {
   
	while(num>0){
   
		count[i]=num%10;
		i++;
		xnum++;
		num=num/10;
	}
	
	
	for(j=0;j<i-1;j++)
	for(k=j;k<i;k++)
	if(count[j]<count[k]){
   
		l=count[j];
		count[j]=count[k];
		count[k]=l;
	}
	
	printf("%d %d %d",xnum,count[0],count[i-1]);
	}
	return 0;
}

选号程序

标题
选号程序

类别
流程控制

时间限制
1S

内存限制
256Kb

问题描述
小明决定申请一个新的QQ号码,系统随机生成了若干个号码供他选择。小明的选号原则是:

  1. 选择所有号码中各位数字之和最大的号码。
  2. 如果有多个号码各位数字之和相同则选择数值最大的号码。
    请你写一个程序帮助小明选择一个QQ号码。

输入说明
输入数据由两行构成,第一行为一个整数n表示有n个待选号码(0<n<100),第二行有n个正整数,表示各个待选的号码,每个号码长度不超过9位数。每个号码之间用空格分隔,且每个号码都不相同。

输出说明
输出根据小明的选号原则选出的号码。

输入样例
5
10000 11111 22222 333 1234

输出样例
22222

#include<stdio.h>
int xcount[9],xsum;
int j,i;
int sum(int x);
struct QQ{
   
	int count;
	int xxsum;
};
int main()
{
   
	int num;
	int l,m,n;
	struct QQ xxnum[100];
	
	scanf("%d",&num);
	for(l=0;l<num;l++){
   
		scanf("%d",&xxnum[l].count);
	}
	
	for(l=0;l<num;l++){
   
		xxnum[l].xxsum=sum(xxnum[l].count);
	}
	
	for(l=0;l<num-1;l++)
	for(m=l;m<num;m++)
	{
   
		if(xxnum[l].xxsum<xxnum[m].xxsum)
		{
   
			n=xxnum[l].xxsum;
			xxnum[l].xxsum=xxnum[m].xxsum;
			xxnum[m].xxsum=n;
			n=xxnum[l].count;
			xxnum[l].count=xxnum[m].count;
			xxnum[m].count=n;		
		}
	}
	for(l=0;l<num;l++){
   
		if(xxnum[l].xxsum==xxnum[0].xxsum)
		{
   
			if(xxnum[l].count>xxnum[0].count)
			xxnum[0].count=xxnum[l].count;
		}
	}
	
	printf("%d",xxnum[0].count);
	return 0;
}
int sum(int x)
{
   
	xsum=0;
	i=0;
	while(x>0){
   
	xcount[i]=x%10;
	i++;
	x=x/10;
	}
	
	for(j=0;j<i;j++){
   
		xsum=xsum+xcount[j];
	}
	
	return xsum;
}

日期计算

标题
日期计算

类别
流程控制

时间限制
1S

内存限制
256Kb

问题描述
给定一个年份y和一个整数d,问这一年的第d天是几月几日?
注意闰年的2月有29天,且满足下面条件之一的是闰年:
1) 年份是4的整数倍,而且不是100的整数倍;
2) 年份是400的整数倍

输入说明
输入包含两个整数y和d,y表示年份,年份在1900到2018之间(包含1900和2018)。 d表示这一年的第几天,d在1至365之间。

输出说明
在一行输出两个整数,分别表示答案的月份和日期。

输入样例
2015 80

输出样例
3 21

//由此可见,代码不是越长越好,只是我懒罢了,估计哪一天半夜迷迷糊糊地写的,哈哈哈哈,对自己充满嫌弃,像傻子一样
//下面公开处刑
#include<stdio.h>
int main()
{
   
	int year,day;
	
	scanf("%d%d",&year,&day);
	
	if(year%100!=0&&year%4==0||year%400==0)
	{
   
		if(day<31)
		printf("1 %d",day);
		else if(day>31&&(day-31)<=29)
		printf("2 %d",day-31);
		else if(day>(31+29)&&(day-31-29)<=31)
		printf("3 %d",day-31-29);
		else if(day>(31+29+31)&&(day-31-29-31)<=30)
		printf("4 %d",day-31-29-31);
		else if(day>(31+29+31+30)&&(day-31-29-31-30)<=31)
		printf("5 %d",day-31-29-31-30);
		else if(day>(31+29+31+30+31)&&(day-31-29-31-30-31)<=30)
		printf("6 %d",day-31-29-31-30-31);
		else if(day>(31+29+31+30+31-30)&&(day-31-29-31-30-31-30)<=31)
		printf("7 %d",day-31-29-31-30-31-30);
		else if(day>(31+29+31+30+31-30-31)&&(day-31-29-31-30-31-30-31)<=31)
		printf("8 %d",day-31-29-31-30-31-30-31);
		else if(day>(31+29+31+30+31-30-31-31)&&(day-31-29-31-30-31-30-31-31)<=30)
		printf("9 %d",day-31-29-31-<
  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十兮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值