C语言 求第2大整数,C语言中求解两个整数的值

2025-05-01ASPCMS社区 - fjmyhfvclm

笃焕支苑博的回答:


测试稿简通过的:

输入阵列元素的个数(<100):6

输入阵列元素:12

第二大数是:46

演算法是:逐个扫瞄,与最大值比较(最大值初值为第乙个元素),若阵列元素比最大值还大,则将最大值赋给第二大值,阵列元素取代最大值。

然后输出第二大值。希望对你有所帮助。

#include

voidmain()

intarray[100];

inti,num;

intmax,secmax;

printf("输入阵列元段激素的个键燃裤数(<100):"

scanf("%d",&num);

printf("输入阵列元素:")

for(i=0;imax)

secmax=max;//原最大值赋予第二大值。

max=array[i];/更新最大值。

printf("第二大的数是:%d",secmax);

有祯张廖芃芃的回答:


不用排序也可以的。

#include

voidmain()

intx=0,y=0,i,k;//初始化x(储存最大值)和y(储存第二大值),理论上应该初始化为最小值,这里只是作示例,就初始化为0

inta=作输入的数,执行后应该输出为6

for(i=0;i<5;i++)将阵列里的最大值赋给xif(xy)

y=a[i];

printf("第二大值颂御历是%d"拆饥,y);/输出。

原来我野搜的思路和楼上一样。

️c语言中求解两个整数的值

网友的回答:


第乙个得3,因为a++就是在此次语句执行完毕以后进行加,而第二个结果得10

分析如下:第乙个++a执行完后a=2,然后执行第二个++a,结果a=3,然后执行(++a)+(a)这个累加,结果得到3+3=6,然后执行最后乙个++a,结果为4,然后6+4结果得10

希望你能明白。

补充:我回答得很清楚了啊,就是因为先要两个++a执行,然后再进行第一次的相加,然后再次++a,然后再累加,得到的结果为3+3+4=10;这个++a连加的**在软工中是觉得不能出现的,只能拿来考试罢了。

姚兄的回答:


首先,a++表示使用后自增1,而++a表示使用前自增1所以 b=1+1+1=3

c=2+2+2=6明白没。

的回答:


int b = (a++)a++)a++)得出b=3,a=4;因为a++是自增字尾,在「当前表示式中」使用a当前值以后再将a的值增1,所以在b=1+1+1后,a自增3次,得a=4;

int c = (+a) +a) +a); 得出c=21,a=7;++a是自增字首,在「当前表示式中」先将a值增1后再使用a值,所以a先自增3次,然后得出a=7,然后b=7+7+7;

请注意打上引号的当前表示式。

在vc++ 中编译执行结果为a=7,b=3,c=19;

在visual studio 2005中编译执行结果为a=7,b=3,c=21;

造成差异的原因应该是vc++ 版本中c++对自增字首实现bug所致。

青蛙上半年的回答:


a++是先执行运算然后自增1,++a是先自增1然后执行运算。个人认为可以化为int a=1;int c;int b=a+a+a;a++;a++;a++;a;c=a;++a;c=c+a;++a;c=c+a; b=3,c=18

网友的回答:


一句话,弄懂a++和++a很重要,再深入的话就很无聊,没有人会++写一堆的,这样的**别人怎么看,不能看的**有什么用。可维护性有时比**功能本身更重要!

第乙个函式 inc int a 将a的值增加后返回 后的值,注意传进来的实参自身不会加.这里只是形参增加.第二个函式multi,将a,b指向的值相乘给c,并返回这个乘积,注意这里c指向的内容会被改写。然后是两句typedef 是定义了两个新型别func和func,两个都是函式指标,指向用来定义乙个函...

int max int x,int y 这个函式错的也太离谱了 如果x比y大就返回y 如果x不比y大就返回z的预设值 c语言中求两个整数中的较大者。1 首先新建一个工程和一个.c档案。2 然后需要按照图示 输入标头档案。3 然后 需要按照图示 输入主函式。4 然后需要按照图示 定义变数型别。5 然后...

你这些程式肯定是某些二流教科书上,根本就是误导人。for后面语句 需要迴圈的 不管是一句还是多句都要加!因为加 比不加 让程式表述得更加清楚!printf d x,y 不会报错,printf是一个多引数的c函式,编译的时候,printf函式本身并不知道 引号 中需要多少个引数,它只是按照顺序从堆叠上...

全部评论