c语言数组题,求解

编写子函数对随机生成的10个[10,99]范围的整数找出其中最大的奇数。要求先输出原始数据,若有则主函数中输出它,若没有则主函数中输出“NO”。设计子函数... 编写子函数对随机生成的10个[10,99]范围的整数找出其中最大的奇数。要求先输出原始数据,若有则主函数中输出它,若没有则主函数中输出“NO”。
设计子函数:int GetOdd(int a[],int n)
展开
 我来答
小猪答辩
2020-04-11 · TA获得超过420个赞
知道小有建树答主
回答量:472
采纳率:65%
帮助的人:117万
展开全部

#include <stdio.h>

#include <stdlib.h>

#include <time.h>

int GetOdd(int a[],int n)

{

    int max=-1;

    int i;

    for(i=0;i<n;i++)

    {

        if(a[i]%2==1 && a[i]>max)

        {

            max = a[i];

        }

    }

    return max;

}

int main()

{

    int num[10];

    int i;

    int max;

    srand((unsigned int)time(NULL));

    for(i=0;i<10;i++)

    {

        num[i] = rand()%90 + 10;

        printf("%d\t",num[i]);

    }

    printf("\n");

    max = GetOdd(num,10);

    if(max==-1)

    {

        printf("NO");

    }

    else

    {

        printf("%d\n",max);

    }   

}

乘风破浪的轮船abcde
2020-04-11 · 生活不止有眼前的苟且,还有互联网
乘风破浪的轮船abcde
采纳数:522 获赞数:973

向TA提问 私信TA
展开全部
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int Sort(int a[],int n)
{
for (int i = 1; i < n; i++) {
int mid = 0;
int left = 0;
int right = i - 1;
int tmp = a[i];
while(left <= right) {
mid= (left + right) / 2;
if (tmp < a[mid]) {
right = mid - 1;
} else {
left = mid + 1;
}
}
for (int j = i - 1; j >= left; j--) {
a[j + 1] = a[j];
}
a[left] = tmp;
}
}

int GetOdd(int a[],int n)
{
for (int i = 0; i < n; i++) {
printf("a[%d] = %d\n", i, a[i]);
}

Sort(a, n);
bool found = false;
for (int i = n - 1; i >= 0; i--) {
if (a[i] % 2 != 0) {
return a[i];
}
}
return 0;

}

int main()
{
int a[10] = { 0 };
srand((int)time(0));
for (int i = 0; i < 10; ++i) {
int randomval = rand() % 90 + 10;
a[i] = randomval;
}
int re =GetOdd(a, 10);
if (re != 0) {
printf("found %d\n", re);
}
else {
printf("NO\n");
}
return 0;
}

请采纳,谢谢!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式