for(i=1;i
}
int scoreMin(int a[],int N){ //输出最低成绩的函数 int i,min=a[0]; for(i=1;i
return min; } 13.
#include
float otherSum(float a[3][3]); //计算3×3矩阵的反对角线之和函数的原型 int main(){
float a[3][3] = {{1.12f,2.97f,0.3f},{4.76f,0.05f,1.6f},{7.88f,1.81f,2.9f}}; printf(\矩阵A的反对角线元素之和:%f\\n\ return 0; }
float otherSum(float a[3][3]){ float sum = 0;
int i,j; //控制循环的变量 for(i=0;i<3;i++){ for(j=0;j<3;j++){ if(i==(2-j)){ sum = sum +a[i][j]; } } }
return sum; } 14.
#include
int i=0,j=0,k=0;
float a[3][3] = {{1.12f,2.97f,0.3f},{4.76f,0.05f,1.6f},{7.88f,1.81f,2.9f}}; float b[3][3] = {{1.0f,2.0f,3.0f},{4.0f,5.0f,6.0f},{7.0f,8.0f,9.0f}}; float c[3][3]={0}; for(i=0;i<3;i++){
} 15.
for(j=0;j<3;j++){ for(k=0;k<3;k++){ c[i][j] = c[i][j]+a[i][k]*b[k][j]; } } }
for(i=0;i<3;i++){ for(j=0;j<3;j++){ printf(\ \ }
printf(\}
return 0;
#include
void rowQipao(int a[],int N); int main(){
int i=0,j=0;
int a[3][4] = {{7,2,0,4},{4,2,6,7},{7,8,9,1}}; for(i=0;i<3;i++){ rowQipao(a[i],4); }
for(i=0;i<3;i++){ for(j=0;j<4;j++){ printf(\ \ } printf(\ }
return 0; }
void rowQipao(int a[],int N){ //起泡排序函数,用于数组的每行绩排序 int m,i,t;
for(m = N-1; m>=0;m--) { for(i = 0;i < m;i++){ if(a[i]>a[i+1]){ t = a[i+1]; a[i+1] = a[i]; a[i] = t; } } } }
习题9
1. (C)
2.能通过编译。但为地址值是12的内存赋值,运行有危险,发生系统异常. 3. p+1值是1005,p-2的值是993。 4. 10,8 10,8,80 5. 3,2 2,3 6. 30,-20 7. -20,30 8. 12,16,40 9.
#include
int get(int,int *); //函数原型 int main(){ int count = 0; }
int sum;
sum = get(N,&count); //将count的地址传递给函数,并得到函数的返回值 printf(\之间能被3和7同时除尽的整数的个数是%d\\n\printf(\之间能被3和7同时除尽的整数和是 %d\\n\return 0;
int get(int n,int *p){ int i,sum = 0; } 10.
for(i=1;i<=n;i++){ if((i%3==0 ) && (i%7==0)){ (*p)++; //p间接访问main 函数中的count
sum = sum+i;
} }
return sum;
#include
void getPrimNmber (int,int ,int *) ;//函数原型 int main(){ int count = 0;
getPrimNmber(M,N,&count); //将count的地址传递给函数,并得到函数的返回值 printf(\之间的素数的个数是%d\\n\
return 0; }
void getPrimNmber (int m,int n,int *p){ int i,j;
int isPrimNumber =1; //记录i是否是素数的变量 for(i=m;i<=n;i++){ for(j=2,isPrimNumber=1;j<=i/2;j++){//该循环语句负责寻找i的因子 if(i%j==0){ isPrimNumber = 0; //一旦找到因子,就记录i不是素数 break; //结束内循环(没必要找到多个因子) } } if(isPrimNumber){ (*p)++; //p间接访问main 函数中的count //k++; printf(\ if((*p)%6==0) //打印6个素数之后输出一个回行 printf(\ } } }
习题10
1. (C)
2. 能通过编译,运行有危险,p=p+1;将指针指向数组a最后一个元素的后面,*p = -111;这种赋值就很危险。 3. 500 4.600 5. 5 6. 6
6 100 7.100,300 8. 300
102 9. 5,17 10.
#include
int a[4][3] = {{88,78,77},{69,98,80},{90,88,90},{66,97,95}}; int *p[4]; int i,j;
p[0] =&a[0][0]; p[1] =&a[1][0];
p[2] =&a[2][0]; p[3] =&a[3][0];
for(i=0;i<4;i++){ //排序数组p }
for(j=i+1;j<4;j++){ if(p[j][1]>p[i][1]){ }
}
int * t; t=p[i]; p[i]=p[j]; p[j]=t;
for(i=0;i<4;i++){
for(j=0;j<3;j++){ }
printf(\