題目:一個正數于3的和是5的倍數,于3的差是6的倍數,請輸出符合要求的最小的十五個數的和并五個一行輸出十五個數
#include <stdio.h>
int main()
{
int i,num=0,sum=0;
for (i=0;;i++)
{
if ((i+3)%5==0&&(i-3)%6==0)
{
sum=sum+i;
num=num+1;
}
if (num==15)break;
}
printf("%d\n",sum);
num=0;
for (i=0;;i++)
{
if ((i+3)%5==0&&(i-3)%6==0)
{
num=num+1;
printf("%6d",i);
}
if (num%5==0)
printf("\n");
if (num==15)break;
}
return 0;
}
為什么代碼運行的時候出現一行一頁的情況?
uj5u.com熱心網友回復:
老弟,因為從0開始前面幾個數都不滿足 if ((i+3)%5==0&&(i-3)%6==0) 這個條件,你的num一直就為0,0%5==0滿足,所以一直輸出換行,解決方法為把 if (num%5==0)printf("\n"); 放到if ((i+3)%5==0&&(i-3)%6==0)
{
num=num+1;
printf("%6d",i);
}
這個里面就可以解決,還有就是你這個代碼可以放到一個回圈里面就可以解決,不需要搞兩個for回圈。
uj5u.com熱心網友回復:
#include <iostream>
using namespace std;
int main(){
int i=1;
int num=0;
white(1){
if(i%3==0&i%5==0&(1-3)%6==0){
cout<<i;
num++;
}
if(num==15)return 0;
if(num%5==0){
cout<<endl;
}
i++;
}
}
uj5u.com熱心網友回復:
打錯 是 while
uj5u.com熱心網友回復:
#include <stdio.h>
int main()
{
int i, num = 0, sum = 0;
for (i=1;;i++)
{
if((i+3)%5==0 && (i-3)%6==0)
{
sum += i;
num += 1;
printf("%5d", i);
if (num%5==0)
printf("\n");
}
if (num == 15)
break;
}
printf("%d\n", sum);
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/97342.html
標籤:C語言
上一篇:vscode
下一篇:熄燈問題
