有时候vc还不如tc好呢?在tc上能运行,到了tc就不行了,怎么回事啊

#include<stdio.h>main(){ int m,n,i; void GCD();printf("enter length:");scanf("%d",&n);for(i=n-1;i>=-n+1;i--){m=(i>0)?i:-i;GCD( m ,✀ ✀);if(i==n-1||i==-n+1){GCD(n,✀*✀);GCD(1,✀尀n✀);}else{GCD(1,✀*✀);GCD(3*n-2*m-4,✀ ✀);GCD(1,✀*✀);GCD(1,✀尀n✀);}}}void GCD(int n,char ch){ while(n-->0)printf("%c",ch);}上面的程序 在tc上就能,到了vc 上就不行了,出现了一个GCD什么两个参数
2026年09月23日 16:48
有5个网友回答
网友(1):

void GCD();
你在主函数中声明的时候没有参数,后面又有两个参数,
void GCD(int , char ) ;这样就行了

网友(2):

int m,n,i;
void GCD();/*声明时参数列表和定义时不一致,这样的坏习惯还是不要养成为妙.*/

网友(3):

没发现问题啊~ 在vc上运行正常啊

网友(4):

你为程序明显不对嘛,
void GCD();声明的没有参数
void GCD(int n,char ch)定义就有参数了
只能说VC比TC好,更能给你检查出错误来

网友(5):

运行出错error: conflicting types for ‘GCD’
我不明白你在这里
int m,n,i;
void GCD();
一开始这么蹦出个void GCD();是什么意思,我把void GCD();去掉就可以了,运行结果是个星号组成的六边形。