第九周編程題在線測試
1 重復(fù)數(shù)檢查
#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 尋找鞍點(diǎn)
#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 計(jì)算三維階乘數(shù)和
#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);
}