C
饭否君FF
每天都要坚持刷题,总结反思,加油加油加油!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
数据结构学习与实验指导(第二版)——第一章
第一章 算法与复杂度基础实验1-2.1有序数组的插入**1.实验内容:**本题要求将任一给定元素插入从大到小排好序的数组中合适的位置,以保持结果依然有序。2.实验要求:函数接口定义:bool Insert( List L, ElementType X );其中List结构定义如下:typedef int Position;typedef struct LNode List;struct LNode {ElementType Data[MAXSIZE];Position Last; /原创 2022-03-18 13:00:29 · 329 阅读 · 0 评论 -
二分法查找
二分查找给出一组数列 1,3,4,6,7,8,10,11,12,15,查找 3 和 9 的下标#include <iostream>#include <algorithm>using namespace std;int binarySearch(int A[], int left, int right, int x) { int mid; while (left <= right) { mid = (left + right) / 2;原创 2022-01-27 08:24:56 · 188 阅读 · 0 评论 -
问题 G: 找零钱
题目描述小智去超市买东西,买了不超过一百块的东西。收银员想尽量用少的纸币来找钱。纸币面额分为50 20 10 5 1 五种。请在知道要找多少钱n给小明的情况下,输出纸币数量最少的方案。 1<=n<=99;输入有多组数据 1<=n<=99;输出对于每种数量不为0的纸币,输出他们的面值*数量,再加起来输出样例输入2532样例输出20*1+5*120*1+10*1+1*2#include <stdio.h>struct coin { int p原创 2022-01-27 07:45:17 · 365 阅读 · 0 评论 -
数据结构——排序(大学慕课)
简单排序前提:void X_Sort(ElementType A[], int N) 1.冒泡排序void Bublle_Sort(ElementType A[], int N) { for (p = N - 1;p >= 0;p--) { flag = 0; for (int i = 0;i < p;i++) { if (A[i] > A[i + 1]) { Swap(A[i], A[i + 1]); flag = 1; } } i原创 2022-01-23 08:55:07 · 153 阅读 · 0 评论 -
数据结构——队列(大学慕课)
什么是队列:具有一定操作约束的线性表插入和删除操作:只能在一端插入,而在另一端删除先入先出1.生成长度为MaxSize的空队列2.判断队列Q是否已满3.将数据元素item插入队列Q中;4.判断队列Q是否为空5.将队列数据元素从队列中删除并返回队列的顺序存储实现队列的顺序存储结构通常由一个一维数组和一个记录队列头元素位置front以及队列尾元素位置的rear组成(1)入队列void AddQ(Queue PtrQ,ElementType item){ if((PtrQ->原创 2022-01-20 12:26:18 · 283 阅读 · 0 评论 -
数据结构——链表(慕课笔记)
数据结构我们学校这个寒假要求提前预习,推荐课程是浙江大学的数据结构,这个之前有看了第一单元,但由于大一水平有限,再加上自已意志力不足,看到第二单元有些看不懂就放弃了。现在大二了,现在是2022年1月18号,我从第二单元开始看的,现在每天在优快云上做做笔记,以便以后复习。线性表的抽象数据类型描述初始化一个空线性表L根据位序K,返回相应元素在线性表L中查找X的第一次出现的位置在位序i前插入一个新元素X删除指定位序i的元素返回线性表L的长度n第一种 数组存储1.初始化List MakeE原创 2022-01-18 10:31:44 · 309 阅读 · 0 评论 -
小陈寒假《算法笔记》刷题入门篇(1)入门模拟
《算法笔记》寒假每日更新中原创 2022-01-05 01:40:08 · 167 阅读 · 0 评论 -
实验10(函数)
题目:请编写函数,形式参数为表示年月日的三个整数(均为日期合法),返回这一天是当年的第几天。主函数中输入年份和两个月日,共五个整数,表示两个日期,输出这两个日期相差多少天。输入格式:Y M1 D1 M2 D2,共5个整数,Y表示年份,M1 D1表示第一个日期的月日,M2 D2表示第二个日期的月日,所有数据保证日期一在前,日期2在后。输入样例:2021 1 1 1 31结尾无空行输出样例:30结尾无空行输入样例:2020 2 1 3 1结尾无空行输出样例:29结尾无空行输原创 2021-08-26 23:55:40 · 739 阅读 · 0 评论 -
密码翻译(C语言)
#include <stdio.h>#include <string.h>int main(){ int i; char s[85]; gets(s); for(i=0;s[i]!='\0';i++){ if(s[i]>='a'&&s[i]<='z') { s[i]=(s[i]-'a'+1)%26+'a'; } else if(s[i]>='A'&&s[i]<='Z'){ s[i]=(s原创 2021-08-26 23:06:22 · 3422 阅读 · 1 评论 -
将字符串中的小写字母转换成大写字母
#include <stdio.h>#include <string.h>int main(){ int i; char s[105]; gets(s); for(i=0;s[i]!='\0';i++){ if(s[i]>='a'&&s[i]<='z') { s[i]-=32; } printf("%c",s[i]); } }原创 2021-08-26 22:56:13 · 844 阅读 · 0 评论 -
输出第一个仅出现一次的字符
#include <stdio.h>#include <string.h>int main(){ char s[100005]={0}; gets(s); char ch; int i,num=0,flag=0; for(ch='a';ch<='z';ch++){ for(i=0;s[i]!='\0';i++){ if(ch==s[i]) { num++; } } if(num==1){ flag=1; b原创 2021-08-23 21:07:17 · 133 阅读 · 0 评论 -
统计数字字符个数
#include <stdio.h>int main(){ char str[105]={0}; gets(str); int cnt=0; int i; for(i=0;str[i]!='\0';i++){ if(str[i]>='0'&&str[i]<='9'){ cnt++; } } printf("%d",cnt);}原创 2021-08-23 20:26:44 · 96 阅读 · 0 评论 -
矩阵旋转(C语言)
算法分析:2*3矩阵1 2 34 5 6转换后变成4 15 22 3规律:i,j —> j,2+1-i#include <stdio.h>int main(){ int i,j,m,n; scanf("%d %d",&m,&n); int a[105][105]={0},b[105][105]={0}; for(i=1;i<=m;i++){ for(j=1;j<=n;j++){ scanf("%d",&a[i][原创 2021-08-23 20:17:44 · 1163 阅读 · 0 评论 -
图形相似度
#include <stdio.h>int main(){ int i,j,m,n; scanf("%d %d",&m,&n); double same=0; int pic1[105][105]={0},pic2[105][105]={0}; for(i=0;i<m;i++){ for(j=0;j<n;j++){ scanf("%d",&pic1[i][j]); } } for(i=0;i<m;i++){ for(原创 2021-08-23 19:38:40 · 132 阅读 · 0 评论 -
矩阵加法(C语言)
#include <stdio.h>int main(){ int m,n; scanf("%d%d",&m,&n); int a[105][105]={0},b[105][105]={0}; int i,j,l; for(i=0;i<m;i++){ for(j=0;j<n;j++){ scanf("%d",&a[i][j]); } } for(i=0;i<m;i++){ for(j=0;j<n;j++){原创 2021-08-23 16:07:26 · 4155 阅读 · 2 评论 -
矩阵乘法(C语言)
#include <stdio.h>int main(){ int m,n,k; scanf("%d%d%d",&m,&n,&k); int a[105][105]={0},b[105][105]={0},c[105][105]={0}; int i,j,l; for(i=0;i<m;i++){ for(j=0;j<n;j++){ scanf("%d",&a[i][j]); } } for(i=0;i<n;i++原创 2021-08-23 15:55:23 · 102 阅读 · 0 评论 -
矩阵转置(C语言)
#include <stdio.h>int main(){ int m,n,i,j; scanf("%d %d",&m,&n); int a[105][105]={0}; for(i=0;i<m;i++){ for(j=0;j<n;j++){ scanf("%d",&a[i][j]); } } for(i=0;i<n;i++){ for(j=0;j<m;j++){ printf("%d ",a[j][i]);原创 2021-08-23 15:32:06 · 134 阅读 · 0 评论 -
计算矩阵边缘元素之和
#include <stdio.h>int main(){ int i,j; int m,n,num[105][105]={0}; scanf("%d %d",&m,&n); int sum=0; for(i=1;i<=m;i++){ for(j=1;j<=n;j++){ scanf("%d",&num[i][j]); } } for(i=1;i<=m;i++){ for(j=1;j<=n;原创 2021-08-22 04:45:27 · 422 阅读 · 0 评论 -
字符串P型编程
解法一:C语言写的#include <stdio.h>#include <string.h>int main(){ char str[1005]={0}; char e; int cnt=0; gets(str); e=str[0]; int i; for(i=0;str[i]!='\0';i++){ if(str[i]!=e){ printf("%d%c",cnt,e); e=str[i]; cnt=1; }else{ cnt+原创 2021-08-22 03:49:31 · 322 阅读 · 0 评论 -
判断字符串是否回文
题目:#include <stdio.h>#include <string.h>int main(){ char str[105]={0}; int flag=1; gets(str); int len=strlen(str); int i; /* 0 len-1 1 len-2 2 len-3 */ for(i=0;i<=len/2;i++){ if(str[i]!=str[len-i-1]){ flag=0;原创 2021-08-22 03:45:21 · 137 阅读 · 0 评论 -
亲密数(C语言)
题目:如果整数A的全部因子(包括1,不包括A本身)之和等于B;且整数B的全部因子(包括1,不包括B本身)之和等于A,则将整数A和B称为亲密数。求3000以内的全部亲密数。#include <stdio.h>int sumFactor(int num){ int sum=0,i; for(i=1;i<num;i++){ if(num%i==0) sum+=i; } return sum;}int main(){ int A,B; for(A=2;A<原创 2021-08-22 02:59:56 · 1615 阅读 · 0 评论 -
回文质数(枚举法)
问题描述 :因为151既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 号是回文质数。写一个程序来找出范围[a,b] (5<= a < b <= 100,000)间的所有回文质数输入说明 :仅 1 行: 二个整数 a 和 b(5<= a < b <= 100,000)。输出说明 :输出一个回文质数的列表,一行一个。#include <stdio.h>int isPrime(int n){ int i,flag=1;原创 2021-08-22 02:04:36 · 409 阅读 · 0 评论 -
质因数的分解
题目一:已知正整数n是两个不同的质数的乘积,试求出较大的那个质数。解法1:#include <stdio.h>int main(){ int n,i,j; scanf("%d",&n); for(i=2;i*i<=n;i++){ if(n%i==0){ j=n/i; if(isPrime(i)&&isPrime(j)){ printf("%d",j); break; } } } }int isPrime原创 2021-08-22 01:31:52 · 98 阅读 · 0 评论 -
哥德巴赫猜想两种题目解法
题目一:PTA上的题目数学领域著名的“哥德巴赫猜想”的大致意思是:任何一个大于2的偶数总能表示为两个素数之和。比如:24=5+19,其中5和19都是素数。本实验的任务是设计一个程序,验证5000以内的偶数都可以分解成两个素数之和。输入格式:输入在一行中给出一个(2, 5000]范围内的偶数N。输出格式:在一行中按照格式“N = p + q”输出N的素数分解,其中p \le≤ q均为素数。又因为这样的分解不唯一(例如24还可以分解为7+17),要求必须输出所有解中p最小的解。———————————原创 2021-08-22 00:46:54 · 2922 阅读 · 0 评论 -
数组与指针
题目一.初始化一个double类型的数组,然后将该数组的内容拷贝至其他3个数组中。1.数组表示法进行第一次拷贝;2.带指针的表示法和指针递增的函数进行第二次拷贝;3.以目标数组名、源数组名和指向源数组名最后一个元素后面的元素指针作为参数。#include <stdio.h>void copy_arr(double t[], double s[], int n);void copy_ptr(double *t,double *s,int n);void copy_ptrs(doubl原创 2021-08-21 00:44:51 · 142 阅读 · 0 评论 -
01 最大子列和问题
数据结构PTA0101-复杂度1 最大子列和问题 (20 分)给定K个整数组成的序列{ N },其中 1≤i≤j≤K。“最大子列和”则被定义为所有连续子列元素的和中最大者。例如给定序列{ -2, 11, -4, 13, -5, -2 },其连续子列{ 11, -4, 13 }有最大的和20。现要求你编写程序,计算给定整数序列的最大子列和。本题旨在测试各种不同的算法在各种数据情况下的表现。各组测试数据特点如下:数据1:与样例等价,测试基本正确性;数据2:102个随机整数;数据3:103个随机原创 2021-08-15 22:17:50 · 95 阅读 · 0 评论
分享