jokker097 2021-12-30 18:15 采纳率: 100%
浏览 35
已结题

数组相关问题,编写一个程序

1.从键盘输入一段字符(最多80个字符),分别统计出其中的字母、数字、空格和其他字符的个数,并将小写字母转变为大写字母输出。

2.从键盘输入n个整数(n<1000),存放在一个一维数组中,输出其中的完全数。

3.从键盘输入n个整数(n<1000),将这些数存放在一个一维数组中,求数列中所有数值的和及平均值,并从小到大输出所有偶数元素。

4.从键盘输入一段字符,将字符串首尾互换,并与原字符串相连接后输出。

  • 写回答

1条回答 默认 最新

  • _GX_ 2021-12-30 19:17
    关注

    1

    #include <stdio.h>
    #include <ctype.h>
    
    #define N 81
    
    int main()
    {
        char a[N];
        int num_letters = 0, num_digits = 0, num_spaces = 0, num_others = 0;
        fgets(a, N, stdin);
        char *p = a;
        while (*p)
        {
            if (isalpha(*p))
            {
                num_letters++;
                if (islower(*p))
                    *p = toupper(*p);
            }
            else if (isdigit(*p))
                num_digits++;
            else if (*p == ' ')
                num_spaces++;
            else
                num_others++;
            p++;
        }
        printf("Number of Letters: %d\n", num_letters);
        printf("Number of Digits: %d\n", num_digits);
        printf("Number of Spaces: %d\n", num_spaces);
        printf("Number of Other Characters: %d\n", num_others);
        printf("%s\n", a);
        return 0;
    }
    

    2

    #include <stdio.h>
    #include <math.h>
    
    #define N 1000
    
    int is_perfect_number(int x)
    {
        if (x < 2)
            return 0;
        int s = 1;
        int n = (int)sqrt(x);
        for (int i = 2; i <= n; i++)
        {
            if (x % i == 0)
            {
                s += i;
                int j = x / i;
                if (i != j)
                    s += j;
            }
        }
        return s == x;
    }
    
    int main()
    {
        int a[N];
        int n;
        scanf("%d", &n);
        for (int i = 0; i < n; i++)
            scanf("%d", &a[i]);
        int count = 0;
        for (int i = 0; i < n; i++)
        {
            if (is_perfect_number(a[i]))
            {
                printf("%d ", a[i]);
                count++;
            }
        }
        if (count == 0)
            printf("There is no perfect number in the array.");
        printf("\n");
        return 0;
    }
    

    3

    #include <stdio.h>
    
    #define N 1000
    
    int main()
    {
        int a[N];
        int n;
        scanf("%d", &n);
        for (int i = 0; i < n; i++)
            scanf("%d", &a[i]);
        int s = 0;
        for (int i = 0; i < n; i++)
            s += a[i];
        printf("Sum: %d\n", s);
        printf("Average: %.1f\n", (float)s / (float)n);
        for (int i = 0; i < n - 1; i++)
        {
            for (int j = i + 1; j < n; j++)
            {
                if (a[j] < a[i])
                {
                    int t = a[i];
                    a[i] = a[j];
                    a[j] = t;
                }
            }
        }
        for (int i = 0; i < n; i++)
            printf("%d ", a[i]);
        printf("\n");
        return 0;
    }
    

    4

    
    #include <stdio.h>
    #include <string.h>
    
    #define N 256
    
    int main()
    {
        char s[N], t[N];
        scanf("%s", s);
        const char *p = s;
        char *q = t;
        while (*p)
            *q++ = *p++;
        while (--p >= s)
            *q++ = *p;
        *q = '\0';
        printf("%s\n", t);
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 1月7日
  • 已采纳回答 12月30日
  • 创建了问题 12月30日

悬赏问题

  • ¥120 计算机网络的新校区组网设计
  • ¥20 完全没有学习过GAN,看了CSDN的一篇文章,里面有代码但是完全不知道如何操作
  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 海浪数据 南海地区海况数据,波浪数据
  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等
  • ¥15 matlab 用yalmip搭建模型,cplex求解,线性化处理的方法
  • ¥15 qt6.6.3 基于百度云的语音识别 不会改
  • ¥15 关于#目标检测#的问题:大概就是类似后台自动检测某下架商品的库存,在他监测到该商品上架并且可以购买的瞬间点击立即购买下单
  • ¥15 神经网络怎么把隐含层变量融合到损失函数中?