2020년 MOOCC 언어 프로그래밍 정수 9주 프로그래밍 문제 테스트

27957 단어 C 언어
1 반복 숫자 검사 제목 내용: 키보드에서 숫자를 입력하고 이 숫자에 중복된 숫자가 있는지 확인합니다.이 수에 반복되는 숫자가 있으면 "Repeated digit!"그렇지 않으면 "No repeated digit!"이 표시됩니다.
#include 
#include 
#define MAX 20

int CountRepearNum(int count[], int n){
    int num[10]={0},i;
    for(i=0;i<n;i++){
        num[count[i]]++;
    }
    for(i=0;i<10;i++)
        if(num[i]>1){
            printf("Repeated digit!");
            return 0;
        }
    printf("No repeated digit!");
    return 0;
}

int main()
{
    int i=0,number;
    int count[MAX];
    printf("Input n:
"
); scanf("%ld",&number); while(number/10!=0||number%10!=0){ count[i++]=number%10; number/=10; } CountRepearNum(count,i); return 0; }

2 교수의 수업 제목 내용: 교수는 N 명의 학생이 있는 반을 위해 이산수학 수업을 하고 있다.그는 일부 학생들의 규율성이 부족한 것에 대해 매우 불만족스러워서, 수업이 시작된 후 수업하는 사람이 K보다 적으면 이 수업을 취소하기로 결정했다.키보드에서 모든 학생의 도착 시간을 입력하면 이 과정이 취소되었는지 프로그래밍을 해서 확인하십시오.코스가 취소되면 Yes를 출력하고 그렇지 않으면 No를 출력합니다.교수가 시간 0에 수업을 시작한다고 가정하자.만약 한 학생의 도착 시간이 정수가 아니라면, 그 학생은 수업 전에 교실에 들어간다는 것을 의미한다.만약 한 학생의 도착 시간이 정수라면, 그 학생이 수업 후에 교실에 들어간다는 것을 의미한다.만약 한 학생이 시시각각 0시에 교실에 들어간다면 수업 전에 교실에 들어가는 것으로 여겨진다.도착 시간의 절대치가 100을 넘지 않는다고 가정하면 학생 수 N은 1000을 넘지 않는다.학생의 도착 시간을 입력하기 전에 먼저 N과 K를 입력해야 한다.알려진 함수 원형://함수 기능: 배열 a에 기록된 학생의 도착 시간에 따라 수업이 취소되었는지 확인하고 취소하면 1로 되돌아간다. 그렇지 않으면 0 int IsCancel(int a[], int n, int k)로 되돌아간다.
#include 
#include 
#define MAX 1000

int IsCancel(int a[], int n, int k){
    int i,class_ontime=0;
    for(i=0;i<n;i++)
        if(a[i]<=0)
            class_ontime++;
    if(class_ontime>=k)
        return 0;
    else
        return 1;
}

int main()
{
    int i=0,n,k;
    int a[MAX];
    printf("Input n,k:
"
); scanf("%d,%d",&n,&k); for(i=0;i<n;i++) scanf("%d",&a[i]); if(IsCancel(a,n,k)) printf("YES"); else printf("NO"); return 0; }

3 안장 제목 내용 찾기: M*N 행렬의 안장 내용을 프로그래밍해서 찾아내세요. 즉, 이 위치의 요소는 이 줄의 최대값이고 이 열의 최소값입니다.행렬에 안장 점이 없으면 "No saddle point!"알려진 함수 원형:void Find SaddlePoint(int a[][N], int m, int n);이 함수에서 안장 지점이 있는지 없는지 정보를 출력합니다.
#include 
#include 
#define MAX 100

void FindSaddlePoint(int a[][MAX], int m, int n){
    int i,j,saddle_num=0,flag;
    int temp[m][n];
    memset(temp,0,m*n*sizeof(int));
    for(i=0;i<m;i++){
        flag=0;//          
        for(j=0;j<n;j++)
            if(a[i][j]>a[i][0])
                flag=j;
        temp[i][flag]++;
    }
    for(i=0;i<n;i++){
        flag=0;//          
        for(j=0;j<m;j++)
            if(a[j][i]<a[0][i])
                flag=j;
        temp[flag][i]++;
    }
    flag=0;
    for(i=0;i<m;i++){
        for(j=0;j<n;j++){
            if(temp[i][j]==2){
                printf("a[%d][%d] is %d
"
,i,j,a[i][j]); flag=1; } } } if(flag==0) printf("No saddle point!
"
); } int main() { int i,j,n,m; int a[MAX][MAX]; printf("Input m,n:
"
); scanf("%d,%d",&m,&n); printf("Input matrix:
"
); for(i=0;i<m;i++) for(j=0;j<n;j++) scanf("%d",&a[i][j]); FindSaddlePoint(a,m,n); return 0; }

4 세 개의 곱셈과 수를 계산하는 문제 내용: 모든 세 개의 곱셈과 수를 시험적으로 구한다: m=a!+b!+c!(그중 a는 백 자리 숫자, b는 열 자리 숫자, c는 한 자리 숫자이다. 0!=1을 약정하고 모든 m을 출력한다)
#include 

int Fact(int num){
    int i,number=1;
    if(num==0)
        return 1;
    for(i=1;i<=num;i++)
        number*=i;
    return number;
}

int main()
{
    int i;
    for(i=100;i<1000;i++){
        int unit=i%10;
        int decade=i/10%10;
        int hundreds=i/100;
        if(i==Fact(unit)+Fact(decade)+Fact(hundreds))
            printf("%ld
"
,i); } return 0; }

좋은 웹페이지 즐겨찾기