| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1096 人关注过本帖
标题:求救!!!!课后一题不会!救救我啊!!!!!
只看楼主 加入收藏
李明
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2005-5-17
收藏
 问题点数:0 回复次数:13 
求救!!!!课后一题不会!救救我啊!!!!!
从键盘对一个有十个元素的数组任意赋值,并将相同的数删得只剩一个!这个程序怎么编写?
搜索更多相关主题的帖子: 键盘 元素 
2005-05-17 22:04
musicml
Rank: 1
等 级:新手上路
帖 子:273
专家分:0
注 册:2005-4-2
收藏
得分:0 

//从键盘对一个有十个元素的数组任意赋值,并将相同的数删得只剩一个! #include <stdio.h>

void only_arry(int a[],int n); void select_arry(int a[],int n);

void only_arry(int a[],int n) { int i; int j; int ip; int counter; char temp[10]; counter=0; ip=0; for(i=0;i<n;) { temp[ip++]=a[i]; for(j=i+1;j<n;j++) { if(a[j]==a[i]) ++counter; else break; } i+=counter+1; counter=0; } printf("the final arry as following:\n"); for(i=0;i<ip;i++) printf("%5d",temp[i]); printf("\n");

}

void select_arry(int a[],int n) { int i; int j; int k; int temp; for(i=0;i<n;i++) { k=i; for(j=i+1;j<n;j++) { if(a[j]<a[k]) k=j; } if(k!=i) { temp=a[k]; a[k]=a[i]; a[i]=temp; } } }

int main() { int n; int i; int a[10]; n=10; printf("please enter the a_arry's number!\n"); for(i=0;i<n;i++) { printf("please enter the%d arry's number:\n",i+1); scanf("%d",&a[i]); } select_arry(a,n); only_arry(a,n); return 0; }


Every thing is possible.
2005-05-17 23:44
bmxboy
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2005-5-18
收藏
得分:0 
main()
{float temp[10],*point;
 int i;
 point=&amp;temp[0];
 for(i=0;i&lt;10;i++)
   scanf("%f",*(point+i));
 replace(point,10);
 for(i=0;i&lt;10;i++)
   printf("%f",point[i]);
}
float replace(float *point,int a)
{int i,j;
 for(i=0;i&lt;a;i++)
  for(j=i+1;j&lt;a;j++)
 { if(point[i]==point[j])
     free(point[j]);
 }
}
2005-05-18 14:09
yuanjue
Rank: 1
等 级:新手上路
帖 子:112
专家分:0
注 册:2005-4-26
收藏
得分:0 
哦,都不错嘛

++生命如歌,我爱生命更爱生活,我的未来不是梦 ◢◤說過〾█◤☆◥◤☆◥█ 〾愛上◥◣ ◥◣的話⿶█☆ ╭╩╮ ☆█ ⿶的人◢◤ ◢◤不可⿸█◣☆╲╱☆◢█ ⿸不可◥◣ ◥◣不算⿷██◣ ☆ ◢██ ⿷再換◢◤
2005-05-18 14:13
musicml
Rank: 1
等 级:新手上路
帖 子:273
专家分:0
注 册:2005-4-2
收藏
得分:0 
以下是引用bmxboy在2005-5-18 14:09:15的发言: main() {float temp[10],*point; int i; point=&temp[0]; for(i=0;i<10;i++) scanf("%f",*(point+i)); replace(point,10); for(i=0;i<10;i++) printf("%f",point[i]); } float replace(float *point,int a) {int i,j; for(i=0;i<a;i++) for(j=i+1;j<a;j++) { if(point[i]==point[j]) free(point[j]); } }

程序的这种方法是好的 但是错误是存在的 我按照这种思路, 并加如自己的想法 把它重写如下: #include <stdio.h> #include <stdlib.h>

typedef struct { float number; int flag; }arry;

void Replace(arry *,int );

void Replace(arry *point,int a) { int i; int j; for(i=0;i<a;i++) for(j=i+1;j<a;j++) if((point+i)->flag==0&&(point+j)->flag==0&&(point+i)->number==(point+j)->number) (point+j)->flag=1; }

int main() { arry temp[10]; int i; for(i=0;i<10;i++) { printf("please enter the%d number:\n",i+1); scanf("%f",&((temp+i)->number)); (temp+i)->flag=0; } Replace(temp,10); for(i=0;i<10;i++) if(temp[i].flag==0) printf("%5.1f",temp[i].number); printf("\n"); return 0; }


Every thing is possible.
2005-05-19 00:37
edgeman
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2005-5-11
收藏
得分:0 

当你有了想飞的冲动,就再也不会满足在地上爬
2005-05-19 16:06
wjl2002hunter
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2005-5-19
收藏
得分:0 
我也来贴一个!大同小异!
#include &lt;stdio.h&gt;
#include &lt;conio.h&gt;
main()
{
float *n,*m,a[10];
int i,j,k=0;
n=m=a;
for(i=0;i&lt;=9;i++)
{ if(i) ++m;
scanf("%f",m);
if(i)
{
for(j=0;j&lt;i-k;j++)
if(*m==*(n--))
{m--;k++;}
n=m;
}
}
n=&amp;a[10];/*此处为什么是a[10]*/
if(k)
{for(i=0;i&lt;k;i++)
free(n--);}
clrscr();
for(i=9-k;i&gt;=0;i--)
printf("%f\t",*(m-i));
getch();
}
实际上我少释放了一个空间!

[此贴子已经被作者于2005-5-21 21:18:38编辑过]


2005-05-21 20:05
glacier
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2005-2-8
收藏
得分:0 
能讲讲吗?
2005-05-25 06:38
glacier
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2005-2-8
收藏
得分:0 
以下是引用musicml在2005-5-19 0:37:36的发言:

程序的这种方法是好的 但是错误是存在的 我按照这种思路, 并加如自己的想法 把它重写如下: #include <stdio.h> #include <stdlib.h>

typedef struct { float number; int flag; }arry;

void Replace(arry *,int );

void Replace(arry *point,int a) { int i; int j; for(i=0;i<a;i++) for(j=i+1;j<a;j++) if((point+i)->flag==0&&(point+j)->flag==0&&(point+i)->number==(point+j)->number) (point+j)->flag=1; }

int main() { arry temp[10]; int i; for(i=0;i<10;i++) { printf("please enter the%d number:\n",i+1); scanf("%f",&((temp+i)->number)); (temp+i)->flag=0; } Replace(temp,10); for(i=0;i<10;i++) if(temp[i].flag==0) printf("%5.1f",temp[i].number); printf("\n"); return 0; }

typedef struct { float number; int flag; }arry; 这里面的最后的 arry是什么意思啊? 还有typedef struct 是结构么?

2005-05-25 07:10
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
glacier可是网络安全高手噢,楼上的,小心他找麻烦噢

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2005-05-25 11:14
快速回复:求救!!!!课后一题不会!救救我啊!!!!!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018183 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved