#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 关注
- 1636 浏览
添加回答
举报
0/150
提交
取消