首页 > 软件 > 一道C++问题,求解答

一道C++问题,求解答

软件 2022-10-16

一道C语言编程题,求解答并且说明错误原因!!

//一道C语言编程题,求解答并且说明错误原因!! 50 //编程题:编程实现:从键盘输入三角形的三条边长,判断这三条边是否能构成三角形,如不能打印“不构成三角形”,如能,请判断该三角形是什么类型的三角形? //提示:程序只要能根据输入判断并打印出:不构成三角形、等边三角形、等腰三角形、直角三角形、普通三角形五种情况即可。另外,三条边长度可以是小数。 //要求:必须使用if …else if…else if…else…多分支结构实现。 //输入格式:3 4 5 //输出格式:直角三角形 #include #include int canBe(double

一道c语言编程题求大神解答,找一下我错在哪了,谢谢了?

错误1:宏定义最后没有分号,将#define D 500;改为#define D 500 错误2:l不是整数,因此将l定义为int型就错了 错误3:既然规定输入格式为P=,那么输入时就不能直接输入数值,而应在数值之前输入P=,例如输入P=6000 另外,程序的不妥之处: 1、利润不一定是整数,因此将P定义为int型不妥 2、if-else语句不是这样用的。既然可以确定全部范围,那么这样写: if(P<1000) number=1; else if(P<2000) number=2; else if(P<5000) number=3; else if(P<10000) number=4; 对应的

C语言编程问题求解答

按照题目要求编写的C语言程序如下

第9题

#include

int main(){

int i,j,N;

scanf("%d",&N);

for(i=1;i<=N;i++){

for(j=1;j<=N-i;j++){

printf(" ");

}

for(j=1;j<=2*i-1;j++){

printf("*");

}

printf("\n");

}

return 0;

}

第11题

#include

int main(){

int i,j;

for(i=0;i<=9;i++){

if(i==0){

printf("*");

for(j=1;j<=9;j++){

printf("%3d",j);

}

}else{

printf("%d",i);

for(j=1;j

printf("%3c",' ');

}

for(j=i;j<=9;j++){

printf("%3d",i*j);

}

}

printf("\n");

}

return 0;

}

一道c语言问题,求解答,谢谢

#include
#include
#include
#defineMAX50
typedefstruct{
intxh;//学生学号、姓名和考试成绩
charna[MAX];
floatcj;
}datatype;
typedefstructNode{
datatypedata;
structNode*next;
}Seqlist;
voidprint(Seqlist*l);
voidinitList(Seqlist*lp);/*置一个空表*/
voidcreateList(Seqlist*lp,charstrname[]);/*建立成绩顺序表*/
voidsave(Seqlist*lp,charstrname[]);/*保存学生顺序表到指定文件*/
voidsort_cj(Seqlist*lp);/*降序排序*/
voidaverage(Seqlist*lp);/*算平均分并写入文件*/
voidbandscore(Seqlist*lp);/*划分分数段及写入*/
voidchangescore(Seqlist*lp,Seqlist*bk);/*修改成绩*/
intmain()
{
Seqlistlp,bk;
initList(&lp);initList(&bk);
createList(&lp,"score.dat");
createList(&bk,"bk.dat");
sort_cj(&lp);
save(&lp,"result.dat");
average(&lp);
bandscore(&lp);
changescore(&lp,&bk);
sort_cj(&lp);
save(&lp,"result.dat");
return0;
}
/*置一个空表*/
voidinitList(Seqlist*lp)
{
lp->next=0;
lp->data.xh=0;
lp->data.na[0]='\0';
lp->data.cj=0;
}
voidprint(Seqlist*l){
Seqlist*p=l->next;
while(p)
{
printf("%d%s%f\n",p->data.xh,p->data.na,p->data.cj);
p=p->next;
}
}
/*建立成绩顺序表*/
voidcreateList(Seqlist*lp,charstrname[])
{
FILE*fp;
intxh;
floatcj;
Seqlist*p,*tail=lp;
if((fp=fopen(strname,"rb"))==NULL)
{
printf("fileopenerror\r\n");
exit(0);
}
while(!feof(fp))
{
p=(Seqlist*)malloc(sizeof(Seqlist));
fscanf(fp,"%d%s%f",&p->data.xh,p->data.na,&p->data.cj);
tail->next=p;
tail=p;

}tail->next=NULL;
print(lp);
fclose(fp);
}
/*降序排序*/
voidsort_cj(Seqlist*head)
{
Seqlist*tail=NULL;
while(tail!=head->next)
{
Seqlist*pre=head;
Seqlist*cur=pre->next;
while(cur!=tail&&cur->next!=tail)
{
if(cur->data.cjnext->data.cj)
{
//交换当前节点和后一个节点
pre->next=cur->next;
cur->next=cur->next->next;
pre->next->next=cur;
}
pre=pre->next;
cur=pre->next;
}
tail=cur;
}
}
/*保存学生顺序表到文件(追加)*/
voidsave(Seqlist*l,charstrname[])
{
FILE*fp;
Seqlist*lp=l->next;
inti;
if((fp=fopen(strname,"ab"))==NULL)
{
printf("fileopenerror\r\n");
exit(0);
}
while(lp){
fprintf(fp,"%d%s%.2f\r\n",lp->data.xh,lp->data.na,lp->data.cj);
lp=lp->next;
}
fprintf(fp,"\r\n");
fclose(fp);
}
/*算平均分并写入文件*/
voidaverage(Seqlist*l)
{
FILE*fp;
inti,num=0;
Seqlist*lp=l->next;
floats=0,a;
while(lp){
num++;
s+=lp->data.cj;
lp=lp->next;
}
if(num)
a=s/num;
if((fp=fopen("result.dat","ab"))==NULL){
printf("fileopenerror\r\n");
exit(0);
}
fprintf(fp,"平均分为%.2f\r\n",a);
fprintf(fp,"\r\n");
fclose(fp);
}
/*分数段及写入*/
voidbandscore(Seqlist*l)
{
FILE*fp;
if((fp=fopen("result.dat","ab"))==NULL){
printf("fileopenerror\r\n");
exit(0);
}
Seqlist*lp=l->next;
inti,a=0,q=0,w=0,e=0,r=0,t=0,y=0;
while(lp){

a=lp->data.cj/10;
lp=lp->next;
switch(a)
{
case10:q++;break;
case9:w++;break;
case8:e++;break;
case7:r++;break;
case6:t++;break;
default:y++;break;
}
}
fprintf(fp,"成绩为100有%d人\r\n",q);
fprintf(fp,"成绩为90~99有%d人\r\n",w);
fprintf(fp,"成绩为80~89有%d人\r\n",e);
fprintf(fp,"成绩为70~79有%d人\r\n",r);
fprintf(fp,"成绩为60~69有%d人\r\n",t);
fprintf(fp,"不及格的有%d人\r\n",y);
fprintf(fp,"\r\n");
fclose(fp);
}
/*修改成绩*/
voidchangescore(Seqlist*lp,Seqlist*bk)
{
inti,j;
Seqlist*la=lp->next,*lb=bk->next;
while(lb){
while(la){
if(lb->data.xh==la->data.xh)
{
if(lb->data.cj>=60)
la->data.cj=60;
elseif(lb->data.cj>la->data.cj)
la->data.cj=lb->data.cj;
break;
}
la=la->next;
}
lb=lb->next;
}
print(lp);
}

一道C语言的小题目,跪求解答!

问题在于表达式c=(getchar()!='\n') 注意这里的的括号 c= (getchar()!='\n') 本质上是把子表达式getchar()!='\n'的值赋给变量c,换而言之c的值必然是表达式getchar()!='\n' 注意,这里子表达式getchar()!='\n'是一个关系表达式,即判断输入的字符是否是'\n',也就是说其值不是真(1)就是假(0),没有第三种情况了 也就是说c的值不是1就是0,但是ascii码值表中码值为0或1的必然不会是字母数字字符

标签:CC++ 信息技术 C(编程语言) 编程 编程语言

大明白知识网 Copyright © 2020-2022 www.wangpan131.com. Some Rights Reserved. 京ICP备11019930号-18