c语言运行不了函数 c语言运行后不出结果的原因

C语言中输入函数无法执行因为前面输入数字时,最后总要按下回车键,这就输入了一个回车符,而后面的getchar()会读取这个字符,而不等待从键盘输入(因为缓冲区不为空),修改如下:
#include stdio.h
#include stdlib.h
int main()
{
int data[7000]={1,1,0},num,digit=1,i,j,k;
FILE *fp;
【c语言运行不了函数 c语言运行后不出结果的原因】 char fname[50];
printf("\t阶乘计算器\n\t请输入:");
scanf("%d",num);
for(i=1;i=num;i++)
{
if(i%20==0)
{
printf("\n\t当前计算到%10d 的阶乘?。。?.......\n",i);
}
for(j=1;j=digit;j++)
{
data[j]*=i;
}
for(j=1;j=digit;j++)
{
if(data[j]9)
{
for(k=1;k=digit;k++)
{
if(data[digit]9)
{
digit++;
}
data[k+1]+=data[k]/10;
data[k]%=10;
}
}
}
}
printf("\n\n\n\t%d!=\n",num);
for(j=digit;j0;j--)
{
printf("%d",data[j]);
}
printf("\n\n\t%d!共有%d位......\n\n\n",num,digit);
printf("是否保存文件?(y\\n)");
fflush(stdin);/************注意这里 , 刷新缓冲区,避免前面输入数字时遗留的回车符影响这里的读取******/
if(tolower(getchar())=='y')
{
printf("请输入文件名:");
gets(fname);
if((fp=fopen(fname,"w"))==NULL)
{
printf("打开文件%s失败",fname);
exit(0);
}
fprintf(fp,"\t%d!=\n",num);
for(j=digit;j0;j--)
{
fprintf(fp,"%d",data[j]);
}
fprintf(fp,"\n%d!有%d位......\n\n\n",num,digit);
fclose(fp);
}
return 0;
}
c语言编写一个函数,没有报错,但是无法运行 , 请帮忙指出原因所在,谢谢在main函数中,
fun(a, b, 4);
第一个参数a是字符串常量,其内容是不能修改的
而在函数fun函数中,
while(a[n] != '\0')
{
for(i = n; a[i] != '\0'; i++)
a[i+1] = a[i];//该语句修改了字符串a的内容
}
修改了第一个字符串指针指向的内容 , 因此运行时会出错
另外fun函数这么写可以实现你想要的功能
void fun(const char *a, char *b, int n){
int i, j;
for(i = 0, j = 0; a[i]; i++){
if(i == n) continue;
b[j++] = a[i];
}
b[j] = 0;
}
c语言的编程为什么不能运行?首先c语言运行不了函数你要明白是语言c语言运行不了函数的一个整体的框架c语言运行不了函数,如果你整体的框架是没有构建好的话,那么c语言运行不了函数他是不能够运行的,如果他里面存在c语言运行不了函数了一些错误,他就会导致无法运行,或者是让你重新修改 。
c语言函数的问题..怎么运行不了你好
你的函数要注意形参和实参的传递啊
#includestdio.h
int
s(int
n);
int
main(void)
{
int
n;
printf("input\n");
scanf("%d",n);
n=s(n);
printf("n=%d\n",n);
return
0;
}
int
s(int
n)
{
int
i;
for(i=n-1;i=1;i--)
n=n+i;
printf("n=%d\n",n);
return
n;
}
因为你s函数没有返回值,所以不会改变main函数中n的值
所以在加一句
int
s(int
n);
希望对你有帮助啊
c语言写函数,为什么函数不执行?这是因为getchar前面有一个scanf("%lf",a);
你输入完a的值后,是否会
输入回车
这个回车就是一个字符啊,这个字符就被getchar当做你输入的字符了 , 所以看起来像没有执行 , 其实是执行了 。
可以在getchar()前使用

推荐阅读