【C语言】水仙花数
水仙花数一、定义 水仙花数(narcissistic number)也叫“自恋数”,指一个n位数,各位数字的n次幂之和恰好等于它本身。 二、代码实现12345678910111213141516171819#include <stdio.h>#include <math.h>int main() { int a = 100; int gw, sw, bw; do{ gw = a % 10; sw = a / 10 % 10; bw = a / 100 % 10; if (pow(gw, 3) + pow(sw, 3) + pow(bw, 3) == a) { printf("%d是水仙花数\n",a); a++; } else { a++; } } while (a <= 999); return 0;}
【C语言】输入月份判断天数
输入月份判断天数代码要求 判断闰年 判断大小月 使用switch(我觉得没必要) 代码实现1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950#include <stdio.h>int main(){ int year, month, day; int big=31, small=30, two29=29, two28=28; printf("Please Input the Date:"); scanf("%d-%d", &year, &month); switch (month) { case 1: printf("%d days", big); break; case 2: printf("%d days&...
【C语言】金字塔
让电脑生成金字塔Pyramid- 老师上课讲过这个代码现在在回武汉的火车上,于是复刻了一下,听课的时候感觉很难,但其实理清楚 - 代码实现12345678910111213141516#include <stdio.h>int main() { int n,i,j,k; scanf_s("%d", &n); for (i = 1;i <= n;i++) { for (j = 1;j <= n - i;j++) { printf(" "); } for (k = 1;k <= 2 * i - 1;k++) { printf("*"); } printf("\n"); } return 0;} 这不最近老是用scanf输入吗,突发奇想试一试用getchar输入,结果好像发现我学的知识只能让我输入0-9的数字,以后再学吧。
【C语言】fabs函数的使用注意
震惊:fabs函数的使用注意那天我正在做一个很简单的题: 求输入数字的绝对值我立马想到了调用math.h函数解决这个问题这是我写的代码,并且我希望将取绝对值这个步骤整合到用于输出的代码中 1234567891011#include <stdio.h>#include <math.h>int main() { int a; scanf_s("%d", &a); printf("%d", fabs(a)); return 0;}//输入-123//输出0 apparently,我写的代码出错了因为fabs函数的作用是计算浮点数 的绝对值,返回值是double类型显然,我的a是int类型我是这么改的: 123456789#include <stdio.h>#include <math.h>int main() { int a; scanf_s("%d", &a); a = fabs(a); printf("%d&qu...
【C语言】putchar后面括号的用法
putchar 括号里面的参数使用规则如下: 1. 使用单引号的情况用于表示单个字符常量: 123456789101112#include <stdio.h>int main() { // 单个字符 - 必须用单引号 putchar('A'); // 正确:输出字符 A putchar('5'); // 正确:输出数字字符 5 putchar(' '); // 正确:输出空格 putchar('\n'); // 正确:输出换行符 putchar('\t'); // 正确:输出制表符 return 0;} 2. 不使用引号的情况使用字符变量或整数值: 1234567891011121314151617#include <stdio.h>int main() { char ch = 'B'; int n...
【C语言】循环中RETRY的用法
循环中RETRY的用法需求:要求用户输入正整数,若输入不合法则重试。 123456789101112131415#include <stdio.h>int main() { int num;RETRY: printf("请输入一个正整数:"); if (scanf("%d", &num) != 1 || num <= 0) { // 清空输入缓冲区的无效内容 while (getchar() != '\n'); printf("输入不合法!请重新输入\n"); goto RETRY; // 跳转到RETRY标记处,重新执行输入逻辑 } printf("你输入的正整数是:%d\n", num); return 0;} 说明 RETRY: 是一个标签(Label),用于标记代码中的位置; goto RETRY; 表示跳转到...
【C语言】数字字符
数字和数字字符背景今天遇到一个C语言编程题:要求实现”输入字符并判断是否为数字字符,是则转换为整数,否则输出错误”的功能我第一次写的代码: 12345678910111213#include <stdio.h>int main(){ char a; printf("please input an digit character:"); a = getchar(); if (a <= 9 && a >= 0) { printf("character '%c' is changed to integer %d", a, a ); } else { printf("INPUT ERROR!"); } return 0;} 可以说写了个几把无论我输入什么,结果都是INPUT ERROR! 问题分析 判断条件错误 代码中 if (a &l...
【C语言】生成一个随机数
利用time.h函数生成一个随机数生成一个”随机数”:1234567891011#include <stdio.h>#include <stdlib.h> // 包含rand()、srand()的头文件int main() { int num; num = rand(); printf("%d", num); return 0;}//直接运行,得到41//再次运行,得到41//再再再次运行,还是得到41 会发现这个随机数有个蛋用!!! 问题根源rand() 函数本身是伪随机数生成器,它的输出是基于一个“种子(seed)”的固定序列: 默认情况下, rand() 的种子是固定值(通常是 1 ),所以每次运行程序,都会生成相同的随机数序列。 解决方法需要通过 srand() 函数设置随机种子,通常用“当前时间”作为种子(因为时间是持续变化的),步骤如下: 包含头文件 <stdlib.h> 和<time.h>(获取当前时间的函数); 在调用 rand() 之前,用 time(NULL) 作...
【C语言】三目运算符
三目运算符基本语法1condition ? expression1 : expression2 工作原理 首先计算 condition 的值 如果 condition 为真(非零),则计算并返回 expression1 的值 如果 condition 为假(零),则计算并返回 expression2 的值 示例代码1234567891011121314151617181920#include <stdio.h>int main() { int a = 10, b = 20; // 基本用法 int max = (a > b) ? a : b; printf("较大的数是: %d\n", max); // 输出: 20 // 判断奇偶 int num = 15; printf("%d 是%s\n", num, (num % 2 == 0) ? "偶数" : "奇数"); // 输出: 15 是奇数 ...
【C语言】时间时钟
时间时钟碰见个题目:输入爱尔兰的当前时间,并显示其对应的华盛顿时间(减5个小时),莫斯科时间(加3个小时),北京时间(加7个小时)。输入的时间采用24小时制,如22:35(晚上10:35)。很简单,但比较复杂,总之,就是这么写的: 123456789101112131415161718192021222324252627282930313233343536373839#include <stdio.h>int main(){ int min; int ire, was, mos, bei; scanf("%d:%d", &ire, &min); was = ire - 5; mos = ire + 3; bei = ire + 7; if (ire >= 12) { printf("Washington: %d:%d\n", was, min); if (mos > 24) { p...


