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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用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;
参考技术A 我有给你原代码:

#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");

就这么简单~~是要交作业的吧~~朋友~~还是驳采?
呵呵~~
总之祝你成功~
有空给我留言,其实我很菜的~~
参考技术B 算法表述一下:
任意输入10个数,存入数组
while循环,用随机函数产生4个随机数,取个位。(遇到重复时,不取)
按照随机数编号在数组中取出4个数再输出即可。
参考技术C //由于不知道你还有些什么要求(或具体点的要求)。所以大概写了下。不是很详细。请见谅。
//----------------------------
#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个整数,存到一维数组中,并求这10个整数的和?

1、首先打开c语言编辑器,新建一个C语言的文件,文件中引入C语言的头文件,新建一个main函数,函数中设置一个10个元素的数组以及一个用来求和的变量:

2、之后用一个for循环遍历数组,每次都从scanf中取到用户输入的数并存入数组中,存完后再用sum加这个数,如此便能求出数组内元素的和了:

3、最后运行程序,输入10个数即可看到结果。以上就是用c语言从键盘输入10个数存入数组并求和的方法:

参考技术A

#include"stdio.h"

//从键盘输入10个数存入一维数组,求这10个数中的最大值和最小值并输出

int main()

int i;

float max,min,num[10];

printf("请输入10个数,每输入一个数按回车键结束:\\n");

for(i=0;i&lt;10;i++)

scanf("%f",&num&lt;i&gt;);

max=min=num[0];

for(i=1;i&lt;10;i++)

if(max&lt;num&lt;i&gt;)

max=num&lt;i&gt;;

else if(min&gt;num&lt;i&gt;)

min=num&lt;i&gt;;

printf("最大为:%f\\n最小为:%f\\n",max,min);

return 0;

扩展资料:

return表示从被调函数返回到主调函数继续执行,返回时可附带一个返回值,由return后面的参数指定。return通常是必要的,因为函数调用的时候计算结果通常是通过返回值带出的。

如果函数执行不需要返回计算结果,也经常需要返回一个状态码来表示函数执行的顺利与否(-1和0就是最常用的状态码),主调函数可以通过返回值判断被调函数的执行情况。

如果函数名前有返回类型定义,如int,double等就必须有返回值,而如果是void型,则可以不写return,但这时即使写了也无法返回数值。

参考技术B

#include<stdio.h>

int main()

  int a[10],sum,i;

  for(i=0;i<10;i++)

      scanf("%d",&a[i]);

        sum+=a[i];

printf("这10个数的和为%d",sum);

return 0;

扩展资料:

数组:是有序的元素序列。 若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。

在C语言中, 数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组、结构数组等各种类别。

特点:

1,数组是相同数据类型的元素的集合。

2,数组中的各元素的存储是有先后顺序的,它们在内存中按照这个先后顺序连续存放在一起。

3,数组元素用整个数组的名字和它自己在数组中的顺序位置来表示。例如,a[0]表示名字为a的数组中的第一个元素,a[1]代表数组a的第二个元素,以此类推。

参考技术C 1. 双循环解决方案参考 @左左强强峰峰 的回答
2. 函数解决方案参考 @linshaolie 的回答

我给你讲点不一样的东西,单循环解决方案:
首先分析题意,需求如下:
1. 从键盘输入10个数
2. 10个数存入1维数组
3. 求这10个数字的和。注意,该需求和需求2一样的循环方案,因此一个循环解决
代码如下:
#include <stdio.h>

int main()

int number[10] = 0; // 定义一维数组并初始化
int sum = 0; // 定义求和变量并初始化

for (int i = 0; i < 10; i++)

scanf("%d", &number[i]); // 完成需求1和2
sum += number[i];


printf("sum = %d\n", sum); // 显示求和结果

return 0;

来自:求助得到的回答
参考技术C # include<stdio.h>
int main()

int a[10];
int sum=0;
int i;
for(i=0; i<10; i++)
scanf("%d",&a[i]);
for(i=0; i<10; i++)
sum += a[i];
printf("%d",sum);
return 0;

以上是关于用c语言编一个程序:从任意10个数中任选4个数并全输出?的主要内容,如果未能解决你的问题,请参考以下文章

求C语言程序,从1~2012中取k个数,取出的数中任意两个数之差不能为5或8,求k的最大值

嗯嗯 用c语言编写从键盘输入10个整数,将最小值与第一个数交换,最大值与最后一个交换,然后输出交换后的数

怎样用C语言编出在n个数里找最大值的程序?

c语言 .从键盘输入10个整数,存到一维数组中,并求这10个整数的和?

c语言简单求和,编写程序:输入两个数,求两个数的和

用C语言编计算并输出k以内最大的10个能被13或17整除的自然数之和。当从键盘输入500时,求出答案。谢谢