1.100以内的素数
#include<stdio.h>
void main()
{
int i;
int k;
for(i=2; i<=100; i++) /*确定范围:2——100*/
{
for(k=2; k<i; k++)
{
if(i%k==0)
break; /*如果找到一个不是1或者它本身的因子,则停止该循环,此时k<i*/
}
if(k==i)
printf("%d\n",i);/*当k=i时表明i不存在除1和本身以外因子,因而它是素数,打出来(单独判断)*/
}
}
思路:判断N为素数,则用2~N之间的所有数去除N,若不存在因子即为素数
2.按位输出一个数
#include<stdio.h>
int main()
{
int a;
int c;
int i;
char b[10];
scanf("%d",&a);
sprintf(b,"%d",a); //把格式化的数据写入某个字符串
strlen(b); //检测字符串长度
for(i=0;i<strlen(b);i++)
{
c=a%10; //每对10取余一次,等同于获得最后一位数的数值
printf("%d",c);
a=a/10; //每对10整除,等同于删除最后一位(C语言整除直接去掉余数)
}
}
sprintf()函数用法
函数功能:把格式化的数据写入某个字符串数组,若写入的数组不是char,转化为char
函数原型:int sprintf( char *buffer, const char *format [, argument] … );
返回值:字符串长度(strlen)
例子:
int s[100];
char* who = "I";
char* whom = "CSDN";
sprintf(s, "%s love %s.", who,whom); //产生:"I love CSDN. " 这字符串写到s中
sprintf(s, "%10.3f", 3.1415626);//产生:" 3.142"
也可以这样求长度!!
int len = sizeof(b) / sizeof(int)
sizeof(b) 会获得整个数组所占用的字节数,sizeof(int)会获得一个数组元素所占用的字节数,它们相除的结果就是数组包含的元素个数,也即数组长度
3.统计100以内数字含有9的个数
#include<stdio.h> //本题错误,会陷入死循环
int main()
{
int i;
int count;
for(i=1;i<=100;i++)
{
while(i!=0)
{
if(i%10==9)
{
count++;
}
i=i/10; //i=1时,执行此行后i=0,不再满足for语句的结束条件导致无限循环
}
}
printf("%d",count);
}
修改:
#include<stdio.h>
int main()
{
int i;
int count;
int temp;
for(i=1;i<=100;i++)
{
temp=i;
while(temp!=0)
{
if(temp%10==9)
{
count++;
}
temp=temp/10; //用temp代替i执行while循环体
}
}
printf("%d",count);
}
4.枚举类型变量
#include<stdio.h>
enum{A,B,C,D}x;
void main()
{
char s[]="your";
for(x=B;x<=D;x++)
putchar(s[x]);
}#include<stdio.h>
enum{A,B,C,D}x;
void main()
{
char s[]="your";
for(x=B;x<=D;x++)
putchar(s[x]);
}
(1) 枚举型是一个集合,集合中的元素(枚举成员)是一些命名的整型常量,元素之间用逗号,隔开。
(2) DAY是一个标识符,可以看成这个集合的名字,是一个可选项,即是可有可无的项。
(3) 第一个枚举成员的默认值为整型的0,后续枚举成员的值在前一个成员上加1。
(4) 可以人为设定枚举成员的值,从而自定义某个范围内的整数。
(5) 枚举型是预处理指令#define的替代。
(6) 类型定义以分号;结束。
5.求阶乘
#include<stdio.h>
int fun(int x)
{
static intf=1; /*静态变量相当于全局,生命周期作用于整个函数运行完后,每次调用f值都会改变,去掉static每次调用f都会初始化为1*/
f=f*x;
return f;
}
int main()
{ int i;
for(i=1;i<=5;i++)
{
printf("f(%d)=%d",i,fun(i));
printf("\n");
}
}