我是靠谱客的博主 有魅力热狗,最近开发中收集的这篇文章主要介绍读入N, S两个自然数(0<=S,N<=9),打印相应的数字三角形(其中,S表示确定三角形的第一个数,N表示三角形的行数)。(提示:左右对齐可使用cout<,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
读入N, S 两个自然数(0<=S,N<=9 ), 打印相应的数字三角形(其中,S 表示确定三角形的第一个数,N 表示三角形的行数)。( 提示:左右对齐可使用cout<<left 、cout<<right)
例:当N = 4,S = 3 时 打印:
3 {首位数为奇数,左对齐}
45
678
9123
例:当N = 4,S = 4时 打印:
4 {首位数为偶数,右对齐}
65
987
4321
#include<iostream>
using namespace std;
/* This function is used to reverse the output */
void reverse(int num[], int n )
{
int pre, last = n;
int swap;
for (pre = 0; pre <= n / 2; pre++, last--) {
swap = num[pre];
num[pre] = num[last];
num[last] = swap;
}
for (swap = 0;swap <= n;swap++)
cout<<num[swap];
}
/* This function is used to process the odd s, and print the triangle */
void odd_s(int n, int s)
{
int i;
int len = n;
for (; len > 0 ; len--) {
i = n - len + 1;
while (i-- > 0) cout<<s++;
if (s > 9)
s = 1;
}
putchar('n');
}
}
/* This function is used to process the even s, and print the triangle */
int even_s( int n, int s)
{
int i;
int len = n;
int empty;
int *p=new int [n];
int cnt;
for (; len > 0 ; len--) {
i = n - len + 1;
empty = n - i;
cnt = 0;
while (i-- > 0) {
while (empty-- > 0)
printf(" ");
p[cnt++] = s++;
if (s > 9)
s = 1;
}
reverse(p, --cnt);
putchar('n');
}
}
int main()
{
int n, s;
printf("Please input the number of n: n");
scanf("%d", &n);
printf("Please input the number of s: n");
scanf("%d", &s);
if (s % 2 != 0)
odd_s(n, s);
else
even_s(n, s);
return 0;
}
此代码有问题
最后
以上就是有魅力热狗为你收集整理的读入N, S两个自然数(0<=S,N<=9),打印相应的数字三角形(其中,S表示确定三角形的第一个数,N表示三角形的行数)。(提示:左右对齐可使用cout<
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复