高级语言讲义2014软专(仅高级语言部分)

2024-03-12 04:36

本文主要是介绍高级语言讲义2014软专(仅高级语言部分),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.任意一个大于2的偶数,都可以分解为两个质数之和。编写一个程序,验证上述结论。

例如:输入16, 输出16=13+3

#include <stdio.h>int isprime(int n) {if(n<=1)return 0;for(int i=2; i<sqrt(n); i++) {if(n%i==0)return 0;}return 1;
}void judge() {int n;scanf("%d",&n);for(int i=2; i<n; i++)if(isprime(i)&&isprime(n-i)) {printf("%d=%d+%d",n,n-i,i);break;}
}int main() {judge();
}

2.编写程序,输入A,B,C,D四个点的坐标,假设A,B,C三点可以构成一个三角形,判断D点是否落在三角形内。

#include <stdio.h>
#include <math.h>typedef struct point {int x,y;
} point;double dist(struct point a,struct point b) {return sqrt(pow(a.x-b.x,2)+pow(a.y-b.y,2));
}double area(struct point a,struct point b,struct point c) {double ab,ac,bc;ab=dist(a,b);ac=dist(a,c);bc=dist(b,c);double p=(ab+ac+bc)/2.0;return (double)sqrt(p*(p-ab)*(p-ac)*(p-bc));
}int judge() {struct point a,b,c,d;scanf("%d %d",&a.x,&a.y);scanf("%d %d",&b.x,&b.y);scanf("%d %d",&c.x,&c.y);scanf("%d %d",&d.x,&d.y);double sabc,sabd,sacd,sbcd;if(sabc==sabd+sacd+sbcd)return 1;elsereturn 0;
}

3.为了进行高精度计算,我们可以用一个数组表示一个正整数,一个数组元素表示整数的一位,例如396可以用数组A表示,即A[1]=6, A[2]=9,A[3]=3,编一个函数,计算这样表示的两个整数A,B之积,积存放在数组C中。注:假定积不会超过100位。

#include <stdio.h>
#include <string.h>
#define MAX_SIZE 100void multiplyArrays(int A[], int lenA,int B[],int lenB, int C[]) {for (int i = 0; i < MAX_SIZE; i++)C[i] = 0;for (int i = 0; i < lenA; i++) for (int j = 0; j < lenB; j++) C[i + j] += A[i] * B[j];for (int i = 0; i < MAX_SIZE - 1; i++) {C[i + 1] += C[i] / 10;C[i] %= 10;}
}int main() {int A[] = {6, 9, 3};int B[] = {2, 5, 7};int C[MAX_SIZE];multiplyArrays(A, 3, B, 3, C);int lenC = MAX_SIZE;while (C[lenC - 1] == 0 && lenC > 1) lenC--;for (int i = lenC - 1; i >= 0; i--)printf("%d", C[i]);return 0;
}

4.平面有 100个点,任意三个点可以构成一个三角形。编一个程序,输入100个点的坐标,输出在构成的所有三角形中,最大的三角形的面积。

#include <stdio.h>
#include <math.h>
#include <stdlib.h>typedef struct Point {double x,y;
} Point;Point decPoint(Point p1,Point p2) {Point ret;ret.x=p1.x-p2.x;ret.y=p1.y-p2.y;return ret;
}double mutiPoint(Point p1,Point p2) {return (p1.x*p2.y-p2.x*p1.y);
}double area(Point A,Point B,Point C) {return fabs(mutiPoint(decPoint(B,A),decPoint(C,A))/2.0);
}int main() {Point pts[110];double x,y;double max=-1;for(int i=0; i<100; i++)scanf("%lf %lf",&pts[i].x,&pts[i].y);max=area(pts[0],pts[1],pts[2]);for(int i=0; i<100; i++)for(int j=i+1; j<100; j++)for(int k=j+1; k<100; k++)if(max<area(pts[i],pts[j],pts[k]))max=area(pts[i],pts[j],pts[k]);printf("%lf",max);
}

这篇关于高级语言讲义2014软专(仅高级语言部分)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/800153

相关文章

科研绘图系列:R语言扩展物种堆积图(Extended Stacked Barplot)

介绍 R语言的扩展物种堆积图是一种数据可视化工具,它不仅展示了物种的堆积结果,还整合了不同样本分组之间的差异性分析结果。这种图形表示方法能够直观地比较不同物种在各个分组中的显著性差异,为研究者提供了一种有效的数据解读方式。 加载R包 knitr::opts_chunk$set(warning = F, message = F)library(tidyverse)library(phyl

透彻!驯服大型语言模型(LLMs)的五种方法,及具体方法选择思路

引言 随着时间的发展,大型语言模型不再停留在演示阶段而是逐步面向生产系统的应用,随着人们期望的不断增加,目标也发生了巨大的变化。在短短的几个月的时间里,人们对大模型的认识已经从对其zero-shot能力感到惊讶,转变为考虑改进模型质量、提高模型可用性。 「大语言模型(LLMs)其实就是利用高容量的模型架构(例如Transformer)对海量的、多种多样的数据分布进行建模得到,它包含了大量的先验

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

poj 2976 分数规划二分贪心(部分对总体的贡献度) poj 3111

poj 2976: 题意: 在n场考试中,每场考试共有b题,答对的题目有a题。 允许去掉k场考试,求能达到的最高正确率是多少。 解析: 假设已知准确率为x,则每场考试对于准确率的贡献值为: a - b * x,将贡献值大的排序排在前面舍弃掉后k个。 然后二分x就行了。 代码: #include <iostream>#include <cstdio>#incl

ZOJ Monthly, August 2014小记

最近太忙太忙,只能抽时间写几道简单题。不过我倒是明白要想水平提高不看题解是最好的了。 A  我只能死找规律了,无法证明 int a[50002][2] ;vector< vector<int> > gmax , gmin ;int main(){int n , i , j , k , cmax , cmin ;while(cin>>n){/* g

2014 Multi-University Training Contest 8小记

1002 计算几何 最大的速度才可能拥有无限的面积。 最大的速度的点 求凸包, 凸包上的点( 注意不是端点 ) 才拥有无限的面积 注意 :  凸包上如果有重点则不满足。 另外最大的速度为0也不行的。 int cmp(double x){if(fabs(x) < 1e-8) return 0 ;if(x > 0) return 1 ;return -1 ;}struct poin

2014 Multi-University Training Contest 7小记

1003   数学 , 先暴力再解方程。 在b进制下是个2 , 3 位数的 大概是10000进制以上 。这部分解方程 2-10000 直接暴力 typedef long long LL ;LL n ;int ok(int b){LL m = n ;int c ;while(m){c = m % b ;if(c == 3 || c == 4 || c == 5 ||

2014 Multi-University Training Contest 6小记

1003  贪心 对于111...10....000 这样的序列,  a 为1的个数,b为0的个数,易得当 x= a / (a + b) 时 f最小。 讲串分成若干段  1..10..0   ,  1..10..0 ,  要满足x非递减 。  对于 xi > xi+1  这样的合并 即可。 const int maxn = 100008 ;struct Node{int

C语言 | Leetcode C语言题解之第393题UTF-8编码验证

题目: 题解: static const int MASK1 = 1 << 7;static const int MASK2 = (1 << 7) + (1 << 6);bool isValid(int num) {return (num & MASK2) == MASK1;}int getBytes(int num) {if ((num & MASK1) == 0) {return

MiniGPT-3D, 首个高效的3D点云大语言模型,仅需一张RTX3090显卡,训练一天时间,已开源

项目主页:https://tangyuan96.github.io/minigpt_3d_project_page/ 代码:https://github.com/TangYuan96/MiniGPT-3D 论文:https://arxiv.org/pdf/2405.01413 MiniGPT-3D在多个任务上取得了SoTA,被ACM MM2024接收,只拥有47.8M的可训练参数,在一张RTX