c程序关于数组的一个小问题,帮忙看一下

来源:百度知道 编辑:UC知道 时间:2024/05/14 15:55:23
不知道为什么,输入10字符,输出总是很奇怪
比如输入
10,3
abcdefghij
输出居然是
abcdefghi
ghi
abcdef

而我原计划是输出
abcdefghij
hij
abcdefg
很奇怪的是,最后一个j居然没有打印出来,而且ghi后面怎么会有个回车换行?
请看程序:

#include<stdio.h>
main()
{
void dispose(int n,int m,char a[]); //处理函数
char a[100];
int i,n,m;
printf("printf two numbers :");
scanf("%d,%d",&n,&m);

printf("please input %d chars :",n);

for(i=0;i<n;i++)
{
scanf("%c",&a[i]);
}

for(i=0;i<n;i++)
{
printf("%c",a[i]);
}

printf("\n");

dispose(n,m,a);

for(i=0;i<n;i++)
{
printf("%c",a[i]);
}
printf("\n");
}

void dispose(int n,int m,char a[])
{
int i,j;
char t;

for(i=0;i<m;i++)
{
t=

将程序中的for(i=0;i<n;i++)都改成for(i=0;i<=n;i++)
t=a[n-1]; //临时存储最后一个值
for(j=n-1;j>=0;j--)
改成t=a[n]; //临时存储最后一个值
for(j=n;j>=0;j--)

睡觉了,明天有空看~
我运行后结果是:
printf two numbers : 10 3
please input 10 chars:abcdefghij
3
abcdefg
3
abcdefg

同意上面的观点