c语言-求 最接近的值 C语言

问题描述

求 最接近的值 C语言

给一个n个元素的线性表A,对于每个数Ai,找到它之前的数中,和它最接近的数。即对于每个i,计算
Ci = min{|Ai-Aj| | 1<=j<i} 规定C1 = 0。

解决方案

路过水一贴,O(∩_∩)O。

解决方案二:

int i,j,c=0;
for (i = 0; i<n; i++)
{
for (j = 0; j < i; j++)
{
if(abs(a[j]-a[i])<abs(c-a[i]))
{
c = a[i];
}
}
printf("%dn",c);
}

时间: 2024-08-10 19:36:49

c语言-求 最接近的值 C语言的相关文章

c语言-求大神设计一个C语言的连连看!!谢谢!!

问题描述 求大神设计一个C语言的连连看!!谢谢!! 1 问题描述 连连看是一个经典的游戏,本课题要求实现一个文本界面的连连看游戏. 2 基本要求 要能提供以下几个基本功能: (1)定义一个矩阵,随机产生字符布置地图,例如下面这个4x4 的地图. 1 2 3 4 B C H C 1 C F B E 2 A E D F 3 C H A D 4 (2)游戏者通过坐标(1,2).(3,4)判定第一行第二列的字符与第三行第四列的字符是相同的),判定争取则相应位置的字符消失,如判断错误给出相应的错误提示,允

c语言-求帮忙找问题,C语言程序

问题描述 求帮忙找问题,C语言程序 在一个学生成绩管理系统中,保存学生个人的成绩情况,其中包括学号,姓名,性别,5门课成绩.对所有成绩作如下处理: (1)从键盘输入10个学生的学号,姓名,性别,5门课成绩,并计算出每个人平均成绩,全班每门课的平均成绩,将原有数据和计算出的平均分数存放在磁盘文件"stu.c"中. (2)将上题"stu.c"文件中的学生数据,按每个人的平均分进行排序处理,将已排序的学生数据存入一个新文件"stu-sort"中. (3

c语言-求做一道数据结构(C语言的题)

问题描述 求做一道数据结构(C语言的题) 运行文件加密程序,输入要加密的文件名,然后输入密码,最后输入加密后的文件名,程序对文件中读入的每一个字符与密码进行异或,再将异或后的内容倒序写入指定的文件中. 解密程序为加密程序的逆过程. 请使用顺序栈的结构设计并完成程序的功能. 解决方案 http://blog.163.com/chatter@126/blog/static/12766566120101020102247603/ 解决方案二: http://blog.csdn.net/fdipzone

详解C语言求两个数的最大公约数及最小公倍数的方法_C 语言

求两个正整数的最大公约数       思路:这是一个很基本的问题,最常见的就是两种方法,辗转相除法和辗转相减法.通式分别为 f(x, y) = f(y, x%y), f(x, y) = f(y, x - y) (x >=y > 0).根据通式写出算法不难,这里就不给出了.这里给出<编程之美>上的算法,主要是为了减少迭代的次数.      对于x和y,如果y = k * y1, x= k * x1,那么f(x, y) = k * f(x1, y1).另外,如果x = p * x1,假

C语言求幂计算的高效解法_C 语言

本文实例演示了C语言求幂计算的高效解法.很有实用价值.分享给大家供大家参考.具体方法如下: 题目如下: 给定base,求base的幂exp 只考虑基本功能,不做任何边界条件的判定,可以得到如下代码: #include <iostream> using namespace std; int cacExp(int base, int exp) { int result = 1; int theBase = 1; while (exp) { if (exp & 0x01) result =

使用C语言求N的阶乘的方法_C 语言

用递归法求N的阶乘 程序调用自身称为递归( recursion).它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解. 递归的能力在于用有限的语句来定义对象的无限集合. 一般来说,递归需要有边界条件.递归前进段和递归返回段.当边界条件不满足时,递归前进:当边界条件满足时,递归返回. #include <stdio.h> #include <string.h> #include <stdlib.h> long factorial(int n) {

代码-用C语言实现求前缀表达式的值

问题描述 用C语言实现求前缀表达式的值 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 算术表达式有前缀表示法.中缀表示法和后缀表示法等形式.前缀表达式指二元运算符位于两个运算数之前,例如2+3*(7-4)+8/4的前缀表达式是:+ + 2 * 3 - 7 4 / 8 4.请设计程序计算前缀表达式的结果值. 输入格式说明: 输入在一行内给出不超过30个字符的前缀表达式,只包含+.-.*.以及运算数,不同对象(运算数.运算符号)之间以空格

浅谈C/C++ 语言中的表达式求值_C 语言

经常可以在一些讨论组里看到下面的提问:"谁知道下面C语句给n赋什么值?" m = 1; n = m+++m++; 最近有位不相识的朋友发email给我,问为什么在某个C++系统里,下面表达式打印出两个4,而不是4和5: a = 4; cout << a++ << a; C++ 不是规定 << 操作左结合吗?是C++ 书上写错了,还是这个系统的实现有问题? 注:运行a = 4; cout << a++ << a; 如在Visua

c语言 c++-c语言求大神解答,一个数组的基础问题

问题描述 c语言求大神解答,一个数组的基础问题 数组的地址是什么?是不是就是数组名,也就是第一个元素的地址,也就是这个数组的首地址? 解决方案 数组名可以当成指向数组首元素的地址使用. 例如:int a[10]; 可以通过: cout<<*a<<endl; //来输出数组a中的第一个元素. cout<<*(a + i)<<endl; //来输出数组中的第i个元素. 下面两个输出的地址值也是相同的. printf("--->%pn",