我需要帮助简单的C程序

时间:2018-03-14 05:35:50

标签: c

我做了一个程序来计算两个数字之间的5的倍数,当询问第二个数字时,程序没有正常工作。

    #include <stdio.h>

int main()
{
    int A, B, cont;
    printf("\n");
    printf("Indique el dominio de los numeros en los que desa saber cuales son multiplos de 5\n");
    printf("Primer numero: \n");
    scanf("%i",&A); 
    printf("Segundo numero: \n");
    scanf("%i",&B); 
    if (A < B){
        A = B;
        //B = A;
    }
    system("cls");
    printf("\n");
    printf("Los multiplos de 5 comprendidos entre %i y %i son; \n",A,B);
    cont = 0;
    while(A < B){
        if (A % 5 == 0)
            cont++; 
            A++;    
        }
        if (cont > 0) 
            printf("Entre los numeros %i y %i hay un total de %i multiplos de 5.\n",A,B,cont);
        else
            printf("El intervalo no se encuentran multiplos de 5.\n");      
        getchar();
    return 0;
}

3 个答案:

答案 0 :(得分:5)

你的格式是向后的

scanf("i%",&A); 

应该是

scanf("%i",&A); 

答案 1 :(得分:2)

您的交换逻辑错误。使用另一个变量来正确执行。

int t = A;
A = B;
B = t;

A大于B时,你也想要交换。

if( A > B ){
  /* swap*/
}

答案 2 :(得分:0)

 #include <stdio.h>

int main()
{
    int A, B, cont=0;
    printf("Program to find the Multiples of 5\n");
    printf("First Number \n");
    scanf("%d",&A); 
    printf("Second Number \n");
    scanf("%d",&B); 
    system("cls");
    printf("The Multiples of 5 between %d and %d \n", A,B);
    if(A<B){
    while(A <= B){
        if (A % 5 == 0)
            {
              cont++;
            } 
            A++;    
        }
    }
    else 
    {
    while(A >=B){
        if (A % 5 == 0)
            {
              cont++;
            } 
            A--;    
        }
    }
     if (cont > 0) 
            printf("The total Multiples of 5 between %d and %d are %d\n",A,B,cont);
        else
            printf("No Multiple of 5 exists between %d and %d\n",A,B);      
        getchar();
    return 0;
}

我尝试解决每个案例。如果用户输入A&gt; B,那么您的代码会失败,但它可以正常工作