【C语言】查找:给定有10个元素的整数数组,输入一个数,在数组中查找是该数
查找:给定有10个元素的整数数组,输入一个数,在数组中查找是该数要求如果找到,输出该数在数组中的位置如果数组中有多个数等于查找关键字,试给予不同的处理若数组为排序的(升序...
查找:给定有10个元素的整数数组,输入一个数,在数组中查找是该数
要求
如果找到,输出该数在数组中的位置
如果数组中有多个数等于查找关键字,试给予不同的处理
若数组为排序的(升序或降序),试改为折半查找法
求解啊。。感激不尽! 展开
要求
如果找到,输出该数在数组中的位置
如果数组中有多个数等于查找关键字,试给予不同的处理
若数组为排序的(升序或降序),试改为折半查找法
求解啊。。感激不尽! 展开
1个回答
展开全部
#include <stdio.h>
#define COMMON 0
#define MUL_EQU 1
#define ORDER 2
#define INC 1
#define DEC 2
int main(){
int array[10];
int i,n,type,index,found=0,order;
printf("Input 10 integers:");
for(i=0;i<10;i++){
scanf("%d",&n);
array[i]=n;
}
printf("Input array type.\n \"0\" for Common\n \"1\" for 2 or more equal numbers\n \"2\" for ordered array\n:");
scanf("%d",&type);
switch(type){
case COMMON:
printf("Input index to search:");
scanf("%d",&index);
for(i=0;i<10;i++){
if(array[i]==index){
printf("Found at array[%d].\n",i);
return 0;
}
}
printf("Index not found!\n");
return 0;
case MUL_EQU:
printf("Input index to search:");
scanf("%d",&index);
for(i=0;i<10;i++){
if(array[i]==index){
printf("Found at array[%d].\n",i);
found=1;
}
}
if(found==0) printf("Index not found!\n");
return 0;
case ORDER:
if(array[0]<array[1]){
order=INC;
}else{
order=DEC;
}
printf("Input index to search:");
scanf("%d",&index);
if(index==array[5]){
printf("Found at array[5]\n");
return 0;
}else if(index>array[5]){
for(i=6;i<10;i++){
if(array[i]==index){
printf("Found at array[%d]\n",i);
return 0;
}
}
printf("Index not found!\n");
return 0;
}else if(index<array[5]){
for(i=0;i<5;i++){
if(array[i]==index){
printf("Found at array[%d]\n",i);
return 0;
}
}
printf("Index not found!\n");
return 0;
}
}
return 0;
}
需要注释吗?
#define COMMON 0
#define MUL_EQU 1
#define ORDER 2
#define INC 1
#define DEC 2
int main(){
int array[10];
int i,n,type,index,found=0,order;
printf("Input 10 integers:");
for(i=0;i<10;i++){
scanf("%d",&n);
array[i]=n;
}
printf("Input array type.\n \"0\" for Common\n \"1\" for 2 or more equal numbers\n \"2\" for ordered array\n:");
scanf("%d",&type);
switch(type){
case COMMON:
printf("Input index to search:");
scanf("%d",&index);
for(i=0;i<10;i++){
if(array[i]==index){
printf("Found at array[%d].\n",i);
return 0;
}
}
printf("Index not found!\n");
return 0;
case MUL_EQU:
printf("Input index to search:");
scanf("%d",&index);
for(i=0;i<10;i++){
if(array[i]==index){
printf("Found at array[%d].\n",i);
found=1;
}
}
if(found==0) printf("Index not found!\n");
return 0;
case ORDER:
if(array[0]<array[1]){
order=INC;
}else{
order=DEC;
}
printf("Input index to search:");
scanf("%d",&index);
if(index==array[5]){
printf("Found at array[5]\n");
return 0;
}else if(index>array[5]){
for(i=6;i<10;i++){
if(array[i]==index){
printf("Found at array[%d]\n",i);
return 0;
}
}
printf("Index not found!\n");
return 0;
}else if(index<array[5]){
for(i=0;i<5;i++){
if(array[i]==index){
printf("Found at array[%d]\n",i);
return 0;
}
}
printf("Index not found!\n");
return 0;
}
}
return 0;
}
需要注释吗?
追问
如果有注释当然最好了~还有。..怎么运行啊?不好意思啊菜鸟一只
追答
我发现有个错误,把后半部分改掉了。不好意思,解答还这个样子⋯⋯
另外运行的话TC2啦WinTC啦应该都可以。大概吧⋯⋯(笑)因为我不清楚Windows的C,我用linux的GCC调试通过了,不过我没有Windows,没法试验,就只好麻烦你自己试一下了⋯⋯
加注释后百度说我超字数⋯⋯怎么办⋯⋯
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询