编程改错
#include<stdio.h>
structperson
{charname[20];
intcount;
}x1={"ZhongHua",10};
main()
{
structpersonp;//p类型错误
p=x1;
printf("%s %d ",p.name,p.count);//少了分号,只有p是结构体变量时,才能这样引用成员变量
}
2. c语言编程改错8.11
#include<stdio.h>
#include<math.h>
floatarea(floata,floatb,floatc);//当子函数不在main函数之前的时候,这里要有函数声明~
main()//1
{//2
floata,b,c;
printf("请输入三角形的三个边长值: ");//3
scanf("%f%f%f",&a,&b,&c);//4
while(!(a+b>c&&a+c>b&&b+c>a))//5//这里应该加个非,因为原先的条件是判断能够成为三角形,要将它变为不是三角形的时候执行~楼上说的有误!!
{printf("不能构成一个三角形! ");//6
printf("请重新输入三角形的三个边长值: ");//7
scanf("%f%f%f",&a,&b,&c);//8
}
printf("Area=%f ",area(a,b,c));//9//调用子函数不用加参数类型~
}
floatarea(floata,floatb,floatc)//10//子函数应该有返回类型~
{floats,area_s;//11
s=(a+b+c)/2.0;//12
area_s=sqrt(s*(s-a)*(s-b)*(s-c));//13
returnarea_s;//14
}
3. c语言编程改错8.13
#include<stdio.h>
#define N 10
int sum(int x[],int n)//int x代表整型数字,这里需要数组
{ int i=0,s=0;
while(i<=n)
if(x[i]>0)
{s=s+x[i];
i++;
}
return s;
}
main()
{int i=0,s,a[N];
do
{ printf("NO%d: ",i+1);
scanf("%d",&a[i]);
if((-100<=a[i])&&(a[i]<=100))
i++;
else
printf("wrong! input again...\n");
}while(i<N);
s=sum(a,N);//参数传递至需要变量即可 ,删去中括号
printf(" sum=%d\n",s);
}
4. C语言编程的改错
把所有printf 中 逗号,前面的部分加""
把所有scanf 中 逗号,前面的部分加""
把fopen中的参数r 加上双引号""
下面是修改过的,如果使用 tc2.0还需要把//的注释换成/*..*/形式
#include<stdio.h>
#include<string.h>
#include<ctype.h>
void main()
{
char pathname[128]; //文件的绝对路径
int ret;
FILE *fp;
int line; //行数
int word; //单词数
int n_char; //字符数
int ch_all; //包括空格字符数
int ch_blank; //空格数
char ch; //从文件中取出的字符
while(1) {
memset( pathname, 0x00, sizeof( pathname ) );
printf( "请输入文件的绝对路径: ");
scanf(" %s", pathname );
ret = access( pathname, 0 );
if( ret == 0 ) {
break;
}
else {
printf(" 您所输入的文件并不存在! ");
continue; //文件不存在,从新输入文件名
}
}
fp = fopen( pathname, "r" );
if( fp == NULL ) {
printf(" 打开文件失败 "); //打开文件失败,退出程序
exit(1);
}
line = word = n_char = ch_all = ch_blank = 0;
while( !feof( fp ) ) {
ch = fgetc( fp );
if( !isspace( ch ) ) { //如果ch不是空格,字符数加1
n_char++;
}
else {
if( ch == ' ' ) { //如果字符是空格,空格数加1,单词数加1
ch_blank++;
word++;
}
if( ch == ' ' ) { //如果字符是换行,单词数加1,行数加1
line++;
word++;
}
}
}
fclose( fp );
printf( "文件中字符数(不计空格):%d ", n_char-1 );
printf( "文件中字符数( 计空格 ):%d ", n_char+ch_blank-1 );
printf( "文件中单词数 :%d ", word+1 );
printf( "文件中行数 :%d ", line+1 );
}
5. c语言编程!改错!求助急!
第一个问题:i没赋初值,可以在for(i = 0, j = 0;...)一起赋初值;
第二个问题; for (j=0;src[i]=='\0';i++)应该为for (j = 0; src[i] != '\0'; i++)
第三个问题:if (src[i]>'A' && src[i]<'Z')是错的,可以向二楼一样改成if(src[i] < 'A || src[i] > 'Z'');但最好调用ctype.h里的函数isupper()函数,即if( !isupper(src[i]) );这样有利于移植;
第四个问题;dst[j]='\n'应该为 dst[j]='\0'
第五个问题:main函数:delup(b[80], a[80])应该为delup(b, a);
6. c语言改错题技巧
等考二级c改错题?
填空和改错评分是按照文本来评分,也就是说,改正或填对一处,就拿一部分分。
改错18分,每处6分,你的情况是拿12分。但是要注意,改错和填空千万不要在让你改动的以外的地方做出任何改动,那怕只是多了一个空格。也不要再让你改正的地方添加额外的回车。否则后果自负
编程题就不行了,编程题的评分依据是考生文件夹下那个out文件,根据out文件的内容评分。程序没运行就无法创建out文件,没分。程序运行错误,out文件内容错误,同样没分。所以你能看到编程题是“程序运行出正确结果”才给分
有个别模拟软件评分系统很差劲,你说的情况可能会一分不给。这不用担心