#include
int main()
{
int n,i,num=0;
scanf("%d",&n);
for(i=10;i<=99;i++)
{
if(i%n==0)
{
printf("%-5d",i);
num=num+1;
}
if(num%5==0)
{
printf("\n");
}
}
printf("\n%d",num);
return 0;
}
输入2
输出如下
10 12 14 16 18
20 22 24 26 28
30 32 34 36 38
40 42 44 46 48
50 52 54 56 58
60 62 64 66 68
70 72 74 76 78
80 82 84 86 88
90 92 94 96 98
45
#include "stdio.h"
int main()
{
int n,i,num=0;
scanf("%d",&n);
for(i=10;i<=99;i++)
{
if(i%n==0)
{
printf("%-5d",i);
num=num+1;
}
if(num%5==0 && (i - 1)%n==0 && i!=10)
{
printf("\n");
}
}
printf("\n%d",num);
return 0;
}
以后提问,请格式化好了再发出,方法如下
问题解决请点我回答右边的采纳,谢谢
就跟昨天的一样啊,因为for循环在18的时候num为5,输出空行,在19的时候,num依然为5,所以又输出了一个空行,
这里添加了一个flag开关,每次num变动,打开flag,输出换行后,关闭flag
#include <stdio.h>
int main()
{
int n, i, num = 0;
int flag = 0;
scanf("%d", &n);
for (i = 10; i <= 99; i++)
{
if (i%n == 0)
{
printf("%-5d", i);
num = num + 1;
flag = 1;
}
if (num % 5 == 0&&flag)
{
printf("\n");
flag = 0;
}
}
printf("%d", num);
return 0;
}