注意:如果将结果存放在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<iostream>
using namespace std;
int main()
{
int sum=0;
int n=0;
intarray;//指向整型的指针的指针
cout<<"请输入矩阵的维数:"<<endl;
cin>>n;
array=new int[n];//存放指针的数组
for(int k=0;k<n;k++)
{
array[k]=new int[n];//指向一个整型数组
}
cout<<"请输入nn个值:"<<endl;
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
cin>>array<i>[j];
cout<<array<i>[j]<<"";
}
cout<<endl;
}
for(int i=0;i<n;i++)
sum+=array<i><i>;
cout<<"两条对角线元素之和为:"<<sum<<endl;
system("pause");
return 0;
}
扩展资料:
函数名:system
功能:发出一个DOS命令
用法:int system(charcommand);
程序例:
#include<stdlibh>
#include<stdioh>
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驱动程序无法使用等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)