编程打印用“偶数”构成的n行下三角三角形,行数n从键盘输入。
【输入形式】一个整数
【输出形式】参见样例
【样例输入】5
【样例输出】
2
4 6
8 10 12
14 16 18 20
22 24 26 28 30
从键盘输入两个正整数,输出这两个整数的商,要求商的小数点后保留30位整数。例如输入355和113,输出3.141592920353982300884955752212
【输入形式】两个整数,逗号作分隔符
【输出形式】参见样例
【样例输入】355,113
【样例输出】3.141592920353982300884955752212
谢谢您的提点!请问您能为我解释一下第二题为什么要这样编写吗?我不太理解为什么要这样编写
追答这和你笔算除法立竖式是一个道理,你对应着立竖式读一读代码就明白了
刚还想到一个效率更高的方法,可是因为修改次数太多,提交不了啦,这里顺便发出来,不过看来你更看不懂了
#include
#include
int main() {
long divisor;
long dividend; // 被除数
scanf("%ld %ld", $dividend, &divisor); // $换成&,我输入失败
if (divisor <= 0 || dividend < 0) {
printf("input error!");
return 1;
}
printf("%d", dividend/divisor);
dividend = dividend % divisor;
if (!dividend) return 0;
int digit = sizeof(long) - 1;
long factor = pow(10, digit);
char decimals[30 + digit + 1];
printf(".");
divisor *= factor;
for (int index = 0; dividend && index < 30; index+=digit) {
dividend *= factor;
sprintf(factor + index, "%d", dividend/divisor);
dividend %= divisor;
}
decimals[index] = decimals[30] = 0;
printf("%s", decimals);
return 0;
}
没编译,可能有错,但就是这个理儿
谢谢!
追答#include
int main()
{
int n=0;
int i,j;
int s=0,sum=0;
scanf("%d",&n);
for(i=1;i<=n;i++){
s++;
for(j=1;j<=s;j++){sum=sum+2;printf("%d ",sum);if(j==s)printf("\n");}
}
return 0;
}
第一题修改一下~!不好意思!