- 博客(36)
- 收藏
- 关注
原创 有对象成员的派生类的构造与复制构造
对象成员以及基类的初始化须在成员初始化列表中给出,通过调用对象成员的方法和基类的构造函数实现。生产日期:2022-10-1。生产日期:2022-10-2。生产日期:2022-10-3。Vehicle复制构造。Vehicle复制构造。Vehicle复制构造。
2022-10-30 17:36:16 254
原创 C++面向对象作业(静态变量用于统计同类型对象共有属性)
undefined reference to `Worker::TotalAge',静态变量出错
2022-10-06 16:08:39 825
转载 多数元素问题
给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。来源:力扣(LeetCode)int majorityElement(int* nums, int numsSize){ int t = nums[0]; int n = 0; int i; for (i = 0; i < numsSize; i++) { if(nu.
2022-01-11 21:11:01 170
原创 选择排序与插入排序
选择排序#include<stdio.h>#include<stdlib.h>#include<time.h>void xuanze(int *a){ int i,j,t; for(i=0;i<10;i++) { for(j=i;j<10;j++) { if(a[j]<a[i]) { t=a[i]; a[i]=a[j]; a[j]=t; } } }}int main(){
2022-01-10 21:11:47 305
原创 归并排序(C语言实现)
#include<stdio.h>#include<stdlib.h>#include<time.h>void gui(int *a,int low,int mid,int high) //形参为一个指针变量(便于修改原数组重的值) { int t[high-low+1]; //定义一个中间数组,用于临时存放从原数组中取出的数据 int *p=t; int i=low,j=mid+1; //将数组分成两半,i 为前一半,j 为后一半,.
2022-01-10 12:13:39 479
原创 Top K问题(C语言实现)
在已知的含有十个元素的列表中找出其中前5大的数字,并降序输出#include<stdio.h>#include<stdlib.h>void tiaozheng(int a[],int low,int high){ int i,j,t; i=low; j=i*2+1; t=a[low]; while(j<=high) { if(a[j]>a[j+1] && j+1<= high) j=j+1; if(a[j]<
2022-01-09 16:25:01 728
原创 堆排序(Python与C语言实现)
堆排序最好还是要找个动画看看具体的实现方法,推荐大家先看看这个视频,先大致了解算法的思路清华博士72小时讲完的【数据结构与算法】整整100集,学完可就业!拿走不谢,学不会退出编程界_哔哩哔哩_bilibiliPython实现代码def sift(li,low,high): #low为根节点位置,high为堆的最后一个节点的位置 i = low j = i * 2 +1 #由父节点找左子节点的方法 t =
2022-01-08 21:52:20 514
原创 C语言实现快速排序
#include<stdio.h>int pai(int a[],int left ,int right){ int t; t=a[left]; //用一个变量把左值存起来 while(left < right) { while(left < right && a[right] >= t) //从右至左找出一个比 t 小的数 right = right-1; a[left]=a[right]; //把找出来的数.
2022-01-07 18:35:12 274
原创 动态创建结构体数组
#include<stdio.h>#include<stdlib.h>struct yuangong{ char name[20]; int age; int pay; } ; struct yuangong *shuru() { int i=0; char t; struct yuangong*p; p=(struct yuangong*)malloc(sizeof(struct yuangong)); scanf("%s",&p-&.
2021-12-26 11:12:11 2893 5
原创 F : 实验项目八(指针和结构体):动态内存分配构造数组的数组
题目描述有一种类似矩阵的数据结构,包括m行,每一行的列数可能不一样,第i行的列数记作ni。现输入这样的一个矩阵的数据,要求将每一行的数据降序排列并输出。提示:采用动态内存分配输入描述行数m第1行的列数n1第2行的列数n2...第m行的列数nm第1行的数值,空格符分隔第2行的数值,空格符分隔...第m行的数值,空格符分隔输出描述降序排列后的第1行的数值,空格符分隔降序排列后的第2行的数值,空格符分隔...降序排列后的第
2021-12-26 09:32:13 600
原创 C语言课程设计交通处罚单管理系统
#include<stdio.h>#include<string.h>#include<stdlib.h>#define N 100struct Plist{ char car[8]; //车牌号 char jianame[100]; //驾驶员姓名 char jiaoname[100]; //交警姓名 char jiaonumber[100];//交警编号 char number[100]; //交通处罚单号码 char date[100]; .
2021-12-22 17:59:50 5412 12
原创 详解数组指针,二重指针,以及以二维数组作为函数实参的应用。
作为一个普通的大一新生,深感被指针支配的恐惧,在看过一些文章后对数组指针有了一点自己的见解,如有不完整,错误,也希望得到各位的指正,感谢。 指针简单的,形象化的可以这么理解,就是一个地址,指向某一个内存单元:内存就像是一个旅店,每一个储存单元就是一个房间,储存单元中的数据就是旅客,而指针就是房间的门牌号。先来看个代码,代码目的是统计输入的二维数组中的0元素个数,在主函数中输入数据,调用自定义函数统计,并打印0元素个数。 代码中有少量注释...
2021-12-22 17:41:20 518
原创 数组的逆序排列(指针实现)
编写函数,将n个整数按原来的顺序的逆序排列(要求用指针实现),主函数完成:1) 输入10个数;2) 调用此函数进行重排;3) 输出重排后的结果#include<stdio.h>void reverse(int *p,int n){ int t,i; for(i=0;i<n/2;i++) { t=*(p+i); *(p+i)=*(p+n-i-1); *(p+n-i-1)=t; }}int main(){ int i,n,*p; ...
2021-12-21 15:23:57 4381
原创 有3个学生,每个学生的数据包括学号、姓名、3门课的成绩,从键盘输入3个学生数据,要求输出3门课总平均成绩,以及最高分的学生的数据(包括学号、姓名、3门课的成绩、平均分数)。
#include<stdio.h>int main(){ int i; float s,S; struct ST { char id[5]; char name[10]; float score[3]; float p; }st[3]; for(i=0;i<3;i++) { scanf("%s%s%f%f%f",&st[i].id,&st[i].name,&st[i].score[0],&st[i].score[1],.
2021-12-21 15:22:39 9543
原创 实验项目七(指针):字符串拷贝
#include<stdio.h>int main(){ char s1[255]; char s2[255],*p1=NULL,*p2=NULL; gets(s2); p1=s1; p2=s2; while(*p2!='\0') { *p1=*p2; p1++,p2++; } puts(s1);}
2021-12-19 21:02:50 110
原创 利用swap函数实现三个整数排序
#include<stdio.h>void swap(int *pt1,int *pt2){ int i; i=*pt1; *pt1=*pt2; *pt2=i;}void exchange(int *q1,int*q2,int*q3){ if(*q1>*q2) swap(q1,q2); if(*q1>*q3) swap(q1,q3); if(*q2>*q3) swap(q2,q3);}int main(){ int a,b,c; int.
2021-12-19 20:54:56 1219 2
原创 基于指针的字符串整数分离(两种方法)
输入一个字符串(内含数字和非数字字符),将其中连续数字作为一个整数依次放在数组a中,统计其中有多少个整数,并输出这些数。例如:a2345b12#345$wr12z这个字符串,将a[0]存放2345,将12存放在a[1]中,最后统计存放个数,以及输出这些数值。要求:采用指针实现,不允许出现数组下标访问运算符。将找出来的整数存在一个数组中,最后再输出#include<stdio.h>#include<string.h>void tongji(char *p,int n).
2021-12-19 11:08:48 662
原创 进制转换.
题目描述 写一个程序,输入一个二进制的字符串(长度不超过32),然后计算出相应的十进制整数,并把它打印出来输入描述输入为一个字符串,每个字符都是’0’或’1’,字符串的长度不超过32。输出描述#include<stdio.h>#include<string.h>int main(){ int i,j,k,n2,s=0,b,la; char a[32]; gets(a); la=strlen(a); for(i=la-1;i>=0.
2021-12-17 14:57:59 85
原创 水仙花数.
打印出所有"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该本身。例如:153是一个水仙花#include<stdio.h>int main(){ int a,b,c; for(a=1;a<=9;a++){ for(b=0;b<=9;b++){ for(c=0;c<=9;c++){ if(a*100+10*b+c==a*a*a+b*b*b+c*c*c){ .
2021-12-16 16:16:32 55
原创 球自由落体的行程问题
一球从M米高度自由下落,每次落地后返回原高度的一半,再落下。它在第N次落地时反弹多高?共经过多少米?保留两位小数#include<stdio.h>int main(){ int i,n; float m,s; scanf("%f %d",&m,&n); s=m; for(i=1;i<=n;i++) { m = m/2; if(i==n) break; s=s+2*m; } printf("%.2f %.2f",m,s); .
2021-12-16 16:15:36 306
原创 实验项目四(循环结构):凑整5毛钱
有三种不同面值的硬币,1分的,2分的,5分的,请问:用这三种硬币凑成5毛钱有哪些组合方案?#include<stdio.h>int main(){ int a,b,c; for(a=0;a<=50;a++){ for(b=0;b<=25;b++){ for(c=0;c<=10;c++){ if(a+b*2+c*5==50) printf("%d %d %d\n",a,b,c); } } } return 0;}...
2021-12-16 16:14:04 369
原创 猴子摘桃问题
猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。到第N天早上想再吃时,见只剩下一个桃子了。求第一天共摘多少桃子。#include<stdio.h>int main(){ int i,s=1,n; scanf("%d",&n); for(i=n-1;i>=1;i--) { s=(s+1)*2; } printf("%d\n",s);}.
2021-12-16 16:12:53 383
原创 计算Sn=a+aa+aaa+…+aa…aaa
求Sn=a+aa+aaa+…+aa…aaa(有n个a)之值,其中a是一个数字。例如:2+22+222+2222+22222(n=5),n由键盘输入。#include<stdio.h>int main(){ int s=0,a=2; int n,i; scanf("%d",&n); for(i=1;i<=n;i++) { s=s+a; a=2+a*10; } printf("%d",s);}...
2021-12-16 16:10:26 278
原创 分解质因数
求出区间[a,b]中所有整数的质因数分解。数据规模和约定:2<=a<=b<=10000#include<stdio.h>int main(){ int a,b,n,m,i; scanf("%d%d",&m,&n); for(i=m;i<=n;i++) { printf("%d=",i); a=i; for(b=2;b<=a;b++) { while(a%b==0) { printf("%...
2021-12-16 16:09:09 49
原创 时间转换。
给定一个以秒为单位的时间t,要求用“::”的格式来表示这个时间。表示时间,表示分钟, 而表示秒,它们都是整数且没有前导的“0”。例如,若t=0,则应输出是“0:0:0”;若t=3661,则输出“1:1:1”。#include <stdio.h>int main (){ int a; scanf("%d",&a); int b,c,d; if(a==0) printf("0:0:0"); else { d=a%60; c=((a-b)/60)%60; .
2021-12-16 16:07:24 56
原创 平方根的迭代计算方法
用迭代法求 。求平方根的迭代公式为: X[n+1]=1/2(X[n]+a/X[n])要求前后两次求出的得差的绝对值少于0.00001。输出保留3位小数#include<stdio.h>#include<math.h>int main(){ double x1,x2=1.0; int a; scanf("%d",&a); do { x1=x2; x2=(x1+a/x1)/2.0; } while(fabs(x1-x2)>=0..
2021-12-16 16:05:54 453
原创 返回指针值的函数encrypt
函数encrypt的功能是对传入的字符串src进行加密,然后返回加密后的字符串。其采用的加密算法为:将所有字符转换为其下一个字符。例如:字符串ach,加密后为bdi。请改正下列程序中的错误使其实现要求的功能。注意:不能修改main函数运行上述代码会报错 [Warning] address of local variable 'str' returned [-Wreturn-local-addr]是因为encrypt函数的返回值为函数中定义的一个数组,在运行后,内存会被释放掉;..
2021-12-16 15:57:21 1651
原创 编写一个函数min_max,要求其能够统计出一个数组中的最大值、最小值和平均值,然后在main函数中调用该函数,验证其正确性。要求:不允许使用数组下标访问运算符。
#include<stdio.h>void min_max(int*a,int n,int *min,int *max,double *avg){ int i,max1,min1; double s; max1=*a; min1=*a; for(i=0;i<n;i++) { if(*(a+i)>max1) max1=*(a+i); if(min1>*(a+i)) min1=*(a+i); s=s+*(a+i); } *avg=(s.
2021-12-16 15:31:28 1426
原创 汉诺塔问题
#include <stdio.h>void hanoi(int n , char A , char B , char C)//n个圈圈在柱子A上,借助柱子B,移动到柱子C上{ if(n == 1)//如果A柱子上只有一个圈圈,直接移动到C上 printf("%c->%c\n",A,C); else { hanoi(n-1,A,C,B);//将A柱子上的n-1个圈圈,借助柱子C,移动到柱子B上 printf("%c->%c\n",A,C);/.
2021-12-15 09:40:25 680
原创 判断区间内的素数并打印(调用自定义函数)
#include<stdio.h>void sushu(int n){ int i,k,j; for(i=2;i<n;i++) { k=1; if(n%i==0) { k=2; break; } } if(k==1) { printf("%d ",n); }}int main(){ int n,m,i,j=1; scanf("%d%d",&n,&m); for(i=n;i<=m;i++) {.
2021-12-15 09:39:08 629
原创 使用冒泡排序的方法排列输入的数
#include<stdio.h>int main(){ int a[10]; int i,c,j; for(i=0;i<10;i++) scanf("%d",&a[i]); for(i=0;i<10;i++) { for(j=0;j<10-i-1;j++) { if(a[j]>a[j+1]) { c=a[j+1]; a[j+1]=a[j]; a[j]=c; } } } for(i=0;i.
2021-12-15 09:36:52 754
原创 求COS(X)
求cos(x)的值采用泰勒展开,要求余项小于10的负6次方泰勒展开式不想手打^_^#include<stdio.h>#include<math.h>int main(){ int x,xi=-1,i,n=2; double z=0.0,m=1.0,cos=1.0,M,c; //z分子,m分母; scanf("%d",&x); do { for(i=1;i<=n;i++) m=m*i; M=1/m; z=pow(x,n);
2021-12-11 20:56:39 523
原创 求下列S的值(调用自定义函数实现)
s=(1!)+(1!+2!)+.......+(1!+.........n!)#include<stdio.h>int h1(int n) //算括号中的值{ int i,sum1=1; for(i=1;i<=n;i++) { sum1=sum1*i; } return sum1;}void h2(int n) //调用h1函数,实现多个数的累加{ int i,j,s=0; for(i=1;i&l
2021-12-11 20:52:20 122
原创 运用二分查找,找出数N在数列中排第几位
#include<stdio.h>int main(){ int a[10]; int i,x,mid=0; for(i=0;i<10;i++) //定义一个包含10个数的数列,并赋值 { scanf("%d",&a[i]); } scanf("%d",&x); int low=0,high=9; while(low<=high) //开始二分查找 { mid=(low+high)/2; .
2021-12-11 20:47:01 440
原创 输出斐波拉契数列(每行5个)
#include<stdio.h>int fi(int n){ if(n==1||n==2) return 1; else return fi(n-1)+fi(n-2);//递归调用}int main(){ int n,i; scanf("%d",&n); for(i=1;i<=n;i++) //每行5个进行输出 { if(i%5!=0) ...
2021-12-06 16:58:16 1682
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人