Tag: 编号

C在数组中找到第二大数字

正如标题所说,我必须在数组中找到第二大数字,如果该数组中的每个数字相等,我应该写它是-∞。 我写了这篇文章,任何人都可以检查一下我是否可以更好地优化它? 这个数组只是一个例子,它应该是x [1 … n]但是因为我必须将它重写为伪代码,所以我把它作为一个例子 #include int main() { int x[7]={90,90,78,41,21,27,35}; int i, max, secmax, y; secmax=0; max=x[0]; for(i=1;imax) { secmax=max; max=x[i]; } else if (x[i]>secmax&&x[i]<max) { secmax=x[i]; } } for(i=0;i<7;i++) if(x[i]==x[i+1]) y++; if (y==6) printf("sec max to minus nieskonczonosc \n"); else printf("max to %da secmax to %d\n",max,secmax); return 0; }

避免整数乘法溢出,然后除法

我有两个积分变量a和b以及一个常数s resp。 d 。 我需要计算(a*b)>>s resp的值。 a*b/d 。 问题是乘法可能会溢出,即使a*b/d适合给定的整数类型,最终结果也不正确。 怎么能有效地解决? 直接的解决方案是将变量a或b扩展为更大的整数类型,但可能没有更大的整数类型。 有没有更好的方法来解决这个问题?

C中的算法 – 用数字进行数字 – 单位为3的数字

我在接受采访时遇到了这个问题。 任何单位位置为3的数字至少有一个包含所有1的数字。 例如,3的倍数是111,13的倍数是111111.给定一个以3结尾的数字,我被问到找到包含所有1的倍数的最佳方法。 现在,一种简单的方法是可能的,你不考虑空间问题,但随着数量的增长,有时即使它没有,C中的int (或者那个!中的long int )也不能保持那个倍数。 在C中实现这种算法的最佳方法是什么?

如何在c中将字符串标记为int数组?

任何人都有关于从每行文本文件中读取序列号并将其解析为C中的数组的任何事情? 我在文件中有什么: 12 3 45 6 7 8 3 5 6 7 7 0 -1 4 5 我想要的程序: array1[] = {12, 3, 45, 6, 7, 8}; array2[] = {3, 5, 6, 7}; array3[] = {7, 0, -1, 4, 5}; 我已经通过几种方式阅读它,但唯一的问题是我想要每行标记它。 谢谢。

寻找出租车号码

找到前n出租车编号。 给定值n 。 我想找到前n个出租车编号。 出租车是一个数字,可以用不止一种方式表示为两个完美立方体的总和。 (注意,有两个相关但不同的集合称为’出租车编号’: 2个立方体的总和超过1种方式 , 最小的数字是2个正整数立方体的总和,用n种方式 。这个问题是关于前一组,因为后一组只有前六名成员知道) 例如: 1^3 + 12^3 = 1729 = 9^3 + 10^3 我想粗略概述算法或如何解决问题的C片段。 The first five of these are: IJKL Number ——————————— 1 12 9 10 1729 2 16 9 15 4104 2 24 18 20 13832 10 27 19 24 20683 4 32 18 30 32832

当C / C ++中的数字常量以0为前缀时,这意味着什么?

好的…所以我有一个愚蠢的想法,并尝试将值0123放入一个int,只是好奇看看会发生什么,我假设当我打印的值我得到123,但我得到83 …有什么想法吗? 在编译器/内存中发生什么使得该值变为83? 我在C ++和C中使用GCC编译器尝试了这个,并尝试使用浮点数产生相同的结果。