|
3鱼币
改了很久都没改对
- 从键盘输入某班(最多30人)学生的姓名(长度不超过20),再从键盘输入任意一个学生的姓名,判断该学生是否在该班级,若在该班级则打印该学生的姓名,反之打印"Not find!"。Find函数用来查找该学生是否存在,若存在函数返回值是1,否则函数返回值为0。以下程序用以实现以上功能,但该程序存在一些较隐蔽的错误,请通过分析和调试程序,发现并改正程序中的错误。
- 注意:
- (1)请将修改正确后的完整源程序拷贝粘贴到答题区内。
- (2)对于没有错误的语句,请不要修改,修改原本正确的语句也要扣分。
- (3)改错时不能改变程序原有的意图,也不要改变代码的输入输出格式。
- #include<stdio.h>
- int Find(char *pname[], int n, char x[]);
- int main()
- {
- char *pname[30];
- char x;
- int i, n, flag;
-
- printf("Please input n:\n");
- scanf("%d", &n);
-
- for (i = 0, i < n; i++);
- {
- scanf("%s", pname[i]);
- }
-
- printf("Input search string:\n");
- scanf("%s", x);
-
- flag = Find(pname[], n, x);
- if (flag)
- printf("%s", x);
- else
- printf("Not find!");
-
- return 0;
- }
- int Find(char *pname[], int n, char x[]);
- {
- int flag;
- int i;
-
- for (i = 0; i < n; i++)
- {
- if (pname[i]==x)
- {
- flag = 1;
- }
- }
- return flag;
- }
复制代码
测试成功
三楼的应该有一个warning吧?
- #include<stdio.h>
- #include<string.h>
- int Find(char (*pname)[20], int n, char *x);
- int main()
- {
- char pname[30][20];
- char x[20];
- int i, n, flag=0;
-
- printf("Please input n:\n");
- scanf("%d", &n);
-
- for (i = 0; i < n; i++)
- {
- scanf("%s", *(pname+i));
- }
- printf("Input search string:\n");
- scanf("%s", x);
-
- flag = Find(pname, n, x);
- if (flag)
- printf("%s", x);
- else
- printf("Not find!");
-
- return 0;
- }
- int Find(char (*pname)[20], int n, char *x)
- {
- int flag=0;
- int i;
-
- for (i = 0; i < n; i++)
- {
- if (!strcmp(*(pname+i),x))
- {
- flag = 1;
- }
- }
- return flag;
- }
复制代码
|
|