【C语言】循环嵌套
循环嵌套一、题目求 s = a+aa+aaa+… …+aaa…a的值,其中a是一个数字,如2+22+222+2222,a的值和加数个数n,均从键盘获取。要求a属于[1,9],n小于10(如果不满足此条件,就重新输入)。输入:输入a值和n值输入提示信息:”Please input a:”输入格式:”%d”输入提示信息:”Please input n:”输入格式:”%d”输出:算式及和输出提示信息:“Sum=算式”,输出格式提示:采用 “Sum=”, “%ld”, “+%ld”“Sum=和”,输出格式”\nSum=%ld\n”程序运行示例:Please input a:8Please input n:9Sum=8+88+888+8888+88888+888888+8888888+88888888+888888888Sum=987654312 二、我写的代码这是我的写的第一个双循环,总共花了我一个小时,中途没有借助豆包等大语言模型,仅仅使用了visual studio实现了代码的逐句执行以下是我写的代码: 12345...
【C语言】日历calender
日历calender背景今天做火车回武汉,在车上无聊,想起来老师教的,用C语言写日历,我便试了试。但是考虑到每月有30天,也有31天的,年还有闰年的,我只写了2025年一月和二月的日历 代码实现1234567891011121314151617181920212223#include <stdio.h>int main() { int year; int i,j=1,g=1; printf("seven one two three four five six\n "); for (i = 1;i <= 31;i++) { printf("%2.d ", j); j++; if ((i + 7) % 7 == 4) { printf("\n"); } } printf("\n "); for (int k = 1;k <= 28;k++) { ...
【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) 作...

