本题要求从输入的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 Foundcode
#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变量。blog
遇到的问题2:部分正确
解决的办法:原本实在找不出错误缘由了,可是看书的时候忽然在P153最下面看见一句话“数组的长度必须定义,若是没法肯定须要处理的数据长度,至少也要估计其上限,并将该上限做为数组长度”,就发现个人数组没有定义长度。io
本题要求编写程序,找出给定的n个数中的最大值及其对应的最小下标(下标从0开始)。编译
输入格式:
输入在第一行中给出一个正整数n(1<n≤10)。第二行输入n个整数,用空格分开。class
输出格式:
在一行中输出最大值及最大值的最小下标,中间用一个空格分开。变量
输入样例:
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的定义放在开头。