C语言 求第2大整数,C语言中求解两个整数的值
笃焕支苑博的回答:
测试稿简通过的:
输入阵列元素的个数(<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函式本身并不知道 引号 中需要多少个引数,它只是按照顺序从堆叠上...