【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...
【C语言】静态变量
静态变量一、背景12345678910111213141516#include<stdio.h>int square(int i);void main(){ int i=0; i=square(i); for(;i<3;i++){ static int i=1; i+=square(i); printf("%d,",i); } printf("%d\n",i);}int square(int i){ return i*i;} 输出: 12, 6, 42, 3 main函数初始化: int i=0; → 主函数中的 i 初始值为0。 i = square(i); → 调用 square(0) ,返回 0*0=0 ,主函数的 i 仍为0。 for循环执行(循环条件: i<3 ,主函数的 i 初始为0): 第一次循环(主函数 i=0 ): 定义 static int i=1; (静态变量,仅初始...
【C语言】求素数(质素)循环嵌套
求素数(质素)循环嵌套题目:求100~200间的全部素数(即质数),要求每行输出10个素数。下面程序中存在比较隐蔽的错误,请通过分析和调试程序,发现并改正程序中的错误。注意:请将修改正确后的完整源程序拷贝粘贴到答题区内。对于没有错误的语句,请不要修改,修改原本正确的语句也要扣分。当且仅当错误全部改正,且程序运行结果调试正确,才得满分。 123456789101112131415161718main() { int m,k,i,n; for(m=101;m<=200;m+=2) { if(n%10==0) printf("\n"); k=sqrt(m); for(i= 1;i<=k;i++) if(m%i==0) continue; if(i==m%10) { printf("%d ",m); n++; }...


