c语言基础题,请问我这样算对吗?

题目描述数组a有n个元素,请输出n个元素的最小值及其下标。若最小值有多个,请输出下标最小的一个。注意,有效下标从0开始。输入输入分两行,第一行是一个正整数n(n<=100... 题目描述
数组a有n个元素,请输出n个元素的最小值及其下标。若最小值有多个,请输出下标最小的一个。注意,有效下标从0开始。

输入
输入分两行,第一行是一个正整数n(n<=1000),第二行是n个整数。

输出
输出占一行。输出数组的最小值及其下标,用空格隔开。

样例输入
5
8 4 5 1 2
样例输出
1 3

#include<stdio.h>
int main()
{
int x,y,a[1000],j,z;
scanf("%d",&x);
for(int i=0;i<x;i++)
scanf("%d",&a[i]);
y=a[0];
for(j=1;j<x;j++)
if(y>a[j])
{ z=j;
y=a[j];
}
printf("%d %d\n",y,z);
}
展开
 我来答
风若远去何人留
2019-12-11 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450108
专业C/C++软件开发

向TA提问 私信TA
展开全部
基本没错
唯一问题是如果第一个最小,那么下标值会不对
解决也很简单,把z初始化为0就可以了
另外,算法可以优化下,不用数组 一次循环,随着输入就可以判断完了
时间和空间消耗都可以降下来
gediuv
2019-12-11 · TA获得超过5635个赞
知道大有可为答主
回答量:1.3万
采纳率:26%
帮助的人:473万
展开全部
算法不对啊,调用函数时c一直等于0啊。所以答案就是错误的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jeepfly2001
2019-12-11 · TA获得超过1492个赞
知道小有建树答主
回答量:1609
采纳率:71%
帮助的人:637万
展开全部
算法不对啊,调用函数c等于0。答案就是错误的
追问
不好意思,不是太懂,能具体点吗,我按照这个输入的样例输入了,能输出正确答案啊,而且改了数的位置结果也照应啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式