思维导图:
1.使用break求3-100中的质数
#include <stdio.h>
int main(int argc, const char *argv[])
{
int num = 0;
int i = 0;
for(num=3;num<=100;num++){
for(i=2;i<num;i++){
if(num%i==0){ //存在其他因子i,结束本次循环
break;
}else if(i==num-1){ //不存在其他因子,为质数
printf("%d是质数\n",num);
}
}
}
return 0;
}
运行结果:
2.输出3-100以内的完美数,(完美数:因子和(因子不包含自身)=数本身)
#include <stdio.h>
int main(int argc, const char *argv[])
{
int num = 0 ;
int i = 0;
int sum = 0;
for(num = 3; num <= 100; num++){
sum = 0;
for(i = 1; i <num; i++ ){
if(num%i == 0){
sum = sum + i; //计算因子和
}
}
if(sum == num ){
printf("%d是完美数\n", num);
}
}
return 0;
}
运行结果:
3.打印字母图形
#include <stdio.h>
int main(int argc, const char *argv[])
{
int i=0,j=0;
for(i=1;i<=6;i++){
//打印下划线
for(j=1;j<=i-1;j++){
printf("_");
}
//打印字母
for(j=1;j<=i;j++){
printf("%c",'F'-j+1);
}
printf("\n");
}
return 0;
}
运行结果:
4.百钱买百鸡问题,一百元钱去买鸡,公鸡5元,母鸡3元,三只小鸡1元,问买一百只鸡,有多少种买法
#include <stdio.h>
int main(int argc, const char *argv[])
{
//百钱买百鸡
int m,n,i; //公鸡m只,母鸡n只,小鸡i只
int sum=0; //计数
for(i=1;i<100;i++){
for(m=1;m<100;m++){
n=100-m-i;
//买百只鸡并且花费一百元的条件
if(5*m+i/3+3*(100-m-i)==100&&n>0&&i%3==0){
sum+=1;
printf("%d只公鸡,%d只母鸡,%d只小鸡\n",m,n,i);
}
}
}
printf("共有%d种买法\n",sum);
return 0;
}
运行结果:
5.将data第[4]位清0,保持其他位不变
将data第[7]位置1,保持其他位不变
将data第[31:28]位清0,保持其他位不变
将data第[7:4]位置1,保持其他位不变
#include <stdio.h>
int main(int argc, const char *argv[])
{
int data;
printf("输入一个数据:");
scanf("%x",&data);
printf("%#X\n",data);
//将data第【4】位清0;保持其他位不变;
data = data & ~(0x1<<4);
printf("%#X\n",data);
//将data第【7】位置1;保持其他位不变;
data = data | 0x1<<7;
printf("%#X\n",data);
//将data第【31:28】位清0;保持其他位不变;
data = data & ~(0xF<<28);
printf("%#X\n",data);
//将data第【7:4】位置1;保持其他位不变;
data = data | 0xF<<4;
printf("%#X\n",data);
return 0;
}
6.思考交换两个数的方法
#include <stdio.h>
int main(int argc, const char *argv[])
{
//交换两个数的方法
int a,b;
a = 1;
b = 2;
printf("a=%d b=%d\n",a,b);
int c;
c = a;
a = b;
b = c;
printf("a=%d b=%d\n",a,b);
return 0;
}
运行结果: