C语言 每日一题 PTA 11.2 Day11

简介: C语言 每日一题 PTA 11.2 Day11

1.使用函数求素数和

本题要求实现一个判断素数的简单函数、以及利用该函数计算给定区间内素数和的函数。

素数就是只能被1和自身整除的正整数。注意:1不是素数,2是素数。

函数接口定义

int prime(int p);

int PrimeSum(int m, int n);

其中函数prime当用户传入参数p为素数时返回1,否则返回0;函数PrimeSum返回区间[m, n]内所有素数的和。题目保证用户传入的参数m≤n。


代码实现

int prime(int p)
{
  int flag = 1;
  if (p < 2) {
    flag = 0;
  }
  else {
    int i;
    for (i = 2; i <= sqrt(p); i++) {  //若n为合数,则必有不大于sqrt(n)的因子
      if (p % i == 0) {
        flag = 0;
        break;
      }
    }
  }
  return flag;
}
int PrimeSum(int m, int n)
{
  int p, sum = 0;
  for (p = m; p <= n; p++) {
    if (prime(p) != 0)
      sum += p;
  }
  return sum;
}
#include <stdio.h>
#include <math.h>
int prime(int p);
int PrimeSum(int m, int n);
int main()
{
  int m, n, p;
  scanf("%d %d", &m, &n);
  printf("Sum of ( ");
  for (p = m; p <= n; p++) {
    if (prime(p) != 0)
      printf("%d ", p);
  }
  printf(") = %d\n", PrimeSum(m, n));
  return 0;
}

运行结果

2.选择法排序

本题要求将给定的n个整数从大到小排序后输出。

输入第一行给出一个不超过10的正整数n。第二行给出n个整数,其间以空格分隔。

在一行中输出从大到小有序的数列,相邻数字间有一个空格,行末不得有多余空格。


代码实现

#include<stdio.h>
int main()
{
  int n = 0;
  int i = 0;
  int j = 0;
  int a[10];
  printf("请输入n个整数:");
  scanf("%d", &n);
  for (i = 0; i < n; i++)
  {
    printf("第%d个", i + 1);
    scanf("%d", &a[i]);
  }
  for (i = 0; i < n - 1; i++)
  {
    for (j = 0; j < n - 1 - i; j++)
    {
      int tmp = 0;
      if (a[j] > a[j + 1])
      {
        tmp = a[j + 1];
        a[j + 1] = a[j];
        a[j] = tmp;
      }
    }
  }
  for (i = 0; i < n; i++)
  {
    printf("%d  ", a[i]);
  }
  return 0;
}

运行结果

3.有理数比较

本题要求编写程序,比较两个有理数的大小。

输入格式:

输入在一行中按照“a1 / b1 a2 / b2”的格式给出两个分数形式的有理数,其中分子和分母全是整形范围内的正整数。

输出格式:

在一行中按照“a1 / b1 关系符 a2 / b2”的格式输出两个有理数的关系。其中“ > ”表示“大于”,“ < ”表示“小于”,“ = ”表示“等于”。


解题关键在于强制类型转换

代码实现

int main()
{
  int a1, b1, a2, b2;
  scanf("%d %d %d %d", &a1, &b1, &a2, &b2);
  double num1 = (double)a1 / b1;
  double num2 = (double)a2 / b2;
  if (num1 > num2) {
    printf(">");
  }
  else if (num1 == num2) {
    printf("=");
  }
  else {
    printf("<");
  }
  return 0;
}

运行结果


目录
相关文章
|
4月前
|
存储 C语言 C++
PTA—C语言期末复习(选择题)
PTA—C语言期末复习(选择题)
|
4月前
|
C语言
PTA—C语言期末复习(判断题)
PTA—C语言期末复习(判断题)
|
6月前
|
C语言
pta浙大版《C语言程序设计(第3版)》 习题6-4 使用函数输出指定范围内的Fibonacci数 (20分)
pta浙大版《C语言程序设计(第3版)》 习题6-4 使用函数输出指定范围内的Fibonacci数 (20分)
|
6月前
|
C语言
PTA 浙大版《C语言程序设计(第3版)》题目集 习题8-4 报数 (20分)
PTA 浙大版《C语言程序设计(第3版)》题目集 习题8-4 报数 (20分)
|
6月前
|
C语言
PTA 浙大版《C语言程序设计(第3版)》题目集 习题8-6 删除字符 (20分)
PTA 浙大版《C语言程序设计(第3版)》题目集 习题8-6 删除字符 (20分)
|
6月前
|
C语言
pta 浙大版《C语言程序设计(第3版)》题目集 习题6-6 使用函数输出一个整数的逆序数 (20分)
pta 浙大版《C语言程序设计(第3版)》题目集 习题6-6 使用函数输出一个整数的逆序数 (20分)
|
6月前
|
C语言
C语言部分期末答案(来自PTA)
C语言部分期末答案(来自PTA)
|
6月前
|
存储 C语言
[C语言/PTA] 学生成绩链表处理
[C语言/PTA] 学生成绩链表处理
121 0
|
6月前
|
存储 C语言
[C语言/PTA] 建立学生信息链表
[C语言/PTA] 建立学生信息链表
124 0
|
6月前
|
存储 C语言
[C语言/PTA] 单链表结点删除
[C语言/PTA] 单链表结点删除
111 0