C语言高手们帮帮忙呀

作者&投稿:巧楠 (联系方式在网页底部的电邮联系)
C语言问题 急啊 高手们帮帮忙~

scanf("%s",abc);
此句最后有一个回车键,它会一直保存在缓存中,直到被读入,也即while((ch=getchar())!='
')一进入循环就会读入回车键直接跳出循环,在while((ch=getchar())!='
')之前加一句getchar();即可

int main()
{
FILE *fp1 , *fp2;
char ch1 , ch2;
int h , l ,flag = 1;
h = l = 1;

if((fp1 = fopen("f1.txt" , "r")) == NULL)
{
printf("-------打 开 错 误-------
");
exit(0);
}
if((fp2 = fopen("f2.txt" , "r")) == NULL)
{
printf("-------打 开 错 误-------
");
fclose(fp1);
exit(0);
}

while(!feof(fp1)&&!feof(fp2))
{
ch1 = fgetc(fp1);
ch2 = fgetc(fp2);

if(ch1 == ch2){
if(ch1 == '
'){
l = l + 1;
h = 1;
}
else
h = h + 1;
}
else{
flag = 0;
break;
}
}
fclose(fp1);
fclose(fp2);

if(flag == 0)
printf("第一个不同字符出现在第%d行第%d列
", l , h);
else
printf("文本文件中内容相同
");

system("pause");
return 0;
}

main() /*主题
{
char c1,c2; /*定义两个变量,C1和C2
for(c1='0',c2='9';c1<c2;c1++,c2--); /*C1的初始值为0,C2的初始值为9如果C1<C2,则C1进行自增,C2进行自减
printf("%c%c",c1,c2); /*输入C1C2的值
printf("\n"); /*输出回车(即换行)
}

明显,首先C1C2从09变成18,接着27,36,45,最后变成54,此时C1的值为5,C2的值为4,不满足C1<C2,不再进行循环,就把这个结果输出,所以输出是54

不过建议你检查一下细小的地方。

FOR语句后面不能加分号

c1=0,c2=9,c1<c2,所以,c1++,c2--
此时c1=1,c2=8,程序继续循环
c1=2,c2=7
c1=3,c2=6
c1=4,c2=5
c1=5,c2=4
此时c1>c2循环终止,跳出。
答案就是5和4

因为你在FOR语句后面加了个分号,
所以你的printf("%c%c",c1,c2)是在循环完成后才输出数据,
循环的结果是C1小与C2,即当c1='5',c2='4'时不满足循环条件,
所以最后输出的是'54'了.

for循环后的分号意味着循环体中内容为空,什么都不做,只是不断在改变循环条件,当循环条件不成立时,执行分号以后的语句
将for后的分号去掉就OK!

相关视频

C语言高手帮帮忙!
(1)程序的输出结果为:1 原因如下:由于a被初始化为100,所以a>100不成立,进入else分支进行处理:else printf ( "%d\\n", a<=100 );又由于a<=100成立,所以该判断式的值为1,所以最后输出1 (2)当a=1,b=2,c=3时,以下if语句执行后,a、b、c中的值分别是:a=3,b=1,c=1 原因如下:if(

各位c语言高手来帮个忙
bool funtion(int n){ int gewei = 0,shiwei=0,baiwei=0,qianwei=0;int result = 0;\/\/计算各个位上的数值[因为在c语言中,整数整 \/\/数的结果依旧是整数。]gewei = n%10;shiwei = (n\/10)%10;baiwei = (n\/100)%10;qianwei= (n\/1000)%10;result = gewei+shiwei+baiwei+qianwei;...

高手们请帮帮 解C语言题
这题……首先咱们从程序运行入口处分析,程序看到main()函数,然后就插进去。瞧到了你定义的C变量,然后调用fun,fun中你又定义了个变量,还是你定义过的全局变量的名字,但此时全局变量被你定义的这个局部变量覆盖住了,也就是你之前定义的那个全局变量a在fun函数中不作用,作用的是你在这个函数重新...

C语言高手,帮忙写几个程序
1:include<stdio.h> \/\/头文件 include<math.h> void main(){ double a[10]={1,1.5,2,3,4.5,6.6,7,10,15,80}; \/\/一个数组,我假设为10个数 double x; \/\/你要输入的整数或浮点数 int i;printf("输入数字:");scanf("%lf",&x);for(i=0;i<10;i++){ if(fabs(x...