为了账号安全,请及时绑定邮箱和手机立即绑定

为啥数组中虽然没有,但是还是提示重复。哪里错了吗?

为啥数组中虽然没有,但是还是提示重复。哪里错了吗?

C
日光倾城4 2017-06-10 22:43:10
#include<stdio.h>main(){//输入一个数字判断是否与数组重复    int num;//输入的数字    int a[10]={45,52,75,76,79,81,90,92,100};    printf("请输入一个数字\n");    scanf("%d",&num);    if(a[10] == num)        {            printf("数字%d重复了",num);        }    else        {             printf("抱歉,没有重复的\n");        }            return 0;}
查看完整描述

2 回答

已采纳
?
进击的学霸No1

TA贡献15条经验 获得超12个赞

#include<stdio.h>
main()
{//输入一个数字判断是否与数组重复
    int num,i;//输入的数字
    int a[10]={45,52,75,76,79,81,90,92,100};
    printf("请输入一个数字\n");
    scanf("%d",&num);
	for(i=0;i<10;i++)
	{
		if(a[i]==num)
			break;//如果num和数组内的数相等就跳出循环
	}
	if(i<10)//如果没有重复的数,for会循环到最后即i=10,若i<10则说明是中途跳出的
		printf("%d重复了!\n",num);
	else
		printf("没有重复!\n");
	//printf("%d\n",a[10]);
	return 0;
}

在你的代码中,第一个a[10]代表的是这个数组的长度为10,第二个a[10]表示的是下标为10的数组元素,不可以直接用整个数组进行比较。应该用for循环,比较每一个数,如果有相等的就break,输出此时的下标的数即相同的数

查看完整回答
1 反对 回复 2017-06-11
?
望远

TA贡献1017条经验 获得超1032个赞

#include<stdio.h>
int main()
{//输入一个数字判断是否与数组重复
    int num;//输入的数字
    int i;
    int a[10]={45,52,75,76,79,81,90,92,100};//一共有10个元素,最后有一个默认的0
    printf("请输入一个数字\n");
    scanf("%d",&num);
    //a[10]没有元素a[10]
    for(i=0;i<10;i++)
    {
        if(a[i]==num){
             break;
        }
    }
    if(i!=10)//如果a[i]==num会成立跳出循环i的取值就是0-9,最大就是9
        {
            printf("数字%d重复了",num);
        }
    else
        {
             printf("抱歉,没有重复的\n");//未执行break,正常结束循环
        }

            return 0;
}


查看完整回答
1 反对 回复 2017-06-11
  • 2 回答
  • 0 关注
  • 1636 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信