实验四
实验四
实验结论
实验任务1
1.源代码
#include<stdio.h> const int N=4; int main() { int a[N]={2,0,2,1}; char b[N]={'2','0','2','1'}; int i; printf("sizeof(int)=%d\n",sizeof(int)); printf("sizeof(char)=%d\n",sizeof(char)); printf("\n"); for(i=0;i<N;i++) printf("%x:%d\n",&a[i],a[i]); printf("\n"); for(i=0;i<N;i++) printf("%x:%c\n",&b[i],b[i]); return 0; }
截图
int型是连续存放,占4个字节;char型是连续存放,占1个字节
2.源代码
#include<stdio.h> int main() { int a[2][3]={{1,2,3},{4,5,6}}; char b[2][3]={{'1','2','3'},{'4','5','6'}}; int i,j; for(i=0;i<2;i++) for(j=0;j<3;j++) printf("%x:%d\n",&a[i][j],a[i][j]); printf("\n"); for(i=0;i<2;i++) for(j=0;j<3;j++) printf("%x:%c\n",&b[i][j],b[i][j]); printf("\n"); return 0; }
截图
int型是连续存放,占4个字节;char型是连续存放,占1个字节
实验任务2
1.源代码
#include<stdio.h> #define N 1000 int fun(int n,int m,int bb[N]) { int i,j,k=0,flag; for(j=n;j<=m;j++) { flag=1; for(i=2;i<j;i++) if(j%i==0) { flag=0; break; } if(flag==1) bb[k++]=j; } return k; } int main() { int n=0,m=0,i,k,bb[N]; scanf("%d",&n); scanf("%d",&m); for(i=0;i<m-n;i++) bb[i]=0; k=fun(n,m,bb); for(i=0;i<k;i++) printf("%4d",bb[i]); return 0; }
截图
实验任务3
1.源代码
#include<stdio.h> const int N=5; int find_max(int x[],int n); void input(int x[],int n); void output(int x[],int n); int main() { int a[N]; int max; input(a,N); output(a,N); max=find_max(a,N); printf("max=%d\n",max); return 0; } void input(int x[],int n) { int i; for(i=0;i<n;i++) scanf("%d",&x[i]); } void output(int x[],int n) { int i; for(i=0;i<n;i++) printf("%d ",x[i]); printf("\n"); } int find_max(int x[],int n) { int i,t=x[0]; for(i=1;i<n;i++) if(x[i]>t) t=x[i]; return t; }
截图
实验任务4
1.源代码
#include<stdio.h> void dec2n(int x,int n); int main() { int x; printf("输入一个十进制整数:"); scanf("%d",&x); dec2n(x,2); dec2n(x,8); dec2n(x,16); return 0; } void dec2n(int x,int n) { int i=0,k; int m=x; while(x>0) { x=x/n; i++; } k=i; int a[k]; for(i=0;i<k;i++) { a[i]=m%n; m=m/n; } for(i=k-1;i>=0;i--) switch(a[i]) { 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[i]); } printf("\n"); }
截图
实验任务5
1.源代码
#include<stdio.h> int main() { int i,j,n; printf("Enter n:"); while(scanf("%d",&n)!=EOF) { int a[n][n]; for(i=0;i<n;i++) for(j=0;j<n;j++) { if(i<j) a[i][j]=i+1; else a[i][j]=j+1; } for(i=0;i<n;i++) { for(j=0;j<n;j++) printf("%d ",a[i][j]); printf("\n"); } printf("\n"); printf("Enter n:"); } return 0; }
截图