又是第二次C语言小测,我也看到了自己的很多问题,我还有很多成长的地方。

  

 第一个编程题,总体思想上来说不是很难,但是想把脑袋中的想法实现出来,变成实实在在的代码,还是会有一定难度。

我主要的错误在于我没看懂“以键盘结束符^Z或文件结束符结束输入”是怎么用代码表达的。

这是改正后的代码

#include <stdio.h>

#define MAXN 1001
int findmax(int a[], int N);
int main()
{
int count[MAXN] = {0};
int n;
scanf("%d", &n);
int x;
while ((scanf("%d", &x))!=EOF)
{
    count[x]++;
}

int maxi = findmax(count, n + 1);

for (int i = 0; i < n + 1; i++)
{
    if (count[maxi] == count[i])
    {
        printf("%d %d\n", i, count[i]);
    }
}

return 0;
}int findmax(int a[], int N)
{
int maxx = 0;

for (int i = 0; i < N; i++)
{
    if (a[maxx] < a[i])
    {
        maxx = i;
    }
}

return maxx;
}

思想和我考试的时候大致相同,但是格式比我考试时的格式标准了不少。

第二个题

 这一题我错在只考虑的一种情况,即左移次数小于字符串长度。

其实还有左移次数大于字符串长度的情况。

修改后的代码为

#include<stdio.h>
#include<string.h>
int main()
{
    char str[101];
    int N;

    gets(str);
    scanf("%d", &N);

    N %= (strlen(str));    

    for (int i = N; i < strlen(str); i++)
    {
        printf("%c", str[i]);
    }

    for (int i = 0; i < N; i++)
    {
        printf("%c", str[i]);
    }

    return 0;
}

第三题

第三题顺时针矩阵还没看明白。

posted on 2021-12-04 22:13  软件2113许正铆  阅读(22)  评论(0编辑  收藏  举报