代码长度限制 16 KB
时间限制 400 ms
内存限制 64 MB
- 本题要求编写程序,找出给定一系列整数中的最小值。
输入格式:
输入在一行中首先给出一个正整数n,之后是n个整数,其间以空格分隔。
输出格式:
在一行中按照“min = 最小值”的格式输出n个整数中的最小值。
输入样例:
4 -2 -123 100 0
输出样例:
min = -123
【Solution】
- 采用了数组的方法
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[])
{
int n, i, m;
scanf("%d", &n);
int str[1000];
for (i = 0; i < n; i++)
{
scanf("%d", &m);
str[i] = m;
}
int z = 0;
for (i = 1; i < n; i++)
{
if (str[z] > str[i])
z = i;
}
printf("min = %d\n", str[z]);
return 0;
}
【Summary】
#include <stdio.h>
int main()
{
int n, min, a;
scanf("%d", &n);
scanf("%d", &a);
min = a;
int i;
for (i = 2; i <= n; i++)
{
scanf("%d", &a);
if (a < min)
min = a;
}
printf("min = %d\n", min);
return 0;
}
- 由一个常规题联系到数组,但第一次尝试时,出现了对库函数理解上的低级错误。
strcmp
(字符串1,字符串2)STRing CoMPare
(字符串比较的缩写)strcpy(
字符数组1,字符数组2)STRingCoPY
(字符串复制的缩写)- 显然,字符和字符串是两码事!!! 1
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[])
{
int n, i;
scanf("%d", &n);
int str[1000];
for (i = 0; i < n; i++)
scanf("%d", str[i]);
int j, m, z;
for (i = 0; i < n; i++)
{
for (j = 0; j < i; j++)
{
if (str[j] < str[j + 1])
z = j;
m = str[j];
str[j] = str[j + 1];
str[j + 1] = m;
}
}
printf("min = %d\n", str[z]);
return 0;
}
竟然天真地把一个数组当作是只能存入一个整数值,并且愚蠢地认为她还必须<9… ↩︎