PTA 7-157 输出最小的正整数
输入n个整数,找出最小的正整数并输出。
输入格式:
第一行输入一个正整数n(n<1000),第二行输入n个整数,用空格隔开。
输出格式:
输出一个整数为n个输入的整数中最小的正整数,如果没有找到,输出"not found"。
输入样例:
3
8 5 9
输出样例:
5
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
代码:
#include <stdio.h>
int main(void){
int i, n; //定义正整数
int min; //最小正整数
int flag = 0; //标记
scanf("%d", &n);
int integer[n]; //数组储存输入的整数
for(i = 0; i < n; i++){ //遍历数组
scanf("%d", &integer[i]);
}
for(i = 0; i < n; i++){ //比较数组中的每个数
if(integer[i] > 0){
min = integer[i]; //将第一个匹配到的正整数赋值为最小值
flag = 1; //表示有最小正整数
break; //跳出循环
}
}
if(flag == 0){ //如果没有最小正整数
printf("not found");
return 0;
}
for(i = 0; i < n; i++){ //找最小正整数
if(integer[i] < min && integer[i] > 0){ //该数小于上一个最小正整数且为正整数
min = integer[i]; //最小正整数
}
}
printf("%d", min); //输出最小正整数
return 0;
}
解题思路:
step1:遍历数组,将输入的数储存数组中
step2:比较数组中的每个数,判断是否有最小正整数并将第一个匹配到的正整数赋值为最小值
step3:如果没有找到输出“not found”
step4:寻找数组中的最小正整数
step5:输出最小正整数
归属知识点:
选择结构
循环语句
数组