1.使用break求3-100中的质数
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(int argc, const char *argv[])
{
int i = 0;
int j = 0;
for(i=3;i<=100;i++){//3-100的数
for(j=2;j<i;j++){//除数
if(i%j==0)
break;
}
if(i==j)
printf("%d是质数\n",i);
}
return 0;
}
2.输出3-100以内的完美数,(完美数:因子和(因子不包含自身)=数本身)
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(int argc, const char *argv[])
{
int i = 0;
int j = 0;
int sum = 0;
for(i=3;i<=100;i++){
sum = 0;
for(j=1;j<i;j++){
if(i%j==0)
sum += j;
}
if(i==sum)
printf("%d 是完美数\n",i);
}
return 0;
}
3.打印字母图形
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(int argc, const char *argv[])
{
int i = 0;
int j = 0;
for(i=0;i<6;i++){
for(j=0;j<i;j++){
printf("_");
}
for(j=0;j<=i;j++){
printf("%c",'F'-j);
}
putchar(10);
}
return 0;
}
4.百钱买百鸡问题,一百元钱去买鸡,公鸡5元,母鸡3元,三只小鸡1元,问买一百只鸡,有多少种买法。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(int argc, const char *argv[])
{
int m = 0;//公鸡
int w = 0;//母鸡
int c = 0;//小鸡
int num = 0;
for(m=0;m<=100/5;m++){
for(w=0;w<=33;w++){
for(c=0;c<=100;c++){
if((m+w+c)==100 && (5*m+3*w+c/3)==100 && c%3==0){
printf("公鸡=%d 母鸡=%d 小鸡=%d\n",m,w,c);
num++;
}
}
}
}
printf("一共%d中买法\n",num);
return 0;
}
5.将data第[4]位清0,保持其他位不变;
将data第[7]位置1,保持其他位不变;
将data第[31:28]位清0,保持其他位不变;
将data第[7:4]位置1,保持其他位不变
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(int argc, const char *argv[])
{
int data = 0xffffffff;
data = data & ~(1<<4);
printf("%#x\n",data);
puts("----------------------------");
data = 0x0;
data = data | (1<<7);
printf("%#x\n",data);
puts("----------------------------");
data = 0xffffffff;
int i = 0;
for(i=28;i<32;i++){
data = data & ~(1<<i);
}
printf("%#x\n",data);
puts("----------------------------");
data = 0x0;
int j = 0;
for(j=4;j<=7;j++){
data = data | (1<<j);
}
printf("%#x\n",data);
puts("----------------------------");
return 0;
}
6.思考交换两个数的方法
6.1 借助变量参与交换(需要定于临时变量)
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(int argc, const char *argv[])
{
int i = 10;
int j = 20;
int temp = 0;
temp = i;
i = j;
j = temp;
printf("i = %d j = %d\n",i,j);
return 0;
}
6.2采用异或的方法(使用较为简便)
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(int argc, const char *argv[])
{
int i = 10;
int j = 20;
i ^= j;
j ^= i;
i ^= j;
printf("i = %d j = %d\n",i,j);
return 0;
}
6.3采用加减法进行交换(其中a,b要足够大)
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(int argc, const char *argv[])
{
int a = 10;
int b = 20;
a = a+b;
b = a-b;
a = a-b;
printf("a = %d b = %d\n",a,b);
return 0;
}