问一个简单的题
下面这个程序看不懂,k的值不是和p一样吗?s[0]>s[0],s[1]>s[1];怎么得到结果的?/*输出数组s中最大元素的下标*/
main()
{
int k,p;
int s[]={1,-9,7,2,-10,3};
for(p=0,k=p;p<6;p++)
if(s[p]>s[k]) k=p;
printf("%d",k);
getch();
}
搜索更多相关的解决方案:
元素
----------------解决方案--------------------------------------------------------
main()
{
int k,p;
int s[]={1,-9,7,2,-10,3};
for(p=0,k=p;p<6;p++)
if(s[p]>s[k]) k=p;
printf("%d",k);
getch();
}
..........................................
main()
{
----------------解决方案--------------------------------------------------------
main()
{
int i,k;
int s[10];
for(i=0;i<10;i++)
scanf("%d",&s[i]);
for(i=0;i<9;i++)
if(a[i]>a[i+1])
t=a[i];
else
t=a[i+1];
printf("The max is%d",t);
getch();
}
新手上路.随便谢谢!
----------------解决方案--------------------------------------------------------
k和p初始值一样为0,但p每循环一次会自加,但k不同,此句if(s[p]>s[k]) k=p;
它仅保存当前最大元素的下标;
----------------解决方案--------------------------------------------------------
我上面的程序运行是对的,想请人解释一下
----------------解决方案--------------------------------------------------------
第一次是说k=0,p=0;第二次p+1,p=1了,k=p,k不也是1了吗,s[1]>s[1]???
----------------解决方案--------------------------------------------------------
我帮你分析一下
main() {
int k,p;
int s[]={1,-9,7,2,-10,3};
for(p=0,k=p;p<6;p++)
if(s[p]>s[k]) k=p;
printf("%d",k);
getch();
}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~上面是你的源程序
########################## for循环第一次:p=0;k=0;所以:s[0]>s[0]不成立,下一循环。
――――――――――――――――for循环第二次:p=1;k=0;所以:s[1]>s[0],不成立,下一循环。
――――――――――――――for循环第三次:p=2;k=0;所以,s[2]>s[0], 成立,k=p=2;
---------------------for循环第四次:p=3;k=2;所以,s[3]>s[2]不成立,下一循环。
………………………………
依次类推,最大值为7,下标为2,所以K值也为2,输出2。
#####################################明白了吗?
----------------解决方案--------------------------------------------------------
for(p=0,k=p;p<6;p++)
p=0,k=p;这个只执行了一遍
----------------解决方案--------------------------------------------------------
不好意思,我很笨!不要笑我,p=0,k=p;怎么只执行一次?p=1时,k=p,k不就是1了吗?
----------------解决方案--------------------------------------------------------
你可查下书上关于for循环的执行讲解,会记得深些
----------------解决方案--------------------------------------------------------