【C语言】吃掉缓冲区
吃掉缓冲区背景:对输入的一个数判断是否是素数。所谓素数是指这个数只能被1和自身整除。要求在主函数输入一个数,调用函数Fun()判断该数是否是素数。打印信息在主函数中进行。例如:从键盘输入5,5是素数则打印如下信息:”5 is a prime number”。又如:从键盘输入4, 4不是素数则打印如下信息:”4 is not a prime number”。负数、0和1均不是素数。对输入的数据要考虑数据的合法性,不满足条件的数要重新输入直到满足条件为止。不能使用全局变量,不按给定的函数原型编写程序不给分。Fun()函数原型为: int Fun(int m);**输入数据提示信息:”Please input a number:\n”注:该提示信息请放在循环体外**输入数据格式为:”%d”**输出格式要求:若是素数输出数据格式为:”%d is a prime number\n”若不是素数输出数据格式为: “%d is not a prime number\n”程序运行示例1;Please input a number:1111 is a prime number程序运行示例2:Plea...
【C语言】void的含义
void的含义背景写一个函数,如果它首次被调用,则返回字母A,第二次被调用,则返回字母B,第三次调用,则返回字母C,以此类推。(提示:使用一个static数据类型)函数原型为:char call_times(void)。编写main函数测试它。**输出格式要求:”第一次调用返回字符%c!\n” “第二次调用返回字符%c!\n” “第三次调用返回字符%c!\n” 代码实现:123456789101112131415#include <stdio.h>char call_times(void);int main(){ printf("第一次调用返回字符%c!\n",call_times()); printf("第二次调用返回字符%c!\n",call_times()); printf("第三次调用返回字符%c!\n",call_times()); return 0;}char call_times(void){ static char ch='A'; return...
【C语言】屎山代码
屎山代码💩💩💩💩💩🥳🥳🥳🎉🎉🎉先让我们恭喜这个代码成为了一坨耙耙🥳🥳🥳🎉🎉🎉 背景:今天我看见了U4-基本类型变量作为函数参数 这个标题后,我想这不是普通的函数调用的题目吗?对于早在U3就开始使用函数调用的我来说,我很有信心能5分钟速通即将到来的题目,想着做完这道题就能马上收拾书包回寝了然而那时的我并不知道当我做完这道题已经是几点了于是我选择了中等这个难度,并毫不犹豫的点击了开始,这就是二战转折点,我的人生命运齿轮开始了一次崩坏的转动首先我看见了没有几行的题目。在我的印象中,C语言的题目越短越好做。但今天,这条定律成了我的墓志铭。我当时还在窃喜,做这道题可能5分钟都不需要。随后我就看到了这几个字: 第7章实验任务6我的心态发生了一些小小的变化,不过眼睛并没有在这几个字上停留多久,我开始了读题干“质因数分解”当我看见这几个字的时候,不由得觉得眼前发昏,我仿佛看见了太奶在向我招手,求生的本能迫使我点击了题目上方的“此题不会,以后在做”当我缓过神来,全身上下已经湿透了,包括我的内裤,大概率是因为我尿了。我颤颤巍巍地起身,拿起我的烟,腿软得像面条,踉跄...
【C语言】排序算法(选择法)
排序算法(选择法)我瞎写的代码:上课老师讲选择法的时候我睡着了(实在是困)现在我利用老师讲个课件中的大致逻辑自己尝试写了一份: 12345678910111213141516171819202122232425262728293031323334353637#include <stdio.h>void selection_sort(int*, int);void present(int*, int);int main() { int a[7] = { 13,38,65,97,76,49,27 }; selection_sort(a, 7); //printf("\n最后的结果"); present(a, 7);}void selection_sort(int a[], int n) { //只需要循环n-1=6轮 for (int i = 0;i <= n - 2;i++) { int temp; //printf("\n第%d循环", i + 1); //...
【C语言】getchar
计算getchar输入一、碰见个很烦的题目:*对输入的行、单词和字符进行计数。我们将单词的定义进行化简,认为单词是不包含空格、制表符\t及换行符的字符序列。例如:“a+b+c”,认为是1个单词,它由5个字符组成。又如:“xy abc”,为2个单词,6个字符。输入ctrl+z结束(提示:用ch!=EOF或ch!=-1作为循环条件)。**输出格式要求:”Lines=%d\nWords=%d\nChars=%d\n”程序运行示例如下:hi~Good moring!I’m Julie.Lines=3Words=5Chars=28 二、代码实现:我根本不会写啊,甚至连运行都运行不了。 123456789101112131415161718#include <stdio.h>int main(){ int lines = 0, words = 0, chars = 0; int ch; while ((ch = getchar()) != EOF) { chars++; if ...
【C语言】九九乘法表
九九乘法表题目:编写程序,打印输出如下图所示的乘法九九表: 1234567891011/*1 2 3 4 5 6 7 8 9 - - - - - - - - - 1 2 3 4 5 6 7 8 9 4 6 8 10 12 14 16 18 9 12 15 18 21 24 27 16 20 24 28 32 36 25 30 35 40 45 36 42 48 54 49 56 63 64 72 81*/ 输入提示信息: “Input n:\n”输入数据格式: “%d”表头第一行输出格式”%4d” (需要循环,行尾有回车)表头第二行输出格式” -“ (需要循环,行尾有回车)乘法表正文中每一列的空格格式:” “输出数据格式: “%4d” (需要循环,行尾有回车) 代码实现:1234567891011121314151617181920212...
【C语言】循环输入
循环输入我写的代码: 1234for (int i = 0;i <= 4;i++) { printf("please input: \n"); a[i] = getchar();} 这个问题的核心原因在于输入缓冲区(Input Buffer) 以及回车键(Newline Character) 的处理。 原因分析当你输入一个字符(例如 x)然后按下“回车”键时,实际上送入输入缓冲区的是两个字符: 你输入的字符 x 回车符 \n (换行符) getchar() 每次只从缓冲区里拿一个 字符。程序的执行流程是这样的: i=0 时 : 你输入 a 并按回车。 缓冲区内容:['a', '\n'] a[0] = getchar() 读取了 'a'。 关键点 :此时缓冲区里还剩下一个 '\n'。 i=1 时 : 循环继续,打印 “please input”。 a[1] = getchar() 再次执行。 因为它发现缓冲区里还有一个 '\n...
【C语言】打印图案
打印图案题目1:1234567* * * * * * * * * * * * * * * * * * * * * * * * * 我写的代码: 12345678910111213141516171819202122232425#include <stdio.h>int main(){ int space = 39, star = 1; for (int i = 1;i <= 7;i++) { for (int j = 1;j <= space;j++) { printf(" "); } for (int k = 1;k <= star;k++) { printf(" * "); } if (i <= 3) { space -= 3; star += 2; } else { space += ...
【C语言】排序算法(冒泡法)
排序算法(冒泡法)背景 循环输入一列数,并找出最大值 这是我写的代码: 123456789101112131415161718192021222324#include <stdio.h>int find_max(int);int main() { int a[4]; for (int i = 0;i <= 4;i++) { printf("please input: \n"); scanf_s("%d", &a[i]); } int max = find_max(a); printf("The max is %d", max); return 0;}int find_max(int a[]) { int max = a[0]; for (int i = 1;i <= 4;i++) { if (a[i] > max) { max = a[i]; } } return max;...
【C语言】数组形参与二进制位运算
数组形参与二进制位运算题目背景:输入一个整数,截取它对应的二进制位中从右到左的第8-11位(最右边为第0位)。**输入格式要求:”%d”**输出格式要求:”%d “程序运行示例如下:29971 0 1 1 代码实现:除2取余(我写的代码)12345678910111213141516171819202122232425#include <stdio.h>void convert(int num, int digit[]);int main(){ int num; int digit[100]; scanf_s("%d", &num); convert(num, digit); for (int i = 11; i >= 8; i--) { printf("%d ", digit[i]); } return 0;}void convert(int num, int digit[]){ for (int...

