📄 上半学期.txt
字号:
for(j=0;j<4;j++)
scanf("%d",&B[i][j]);
printf("matrix A:\n");
for(i=0;i<4;i++)
{for(j=0;j<3;j++)
printf("%6d",A[i][j]);
printf("\n");}
printf("matrix B:\n");
for(i=0;i<3;i++)
{for(j=0;j<4;j++)
printf("%6d",B[i][j]);
printf("\n");}
for(j=0;j<3;j++)
for(k=0;k<3;k++)
for(i=0;i<4;i++)
C[j][k]=C[j][k]+B[j][i]*A[i][k];
for(j=0;j<4;j++)
for(k=0;k<4;k++)
for(i=0;i<3;i++)
D[j][k]=D[j][k]+A[j][i]*B[i][k];
printf("matrix C:\n");
for(i=0;i<3;i++)
{for(j=0;j<3;j++)
printf("%6d",C[i][j]);
printf("\n");}
printf("matrix D:\n");
for(i=0;i<4;i++)
{for(j=0;j<4;j++)
printf("%6d",D[i][j]);
printf("\n");}
getchar();
getchar();}
/*字符串排序*/
#include<stdio.h>
#include<string.h>
main()
{char str[10][10];int i,j;char t[10];
printf("please input 10 cities.\n");
for(i=0;i<10;i++)
gets(str[i]);
printf("\nThe right turn is:\n");
for(i=0;i<9;i++)
for(j=0;j<9-i;j++)
if(strcmp(str[j],str[j+1])>0)
{strcpy(t,str[i]);strcpy(str[i],str[i+1]);strcpy(str[i+1],t);}
for(i=0;i<10;i++)
puts(str[i]);
getchar();
getchar();
}
/*求方阵的迹和行列式*/
#include<stdio.h>
main()
{float A[4][4];int i,j,k,p,q,r,t,s;float TrA=0,detA=0,a;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
scanf("%f",&A[i][j]);
printf("square matrix A:\n");
for(i=0;i<4;i++)
{for(j=0;j<4;j++)
printf("%6.2f ",A[i][j]);
printf("\n");}
printf("TrA=");
for(i=0;i<4;i++)
TrA=TrA+A[i][i];
printf("%6f\n",TrA);
printf("detA=");
for(i=0;i<4;i++)
for(j=0;j<4;j++)
for(k=0;k<4;k++)
for(p=0;p<4;p++)
if(i!=j&&i!=k&&i!=p&&j!=k&&j!=p&&k!=p)
{int x[4];
x[0]=i;x[1]=j;x[2]=k;x[3]=p;
a=A[0][i]*A[1][j]*A[2][k]*A[3][p];
s=0;
for(q=0;q<3;q++)
for(r=0;r<3-q;r++)
if(x[r]>x[r+1])
{t=x[r];x[r]=x[r+1];x[r+1]=t;s++;}
if(s%2) detA=detA-a;
else detA=detA+a;}
printf("%6f",detA);
getchar();
getchar();}
/*n!函数*/
#include<stdio.h>
long int fn(int n)
{long int z;
if(n==0||n==1) z=1;
else z=n*fn(n-1);
return(z);}
main()
{int n;
long int fn(int n);
scanf("%d",&n);
printf("%d!=%ld",n,fn(n));
getchar();
getchar();
}
/*找素数函数*/
#include<stdio.h>
int flag(int n)
{int z=1,i;
for(i=2;i<n;i++)
if(n%i==0){z=0;break;}
return(z);
}
main()
{int flag(int n);
int n;
scanf("%d",&n);
if(flag(n)) printf("%d is sushu.\n",n);
else printf("%d is heshu.\n",n);
getchar();
getchar();
}
/*矩阵加法函数1(占用同一片内存空间)*/
#include<stdio.h>
void matrixadd(int a[2][3],int b[2][3],int c[2][3])
{
int i,j;
for(i=0;i<2;i++)
for(j=0;j<3;j++)
c[i][j]=a[i][j]+b[i][j];
}
main()
{int a[2][3];int b[2][3];int c[2][3];int i,j;
void matrixadd(int a[2][3],int b[2][3],int c[2][3]);
printf("please input matrix a:\n");
for(i=0;i<2;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
printf("please input matrix b:\n");
for(i=0;i<2;i++)
for(j=0;j<3;j++)
scanf("%d",&b[i][j]);
matrixadd(a,b,c);
for(i=0;i<2;i++)
{for(j=0;j<3;j++)
printf("%d ",c[i][j]);
printf("\n");}
getchar();
getchar();
}
/*矩阵加法函数2外部变量*/
#include<stdio.h>
int c[2][3];
void matrixadd(int a[2][3],int b[2][3])
{
int i,j;
for(i=0;i<2;i++)
for(j=0;j<3;j++)
c[i][j]=a[i][j]+b[i][j];
}
main()
{int a[2][3];int b[2][3];int i,j;
void matrixadd(int a[2][3],int b[2][3]);
printf("please input matrix a:\n");
for(i=0;i<2;i++)
for(j=0;j<3;j++)
scanf("%d",&a[i][j]);
printf("please input matrix b:\n");
for(i=0;i<2;i++)
for(j=0;j<3;j++)
scanf("%d",&b[i][j]);
matrixadd(a,b);
for(i=0;i<2;i++)
{for(j=0;j<3;j++)
printf("%d ",c[i][j]);
printf("\n");}
getchar();
getchar();}
/*202页8.14学生成绩平均分、科目成绩平均分、最高分*/
#include<stdio.h>
void average1(float a[4][5],float c[4])
{int i,j;
for(i=0;i<4;i++)
{c[i]=0;
for(j=0;j<5;j++)
c[i]=c[i]+a[i][j];
c[i]=c[i]/5;}
}
void average2(float b[5][4],float d[5])
{int i,j;
for(i=0;i<5;i++)
{d[i]=0;
for(j=0;j<4;j++)
d[i]=d[i]+b[i][j];
d[i]=d[i]/4;}
}
void mtrans(float a[4][5],float b[5][4])
{int i,j;
for(i=0;i<4;i++)
for(j=0;j<5;j++)
b[j][i]=a[i][j];
}
float mtop(float a[4][5])
{float z;int i,j;
z=a[0][0];
for(i=0;i<4;i++)
for(j=0;j<5;j++)
if(z<a[i][j]) z=a[i][j];
return(z);
}
void mtopprintf(float a[4][5],float z)
{int i,j;
for(i=0;i<4;i++)
for(j=0;j<5;j++)
if(z==a[i][j]) printf("max is a[%d][%d]=%f\n",i,j,z);
}
main()
{void average1(float a[4][5],float c[4]);
void average2(float b[5][4],float d[5]);
void mtrans(float a[4][5],float b[5][4]);
float mtop(float a[4][5]);
void mtopprintf(float a[4][5],float z);
float a[4][5];float b[5][4];
float c[4];float d[5];
int i,j;float p;
printf("please input the mark:\n");
for(i=0;i<4;i++)
for(j=0;j<5;j++)
scanf("%f",&a[i][j]);
average1(a,c);
for(i=0;i<4;i++)
printf("The average mark of person %d is %f\n",i,c[i]);
mtrans(a,b);
average2(b,d);
for(j=0;j<5;j++)
printf("The average mark of course %d is %f\n",j,d[j]);
p=mtop(a);
mtopprintf(a,p);
getchar();
getchar();
getchar();
}
/*函数嵌套调用:用弦截法求根*/
#include<stdio.h>
#include<math.h>
float f(float x)
{float y;
y=x*x*x-5*x*x+16*x-80;
return(y);}
float xpoint(float x1,float x2)
{float z;
z=(x1*f(x2)-x2*f(x1))/(f(x2)-f(x1));
return(z);}
main()
{float f(float x);
float xpoint(float x1,float x2);
float x1,x2,x,y;
do{scanf("%f%f",&x1,&x2);}
while(f(x1)*f(x2)>=0);
do{x=xpoint(x1,x2);
y=f(x);
if(y*f(x1)>0) x1=x;
else x2=x;}
while(fabs(y)>0.0000001);
printf("The root is %f.\n",x);
getchar();
getchar();
}
/*hanoi问题*/
#include<stdio.h>
void move(char x,char y)
{printf("%c-->%c\n",x,y);}
void hanoi(int n,char a,char b,char c)
{if(n==1) move(a,c);
else {hanoi(n-1,a,c,b);move(a,c);hanoi(n-1,b,a,c);}}
void main()
{int n;
void move(char x,char y);
void hanoi(int n,char a,char b,char c);
printf("please input the number:\n");
scanf("%d",&n);
printf("The steps is:\n");
hanoi(n,'A','B','C');
getchar();
getchar();
}
/*一元二次方程求根函数*/
#include<stdio.h>
#include<math.h>
float a,b,c,disc,x1,x2;
main()
{void root1();
void root2();
void root3();
printf("please input a,b,c:");
scanf("%f%f%f",&a,&b,&c);
if(a==0)
printf("detaerror\n");
else{
disc=b*b-4*a*c;
if(disc>0) root1();
else{if(disc==0) root2();
else root3();}
}
getchar();
getchar();
getchar();
}
void root1()
{x1=(-b+sqrt(disc))/(2*a);
x2=(-b-sqrt(disc))/(2*a);
printf("roots: x1=%6f,x2=%6f",x1,x2);}
void root2()
{x1=x2=(-b)/(2*a);
printf("roots: x1=%6f,x2=%6f",x1,x2);}
void root3()
{float p,q;
p=(-b)/(2*a);q=(sqrt(-disc))/(2*a);
printf("roots: x1=%6f+%6fi,x2=%6f-%6fi",p,q,p,q);}
/*寻找两个数的最小公倍数和最大公约数*/
#include<stdio.h>
main()
{int zdgy(int u,int v);
int zxgb(int u,int v,int d);
int u,v;
printf("please input u&v:");
scanf("%d%d",&u,&v);
if(u<=0||v<=0) printf("detaerror\n");
else printf("(u,v)=%d [u,v]=%d",zdgy(u,v),zxgb(u,v,zdgy(u,v)));
getchar();
getchar();
getchar();
}
int zdgy(int u,int v)
{int i,t,r;
if(u<v) {t=v;v=u;u=t;}
for(i=1;(r=u%v)!=0;i++)
{u=v;v=r;}
return(v);}
int zxgb(int u,int v,int d)
{return(u*v/d);}
/*给出年月日求是着一年的第几天*/
#include<stdio.h>
main()
{int count(int month,int day);
int leap(int year);
int year,month,day,days;
printf("please input the date:");
scanf("%d%d%d",&year,&month,&day);
days=count(month,day);
if(leap(year)&&month>2) days+=1;
printf("%d.%d.%d is the %dth day of the year\n",year,month,day,days);
getchar();
getchar();}
int count(int month,int day)
{int i,z;int a[12]={31,28,31,30,31,30,31,31,30,31,30,31};
z=day;
for(i=0;i<month-1;i++) z+=a[i];
return(z);}
int leap(int year)
{int y=0;
if(year%4==0&&year%100!=0||year%400==0) y=1;
return(y);}
/*202页8.7双线结构*/
#include<stdio.h>
main()
{char c[50],d[50];
void copy(char c[],char d[]);
printf("please input string:");
gets(c);
copy(c,d);
printf("the result is ");
puts(d);
getchar();
getchar();
getchar();}
void copy(char c[],char d[])
{int i,j=0;
for(i=0;c[i]!='\0';i++)
if(c[i]=='a'||c[i]=='e'||c[i]=='i'||c[i]=='o'||c[i]=='u'
||c[i]=='A'||c[i]=='E'||c[i]=='I'||c[i]=='O'||c[i]=='U')
{d[j]=c[i];j++;}
d[j]='\0';}
/*string反序存放:换序方法*/
#include<stdio.h>
#include<string.h>
main()
{void change(char c[]);
char c[20];
printf("please input the string:");
gets(c);
change(c);
printf("the changed string is ");
puts(c);
getchar();
getchar();
getchar();}
void change(char c[])
{
int i,s;char t;
s=strlen(c);
for(i=s-1;i>=s/2;i--)
{t=c[i];c[i]=c[s-1-i];c[s-1-i]=t;}
}
/*职工信息表*/
#include<stdio.h>
#include<string.h>
#define N 10
void inputall(char a[][N],char b[][N],char c[][N],int n)
{int i;
for(i=0;i<n;i++)
{printf("please input name,worknumber and phonenumber\n");
gets(a[i]);gets(b[i]);gets(c[i]);}}
void output(char c[][N],int n)
{int i;
for(i=0;i<n;i++) printf("%8s ",c[i]);}
void outputall(char a[][N],char b[][N],char c[][N],int m)
{printf(" name : ");output(a,m);printf("\n");
printf("worknumber : ");output(b,m);printf("\n");
printf("phonenumber: ");output(c,m); printf("\n");}
void sort(char c[][N],char c1[][N],char c2[][N],int n)
{int i,j;
char a[N],a1[N],a2[N];
for(i=0;i<n-1;i++)
for(j=0;j<n-i-1;j++)
if(strcmp(c[j],c[j+1])>0)
{strcpy(a,c[j]);strcpy(c[j],c[j+1]);strcpy(c[j+1],a);
strcpy(a1,c1[j]);strcpy(c1[j],c1[j+1]);strcpy(c1[j+1],a1);
strcpy(a2,c2[j]);strcpy(c2[j],c2[j+1]);strcpy(c2[j+1],a2);}
}
void search(char t[N],char c[][N],char c1[][N],char c2[][N],int n)
{int i;
for(i=0;i<n;i++)
if(strcmp(t,c[i])==0)
printf("%s %s %s\n",c[i],c1[i],c2[i]);
}
main()
{int i,j;
char d[N],e[N],f[N];
char name[5][N],worknumber[5][N],phonenumber[5][N];
inputall(name,worknumber,phonenumber,5);
outputall(name,worknumber,phonenumber,5);
/*按职工名字排序,同时电话号、职工号随之调整*/
printf("sorted in name:\n");
sort(name,worknumber,phonenumber,5);
outputall(name,worknumber,phonenumber,5);
/*按职工号排序,同时电话号、职工名字随之调整*/
printf("sorted in worknumber:\n");
sort(worknumber,name,phonenumber,5);
outputall(name,worknumber,phonenumber,5);
/*输入职工名字查找电话号、职工号*/
printf("please input the name\n");
gets(d);
search(d,name,worknumber,phonenumber,5);
/*输入职工号查找电话号、职工名字*/
printf("please input the worknumber\n");
gets(d);
search(d,worknumber,name,phonenumber,5);
/*输入电话号查找职工名字、职工号*/
printf("please input the phonenumber\n");
gets(d);
search(d,phonenumber,worknumber,name,5);
getchar();
getchar();
getchar();
getchar();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -