c语言错误大哥大姐帮帮忙

来源:百度知道 编辑:UC知道 时间:2024/05/25 13:09:01
#include<stdio.h>
void main()
{
char a[100],b[100];
printf("please input a sentence:\n");
scanf("%s",a[100]);
int i,j;
for(i=0;i<=99;i++)
{
if(a[i]!=' ')
{b[j]=a[i];
j++;
}
}
printf("%s",b[100]);
}
这个程序在vc++中编译后,运行时说cpp1。exe程序有问题需要关闭,为什么啊,怎么解决啊,跪求。。。。。。。。。。给分20啊

程序问题好大啊!
1、scanf("%s",a[100]); 严重错误啊,a[100]是一个错误的非法的引用,因为这个数组的最大的索引号是a[99],整个就错的太离谱了。下面的b[100]也是的。
2、scanf也不能直接接受string。如果不知道怎么用的话可以用gets函数,比较方便;
3、j只进行了定义,没有赋初值,这也是一个很严重的错误。知道怎么改了啊!赋值为0;
总结:一般的出现你这样的问题,导致exe错误的,都是由于程序中使用了数组或指针,并且引用了非法的地址,导致了程序的崩溃。这样只要检查一下这些地址就好了。还有就是要多注意一些细节!
下面附一个程序吧:
#include<stdio.h>
void main()
{
char a[100],b[100];
printf("please input a sentence:\n");
gets(a);
int i,j=0;
for(i=0;i<=99;i++)
{
if(a[i]!=' ')
{
b[j]=a[i];
j++;
}
}
printf("%s",b);
getch();
}

我感觉可能最大是你的编译器有问题

其实我还听怀疑就是你建立文件的时候有问题

我给你调试过,在我这没问题。

j 没有初始化。还有的我也不清楚,
这样改下好象可以了
#include<stdio.h>
void main()
{
char a[100],b[100];
printf("please input a sen