用c语言编一个程序:从任意10个数中任选4个数并全输出?

如题所述

C:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main()
{
int num[10] = {1,2,3,4,5,6,7,8,9,10}, i;
srand((unsigned)time(0));

printf("从原数组: \n");
for(i = 0; i < sizeof num/sizeof num[0]; ++i)
printf("%d ", num[i]);

printf("\n中随机选出的4个数为: ");
for(i = 0; i < 4; ++i)
printf("%d ", num[rand()%10]);

printf("\n\n");
}

C++可以交互一点:

#include <vector>
#include <algorithm>
#include <iostream>
#include <iterator>
using namespace std;

int main()
{
cout << "输入任意数字,同时按ctrl + x结束: " << endl;

vector<int> num;
num.reserve(10);

copy(istream_iterator<int>(cin), istream_iterator<int>(), back_inserter(num));
cin.clear();

cout << "从输入的 " << num.size() << "个数字所构成的数组: " << endl;
for(int i = 0; i < num.size(); ++i)
cout << num[i] << ' ';

random_shuffle(num.begin(), num.end());
cout << "\n中随机选出的4个数字为: " << endl;

for(int i = 0; i < 4; ++i)
cout << num[i] << ' ';
cout << endl;
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2007-03-08
我有给你原代码:

#include <iostream.h>
#include <stdlib.h>
#include <vector>
using namespace std;

int initArray(int n,vector<int> &arr)
{
for(int i=0;i<n;i++)
{
arr[i]=rand()%100;
}
return 0;
}

void getSome(int n,int subNum,vector<int> arr,vector<int> &res)
{
vector<int>::iterator it=arr.begin(),temp;
for(int i=0;i<subNum;i++)
{
int t=rand() % n;
temp=it + t ;
res[i]=*temp;
arr.erase( temp);
n--;
}
}

void disp(vector<int> arr)
{
vector<int>::iterator i;
for(i=arr.begin();i!=arr.end();i++)
{
cout<<*i<<"\t";
}
cout<<endl;
cout<<"------------------------------------------------------"<<endl;
}

void main()
{
int num;
int subNum;
cout<<"请输入组大小"<<endl;
cin>>num;
cout<<"请输入选择的个数"<<endl;
cin>>subNum;
vector<int> arr(num);
vector<int> res(subNum);

initArray(num,arr);
getSome(num,subNum,arr,res);
disp(arr);
disp(res);
system("pause");
}
就这么简单~~是要交作业的吧~~朋友~~还是驳采?
呵呵~~
总之祝你成功~
有空给我留言,其实我很菜的~~
第2个回答  2007-03-08
算法表述一下:
任意输入10个数,存入数组
while循环,用随机函数产生4个随机数,取个位。(遇到重复时,不取)
按照随机数编号在数组中取出4个数再输出即可。
第3个回答  2007-03-09
//由于不知道你还有些什么要求(或具体点的要求)。所以大概写了下。不是很详细。请见谅。
//----------------------------
#include<stdio.h>
void main()
{
int i,j,temp,a[10]={0};
int num[10]={1,2,3,4,5,6,7,8,9,10};//可修改成int范围内的任意数

srand((unsigned)time( NULL ));//种下种子

i=0;
while(i<4)
{
temp=rand()%10;//选哪个数?
if(a[temp]==0)//该数没选过,则输出
{
printf("%d ",num[temp]);//该数没选过,则输出
a[temp]=-1;//设置为已经选过
i++;//选择的数目加一
}
}
getch();//Win-TC中使用。
}

//---------要求用户自己输入10个任意数(int 范围内)-----------------
#include<stdio.h>
void main()
{
int i,j,temp,a[10]={0};
int num[10];
/*要求用户自己输入10个数*/
printf("Input Ten Num Please~:\n");
for(i=0;i<10;i++)
scanf("%d",&num[i]);
/*------------*/
srand((unsigned)time( NULL ));//种下种子
i=0;
while(i<4)
{
temp=rand()%10;//选哪个数?
if(a[temp]==0)//该数没选过,则输出
{
printf("%d ",num[temp]);//该数没选过,则输出
a[temp]=-1;//设置为已经选过
i++;//选择的数目加一
}
}
getch();//Win-TC中使用。
}

//------------10个任意数有程序产生,可重复----------------------
#include<stdio.h>
void main()
{
int i,j,temp,a[10]={0};//使用a[10]有点耗内存,不是很好。
int num[10];

for(i=0;i<10;i++)
{
num[i]=rand()%100;//产生随机数范围。
/*if(rand()%2)//可选,随机产生正负数。
num[i]=-num[i];*/
}
srand((unsigned)time( NULL ));//种下种子
i=0;
while(i<4)
{
temp=rand()%10;//选哪个数?
if(a[temp]==0)//该数没选过,则输出
{
printf("%d ",num[temp]);//该数没选过,则输出
a[temp]=-1;//设置为已经选过
i++;//选择的数目加一
}
}
getch();//Win-TC中使用。
}

在WIN-TC下编译通过。

用c语言编一个程序:从任意10个数中任选4个数并全输出?
int main(){ int num[10] = {1,2,3,4,5,6,7,8,9,10}, i;srand((unsigned)time(0));printf("从原数组: \\n");for(i = 0; i < sizeof num\/sizeof num[0]; ++i)printf("%d ", num[i]);printf("\\n中随机选出的4个数为: ");for(i = 0; i < 4; ++i)printf("...

C语言学生成绩管理程序 把10个学生的4门成绩输入 求总分和平均分并输出...
Student { char name[11];\/\/最大5个字 int a;int b;int c;int d;int total;\/\/总数 int aver;\/\/平均 public:Student(int x1,int x2,int x3,int x4){a=x1;b=x2;c=x3;d=x4;} \/\/初始化 Student(int x){a=b=c=d=x;} \/\/简单初始化 int GetTotal(){return total = a+b+...

C语言从键盘输入任意的10个整数,从中找出最大值和最小值并输出
1、找出最大值并输出的源代码如下: #include <stdio.h> int main() { int array[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0}; int loop, largest; largest = array[0]; for(loop = 1; loop < 10; loop++) { if( largest < array[loop] ) largest = array[loop]; } printf("最大...

试着用C语言编了一个能做10以内整数的四则运算的简单的程序
GOOD LUCK~

c语言编写在数组a中有10个四位数,如果四位数的个
c 程序如下。include <stdio.h> int main(){ int a[10],b[10],i,n=0;int z1,z2,z3,z4;printf("input 10 4-digit data\\n");for (i=0;i<10;i++) scanf("%d", &a[i]);for (i=0;i<10;i++) { if (a[i]<1000 || a[i]>9999)continue;z1=a[i]\/1000%10;z2...

C语言从键盘输入任意的10个整数,从中找出最大值和最小值并输出
} } min=arr[0];for(i=0;i<sizeof(arr)\/sizeof(arr[0]);i++){ if(min>arr){ min=arr;} } printf("max=%d\\n",max);printf("min=%d\\n",min);return 0;} 结果:请输入10个整数:1 2 3 56 23 6 767 32 11 567 max=767 min=1 请按任意键继续……...

c语言:写一个程序,将4个从键盘输入的数按照从小到大的顺序输出
if (min != i) \/*如果min在循环中改变了,就需要交换数据*\/ { t = *(x+i);(x+i) = *(x+min);(x+min) = t;} } } void main(){ int a[4],i;for(i=0;i<4;i++){ scanf("%d",&a[i]);} select_sort(a,4);for(i=0;i<4;i++){ printf("%d ",a[i]);}...

如何编写一个C语言程序,让计算机自动出四则运算计算题,要求自动出0-1...
m = rand() % 10;n = rand() % 10;op = rand() % 4;switch ( op ){ case 0:op = '+';answer = m+n;break;case 1:op = '-';answer = m-n;break;case 2:op = '*';answer = m*n;break;case 3:n++;op = '\/';answer = m\/n;break;default:break;} printf("\\n...

如何用C语言编写一个程序,输入10个0-9之间的整数,请统计每个数字出现的...
for(;i<10;){ printf("请输入第%d个数:",(i+1));scanf("%d",&temp);if(input(temp)==1){ num[i]=temp;numCount(num[i]);i++;}else{ printf("你输入的数字不在0到9之间,请重新输入!\\n\\n");runProm();} } } void main(){ int i;runProm();\/\/输出每个数出现了几次...

C语言编写一个程序输入四个实数输出输出它们的平均值?
以下是在C语言中输入四个实数并输出它们的平均值的代码:include <stdio.h> int main() { float num1, num2, num3, num4, avg;printf("请输入四个实数:\\n");scanf("%f%f%f", &num1, &num2, &num3, &num4);avg = (num1 + num2 + num3 + num4) \/ 4.0;printf("这四个...

相似回答