c语言期末题目求助求助!!!!!

对于一个字符串,如果这个字符串在ASCII码的意义上是有序的,即升序或降序,则称该字符串为“优雅的字符串”。一个长为n的字符串s,对于1<= i <= n - 1,如果总有s[i] <= s[i+1],则字符串为升序;如果总有s[i] >= s[i+1],则字符串降序。现给定一个字符串,请你判断该字符串是否“优雅”,如果该字符串是“优雅”的,则判断是“正优雅”(升序)还是“负优雅”(降序)。

 

输入描述

一个非空,不包含空格的字符串s,保证字符串中的字符都是ASCII标准中的字符。数据保证不会出现所有字符相同的字符串。(2<= length(s) <=1e5)

输出描述

如果字符串“正优雅”,则输出“Positive elegance”,如果“负优雅”,则输出“Negative elegance”,否则输出“Non elegance”(均不含引号)。

提示无

样例输入复制样例输入数据

(*+11223356ASdfz

样例输出Positive elegance

允许最长运行时间1000ms

允许使用最大内存512KB

#include <stdio.h>
#include <string.h>

int main()
{
    char str[10000] = "(*+11223356ASdfz";
    int status = 0, tmp, i;
    int len = strlen(str);

    for (i = 1; i < len; i++)
    {
        status = str[i] - str[i - 1];
        if (status != 0)
            break;
    }

    for (; i < len; i++)
    {
        tmp = str[i] - str[i - 1];
        if (tmp == 0)
            continue;
        if (tmp < 0 && status < 0)
            status = tmp;
        else if (tmp > 0 && status > 0)
            status = tmp;
        else
        {
            status = 0;
            break;
        }
    }
    
    if (status == 0)
        printf("Non elegance\n");
    else if (status > 0)
        printf("Positive elegance\n");
    else if (status < 0)
        printf("Negative elegance\n");


    return 0;
}