C语言习题

简介: C语言习题

1.有序序列的判断

输入一个整数序列,判断是否是有序序列,有序,指序列中的整数从小到大排序或者从大到小排序(相同元素也视为有序)。

#include <stdio.h>
int main()
{
    int n=0;
    scanf("%d",&n);
    int i=0;
    int arr[n];
    for(i=0;i<n;i++)
    {
        scanf("%d",&arr[i]);
    }
    int f1=0;
    int f2=0;
    for(i=0;i<n-1;i++)
    {
        if(arr[i]>=arr[i+1])
        {
            f1=1;
        }
        else if(arr[i]<arr[i+1])
        {
            f2=1;
        }
    }
    if(f1+f2==1)
    {
        printf("sorted");
    }
    if(f1+f2==2)
    {
        printf("unsorted");
    }
    return 0;
}

(1)判断一个数组是否有序,可以是升序,也可以是降序,比较复杂,这个方法巧妙地引入了变量f1

和f2,初始化为0;

(2)升序时,使用for循环两两比较,前者大于后者,则f1=1,前者小于后者,则f2=1;

如果升序,循环结束的时候,f1=0,f2=1,两者的和是1;

如果降序,循环结束的时候,f1=1,f2=0,两者的和是1;

这个时候,均是有序的序列;

否则,就会造成f1+f2和是2,就不是有序序列;

(3)如果序列里面的数字全部相同,就应该也是有序的,所以我们只需要在下面的这个判断条件

里面加相等的条件,加在if或者else if都是可以的,我选择加在if语句上面;

       if(arr[i]>=arr[i+1])

       {

           f1=1;

       }

       else if(arr[i]<arr[i+1])

       {

           f2=1;

       }

相关文章
|
2月前
|
C语言
【C语言】循环结构程序设计(第二部分 -- 习题讲解)
【C语言】循环结构程序设计(第二部分 -- 习题讲解)
|
2月前
|
编译器 C语言
C语言习题----不同版本的差别
C语言习题----不同版本的差别
12 0
|
2月前
|
C语言
C语言-----习题
C语言-----习题
17 0
|
3天前
|
C语言
PTA 浙大版《C语言程序设计(第3版)》题目集 习题8-4 报数 (20分)
PTA 浙大版《C语言程序设计(第3版)》题目集 习题8-4 报数 (20分)
|
3天前
|
C语言
pta浙大版《C语言程序设计(第3版)》 习题6-4 使用函数输出指定范围内的Fibonacci数 (20分)
pta浙大版《C语言程序设计(第3版)》 习题6-4 使用函数输出指定范围内的Fibonacci数 (20分)
|
3天前
|
C语言
PTA 浙大版《C语言程序设计(第3版)》题目集 习题8-6 删除字符 (20分)
PTA 浙大版《C语言程序设计(第3版)》题目集 习题8-6 删除字符 (20分)
|
3天前
|
C语言
pta 浙大版《C语言程序设计(第3版)》题目集 习题6-6 使用函数输出一个整数的逆序数 (20分)
pta 浙大版《C语言程序设计(第3版)》题目集 习题6-6 使用函数输出一个整数的逆序数 (20分)
|
3天前
|
C语言
(浙大版《C语言程序设计(第3版)》 习题6-5 使用函数验证哥德巴赫猜想 (20分)
(浙大版《C语言程序设计(第3版)》 习题6-5 使用函数验证哥德巴赫猜想 (20分)
|
2月前
|
存储 算法 C语言
C语言初学者超详细习题库1(含题目以及代码讲解)
C语言初学者超详细习题库1(含题目以及代码讲解)
39 1
|
5月前
|
存储 编译器 C语言
c语言字符函数和字符串函数的模拟实现------附带习题
tolower与toupper函数是标准库提供的函数,具有平台可移植性。这意味着无论你在哪个操作系统或编译器上运行代码,该函数应该都能正常工作。而直接使用 ASCII 码加 32 并进行强制类型转换则依赖于特定的字符编码和实现。