当前位置: 首页 > news >正文

实验4作业

任务1

#include<stdio.h>
#define N 4
#define M 2void test1()
{int x[N]={1,9,8,4};int i;printf("sizeof(x)=%d\n",sizeof(x));for(i=0;i<N;++i)printf("%p:%d\n",&x[i],x[i]);printf("x=%p\n",x);}void test2()
{int x[M][N]={{1,9,8,4},{2,0,4,9}};int i,j;printf("sizeof(x)=%d\n",sizeof(x));for(i=0;i<M;++i)for(j=0;j<N;++j)printf("%p:%d\n",&x[i][j],x[i][j]);printf("\n");printf("x=%p\n",x);printf("x[0]=%p\n",x[0]);printf("x[1]=%p\n",x[1]);printf("\n");}int main()
{printf("测试1:int型一维数组\n");test1();printf("测试2:int型二维数组\n");test2();return 0;
}

  

image

 问题1

是,相同

问题2

是,相同,相差16,含义为数组x的第一行有4个数组元素,共占用16个字节

任务2

#include<stdio.h>
#define N 100
void input (int x[],int n);
double compute(int x[],int n);int main()
{int x[N];int n,i;double ans;while(printf("Enter n: "),scanf("%d",&n)!=EOF){input(x,n);ans=compute(x,n);printf("ans=%.2f\n\n",ans);}return 0;
}void input(int x[],int n)
{int i;for(i=0;i<n;++i)scanf("%d",&x[i]);}double compute(int x[],int n)
{int i,high,low;double ans;high=low=x[0];ans=0;for(i=0;i<n;++i){ans+=x[i];if(x[i]>high)high=x[i];else if(x[i]<low)low=x[i];}ans=(ans-high-low)/(n-2);return ans;}

image

 问题1

分别为 int x[ ] 和 x

问题2

input功能为将输入的数据存入数组中,compute的功能是计算除去最大值和最小值后的数据的平均值

任务3

#include<stdio.h>
#define N 100
void output (int x[][N],int n);
void init(int x[][N],int n,int value);int main()
{int x[N][N];int n,value;while(printf("Enter n and value:"),scanf("%d%d",&n,&value)!=EOF){init(x,n,value);output(x,n);printf("\n");}return 0;
}void output(int x[][N],int n)
{int i,j;for(i=0;i<n;++i){for(j=0;j<n;++j)printf("%d",x[i][j]);printf("\n");}
}void init(int x[][N],int n,int value)
{int i,j;for(i=0;i<n;++i)for(j=0;j<n;++j)x[i][j]=value;}

  

image

改为x[ ][ ]后:image

 

 问题1

书写形式分别为int x[ ][N] 和 x

问题2

不能省略,会(如图)

问题3

output的功能是将生成的数组以矩阵的形式输出,init的功能是将输入的第二个数字存入行数和列数都是第一个数字的数组中

任务4

#include<stdio.h>
#define N 100
void input(int x[],int n);
double median(int x[],int n);int main()
{int x[N];int n;double ans;while(printf("Enter n:"),scanf("%d",&n)!=EOF){input(x,n);ans=median(x,n);printf("ans=%g\n\n",ans);}return 0;
}void input(int x[],int n)
{int i,j;for(i=0;i<n;++i)scanf("%d",&x[i]);for(j=0;j<n-1;++j){for(i=0;i<n-1-j;++i){int t;if(x[i]<x[i+1]){t=x[i];x[i]=x[i+1];x[i+1]=t;}}}}double median(int x[],int n)
{double med;if(n%2==0)med=(double)(x[n/2]+x[(n-2)/2])/2;elsemed=x[(n-1)/2];return med;
}

  

image

 任务5

#include<stdio.h>
#define N 100void input(int x[][N],int n);
void output(int x[][N],int n);
void rotate_to_right(int x[][N],int n);int main()
{int x[N][N];int n;printf("Enter n:");scanf("%d",&n);input(x,n);printf("原始矩阵:\n");output(x,n);rotate_to_right(x,n);printf("变换后矩阵:\n");output(x,n);return 0;}void input(int x[][N],int n)
{int i,j;for(i=0;i<n;++i){for(j=0;j<n;++j)scanf("%d",&x[i][j]);}}void output(int x[][N],int n)
{int i,j;for(i=0;i<n;++i){for(j=0;j<n;++j)printf("%d ",x[i][j]);printf("\n");}}void rotate_to_right(int x[][N],int n)
{int i,j;for(i=0;i<n;++i){int t;t=x[i][n-1];for(j=n-2;j>=0;--j)x[i][j+1]=x[i][j];x[i][0]=t;}
}

 

image

 任务6 

#include<stdio.h>
#define N 100void dec_to_n(int x,int n);int main()
{int x;while(printf("输入十进制整数:"),scanf("%d",&x)!=EOF){dec_to_n(x,2);dec_to_n(x,8);dec_to_n(x,16);printf("\n");}return 0;
}void dec_to_n(int x,int n)
{int a[N];int i=0,j,m=0;while(x!=0){a[i]=x%n;i++;m++;x=x/n;}for(j=m-1;j>=0;--j){switch(a[j]){case 10:printf("A");break;case 11:printf("B");break;case 12:printf("C");break;case 13:printf("D");break;case 14:printf("E");break;case 15:printf("F");break;default:printf("%d",a[j]);break;}}printf("\n");}

 

image

 任务7

#include<stdio.h>
#define N 100void input(int x[][N],int n);
void output(int x[][N],int n);
int is_magic(int x[][N],int n);int main()
{int x[N][N];int n;while(printf("输入n:"),scanf("%d",&n)!=EOF){printf("输入方阵:\n");input(x,n);printf("输出方阵:\n");output(x,n);if(is_magic(x,n))printf("是魔方矩阵\n\n");elseprintf("不是魔方矩阵\n\n");}return 0;	
}void input(int x[][N],int n)
{int i,j;for(i=0;i<n;++i){for(j=0;j<n;++j)scanf("%d",&x[i][j]);}}void output(int x[][N],int n)
{int i,j;for(i=0;i<n;++i){for(j=0;j<n;++j)printf("%d ",x[i][j]);printf("\n");}}int is_magic(int x[][N],int n)
{int i,j,m,ans1,ans2,ans3,ans4;int a[2*n+2];ans1=ans2=ans3=ans4=0;for(i=0;i<n;++i){int m=0;for(j=0;j<n;++j){ans1+=x[i][j];ans2+=x[j][i];}ans3+=x[i][i];ans4+=x[i][n-1-i];a[m++]=ans1;a[m++]=ans2;}a[m++]=ans3;a[m]=ans4;for(i=0;i<m-1;++i){if(a[i]-a[i+1]!=0)return 0;}int k=1,t=0,p;while(k<=n){for(i=0;i<n;++i){for(j=0;j<n;++j){p=t;if(k*k==x[i][j]){t++;break;}}if(p+1==t)break;}k++;}if(t==n)return 1;else return 0;}

 运行结果不对

image

 

http://www.rkmt.cn/news/45984.html

相关文章:

  • 做题记录 #5
  • 降AI总踩坑?关键看这3点选对工具
  • AI降重避坑指南:如何有效降低论文AI检测率?
  • PyTorch - whats the difference between models training mode and evaluation mode?
  • 【CI130x 离在线】C++ 11智能指针 std::unique_ptr
  • 第21天(简单题中等题 二分查找、排序)
  • 计算不确定度
  • File文件
  • 2025 年 11 月蔬菜配送厂家推荐排行榜,新鲜生鲜水果,有机食堂食材,生鲜蔬菜配送中心,蔬菜配送平台,新鲜蔬菜配送上门公司推荐
  • TensorFlow2 Python深度学习 - TensorFlow2框架入门 - 使用Keras构建逻辑回归
  • 2025年保洁公司权威推荐榜单:驻场保洁/钟点保洁/开荒保洁/外包保洁/商场保洁/办公楼保洁/工厂保洁/医院保洁/企业保洁服务优选指南
  • 今天学的是编译型与解释型的运行流程
  • 2025 年 11 月 PFA 隔膜阀厂家推荐排行榜,PFA 隔膜阀,防腐隔膜阀,高纯隔膜阀,耐酸碱隔膜阀公司推荐
  • Django中使用应用自定义配置
  • 希尔排序快速排序归并排序
  • 2025 年 11 月粘度计厂家推荐排行榜,在线粘度计,旋转粘度计,振动粘度计,实验室旋转粘度计,反应釜在线粘度计公司推荐
  • flask: 用Flask-Uploads实现文件上传
  • 2025 年 11 月冲压件厂家推荐排行榜,新能源冲压件,光伏冲压件,精密冲压件,异形冲压件,五金冲压件,铝冲压件,汽配冲压件,不锈钢冲压件,家具冲压件公司推荐
  • 日总结 24
  • P4511 日程管理
  • 新编故事 | 噪音
  • 20232303 2025-2026-1 《网络与系统攻防技术》实验四实验报告
  • 2025 年 11 月润滑油厂家推荐排行榜,工业润滑油,汽车润滑油,发动机润滑油,甲醇发动机润滑油,全合成润滑油公司精选
  • 172. 阶乘后的零
  • 微服务已死?别再盲目跟风微服务!这3种情况下单体架构更适合你。
  • Oracle LogMiner实战指南:误删误改数据的救命稻草
  • Spring 事务 - 实践
  • Spring AI Alibaba 项目源码学习(二)-Graph 定义与描述分析
  • 20232422 2024-2025-1 《网络与系统攻防技术》实验四实验报告
  • SPI 设备与多从机冲突的解决之道:片选管理、CS 去抖与总线隔离策略 - 实践