第四次作业

作业要求https://edu.cnblogs.com/campus/hljkj/CS201801/homework/2523

观看mooc

1 视频截图

 

 

 

2 通过观看视频我明白了

1)数组作为函数参数时,往往必须再用另一个参数来传入数组的大小。

2)判断素数还可以构造素数表来解决。

3)在代码中加大括号可以用来调试。

3.   对于视频中那些关于指针的还不太明白,并且对素数的相关程序掌握的还不够熟练。

 

7-2 求最大值及其下标 (20 分)

本题要求编写程序,找出给定的n个数中的最大值及其对应的最小下标(下标从0开始)。

输入格式:

输入在第一行中给出一个正整数n(1<n10)。第二行输入n个整数,用空格分开。

输出格式:

在一行中输出最大值及最大值的最小下标,中间用一个空格分开。

试题代码

#include<stdio.h>
int main(void)
{
  int n,i,index;
  int a[10];
  index = 0;
  scanf("%d",&n);
  for(i=0;i<n;i++)
 {
   scanf("%d",&a[i]);
 }
  for(i=0;i<n;i++)
  {
     if(a[0]<a[i])
{
      a[0] = a[i];
      index=i;
}
}
  printf("%d %d",a[0],index);
return 0;
}

  解题思路

1 定义n,i,index; n是用户输入的整数的个数。

2 输出最大值与它对应的下标。

3 将最大值与第一个数交换,输出交换后的n个数。

程序流程图

 

 

 

 总结:

此题所遇到的问题:在数组中,要注意i是从0开始的。

运行结果

 

 

调试截图

 

7-2 输出所有大于平均值的数 (15 分)

本题要求编写程序,将输入的n个整数存入数组a中,然后计算这些数的平均值,再输出所有大于平均值的数。

输入格式:

输入在第1行中给出一个正整数n(1n10),第2行输入n个整数,其间以空格分隔。题目保证数据不超过长整型整数的范围。

输出格式:

输出在第1行给出平均值,保留2位小数。在第2行输出所有大于平均值的数,每个数的后面有一个空格;如果没有满足条件的数,则输出空行。

如果输入的n不在有效范围内,则在一行中输出"Invalid."。

试题代码

#include<stdio.h>
int main(void)
{
  int i,n;
  double average,sum=0;
  scanf("%d",&n);
  int a[n];
  sum=0;
  if(n < 1||n>10){printf("Invalid.");}
  else{
   for(i=0;i<n;i++){
    scanf("%d",&a[i]);
    sum=sum+a[i];
  }
  average=sum/n;
  printf("%.2f\n",average);
  for(i=0;i<n;i++){
    if(a[i]>average)
    printf("%d ",a[i]);
   }
 }
   printf("\n");
  return 0;
}

  解题思路

1定义变量 i,n, average,sum;average存放平均值,sum保存数据之和。

2 利用for循环求平均值。

3逐个与平均值比较,输出大于平均值的数。

程序流程图

 

运行结果

 

 调试截图

个人总结:

这周学习了数组,明白了使用数组可以让一批相同类型的变量使用同一个数组变量名,用下标来相互区分,优点是表达简洁,可读性好,便于使用循环结构,但使用时一定要注意是从a[0]开始。通过这周努力的学习,我相信自己一定可以更好地学习c语言了。

 

 学习进度

点评作业:

https://www.cnblogs.com/zst1/p/10133338.html

https://www.cnblogs.com/zhaoxuan/p/10165311.html

3https://www.cnblogs.com/mayijing/p/10158728.html

 

 

 

 

posted @ 2018-12-24 19:01  陈雨薇  阅读(2094)  评论(13编辑  收藏  举报