#include
int main(){
const int num = 10; //数组大小
int count[num]; //定义数组 //count[0]表示 0这个数字出现了多少次,类似于计数器
int i;
int x; //随机输出0-9内的数字
for(i = 0;i < num; i++){
count[i] = 0;
} //for循环初始化数组
scanf("%d",&x);
while(x != -1){
if(x >= 0 && x <= 9){
count[x] ++; //数组参与运算 //用读入的数作为数组的下标,让计数器+1
scanf("%d",&x); //循环结束后,不要忘记再次读入 x
}
}
for(i = 0;i < num; i++){
printf("%d:%d\n",i,count[i]);
} //遍历数组输出
return 0;
}
数组的大小(sizeof 的应用:给出整个数组所占的内容的大小,单位是字节)
sizeof(a)/sizeof(a[0])
/*sizeof(a[0])给出数组的单个元素的大小,于是相除就得到了数组的单元个数*/
好处:这样的代码,一旦修改数组中初始数据,无需修改遍历的代码。
***数组比较特殊,很多情况下都要用到遍历(比如两个数组间进行赋值)
int a[]={1,2,3,4,4,5,5,6};
int b[];
for( i=0; i
}
***关于遍历数组,常见情况
#include
//参数key——在数组a中的位置;参数a——要寻找的数组;参数length——要寻找的数组的长度
//如果找到,返回其在a中的位置;如果找不到,返回-1。
int search(int key,int a[],int length); //数组作为函数参数时,不能直接给出数组大小(a[]),必须要用另一个参数(length)来传入数组大小
int main(){
int a[]={2,4,6,4,9,7,8}; //集成初始化数组
int x;
int loc;
printf("请输入一个数字:");
scanf("%d",&x);
loc = search(x,a,sizeof(a)/sizeof(a[0])); //计算数组的长度
if( loc != -1){
printf("%d在第%d位置上\n",x,loc);
}else{
printf("%d不存在\n",x);
}
return 0;
}
int search(int key,int a[],int length){
int i;
int ret = -1;
for(i = 0;i < length; i++){
if(a[i] == key){
ret = i;
break;
}
} //自定义查找函数
return ret;
}
回顾(求素数思路——先排除除2以外的所有偶数,再从3走到sqrt(x),间隔为2)
int isPrime(int x){
int ret = 1;
int x;
if(x == 1 ||(x % 2 == 0 && x != 2))
ret = 0;
for( i=3; i
ret = 0;
break;
}
}
return ret;
}
#include
#define N 1001
int main(){
int lamp[N],i,j,n,k;
scanf("%d%d",&n,&k);
for(i=1;i<=n;i++){
lamp[i]=0;
}
for(i=1;i<=n;i++){
for(j=1;j<=k;j++){
if(i%j==0){
lamp[i]=!lamp[i];
}
}
}
for(i=1;i<=n;i++){
if(lamp[i])
printf("%d ",i);
}
return 0;
}