又是第二次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; }
第三题
第三题顺时针矩阵还没看明白。