c语言问题 任意输入其中一个数,查找它在数组中的位置

供稿:hz-xin.com     日期:2025-01-12
在C语言中,输入一个数,查找它在数组中的位置

int main(void)
{
int aiNum[10] = {1,23,34,22,33,44,55,31,24,90};
int i;
int number;
printf("input NUMBER");
scanf("%d",&number);

for(i=0;i<10;i++)
{
if(number == a[i])
break;
}
if(i>9)
{
printf("NOT FOUND NUMBER
");
}
else
{
printf("LOCATION:[%d]
",i);
}
return(0);
}

您好!
这是常见的一个粗心大意的问题:

你在读取10个数时的for循环语句处多加了“;”号,导致没有正确执行scanf读取命令。
将下列语句处“for(i=0;i<=9;i++);”末尾的“;”去掉即可正确运行:
printf("请输入10个数:
");
for(i=0;i<=9;i++);
scanf("%d",&a[i]);

任意输入其中一个数查找代码如下:
#include<stdio.h>
int main()
{
int a[10]={20,40,50,70,80,10,15,25,45,100};
int i,b,c;
char t,y,n;
do{
printf("请输入20,40,50,70,80,10,15,25,45,100十个数中任意一个:\n");
scanf("%d",&b);
printf("b=%d\n",b);
for(i=0;i<=9;i++)
{
if(a[i]==b)
c=i+1;
}
printf("第%d位数\n",c);
printf("是否继续y/n:");
fflush(stdin);
scanf("%c",&t);
}while(t == 'y');
return 0;
}

#include<stdio.h>
int main()
{
int a[10]={20,40,50,70,80,10,15,25,45,100};
int i,b,c;
char t,y,n;
do{
printf("请输入20,40,50,70,80,10,15,25,45,100十个数中任意一个:\n");
scanf("%d",&b);
printf("b=%d\n",b);
for(i=0;i<=9;i++)
{
if(a[i]==b)
c=i+1;
}
printf("第%d位数\n",c);
printf("是否继续y/n:");
fflush(stdin);
scanf("%c",&t);
}while(t == 'y');
return 0;
}

有几个地方要改:
1.scanf("%d",&b); 要用%
2.for(i=0;i<=9;i++) i=0必须在while循环内,不然第二次不能重开始处遍历
3.scanf("%d",&b); 之前是不需要fflush的,下面的%c才需要

上面的代码测试通过,打印信息正确、、

c=i+1改成c=a[i].count+1试试

scanf("&d",&b);改为scanf("%d",&b);

C语言设计题:有15个数存放在一个数组中,输入一个数要求用折半查找法...
\/ 你好:折半查找法找出该数是数组中的 第几个 元素的值 这个要找的值是数组元素排序之后的位置 还是排序之前的 因为折半查找要求数组是有顺序的 我调好了一个输出的是排序之后的 先让你看看结果,如果是你要的,我在给你代码 呵呵 \/

在一个数组中查找一个数,用C语言怎么写代码?
include<stdio.h> int main(void){ int i,j,k=0,sz[10]={5,75,89,428,576,5986,7543,8524,9805,1057};printf(" 请输入要查找的数:");scanf("%d",&j);for(i=0;i<10;i++)if(sz[i]==j){ printf(" sz[%d] = %d\\n",i,sz[i]);k++;} if(!k)printf(" 数组中...

C语言,从键盘输入十个数,检查整数3是否在这个数列中,若在的话它是第几...
include "stdio.h"int main(void){ int a[10],i; for(i=0;i<10;scanf("%d",a+i++)); for(i=0;i<10;i++) if(a[i]==3){ printf("Yes, it is %d input\\n",i+1); break; } if(i==10) printf("Didn't find 3\\n"); return 0;} ...

C语言问题!!输入一个整数,将它逆序输出。。例如reverse(123)的返回...
C语言中,要实现一个整数的逆序输出,可以通过定义一个函数reverse来完成。这个函数接收一个整数n作为参数,然后返回这个整数的逆序值。下面是一个简单的实现步骤:首先,在主函数(main)中,将需要逆序的整数传递给reverse函数。例如,如果输入的整数是123,那么reverse(123)将会返回321。在reverse函数内部,...

在一个含有10个数的数组a中查找一个数及其位置数组和待查数从键盘输入...
1.先用一个for循环输入数据 2.从键盘输入一个数据 2.再用一个for循环,用if语句和输入的数据进行对比,如果相等,就用printf语句输出该数据的位置,并在if语句中用break退出,如果循环完毕还没找到,就用if=循环的总数,然后用printf语句输出失败信息 ...

c语言,从键盘中输入一个正整数n分别求1到n之间所有个位数是3或5的数的...
include <stdio.h> int main(){ int n, sum = 0;printf("请输入一个正整数:");scanf("%d", &n);for (int i = 1; i <= n; i++){ int digit = i % 10;if (digit == 3 || digit == 5){ sum += i;} } printf("1到%d之间所有个位数是3或5的数的和为:%d\\n",...

输入N个整数存放在数组中,再输入整数M,查找M是否在数组中,C语言编程
int main(){int a[100],i,x,n;printf("请输入整数个数");scanf("%d",n);printf("请输入%d个整数",n);for(i=0;i<n;i++)scanf("%d",a[i]);printf("请输入要查询的数");scanf("%d",x);for(i=0;i<n;i++){if(a[i] == x) break;}if(i<n)printf("有数据%d",...

...读入一个整数,统计并输出该数中指定数字的个数,要求调用函数countdi...
include <stdio.h>int coutdigit(int integer, int digit) {char s[20];sprintf(s,"%d",integer);\/\/将整数转换为字符串int i = 0;int current, numberOfDigit=0;while(s[i]) {current = s[i]-'0';if (current==digit)numberOfDigit++;i++;}return numberOfDigit;}int main() {...

...将他们按从大到小进行排序然后从键盘输入一个数字利用半折法进行查找...
include <stdio.h>#include <stdlib.h>#include #include <string.h>int cmp(const void* a,const void *b){return *(int*)b-*(int*)a;}void getArr(int* p,int size){srand(time(NULL));for(int i=0;i<size;i++)p[i]=rand()%50;}int main(int argc,char *argv[]){int ...

C语言编程: 输入0-10之间的十个数字 找出最大值 最小值 去除最大值最...
0]>10){ printf("输入错误,请重新输入\\n"); continue; } for(i=1;i<10;i++){ scanf("%d",&a[i]); if(a[i]<0||a[i]>10){ printf("输入错误,请重新输入\\n"