第九周编程题在线测试
1 重复数检查
- #include <stdio.h>
- int CountReatNum(int count[], long int n);
- int main()
- {
- long n;
- int a[10];
- printf("Input n:\n");
- scanf("%ld", &n);
- if (CountReatNum(a, n))
- printf("No repeated digit!\n");
- else
- printf("Repeated digit!\n");
- return 0;
- }
- int CountReatNum(int count[], long int n)
- {
- int len = 0;
- do
- {
- for (int i = 0; i <len; i++)
- {
- if (count[i] == n % 10)
- return 0;
- }
- count[len] = n % 10;
- len++;
- } while (n /= 10);
- return 1;
- }
2 教授的课
- #include <stdio.h>
- int IsCancel(int a[], int n, int k);
- int main()
- {
- int n, k;
- int a[1000];
- printf("Input n,k:\n");
- scanf("%d,%d", &n, &k);
- if (IsCancel(a, n, k))
- printf("YES\n");
- else
- printf("NO\n");
- return 0;
- }
- int IsCancel(int a[], int n, int k)
- {
- int count = 0;
- for (int i = 0; i <n; i++)
- {
- scanf("%d", &a[i]);
- if (a[i]> 0)
- count++;
- }
- if (n - count <k)
- return 1;
- else
- return 0;
- }
3 寻找鞍点
- #include <stdio.h>
- #define N 10
- void FindSaddlePoint(int a[][N], int m, int n);
- int main()
- {
- int m, n;
- int a[N][N] = { 0 };
- printf("Input m,n:\n");
- scanf("%d,%d", &m, &n);
- getchar();
- printf("Input matrix:\n");
- for (int i = 0; i <m; i++)
- {
- for (int j = 0; j < n; j++)
- {
- scanf("%d", &a[i][j]);
- //printf("%d\t" ,a[i][j]);
- }
- }
- FindSaddlePoint(a, m, n);
- return 0;
- }
- void FindSaddlePoint(int a[][N], int m, int n)
- {
- for (int i = 0; i < m; i++)
- {
- int max = 0, maxj =0;
- for (int j = 0; j < n; j++)
- {
- if (a[i][j]> max)
- {
- max = a[i][j];
- maxj = j;
- }
- }
- for (int j = 0; j <m; j++)
- {
- if (a[i][maxj]> a[j][maxj])
- goto A;
- }
- printf("a[%d][%d] is %d\n", i, maxj, max);
- return 0;
- A:;
- }
- printf("No saddle point!\n");
- }
4 计算三维阶乘数和
- #include <stdio.h>
- int factorial(int n, int m);
- int main()
- {
- int i;
- int a, b, c;
- for (i = 100; i < 1000; i++)
- {
- a = i / 100;
- b = (i / 10) % 10;
- c = i % 10;
- if (i == factorial(a, 1) + factorial(b, 1) + factorial(c, 1))
- printf("%d", i);
- }
- return 0;
- }
- int factorial(int n, int m)
- {
- if (n == 0)
- return m;
- else
- return factorial(n - 1, n * m);
- }
来源: http://www.jianshu.com/p/dfb7ca2bd953