c语言改错题if
㈠ c语言改错题
#include"stdio.h"
fact(intn)
{
if(n==1)return1;
elsereturnn*fact(n-1);
}
calcSum(intn)
{
inti,sum=0;
for(i=1;i<=n;i++)
{
sum+=fact(i);
}
returnsum;
}
voidmain()
{
intn,sum=0;
printf("Pleaseinputn:");
scanf("%d",&n);
sum=calcSum(n);
printf("sumis:%d ",sum);
}
㈡ c语言中if语句常见的错误有哪些
c语言中if语句常见的错误有:
1、if语句的错误使用
if(3>2);
printf("hello");
else
printf("hi");
2、if语句的错误使用
if(3>2)
printf("one");
elseif(3>1)
printf("tow");
else(3>0)
printf("three");
(2)c语言改错题if扩展阅读
正确使用if语句
if语句是指如果满足某种条件,就进行相应的处理。例如,小明妈妈跟小明说“如果你考试得了100分,星期天就带你去游乐场玩”。这句话可以通过下面的一段伪代码来描述。
如果小明考试得了100分
妈妈星期天带小明去游乐场
在上面的伪代码中,“如果”相当于C语言中的关键字if,“小明考试得了100分”是判断条件,需要用()括起来,“妈妈星期天带小明去游乐场”是执行语句,需要放在{}中。修改后的伪代码如下:
if(小明考试得了100分)
{
妈妈星期天带小明去游乐场
}
上面的例子就描述了if语句的用法,在C语言中,if语句的具体语法格式如下:
if(条件语句)
{
代码块
}
㈢ C语言程序改错题,为什么if(a小于b),max=a,要把a的值赋给max
max=a;
a=b;
b=max;
这是一个交换两变量的过程,作用是交换两个变量的值
首先把a的值赋给max
然后把b的值赋给a
最后把max赋给b,由于max的值是原来a的值,所以b相当于得到了a的值
交换过程结束
所以:
if (a < b) { .... }表示,如果a小于b,则交换a与b
if (a < c) { .... }表示,如果a小于c,则交换a与c
㈣ c语言if语句题目,错在哪里了怎么改
if(x=0)写错了,应该是if(x==0)
㈤ c语言改错题
#include<stdio.h>
#include<string.h>
voidpanan(char*id)//1
{inti;
for(i=6;i<=9;i++)
printf("%c",id[i]);
printf("year,");
if(id[16]%2==0)//2
printf("sex:Female ");
else
printf("sex:Male ");
}
voidmain()
{charid[19];
intnum;
printf("pleaseinputIDCARD: ");
scanf("%s",id);//3
num=strlen(id);
if(num==18)
panan(id);//4
else
printf("错误 ");
getchar();
}
㈥ C语言程序改错题
答:改错如下所示,在程序错误部分有提示。
#include <stdio.h>
int main (void){
int a,b,c,max;//第一处错误,max定义未使用,t未定义却使用了。有两种解决办法,将下面t出现的地方用max代替,或者重新定义t,取消对max的定义。
printf (""请输入3个整数: ");
scanf ("%d%d%d" , &a ,&b,&c);
if (a<b);//第二处错误,if语句后有对应的操作,不能出现分号,否则会变成空语句,对应的操作也不会执行。此处删除分号,即可。
{t=a; a=b; b=t; }//第三处错误,t未定义,建议替换成max
。
if (a<c)
{t
=a; c=a
; c=t; }//第四处错误,t未定义,还有第二个语句应改为a=c
。
if(b>c)//第五处错误,按降序排序,判断条件应改成b<c
。
{ t
=b; b=c; c=t
;}//第六处错误,t未定义,建议用max替换。
printf("由大到小顺序为:%d %d %d " ,a,b,c);
return 0;
}
㈦ c语言改错题
改错,并经实际运行,结果如下图:
#include<conio.h>
#include<stdio.h>
//intfound(inta[10][30],intn)//错误,弹出错误[Error]
intfound(inta[10][30],intn)//改错
{
inti,j,s,k,x;
//for(i=0,k=1;k<=n;k++)//修改
i=0;//此处修改,但不算错误
for(k=1;k<=n;k++)
{
//s=1;//错误
s=0;//改错,累加器,初始值为0
x=k;
for(;x<n;x++)
{
s+=x;
if(s>=n)break;
}
if(s==n)
{
//for(j=0;k+j<=x;j++)//错误,丢失最后1个元素
for(j=0;k+j<=x;j++)//改错
a[i][j]=k+j;
i++;
}
}
returni;
}
intmain()
{
inta[10][30]={0};
inti,j,n,m;
printf("n=");
//scanf("%d",&n);错误
scanf("%d",&n);//改错:n-->&n
m=found(a,n);
if(m>0)
{
printf("%dserials
",m);
for(i=0;i<m;i++)
{
for(j=0;a[i][j]!=0;j++)
printf("%4d",a[i][j]);
printf("
");
}
}
else
printf("notfound
");
getch();
return0;
}
㈧ 这是C语言程序改错题,程序中if(e=n*9)为什么要改成if(e==n*9)
这是因为(e=n*9)是一个赋值表达式,而不是一个逻辑表达式,要完成判断e是否等于9倍的n,就必须要使用逻辑表达式的。所以要改成if(e==n*9)