C语言第五次作业

题目7-1 判断素数

1.实验代码:

#include <stdio.h>
#include <math.h>
int main()
{
    int n, i, flag;
    long long x;
    scanf("%d", &n);
    while(n--)
    {
        scanf("%lld", &x);
        flag = 1;
        for(i = 2; i <= sqrt(x); i++)
        {
            if(x % i == 0)
            {
                flag = 0;
                break;
            }
        }
        if(x == 1 || flag == 0)
            printf("No\n");
        else
            printf("Yes\n");
    }
    return 0;
}

2 设计思路:

(1)题目需要我们判断素数,首先我们得知道怎么判断素数,再根据原理写出代码,判断一个整数m是否是素数,只需把 m 被 2 ~ m-1 之间的每一个整数去除,如果都不能被整除,那么 m 就是一个素数,还有更简单的判断方法,只需被 2 ~  之间的每一个整数去除就可以了。如果 m 不能被 2 ~  间任一整数整除,m 必定是素数。例如判别 17 是是否为素数,只需使 17 被 2~4 之间的每一个整数去除,由于都不能整除,可以判定 17 是素数。这里我用第二种办法,首先定义整形变量n,i,flag,再定义long long变量x,再输入x,对x进行上述的判断过程,如果x不是素数,则flag为0,判断,如果x=1或flag=0时,输出no,否则输出yes.

(2)流程图:

3.本题调试过程碰到问题及解决办法:

遗漏了1不是素数,于是在判定输出yes的条件中加一个||x=1

题目7-1 统计一行文本的单词个数

1.实验代码:

 

#include <stdio.h>
int main()
{
    int i, sum = 0, word = 0;
    char string[10000];
    gets(string);
    for (i = 0; string[i] != '\0'; i++)
        if (string[i] == ' ')
            word = 0;
        else if (word == 0)
        {
            word = 1;
            sum++;
        }
    printf("%d\n", sum);
    return 0;
}

2 设计思路:

(1)

 1.这道题可以用数组来解决,首先定义i,sum,word,char string[10000]

 2.用for循环使判断在文本结束前进行

 3.用素组判断文本中字符是否为单词,如果是,sum加一,直到读取结束

(2)流程图:

 

3.本题调试过程碰到问题及解决办法:

 

 错误的将空格的数量定义为单词的数量,应在初始时定义一个word,从字符与空格的关系进行赋值,从而判断s

二、总结和学习进度条

1.这几周学了数组,循环嵌套,数组的用处很多,可以处理很多数据上的问题,同时我还意识到我基础的不牢固,需要更多的练习。

2.点评常文乾链接  定评周硕链接  点评肖晨东链接

3.

 

posted @ 2018-12-24 08:56  张少宏  阅读(199)  评论(4编辑  收藏  举报