为什么一直显示输出超出位数呐?

[复制链接]
查看11 | 回复2 | 2021-1-27 07:18:33 | 显示全部楼层 |阅读模式
题目描述
明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤100),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。
输入格式
输入有2行,第1行为1个正整数,表示所生成的随机数的个数:
N
第2行有N个用空格隔开的正整数,为所产生的随机数。
输出格式
输出也是2行,第1行为1个正整数M,表示不相同的随机数的个数。第2行为M个用空格隔开的正整数,为从小到大排好序的不相同的随机数。
样例输入
10
2040326740208930040015
样例输出
8
152032406789300400
==============================================================================
这是我的程序
#include
#include"time.h"
usingnamespacestd;
intmain()
{
intnum,n,key,jishu;
boolshu[1001]={false};
srand((unsigned)time(0));
cin>>num;
for(n=1;n -->
回复

使用道具 举报

千问 | 2021-1-27 07:18:33 | 显示全部楼层
仅供参考//将out.txt文件中的内容排序并去重,结果保存到unique.txt中
#include
#include
#defineMAXLNO10000000//能处理的最大行数
#defineMAXLEN20//能处理的最大行宽,包括行尾的\n和字符串尾的\0
charbuf[MAXLNO][MAXLEN];
intln,i;
FILE*f;
intcmpfun(constvoid*arg1,constvoid*arg2){
returnstrcmp((constchar*)arg1,(constchar*)arg2);
}
intmain(){
f=fopen("out.txt","r");
if(NULL==f){
printf("Cannotfindfileout.txt\n");
return1;
}
ln=0;
while(1){
if(NULL==fgets(buf[ln],MAXLEN,f))break;
ln++;
if(ln>=MAXLNO){
printf("Lines>%dignored.",MAXLNO);
break;
}
}
fclose(f);
if(ln>1)qsort(buf,ln,MAXLEN,cmpfun);
f=fopen("unique.txt","w");
if(NULL==f){
printf("Cannotcreatefileunique.txt\n");
return2;
}
fprintf(f,"%s",buf[0]);
if(ln>1)for(i=1;i
回复

使用道具 举报

千问 | 2021-1-27 07:18:33 | 显示全部楼层
位操作是不是错了再看看吧
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行