实验三

发布时间:2022-06-08 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了实验三脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

task1

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <windows.h>
#define N 80

void printText(int line, int col, char text[]);
void printSpaces(int n);
void printBlankLines(int n);

int main()
{
	int line, col, i;
	char text[N] = "hi, May~";

	srand(time(0));

	for (i = 1; i <= 10; ++i)
	{
		line = rand() % 25;
		col = rand() % 80;
		printText(line, col, text);
		Sleep(1000);
	}

	return 0;
}

void printSpaces(int n)
{
	int i;

	for (i = 1; i <= n; ++i)
		printf(" ");
}

void printBlankLines(int n)
{
	int i;

	for (i = 1; i <= n; ++i)
		printf("n");
}

void printText(int line, int col, char text[])
{
	printBlankLines(line - 1);
	printSpaces(col - 1);
	printf("%s", text);
}

实验三

功能:在屏幕上随机打印十个“hi,May~”

task2_1

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
long long fac(int n); 
int main()
{
	int i, n;
	printf("Enter n: ");
	scanf("%d", &n);
	for (i=1; i<=n; ++i)
		printf("%d! = %lldn", i, fac(i));
	return 0;
}
long long fac(int n)
{
	static long long p=1;
	
	p=p * n;
	return p;
}
插入printf("p = %lldn", p);在“staticlonglongp=1;”后的截图

实验三

task2_2

#include <stdio.h>
int func(int, int);
int main()
{
    int k = 4, m = 1, p1, p2;
    p1 = func(k, m);
    p2 = func(k, m);
    printf("%d,%dn", p1, p2);
    return 0;
}
int func(int a, int b)
{
    static int m = 0, i = 2;
    i += m + 1;
    m = i + a + b;
    return m;
}

实验三

问题回答: 1.实验运行结果与理论分析得到的结果一致; 2.局部static变量的特性: 在函数调用后其值依然保留,并可影响下次调用过程。

task3

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
long long fun(int n);
int main()
{
    int n;
    long long f;
    while (scanf("%d", &n) != EOF)
    {
        f = fun(n);
        printf("n = %d, f = %lldn", n, f);
    }
    return 0;
}

long long fun(int n)
{
    int i;
    long long a = 0, p = 1;
    if (n == 0) a = 1;
    else
    {
        for (i = 1;i <= n;i++)
        {
            p = p * 2;
        }
        a = p - 1;
    }
    return a;
}

实验三

task4

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int i;
void hanoi(unsigned n, char from, char to, char temp);
void move(unsigned n, char from, char to);
int main()
{
    unsigned n;
    while (scanf("%u", &n) != EOF)
    {
        i = 0;
        hanoi(n, 'A', 'C', 'B');
        printf("一共移动了%d次", i);
    }

    system("pause");
}
void hanoi(unsigned n, char from, char to, char temp)
{
    if (n == 1)
        move(n, from, to);
    else
    {
        hanoi(n - 1, from, temp, to);
        move(n, from, to);
        hanoi(n - 1, temp, to, from);
    }
}
void move(unsigned n, char from, char to)
{
    i++;
    printf("第%u个盘子: %c-->%cn", n, from, to);
}

实验三

task5

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int is_prime(int n);
int main()
{
    int n, p, q, flagp, flagq;
    for (n = 4;n <= 20;n += 2)
    {
        p = 1;
        do
        {
            p++;
            q = n - p;
            flagp = is_prime(p);
            flagq = is_prime(q);
        } while (flagq * flagp == 0);
    printf("%d =%d + %dn", n, p, q);
}
return 0;
}
int is_prime(int n)
{
    int k;
    for (k = 2;k <= sqrt(n);k++)
        if (n % k == 0)
        {
            return 0;
        }
    return 1;

}

实验三

task6

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
long fun(long s);
int main()
{
long s, t;
printf("Enter a number:");
while (scanf("%ld", &s) != EOF)
{
	t = fun(s);
	printf("new number is:%ldnn", t);
	printf("Enter a number:");
	}
	
	system("pause");
}
long fun(long s)
{
	long i, p, t = 0, x = 0, m;
	p = s;
	while (p != 0)
	{
	    i = p % 10;
	    if (i % 2 == 1)
		t = t * 10 + i;
	    p /= 10;
	}
	while (t != 0)
	{
    	    m = t % 10;
    	    x = x * 10 + m;
    	    t /= 10;
	}

	return x;
}

实验三

实验总结: 部分函数运用不太熟练,还需要进一步加强练习。

脚本宝典总结

以上是脚本宝典为你收集整理的实验三全部内容,希望文章能够帮你解决实验三所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: