我做了一个程序来计算两个数字之间的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;
}
答案 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,那么您的代码会失败,但它可以正常工作