C语言 百炼成钢2

//题目4:输入某年某月某日,判断这一天是这一年的第几天?

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h> //分析:某年决定是平年还是闰年,某月决定本月有多少天,最后结果是前几个月的时间+本月已过的天数
//闰年的判断 (year%4==0&&year%100!=0)||(year%400==0) int protect(int year, int month){
//year==1表示闰年,year=0表示平年
int res = ;
int tuemonth = ;
if (year)
{
tuemonth = ;
}
switch (month - )
{
case :
res = ;
break;
case :
res = ;
break;
case :
res = + tuemonth;
break;
case :
res = + tuemonth + ;
break;
case :
res = + tuemonth + + ;
break;
case :
res = + tuemonth + + + ;
break;
case :
res = + tuemonth + + + + ;
break;
case :
res = + tuemonth + + + + + ;
break;
case :
res = + tuemonth + + + + + + ;
break;
case :
res = + tuemonth + + + + + + + ;
break;
case :
res = + tuemonth + + + + + + + + ;
break;
case :
res = + tuemonth + + + + + + + + + ;
break;
default:
res = + tuemonth + + + + + + + + + + ;
break;
}
return res;
} void main(){
int year = ;
int month = ;
int day = ;
int res = ;
printf("请输入年月日!\n");
scanf("%d,%d,%d", &year,&month,&day);
//
//判断年
if ((year % == && year % != ) || (year % == ))
{
//判断该年是闰年,二月份有29天
res = protect(, month) + day;
}
else
{
res = protect(, month) + day;
}
printf("这一天是这一年的第%d天", res); system("pause");
}

C语言 百炼成钢2

//题目5:输入三个整数x,y,z,请把这三个数由小到大输出。

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h> void sortnum(int *x,int *y,int *z){
int temp = ;
if (*x>*y)
{
temp = *x;
*x = *y;
*y = temp;
}
if (*y>*z)
{
temp = *z;
*z = *y;
*y = temp;
}
//至此*z的数值最大
if (*x>*y)
{
temp = *x;
*x = *y;
*y = temp;
}
//至此*x的数值最小
} void main(){
int x, y, z;
int *px, *py, *pz;
px = &x;
py = &y;
pz = &z;
scanf("%d%d%d", px, py, pz);
printf("\n你输入的数据是X=%d;Y=%d;Z=%d", *px, *py, *pz);
sortnum(px, py, pz);
printf("\n你排序之后的数据是X=%d;Y=%d;Z=%d", *px, *py, *pz); system("pause");
}

C语言 百炼成钢2

//题目6:用*号输出圆形图案。

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<math.h> //分析;(x1-x2)^2+(y1-y2)^2=R^2;其中r是园的半径,(x1-x2)^2+(y1-y2)^2是获取一个点与园心坐标的距离
//本题假设r=10,圆心坐标就是(10,0)
//pow() 函数用来求 x 的 y 次幂(次方),其原型为:double pow(double x, double y); //本圆不圆,是因为屏幕的行间距和列间距不相等 void main(){
//上方y轴
for (int i = ; i >-; i--)
{
//左侧x轴
for (int j = ; j < ; j++)
{
if ((pow((j - ),2.0)+pow(i,2.0))==pow(10.0,2.0))
{
printf("*");
}
else{
printf(" ");
}
}
//右侧x轴
for (int j = ; j < ; j++)
{
if ((pow((j - ), 2.0) + pow(i, 2.0)) == pow(10.0, 2.0))
{
printf("*");
}
else{
printf(" ");
}
}
printf("\n");
}
system("pause");
}

C语言 百炼成钢2

上一篇:C语言 百炼成钢19


下一篇:Java入门 - 语言基础 - 16.数组