如果有一个数组 a[10]={1,2,3,4,5,6,7,8,9,10},对于输入一个值b,如果b的值在1,2之间则输出1的位置、若在2,3之间则输出2的位置、以此类推。。。多谢!
你确定是输出位置吗?位置是个内存地址。是的话,追问一下。我帮你写。追问
只是在数组中的位置就OK.
追答#include
int main(void)
{
int a[10]={1,2,3,4,5,6,7,8,9,10};
printf("input a number:");
int i,x;
scanf("%d",&x);
for(i=0;i=a[i]&&x<=a[i+1])printf("%d",i);
}
}
写个简单的
输入不能输入错误
没有容错的语句
输入正确可以输出结果
温馨提示:答案为网友推荐,仅供参考
第1个回答 2011-11-20
你的数组是递增的吗??如果不是会出现以下情形:
如果数组是{1,3,2,4,3,5}
当B为2.5时,怎么办 它即在1到3间 这样是输出1,也在3与2之间,这样输出3。追问
如果数组是{1,3,2,4,3,5}
当B为2.5时,怎么办 它即在1到3间 这样是输出1,也在3与2之间,这样输出3。追问
放心 顺序是排好的。
第2个回答 2011-11-20
看看这个程序,符合你的要求哦
#include<stdio.h>
main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10},i;
double b;
for(i=0;i<9;i++)
{
printf("%d ",a[i]); //输出数组a[10]
}
scanf("%d",&b); //输入b
for(i=0;i<10;i++)
{
if(b<a[i+1]&&b>=a[i]) //b与数组中a[i]和a[i+1]比较,在其之间则输出a[i]的号码i
printf("%d\n",i);
}
}追问
#include<stdio.h>
main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10},i;
double b;
for(i=0;i<9;i++)
{
printf("%d ",a[i]); //输出数组a[10]
}
scanf("%d",&b); //输入b
for(i=0;i<10;i++)
{
if(b<a[i+1]&&b>=a[i]) //b与数组中a[i]和a[i+1]比较,在其之间则输出a[i]的号码i
printf("%d\n",i);
}
}追问
你这个程序怎么看不到结果哦。。。呵
追答你要输入数字啊,比如说输入:1.5
就会输出1
第3个回答 2011-11-20
数组的下标是从0开始的
你可以用foreach循环;
你可以用foreach循环;