C语言:键入n(0<n<10,错误提示并退出),求1,121,12321,1234321,…第n项,递归函数完成。咋写?

如题所述

代码文本:

#include "stdio.h"

void fun(int n,int i){

if(i<=n+n-1){

printf("%d",(i<=n ? i : n+n-i));

fun(n,i+1);

}

return;

}

int main(int argc,char *argv[]){

int n;

printf("Enter n(int 0<n<10)...\nn=");

if(scanf("%d",&n)==1 && n>0 && n<10){

printf("Item%d is ",n);

fun(n,1);

putchar('\n');

}

else

puts("Input error, exit...");

return 0; 

}

温馨提示:内容为网友见解,仅供参考
第1个回答  2021-05-28

相对比较简单的一种写法


#include <stdio.h>

void up(int n) {

    if(n>1)up(n-1);

    printf("%d", n);

}

void down(int n) {

    printf("%d", n);

    if(n>1)down(n-1);

}

void fun(int n) {

    if(n>1)up(n-1);

    printf("%d", n);

    if(n>1)down(n-1);

}

int main()

{

    int n;

    scanf("%d", &n);

    if(n < 0 || n > 9) return -1;

    fun(n);

}

第2个回答  2021-05-28
#include <stdio. h>
int main(void){
int a;
b=1;
scanf("%d",a);
if(b<a)
{printf("%d",b);
b++;}
else
printf("%d",a);
if(b>1&&b=1)
{printf("%d",(b-1));
b--;
getchar();
getchar();
return 0
}追答

第二个if的右括号在b--的后面

C语言:键入n(0<n<10,错误提示并退出),求1,121,12321,1234321,…第n项...
void fun(int n,int i){ if(i<=n+n-1){ printf("%d",(i<=n ? i : n+n-i));fun(n,i+1);} return;} int main(int argc,char *argv[]){ int n;printf("Enter n(int 0<n<10)...\\nn=");if(scanf("%d",&n)==1 && n>0 && n<10){ printf("Item%d is ",n...

1121123211234321……求第n项 用c 递归
1,121,12321,1234321,……求第n项 用c 递归:include<stdio.h> void fun1(int n){if(n>1)fun1(n-1);printf("%d",n);} void fun2(int n){printf("%d",n);if(n>1)fun2(n-1);} int main(void){ int n;scanf("%d",&n);fun1(n);fun2(n-1);return 0;} === 或...

...用c语言写。 1 121 12321 1234321 12321 121 1
scanf("%d",&n);output(n);return 0;}

c语言练习题 怎么样输出 1 121 12321 1234321 12321 121 1
define KG abs(N\/2-i)define XH ((N\/2-abs(N\/2-i))*2+1)define SZ XH\/2-abs(XH\/2-j)+1 void main() { int i,j,k;for ( i=0;i<N;i++ ) { for ( j=0;j<KG;j++ ) printf(" ");for ( j=0;j<XH;j++ ) printf("%d",SZ);printf("\\n");} } ...

1 121 12321 1234321 C语言程序用for循环,怎么编
int i,j;for(i=1;i<5;i++){ for(j=1;j<=i;j++)printf("%d",j); \/*打印前半部分*\/ for(j=i-1;j>0;j--)printf("%d",j);\/*打印后半部分*\/ printf(" "); \/*打印空格部分*\/ }

...例如:第一行1 第二行121第三行12321第四行1234321。。。
include<math.h> int main(){ int n,i,j;printf("输入一个正整数n:\\n");scanf("%d",&n);while(n<1){ printf("输入错误,重新输入");scanf("%d",&n);} for(i=1;i<=n;i++){ for(j=1;j<=2*i-1;j++)printf("%d",i-abs(i-j));printf("\\n");} return 0;} ...

...例如:第一行1 第二行121第三行12321第四行1234321
满意的话,求或速采纳 include <stdio.h> int main(){ int i,j;for(i=0;i<5;i++){ for(j=0;j<=i;j++)printf("%d",j+1);while(--j>0)printf("%d",j);putchar('\\n');} return 0;}

1+121+12321+1234321+123454321+12345654321=?用C语言怎么写_百度知 ...
include <iostream> using namespace std;const int size=6;int main(){ unsigned long sum=0;for (int i=1;i<=size;++i){ unsigned long item=0;for (int j=1;j<i;++j) item=item*10+j;for (int k=i;k>=1;--k) item=item*10+k;cout<<item<<endl;sum+=item;} cout<<...

编程输出以下图形 1 121 12321
include"stdio.h"int main(){int n,i,j;scanf("%d",&n);for(i=0;i<n;i++){for(j=0;j<n-i;j++)printf(" ");for(j=0;j<=i;j++)printf("%c",'1'+j);for(j-=2;j>=0;--j)printf("%c",'1'+j);printf("\\n");} return 0;} ...

如何用C语言编程1+121+12321+1234321+123454321
很容易,写个算法就行了

相似回答