实验任务1
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<windows.h>
#define N 80
void print_text(int line, int col, char text[]);
void print_spaces(int n);
void print_blank_lines(int n);
int main(void) {
int line, col,i;
char text[N] = "hi,November";
srand(time(0));
for (i = 1; i <= 10; ++i) {
line = rand() % 25;
col = rand() % 80;
print_text(line, col, text);
Sleep(1000);
}
return 0;
}
//print n blanks
void print_spaces(int n) {
int i;
for (i = 1; i <= n; ++i)
printf_s(" ");
}
//print n blank lines
void print_blank_lines(int n) {
int i;
for (i = 1; i <= n; ++i)
printf_s("\n");
}
//print a text at ""line and ""row
void print_text(int line, int col, char text[]) {
print_blank_lines(line - 1);
print_spaces(col - 1);
printf_s("%s", text);
}
作用:以时间为种子,随机在m行n列生成一个“hi,November”的文本
实验任务2.1
#include<stdio.h>
#include<stdlib.h>
long long fac(int n);
int main(void) {
int i, n;
printf_s("Enter n:");
scanf_s("%d",&n);
for (i = 1; i <= n; ++i)
printf_s("%d!=%lld\n", i, fac(i));
return 0;
}
//define a function
long long fac(int n) {
static long long p = 1;
p *= n;
return p;
}
实验任务2.2
#include<stdio.h>
int func(int, int);
int main(void) {
int k = 4, m = 1, p1, p2;
//use a function
p1 = func(k, m);
p2 = func(k, m);
printf_s("%d,%d\n", p1, p2);
return 0;
}
//define a function
int func(int a, int b) {
static int m = 0, i = 2;
i += m + 1;
m = i + a + b;
return m;
}
Static变量特性:只初始化一次,后面的结果保持为上一次运行的结果
实验任务3
#include<stdio.h>
long long func(int n);
int main(void) {
int n;
long long f;
while (scanf_s("%d", &n) != EOF) {
f = func(n);
printf("n = %d,f = %lld\n", n, f);
}
return 0;
}
long long func(int n) {
long long ans=1;
if (n > 1) { ans = func(n - 1) * 2 + 1; }
return ans;
实验任务4
#include<stdio.h>
int func(int n, int m);
int main() {
int n, m;
while (scanf_s("%d%d", &n, &m) != EOF)
printf("n=%d,m=%d,ans=%d\n", n, m, func(n, m));
return 0;
}
int func(int n, int m) {
int ans=1;
if (n < m) { ans = 0; }
else if (m == 0 || m == n) { ans = 1; }
else ans = func(n - 1, m) + func(n - 1, m - 1);
return ans;
}
实验任务5
#include<stdio.h>
int mul(int n, int m);
int main() {
int n, m;
while (scanf_s("%d%d", &n, &m) != EOF)
printf("%d * %d = %d\n", n, m, mul(n, m));
return 0;
}
int mul(int n, int m) {
int mid = 0,ans=0;
if (n < m) { mid = n, n = m, m = mid; }//保证n为大数
if (m == 1) { ans = n; }
if (m != 0 && n != 0) {
ans =n+mul(n, m - 1);
}
else return 0;
return ans;
}
实验任务6
#include <stdlib.h>
#include <stdio.h>
#include<math.h>
void hanoi(unsigned int n, char from, char temp, char to);
void moveplate(unsigned int n, char from, char to);
int main() {
unsigned int n; int count = 0;
while (scanf_s("%u", &n) != EOF){
hanoi(n, 'A', 'B', 'C');
count = pow(2, n) - 1;
printf("\n一共移动了%d次\n",count);
}
system("pause");
return 0;
}
void hanoi(unsigned int n, char from, char temp, char to)
{
if (n == 1) { moveplate(n, from, to); }
else {
hanoi(n-1, from, to, temp);
moveplate(n, from, to);
hanoi(n-1, temp, from, to);
}
}
void moveplate(unsigned int n,char from,char to)
{
printf("%u:%c----->%c\n", n, from, to);
}
实验任务7
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int is_prime(int n);
int main() {
int oushu = 4; int n1=2, n2=2;
while (oushu<20 ) {
for (n1=2;n1<oushu;n1++) {
n2 = oushu - n1;
if (is_prime(n1) && is_prime(n2)) { printf("%d = %d + %d\n", oushu, n1, n2); break; }
}
oushu += 2;
}
return 0;
}
int is_prime(int n) {
int i = 2;
for (i=2; i <= sqrt(n * 1.0); i++) {
if (n % i == 0) { break; }
}
if (i > sqrt(n * 1.0)&&n!=1)return 1;
else return 0;
}
实验任务8
#include<stdio.h>
long fun(long s);
int main() {
long s, t;
printf("Enter a number:");
while (scanf_s("%ld", &s) != EOF) {
t = fun(s);
printf("new number is : %ld\n\n", t);
printf("Enter a number:");
}
return 0;
}
long fun(long s) {
long b; b = s;
int ans=0 ; int mid=0;
mid = s % 10;
if (b != 0) {
if (mid % 2 == 1) { ans = mid + fun(s / 10) * 10; }
else ans = fun(s / 10);
}
return ans;
}
标签:return,int,printf,long,任务,实验,ans,include From: https://www.cnblogs.com/molsonxx/p/16862428.html