C 中的数字模式
Number pattern in C
能帮忙打印一下下面的图案吗?
12345 15
2345 14
345 12
45 9
5 5
我试过这个代码吗?
代码:
for(i=1;i<=5;i++)
{
for(j=1;j<=i;j++)
{
printf(" ");
}
for(j=i;j<=5;j++)
{
printf("%i",j);
sum = sum + j;
}
printf(" ");
printf("%i",sum);
printf("\n");
}
输出:
12345 15
2345 29
345 41
45 50
5 55
请帮忙打印上面的图案?提前致谢
嗯,问题很清楚:29 = 15 + 14。
这意味着您忘记在开始新行时清除总和。
for(i=1;i<=5;i++)
{
sum = 0; // reset sum when we begin a new line
第一个逻辑问题是-
for(i=1;i<=5;i++)
{
sum=0; // set sum to 0 in every iteration
你不这样做,所以你没有得到正确的总和,你得到这个 -
15+14=29
29+12=41 // similar for all cases
Solution -
#include <stdio.h>
#include <string.h>
int main(void)
{
int i,j,sum=0,k=1;
char p[10]; // using a char array to print spaces between number ans sun
memset(p,'[=12=]',sizeof p); // initialize array elements to null
for(i=1;i<=5;i++)
{
sum =0; // set sum to 0 in every iteration
for(j=1;j<=i;j++)
{
printf(" ");
}
for(j=i;j<=5;j++)
{
printf("%i",j);
sum = sum + j;
}
if(k<10){ // this is to print space between number and sum
memset(p,' ',k); // include number of space in string
printf("%s",p); // print the string with space
}
k=k+2; // increment k by 2
printf("%i",sum);
printf("\n");
}
return 0;
}
能帮忙打印一下下面的图案吗?
12345 15
2345 14
345 12
45 9
5 5
我试过这个代码吗?
代码:
for(i=1;i<=5;i++)
{
for(j=1;j<=i;j++)
{
printf(" ");
}
for(j=i;j<=5;j++)
{
printf("%i",j);
sum = sum + j;
}
printf(" ");
printf("%i",sum);
printf("\n");
}
输出:
12345 15
2345 29
345 41
45 50
5 55
请帮忙打印上面的图案?提前致谢
嗯,问题很清楚:29 = 15 + 14。
这意味着您忘记在开始新行时清除总和。
for(i=1;i<=5;i++)
{
sum = 0; // reset sum when we begin a new line
第一个逻辑问题是-
for(i=1;i<=5;i++)
{
sum=0; // set sum to 0 in every iteration
你不这样做,所以你没有得到正确的总和,你得到这个 -
15+14=29
29+12=41 // similar for all cases
Solution -
#include <stdio.h>
#include <string.h>
int main(void)
{
int i,j,sum=0,k=1;
char p[10]; // using a char array to print spaces between number ans sun
memset(p,'[=12=]',sizeof p); // initialize array elements to null
for(i=1;i<=5;i++)
{
sum =0; // set sum to 0 in every iteration
for(j=1;j<=i;j++)
{
printf(" ");
}
for(j=i;j<=5;j++)
{
printf("%i",j);
sum = sum + j;
}
if(k<10){ // this is to print space between number and sum
memset(p,' ',k); // include number of space in string
printf("%s",p); // print the string with space
}
k=k+2; // increment k by 2
printf("%i",sum);
printf("\n");
}
return 0;
}