- 博客(56)
- 收藏
- 关注
原创 #74 约瑟夫游戏
题目描述:约瑟夫游戏的主要问题:输入:总人数 N 剩余人数 K 间隔人数 M其中的间隔人数为实际间隔的人数,如果剩余人数为0,则输出0。比如,输入8 4 3(空格分隔输入) 输出1,3,6,7(逗号分隔输出)输入数据错误时,输出ERROR分析过程如下:1、初始状态 1 2 3 4 5 6 7 82、间隔三个删除, 4,83、余下人数大于4,流程继续删除 5,24、现在剩下人数4人=K,剩余输出余下的人有:1,3,6,7参考代码:#inclu
2021-12-28 18:39:33 4325 3
原创 #ex9 C语言标准实验报告
实验内容:上机完成以下编程实验,调试运行程序并完成报告。1.输入一个数,使用质数表对其进行因式分解。注:因式分解基本上就是使用小于输入数的数值当作除数,去除以输入数值,如果可以整除就视为因数,要比较快的解法使用质数表的方法,该方法就是求出小于该数的所有质数,并试试看是不是可以整除,从而完成因式分解。2.求10000以内的所有完美数,要求程序要有较高的运算效率。说明:如果有一数n,其真因数(Proper factor)的总和等于n,则称之为完美数(Perfect Number),例如以下几个
2021-12-10 08:50:55 2364
原创 #ex8 C语言标准实验报告
实验内容:从文件中读取学生信息并打印。完成以下编程实验,调试运行程序并完成报告。设每个学生包含如下信息: 属性名 姓名 专业名称 英语成绩 线性代数成绩 C成绩 总成绩 类型 字符串 字符串 整数 整数 整数
2021-12-05 11:32:06 8311 5
原创 #ex10 C语言标准实验报告
实验内容:上机完成以下编程实验,调试运行程序并完成报告。编写矩阵定义、初始化函数; 编写矩阵加法函数; 编写矩阵减法函数; 编写矩阵乘法函数; 编写求矩阵均值函数; 编写求一个矩阵的子阵函数; 编写矩阵输出函数; 编写主控函数;主要函数和结构参考原型如下:typedef struct{double ** mat;int row;int col;}Matrix;void InitialMatrix(Matrix *T, int row,int col)
2021-12-01 10:02:22 3433 9
原创 #119 求5个正整数的最小公倍数
题目描述:编写程序,从键盘输入5个正整数,然后求出它们的最小公倍数,并显示输出。(通过调用对两个正整数求最小公倍数的函数实现)(参考函数原型:int find(int director, int j))输入输出格式要求: 编写函数int find(int director, int j);返回值为director和j的最小公倍数 在main函数接收5个正整数,然后输出最小公倍数例如:输入:2 3 6 9 10回车输出:90参考代码:#include<stdio.h>
2021-11-26 20:13:05 1804
原创 #57 统计字符串个数
题目描述:写一个函数,实现统计字符串的既不是数字也不是字母的元素个数。函数原型:Int CalString(char *str);你需要先自己写main函数测试您的函数是否能够正确运行,测试结束后删除main函数再递交。参考代码:#include<stdio.h>int CalString(char *str);int main(){ char s[100]; scanf("%s",s); printf("%d",CalString(s)); return
2021-11-26 20:02:59 1494
原创 #52 将输入字符串变为大写
题目描述:接收输入的一个字符串(无空格、制表符等),将字符串中的小写字母转换为大写字母,输出转换后的字符串,最后必须输出回车。最长输入20个有效字符(不包括回车)。例如输入:apple 输出:APPLE如果字符串中包含了其他字符,均不进行转换,只转换小写字母为大写字母。如输入:test2test* 输出:TEST2TEST*参考代码:#include<stdio.h>int main(){ int num=1; char c; c=getchar(); wh
2021-11-25 13:20:15 3098 3
原创 #33 mystrcpy
题目描述:实现字符串的拷贝。void my_strcpy(char * destination,char * source);将source指向的字符串拷贝到destination指向的位置。注意:使用空格字符来表示字符串的结束。例如source指向位置,依次保存了字符'a',字符'b',字符空格' ',字符'c',则source指向的字符串为"ab"。遇到异常情况,输出"error";否则不要随意输出,会视为错误。参考代码:#include<stdio.h>
2021-11-25 13:06:36 2992
原创 #47 将输入字符串原封不动输出
题目描述:接收输入的一个字符串(无空格、制表符等),原封不动输出该字符串,最后必须输出回车。最长输入20个有效字符(不包括回车)。例如输入:apple 输出:apple输入:test2test* 输出:test2test*参考代码:#include<stdio.h>int main(){ char s[24]; gets(s); puts(s); return 0;}讲解: 这是什么水题鸭?求实求真,大气大为。...
2021-11-24 17:42:13 1519 1
原创 #20 找出1-1000之间的完数
题目描述:一个数如果恰好等于它的因子之和,就被成为完数。例如6的因子为1,2,3,而6=1+2+3,所以6是一个完数。编程找出1-1000之间的所有完数,并按照从小到大的顺序输出,输出的每个数都必须以回车结尾。参考代码:#include<stdio.h>#include<math.h> void Perfect(int n){ int i,j; for(i=2;i<n;i++) { int now=sqrt((double)i); int
2021-11-24 17:35:37 1851 1
原创 #13 计算Fibonacci数
题目描述:有一对兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第三个月后每个月又生一对兔子。假设所有的兔子都不死,问第n个月时有几对兔子。即求第n个Fibonacci数。例如输入1,输出1;输入2,输出1;输入3,输出2;输入4,输出3;参考代码:#include<stdio.h>int main(){ int n,num[10001]; num[1]=1; num[2]=1; scanf("%d",&n); for(int i=3;i&l
2021-11-21 15:01:41 760 1
原创 #6 实现指定函数maxInt
题目描述:实现maxInt方法:void maxInt(int * array,int n,int * result);传入数组,数组元素个数,int指针。将数组中的最大值保存在result中。保存为maxInt.cpp.遇到异常情况,输出"error";否则不要随意输出。参考代码:#include<stdio.h>void maxInt(int * array,int n,int * result){ if(array==NULL||n<=0||resul
2021-11-21 14:55:03 1391 2
原创 #235 动态内存分配
题目描述:编写程序,输入整数n,动态分配保存n个整数的存储器,然后输入n个整数保存到存储器中。最后,将这n个整数从小到大输出。例如:输入如下:10回车10 9 8 7 6 5 4 3 2 1回车则输出1,2,3,4,5,6,7,8,9,10参考代码:#include<stdio.h>#include<stdlib.h>#define SWAP(a,b) {a=a+b; b=a-b; a=a-b;}int main(){ int n,*a,i,j;
2021-11-18 12:14:22 2634
原创 #234 宏定义与使用
题目描述:编写程序,定义宏#define MAX(a,b) (a>b)? a : b然后利用此宏,从输入的三个整数中找出最大数,并输出。例如:输入为1,5,12回车输出为12参考代码:#include <stdio.h>#define MAX(a,b) (a>b)?a:bint main(){ int a,b,c,max; scanf("%d,%d,%d",&a,&b,&c); max=MAX(a,b
2021-11-18 10:53:23 1268
原创 #233 全局变量
题目描述:编写工程,包括两个源文件。其中一个源文件包括函数cal,计算整形数组的最大值、最小值和平均值,保存在全局变量中。函数原型如下:extern int cal ( int *pData, int iLen );其中,pData为指向数据的指针,iLen为数据个数。当计算成功时,函数返回1,出现异常情况时,返回0另一个包含main()函数的源文件内容如下:#include <stdio.h>int max_val, min_val, ave_val;int ca
2021-11-17 12:59:57 1216
原创 #110 学生管理系统
题目描述:编写学生管理系统,其中学生的信息有姓名(汉语拼音,最多20个字符),性别(男/女,用1表示男,2表示女)、生日(19850101(年月日))、身高(以m为单位),还需要处理C语言、微积分两门课的成绩,请编写程序实现功能:输入学生的人数和每个学生的信息;输出每门课程的总平均成绩、最高分和最低分,以及获得最高分的学生的信息。需要注意的是某门课程最高分的学生可能不只一人。输入输出格式要求: 身高输出时保留两位小数,请按照例子中进行输出,请勿输出其他字符例如:输入:3 zhangsa
2021-11-16 18:58:44 3503 2
原创 #41 对结构体数组进行排序
题目描述:对结构体数组进行排序。题目描述:struct Person{ int no; int age; int height;}实现sort方法对结构体数组进行排序。void sort(Person * array,int n);根据no从小到大排序;如果no相同则根据age排序;如果age相同,则根据height排序。注意:遇到异常情况,输出"error";否则不要随意输出,会视为错误。参考代码:#include<stdio.h>struc
2021-11-16 10:00:09 4739 4
原创 #8 实现指定函数swap(结构体)
题目描述:实现swap方法struct Person{ int age; int height;}void swap(Person * array,int n);输入结构体数组和数组元素个数。交换第一个和最后一个元素的height。保存为swap.cpp.遇到异常情况,输出"error";否则不要随意输出。参考代码:#include<stdio.h>struct Person{ int age; int height;};void s
2021-11-16 09:53:53 2496 1
原创 #36 del
题目描述:实现在字符串的内部删除字符串的函数del。函数原型如下:void del(char * s,int n,int len) ;在s指向的字符串中,从s第n个字符的位置开始,删除len个字符,结果通过指针s返回。n是从0开始,到s的长度-1为止。从0开始,len=s的字符串长度时,全部删除,原字符串为空字符串。注意:使用空格字符来表示字符串的结束。例如source指向位置,依次保存了字符'a',字符'b',字符空格' ',字符'c',则source指向的字符串为"ab"。保存为fun
2021-11-15 21:25:18 2774 4
原创 #34 mystrcat
题目描述:实现字符串的连接。void my_strcat(char * destination,const char * source);将source指向的字符串的拷贝,添加到destination指向的字符串的末尾。注意:使用空格字符来表示字符串的结束。例如source指向位置,依次保存了字符'a',字符'b',字符空格' ',字符'c',则source指向的字符串为"ab"。保存为functions.cpp。遇到异常情况,输出"error";否则不要随意输出,会视为错误。参
2021-11-14 16:21:42 1977 4
原创 #232 指针练习之字符串拷贝
题目描述:利用指针编写C程序,实现如下功能:接收从键盘输入的一个字符串,并将其所有字符依次拷贝到另一字符串中,要求在拷贝的过程中每两个字符后增加一个*,完成拷贝后输出新字符串,并在输出完成后输出回车换行符表示结束。注意:如果该字符串已到末尾,则不再加*样例输入1:ab2d3c样例输出1:ab*2d*3c(末尾有回车换行)样例输入2:ab2d3样例输出2:ab*2d*3(末尾有回车换行)样例输入3:ab*cde样例输出3:ab**c*de(末尾有回车换行)参考代码:#inclu
2021-11-11 18:58:24 2769 14
原创 #231 指针练习之学号转换
题目描述:假设一个合法的学号由四位年级号、两位学院号与四位班级号、三位班内编号依次构成,一共13位数(本题中,一个合法的学号应仅包含数字),利用指针和数组实现一个函数fun()原型:int fun(const char *p, int result[]);功能:将以字符形式存放的自己学号转换成四个整数(依次表示:年级、学院、班级、学号),并存放于一个整数数组中。参数说明:p为传入的学号字符串,以'\0'结束;result传入用于接收返回结果的整型数组首地址,规定其0号下标开始依次存放“年级、学院
2021-11-11 18:42:34 2067 11
原创 #230 指针练习之最值问题
题目描述:利用指针完成一个C程序:要求输入n个整数构成一个序列,搜索这一序列的最大/最小值及该值在序列中的位置。约定:1. 首先输入元素个数,如果元素个数非法,则输出error后退出程序(error后不接回车或换行等符号)。2. 然后依次输入各元素,以空格分割3. 输出中所有标点符号都为英文符号4. 目标元素在序列中的位置从1开始计算样例输入:6145 23 1 0 234 99样例输出:max:234,position:5min:0,position:4注意:以上输出后都有换
2021-11-11 17:28:49 1286
原创 #7 实现指定函数printSize
题目描述:实现printSize方法:void printSize(int * first,int * last);传入数组第一个元素地址和最后一个元素地址。输出数组内元素的个数和数组的大小。用逗号区分,回车结束输出。如输出4,16回车遇到异常情况,输出"error"。参考代码:#include<stdio.h>void printSize(int * first,int * last);int main(){ int array[257]={1,2,3,4};
2021-11-11 17:19:30 1564 2
原创 #225 子串查找
题目描述:补全函数index(char s[], char t[])检查字符串s中是否包含字符串t,若包含,则返回t在s中的开始位置(下标值),否则送回-1。#include<stdio.h>int index(char s[], char t[]){ int i, j, k; for (i = 0; s[i] != '\0'; i++) { [???????????] } return(-1);}int main(){ static c
2021-11-08 20:05:16 1081
原创 #115 二维数组数据行列互换
题目描述:编写函数,使其能将二维数组(5*3)中的数据进行行列互换。(参考函数原型:void tran(int array[5][3], int out_array[3][5]))输入输出格式要求: out_array是用于保存行列交换之后的结果的数组 碰到异常情况输出error(参数为null) 例如:array[5][3] = {{1,2,3},{4,5,6},{7,8,9},{10,11,12},{13,14,15}}调用tran函数之后out_array[3][5] = {{1
2021-11-08 19:49:14 1934
原创 #114 随机数置换
题目描述:背景:假设要生成前n个自然数的一个随机置换,如{4,3,1,5,2}和{3,1,4,2,5}就是一个合法置换;但{5,4,1,2,1}就不是,因为1出现2次而3没有。假设我们有一个随机数生成器RandInt(i,j),它以相同概率生成i到j之间的整数,下面是三个算法。(1) 如下填入从A[0]到A[N-1]的数组A:为了填入A[i],生成不同于A[0],A[1],...,A[i-1]之间的随机数时,才将其填入A[i](2) 同算法1,但保留一个称为Used数组的附加数组,当一个随机
2021-11-08 19:39:14 1833 7
原创 #40 逆序memcpy
题目描述:实现逆序的Memcpy方法。函数原型: void * reversememcpy ( void * destination, const void * source, int num );功能要求: 从source所指的内存地址的起始位置开始拷贝num个字节,按字节逆序保存到目标destination所指的内存地址的起始位置中。返回值:为destination注意:1. 本函数实现的是按字节逆序拷贝。例如source指向位置,如果依次保存了'a','b','c','d',当num
2021-11-06 15:39:25 2494 4
原创 #35 insert
题目描述:实现在字符串的内部增加字符串。void insert(char * s1,char * s2, int n);将s2指向的字符串的拷贝,添加到s1第n个字符的位置,原位置的字符后移。n=0时,s2增加到s1的首部;n=s1的字符串长度时,s2增加到s1的末尾。注意:使用空格字符来表示字符串的结束。例如source指向位置,依次保存了字符'a',字符'b',字符空格' ',字符'c',则source指向的字符串为"ab"。保存为functions.cpp。遇到异常情况,输出
2021-11-06 15:18:54 3117
原创 #53 实现冒泡排序的函数
题目描述:写一个函数实现冒泡排序功能,函数原型: void bubbleSort(int data[],int n);待排序数据存储在一维整型数组data中,排序后的结果也存储在该数组中。函数内部不能有任何输入与输出操作。如果函数采用其他方法正确实现了排序操作,而不是冒泡排序,可以得一半的分数,如果有错误,则根据错误情况扣分。你需要先自己写main函数测试您的bubblSort函数是否能够正确运行,测试结束后删除main函数再递交。参考代码:vo
2021-11-05 23:01:18 1452
原创 #116 编写函数对字符串中的字符计数
题目描述:编写函数,使其能统计主调函数通过实参传过来的字符串(非控制台输入),对其中的字母、数字、空格分别计数。(要求在count函数中通过实参(char *str)传入字符串及输出统计结果)(参考函数原型:void count(char* str))输入输出格式要求: 字母,数字,空格例如:str为12asddCSDA sds23244354输出为11,10,2参考代码:#include<stdio.h>#include<string.h>void
2021-11-05 22:42:17 2197 1
原创 #118 编写函数输出小于等于n的水仙花数
题目描述:设有一个3位数,它的百位数、十位数、个位数的立方和正好等于这个3位数,如153=1+125+27。编写函数,返回小于等于传入参数n且满足该条件的三位数(称为水仙花数)的个数。(指定函数原型:int find(int n))输入输出格式要求: 编写函数int find(int n); 返回值要求:如果传入参数n不是三位数或者在该范围内没有找到,则find返回0, 否则返回找到的水仙花数的个数。 注意:不要在find函数中打印(如
2021-11-05 09:28:33 3505
原创 #121 实现函数逆序输出一组数据
题目描述:函数实现将输入的一组数据逆序输出的功能。(参考函数原型:void isort(int a[], int n))输入输出格式要求: 编写函数void isort(int a[], int n); n表示数组元素个数 输出格式为:n1,n2,n3,...,nn例如:a={1,2,3} n=3输出:3,2,1参考代码:#include<stdio.h>void isort(int a[],int n){ for(int i=n-1;i>=0;pri
2021-11-04 22:53:04 2823 3
原创 #5 实现指定函数swap
题目描述:实现swap方法:void swap(int * array,int n);传入数组和数组元素个数。函数内部将数组的第一个元素和最后一个元素的值进行交换。保存为swap.cpp。遇到异常情况,输出"error";否则不要随意输出将视为错误。参考代码:#include<stdio.h>void swap(int* array,int n){ int x; if(array==0||n<=0) { printf("err
2021-11-04 22:29:09 2094 2
原创 #189 折半查找
题目描述:输入n(n<100)个有序正数,请用折半查找算法,查找x在其中的位置。例如,输入:51,2,3,4,52输出:2测试集合中,x数一定在正数数组中。即不用处理错误逻辑。参考代码:#include <stdio.h>int main(){ int n,b[108],aim,i,j; scanf("%d",&n); j=n/2; for(i=1;i<=n;i++) { scanf(
2021-11-02 09:50:50 1658 4
原创 #37 删除字符串中连续的重复字符
题目描述:实现删除字符串中连续的重复字符(除字母和数字)。输入为字符串,将字符串中连续重复的,不是字母且不是数字的字符删去,然后输出处理后的字符串。输入字符串最长50个字符,之后截断,只输出处理后的字符串。例如输入11+++2==13回车输出11+2=3参考代码:#include <stdio.h>int main(){ char ch,mem='a'; int num=0; do { num++;
2021-11-02 09:39:03 2533 1
原创 #107 数组中的值逆序存放
题目描述:将一个数组中的值按逆序重新存放。例如,原来顺序为8,5,4,6,1,要求改为1,6,4,5,8。提示:要将一个数组中的所有元素按逆序存放,只需将数组的第1个元素与最后一个元素交换,第二个元素与倒数第二个元素交换,以此类推,直到数组最中间的元素为止。要求实现函数ReverseArray函数声明如下: int ReverseArray(int array[], int size); 其中array表示一个int的数组,size表示数组的长度,数组中第一个元素的下标为0 要求将ar
2021-11-02 09:27:37 3193 4
原创 #112 分别统计字母和数字个数
题目描述:编写程序,输入一个字符串,分别统计输出该字符串中的字母个数和数字个数。输入输出格式要求: 输入格式:string回车例如:输入:the day the month the year 123回车输出:letters:21,digits:3输入:aaabacad回车输出:letters:8,digits:0参考代码:#include<stdio.h>int main(){ char c; int l=0,d=0; do { c=getchar(
2021-10-29 22:18:12 1379
原创 #109 统计一行字符的单词数
题目描述:输入一行字符,统计其中包括多少单词,单词之间用空格分隔。输入输出格式要求: 输入格式:a b c d回车(空格可在任意位置,列如行头行尾可能会有空格。另外数字和字母一样,也可作为单词) 输出格式:单词数 输入的字符串长度最长为256个字符例如:输入:(空格)a a 112 c(空格)回车输出:4参考代码:#include<stdio.h>int main(){ char s[300]; int N=0,num=0; s[0]=32; do {
2021-10-29 22:11:47 1669 1
原创 #50 将字符串颠倒输出
题目描述:输入一个字符串(无空格),将字符串颠倒输出。最长50个字符。例如输入apple,输出elppa。参考代码:#include<stdio.h>int main(){ char s[51]; int len=0,i; do { len++; s[len]=getchar(); }while(s[len]!=10); for(i=len-1;i>=1;i--) printf("%c",s[i]); return 0;}讲解: ..
2021-10-28 11:23:59 1661 4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人