如何将几道C语言程序的合并?

如何将几道C语言程序用 TC合并成一个系统,在这个系统里可以分别实现合并的几道题的功能。而且运行一次之后可以一直都使用下去,不用多次按ctrl+F9。

如:将下面的几道题合成一个系统,各题程序都写好了。我用switch语句将1,2两题合起来但是执行第一题时有些问题。
第1题:任意输入一个字符,若为大写字母则输出1,若为小写字母则输出2,若为数字则输出3,其它则输出4,编程实现。
编程提示:用条件语句实现。
#include <stdio.h>

main()

{ char ch;

scanf("%c",&ch);

if(ch>='A'&&ch<='Z') printf("1");

else if(ch>='a'&&ch<='z') printf("2");

else if(ch>='0'&&ch<='9') printf("3");

else printf("4");

}

第2题:模拟简易计算器。用键盘任意输入两个数和一个运算符(+、-、*、/、%),编程计算结果。
编程提示:用多分支语句switch实现。

#include <stdio.h>

main()

{ int a,b;char ch;

printf("input two numbers and a sign:");

scanf("%d,%d,%c",&a,&b,&ch);

switch(ch)

{ case '+': x=a+b;break;

case '-': x=a-b;break;

case '*': x=a*b;break;

case '/': x=a/b;break;

case '%': x=a%b;break;

defaule: printf("\n error!");

}

printf("\n%d%c%d=%d\n",a,ch,b,x);

}

第3题:计算机20!
编程提示:用循环实现,注意阶乘值的数据类型。
#include <stdio.h>

main()

{ double x=1;int i;

for(i=2;i<=20;i++) x=x*i;
printf("20!=%lf",x);
}

第4题:计算菲波那契数列前20项并按照每行五项输出这20项。斐波那契数列指的是这样一个数列:1,1,2,3,5,8,13,21……
这个数列从第三项开始,每一项都等于前两项之和。它的通项公式为:(1/√5)*{[(1+√5)/2]^n - [(1-√5)/2]^n}(又叫“比内公式”,是用无理数表示有理数的一个范例。)【√5表示根号5】
很有趣的是:这样一个完全是自然数的数列,通项公式居然是用无理数来表达的。
编程提示:用循环或循环加数组实现。
#include <stdio.h>
main()
{ int a[20]={1,1},i;
for(i=2;i<20;i++)
a[i]=a[i-1]+a[i-2];
for(i=0;i<20;i++)
if(i%5!=0&&i!=0)printf("%d\t",a[i]);
else printf("\n%d\t",a[i]);
}

第5题:题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
#define nmax 50
main()
{
int i, k, m, n, num[nmax], *p;
printf("please input the total of numbers:");
scanf("%d", &n);
p=num;
for(i=0; i<nmax; i++)
*(p + i) = i + 1;
i = 0;
k = 0;
m = 0;
while(m < nmax)
{
if(*(p + i) != 0) k++;
if(k == 3)
{
*(p + i) = 0;
k = 0;
m++;
}
i++;
if(i==n) i=0;
}
while(*p==0) p++;
printf("%d is left\n", *p);
}
第6题:用递归法计算n!
#include"stdio.h"
int fun (int n)
{long result;
if(n==0||n==1) return 1;
else
{result=n*fun(n-1);
return result;
}
}
void main ()
{int n;
scanf("%d",&n);
printf("%d!=%ld\n",n,fun(n));
}

每一题都改为函数,在写一个主函数,就可以实现了。
例如
void function1()

{ char ch;

scanf("%c",&ch);

if(ch>='A'&&ch<='Z') printf("1");

else if(ch>='a'&&ch<='z') printf("2");

else if(ch>='0'&&ch<='9') printf("3");

else printf("4");

}
void function2()
{ int a,b;char ch;

printf("input two numbers and a sign:");

scanf("%d,%d,%c",&a,&b,&ch);

switch(ch)

{ case '+': x=a+b;break;

case '-': x=a-b;break;

case '*': x=a*b;break;

case '/': x=a/b;break;

case '%': x=a%b;break;

defaule: printf("\n error!");

}

printf("\n%d%c%d=%d\n",a,ch,b,x);

}
void main()
{
char a;
while(scanf("%c",&a)!=EOF)
{
if(a>='a'&&a<='z')
function1();
if(a>='A'&&a<='Z')
function2();
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-10-13
把这些程序做成子函数(不包含主函数),把各函数的声明放在一个头文件里,然后新建主函数分别调用。本回答被提问者采纳
第2个回答  2008-10-13
可以用GOTO语句
第3个回答  2008-10-13
厉害啊

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网