C语言初阶小练习(1)

目录

//判断奇偶性

//谁在说谎?

//写出一个可以求方程根的程序

//实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定

 //百分制转五级记分制

//编写一个函数实现n的k次方,使用递归实现

//计算一个数的每位之和


//判断奇偶性

如何让程序随走随停——EOF(end of file)

停止:Ctrl + Z

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
    int num = 0;
    while(scanf("%d", &num) != EOF)// 或 == 1
    {
        if(num%2==1)
            printf("Odd\n");
        else
            printf("Even\n");
    }
    return 0;
}

//谁在说谎?

A、B、C、D四人在一起聊天。有3人始终说真话,有1人始终说谎。请找谁在说谎:A说不是我; B 说是 C; C 说是 D; D 说 C 胡说。

定义一个撒谎者,范围是a到d,然后再翻译4个人的话,比如a说不是他,翻译lier!=‘a’ ,如果为真 ,这个表达式的值就为1,然后3个人说真话,一个人说假话,就是4个表达式的值加起来等于3~

int main()
{
	char lier;
	printf("a、b、c、d四人在一起聊天。有3人始终说真话,有1人始终说谎。请找谁在说谎:\n");
	printf("a 说不是我; b 说是 c; c 说是 d; d 说 c 胡说。\n");
	for (lier = 'a'; lier <= 'd'; lier++) 
	{
		if ((lier != 'a') + (lier == 'c') + (lier == 'd') + (lier != 'd') == 3) 
		{
			printf("是%c在说谎\n", lier);
			break;
		}
	}
}

//写出一个可以求方程根的程序

△  < 0,则有两个虚根,输出:x1=实部-虚部i;x2=实部+虚部i 

实部= -b / (2*a),虚部= sqrt(-△ ) / (2*a)

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<math.h>
int main()
{
    float a, b, c;
	while (scanf("%f%f%f", &a, &b, &c) != EOF)
	{
		float x1 = 0;
		float x2 = 0;
		if (a == 0)
			printf("Not quadratic equation\n");
		else
		{
			float data = b * b - 4 * a * c;
			if (data == 0)
				printf("x1=x2=%.2f\n", (-b) / (2 * a) + 0);
			else if (data > 0)
				printf("x1=%.2f;x2=%.2f\n", ((-b) - sqrt(data)) / (2 * a), ((-b) + sqrt(data)) / (2 * a));
			else
			{
				float shi = (-b) / (2 * a);
				float xu = sqrt(-data) / (2 * a);
				printf("x1=%.2f-%.2fi;x2=%.2f+%.2fi\n", shi, xu, shi, xu);
			}
		}
	}
	return 0;
}

//实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定


#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
void PrintMulTable(int N)
{
	for (int i = 1; i <= N; ++i)
	{
		for (int j = 1; j <= i; ++j)
		{
			printf("%d*%d=%2d  ", j, i, j * i);
		}
		printf("\n");
	}
}
int main()
{
	int n = 0;
	scanf("%d", &n);
	PrintMulTable(n);
	return 0;
}

 //百分制转五级记分制

从键盘输入一个百分制成绩,计算并输出五级记分制等级

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
	printf("请输入一个百分制成绩:\n");
		int score = 0;
		scanf("%d", &score);
		if (score == 100)
		{
			printf("A 大佬请收下我的膝盖\n");
			return 0;
		}
	switch (score / 10)
	{
	case 9:
	case 8:
		printf("A 哎呦不错哦\n");
		break;
	case 7:
	case 6:
		printf("B 马马虎虎,及格啦\n");
		break;
	case 5:
	case 4:
		printf("C 恭喜你挂科了,要加油啊\n");
		break;
	case 3:
	case 2:
		printf("D 再低也是一种态度");
	case 1:
	case 0:
		printf("E 来参加考试是我最后的倔强\n");
		break;
	default:
		printf("请输入0~100以内的数字哦\n");
		break;
	}
	
	return 0;
}

//编写一个函数实现n的k次方,使用递归实现

救大命,只会迭代…………

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
void Cifang(int n, int k)
{
	int ret = 1;
	while(k>0)
	{
	    ret = n * ret;
		k--;
	}
	printf("%d\n", ret);
}
int main()
{
	int n, k;
	scanf("%d^%d", &n, &k);
    Cifang(n, k);
	return 0;
}

//计算一个数的每位之和

啊啊啊啊啊还是不会用递归!!!

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int DigitSum(int n)
{
	int sum = 0;
	int i = n;
	while (i > 0)
	{
		n = i;
		i = i / 10;
		n = n % 10;
		sum = sum + n;
	}
	return sum;
}
int main()
{
	int a = 0;
	scanf("%d", &a);
    int b= DigitSum(a);
	printf("%d\n", b);

	return 0;
}

持续更新中~~~

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值