回 帖 发 新 帖 刷新版面

主题:望各位不吝赐教

#include<stdio.h>
# define N 80
int fun(int a[],int n)
{int i,j=1;
for(i=1;i<n;i++)
if(a[j-1]!=a[i])
a[j++]=a[i];
return j;
}
main()
{int a[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10},i,n=19;
printf("The original data:\n");
for(i=0;i,n;i++) printf("%3d",a[i]);
n=fun(a,n);
printf("\nThe data after deleted :\n");
for(i=0;i<n;i++) printf("%3d",a[i]);printf("\n\n");
}
此程序,编译连接时都没问题,结果运行时有问题,程序的功能是除去数组中重复的数字,相同数字只保留一个。

回复列表 (共5个回复)

沙发

[url=http://www.szbcgy.com.cn]自助银亭[/url]
[url=http://www.szbcgy.com.cn/fanghuzhao.html]atm防护罩[/url]
[url=http://www.szbcgy.com.cn/yinhangbiaoshipai.html]工商银行标识[/url]
[url=http://www.szbcgy.com.cn/zhanshijia.html]银行资料架[/url]
[url=http://www.szbcgy.com]广告机外壳[/url]

板凳

第一个for循环for(i=0;i,n;i++)中 i<n
main函数最好写成int main(void),不然会warning.

3 楼

额,我觉得,你的程序中少了结束'\0'

4 楼

问题解决了吗?

5 楼

#include<stdio.h>
# define N 80
int fun(int a[],int n)
{int i,j=1;
for(i=1;i<n;i++)
  if(a[j-1]!=a[i])
     a[j++]=a[i];
    return j;
}
void main()
{int a[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10},i,n=19;
printf("The original data:\n");
for(i=0;i<n;i++) 
printf("%3d",a[i]);
n=fun(a,n);
printf("\nThe data after deleted :\n");
for(i=0;i<n;i++) printf("%3d",a[i]);printf("\n\n");
}//主函数里第一个for循环,i<n,你那写,会一直循环下去

我来回复

您尚未登录,请登录后再回复。点此登录或注册