C语言集106-111

简介: C语言集106-111

106.小乐乐查找数字


题目描述:


       给定n个整数和一个整数x,小乐乐想从n个整数中判断x出现几次,请编程帮他实现。


输入描述:

共3行
第一行,一个整数,表示n(1 <= n <= 100)。
第二行,共输入n个整数,两个整数之间用空格分隔。
第三行,输入一个整数,表示要查找的整数x。
示例输出:
        5
        1 1 2 1 3
        1


输出描述:

一行,表示整数x出现的次数。
示例输出:3


代码:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
  int n = 0;
  scanf("%d", &n);
  int arr[100] = { 0 };
  int i = 0;
  for (i = 0; i < n; i++)
  {
    scanf("%d", &arr[i]);
  }
  int x = 0;//要查找的数
  int count = 0;//要查找的数字在数组中出现的次数
  scanf("%d", &x);
  for (i = 0; i < n; i++)
  {
    if (arr[i] == x)
      count++;
  }
  printf("%d", count);
  return 0;
}


107.KiKi学程序设计基础


题目描述:


BoBo老师教了KiKi学习程序设计基础,他知道C++是带类的C语言,这个“++”主要包含三部分内容:对C语言进行语法上的扩展、面向对象(封装、继承和多态),STL(即模板)。这学期KiKi学习了C和C++,学好他们,其他编程语言都可以很轻松掌握。C和C++的输入有区别,请帮KiKi输出C和C++输出Hello world的代码。


输入描述:


输出描述:

示例输出:
        printf("Hello world!\n");
        cout << "Hello world!" << endl;


代码:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
  printf("printf(\"Hello world\\n\");\n");
  printf("cout << \"Hello world!\" << endl;");
  return 0;
}


108.KiKi求质数的个数


题目描述:


       KiKi知道了什么是质数(只能被1和他自身整除的数),他现在想知道所有三位整数中,有多少个质数。


输入描述:


输出描述:

一行,一个整数,表示所有三位整数中,有多少个质数。


代码:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<math.h>
int is_prime(int n)
{
  int j = 0;
  for (j = 2; j < n ; j++)
  {
    if (n % j == 0)
      return 0;
  }
  return 1;
}
int main()
{
  int i = 0;
  int count = 0;
  for (i = 100; i < 1000; i++)
  {
    if (is_prime(i) == 1)
      count++;
  }
  printf("%d", count);
  return 0;
}


109.KiKi去重整数并排序


题目描述:


       给定一个整数序列,KiKi想把其中的重复的整数去掉,并将去重后的序列从小到大排序输出。


输入描述:

第一行,输入一个整数n,表示序列有n个整数。
第二行输入n个整数(每个整数大于等于1,小于等于1000),整数之间用空格分隔。
示例输出:
        6
        5 3 3 4 2 2


输出描述:

去重并且从小到大排列的整数序列,整数之间用空格分隔。
示例输出:2 3 4 5


代码:

//方法一:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
  int n = 0;
  int arr[1000] = { 0 };
  scanf("%d", &n);
  //接受
  int i = 0;
  for (i = 0; i < n; i++)
  {
    scanf("%d", &arr[i]);
  }
  //1.排序 - 冒泡排序
  for (i = 0; i < n - 1; i++)//趟数
  {
    int j = 0;
    for (j = 0; j < n - i - 1; j++)//
    {
      if (arr[j] > arr[j + 1])
      {
        int tmp = arr[j];
        arr[j] = arr[j + 1];
        arr[j + 1] = tmp;
      }
    }
  }
  //2.去重
  //去重比较的对数n-1
  for (i = 0; i < n - 1; i++)
  {
    if (arr[i] == arr[i + 1])
    {
      //把从i+1下标往后的元素全部往后覆盖
      int k = 0;
      for(k = i; k < n - 1; k++)
      {
        arr[k] = arr[k+1];
      }
      n--;
      i--;
    }
  }
  //3.打印
  for (i = 0; i < n; i++)
  {
    printf("%d ", arr[i]);
  }
  return 0;
}
//方法二
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
  int n = 0;
  scanf("%d", &n);
  int arr[1001] = { 0 };
  int i = 0;
  int m = 0;
  for(i=0;i<n;i++)
  {
    scanf("%d", &m);
    arr[m] = m;
  }
  for (i = 0; i < 1001; i++)
  {
    if (arr[i] != 0)
    {
      printf("%d ", arr[i]);
    }
  }
  return 0;
}


110.KiKi学结构体和指针


题目描述:


KiKi学习了结构体和指针,他了解了结构体类型可以定义包含多个不同类型成员,而指针本质是内存地址,是引用数据的另外一种方式。现在他想将多个输入的数据通过结构体和指针的方式连接在一起,形成一个单向链表,即:每个结点是结构体类型,包括整型数据成员(data)和结构体指针类型成员(next),每个结点的指针部分指向下一个输入的结点。具体建立过程如下:先输入n个整数,按照数据输入的顺序建立一个带头结点的单链表,再输入一个数据m,将单链表中的值为m的结点全部删除。输出删除后的单链表信息。


输入描述:

包括三行:
第一行输入数据个数n (3≤n≤100);
第二行依次输入n个整数,用空格分隔;
第三行输入欲删除数据m。
示例输出:
        5
        1 2 2 3 4
        2


输出描述:

包括两行:
第一行输出完成删除后的单链表长度;
第二行依次输出完成删除后的单链表数据。
示例输出:
        3
        1 3 4


代码:

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
typedef struct linklist
{
    struct linklist* next;
    int data;
}LNode;
int main()
{
    LNode* L = (LNode*)malloc(sizeof(LNode)), * p, * pre;
    L->next = NULL;
    pre = L;
    int n, i;
    scanf("%d", &n);
    for (i = 0; i < n; i++)
    {
        p = (LNode*)malloc(sizeof(LNode));
        scanf("%d", &(p->data));
        pre->next = p;
        p->next = NULL;
        pre = p;
    }
    int del, del_count = 0;
    scanf("%d", &del);
    p = L->next; pre = L;
    while (p)
    {
        if (p->data == del)
        {
            pre->next = p->next;
            free(p);
            p = pre->next;
            del_count++;
        }
        else
        {
            pre = p;
            p = p->next;
        }
    }
    printf("%d\n", n - del_count);
    p = L->next;
    printf("%d", p->data);
    p = p->next;
    while (p)
    {
        printf(" %d", p->data);
        p = p->next;
    }
    putchar(10);
    pre = L; p = L->next;
    while (p)
    {
        free(pre);
        pre = p;
        p = p->next;
    }
    free(pre);
    return 0;
}


111.KiKi定义电子日历类


题目描述:


       KiKi学习了面向对象技术,学会了通过封装属性(变量)和行为(函数)定义类,现在他要设计一个电子日历类TDate。


它有3个私有数据成员:Month,Day,Year和若干个公有成员函数,要求:


(1)带有默认形参值的构造函数,默认值为0, 0, 0;

(2)输出日期函数,用“日/月/年”格式输出日期;

(3)设置日期函数,从键盘输入年、月、日。


输入描述:

一行,三个整数,用空格分隔,分别表示年、月、日。
示例输出:2019 12 30


输出描述:

一行,用“日/月/年”格式输出日期。
示例输出:30/12/2019


代码:

#include<iostream>
using namespace std;
    class TDate {
      private:
        int Year;
        int Month;
        int Day;
      public:
        TDate(int y = 0, int m = 0, int d = 0) {
            Year = y;
            Month = m;
            Day = d;
        }
        void print() {
            cout << Day << '/' << Month << '/' << Year << endl;
        }
    };
int main() {
    int year = 0;
    int month = 0;
    int day = 0;
    //输入
    cin >> year >> month >> day;
    TDate d(year, month, day);
    //输出
    d.print();
    return 0;
}
相关文章
|
7月前
|
自然语言处理 编译器 C语言
C语言:练习
C语言:练习
58 0
|
C语言
C语言练习
C语言练习。
72 1
|
网络协议 Java 程序员
C语言
一、什么是C语言 C语言是一种通用的高级编程语言,由美国计算机科学家丹尼斯·里奇于1972年在贝尔实验室开发。C语言以其简洁、高效和可移植性而闻名,广泛应用于系统软件、应用软件和嵌入式系统等领域。 C语言具有简单的语法和丰富的库函数,使得程序员能够更有效地编写代码,并具有更好的可读性和可维护性。它支持面向过程的编程风格,允许开发者直接操作内存,提供了强大的指针功能,使得对内存的管理更加灵活。 C语言被广泛应用于操作系统、编译器、数据库、网络协议、游戏开发等领域。许多其他编程语言,如C++、Java和Python等,都受到C语言的影响,并在其基础上发展而来。 二、C语言的特点 C语言具有以下几个
72 0
|
2月前
|
Unix 程序员 C语言
初识C语言
C语言源于1972年,由贝尔实验室的丹尼斯·里奇和肯·汤普逊在开发UNIX操作系统过程中设计。它基于B语言改进而成,旨在成为一种实用的编程工具。尽管许多语言追求教育或易用性目标,但专为程序员设计的C语言,如今已成为主流编程语言之一。
28 8
|
7月前
|
自然语言处理 算法 Linux
C语言:深入探索与实际应用
C语言,作为计算机科学基石,以其通用性、过程式编程和底层访问能力在系统编程、嵌入式开发等领域广泛应用。其支持结构化编程、变量作用域和递归,提供高效代码编写方式。数据类型(如整型、浮点型、字符型)、控制结构(如if-else、循环)、函数和指针是C语言的关键特性。指针允许直接操作内存,增强了灵活性。C语言在操作系统(如Linux内核)、嵌入式系统、游戏开发及数据结构与算法实现中扮演重要角色,是理解和学习其他编程语言的基础。通过深入学习C语言,开发者可以提升技能,适应各种编程挑战。
|
7月前
|
存储 人工智能 编译器
C语言:练习5
C语言:练习5
58 2
|
7月前
|
Java 程序员 编译器
什么是C语言
什么是C语言
152 0
|
Java 编译器 C语言
初识C语言(1)
初识C语言(1)
86 0
|
存储 C语言 C++
初识C语言(3)
初识C语言(3)
125 0
|
C语言
C语言课前准备
C语言课前准备
37 0