输出最小的正整数

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

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


 #include 
  int main(void)
 {  
     int n,min,flag=0,m,i;  
     scanf("%d%d",&n,&min);
     for(i=1; i0)   
        {       
          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 
int main(void)
{
  int n,min,flag=0,a[1001],i,num=0;
  scanf("%d",&n);
  for(i=0; i0)
      {
          min=a[i];
          flag=1;
          break;
      }
  if(flag==0)
  {
      printf("not found");
      return 0;
  }
  for(i=0; i0)
          min=a[i];
  printf("%d",min);
  return 0;
}
  • 我还是太菜了qwq

你可能感兴趣的:(笔记)