c语言程序求解求改谢谢。。。

发布网友

我来回答

3个回答

热心网友

  #include<stdio.h>

  int  x(int *a,int b);

  int main ()

  {

  int d[100],c=0,i=0;
       int time_result;

  while (i<=100)

  {
    if(scanf("%d",&d[i])==EOF)   //使用&d[i],而不是&d,你输入的是数组中的元素,按CTRL+Z结束
 {
    break;
 }
    i++;
}

  time_result = x(d,c);             //你原先使用的是传值的方式,是得不到这个结果的,可以使用指针或者引用, 以及函数返回值的方式来获取这个值;

  printf("the statistics result is:%d\n",time_result);

  return 0;

  }

  int  x(int *a,int b)

  {

  int y=0;

  b=0;

  while (y<=100)

  {
    if( *(a+y) == 34)     //a是一个数组,可以用指针或者下标方式a[y]获取数组元素;
    {
     b++;
 }
    y++;                      //数组向后查找,数组下标递增即可,
}

  return b;

  }

 

  运行结果:

 

排版了反而变乱了。

建议:

数组一般使用for循环,if判断尽量用大括号括住判断覆盖的语句,尽管只有一行,这样看起来清晰明了;   

热心网友

#include<stdio.h>
main()
{
int d[10]={1,34,6,34,56,34,33,6,56,66};
int i,b,num=0;
printf("input:");
scanf("%d",&b);
for(i=0;i<10;i++)
if(b==d[i])
num++;
printf("\n num=%d",num);
}

热心网友

#include<stdio.h>

int x(int *a,int b);

int main ()
{
    int d[100],c=0,i=0;
    while (i<=100)
    {
        // 输入 ctrl + d 结束。这是一个 比较标准的写法 。
        if(scanf("%d",&d[i])==EOF)
            break;
        i++;
    }
    x(d,c);
    printf("%d\n",c);
    return 0;
}

// 这里该成 引用传值。 不然c 的值不会改变。
// 并且返回类型没有必要。结果可以通过参数
// b 传出来。这个函数可以改成 void 类型。
// 或者 把引用去掉,用函数返回 结果。
int x(int *a,int &b)
{
    int y=0;
    b=0;
    while(y<=100)
    {
        if(*a==34)b++;
        y++;
        *a++;
    }
    return b;
}

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com