[Questions de programmation de base en langage C et C++] [Collection de questions de base] [Département de recherche sur les algorithmes ACM de l'Université de Pingdingshan]

Source de la question : Département de recherche sur les algorithmes ACM de l'Université Pingdingshan

Table des matières

Préface

Continuez à mettre à jour lorsque vous avez le temps, veuillez laisser un message dans la zone de commentaires pour en discuter ~


Préface

        Pratiquez la banque de questions tout en révisant les bases du langage C pour poser des bases solides en langage C. Mise à jour à long terme, recommandée pour collecter ~

        Cet article est un recueil de textes intégraux. Les questions difficiles seront publiées séparément. Bienvenue pour poser des questions et échanger dans la zone de commentaires~


1000:A+B Problème

Description du problème : Calculer a+b

Entrée : deux entiers a,b

Sortie : Sortie a+b

Exemple d'entrée : 1 2

Exemple de sortie : 3

Astuce : Comme la question initiale était trop difficile, un petit ange a modifié cette question ~ ~OvO~

Code:

#include<stdio.h>
int main()
{
    int a = 0, b = 0, sum = 0;

    scanf("%d %d", &a, &b);
    sum = a + b;
    printf("%d", sum);

    return 0;
}

1001 : Écrire un programme pour afficher les informations spécifiées

Description du problème:

Veuillez vous référer aux exemples de questions de ce chapitre et écrire un programme pour afficher les informations suivantes :
**************************
         Très bien !
** ****** *******************
Comme vous pouvez le voir sur le chiffre *, il y a 9 espaces avant Très, et avant Bien...
* fait également partie de la sortie, ne vous contentez pas d'imprimer Très bien !

Entrée : Aucune entrée requise

Sortir:

**************************
         Très bien !
**************************

Exemple de résultat : identique à ci-dessus

Astuce : Il n'y a pas de saut de ligne dans la dernière ligne. Tutoriel de programmation en langage C (troisième édition) Exercice après les cours 1.5

Code:

#include<stdio.h>

int main()
{
    printf("**************************\n");
    printf("         Very    Good!\n");
    printf("**************************");
    
    return 0;
}
#include<stdio.h>

int main()
{
    printf("**************************\n         Very    Good!\n**************************");
   
    return 0;
} 

1002 : Trouvez la valeur maximale de trois nombres

Description du problème:

Écrivez un programme qui saisit trois valeurs a, b et c et génère la valeur maximale.

Entrée : une ligne de tableaux, respectivement abc

Sortie : abcLe plus grand nombre parmi eux

Exemple d'entrée : 10 20 30

Exemple de sortie : 30

Conseils : Tutoriel de programmation en langage C (troisième édition) Exercices après les cours 1.6

Code:

Méthode 1 : Supposons que a soit la valeur maximale, introduisez une quatrième variable et comparez-la respectivement avec b et c.

#include<stdio.h>
int main()
{
    int a, b, c;
    int max = 0;
    scanf("%d %d %d", &a, &b, &c);
    max = a;
    if (max < b)
    { 
        max = b;
    }
    else if (max < c)
    {
        max = c;
    }
    printf("%d", max);
}

Méthode 2 : omettez la quatrième variable et utilisez directement la variable a comme valeur maximale.

#include<stdio.h>
int main()
{
    int a, b, c;
    scanf("%d %d %d", &a, &b, &c);

    if (a < b) 
    {
        a = b;
    }
    if (a < c) 
    {
        a = c;
    }
    printf("%d", a);

    return 0;
}

Méthode 3 : comparaison directe, boucles if else imbriquées, celui qui produit le plus.

#include <stdio.h>

int main()
{
    int a,b,c;
    scanf("%d %d %d", &a, &b, &c);

    if (a > b)
    {
        if (a > c)
        {
            printf("%d", a);
        }
        else
        {
            printf("%d", c);
        }
    }
    else if (b > c)
        {
            printf("%d", b);
        }
        else
        {
            printf("%d", c);
        }

    return 0;
}

Méthode 4 : utilisez && pour éviter l’imbrication de la même manière que la méthode 3.

#include<stdio.h>
int main()
{
    int a, b, c;
    scanf("%d %d %d", &a, &b, &c);
    if (a >= b && a >= c) {
        printf("%d" ,a);
    }
    else if (b >= a && b >= c) {
        printf("%d", b);
    }
    else {
        printf("%d", c);
    }

    return 0;
}

Cinquième méthode : opérateur ternaire (pas de quatrième variable)

#include<stdio.h>
int main()
{
    int a, b, c;
    scanf("%d %d %d", &a, &b, &c);
    printf("%d", a > b ? (a > c ? a : c) : (b > c ? b : a));
}

Sixième méthode : opérateur ternaire (avec quatrième variable)

#include<stdio.h>
int main()
{
    int a, b, c;
    int max = 0;
    scanf("%d %d %d", &a, &b, &c);

    max = (a > b) ? a : b;
    max = (max > c) ? max : c;

    printf("%d", max);
}

Septième méthode : opérateur Sanmu (a comme quatrième variable)

#include<stdio.h>
int main()
{
    int a, b, c;
    int max = 0;
    scanf("%d %d %d", &a, &b, &c);
    a = (a > b) ? a : b;
    a = (a > c) ? a : c;
    printf("%d", a);
}

1003 : Chiffrement de chaîne

Description du problème : Pour traduire « Chine » en mot de passe, la règle de décodage est la suivante : remplacez la lettre d'origine par la quatrième lettre après la lettre d'origine. Par exemple, la quatrième lettre après la lettre « A » est « E ». "E" au lieu de "A". Par conséquent, « Chine » devrait être traduit par « Glmre ». Veuillez écrire un programme pour utiliser la méthode d'attribution de valeurs initiales pour rendre les valeurs des cinq variables cl, c2, c3, c4 et c5 respectivement, 'C', 'h', 'i', "n" et "a". Après l'opération, faites en sorte que c1, c2, c3, c4, c5 deviennent respectivement "G", "l", "m", "r", "e" et sortez.

Entrée : Chine

Sortie : Chine cryptée

Exemple de contribution : Chine

Exemple de sortie : Glmre

Astuce : implémentez simplement la saisie et le cryptage de la Chine si facilement

Tutoriel de programmation en langage C (troisième édition) Exercices 3.7

Code:

Méthode 1 : utilisez directement les propriétés de stockage des caractères char pour le cryptage.

#include<stdio.h>
int main()
{
    char a,b,c,d,e;
    scanf("%c %c %c %c %c", &a, &b, &c, &d, &e);
    printf("%c%c%c%c%c", a + 4, b + 4, c + 4, d + 4, e + 4);
    return 0;
}

Méthode 2 : utilisez la fonction strlen pour trouver la longueur du tableau et les propriétés du tableau pour le chiffrement.

#include<stdio.h>
#include<string.h>
int main()
{
    char str[99];
    scanf("%s", str);
    int count = strlen(str);

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

    printf("\n");
    return 0;
}

1004 : Calculer l'aire et le volume d'un cylindre, etc.

Description du problème : Supposons le rayon r du cercle et la hauteur h du cylindre. Trouvez la circonférence C1, l'aire Sa du cercle, l'aire de la surface Sb de la sphère, le volume Va de la sphère et le volume Vb de le cylindre. Saisissez le rayon et la hauteur des données et affichez le résultat du calcul. Lors de la sortie, une description textuelle est requise, avec deux chiffres après la virgule décimale. Veuillez programmer. IP=3,14

Entrée : deux nombres à virgule flottante, r et h

Sortie : circonférence C1, aire du cercle Sa, aire de la sphère Sb, volume de la sphère Va, volume du cylindre Vb. Conservez deux décimales et enveloppez chaque résultat dans une nouvelle ligne.

Exemple de saisie :

2 3

Exemple de sortie :

C1=12,56 
Sa=12,56 
Sb=50,24 
Va=33,49 
Vb=37,68

Astuce : améliorez la précision et faites attention à la précision

Code:

#include <stdio.h>
#define PI 3.14
int main()
{

    int r, h;        //设圆半径为r   圆柱高为h   两个浮点数  
    scanf("%d %d", &r, &h);
     
    //求圆周长C1  圆面积Sa  圆球表面积Sb  圆球体积Va  圆柱体积Vb  保留两位小数
    float C1 = 2 * PI * r;
    float Sa = PI * r * r;
    float Sb = 4 * PI * r * r;
    float Va = 4.0 / 3 * PI * r * r * r;
    float Vb = PI * r * r * h;
 
    printf("C1=%.2f\n", C1);
    printf("Sa=%.2f\n", Sa);
    printf("Sb=%.2f\n", Sb);
    printf("Va=%.2f\n", Va);
    printf("Vb=%.2f\n", Vb);
     
    return 0;
}

1005 : Tutoriel de programmation en langage C (troisième édition) Exercices après les cours 4.9

Description du problème : saisissez une température en Fahrenheit et demandez la sortie en Celsius. La formule est c = 5 (F-32) / 9. La sortie nécessite une description textuelle et prend 2 décimales.

Entrée : une température Fahrenheit, un nombre à virgule flottante

Sortie : température Celsius, virgule flottante à deux décimales

Exemple de saisie :

-40

Exemple de sortie :

c=-40.00

Astuce : Il fait moins 40 degrés, vous ne pouvez pas demander ? clan

Code:

#include <stdio.h>
int main()
{
    float c,f;
    scanf("%f",&c);
    f=5*(c-32)/9;
    printf("c=%.2f",f);
    return 0;
}

Analyse : faites simplement attention à .f


1006 : Tutoriel de programmation en langage C (troisième édition) Exercices après les cours 5.4

Description du problème : Il existe trois entiers abc, saisis à partir du clavier, et le plus grand nombre d'entre eux est sorti.

Entrée : une ligne de tableaux, respectivement abc

Sortie : abcLe plus grand nombre parmi eux

Exemple d'entrée : 10 20 30

Exemple de sortie : 30

Astuce : C'est exactement la même chose que 1002, montez et parcourez-le.


1007 : Tutoriel de programmation en langage C (troisième édition) Exercices après les cours 5.5

Description du problème : Il existe une fonction
y={ x x<1
    2x-1 1<=x<10
    3x-11 x>=10

Écrire un programme qui entre x et sort y

Entrée : x

Sortie : oui

Exemple d'entrée : 14

Exemple de sortie : 31

Astuce : utilisez les fonctions

Code:

#include<stdio.h>
int fun(int x)
{
    int y;
    if (x < 1)
        y = x;
    else if (x >= 1 && x < 10)
        y = 2 * x - 1;
    else
        y = 3 * x - 11;
    return y;
}

int main()
{
    int x, y;
    scanf("%d", &x);
    y = fun(x);
    printf("%d", y);
    return 0;
}

Analyse : appelez simplement la fonction, vous pouvez l'écrire de n'importe quelle manière, vous ne pouvez pas non plus écrire de fonction.


1008 : Sommation de la série

Description du problème : Connu : Sn= 1+1/2+1/3+…+1/n. Évidemment pour tout entier K, lorsque n est suffisamment grand, Sn est supérieur à K. Étant donné maintenant un entier K (1<=k<=15), il faut calculer un minimum n ; faisant Sn>K.

Saisie : saisie au clavier k

Sortie : sortie écran n

Exemple d'entrée : 1

Exemple de sortie : 2

Astuce : faites attention aux problèmes de précision et utilisez le double

Code:

Méthode 1 : boucle for, pause pour sauter

#include<stdio.h>
int main()
{
    double Sn=0,i;
    int k,n;
    scanf("%d",&k);
    for(i=1;;i++)
    {
        Sn+=1/i;
    if(Sn>k)
    {
        n=i;
        break;
    }
    }
    printf("%d",n);
}

Méthode 2 : boucle while, saut conditionnel

#include <stdio.h>
int main()
{
    int k, n = 1;
    double Sn = 0;
    scanf("%d", &k);

    while(Sn <= k)
    {
        Sn = Sn + 1.0/n;
        n++;
    }
    printf("%d\n", n-1);
     
    return 0;
}

Analyse : faites attention à la taille de la sortie n, si elle est réduite de un


Continuez à mettre à jour lorsque vous avez le temps, veuillez laisser un message dans la zone de commentaires pour en discuter ~

Je suppose que tu aimes

Origine blog.csdn.net/m0_61409069/article/details/126190609
conseillé
Classement