用C语言写一个程序实现以下功能

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用C语言写一个程序实现以下功能相关的知识,希望对你有一定的参考价值。

本人C学的不太好,各位高手帮帮忙,谢谢咯!
要求如下:

主界面
*******************************
******* 系统 ******************
*****请选择以下你要的操作******
1.求阶乘倒数之和.(用递归法)
2.将一个十进制数转换成R进制数(利用函数调用)
3.求3个数的最大公约数和最小公倍数(利用函数调用)
4.把一个整数插入到按由小到大排列的数列中,插入后仍然保持由小到大的顺序排列.(利用数组和指针来做)
5.求N阶方阵的转置矩阵(利用多维数组或指针作函数参数)
如果有完整的并且通过调试有用的话,可以追加分数!
大家帮帮忙咯!我急用,谢谢!

//以下提示,具体的自己去实现
/*
*功能函数
*/

/*求阶乘倒数之和(用递归法)*/
factorial();
long factr(int n);

/*
*以下函数实现将一个十进制数转换成R进制数(利用函数调用)
*五个函数
*/
decimalchange();
unsigned int check(char *s,unsigned int m);
void strtonum(char* str,unsigned int *p,unsigned int m);
unsigned long mto10(int *p,unsigned int mlen,unsigned int m);
void tenton(unsigned long l10,int *p,int n,unsigned int nlen);

/*多个数的最大公约数和最小公倍数*/
gCDAddLCM();/*主函数*/
int gcd(int a, int b); /* 最大公约数 */
int cmd(int a, int b); /* 最小公倍数 */
int multipleGCD(int arr[], int len); /* 多个数的最大公约数 */
int multipleCMD(int arr[], int len); /* 多个数的最小公倍数*/

/*把一个整数插入到按由小到大排列的数列中
*插入后仍然保持由小到大的顺序排列
*/
insertCosmos();

/*求N阶方阵的转置矩阵*/
transposedMatrix();

int main()

int c;
scanf("%d",&c);
while(c!=0)

printf("**********************************************************\n");
printf("************************* 系统 ***************************\n");
printf(" 主菜单(请选择以下你要的操作) \n");
printf(" 1 求阶乘倒数之和(用递归法) \n");
printf(" 2 将一个十进制数转换成R进制数(利用函数调用) \n");
printf(" 3 求3个数的最大公约数和最小公倍数(利用函数调用) \n");
printf(" 4 把一个整数插入到按由小到大排列的数列中,
插入后仍然保持由小到大的顺序排列.(利用数组和指针来做) \n");
printf(" 5 求N阶方阵的转置矩阵 \n");
printf(" 0 退出 \n");
printf(" 输入选择 (1--5,0表示结束): ");

switch(c)

case 1:factorial();break;
case 2:decimalchange();break;
case 3:gCDAddLCM();break;
case 4:insertCosmos();break;
case 5:transposedMatrix();break;
default:;

return 0;

//main end
参考技术A 问那么多问题?

我刚刚写了一个进制转换的,给你了。
---------------vc6.0测试通过---
-------- 我的可以支持到16进制数的转换------------
----------要更多的进制表示,你可以在switch语句中自己加就可以了---------------

#include <stdio.h>
#include <stdlib.h>

void main()

int nNum,Rad,i=0,Residue;
int Store[50];
printf("请输入一个任意整数:");
scanf("%d",&nNum);
printf("\n请输入一个合法的表示进制的基数[2,16]:");
scanf("%d",&Rad);
if(Rad<=1)
exit(-1);
printf("\n转换后的结果是:");
while(nNum>=Rad)

Residue=nNum%Rad;//0
nNum/=Rad;//1
Store[i]=Residue;//0
++i;

Store[i]=nNum;

for(;i>=0;--i)
switch(Store[i])

case 0:
printf("0");
break;
case 1:
printf("1");
break;
case 2:
printf("2");
break;
case 3:
printf("3");
break;
case 4:
printf("4");
break;
case 5:
printf("5");
break;
case 6:
printf("6");
break;
case 7:
printf("7");
break;
case 8:
printf("8");
break;
case 9:
printf("9");
break;
case 10:
printf("A");
break;
case 11:
printf("B");
break;
case 12:
printf("C");
break;
case 13:
printf("D");
break;
case 14:
printf("E");
break;
case 15:
printf("F");
break;


printf("\n");

参考技术B main()
int c;
printf("请选择以下你要的操作");
printf("1.求阶乘倒数之和");
printf("2.将一个十进制数转换成R进制数");
printf("3.求3个数的最大公约数和最小公倍数");
printf("4.把一个整数插入到按由小到大排列的数列中,插入后仍然保持由小到大的顺序排列");
printf("5.求N阶方阵的转置矩阵");
scanf("%d",&c);
switch(c)
case:1 //写自定义函数。1

case:2 //写自定义函数。2

break;
case:3 //写自定义函数。3

break;
case:4 //写自定义函数。4

break;
case:5 //写自定义函数。5

break;
default:
printf("你输入的是错误的选择");
参考技术C 眼熟 不过
我好象不会 啊

对不起了本回答被提问者采纳
参考技术D 应该不难……

怎样用C语言写以下程序:由键盘输入一个长度小于20的字符串保存到一个数组中,利用这个字符串生成一个回文

字符串,并将得到的新字符串输出。例如:输入字符串:abcd,生成字符串:abcdcba。
以下是我写的程序:
#include<stdio.h>
#include<string.h>
int main()

char a[20],b[20];
int i,c,j;
printf("请输入一个长度小于20的字符串:\n");
gets(a);
c=strlen(a)-1;
for(i=1,j=1;i<=c;i++,j++)
b[j]=a[c-i+1];
puts(b);
printf("%s",strcat(a,b));

希望各位高手帮帮忙。

小错误,没有对j赋初值
在定义的时候改成int i,c,j=0;就可以了追问

好像还是不行?。。。。。。。你运行一下试试。
这是我的运行结果:

追答

#include
#include
int main()

char a[20],b[20];
int i,c,j;
printf("请输入一个长度小于20的字符串:\n");
gets(a);
c=strlen(a)-1;
for(i=1,j=0;i<=c;i++,j++)
b[j]=a[c-i];
b[j]='\0';
puts(b);
printf("%s",strcat(a,b));

这下可以了。。。。

追问

太感谢了!谢谢高手的帮忙,我是一个C语言初学者,还请多多指教!

参考技术A #include<stdio.h>
#include<string.h>
int main()

char a[20],b[20];
int i,c,j;
printf("请输入一个长度小于20的字符串:\n");
gets(a);
c=strlen(a)-1;
//printf("%d",c);
for(i=1,j=1;i<=c;i++,j++)

b[j-1]=a[c-i];

printf("%s",strcat(a,b));
gets(a);


你的b字符串b[0]为空,所以会输出乱码
参考技术B #include<stdio.h>
#include<string.h>
int main()

char a[40];
int i,c;
printf("请输入一个长度小于20的字符串:\n");
gets(a);
c=strlen(a);
for (i=0;i<c;i++)

a[i+c] = a[c-i-2];

puts(a);

return 0;


给分我!呵呵~追问

你写的很好,很感谢。但是,因为你不是最先回答我问题的。所以。。。。。。
但我想或许我们能成为朋友。你说呢?
因为我是C的初学者,所以还得各位高手多多指教!

参考技术C 这个问题,,我也很想问诶。我们马上考试就考这个啊。。。。呜呜呜。。。。得到正确答案通知哈啊、、

以上是关于用C语言写一个程序实现以下功能的主要内容,如果未能解决你的问题,请参考以下文章

c语言中如何实现模块化?

用C语言写51单片机闹钟程序

用C语言编写一个计算器程序,实现加,减,乘,除,求平方根(正数),倒数等功能.

八皇后问题求解的C语言程序的实现

编写一个C语言程序,显示如下菜单并实现相应的菜单选择功能

用C语言编写