1.编写程序实现,把1~100存储到一个数组中,然后输出其中的所有素数
解题思路:1.定义整型数组a[100] 2.用循环给a[100]赋值 3.然后将每个a[i]的值除以比它大的每一个数,如能整除就说明不是素数,将其赋值成0 4.输出所有不为0的数组的数组元素
#include<stdio.h>
#include<math.h>
#define N 101
int main()
{
int i,j,a[N]; //定义变量
for(i=2;i<N;i++) //用循环给a[100]赋值
a[i]=i;
for(i=2;i<N+1;i++) //将每个a[i]的值除以比它大的每一个数,如能整除就说明不是素数,将其赋值成0
for(j=i+1;j<N;j++){
if(a[i]!=0&&a[j]!=0)
if(a[j]%a[i]==0)
a[j]=0;
}
printf("\n"); //换行
for(i=2;i<N;i++){ //进入循环,如果a[i]!=0,输出a[i]的值即所求素数
if(a[i]!=0){
printf("%5d",a[i]);
}
}
return 0;
}
2.编写程序,输入一个十进制的整数,将其变换为二进制后储存在一个数组中
十进制转换为二进制整数采用“除2取余,逆向输出”,直到商为1
#include<stdio.h>
#define N 100
int main()
{
int x,y,i=0,j; //定义变量,x表示输入的十进制整数
int a[N]; //定义整型数组
printf("请输入一个十进制整数"); //输出屏幕提示语
scanf("%d",&x); //输入十进制整数
while(x!=0){ //除2取余,直到商为1
a[i]=x%2;
x=x/2;
i++;
}
for(j=i-1;j>=0;j--){ //逆向输出,输出二进制数
printf("%d",a[j]);
}
return 0;
}