目录
一. 验证哥德巴赫猜想
二. 进制转换
三. rand函数
往期回顾
一. 验证哥德巴赫猜想
任一充分大的偶数,可以用两个素数之和表示,例如:
4 = 2 + 2
6 = 3 + 3
10 = 3 + 7
10 = 5 + 5
..
9 8 = 1 9 + 7 9
int isPrime(int x)
{int i = 0;for (i = 2; i <= sqrt(x); i++){if (x % i == 0)return 0;elsereturn 1;}
}
int main()
{int num;/*num:要判断的一个偶数*/int num1; /*num表示为两个素数num1和num-num1之和*/int count;/*计数输出个数,用于换行。*/printf("输入要验证的偶数:");scanf("%d", &num);if (num % 2 != 0)printf("输入的数不是偶数,程序终止\n");else {//采用穷举法,将num分解为两个素数之和count = 0;for (num1 = 2; num1 <= num / 2; num1++) {if (isPrime(num1) && isPrime(num - num1)) {printf("%d = %d + %d\t", num, num1, num - num1);count++;if (count % 3 == 0)printf("\n");//每输出3个数换一行 } //end of if } //end of for}//end of elsereturn 0;
}
解读:
首先先设计一个判断素数的函数isPrime()
然后输入一个偶数进行判断
最后验证哥德巴赫猜想。
运行结果如下:
二. 进制转换
设计一个函数,将十进制数转换成二进制、八进制和十六进制。然后在主函数中读入一个整数,调用函数,输出转换结果。
思路:
位值:64 32 16 8 4 2 1
位值:32 16 8 4 2 1
位值: 32 16 8 4 2 1
符号值: 1 1 1 0 0 1 所以(57)10=(111001)2
位值:64 8 1
位值:8 1
位值: 8 1
符号值: 7 1 所以(57)10=(71)8
代码如下:
void transfer(int num, int base)
{int p, k;p = 1;while (p <= num) //求p:p是base的x次幂,且p大于num p = p * base;p = p / base;/*循环求base进制数的各位*/while (p != 0) {k = num / p; /*计算当前要输出的那个base进制数*/if (k <= 9)printf("%d", k);elseprintf("%c", k-10+'A');num = num % p;p = p / base;}
}
int main()
{int num = 0;int base = 0;printf("先输入要转化的数:");scanf("%d", &num);printf("输入转化进制:");scanf("%d", &base);transfer(num, base);return 0;
}
运行结果如下:
三. rand函数
rand()函数:
产生一个0到RAND_MAX之间的整数,使用时需要包含头文件<stdlib.h> 。
RAND_MAX 是在头文件<stdlib.h>中定义的符号常量,ANSI规定其不得小于32767。
如果产生1~6的随机数,则: 1+rand()%6
如果输入一个数N,随机输出一个数介于a,b之间,则a+(int)rand()%(b-a+1)。
srand(unsigned int)函数 如何实现真正的随机化:为函数rand设置随机数种子;每次执行程序时,只要随机数种子不同,产生的随机数序列也将不同。
让机器设置随机数种子:
srand(time(NULL)):通过time函数使计算机读取当前时间值(以秒为单位,如1099228431 ),并把该值设成随机数种子,这样可以避免用户自己输入随机数种子。
下面是掷骰子游戏的代码:
#include<stdio.h>
#include<stdlib.h>
#include<time.h>int main()
{int i;srand(time(NULL));for(i=1;i<=20;i++){printf("%10d",1+rand()%6);if(i%5==0)printf("\n");}return 0;
}
运行结果如下:
本次编程练习就分享到这里~ ~ ~
往期回顾
C语言——函数基本知识(三)-CSDN博客
C语言——函数基本知识(二)-CSDN博客
C语言 ——函数基本知识(一)-CSDN博客
“山林不向四季起誓,荣枯随缘”——C语言(爱心+祝福语)代码分享_爱心代码朋友圈文案-CSDN博客
C语言——二分法查找讲解_c语言二分法查找一个数-CSDN博客
C语言穷举法算法经典题型(二)_百钱百鸡问题c语言-CSDN博客
C语言穷举法算法经典题型(一)_c语言穷举法经典例题-CSDN博客
C语言算法经典基础题型——求一个数的回文数(两种方法)-CSDN博客
C语言基础入门(小白)三种方法解决幽灵换行符问题-CSDN博客