#include<stdlib.h>;
#include<stdio.h>;
#include<string.h>;
#pragma warning (disable:4996);
int main()
{
int a[] = { 5,100,56,45,21,67,32,68,41,99,13,71 };
int *p = a;
int max1=0;
int max2=0;
for (int i = 0; i < sizeof(a) / sizeof(a[0]) - 1; i++)
{
int max1 = *p;
if (max1 < *(p + i))
{
max1 = *(p + i);
}
}
printf("max1=%d\n", max1);
for (int i = 0; i < sizeof(a) / sizeof(a[0]) - 1; i++)
{
int max2 = *p;
if (max2 < *(p + i) && *(p + i)< max1)
{
max2 = *(p + i);
}
}
printf("max2=%d\n", max2);
system("pause");
return 0;
}
#include<stdlib.h>;
#include<stdio.h>;
#include<string.h>;
#pragma warning (disable:4996);
int main()
{
int a[] = { 5,100,56,45,21,67,32,68,41,99,13,71 };
int *p = a;
int max1=0;
int max2=0;
for (int i = 0; i < sizeof(a) / sizeof(a[0]) - 1; i++)
{
if (max1 < *(p + i))
{
max1 = *(p + i);
}
}
printf("max1=%d\n", max1);
for (int i = 0; i < sizeof(a) / sizeof(a[0]) - 1; i++)
{
if (max2 < *(p + i) && *(p + i)< max1)
{
max2 = *(p + i);
}
}
printf("max2=%d\n", max2);
system("pause");
return 0;
}
如果有帮助请点一下我回答右上方的采纳,谢谢!以后有什么问题可以互相交流。
你这个for循环不对,要么改成<=,要么将减1去掉,否则数组最后一个值不参加运算,结果自然也不对了
#include<stdlib.h>;
#include<stdio.h>;
#include<string.h>;
#pragma warning (disable:4996);
int main()
{
int i=0;
int a[] = { 5,100,56,45,21,67,32,68,41,99,13,71 };
int *p = a;
int max1=*p;
int max2=*p;
for (i = 0; i < sizeof(a) / sizeof(a[0]); i++)
{
if (max1 < *(p + i))
{
max1 = *(p + i);
}
}
printf("max1=%d\n", max1);
for (i = 0; i < sizeof(a) / sizeof(a[0]) ; i++)
{
if (max2 < *(p + i) && *(p + i)< max1)
{
max2 = *(p + i);
}
}
printf("max2=%d\n", max2);
system("pause");
return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632