"海压竹枝低复举,风吹山角晦还明。” ——宋·陈与义《观雨》
目录
下面程序通过指针操作,将由八进制数字组成的字符串“77777”转换为对应的十进制形式。
(1)0,1,2,3,4,5,6,7,8分别对应改写成1,2,3,4,5,6,7,8,9
题目:若有车的车牌号和罚分记录数据,统计罚分达到或超过12分的车辆总数并输出这些车牌的信息(说明:id域代表车牌号,score域代表罚分)
题目:统计所有三位正整数中个数和十位之和与百位的积是28的个数。如:259,268,277,286......是满足条件的数。
题目:输出大于2016的10个最小素数,如2017,2027,2029,2039,.......等。
题目: 下面程序通过指针操作,输出由二进制数字组成的字符串"0010110101000001"对应的无符号十进制整数。
题目: 从主函数中输入一个正整数n,并通过调用fac()函数,求得n的阶乘,在主函数中输出n阶乘的值。
题目:已知数列,第一项和第二项都是1,从第三项开始每项都是其前两项之和。求第n项(n从键盘输入,用递归实现)。
题目:统计1000以内个位数是9并且能被9整除的所有正整数的个数。
题目:将字符串“987654”转换成其对应的十进制整数形式输出。
题目:输出个位数字为7的最小的10个素数,如7,17,37,47......等。
题目:从键盘输入一个不多于4位的十进制正整数,求出它是几位数。
题目:fun函数的功能是:计算s=1+1/2+1/3+1/4+...1/n的值。在主函数中输入一个正整数n,通过调用fun函数,求得计算结果。
题目:把字符串s中所有小写字母改写成该字母的下一个字母,但是如果是字母'z',则改写成字母'a',大写字母和其他字符保持不变。
题目:函数search(int a[ ],int n,int number)的功能:在a数组的前n个元素中查找number,若存在则返回第一次找到的元素下标,否则返回-1。
主函数功能:输入number,调用search函数查找number,最后输出查找结果。
后记:●由于作者水平有限,文章难免存在谬误之处,敬请读者斧正,俚语成篇,恳望指教! ——By 作者:新晓·故知
T1:
题目:
下面程序通过指针操作,将由八进制数字组成的字符串“77777”转换为对应的十进制形式。
#include <stdio.h> void main() { char str[6]="77777",*p; int n,t; n=1; /*$ERROR$*/ p=str[0]; /*$ERROR$*/ while(*p!=0) { t=*p-'0'; n=n*8+t; p--; /*$ERROR$*/ } printf("\n%s is convered to integer number: %d\n",str,n); }
题解:
//可正确执行程序 #include <stdio.h> void main() { char str[6] = "77777", * p; // char str[6] = "76777", * p; 可使用此语句进行调试,观察程序语句执行过程 int n, t; n = 0; /*已改正*/ p = str; /*已改正*/ while (*p != 0) { t = *p - '0'; n = n * 8 + t; p++; /*已改正*/ } printf("\n%s is convered to integer number: %d\n", str, n); }
T2:
题目:
把字符串s中所有数字字符按以下规律改写:
(1)0,1,2,3,4,5,6,7,8分别对应改写成1,2,3,4,5,6,7,8,9
(2)9改写成0
(3)其他字符保持不变
#include <stdio.h> #include <string.h> void main() { char s[80]; int i; getc(s); /*$ERROR$*/ for (i = 0; s[i] != '\0'; i++) { if (s[i] = '9') /*$ERROR$*/ s[i] = '0'; else if (s[i] >= '0' && s[i] <= '8') s[i] = s[i] + 1; } printf("%c\n", s); /*$ERROR$*/ }
题解:
#include <stdio.h> #include <string.h> void main() { char s[80]; int i; gets(s); /*已改正*/ //scanf("%s", s);此语句和gets语句等价 for (i = 0; s[i] != '\0'; i++) { if (s[i] == '9') /*已改正*/ s[i] = '0'; else if (s[i] >= '0' && s[i] <= '8') s[i] = s[i] + 1; } printf("%s\n", s); /*已改正*/ }
T3:
题目:若有车的车牌号和罚分记录数据,统计罚分达到或超过12分的车辆总数并输出这些车牌的信息(说明:id域代表车牌号,score域代表罚分)
#include <stdio.h> struct car { char id[12]; int score; }; void main() { int i, n = 0; car c[6] = { {"A-QQ111",8}, /*$ERROR$*/ {"A-TT222",12}, {"B-WJ333",12}, {"C-LC444",5}, {"F-PC555",6}, {"B-MY666",12} }; printf("id\tscore\n"); i = 0; while (i < 6) { if (score >= 12) /*$ERROR$*/ { printf("%s\t%d\n", c[i].id, c[i].score); n--; /*$ERROR$*/ } i++; } printf("n=%d\n", n); }
题解:
#include <stdio.h> struct car { char id[12]; int score; }; void main() { int i, n = 0; struct car c[6] = { {"A-QQ111",8}, /*已改正*/ {"A-TT222",12}, {"B-WJ333",12}, {"C-LC444",5}, {"F-PC555",6}, {"B-MY666",12} }; printf("id\tscore\n"); i = 0; while (i < 6) { if (c[i].score >= 12) /*已改正*/ { printf("%s\t%d\n", c[i].id, c[i].score); n++; /*已改正*/ } i++; } printf("n=%d\n", n); }
T4:
题目:输出一维数组中的最小元素及其下标值
#include <stdio.h> int search(int a[],int n) { int i,min; min=1; /*$ERROR$*/ for(i=1;i<n;i++) { if(a[i]<a[min]) min=i; } return i; /*$ERROR$*/ } void main() { int a[10]={13,1,-5,4,9,0,-8,7,-6,2}; int min; min=search(a); /*$ERROR$*/ printf("min=%d,address=%d\n",a[min],min); }
题解:
#include <stdio.h> int search(int a[], int n) { int i, min; min = 0; /*已改正*/ for (i = 1; i < n; i++) { if (a[i] < a[min]) min = i; } return min; /*已改正*/ } void main() { int a[10] = { 13,1,-5,4,9,0,-8,7,-6,2 }; int min; min = search(a,10); /*已改正*/ printf("min=%d,address=%d\n", a[min], min); }
T5:
题目:在屏幕上输出以下图形(字符之间没有空格)。
编辑
#include <stdio.h> #include <string.h> void main() { char a[6] = "54321", temp; int i, k; for (i = 1; i <= 5; i++) { printf("%c\n", a); /*$ERROR$*/ temp = a[0]; for (k = 0; k < 4; k++) a[k + 1] = a[k]; /*$ERROR$*/ a[4] = a[0]; /*$ERROR$*/ } }
题解:
#include <stdio.h> #include <string.h> void main() { char a[6] = "54321", temp; int i, k; for (i = 1; i <= 5; i++) { printf("%s\n", a); /*已改正*/ temp = a[0]; for (k = 0; k < 4; k++) a[k] = a[k + 1]; /*已改正*/ a[4] = temp; /*已改正*/ } }
T6:
题目:统计所有三位正整数中个数和十位之和与百位的积是28的个数。如:259,268,277,286......是满足条件的数。
#include <stdio.h> void main() { int i, g, s, b, count; count = 1; /*$ERROR$*/ for (i = 100; i <= 999; i++) { g = i % 10; s = i / 10 % 10; b = i % 100; /*$ERROR$*/ if ((g + s) * b == 28) count = i; /*$ERROR$*/ } printf("%d\n", count); }
题解:
#include <stdio.h> void main() { int i, g, s, b, count; count = 0; /*已改正*/ for (i = 100; i <= 999; i++) { g = i % 10; s = i / 10 % 10; b = i / 100; /*已改正*/ if ((g + s) * b == 28) { count++; /*已改正*/ //printf("%d ", i); //此语句打印满足条件的数值 } } printf("%d\n", count); }
T7:
题目:删除字符串中的所有空白字符
#include <stdio.h> void main() { char s[100] = "I love this program."; int i, j; j = 0; for (i = 0; s[i] != '\0'; i++) { if (s[i] != ' ') { s[j] = s[i]; i++; /*$ERROR$*/ } } s[j] = "\0"; /*$ERROR$*/ printf("%c\n", s); /*$ERROR$*/ }
题解:
#include <stdio.h> void main() { char s[100] = "I love this program."; int i, j; j = 0; for (i = 0; s[i] != '\0'; i++) { if (s[i] != ' ') { s[j] = s[i]; j++; /*已改正*/ } } s[j] = '\0'; /*已改正*/ printf("%s\n", s); /*已改正*/ }
T8:
题目:输出大于2016的10个最小素数,如2017,2027,2029,2039,.......等。
#include <stdio.h> void main() { int i, j, flag, n; n = 0; i = 2016; while (n <= 10) /*$ERROR$*/ { flag = 0; for (j = 2; j < i; j++) if (i / j == 0) /*$ERROR$*/ { flag = 1; break; } if (flag >= 0) /*$ERROR$*/ { n = n + 1; printf("%d\n", i); } i = i++; } }
题解1:
#include <stdio.h> void main() { int i, j, flag, n; n = 0; i = 2016; while (n < 10) /*已改正*/ { flag = 0; for (j = 2; j < i; j++) if (i % j == 0) /*已改正*/ { flag = 1; break; } if (flag == 0) /*已改正*/ { n = n + 1; printf("%d\n", i); } i = i++; } }
题解2:
#include <stdio.h> void main() { int i, j, flag, n; n = 0; i = 2016; while (n < 10 && i--) /*已改正*/ { flag = 0; for (j = 2; j < i; j++) if (i % j == 0) /*已改正*/ { flag = 1; break; } if (flag == 0) /*已改正*/ { n = n + 1; printf("%d\n", i); } i = i + 2; //此语句和原题(i=i++;)不同,但这种写法可编译 } }
T9:
题目: 下面程序通过指针操作,输出由二进制数字组成的字符串"0010110101000001"对应的无符号十进制整数。
#include <stdio.h> void main() { char v2[] = "0010110101000001", * p; unsigned int v10, t; v10 = 1; /*$ERROR$*/ p = v2[0]; /*$ERROR$*/ while (*p != '\0') { t = *p - '0'; v10 = v10 * 2 + t; p--; /*$ERROR$*/ } printf("\n%s is convered to integer number: %u\n", v2, v10); }
题解:
#include <stdio.h> void main() { char v2[] = "0010110101000001", * p; unsigned int v10, t; v10 = 0; /*已改正*/ p = v2; /*已改正*/ while (*p != '\0') { t = *p - '0'; v10 = v10 * 2 + t; p++; /*已改正*/ } printf("\n%s is convered to integer number: %u\n", v2, v10); }
T10:
题目:输入一个正整数,判断m是否是素数。
#include <stdio.h> void main() { int i, j, flag, m; scanf("%d", m); /*$ERROR$*/ flag = 0; for (i = 2; i < m; i++) { if (m / i == 0) /*$ERROR$*/ { flag = 1; break; } } if (flag >= 0) /*$ERROR$*/ printf("%d是素数\n", m); else printf("%d不是素数\n", m); }
题解:
#include <stdio.h> void main() { int i, j, flag, m; scanf("%d", &m); /*已改正*/ flag = 0; for (i = 2; i < m; i++) { if (m % i == 0) /*已改正*/ { flag = 1; break; } } if (flag == 0) /*已改正*/ printf("%d是素数\n", m); else printf("%d不是素数\n", m); }
T11:
题目:输出一维数组中的最大元素及其下标值。
#include <stdio.h> int search(int a[], int n) { int i, max; max = 1; /*$ERROR$*/ for (i = 1; i < n; i++) { if (a[i] > a[max]) max = i; } return i; /*$ERROR$*/ } void main() { int a[10] = { 13,1,-5,4,9,0,-8,7,-6,2 }; int max; max = search(a); /*$ERROR$*/ printf("max=%d,address=%d\n", a[max], max); }
题解:
#include <stdio.h> int search(int a[], int n) { int i, max; max = 0; /*已改正*/ for (i = 1; i < n; i++) { if (a[i] > a[max]) max = i; } return max; /*已改正*/ } void main() { int a[10] = { 13,1,-5,4,9,0,-8,7,-6,2 }; int max; max = search(a, 10); /*已改正*/ printf("max=%d,address=%d\n", a[max], max); }
T12:
题目: 从主函数中输入一个正整数n,并通过调用fac()函数,求得n的阶乘,在主函数中输出n阶乘的值。
#include <stdio.h> long fac(int n) { int i; long s; s = 1; i = 0; /*$ERROR$*/ while (i < n) /*$ERROR$*/ { s = s * i; i++; } return s; } void main() { int n; long result; printf("Enter n:"); scanf("%d", n); /*$ERROR$*/ result = fac(n); printf("n! =%ld\n", result); }
题解:
#include <stdio.h> long fac(int n) { int i; long s; s = 1; i = 1; /*已改正*/ while (i <= n) /*已改正*/ { s = s * i; i++; } return s; } void main() { int n; long result; printf("Enter n:"); scanf("%d", &n); /*已改正*/ result = fac(n); printf("n! =%ld\n", result); }
T13:
题目:已知数列,第一项和第二项都是1,从第三项开始每项都是其前两项之和。求第n项(n从键盘输入,用递归实现)。
#include <stdio.h> long f(int n) { if (n = 1 || n = 2) /*$ERROR$*/ return 1; else return f(n - 1) - f(n - 2); /*$ERROR$*/ } void main() { long m; int n; printf("\nPlease input n:\n"); scanf("%d", n); /*$ERROR$*/ if (n > 0) { m = f(n); printf("%ld\n", m); } else printf("Data error\n"); }
题解:
//求第n项的斐波那契数列的值 #include <stdio.h> long f(int n) { if (n == 1 || n == 2) /*已改正*/ return 1; else return f(n - 1) + f(n - 2); /*已改正*/ } void main() { long m; int n; printf("\nPlease input n:\n"); scanf("%d", &n); /*已改正*/ if (n > 0) { m = f(n); printf("%ld\n", m); } else printf("Data error\n"); }
T14:
题目:统计1000以内个位数是9并且能被9整除的所有正整数的个数。
#include <stdio.h> void main() { int i, c; c = 1; /*$ERROR$*/ for (i = 1; i < 1000; i++) if (i % 9 == 0) if (i % 10 == 9) { c = i; /*$ERROR$*/ } print("%d\n", c); /*$ERROR$*/ }
题解:
#include <stdio.h> void main() { int i, c; c = 0; /*已改正*/ for (i = 1; i < 1000; i++) if (i % 9 == 0) if (i % 10 == 9) { c++; /*已改正*/ //printf("%d ", i); } printf("\n"); printf("%d\n", c); /*已改正*/ }
T15:
题目:在屏幕上输出以下图形(星号之间没有空格)
编辑
#include <stdio.h> void main() { int i, j; i = 1; /*$ERROR$*/ while (i < 5) { j = 0; while (j <= i) { printf("*"); j++; } printf("\n"); i++; } i = 4; while (i > 0) { j = 0; while (j <= 4 - i) { printf(" ");/*输出一个空格*/ j++; } j = 0; while (j < 4 - i) /*$ERROR$*/ { printf("*"); j++; } printf("\n"); i++; /*$ERROR$*/ } }
题解:
//左上右下 #include <stdio.h> void main() { int i, j; i = 0; /*已改正*/ while (i < 5) { j = 0; while (j <= i) { printf("*"); j++; } printf("\n"); i++; } i = 4; while (i > 0) { j = 0; while (j <= 4 - i) { printf(" ");/*输出一个空格*/ j++; } j = 0; while (j <= i - 1) /*已改正*/ { printf("*"); j++; } printf("\n"); i--; /*已改正*/ } }
T16:
题目:将字符串“987654”转换成其对应的十进制整数形式输出。
#include <stdio.h> void main() { char str[20] = "987654", * p; int n, t; n = 1; /*$ERROR$*/ p = str[0]; /*$ERROR$*/ while (*p != 0) { t = *p - '0'; n = n * 10 + t; p--; /*$ERROR$*/ } printf("\n%s is convered to integer number: %d\n", str, n); }
题解:
#include <stdio.h> void main() { char str[20] = "987654", * p; int n, t; n = 0; /*已改正*/ p = str; /*已改正*/ while (*p != 0) { t = *p - '0'; n = n * 10 + t; p++; /*已改正*/ } printf("\n%s is convered to integer number: %d\n", str, n); }
T17:
题目:输出个位数字为7的最小的10个素数,如7,17,37,47......等。
#include <stdio.h> void main() { int i, j, flag, n; n = 0; i = 7; while (n <= 10) /*$ERROR$*/ { flag = 0; for (j = 2; j < i; j++) if (i / j == 0) /*$ERROR$*/ { flag = 1; break; } if (flag >= 0) /*$ERROR$*/ { n = n + 1; printf("%d\n", i); } i = i + 10; } }
题解:
#include <stdio.h> void main() { int i, j, flag, n; n = 0; i = 7; while (n < 10) /*已改正*/ { flag = 0; for (j = 2; j < i; j++) if (i % j == 0) /*已改正*/ { flag = 1; break; } if (flag == 0) /*已改正*/ { n = n + 1; printf("%d\n", i); } i = i + 10; } }
T18:
题目:在屏幕上输出以下图形(星号之间没有空格)
编辑
#include <stdio.h> void main() { int i, j; i = 1; /*$ERROR$*/ while (i < 5) { j = 0; while (j < 4 - i) { printf(" ");/*输出一个空格*/ j++; } j = 0; while (j <= i) { printf("*"); j++; } printf("\n"); i++; } i = 4; while (i > 0) { j = 0; while (j < 4 - i) /*$ERROR$*/ { printf("*"); j++; } printf("\n"); i++; /*$ERROR$*/ } }
题解:
//左下右上 #include <stdio.h> void main() { int i, j; i = 0; /*已改正*/ while (i < 5) { j = 0; while (j < 4 - i) { printf(" ");/*输出一个空格*/ j++; } j = 0; while (j <= i) { printf("*"); j++; } printf("\n"); i++; } i = 4; while (i > 0) { j = 0; while (j < i - 1) /*已改正*/ { printf("*"); j++; } printf("\n"); i--; /*已改正*/ } }
T19:
题目:从键盘输入一个不多于4位的十进制正整数,求出它是几位数。
例如:输入528,则结果为n=3。
#include <stdio.h> void main() { int x, n; scanf("%d", x); /*$ERROR$*/ if (x <= 0 || x >= 10000) printf("Data Error!\n"); else { if (x <= 10) n = 1; /*$ERROR$*/ else if (x < 100) n = 2; else if (x < 1000) n = 3; n = 4; /*$ERROR$*/ printf("n=%d\n", n); } }
题解:
#include <stdio.h> void main() { int x, n; scanf("%d", &x); /*已改正*/ if (x <= 0 || x >= 10000) printf("Data Error!\n"); else { if (x < 10) n = 1; /*已改正*/ else if (x < 100) n = 2; else if (x < 1000) n = 3; else n = 4; /*已改正*/ printf("n=%d\n", n); } }
T20:
题目:在屏幕上输出以下图形(星号之间没有空格)
编辑
#include <stdio.h> void main() { int i, j, k, n = 0; char ch = '*'; for (i = 1; i <= 5; i++) { j = 1; while (j <= 5 - i) { printf(" "); j++; } j = 0; /*$ERROR$*/ while (j <= 2 * i - 1) { printf("%d", ch); /*$ERROR$*/ j++; } printf("/n"); /*$ERROR$*/ } }
题解:
#include <stdio.h> void main() { int i, j, k, n = 0; char ch = '*'; for (i = 1; i <= 5; i++) { j = 1; while (j <= 5 - i) { printf(" "); j++; } j = 1; /*已改正*/ while (j <= 2 * i - 1) { printf("%c", ch); /*已改正*/ j++; } printf("\n"); /*已改正*/ } }
T21:
题目:fun函数的功能是:计算s=1+1/2+1/3+1/4+...1/n的值。在主函数中输入一个正整数n,通过调用fun函数,求得计算结果。
#include <stdio.h> double fun(int n) { double s; if (n > 1) s = 1.0 / n + fun(n - 1); else s = 1.0; return; /*$ERROR$*/ } void main() { int n; double result; printf("\nPlease input n:\n"); scanf("%d", n); /*$ERROR$*/ if (n <= 0) printf("\nData error\n); else { result = fun(&n); /*$ERROR$*/ printf("\nThe result is %lf\n", result); } }
题解:
#include <stdio.h> double fun(int n) { double s; if (n > 1) s = 1.0 / n + fun(n - 1); else s = 1.0; return s; /*已改正*/ } void main() { int n; double result; printf("\nPlease input n:\n"); scanf("%d", &n); /*已改正*/ if (n <= 0) printf("\nData error\n"); else { result = fun(n); /*已改正*/ printf("\nThe result is %lf\n", result); } }
T22:
题目:在屏幕上输出以下图形(字符之间没有空格)。
编辑
#include <stdio.h> #include <string.h> void main() { char a[6] = "ABCDE", temp; int i, k; for (i = 1; i <= 5; i++) { printf("%c\n", a); /*$ERROR$*/ temp = a[0]; for (k = 0; k < 4; k++) a[k + 1] = a[k]; /*$ERROR$*/ a[4] = a[0]; /*$ERROR$*/ } }
题解:
#include <stdio.h> #include <string.h> void main() { char a[6] = "ABCDE", temp; int i, k; for (i = 1; i <= 5; i++) { printf("%s\n", a); /*已改正*/ temp = a[0]; for (k = 0; k < 4; k++) a[k] = a[k + 1]; /*已改正*/ a[4] = temp; /*已改正*/ } }
T23:
题目:把字符串s中所有小写字母改写成该字母的下一个字母,但是如果是字母'z',则改写成字母'a',大写字母和其他字符保持不变。
#include <stdio.h> void main() { char s[80]; int i; getc(s); /*$ERROR$*/ for (i = 0; s[i] != '\0'; i++) { if (s[i] = 'z') /*$ERROR$*/ s[i] = 'a'; else if (s[i] >= 'a' && s[i] <= 'y') s[i] = s[i] + 1; } printf("%c\n", s); /*$ERROR$*/ }
题解:
#include <stdio.h> void main() { char s[80]; int i; gets(s); //scanf("%s", s); /*已改正*/ for (i = 0; s[i] != '\0'; i++) { if (s[i] == 'z') /*已改正*/ s[i] == 'a'; else if (s[i] >= 'a' && s[i] <= 'y') s[i] = s[i] + 1; } printf("%s\n", s); /*已改正*/ }
T24:
题目:统计100以内有多少个素数。
#include <stdio.h> void main() { int i, j, flag, count; count = 1; /*$ERROR$*/ for (i = 2; i <= 100; i++) { flag = 0; for (j = 2; j < i; j++) if (i / j == 0) /*$ERROR$*/ { flag = 1; break; } if (flag >= 0) /*$ERROR$*/ count++; } printf("%d\n", count); }
题解:
#include <stdio.h> void main() { int i, j, flag, count; count = 0; /*已改正*/ for (i = 2; i <= 100; i++) { flag = 0; for (j = 2; j < i; j++) if (i % j == 0) /*已改正*/ { flag = 1; break; } if (flag == 0) /*已改正*/ { //printf("%d ", i); //此语句可打印符合条件的每一项 count++; } } printf("\n"); printf("%d\n", count); }
T25:
题目:在屏幕上输出以下图形(说明:星号之间无空格)。
编辑
#include <stdio.h> void main() { char a[5]; int i, j; for (j = 0; j < 5; j++) a[j] = "*"; /*$ERROR$*/ for (i = 0; i < 5; i++) { for (j = 0; j <= i; j++) printf("%d", a[j]); /*$ERROR$*/ printf("/n"); /*$ERROR$*/ } }
题解:
#include <stdio.h> void main() { char a[5]; int i, j; for (j = 0; j < 5; j++) a[j] = '*'; /*已改正*/ for (i = 0; i < 5; i++) { for (j = 0; j <= i; j++) printf("%c", a[j]); /*已改正*/ printf("\n"); /*已改正*/ } }
T26:
题目:函数search(int a[ ],int n,int number)的功能:在a数组的前n个元素中查找number,若存在则返回第一次找到的元素下标,否则返回-1。
主函数功能:输入number,调用search函数查找number,最后输出查找结果。
编辑
#include <stdio.h> int search(int a[],int n,int number) { int result=-1; int i; for(i=0;i<n;i++) { if(a[i]==number) { result=i; continue; /*$ERROR$*/ } } return n; /*$ERROR$*/ } void main() { int a[10]={9,8,12,15,17,9,16,23,8,15}; int number; int result; scanf("%d",&number); result=search(a,10,number); if(result=-1) /*$ERROR$*/ printf("Not found!\n"); else printf("%d\n",result); }
题解:
#include <stdio.h> int search(int a[], int n, int number) { int result = -1; int i; for (i = 0; i < n; i++) { if (a[i] == number) { result = i; break; /*已改正*/ } } return result; /*已改正*/ //return i!=number?-1:i+1; } void main() { int a[10] = { 9,8,12,15,17,9,16,23,8,15 }; int number; int result; scanf("%d", &number); result = search(a, 10, number); if (result == -1) /*已改正*/ printf("Not found!\n"); else printf("%d\n", result); }