编写程序,从键盘输入正整数n,计算n!并输出n和n!。(要求:分别用while、

编写程序,从键盘输入正整数n,计算n!并输出n和n!。(要求:分别用while、,第1张

注意:如果将结果存放在int

型变量中,输入的n值必须小8,否则,结果超出了整型变量所允许的最大数

看样子你的系统中sizeof(int)值为2。

#include<stdioh>

void

t1(int);

void

t2(int);

void

t3(int);

void

main(){

int

n;

printf("n

must

be

more

than

0

and

less

then

8\ninput

n:");

scanf("%d",&n);

if(

0

>=

n

||

8

<=

n

){

printf("n

must

be

more

than

0

and

less

then

8");

return

1;

}

t1(n);

t2(n);

t3(n);

}

void

t1(int

n){

int

sum=1;

int

i

=

n;

while(

1

<

i

){

sum

=

i;

i--;

}

printf("while

res

is

%d

n

is

%d\n",

sum,

n);

}

void

t2(int

n){

int

sum=1;

int

i

=

n;

do{

sum

=

i;

i--;

}while(

1

<

i

);

printf("do

while

res

is

%d

n

is

%d\n",

sum,

n);

}

void

t3(int

n){

int

sum=1;

int

i;

for(

i

=

n;

i

>

1;

i--){

sum

=

i;

}

printf("for

res

is

%d

n

is

%d\n",

sum,

n);

}

代码:

#include&lt;iostream&gt;

using namespace std;

int main()

{

int sum=0;

int n=0;

intarray;//指向整型的指针的指针

cout&lt;&lt;"请输入矩阵的维数:"&lt;&lt;endl;

cin&gt;&gt;n;

array=new int[n];//存放指针的数组

for(int k=0;k&lt;n;k++)

{

array[k]=new int[n];//指向一个整型数组

}

cout&lt;&lt;"请输入nn个值:"&lt;&lt;endl;

for(int i=0;i&lt;n;i++)

{

for(int j=0;j&lt;n;j++)

{

cin&gt;&gt;array&lt;i&gt;[j];

cout&lt;&lt;array&lt;i&gt;[j]&lt;&lt;"";

}

cout&lt;&lt;endl;

}

for(int i=0;i&lt;n;i++)

sum+=array&lt;i&gt;&lt;i&gt;;

cout&lt;&lt;"两条对角线元素之和为:"&lt;&lt;sum&lt;&lt;endl;

system("pause");

return 0;

}

扩展资料:

函数名:system

功能:发出一个DOS命令

用法:int system(charcommand);

程序例:

#include&lt;stdlibh&gt;

#include&lt;stdioh&gt;

int main(void)

{

printf("About to spawn and run a DOS command\n");

system("dir");

return 0;

}

如:system("pause")可以实现冻结屏幕,便于观察程序的执行结果;system("CLS")可以实现清屏 *** 作。而调用color函数可以改变控制台的前景色和背景,具体参数在下面说明。

例如,用system("color 0A");其中color后面的0是背景色代号,A是前景色代号。各颜色代码如下:

0=黑色1=蓝色2=绿色3=湖蓝色4=红色5=紫色6=**7=白色8=灰色9=淡蓝色A=淡绿色B=淡浅绿色C=淡红色D=淡紫色E=淡**F=亮白色

(注意:Microsoft Visual C++60支持system)

颜色属性由两个十六进制数字指定--第一个对应于背景,第二个对应于前景。每个数字

可以为以下任何值:

0=黑色8=灰色

1=蓝色9=淡蓝色

2=绿色A=淡绿色

3=浅绿色B=淡浅绿色

4=红色C=淡红色

5=紫色D=淡紫色

6=**E=淡**

7=白色F=亮白色

参考资料:

百度百科——system(函数)

首先,可以先检查一下sharpsfs461n电脑机器的configsys文件,看看是否已经正确安装了此驱动程序;

其次,把sharpsfs461n的驱动程序文件重新下载下来,安装,再次确认驱动程序功能是否正常;

再次,如果驱动程序安装不正确,将驱动程序卸载,进行重新安装;

最后,如果sharpsfs461n驱动程序无法安装,可以尝试把设备移到其他电脑机器上,看是否能正常安装与运行。

这个是很多学生的作业题

计算机里的数据都是二进制的,不论是整数还是字符,字符串就是很多个字符的序列。

比如一个整数65,int i=65;

我们打印时用%d,%c,%x分别可以打印出十进制,ASCII字符,十六进制。

在计算机里int作类型内存中十六进制表示为0x41,ASCII码指'A'字符。

所以打印得出65,A,41

我们通过%和后面跟的dcx来控制输出,系统自动将内存中二进制相应显示。

依你的题呢,就是还打出65,但是此65是在内存中新开的内存区,其中是'6','5'两个字符。

以下是我写的简单代码,有考虑不全的地方很多,比如没考虑负数等等。

#include <stdioh>

int main()

{

int i=0,s[4];

int n=65;

while(n!=0)

{

s[i++]=n%10;

n=n/10;

}

i--;

while(i>=0)

{

printf("s[%d]=%d\n",i--,s[i]);

}

return 0;

}

/

mainc

Created on: 2011-6-8

Author: icelights

/

#include <stdioh>

#include <stdlibh>

#include <ctypeh>

#include <mathh>

#define APR1 00747 /<1年(含1年)年利率/

#define APR2 00756 /1-3年(含3年)年利率/

#define APR3 00774 /3-5年(含5年)年利率/

#define APR4 00783 /5年以上年利率/

#define A_TO_M 1/12 /月利率 = 年利率 / 12/

#define RTP 12 /Reimbursement total periods还款总期数 =年限12/

#define LENGTH 80

struct LoanInfo

{

/姓名/

char name[LENGTH];

/贷款总额/

double LoanAmount;

/贷款年限/

double LoanYear;

/月付/

double MonthlyPayment;

/总利息/

double TotalInterest;

/还款总额/

double ReimbursementAmount;

/年利率/

double apr;

struct LoanInfo next;

};

void CalcShow(struct LoanInfo cur, struct LoanInfo hd,

struct LoanInfo prv);

int main(void)

{

int temp;

struct LoanInfo head = NULL;

struct LoanInfo prev, current;

current = (struct LoanInfo )malloc(sizeof(struct LoanInfo));

if (NULL == head)

{

head = current;

}

else

{

prev->next = current;

}/End of if (NULL == head)/

puts("请输入姓名");

gets(current->name);

fflush(stdin);

puts("请输入贷款数额(单位:万元)");

scanf("%lf", ¤t->LoanAmount);

fflush(stdin);

puts("请输入贷款年限");

scanf("%lf", ¤t->LoanYear);

fflush(stdin);

printf("姓名:%s,贷款年限:%lf, 贷款数额%lf",

current->name, current->LoanYear, current->LoanAmount);

prev = current;

puts("请确认Y/N");

temp = getchar();

switch(toupper(temp))

{

case 'Y' : CalcShow(current, head, prev);

break;

case 'N' : free(current);

main();

break;

default : puts("输入错误");

free(current);

break;

}

return 0;

}

void CalcShow(struct LoanInfo cur, struct LoanInfo hd,

struct LoanInfo prv)

{

char lcv_temp;

if (cur->LoanYear <= 1)

cur->apr = APR1;

else if (cur->LoanYear <= 3)

cur->apr = APR2;

else if (cur->LoanYear <= 5)

cur->apr = APR3;

else

cur->apr = APR4;

/End of if (year <= 1)/

cur->LoanAmount = 10000 cur->LoanAmount;

cur->ReimbursementAmount = cur->LoanAmount pow((1 + cur->apr), cur->LoanYear);

cur->MonthlyPayment = cur->ReimbursementAmount / (cur->LoanYear RTP);

cur->TotalInterest = cur->ReimbursementAmount - cur->LoanAmount;

printf("姓名:%s 贷款年限:%0lf\n"

"贷款数额:%2lf 每月还款额:%2lf\n"

"利息合计:%2lf 还款总额:%2lf\n",

cur->name, cur->LoanYear, cur->LoanAmount,

cur->MonthlyPayment, cur->TotalInterest, cur->ReimbursementAmount);

puts("是否继续计算Y/N");

lcv_temp = getchar();

switch(toupper(lcv_temp))

{

case 'Y' : free(cur);

main();

break;

case 'N' : free(cur);

exit(0);

default : puts("输入错误");

free(cur);

main();

break;

}

system("pause");

}

以前做过一个差不多的程序(不过是用链表实现的) 跟你稍微改了下

用了3个文件(改成一个也很简单的^_^)

希望你用的上吧^_^

文件listh

#ifndef _LIST_H

#define _LIST_H

struct Student

{

char szName[20]; // 姓名

int nScore1; // 科目1

int nScore; // 科目2

int nNumber; //平均分

////

Student pNext; // 指针

};

// 声明链表头指针

extern Student g_pHead;

Student CreateNode();

void AddToTail(Student pNew);

void AddToHead(Student pNew);

void InsertNode(Student pNew);

void DeleteNode(int nNumber);

Student FindNode(int nNumber);

void ShowList();

void FreeList();

void Save();

void Load();

void Init();

文件listcpp

#include <stdioh>

#include "Listh"

// 定义链表头指针

Student g_pHead = NULL;

//------------------------------

Student CreateNode()

{

printf("请输入姓名,科目1,科目2:");

Student pNew = new Student;

scanf("%s",pNew->szName);

scanf("%d",&pNew->nScore1);

scanf("%d",&pNew->nScore);

pNew->nNumber = (pNew->nScore1 + pNew->nScore)/2;

pNew->pNext = NULL;

return pNew;

}

//------------------------------

void AddToTail(Student pNew)

{

if (g_pHead == NULL) // 空链表

{

g_pHead = pNew;

}

else // 非空链表

{

Student pTail = g_pHead;

while (pTail->pNext != NULL)

{

pTail = pTail->pNext;

}

pTail->pNext = pNew;

}

}

//------------------------------

void AddToHead(Student pNew)

{

if (g_pHead == NULL) // 空链表

{

g_pHead = pNew;

}

else // 非空链表

{

pNew->pNext = g_pHead;

g_pHead = pNew;

}

}

//------------------------------

void InsertNode(Student pNew)

{

if (g_pHead == NULL) // 空链表

{

g_pHead = pNew;

}

else if (pNew->nNumber > g_pHead->nNumber) // 比头节点小

{

pNew->pNext = g_pHead;

g_pHead = pNew;

}

else // 其他非空普通情况

{

Student pCur = g_pHead;

while (pCur->pNext != NULL)

{

if (pCur->nNumber >= pNew->nNumber &&

pCur->pNext->nNumber < pNew->nNumber)

{

// 找到了,在此处插入

pNew->pNext = pCur->pNext;

pCur->pNext = pNew;

break;

}

else

{

pCur = pCur->pNext;

}

} // end of while

// 处理比尾节点还大的情况

if ((pCur->pNext == NULL) // 必须的!!!

&&(pNew->nNumber < pCur->nNumber))

{

pCur->pNext = pNew;

}

} // end of if-else

}

//------------------------------

void DeleteNode(int nNumber)

{

Student pCur = g_pHead;

Student pPre = g_pHead;

while (pCur != NULL)

{

if (pCur->nNumber == nNumber)

{

// 找到了,删除他

pPre->pNext = pCur->pNext;

if (pCur == g_pHead)

{

g_pHead = pPre->pNext;

delete pCur;

}

else

{

delete pCur;

}

break; // !!!

}

else

{

pPre = pCur; // !!!

pCur = pCur->pNext;

}

}

}

//------------------------------

Student FindNode(int nNumber)

{

Student pCur = g_pHead;

while (pCur != NULL)

{

if (pCur->nNumber == nNumber)

break;

pCur = pCur->pNext;

}

return pCur;

}

//------------------------------

void ShowList()

{

Student pTail = g_pHead;

while(pTail != NULL)

{

printf("姓名:%s,科目1:%d,科目2:%d,平均分:%d\n",

pTail->szName,

pTail->nScore1,

pTail->nScore,

pTail->nNumber);

pTail = pTail->pNext;

}

}

//------------------------------

void FreeList()

{

Student pTail = g_pHead;

while (pTail != NULL)

{

Student pTemp = pTail->pNext;

delete pTail;

pTail = pTemp;

}

g_pHead = NULL;

}

//------------------------------

void Save()

{

FILE pf = fopen("studenttxt", "w");

Student pTail = g_pHead;

while(pTail != NULL)

{

fprintf(pf, "%s %d %d %d\n",

pTail->szName,

pTail->nScore1,

pTail->nScore,

pTail->nNumber);

pTail = pTail->pNext;

}

fclose(pf);

}

//------------------------------

void Load()

{

FILE pf = fopen("studenttxt", "r");

while(NULL != pf)

{

Student pNew = new Student;

pNew->pNext = NULL;

fscanf(pf, "%s",pNew->szName);

fscanf(pf, "%d",&pNew->nScore1);

fscanf(pf, "%d",&pNew->nScore);

int nRes = fscanf(pf, "%d",&pNew->nNumber);

if(nRes == EOF)break;

InsertNode(pNew);

}

fclose(pf);

}

//------------------------------

void Init()

{

printf("\t\t学员管理系统\n\n");

printf("\t1新增学员\n");

printf("\t2删除学员\n");

printf("\t3查找学员\n");

printf("\t4显示全部学员\n");

printf("\t5保存到文件\n");

printf("\t6从文件中读取\n\n");

}

文件maincpp

#include <stdioh>

#include "listh"

void main(void)

{

int nN = 0; //菜单选择

int nNumber = 0;

Student FTemp, pNew;

Init();

while(1)

{

printf("请选择 *** 作: \b\b\b");

scanf("%d", &nN);

switch(nN)

{

case 1:

pNew = CreateNode();

InsertNode(pNew);

printf("\n");

break;

case 2:

printf("请输入欲删除的学生的平均分:");

scanf("%d", &nNumber);

DeleteNode(nNumber);

printf("删除完毕\n\n");

break;

case 3:

printf("请输入欲查找的学生的平均分:");

scanf("%d", &nNumber);

FTemp = FindNode(nNumber);

if( FTemp != NULL )

{

printf("姓名:%s 科目1:%d 科目2:%d 平均分\n:%d",

FTemp->szName,

FTemp->nScore1,

FTemp->nScore,

FTemp->nNumber);

printf("\n");

}

break;

case 4:

ShowList();

printf("\n");

break;

case 5:

Save();

printf("保存完毕\n\n");

break;

case 6:

Load();

printf("读取完毕\n\n");

break;

}

}

}

N一般只是程序段号,很多情况我们的程序面板上为了简洁化都是隐藏起来的。

往往一般只有在运用到一些循环程序指令时会用到,比如说常用的G71、G72、G73、G76等复合循环时才会用到,而在隐藏的情况下,我们可以自己编写N_ _来自定义程序段号。举例拿G71来说:

M03 S800;

G98;

T0101 M08;

G0 X100 Z2

G71 U25 R05

G71 P1 Q2 U05 W01 F100;

N1 G0 X…………

……省略中间要循环(从要循环的程序起点段号1到结束的程序段号2)

N2 ……

G0 X100 Z100;

M30;

纯手打,望采纳

以上就是关于编写程序,从键盘输入正整数n,计算n!并输出n和n!。(要求:分别用while、全部的内容,包括:编写程序,从键盘输入正整数n,计算n!并输出n和n!。(要求:分别用while、、C语言:编写程序,求一个n×n矩阵对角线元素之和。、sharpsf-s461n驱动程序无法使用等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10220185.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存