第1个回答 2018-03-13
#include<stdio.h>
//寻找输入的数字在第几个位置上
int find(int a[],int n,int len)
{
int i =0;
for (i=0;i<10;i++)
{
if (a[i]==n)
{
return i;
}
}
return -1;
}
int main(void)
{
int f=0,num=0,a[10] = {3,2,1,6,7,8,9,4,5,0};
scanf("%d",&num);
f=find(a,num,10);
if (f!=-1)
{
printf("%d at pos [%d]\n",num,f+1);
}
return 0;
}
9
9 at pos [7]
Press any key to continue
第2个回答 2014-12-23
int num(int * a,int n)//n是数组成员个数
{
int i,k,j=0;
scanf ("%d",&k);//需要查找的数
for (i=0;i<n;i++) if (a[n]==k) j++;
return j;
}
追问
这个是我编的,希望有更简单的方法,我们没有学指针。
追答你这程序有错吧?不过总体思路没错,已经是最简单的了。至少一个循环
追问没错,可以运行。
追答既然你是学C的就应该按照C的语法写程序,否则不论考试还是以后作为程序员都是一种不好的习惯。C语言数组大小必须是常量。a[n]中的n必须是常量,C++允许不是,但是不应该这样写C。其次,不能在调用函数后再创建新的变量,scanf后面不应该再定义变量。或许上面几个问题用C++的编译器都不会有问题。但是,再函数count中,sum没有初始化,sum+=1会是多少?没人会知道,就算没有语法错误,答案也是乱码。最后。return后面再接任何语句是没有意义的,程序已经返回了,putchar是多余的。