一 求100以内的所有素数
/*
* 需要标记2~100 之间的数是否处理
* 用数组,初始为0 表示都是素数,如果
判断为合数则置为1过用
*/
#include<stdio.h>
#include<math.h>
int main()
{
const int n = 100;
int isPrim[n + 1] = { 0 };
int i, j;
for (i = 2; i <= sqrt(float(n)); i++)
{
if (isPrim[i] == 0)
{
for (j = 2 * i; j <= n; j += i)
{
isPrim[j] = 1;
}
}
}
//输出
for (i = 2; i <= n; i++)
{
if (isPrim[i] == 0)
{
printf("%5d", i);
}
}
return 0;
}
二冒泡排序
冒泡排序算法的流程图
三 折半查找
四 求Fibonacci数
有一对兔子,从出生后第
3 个月起每个月都
生一对兔子。小兔子长到第三个月后每个月
又生一对兔子。
假设所有的兔子都不死,问第 n 个月时有几
对兔子 n <= 15 。即求第 nFibonacci 数。
规律:第一个数和第二个数分别是1和1,从第三个数开始每个数是它前面两个数之和。
/*
* 有一对兔子,从出生后第
3 个月起每个月都
生一对兔子。小兔子长到第三个月后每个月
又生一对兔子。
假设所有的兔子都不死,问第 n 个月时有几
对兔子 n <= 15 。即求第 nFibonacci 数。
*/
#include<stdio.h>
#include<stdlib.h>
int main()
{
const int n = 10;
int f[n], i;
f[1] = 1, f[2] = 1;
printf("%4d%4d", f[1], f[2]);
for (int i = 3; i < n; i++)
{
f[i] = (f[i - 1]) + f[i - 2];
printf(" %4d", f[i]);
}
system("pause");
return 0;
}
五 在屏幕上模拟显示一个数字式时钟
定义一个时钟结构体类型:
struct clock
{
int hour;
int minute;
int second;
};
trypedef struct clock CLOCK;
然后,编程事项将时钟模拟显示屏幕上。
#include<stdio.h>
#include<Windows.h>
struct clock
{
int hour;
int minute;
int second;
};
typedef struct clock CLOCK;
int main()
{
CLOCK t = { 0,0,0 };
int n = 100,i = 0;
char c;
while (++i < n)
{
t.second++;
if (t.second >= 60)
{
t.second = 0;
t.minute++;
}
if (t.minute >= 60)
{
t.minute = 0;
t.hour++;
}
if (t.hour >= 24)
t.hour = 0;
printf("%2d:%2d:%2d\r", t.hour, t.minute, t.second);
Sleep(1000);
}
}
读取本机时间
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<Windows.h>
int main()
{
time_t now;
struct tm local;
while (1)
{
time(&now);
localtime_s(&local,&now);
printf("%2d:%2d:%2d\r", local.tm_hour, local.tm_min, local.tm_sec);
Sleep(1000);
}
system("pause");
return 0;
}
六 数据分析
从键盘输入学生的学号,分析其年级、学院、专业、班级、编号。
学号格式如下:
#include<stdio.h>
#include<stdlib.h>
typedef struct student
{
char grade[5];
char department[3];
char major[3];
char cclass[3];
char number[4];
}student;
int main()
{
char number[4];
student s;
int i;
scanf_s("%s", number, 14);
for (i = 0; i < 4; ++i)
s.grade[i] = number[i];
s.grade[i] = '\0';
s.department[0] = number[i++];
s.department[1] = number[i + 1];
s.department[2] = '\0';
s.major[0] = number[i++];
s.major[1] = number[i++];
s.major[2] = '\0';
s.cclass[0] = number[i++];
s.cclass[1] = number[i++];
s.cclass[2] = '\0';
s.number[0] = number[i++];
s.number[1] = number[i++];
s.number[2] = number[i++];
s.number[3] = '\0';
printf("学院:%s;专业:%s;年级:%s;班:%s;学号:%s\n", s.department,
s.major, s.grade, s.cclass, s.number);
}