2019年春季学期第四周作业
一、本周完成的作业:
挑战题7-1:
1).实验代码
#include<stdio.h>
int main(void)
{
int a[10],i,j,n,temp;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(j=0;j<n-1;j++){
for(i=0;i<n-j-1;i++){
if(a[i]<a[i+1]){
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
}
}
}
printf("%d",a[0]);
for(i=1;i<n;i++)
printf(" %d",a[i]);
return 0;
}
2) 设计思路
将前面一个数和后面一个数比较,如果后面的数大,就将2个数调换顺序,然后依次循环,就可以达到从大到小的排序了。
3).本题调试过程碰到问题及解决办法
没什么问题
4).运行结果截图
基础题5-1:
1).实验代码
#include <stdio.h> int main(void) { int found, i, k, n; int a[10][10]; scanf ("%d", &n); for (i = 0; i < n; i++) for (k = 0; k < n; k++) scanf("%d", &a[i][k]); found = 1; for (i = 0; i < n; i++){ for (k = 0; k < i; k++){ if ((3分)) { ; break; } } if (){ break; } } if (found != 0){ printf("Yes\n"); } else{ printf("No\n"); } return 0; }
2).设计思路
这个填空题只需要判断a[i][k]等不等于a[k][i],即所有元素是否沿着主对角线对称,不相等即赋值found=0;最后判断found是否等于0,等于0则输出No,反之输出yes
3).本题调试过程碰到问题及解决办法
没有问题
基础题7-1:
1).实验代码
#include<stdio.h>
int main() {
int n=0, i, j, min, max, tmp, flag=0;
scanf("%d",&n);
int arr[n][n], index[n];
for(i=0; i<n; i++){
for(j=0; j<n; j++){
scanf("%d",&arr[i][j]);
if(j==0) max=arr[i][j];
if(max<=arr[i][j]){
max=arr[i][j];
index[i]=j;
}
}
}
for(j=0; j<n; j++){
for(i=0; i<n; i++){
if(i==0) min=arr[i][j];
if(min>=arr[i][j]){
min=arr[i][j];
tmp=i;
}
}
if(j==index[tmp]){
printf("%d %d", tmp ,j);
flag=1;
break;
}
}
if(flag==0)printf("NONE");
return 0;
}
4).运行结果截图
基础题7-2:
1).实验代码
#include<stdio.h>
int main (void)
{
int i,max,k,n,temp;
int a[10];
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(k=0;k<n-1;k++){
max=k;
for(i=k+1;i<n;i++)
if(a[i]>a[max])
max=i;
temp=a[max];
a[max]=a[k];
a[k]=temp;
}
printf("%d",a[0]);
for(i=1;i<n;i++)
printf(" %d",a[i]);
return 0;
}
2) 设计思路
这个题用选择排序法,选择排序法就是在未排序的n个数中找到最大数,然后将它与第一个数字交换位置,然后再在剩下未排序的n-1个数中重复上述步骤,依次循环就可以得到从大到小的顺序了。
3).本题调试过程碰到问题及解决办法
这个题书上也有类似的题目,看看书做,没什么问题