C语言编程入门——综合练习(二)
解一元二次方程:
# include
# include
int main(void)
{
double a;
double b;
double c;
double x1;
double x2;
double det;
char ch;
do
{
printf("请输入a b c 三个系数的值:\n");
printf("a = ");
scanf("%lf", &a);
printf("b = ");
scanf("%lf", &b);
printf("c = ");
scanf("%lf", &c);
det = b*b - 4*a*c;
if (det > 0)
{
x1 = (-b + sqrt(det)) / 2*a;
x2 = (-b - sqrt(det)) / 2*a;
printf("方程有两个解:x1 = %lf x2 = %lf\n", x1, x2);
}
else if(det == 0)
{
x1 = (-b + sqrt(det))/2*a;
printf("方程有一个解: x1 = x2 = %lf\n", x1);
}
else
{
printf("方程没有解\n");
}
printf("您想继续吗?(Y/N)\n");
scanf(" %c", &ch); //ch前必须加一空格 (空白符问题)
}while ('y' == ch || 'Y' == ch);
return 0;
}
分数等级判断程序:
# include
int main(void)
{
int i;
printf("请输入您的成绩:");
scanf("%d", &i);
if (i > 100)
printf("一切皆有可能!!!\n");
else if(i >= 90 && i <= 100)
printf("您的等级是:优秀\n");
else if (i >= 80 && i < 90) // <= 所得结果为一逻辑值,是布尔型 其值为0或1,永远小于90,即此式永远成立! 其值永远为真(1)
printf("您的等级是:良好\n");
else if (i >= 60 && i < 80)
printf("您的等级是:及格\n");
else if (i >= 0 && i < 60)
printf("抱歉!您的等级是:不及格\n");
else
printf("请不要开玩笑!\n");
return 0;
}
三个数字排序(if语句实现,这个程序很啰嗦,只为练习if语句所写):
# include
int main(void)
{
double i, j, k;
printf("请输入三个数(中间以空格隔开):");
scanf("%lf %lf %lf", &i, &j, &k);
if (i > j)
{
if (i > k)
{
printf("最大值为:%lf\n", i);
if (j > k)
printf("数的大小顺序为:%lf > %lf > %lf\n", i, j, k);
else
printf("数的大小顺序为:%lf > %lf > %lf\n", i, k, j);
}
else
{
printf("最大值为:%lf\n", k);
printf("数的大小顺序为:%lf > %lf > %lf\n", k, i, j);
}
}
else
{
if (j > k)
{
printf("最大值为:%lf\n", j);
if (i > k)
printf("数的大小顺序为:%lf > %lf > %lf\n", j, i, k);
else
printf("数的大小顺序为:%lf > %lf > %lf\n", j, k, i);
}
else
{
printf("最大值为:%lf\n", k);
printf("数的大小顺序为:%lf > %lf > %lf\n", k, j, i);
}
}
return 0;
}
判断一个数是否为回文数:
# include
int main(void)
{
int val;
int m;
int sum = 0;
printf("请输入需要判断的数:");
scanf("%d", &val);
m = val;
while (m) //while循环为重点!
{
sum = sum * 10 + m % 10;
m /= 10;
}
if (sum == val)
{
printf("此数是回文数!\n");
}
else
{
printf("此数不是回文数!\n");
}
return 0;
}
递归求阶乘之和:
# include
int jieCheng(int n);
int main(void)
{
int i, n;
int mul = 1;
int sum = 0;
printf("请输入n:");
scanf("%d", &n);
for (i=1; i<=n; ++i)
{
mul *= i;
sum += mul;
}
printf("阶乘之和为:%d\n", sum);
return 0;
}
//递归
int jieCheng(int n)
{
int mul;
if (1 == n)
{
return mul;
}
else
{
mul=n*jieCheng(n-1);
}
return mul;
}
生成随机数,进行概率预测:
目前计算机中的随机数都是伪随机数
# include
# include
# include
enum Random
{
Up, Down, Left
};
int main(void)
{
int r;
//定义枚举变量数组,包含10个元素,产生的随机数r作为其下标
Random rd[10] = {Up, Up, Up, Up, Up, Down, Down, Down, Left, Left};
srand((int)time(0)); //初始化随机数种子
r=(int)(rand()%9+1); //得到0到9中的一个随机数
//printf("%d\n", r); //测试随机数r
//使用switch判断选择情况
switch (rd[r])
{
case Up:
printf("您的选择是向上走!\n");
break;
case Down:
printf("您的选择是向下走!\n");
break;
case Left:
printf("您的选择是向左走!\n");
break;
}
return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。