Talk is cheap. Show me the code.
根据身高和体重计算BMI指数,并判断健康状态
判断输入的字符串是否为回文字符串
将输入的三位数反转输出
简单的成绩管理系统菜单界面
将3x3矩阵进行转置操作
使用递归方法输出斐波那契数列
判断输入的数是正数、负数还是零
将秒数转换为小时、分钟、秒格式
输出杨辉三角的前10行
根据半径计算球体体积
输入10个实数,分别计算正数和负数的和
判断输入的数字是否为素数
根据员工评分(1-5分)执行不同的处理逻辑
计算从0阶到k阶的不同走法(一次可走1阶或3阶)
在指定位置插入物品,并保持顺序
计算长方体、立方体、圆柱体的体积(使用自定义函数)
验证密码是否符合规范(长度、字符组成、两次输入一致)
纯本地离线查寝工具,支持Excel导入、标记异常、生成报告
根据身高和体重计算BMI指数,并判断健康状态
#include <stdio.h>
#include <math.h>
int main(int argc, char *argv[]) {
float kg, m, bmi;
printf("请输入体重与身高,单位是千克和米\n");
scanf("%f%f", &kg, &m);
bmi = kg / (m * m);
if (bmi >= 28.0)
{
printf("您的bmi是%.2f,处于肥胖,请尽快控制体重\n",bmi);
}
else if (bmi >= 24.0 && bmi <=27.9)
{
printf("您的bmi是%.2f,处于超重,请控制体重\n",bmi);
}
else if (bmi >= 18.5 && bmi <= 23.9)
{
printf("您的bmi是%.2f,您体重正常,请继续保持\n",bmi);
}
else if (bmi <= 18.4)
{
printf("您的bmi是%.2f,您体重偏低,请注意\n",bmi);
}
else
{
printf("请重试\n");
}
return 0;
}
判断输入的字符串是否为回文字符串(正读反读相同)
#include <stdio.h>
#include <string.h>
void f1(char *p, int n) {
int i = 0;
char ch;
printf("请输入一个字符串,不超过%d个字符\n", n - 1);
while (i < n - 1) {
scanf("%c", &ch);
if (ch == '\n') {
break;
}
p[i] = ch;
i++;
}
p[i] = '\0';
}
int f2(char *p) {
int i, j;
int n = strlen(p);
for (i = 0, j = n - 1; i < n; i ++, j --) {
if (p[i] != p[j]) {
return 0;
}
}
return 1;
}
int main(int argc, char *argv[]) {
char a[20];
char *p;
p = a;
f1(p, 20);
if(f2(a)) {
printf("该字符串是回文\n");
} else {
printf("该字符串不是回文\n");
}
return 0;
}
将输入的三位数反转输出(例如123变成321)
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
int a, b, c, d, num, y;
printf("请输入一个三位数\n");
scanf("%d",&num);
if((num < 100) || (num > 1000))
{
printf("请检查输入是否为三位数\n");
}
else
{
a = num / 100;
b = num % 100;
c = b / 10;
d = b % 10;
y = 100 * d + 10 * c + a;
printf("%d\n",y);
}
return 0;
}
简单的成绩管理系统菜单界面(框架)
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
printf("-----学生成绩管理系统-----\n");
printf("--------1.添加成绩--------\n");
printf("--------2.查询记录--------\n");
printf("--------3.删除成绩--------\n");
printf("--------4.成绩排序--------\n");
printf("--------5.退出系统--------\n");
printf("请输入数字序号\n");
int x;
scanf("%d",&x);
switch(x)
{
case 1:printf("1.添加成绩\n");break;
case 2:printf("2.查询记录\n");break;
case 3:printf("3.删除成绩\n");break;
case 4:printf("4.成绩排序\n");break;
case 5:printf("5.退出系统\n");break;
default :printf("Error\n");
}
return 0;
}
将3x3矩阵进行转置操作(行变列,列变行)
#include <stdio.h>
#include <stdlib.h>
int transpose(int a [3][3]) {
int i, j;
int b[3][3];
for(i = 0; i < 3; i++) {
for(j = 0; j < 3; j++) {
b[j][i] = a[i][j];
}
}
printf("转置后的矩阵为:\n");
for(i = 0; i < 3; i++) {
for(j = 0; j < 3; j++) {
printf("%d ", b[i][j]);
}
printf("\n");
}
return 0;
}
int main(int argc, char *argv[]) {
int a[3][3];
int i, j;
for(i = 0; i < 3; i ++) {
for(j = 0; j < 3; j ++) {
scanf("%d", &a[i][j]);
}
}
printf("输入的矩阵为:\n");
for(i = 0; i < 3; i ++) {
for(j = 0; j < 3; j ++) {
printf("%d ", a[i][j]);
}
printf("\n");
}
transpose(a);
printf("\n");
return 0;
}
使用递归方法输出斐波那契数列(1, 1, 2, 3, 5, 8, ...)
#include <stdio.h>
int f(int n) {
if(n == 1 || n == 2) {
return 1;
} else {
return f(n - 1) + f(n - 2);
}
}
int main() {
int n;
int i;
scanf("%d", &n);
for(i = 1; i <= n; i ++) {
printf("%d ", f(i));
}
printf("\n");
return 0;
}
判断输入的数是正数、负数还是零
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(int argc, char *argv[]) {
int x;
printf("请输入一个数字\n");
scanf("%d",&x);
if (x > 0)
{
printf("这是一个正数\n");
}
else if (x < 0)
{
printf("这是一个负数\n");
}
else
{
printf("这是0\n");
}
return 0;
}
将秒数转换为小时、分钟、秒格式
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(int argc, char *argv[]) {
int x ,sa ,s ,m ,h ;
printf("请输入时间(单位为秒)\n");
scanf("%d",&x);
h = x / 3600;
sa = x % 3600;
m = sa / 60;
s = sa % 60;
printf("%d时%d分%d秒\n",h,m,s);
return 0;
}
输出杨辉三角的前10行
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
int a[10][10];
int i, j;
for(i = 0; i < 10; i++) {
for(j = 0; j <= i; j++) {
if(j == 0 || j == i) {
a[i][j] = 1;
} else {
a[i][j] = a[i-1][j-1] + a[i-1][j];
}
}
}
printf("杨辉三角是:\n");
for(i = 0; i < 10; i++) {
for(j = 0; j <= i; j++) {
printf("%6d", a[i][j]);
}
printf("\n");
}
return 0;
}
根据半径计算球体体积(公式:V = 4/3 * π * r³)
#include <stdio.h>
#include <stdlib.h>
#define PI 3.1415926535
int main(int argc, char *argv[]) {
printf("请输入半径\n");
float Vball, Rball;
scanf("%f",&Rball);
Vball=(4.0 / 3.0) * PI * Rball * Rball * Rball;
printf("Vball = %.2f\n",Vball);
return 0;
}
输入10个实数,分别计算正数和负数的和
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]) {
float a[10];
int i;
printf("请输入10个实数,每空格一个\n");
for(i = 0; i < 10; i ++) {
scanf("%f",&a[i]);
}
float b[10], c[10];
int j = 0, k = 0;
for(i = 0; i < 10; i ++) {
if(a[i] >= 0){
b[j] = a[i];
j ++;
} else {
c[k] = a[i];
k ++;
}
}
float sum1 = 0.0, sum2 = 0.0;
for(i = 0; i < j; i ++) {
sum1 += b[i];
}
for(i = 0; i < k; i ++) {
sum2 += c[i];
}
printf("正数和为:%.4f,负数和为:%.4f\n", sum1, sum2);
return 0;
}
判断输入的数字是否为素数
#include <stdio.h>
#include <stdlib.h>
int yesorno(int num) {
if (num < 2) {
return 0;
}
if (num == 2) {
return 1;
}
if (num % 2 == 0) {
return 0;
}
int i;
for (i = 3; i * i <= num; i += 2) {
if (num % i == 0) {
return 0;
}
}
return 1;
}
int main(int argc, char *argv[]) {
int num;
printf("请输入一个整数: ");
scanf("%d", &num);
if (yesorno(num)) {
printf("%d 是素数\n", num);
} else {
printf("%d 不是素数\n", num);
}
printf("\n");
return 0;
}
根据员工评分(1-5分)执行不同的处理逻辑,并赠送优惠券
#include <stdio.h>
int main() {
int reason;
printf("对客服的评分(1-5分的整数):\n");
int n;
scanf("%d", &n);
switch(n) {
case 1:{
printf("系统检测到有严重投诉。");
break;
}
case 2:{
printf("系统检测到有严重投诉。");
break;
}
case 3:{
printf("非常抱歉,请原谅我们。");
break;
}
case 4:{
printf("谢谢的好评,欢迎下次惠顾!\n");
printf("系统为您赠送了一张 3元 优惠券,请查收。");
break;
}
case 5:{
printf("谢谢的好评,欢迎下次惠顾!\n");
printf("系统为您赠送了一张 8元 优惠券,请查收。");
break;
}
}
return 0;
}
计算从0阶到k阶的不同走法(一次可走1阶或3阶)
已修正错误:原代码只考虑3阶情况,现修正为正确算法
#include <stdio.h>
int main(int argc, char** argv) {
int k;
scanf("%d", &k);
// 动态规划数组,dp[i]表示爬到第i阶的走法数
int dp[21] = {0};
// 初始条件
dp[0] = 1; // 在第0阶有一种走法(不走)
dp[1] = 1; // 从0阶走1阶到第1阶
// 计算从2到k阶的走法数
for(int i = 2; i <= k; i++) {
dp[i] = dp[i - 1]; // 从第i-1阶走1阶
if(i >= 3) {
dp[i] += dp[i - 3]; // 从第i-3阶走3阶
}
}
printf("%d", dp[k]);
return 0;
}
在指定位置插入物品,并保持顺序
#include <stdio.h>
int main() {
// 定义存储柜数组(最多30个物品)
int locker[30] = {0}; // 存储物品编号的数组
int n; // 当前物品数量
int pos, value, i;
// 获取当前物品数量
printf("请输入当前储物柜中的物品数量n(0<=m<=30):");
scanf("%d", &n);
for(i = 0; i < n; i ++) {
scanf("%d", &locker[i]);
}
scanf("%d%d", &pos, &value);
if(pos < 0 || pos > n) {
printf("位置无效,合法位置范围0-%d", n);
} else {
// 从后往前移动元素,为新物品腾出空间
for(i = n; i > pos; i --) {
locker[i] = locker[i - 1];
}
locker[pos] = value;
for(i = 0; i < n + 1; i ++) {
printf("%d ", locker[i]);
}
}
return 0;
}
计算长方体、立方体、圆柱体的体积(使用自定义函数)
已修正错误:优化了退出逻辑
#include <stdio.h>
#define PI 3.14159 // 定义圆周率常量
void Cuboid() {
int a, b, c;
printf("请输入长方体的长a、宽b、高c(均为整数):");
scanf("%d%d%d", &a, &b, &c);
int V = a * b * c;
printf("体积 = %d\n", V);
}
void Cube() {
int V = 5 * 5 * 5;
printf("体积 = %d\n", V);
}
void Cylinder() {
int r, h;
printf("请输入圆柱体的底面半径r和高h(均为整数):");
scanf("%d%d", &r, &h);
float V = PI * r * r * h;
printf("体积 = %.5f\n", V);
}
int main() {
int choice; // 菜单选择项
while (1) {
printf("===== 体积计算器 =====\n");
printf("1. 计算长方体体积\n");
printf("2. 计算立方体体积\n");
printf("3. 计算圆柱体体积\n");
printf("0. 退出程序\n");
printf("请输入功能选择(0-3):");
scanf("%d", &choice);
switch(choice) {
case 1 :
Cuboid();
break;
case 2 :
Cube();
break;
case 3 :
Cylinder();
break;
case 0 :
return 0;
default :
printf("无效选择,请重新输入!\n");
break;
}
}
}
验证密码是否符合规范(长度、字符组成、两次输入一致)
已修正错误:Same函数已修正长度检查问题
#include <stdio.h>
#include <string.h>
// 验证两次输入的密码是否完全一致
int Same(char *p1, char *p2) {
// 先检查长度是否相同
int len1 = 0, len2 = 0;
char *temp1 = p1, *temp2 = p2;
while(*temp1 != '\0') { len1++; temp1++; }
while(*temp2 != '\0') { len2++; temp2++; }
if(len1 != len2) {
return 0;
}
// 再逐个字符比较
while(*p1 != '\0' && *p2 != '\0') {
if(*p1 != *p2) {
return 0;
}
p1++;
p2++;
}
return 1;
}
// 验证密码长度(6-16位)
int check(char *p) {
int t = 0;
while(*p != '\0') {
t++;
p++;
}
if(t >= 6 && t <= 16) {
return 1;
} else {
return 0;
}
}
// 验证密码组成(数字、大小写字母、下划线)
int CharType(char *p) {
int valid = 1;
char *q = p;
int t = 0;
// 检查是否只包含合法字符
while(*p != '\0') {
if((*p >= '0' && *p <= '9') ||
(*p >= 'a' && *p <= 'z') ||
(*p >= 'A' && *p <= 'Z') ||
(*p == '_')) {
t = 1;
} else {
valid = 0;
break;
}
p++;
}
p = q;
// 检查是否同时包含数字、小写字母、大写字母、下划线
int a = 0, b = 0, c = 0, d = 0;
while(*p != '\0') {
if(*p >= '0' && *p <= '9') {
a = 1;
}
if(*p >= 'a' && *p <= 'z') {
b = 1;
}
if(*p >= 'A' && *p <= 'Z') {
c = 1;
}
if(*p == '_') {
d = 1;
}
p++;
}
if(a && b && c && d && valid) {
return 1;
} else {
return 0;
}
}
int main() {
char pwd1[21] = {0}, pwd2[21] = {0};
printf("请输入第一组密码字符串:");
scanf("%s", pwd1);
printf("请输入第二组密码字符串:");
scanf("%s", pwd2);
if(Same(pwd1, pwd2) * check(pwd1) * CharType(pwd1)) {
printf("OK");
} else {
printf("ERROR");
}
return 0;
}
纯本地离线查寝工具,支持Excel导入、标记异常、生成报告
功能特点:
(点击右上角▶️运行按钮可直接在浏览器沙盒中预览)
加载代码中...