7-1,判断素数

1.实验代码:

#include<stdio.h>
#include<math.h>
int main()
{
    int i, N, m, q;
    scanf("%d", &N);    
    for(q=1; q<=N; q++){ 
    scanf("%d", &m);
    for(i=2; i<=sqrt(m); i++)
     if(m % i == 0)
      break;
    if(i>sqrt(m) && m !=1)
    printf("Yes\n");
    else
    printf("No\n");
}
    return 0; 
 } 

2.设计思路

(1)文字描述:

第一步:定义变量i,i,n,m,q

第二步:用q控制连续 输入N个值,用i来判断输入值m是否为素数

第三步:输出yes或no 结束程序

(2)流程图:

3.本题调试过程遇到的问题及解决办法

 

遇到的问题:两个“=”号之间有空格,另外本题用i到m/2来的数判断m是否是素数会运行超时

解决办法:去掉两个等于号之间的空格; 改用到根号m来判断则能解决这一问题

7-3 交换最大值最小值

1.实验代码

#include <stdio.h>
main()
{
    int N,i,x,d,min,max,q;
    int a[10];
    scanf("%d",&N);
    for(i=0;i<N;i++)
    {
        scanf("%d",&a[i]);
    }
    min=max=a[0];
    for(i=0;i<N;i++)
    {
        if(a[i]<=min)
          {
              min=a[i];
              q=i;
          }
    }
    x=a[0];
    a[0]=min;
    a[q]=x;
    for(i=0;i<N;i++)
    {
        if(a[i]>=max)
          {
              max=a[i];
              q=i;
          }
    }
    d=max;
    a[q]=a[N-1];
    a[N-1]=d;
    for(i=0;i<N;i++)
    printf("%d ",a[i]);
    return 0;
}

2.设计思路

(1)文字描述:

第一步:定义变量n,i,x,d,min,max,q,定义数组a[10]

第二步:用i来控制寻找N个数的中的最大值最小值的下标,min和max分别作为最小值最大值的载体,用q作为中间变量来承载最大值最小值下标的转换

第三步:找最小值,找最大值,然后进行分别与第一个数和最后一个数的替换

第四步:一次按顺序输出N个数 结束程序

总而言之整体思路就是先找出最小值和最大值再分别与第一个数和最后一个数交换

(2)流程图:

3.遇到的问题及解决办法

 

问题:在对最小值和最大值的载体min和max进行赋初值时习惯性赋值为0忽略了本题应从输入的数中选数赋值,相互比较才能找出最小值和最大值

解决办法:将min和max的初值均赋值为数组的第一个数

 二,总结学习进度条

1.本周我们主要学习了数组,了解了什么是数组以及学习了一维数组,二维数组的使用,对数字数组掌握得还可以,但对字符数组以及字符串有点迷迷糊糊 还无法做到运用

2.王肖作业     王强作业    陈禹翰作业

3.