在C加加中如何把对象存入对象数组中

在C加加中如何把对象存入对象数组中,第1张

试一下以下代码,a到c,a是要找重复数据的List,里面都是a的重复数据,只出现一次的已经过滤掉了。如果c里面的数据要求不重复,把ArrayList换成HashSet就行了。

List a = new ArrayList()

a.add("123")

a.add("123")

a.add("123")

a.add("123")

a.add("456")

a.add("789")

a.add("123")

Set b = new HashSet()

ArrayList c = new ArrayList()

for (int i = 0i <a.size()i++) {

Object x = a.get(i)

if (b.contains(x)) {

c.add(x)

}

b.add(x)

}

#include<stdio.h>

int max(int[])  

int main()

{

 char a[5][3]  //字符串以\0结尾

 int b[5],n,c

 for(n=0n<5n++)

 {

  scanf("%s",a[n])

  scanf("%d",&b[n])

 }

 c=max(b)

 printf("%s %d",a[c],b[c])

 return 0

}

int max(int q[5])

{

 int m=q[0]

 int f,e=0   //初始化e

 for(f=1f<5f++)

 {

  if(m<q[f])

  {

   m=q[f]

   e=f

  }

 }

 return e

}

对象私有数据成员的赋值需要通过公有成员函数,为了简单些、偏C语言些,进行了简化,参考代码如下:

#include "stdio.h"

class consumer{

public:

char num[10]

char passwd[10]

float money

} t,c[5]

int main()

{

  FILE *fp

  int i

  fp=fopen("consumers.data","wb")

  if(fp==NULL) {

      printf("error\n")

      return 0

  }

  for(i=0i<5i++){

  printf("请输入客户号、密码、金额:(以空格隔开、最后以回车结束)\n")

  scanf("%s%s%f%*c",t.num,t.passwd,&t.money)

  //注意输入格式为:字符串 空格 字符串 空格 浮点数 回车

  fwrite(&t, sizeof(consumer), 1, fp)

  }

  fclose(fp)

  fp=fopen("consumers.data","rb")

  if(fp==NULL) {

      printf("error\n")

      return 0

  }

  printf("文件读入结果如下:\n")

  fread(c,sizeof(consumer),5,fp)

  for(i=0i<5i++){

printf("%s %s %.2f\n",c[i].num,c[i].passwd,c[i].money)

  }

  fclose(fp)

  return 0

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11559447.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-17
下一篇2023-05-17

发表评论

登录后才能评论

评论列表(0条)

    保存