#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,输出此时的下标的数即相同的数
望远
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;
}- 2 回答
- 0 关注
- 1794 浏览
添加回答
举报
0/150
提交
取消
