题目1:7-1 查找整数 (10 分)
本题要求从输入的N个整数中查找给定的X。如果找到,输出X的位置(从0开始数);如果没有找到,输出“Not Found”。
输入格式:
输入在第一行中给出两个正整数N(≤20)和X,第二行给出N个整数。数字均不超过长整型,其间以空格分隔。
输出格式:
在一行中输出X的位置,或者“Not Found”。
输入样例1:
5 7
3 5 7 1 9
输出样例1:
2
输入样例2:
5 7
3 5 8 1 9
输出样例2:
Not Found
实验代码:
#include<stdio.h>
int main(void)
{
int X, flag, N;
int a[20];
scanf("%d %d",&N, &X);
flag=0;
for(int i=0;i<N;i++)
{
scanf("%d ",&a[i]);
if(a[i] == X)
{
printf("%d\n",i);
flag=1;
break;
}
}
if(flag == 0)
printf("Not Found\n");
return 0;
}
设计思路:
本题调试过程碰到问题及解决办法:
遇到的问题1:编译错误
解决的办法:查看error信息,发现忘记定义N变量。
遇到的问题2:部分正确
解决的办法:本来实在找不出错误原因了,但是看书的时候突然在P153最下面看见一句话“数组的长度必须定义,如果无法确定需要处理的数据长度,至少也要估计其上限,并将该上限作为数组长度”,就发现我的数组没有定义长度。
运行结果截图:
题目2:7-2 求最大值及其下标 (20 分)
本题要求编写程序,找出给定的n个数中的最大值及其对应的最小下标(下标从0开始)。
输入格式:
输入在第一行中给出一个正整数n(1<n≤10)。第二行输入n个整数,用空格分开。
输出格式:
在一行中输出最大值及最大值的最小下标,中间用一个空格分开。
输入样例:
6
2 8 10 1 9 10
输出样例:
10 2
实验代码:
#include<stdio.h>
int main(void)
{
int i, max, n;
int a[10];
scanf("%d",&n);
for(i=0; i<n; i++)
{
scanf("%d",&a[i]);
max=0;
}
for(i=1; i<n; i++)
{
if(a[i]>a[max])
max=i;
}
printf("%d %d", a[max], max);
return 0;
}
设计思路:
本题调试过程碰到问题及解决办法:
遇到的问题:编译错误
解决的办法:看error提示,把i的定义放在开头。