输出最小的正整数

输入n个整数,找出最小的正整数并输出。

输入格式:
第一行输入一个正整数n(n<1000),第二行输入n个整数,用空格隔开。
输出格式:
输出一个整数为n个输入的整数中最小的正整数,如果没有找到,输出"not found"
输入样例:
3
8 5 9
输出样例:
5


 #include <stdio.h>
  int main(void)
 {  
     int n,min,flag=0,m,i;  
     scanf("%d%d",&n,&min);
     for(i=1; i<n; i++)   
    {    
      scanf("%d",&m);     
      if(m<min&&m>0)   
        {       
          flag=1;      
          min=m;   
        }  
      }    
        if(flag==0)    
        printf("not found"); 
      else   
           printf("%d",min);
      return 0;
  }
  • 开始以为最小数是负数,输出not found。原来是找不出正整数才输出not found,导致扣了4分。(:з」∠)
  • ----------分割线-----------

  • 以上代码写错了
  • 不能以第一个数进行比较
  • 例如:
    3
    -1 2 5

    第一个数为负数,没有比它更小的数了

    应该是第一个大于零的数

    没想到这里还有一个坑,重做的时候没对

    附上正确代码

    
#include <stdio.h>
int main(void)
{
  int n,min,flag=0,a[1001],i,num=0;
  scanf("%d",&n);
  for(i=0; i<n; i++)
      scanf("%d",&a[i]);
  for(i=0; i<n; i++)
      if(a[i]>0)
      {
          min=a[i];
          flag=1;
          break;
      }
  if(flag==0)
  {
      printf("not found");
      return 0;
  }
  for(i=0; i<n; i++)
      if(a[i]<=min&&a[i]>0)
          min=a[i];
  printf("%d",min);
  return 0;
}
  • 我还是太菜了qwq
  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kk_阿白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值