读取两个整数,找到第一个小于第二个的所有正数

时间:2014-06-10 03:31:46

标签: c function for-loop structure

问题是这样的:"读取两个int数字a和b。 a介于1和10之间,b介于20和50之间。程序必须打印生成的值,并且还必须打印1和b之间存在的倍数。

我写的程序是这样的:

#include <stdio.h>    
#include <conio.h>

int main()
{
    int a, b;
    int num = 0;
    printf("\nIntroduce the first number:");
    scanf("%d", &a);
    printf("\nIntroduce the second number:");
    scanf("%d", &b);

    for(a = 1; a <= 10; a++)
    {
        for(b = 20; b <= 50; b++)
        {
            while(a < b)
            num = a * a;
        }
        printf("\n%d",num);
    }

    getch();
    return 0;
}

这是我写的程序,但我错了。我必须强制使用for funcion,但我不知道如何让程序运行。

所有帮助赞赏!!

2 个答案:

答案 0 :(得分:0)

在这里,这将打印出您想要的输出。

#include <stdio.h>
#include <conio.h>

int main() {
  int a,b;
  int i;
  int num=0;

  printf("\nIntroduce the first number:");
  scanf("%d",&a);

  printf("\nIntroduce the second number:");
  scanf("%d",&b);

  for(i = 1; ;i++) {
    num = a * i;
    if(num > b)
        break;
    printf("%d ", num);
  }

  return 0;
}

我没有包含错误处理的内容,例如如果用户输入超出指定输入范围的值,您应该再次询问它。我建议如果你希望你的程序更强大,你应该包含它。

如果您有任何其他问题,请问:D

答案 1 :(得分:-1)

在num = a * a

之后将printf放在第二个循环中
#include <stdio.h>    
#include <conio.h>
int main()
{
int a,b;
int num=0;
printf("\nIntroduce the first number:");
scanf("%d",&a);
printf("\nIntroduce the second number:");
scanf("%d",&b);
  for(a=1;a<=10;a++)
   {
   for(b=20;b<=50;b++)
   {
       while(a<b)
        num=a*a;
        printf("\n%d",num);
 }

 }
getch();
return 0;
  }