实验六
#include <stdio.h> #define N 5 int binarySearch(int *x, int n, int item); // 函数声明 int main() { int a[N] = {2, 7, 19, 45, 66}; int i, index, key; printf("数组a中的数据:\n"); for (i = 0; i < N; i++) printf("%d ", a[i]); printf("\n"); printf("输入待查找的数据项: "); scanf("%d", &key); // 调用函数binarySearch()在数组a中查找指定数据项key,并返回查找结果给index // 补足代码① // ××× if (index >= 0) printf("%d在数组中,下标为%d\n", key, index); else printf("%d不在数组中\n", key); return 0; } // 函数功能描述: // 使用二分查找算法在从地址x开始的连续n个数据项中,查找特定数据项item // 如果找到,返回其下标; 如果没找到,返回-1 int binarySearch(int *x, int n, int item) { int low, high, mid; low = 0; high = n - 1; while (low <= high) { mid = (low + high) / 2; if (item == *(x + mid)) return *x else if (item < *(x + mid)) high=mid-1; else high=mid+1; } return -1; }
/* 设输入的字符串中只包含字母和*号。 编写函数,实现:除了字符串前导的*号之外,将串中其他*号全部删除。 例如,若字符串中的内容为****A*BC*DEF*G******* 删除后,字符串中的内容则应当是****ABCDEFG 在编写函数时,不得使用C语言提供的字符串函数。 */ #include <string.h> #include <stdio.h> #include <stdlib.h> void fun(char *a) { /*****ERROR********/ int i=0; char *p = a; /****ERROR***/ while (*p && *p== '*') { a[i] = *p; i++; p++; } while (*p!='*') { /******ERROR*******/ if (*p == '*') { a[i] = *p; i++; } p++; } /******ERROR*******/ a[i]='\0'; } int main() { char s[81]; printf("Enter a string :\n"); gets(s); fun(s); printf("The string after deleted:\n"); puts(s); return 0; }


/* 设输入的字符串中只包含字母和*号。 编写函数,实现:除了字符串前导和尾部的*号之外,将串中其他*号全部删除。 例如,若字符串中的内容为****A*BC*DEF*G******* 删除后,字符串中的内容则应当是****ABCDEFG****** 在编写函数时,不得使用C语言提供的字符串函数。 */ #include <stdio.h> #include <stdlib.h> #include <string.h> void fun(char *a) { /**ERROR******/ int i=0; char *t = a, *f = a; char *q = a; while (*t) t++; t--;//找到最后一个字符 while (*t == '*') t--;//定位字母后的* while (*f == '*') f++;//定位字母前的* /***ERROR***/ while (q < f) { a[i] = *q; q++; i++; } while (q < t) { /***ERROR**/ if (*q != '*') { a[i] = *q; i++; } q++; } while (*q) { a[i] = *q; i++; q++; } /**ERROR**/ a[i] = '\0'; } int main() { char s[81]; printf("Entre a string:\n"); gets(s); /**ERROR**/ fun(s); printf("The sting after deleted:\n"); puts(s); return 0; }
#include<stdio.h> #include<string.h> #define N 80 int ispalindrome(char *s); int main() { char str[N]; int flag; printf("Enter a string:\n"); gets(str); flag=ispalindrome(str); if(flag) printf("YES\n"); else printf("NO\n"); return 0; } int ispalindrome(char*s){ int i; int len=strlen(s); for(i=0;i<=len;i++){ if(s[i]==s[len-1]) len--; else return 0; }return 1; }



浙公网安备 33010602011771号