首页 > 其他分享 >实验四

实验四

时间:2024-11-08 11:58:59浏览次数:3  
标签:int void printf ++ 实验 ans input

task1

1 #include <stdio.h>
 2 #define N 4
 3 #define M 2
 4 
 5 void test1() {
 6     int x[N] = {1, 9, 8, 4};          
 7     int i;
 8 
 9     // 输出数组x占用的内存字节数
10     printf("sizeof(x) = %d\n", sizeof(x));
11 
12     // 输出每个元素的地址、值 
13     for (i = 0; i < N; ++i)
14         printf("%p: %d\n", &x[i], x[i]);
15 
16     // 输出数组名x对应的值 
17     printf("x = %p\n", x); 
18 }
19 
20 void test2() {
21     int x[M][N] = {{1, 9, 8, 4}, {2, 0, 4, 9}};
22     int i, j;
23 
24     // 输出二维数组x占用的内存字节数
25     printf("sizeof(x) = %d\n", sizeof(x));
26 
27     // 输出每个元素的地址、值 
28     for (i = 0; i < M; ++i)
29         for (j = 0; j < N; ++j)
30             printf("%p: %d\n", &x[i][j], x[i][j]);
31     printf("\n");
32 
33     // 输出二维数组名x, 以及,x[0], x[1]的值
34     printf("x = %p\n", x);
35     printf("x[0] = %p\n", x[0]);
36     printf("x[1] = %p\n", x[1]);
37     printf("\n");
38 }
39 
40 int main() {
41     printf("测试1: int型一维数组\n");
42     test1();
43 
44     printf("\n测试2: int型二维数组\n");
45     test2();
46 
47     return 0;
48 }

Q1:是连续存放的;值是一样的

Q2:是;是;4,为一个字节的长度

task2

 1 #include <stdio.h>
 2 #define N 100
 3 
 4 // 函数声明
 5 void input(int x[], int n);
 6 double compute(int x[], int n);
 7 
 8 int main() {
 9     int x[N];
10     int n, i;
11     double ans;
12 
13     while(printf("Enter n: "), scanf("%d", &n) != EOF) {
14         input(x, n);            // 函数调用
15         ans = compute(x, n);    // 函数调用
16         printf("ans = %.2f\n\n", ans);
17     }
18 
19     return 0;
20 }
21 
22 // 函数定义
23 void input(int x[], int n) {
24     int i;
25 
26     for(i = 0; i < n; ++i)
27         scanf("%d", &x[i]);
28 }
29 
30 // 函数定义
31 double compute(int x[], int n) {
32     int i, high, low;
33     double ans;
34 
35     high = low = x[0];
36     ans = 0;
37 
38     for(i = 0; i < n; ++i) {
39         ans += x[i];
40 
41         if(x[i] > high)
42             high = x[i];
43         else if(x[i] < low)
44             low = x[i];
45     }
46 
47     ans = (ans - high - low)/(n-2);
48 
49     return ans;
50 }

Q:从键盘中赋值到数组x[ ]中;得到x[ ]去除最大值的最小值的平均值

task3

 1 #include <stdio.h>
 2 #define N 100
 3 
 4 // 函数声明
 5 void output(int x[][N], int n);
 6 void init(int x[][N], int n, int value);
 7 
 8 int main() {
 9     int x[N][N];
10     int n, value;
11 
12     while(printf("Enter n and value: "), scanf("%d%d", &n, &value) != EOF) {
13         init(x, n, value);  // 函数调用
14         output(x, n);       // 函数调用
15         printf("\n");
16     }
17 
18     return 0;
19 }
20 
21 // 函数定义
22 void output(int x[][N], int n) {
23     int i, j;
24 
25     for(i = 0; i < n; ++i) {
26         for(j = 0; j < n; ++j)
27             printf("%d ", x[i][j]);
28         printf("\n");
29     }
30 }
31 
32 // 函数定义
33 void init(int x[][N], int n, int value) {
34     int i, j;
35 
36     for(i = 0; i < n; ++i)
37         for(j = 0; j < n; ++j)
38             x[i][j] = value;
39 }

Q1:二维

Q2:输出x[ ]方阵;按照输入值赋值x[ ]

task4

 1 #include<stdio.h>
 2 #define N 100
 3 double median(int x[],int n);
 4 void input(int x[],int n);
 5 
 6 int main()
 7 {
 8     int x[N];
 9     int n;
10     double ans;
11     
12     while (printf("Enter n: "),scanf("%d",&n)!=EOF)
13     {
14         input(x,n);
15         ans = median(x,n);
16         printf("ans = %g\n\n",ans);
17     }
18     
19     return 0;
20 }
21 
22 void input(int x[],int n)
23 {
24     int a,i,j,t;
25     for(i=1;i<=n;i++)
26     {
27         scanf("%d",&a);
28         x[i]=a;
29     }
30     for(i=1;i<=n;i++)
31     {
32         for(j=i+1;j<=n;j++)
33         {
34             if(x[i]>x[j])
35             {
36                 t=x[i];
37                 x[i]=x[j];
38                 x[j]=t;
39             }
40         }
41     }
42 }
43 
44 double median(int x[],int n)
45 {
46     double ans=0.0;
47 
48     if(n%2!=0)
49     {
50         ans = x[(n+1)/2];
51     }
52     else
53     {
54         ans = (x[n/2]+x[n/2+1])/2.0;
55     }
56     return ans;
57 }

task5

 1 #include <stdio.h>
 2 #define N 100
 3 
 4 void input(int x[][N], int n);
 5 void output(int x[][N], int n);
 6 void rotate_to_right(int x[][N],int n);
 7 
 8 int main() {
 9     int x[N][N];
10     int n;
11 
12     printf("输入n: "); 
13     scanf("%d", &n);
14     input(x, n);
15 
16     printf("原始矩阵:\n");
17     output(x, n);
18 
19     rotate_to_right(x,n);
20 
21     printf("变换后矩阵:\n");
22     output(x, n);
23 
24     return 0;
25 }
26 
27 void input(int x[][N], int n) {
28     int i, j;
29     
30     for (i = 0; i < n; ++i) {
31         for (j = 0; j < n; ++j)
32             scanf("%d", &x[i][j]);
33     }
34 }
35 
36 void output(int x[][N], int n) {
37     int i, j;
38 
39     for (i = 0; i < n; ++i) {
40         for (j = 0; j < n; ++j)
41             printf("%4d", x[i][j]);
42 
43         printf("\n");
44     }
45 }
46 
47 void rotate_to_right(int x[][N],int n)
48 {
49     char t[N][N];
50     int i,j;
51     for(i=0;i<n;i++)
52     {
53         t[N][N]=x[i][n-1];
54         for(j=n;j>0;j--)
55         {
56             x[i][j]=x[i][j-1];
57         }
58         x[i][0]=t[N][N];
59     }
60 }

task6

 1 #include <stdio.h>
 2 #define N 100
 3 
 4 void dec_to_n(int x, int n);
 5 
 6 int main() {
 7     int x;
 8 
 9     while(printf("输入十进制整数: "), scanf("%d", &x) != EOF) {
10         dec_to_n(x, 2);
11         dec_to_n(x, 8); 
12         dec_to_n(x, 16); 
13 
14         printf("\n");
15     }
16 
17     return 0;
18 }
19 
20 void dec_to_n(int x,int n)
21 {
22     int i=0,m[N],t=0,a;
23     while(x!=0)
24     {
25         m[i]=x%n;
26         x=x/n;
27         i++;
28         t++;
29     }
30     for(i=t-1;i>=0;i--)
31     {
32         if(m[i]<10)
33             printf("%d",m[i]);
34         else if(m[i]>=10)
35             printf("%c",'A'+m[i]-10);
36     }
37     printf("\n"); 
38 }

task7

 1 #include <stdio.h>
 2 #define N 100
 3 
 4 void input(int x[][N], int n);
 5 void output(int x[][N], int n);
 6 int is_magic(int x[][N],int n);
 7 
 8 
 9 int main() {
10     int x[N][N];
11     int n;
12 
13     while(printf("输入n: "), scanf("%d", &n) != EOF) {
14         printf("输入方阵:\n");  
15         input(x, n); 
16 
17         printf("输出方阵:\n");  
18         output(x, n);   
19 
20         if(is_magic(x, n))
21             printf("是魔方矩阵\n\n");
22         else
23             printf("不是魔方矩阵\n\n");
24     }
25 
26     return 0;
27 }
28 
29 void input(int x[][N], int n) {
30     int i, j;
31     
32     for (i = 0; i < n; ++i) {
33         for (j = 0; j < n; ++j)
34             scanf("%d", &x[i][j]);
35     }
36 }
37 
38 void output(int x[][N], int n) {
39     int i, j;
40 
41     for (i = 0; i < n; ++i) {
42         for (j = 0; j < n; ++j)
43             printf("%4d", x[i][j]);
44 
45         printf("\n");
46     }
47 }
48 
49 int is_magic(int x[][N],int n)
50 {
51     int t[N]={0},j,i,k=0;
52     for(i=0;i<n;i++)
53     {
54         for(j=0;j<n;j++)
55         {
56             t[k]+=x[i][j];
57         }
58         k++;
59     }
60     for(j=0;j<n;j++)
61     {
62         for(i=0;i<n;i++)
63         {
64             t[k]+=x[i][j];
65         }
66         k++;
67     }
68     for(i=0;i<n;i++)
69     {
70         t[k]+=x[i][i];
71     }
72     k++;
73     for(i=0;i<n;i++)
74     {
75         t[k]+=x[i][n-1-i];
76     }
77     for(i=0;i<k;i++)
78     {
79         if(t[i]!=t[i+1])
80         {
81             return 0;
82         }
83     }
84     return 1;
85 
86 }

 

标签:int,void,printf,++,实验,ans,input
From: https://www.cnblogs.com/yueTO233/p/18534801

相关文章

  • 实验4
    任务1:#include<stdio.h>#defineN4#defineM2voidtest1(){intx[N]={1,9,8,4};inti;//输出数组x占用的内存字节数printf("sizeof(x)=%d\n",sizeof(x));//输出每个元素的地址、值for(i=0;i<N;++i)......
  • (附项目源码)Java开发语言,基于Java的高校实验室教学管理系统的设计与开发 50,计算机毕设
    摘 要随着高校实验室教学与管理的复杂性增加,传统的手动管理系统已经无法满足日益增长的需求。实验室教学不仅涉及到学生的教学安排和管理,还需要对实验设备、实验材料、实验室资源等进行有效的调配和管理。而目前实验室教学管理的各项工作,如实验室的预约,设备的借用归还、课......
  • 20222410 2024-2025-1 《网络与系统攻防技术》实验五实验报告
    1.实验内容总结一下本周学习内容,不要复制粘贴2.实验过程2.1查询baidu.com并获取指定信息2.1.1DNS注册人及联系方式使用whois+域名,可以获取DNS注册人及联系方式whoisbaidu.com还可以使用在线域名查询工具获取相关信息:可以查出注册人为MarkMonitor,Inc.,联系方式为abus......
  • 使用Kali进行Dos攻击实验
    前言1.拒绝服务(DoS,DenialofService)攻击是一种网络攻击手段,其目的是通过各种方式使目标系统或网络资源无法为合法用户提供正常服务。攻击者可能会利用网络协议的缺陷、发送大量无效请求或使用僵尸网络来耗尽目标系统的资源,如CPU、内存、带宽或网络连接,导致系统无法响应合法用......
  • eNSP校园网络毕业设计汇总2-内容任选【实验+文档】
    文章目录校园网1(DSVPN、IPSECVPN、MSTP、双机热备、)校园网2(IPSECVPN、双机热备、专线网络)校园网3(QinQ隧道技术、无线、双机热备)校园网4(DSVPN、MPLSVPN、无线、双机热备)校园网5(SSLVPN、服务器负载分担、双机热备、出口负载分担、运营商双归属、策略路由、无线)校园网1(D......
  • 免费送源码:python+Django+MySQL Django实验室管理系统 计算机毕业设计原创定制
    摘 要本论文主要论述了如何使用python语言、Django框架开发一个实验室管理系统,本系统将严格按照软件开发流程,进行各个阶段的工作,面向对象编程思想进行项目开发。在引言中,作者将论述该系统的当前背景以及系统开发的目的,后续章节将严格按照软件开发流程,对系统进行各个阶段分......
  • 使用c语言,用keil5进行stm32F103c8点灯实验
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言学习stm32首先要学会最基础的电灯实验。进行电灯实验需要进行一些前提工作,需要建立启动文件start和标准外设驱动文件library文件和uesr文件这三个工程文件。具体文件可在网站上进行搜素拷贝......
  • 20222327 2024-2025-1 《网络与系统攻防技术》实验四实验报告
    一、实验内容1.恶意代码文件类型标识、脱壳与字符串提取2.使用IDAPro静态或动态分析crackme1.exe与crakeme2.exe,寻找特定输入,使其能够输出成功信息。3.分析一个自制恶意代码样本rada,并撰写报告,回答问题4.取证分析实践二、实验过程1.对恶意代码样本,进行文件类型识别,脱壳与字......
  • 单片机 键盘显示实验 实验二
    实验二   键盘显示实验实验准备:软件KeiluVision5、Proteus8Professional实验目的1、掌握矩阵键盘检测的原理和方法;2、掌握按键消抖的方法;3、再次熟悉数码管的显示。实验任务从4×4矩阵键盘输入4位字符(如“15EF”),并显示于4位数码管。实验原理在键盘中按键......
  • 实验3 类和对象_基础编程2
    1.实验任务1button.hpp源代码:1#pragmaonce23#include<iostream>4#include<string>56usingstd::string;7usingstd::cout;89//按钮类10classButton{11public:12Button(conststring&text);13stringget_label()......