鱼C论坛

 找回密码
 立即注册
查看: 4158|回复: 13

函数调用

[复制链接]
发表于 2013-5-2 01:09:59 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 zoe琦 于 2013-5-2 01:11 编辑

请各位大神帮帮忙。。。帮我指正一下该怎么修改我的程序  才能达到图片的效果


这是题目

题目

题目

这是我写的程序和结果

程序和结果

程序和结果
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-5-2 14:45:41 | 显示全部楼层
强烈支持楼主ing……
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-5-2 15:10:20 | 显示全部楼层
for循环该加{}的地方千万不要省。加了{}你就明白了!所以FOR循环即使只有一句代码,也要加{}。
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-5-2 20:27:08 | 显示全部楼层

恩,加了后是可以了,,但是调用的函数  find(int a[],int x)  里面的参数都用不上
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-5-2 22:35:49 | 显示全部楼层
楼主,当在数组中找到了输入的数就用return退出find()吧,这样就不会再循环到最后了
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-5-2 23:36:06 | 显示全部楼层
727545760 发表于 2013-5-2 22:35
楼主,当在数组中找到了输入的数就用return退出find()吧,这样就不会再循环到最后了

但是如果数组中元素重复,运用return后就不能找出全部的了
而且我也所写的函数中没有用到  find(int a[],int x)  里面的参数都用不上
请友友帮帮忙吧感恩无私的分享与奉献 :)
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-5-3 00:44:42 | 显示全部楼层
  1. # include <stdio.h>
  2. # include <conio.h>
  3. int i,z,x;                                            //其实这里不建议使用全局变量
  4. int a[10] = {21,53,2,33,-3,3,-44,5,2,10};            //同上
  5. void find();
  6. int main ()
  7. {       
  8.         printf ("The elements in array are :\n");
  9.         for (i=0; i<11; ++i)
  10.         {
  11.                 printf ("%d ",a[i]);
  12.         }
  13.         printf ("\n nINput a number to be searched: ");
  14.         scanf ("%d",&x);
  15.         find();
  16.         getch();
  17.         return 0;
  18. }
  19. void find()
  20. {
  21.         for (i=0; i<11; ++i)
  22.         {
  23.                 if (a[i] == x)
  24.                 {
  25. //                        z = i + 1;      
  26.                         printf ("%d is found, it's at %d . \n",x,i);

  27.                 }
  28.         }
  29.         if (i == 10)
  30.         {
  31.                 printf ("Not exist in the array!");
  32.         }
  33. }
  34. /*
  35. 改进后的代码如上。
  36. 在VC++ 6.0中的显示结果如下、你的要求是不是这样子:
  37. ----------------------------------------------------------
  38. The elements in array are :
  39. 21 53 2 33 -3 3 -44 5 2 10 0
  40. nINput a number to be searched: 2
  41. 2 is found, it's at 2 .
  42. 2 is found, it's at 8 .
  43. ----------------------------------------------------------
  44. */
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-5-3 21:26:49 | 显示全部楼层
zoe琦 发表于 2013-5-2 23:36
但是如果数组中元素重复,运用return后就不能找出全部的了
而且我也所写的函数中没有用到  find(int a[] ...

那就再定个变量,如flag=1,在if(a[i]==x){ flag=0; ..... }   if(flag){ .... }  当存在就把flag改为0
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-5-3 23:55:54 | 显示全部楼层
727545760 发表于 2013-5-3 21:26
那就再定个变量,如flag=1,在if(a==x){ flag=0; ..... }   if(flag){ .... }  当存在就把flag改为0

好抽象   什么意思?
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-5-4 00:07:08 | 显示全部楼层
强烈支持楼主ing……
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-5-4 00:07:37 | 显示全部楼层
zoe琦 发表于 2013-5-3 23:55
好抽象   什么意思?

void find()
{
        for (i=0; i<11; ++i)
        {
                if (a[i] == x)
                {
                          flag=0;//flag是在上面定义的
//                        z = i + 1;      
                        printf ("%d is found, it's at %d . \n",x,i);

                }
        }
        //当flag为0时表示为false,所有不会进if
        if (flag)
        {
                printf ("Not exist in the array!");
        }
}
先试一下,看行不行    呵呵
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-5-6 23:02:53 | 显示全部楼层
727545760 发表于 2013-5-4 00:07
void find()
{
        for (i=0; i

请问一下
if(flag)  里面的flag 是什么意思?是flag=1吗?
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2013-5-7 08:58:43 | 显示全部楼层
zoe琦 发表于 2013-5-6 23:02
请问一下
if(flag)  里面的flag 是什么意思?是flag=1吗?

小甲鱼老师的课程中有讲到:大于0的数返回个真,当等于0时就是假;楼主那结果可以了吗?
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2013-5-7 16:58:07 | 显示全部楼层
727545760 发表于 2013-5-7 08:58
小甲鱼老师的课程中有讲到:大于0的数返回个真,当等于0时就是假;楼主那结果可以了吗?

恩,,我知道哪里错咯  
不管怎样都谢谢咯。。感恩无私的分享与奉献 :)
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-29 21:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表