1、三角形判断
题目:给定平面上任意三个点的坐标(x1,y1)、(x2,y2)、(x3,y3),检验它们能否构成三角形。
输入格式:
输入在一行中顺序给出六个[−100,100]范围内的数字,即三个点的坐标x1、y1、x2、y2、x3、y3。
输出格式:
若这3个点不能构成三角形,则在一行中输出“Impossible”;若可以,则在一行中输出该三角形的周长和面积,格式为“L = 周长, A = 面积”,输出到小数点后2位。
输入样例1:
4 5 6 9 7 8
输出样例1:
L = 10.13, A = 3.00
输入样例2:
4 6 8 12 12 18
输出样例2:
Impossible
代码1:
#include<stdio.h>
#include<math.h>
int main()
{
float x1,x2,x3,y1,y2,y3,a,b,c,s,f,e;
float L,A;
scanf("%f%f%f%f%f%f",&x1,&y1,&x2,&y2,&x3,&y3);
a=sqrt(pow(x1-x2,2)+pow(y1-y2,2));
b=sqrt(pow(x2-x3,2)+pow(y2-y3,2));
c=sqrt(pow(x1-x3,2)+pow(y1-y3,2));
if(a+b>c&&b+c>a&&a+c>b){
e=a+b+c;
s=e/2.0;
f=sqrt(s*(s-a)*(s-b)*(s-c));
printf("L = %.2f, A = %.2f",e,f);
}
else{
printf("Impossible");
return 0;
}
}
代码2:
#include<stdio.h>
#include<math.h>
int main()
{
double x1,y1,x2,y2,x3,y3;
double a,b,c,s;
scanf("%lf%lf%lf%lf%lf%lf",&x1,&y1,&x2,&y2,&x3,&y3);
a=sqrt(pow(x1-x2,2)+pow(y1-y2,2));
b=sqrt(pow(x1-x3,2)+pow(y1-y3,2));
c=sqrt(pow(x2-x3,2)+pow(y2-y3,2));
s = 0.5*(a+b+c);
if (a+b>c&&a+c>b&&b+c>a)
{
printf("L = %.2f, A = %.2f\n",2*s,sqrt(s*(s-a)*(s-b)*(s-c)));
}
else
{
printf("Impossible\n");
}
return 0;
}
2、统计字符
题目:本题要求编写程序,输入10个字符,统计其中英文字母、空格或回车、数字字符和其他字符的个数。
输入格式:
输入为10个字符。最后一个回车表示输入结束,不算在内。
输出格式:
在一行内按照
letter = 英文字母个数, blank = 空格或回车个数, digit = 数字字符个数, other = 其他字符个数
的格式输出。
输入样例:
aZ & 09 Az
输出样例:
letter = 4, blank = 3, digit = 2, other = 1
代码1:
#include<stdio.h>
int main()
{
int letter,blank,digit,other,i;
char a;
letter=blank=digit=other=0;
for(i=0;i<10;i++){
scanf("%c",&a);
if((a>='a'&&a<='z')||(a>='A'&&a<='Z')){
letter++;
}
else if(a>='0'&&a<='9'){
digit++;
}
else if(a==' '||a=='\n'){
blank++;
}
else{
other++;
}
}
printf("letter = %d, blank = %d, digit = %d, other = %d\n",letter,blank,digit,other);
return 0;
}
代码2:
#include <stdio.h>
int main()
{
char ch;
int i;
int letter=0,blank=0,digit=0,other=0;
for(i=1;i<=10;i++)
//while((ch=getchar())!='\n')
{
ch=getchar();
if(ch>='a'&&ch<='z'||ch>='A'&&ch<='Z')
{
letter++;
}
else if(ch==' '||ch=='\n')
{
blank++;
}
else if(ch>='0'&&ch<='9')
{
digit++;
}
else
{
other++;
}
}
printf("letter = %d, blank = %d, digit = %d, other = %d\n",letter,blank,digit,other);
return 0;
}
3、输出闰年
题目:输出21世纪中截止某个年份以来的所有闰年年份。注意:闰年的判别条件是该年年份能被4整除但不能被100整除、或者能被400整除。
输入格式:
输入在一行中给出21世纪的某个截止年份。
输出格式:
逐行输出满足条件的所有闰年年份,即每个年份占一行。输入若非21世纪的年份则输出"Invalid year!"。若不存在任何闰年,则输出“None”。
输入样例1:
2048
输出样例1:
2004
2008
2012
2016
2020
2024
2028
2032
2036
2040
2044
2048
输入样例2:
2000
输出样例2:
Invalid year!
代码1:
#include<stdio.h>
int main()
{
int n,i,a=0;
scanf("%d",&n);
if(n>2000&&n<2100){
for(i=2001;i<=n;i++)
{
if((i%4==0&&i%100!=0)||(i%400==0))
{
printf("%d\n",i);
a++;
}
}
if(a==0){
printf("None");
}
}else{
printf("Invalid year!");
}
return 0;
}
代码2:
#include<stdio.h>
int main()
{
int i,year,count=0;
scanf("%d",&year);
if(year<2001||year>2100)
{
printf("Invalid year!");
}
else
{
for(i=2001;i<=year;i++)
{
if(i%4==0&&i%100!=0||i%400==0)
{
printf("%d\n",i);
count++;
}
}
if(count==0)
{
printf("None\n");
}
}
return 0;
}
4、查询水果价格
题目:给定四种水果,分别是苹果(apple)、梨(pear)、桔子(orange)、葡萄(grape),单价分别对应为3.00元/公斤、2.50元/公斤、4.10元/公斤、10.20元/公斤。
首先在屏幕上显示以下菜单:
[1] apple
[2] pear
[3] orange
[4] grape
[0] exit
用户可以输入编号1~4查询对应水果的单价。当连续查询次数超过5次时,程序应自动退出查询;不到5次而用户输入0即退出;输入其他编号,显示价格为0。
输入格式:
输入在一行中给出用户连续输入的若干个编号。
输出格式:
首先在屏幕上显示菜单。然后对应用户的每个输入,在一行中按格式“price = 价格”输出查询结果,其中价格保留两位小数。当用户连续查询次数超过5次、或主动输入0时,程序结束。
输入样例1:
3 -1 0 2
输出样例1:
[1] apple
[2] pear
[3] orange
[4] grape
[0] exit
price = 4.10
price = 0.00
输入样例2:
1 2 3 3 4 4 5 6 7 8
输出样例2:
[1] apple
[2] pear
[3] orange
[4] grape
[0] exit
price = 3.00
price = 2.50
price = 4.10
price = 4.10
price = 10.20
代码1:
#include<stdio.h>
int main()
{
int choice,i;
double price;
printf("[1] apple\n");
printf("[2] pear\n");
printf("[3] orange\n");
printf("[4] grape\n");
printf("[0] exit\n");
for(i=1;i<=5;i++){
scanf("%d",&choice);
if(choice==0){
break;
}
switch(choice){
case 1:price=3.00;printf("price = %.2f\n",price);break;
case 2:price=2.50;printf("price = %.2f\n",price);break;
case 3:price=4.10;printf("price = %.2f\n",price);break;
case 4:price=10.20;printf("price = %.2f\n",price);break;
default:price=0.00;printf("price = %.2f\n",price);break;
}
}
return 0;
}
代码2:
#include<stdio.h>
int main()
{
int i,choice;
printf("[1] apple\n");
printf("[2] pear\n");
printf("[3] orange\n");
printf("[4] grape\n");
printf("[0] exit\n");
for(i=1;i<=5;i++)
{
scanf("%d",&choice);
switch(choice)
{
case 1: printf("price = 3.00\n");break;
case 2: printf("price = 2.50\n");break;
case 3: printf("price = 4.10\n");break;
case 4: printf("price = 10.20\n");break;
case 0: exit(0);
default: printf("price = 0.00\n");
}
}
if(i==6)
{
exit(0);
}
return 0;
}