一 求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);
}