C语言编程:用递归法做,输出26个字母表的正序与反序。
#include<stdio.h>voidmain(){inti,c2,temp,f1(inti),f2(inti);charc1,'A';c1='A';printf("...
#include<stdio.h>
void main()
{
int i,c2,temp,f1(int i),f2( int i);
char c1,'A';
c1='A';
printf("%d",c1);
printf("选择正序输出输入0,反序输出输入1 :");
scanf("%d",&temp);
if(temp==0)
f1(i);
else
f2(i);
}
f1(int i)
{
for(i=0;i<26;i++)
{
c2=c1+1;
printf("%c\n",c2);
}
}
f2(int i)
{
printf("%c",c2);
c2=c1+1;
}
这是我编的,可是一直出错
,希望高手能在最后我的程序上修改,更好的有简洁的方法,非常感谢,我才上C语言,这是我的一道实验题,做了好几个小时,实在不得已,请大家帮帮忙,后天就要给报告了。 展开
void main()
{
int i,c2,temp,f1(int i),f2( int i);
char c1,'A';
c1='A';
printf("%d",c1);
printf("选择正序输出输入0,反序输出输入1 :");
scanf("%d",&temp);
if(temp==0)
f1(i);
else
f2(i);
}
f1(int i)
{
for(i=0;i<26;i++)
{
c2=c1+1;
printf("%c\n",c2);
}
}
f2(int i)
{
printf("%c",c2);
c2=c1+1;
}
这是我编的,可是一直出错
,希望高手能在最后我的程序上修改,更好的有简洁的方法,非常感谢,我才上C语言,这是我的一道实验题,做了好几个小时,实在不得已,请大家帮帮忙,后天就要给报告了。 展开
3个回答
展开全部
#include <stdio.h>
void fa(int i);
void fb(int i);
int main(int argc, char ** argv) {
fa('a');
printf("\n");
fb('z');
printf("\n");
return 0;
}
void fa(int i) {
if(i <= 'z') {
printf("%c ", i);
fa(i+1);
}
}
void fb(int i) {
if(i >= 'a') {
printf("%c ", i);
fb(i-1);
}
}
题目的大致程序是这样的。用递归来写程序,首先要注意,什么是递归,如何写递归。
递归就是函数自己直接或间接的调用自身,写递归一定要注意程序的出口。恩,刚学递归是会感觉递归有点难的,如果没明白在联系我吧
void fa(int i);
void fb(int i);
int main(int argc, char ** argv) {
fa('a');
printf("\n");
fb('z');
printf("\n");
return 0;
}
void fa(int i) {
if(i <= 'z') {
printf("%c ", i);
fa(i+1);
}
}
void fb(int i) {
if(i >= 'a') {
printf("%c ", i);
fb(i-1);
}
}
题目的大致程序是这样的。用递归来写程序,首先要注意,什么是递归,如何写递归。
递归就是函数自己直接或间接的调用自身,写递归一定要注意程序的出口。恩,刚学递归是会感觉递归有点难的,如果没明白在联系我吧
展开全部
能不用递归,用循环能解决的就尽量不用递归,因为递归是要不断的调用栈地址以查找函数地址,会严重损失效率,给你递归和循环的方法
#include <stdio.h>
#include <iostream.h>
void printLetter(int val);
void rePrintLetter(char x, int val);
int main()
{
int input;
cin>>input;
printLetter(input);
rePrintLetter('a',input);
return 0;
}
void rePrintLetter(char x, int val)
{
if(val == 0)
{
if(x <= 'z')
{
printf("%c",x);
rePrintLetter(x + 1,val);
}
}else if(val == 1)
{
if(x >= 'a')
{
printf("%c",x);
rePrintLetter(x-1,val);
}
}
}
void printLetter(int val)
{
if(val == 0)
{
for(int i = 97; i < 123; ++i)
{
printf("%c",i);
}
}else if(val == 1)
{
for(int i = 122; i >=97; --i)
{
printf("%c",i);
}
}
printf("\n");
}
#include <stdio.h>
#include <iostream.h>
void printLetter(int val);
void rePrintLetter(char x, int val);
int main()
{
int input;
cin>>input;
printLetter(input);
rePrintLetter('a',input);
return 0;
}
void rePrintLetter(char x, int val)
{
if(val == 0)
{
if(x <= 'z')
{
printf("%c",x);
rePrintLetter(x + 1,val);
}
}else if(val == 1)
{
if(x >= 'a')
{
printf("%c",x);
rePrintLetter(x-1,val);
}
}
}
void printLetter(int val)
{
if(val == 0)
{
for(int i = 97; i < 123; ++i)
{
printf("%c",i);
}
}else if(val == 1)
{
for(int i = 122; i >=97; --i)
{
printf("%c",i);
}
}
printf("\n");
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2010-10-26
展开全部
C1是字符型 不能加1 如果想循环 可以等于65 后面用CHR函数来做
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询