看了这么久的C,也该动手练练了,语法是语言的血肉,那算法是语言的灵魂,通过几个例子练手,是对算法最简单直观的理解。
// main.c
// 算法入门1
//
// Created by tarena on 15/5/28.
// Copyright (c) 2015年 com.tarena.wanq. All rights reserved.
//
include <stdio.h>
include <math.h>
/* 题目1
平均数(average)
输入3个整数,输出他们的平均数,保留3位小数
/
void average();
void average()
{
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
float ave = (a+b+c)/3.0;
printf("%.3f",ave);
}
/ 题目2
温度(templerature)
输入华氏温度f,输出对应的摄氏温度c,保留3位小数,提示:c=(f-32)/9.
/
void templerature();
void templerature()
{
float f;
scanf("%f",&f);
float c = (f-32)/9;
printf("%.3f",c);
}
/ 题目3
连续和(sum)
输入正整数n,输出 1+2+...+n 的值,提示:目标是解决问题,而不是练习编程
/
void sum();
void sum()
{
int n;
scanf("%d",&n);
int sum = (1+n)n/2;
printf("%d",sum);
}
/* 题目4
正弦和余弦(sin/cos)
输入正整数n(n<360),输出n度的正弦、余弦函数值。提示:使用数学函数
/
void sincos();
void sincos()
{
int angle;
scanf("%d", &angle);
float sin,cos;
sin = sinf(angle/360);
cos = cosf(angle/360);
printf("%.3f %.3f",sin,cos);
}
/ 题目5
距离(distance)
输入4个浮点数x1,y1,x2,y2,输出平面坐标系中点x1,y1到点x2,y2的距离
/
void distance();
void distance()
{
float x1,y1,x2,y2;
scanf("%f %f %f %f",&x1,&y1,&x2,&y2);
float dist = sqrtf((x1-x2)(x1-x2)+(y1-y2)(y1-y2));
printf("%.3f",dist);
}
/ 题目6
偶数(odd)
输入一个整数,判断它是否为偶数。如果是,则输出yes,否则输出no。
/
void odd();
void odd()
{
int i;
scanf("%d",&i);
if(i%2 == 0){
printf("yes");
}else{
printf("no");
}
}
/ 题目7
打折(discount)
一件衣服95元,若消费满300,可打八五折。输入购买衣服件数,输出需要支付的金额,保留两位小数
/
void discount();
void discount()
{
int price = 95;
int num;
scanf("%d",&num);
float amount = pricenum;
if(amount>300){
amount = amount0.85;
}
printf("%.2f",amount);
}
/ 题目8
绝对值(abs)
输入一个浮点数,输出他的绝对值,保留两位小数
/
void my_abs();
void my_abs()
{
float f;
scanf("%f",&f);
if(f<=0){
f= -f;
}
printf("%.2f",f);
}
/ 题目9
三角形(triangle)
输入三角形三边长度值,判断它是否能为直角三角形的三个边长。如果可以,则输出yes,如果不能,则输出no。如果根本无法构造三角形,则输出not a triangle
/
void triangle();
void triangle()
{
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
// 任意两边之和大于第三边,两边之差小于第三边
if(a+b<=c||a+c<=b||b+c<=a) /判断是否能构成三角形/
printf("No!\n");
else
{
printf("Yes!\n");
if(a==c||a==b||b==c) /判断是否为等腰三角形/
{
printf("It can be an isoceles triangle!\n");
if(a==c && a==b) /判断是否为等边三角形/
printf("It also can be an equilateral triangle!\n");
else
printf("But it can not be an equilateral triangle!\n");
}
else
{
printf("It can't be an isoceles triangle!\n");
}
}
}
/ 题目10
年份(year)
输入年份,判断是非位闰年。如果是,则输出yes,否则输出no.
*/
void year();
void year()
{
int year;
scanf("%d",&year);
if(year%400==0||(year%4&&year==0%100!=0)){
printf("yes");
}
else{
printf("no");
}
}
int main(int argc, const char * argv[])
{
// insert code here...
printf("Hello, World!\n");
// 测试average
// average();
// 测试templerature
// templerature();
// 测试sum()
// sum();
// 测试sincos
// sincos();
// distance()
// distance();
// discount
discount();
return 0;
}
最后,还是推荐一个内部资料和学习的地方:QQ群:七一零,五二零,三八一,推荐人:柳猫,审核秒过,我们一起来学C语言
网友评论