【邢帅公开课】2016年7.12日上课学习作业提交贴
发布于:2016-07-12 22:58
今天晚上的作业
作业:
从键盘输入10个数,存入一个数组;然后,打印最大值和最小值;
选做:排序后打印出来。
可以快排,或者冒泡,
大家需要认真完成呢
共有12条评论
正序查看
倒序查看
0
今日新帖
0
昨日新帖
3
帖子总数
推荐
换一组
暂无数据
#include<stdio.h>
#include<stdlib.h>
#define N 10
int compare(const void *a,const void *b)
{
return *(int *)a - *(int *)b;
}
int main(void)
{
int max,min,i,arr[N];
for(i = 0; i < N; ++i){
printf("input no.%d:",i + 1);
scanf("%d",arr + i);
printf(" ");
}
printf("******************************** ");
printf("the array you have input :");
for(i = 0; i < N; ++i){
printf("%d ",*(arr + i));
}
printf(" ");
max = *arr;
min = *arr;
for(i = 0; i < N; ++i){
if(max < *(arr + i)){
max = *(arr + i);
}
if(min > arr[i]){
min = arr[i];
}
}
printf("max = %d,min = %d ",max,min);
qsort(arr,N,sizeof(int),compare);
for(i = 0;i < N; ++i){
printf("%d ",*(arr + i));
}
return 0;
}
/* * 从键盘输入10个数,存入一个数组 * 打印该数组中的元素的最大值和最小值 * 排序后打印出来 */ #include
#define size 10 //输入10个数 void px(int *,int); int max(int *,int); int min(int *,int); int main(){ int arr[size],i; printf("请输入%d个整数:",size);//提示用户输入 for(i = 0;i < size;i++) scanf("%d",&arr[i]); printf("这%d个数中最大的数的数值为:%d ",size,max(arr,size));//调用max函数,打印出该数组中值最大的数 printf("这%d个数中最小的数的数值为:%d ",size,min(arr,size));//调用min函数,打印出该数组中值最小的数 px(arr,size);//调用px函数,重新排序 printf("这%d个数的非降序排序为:",size); for(i = 0;i < size;i++)//打印该数组中所有元素的值 printf("%d ",arr[i]); getchar(); getchar(); return 0; } //排序算法(过程) void px(int *ip,int i){ int temp,n,m; for(n = 1;n < i;n++){ for(m = n;m>0;m--){ if(ip[m] < ip[m-1]){ temp = ip[m]; ip[m] = ip[m-1]; ip[m-1] = temp; } } } } //求数组元素最大值算法(过程) int max(int *ip,int i){ int n,key = ip[0]; for(n = 1;n < i;n++){ if(ip[n] > key) key = ip[n]; } return key; } //求数值元素最小值算法(过程) int min(int *ip,int i){ int n,key = ip[0]; for(n = 1;n < i;n++){ if(ip[n] < key) key = ip[n]; } return key; }/*
* 从键盘输入10个数,存入一个数组
* 打印该数组中的元素的最大值和最小值
* 排序后打印出来
*/
#include<stdio.h>
#define size 10 //输入10个数
void px(int *,int);
int max(int *,int);
int min(int *,int);
int main(){
int arr[size],i;
printf("请输入%d个整数:",size);//提示用户输入
for(i = 0;i < size;i++)
scanf("%d",&arr[i]);
printf("这%d个数中最大的数的数值为:%d ",size,max(arr,size));//调用max函数,打印出该数组中值最大的数
printf("这%d个数中最小的数的数值为:%d ",size,min(arr,size));//调用min函数,打印出该数组中值最小的数
px(arr,size);//调用px函数,重新排序
printf("这%d个数的非降序排序为:",size);
for(i = 0;i < size;i++)//打印该数组中所有元素的值
printf("%d ",arr[i]);
getchar();
getchar();
return 0;
}
//排序算法(过程)
void px(int *ip,int i){
int temp,n,m;
for(n = 1;n < i;n++){
for(m = n;m>0;m--){
if(ip[m] < ip[m-1]){
temp = ip[m];
ip[m] = ip[m-1];
ip[m-1] = temp;
}
}
}
}
//求数组元素最大值算法(过程)
int max(int *ip,int i){
int n,key = ip[0];
for(n = 1;n < i;n++){
if(ip[n] > key)
key = ip[n];
}
return key;
}
//求数值元素最小值算法(过程)
int min(int *ip,int i){
int n,key = ip[0];
for(n = 1;n < i;n++){
if(ip[n] < key)
key = ip[n];
}
return key;
}
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
void main()
{
int num[10];
printf("请输入需要排序10个数: ");
for (int j = 0;j < 10;j++)
scanf("%d", &num[j]);
for (int j = 0;j < 10;j++)
printf(" %d", num[j]);
int X = 0;//X代表最大的那个数
for (int i = 0;i < 10;i++)
if (num[X] < num[i])
{
X = i;
}
printf(" MAX=%d ", num[X]);
int Y = 0;//Y代表最小的那个数
for (int i = 0;i < 10;i++)
if (num[Y] > num[i])
{
Y = i;
}
printf("MIN=%d ", num[Y]);
for (int i = 0;i < 10 - 1;i++)
for (int j = 0;j < 10 - 1 - i;j++)
if (num[j] > num[j + 1])
{
int temp = num[j];
num[j] = num[j + 1];
num[j + 1] = temp;
}
printf(" ");
for (int i = 0;i < 10;i++)
printf(" %d ", num[i]);
system("pause");
}
#include<stdio.h>
#define N 10
/**
* flag == 0 -----------从大到小
* flag == 1 -----------从小到大
*/
int getMax(int arr[], int length){
int Max = arr[0];
for(int i = 1; i < length; i++){
if(Max < arr[i]){
Max = arr[i];
}
}
return Max;
}
int getMin(int arr[], int length){
int Min = arr[0];
for(int i = 1; i < length; i++){
if(Min > arr[i]){
Min = arr[i];
}
}
return Min;
}
void BubbleSort(int arr[], int length, int flag){
int temp = arr[0];
switch(flag){
case 0:
for(int i = 0; i < length; i++){
for(int j = i+1; j < length; j++){
if(arr[i] < arr[j]){
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
break;
case 1:
for(int i = 0; i < length; i++){
for(int j = i+1; j < length; j++){
if(arr[i] > arr[j]){
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
break;
default:
printf("BubbleSort Error! ");
}
}
/**
* flag == 0 -----------从大到小
* flag == 1 -----------从小到大
*/
void QuickSort(int arr[], int low, int high, int flag){
if(low >= high){
return;
}
int first = low;
int last = high;
int key = arr[first];
switch(flag){
case 0:
while(first < last){
while(arr[last] <= key && first < last) last--;
arr[first] = arr[last];
while(arr[first] >= key && first < last) first++;
arr[last] = arr[first];
}
arr[first] = key;
QuickSort(arr, low, first-1, flag);
QuickSort(arr, first+1, high, flag);
break;
case 1:
while(first < last){
while(arr[last] >= key && first < last) last--;
arr[first] = arr[last];
while(arr[first] <= key && first < last) first++;
arr[last] = arr[first];
}
arr[first] = key;
QuickSort(arr, low, first-1, flag);
QuickSort(arr, first+1, high, flag);
break;
default:
printf("QuickSort Error! ");
}
}
int main(void){
int arr[N];
printf("按提示输入%d个数: ", N);
for(int i = 0; i < N; i++){
printf("输入第%d个数:", i+1);
scanf("%d", &arr[i]);
}
printf(" ");
printf("输入的%d个数为: ", N);
for(int i = 0; i < N; i++){
printf("%d ", arr[i]);
}
printf("最大值Max = %d ", getMax(arr, N));
printf("最小值Min = %d ", getMin(arr, N));
printf(" --------------------冒泡--------------------------------- ");
BubbleSort(arr, N, 1);//从小到大
for(int i = 0; i < N; i++){
printf("%d ", arr[i]);
}
printf(" --------------------快速--------------------------------- ");
QuickSort(arr, 0, N-1, 0); //从大到小
for(int i = 0; i < N; i++){
printf("%d ", arr[i]);
}
}
#include<stdio.h>
int main()
{
int i,j,a[10],k,m;
printf("输入10个数:");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
{ k=i;
for(j=i+1;j<10;j++)
if(a[j]>a[k]) k=j;
m=a[i];a[i]=a[k];a[k]=m;
}
printf("从大到小的顺序是:");
for(i=0;i<10;i++)
printf(" %d",a[i]);
printf(" ");
return 0;
}
/*从键盘输入10个数,存入一个数组;然后,打印出
最大值和最小值;选做:排序后打印出来。可以快排
,或者冒泡。
*/
#include <stdio.h>
int main()
{
int i,r[10];
printf("请输入10个数: ");
scanf("i=%d",&i);
printf("%d ",r[i]);
int max,min;
if(r[i]>)
{
printf("max=%d ",max);
}
if()
{
printf("min=%d ",min);
}
//排序还不会
return 0;
}
求解
#include"stdio.h"
#define SIZE 10
void selectsort(int a[],int len) //选择排序函数
{
int i,j,t;
for(i=0;i<len-1;i++)
for(j=i+1;j<len;j++)
if (a[i]>a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
void dispalyArray(int a[],int len) //数组输出函数
{
for(int i=0;i<len;i++)
if(i!=len-1)
printf("%d ",a[i]);
else
printf("%d ",a[i]);
}
void main()
{
int a[SIZE],i; //定义数
printf("please intput 10 numbers ");
printf(" ");
for(i=0;i<10;i++)
{
scanf("%d",&(a[i]));
}
selectsort(a,SIZE); //调用选择排序函数进行排序
printf(" ");
printf("排序之后%: ");
dispalyArray(a,SIZE); //调用数组输出函数显示排序前的情况
printf(" ");
printf("最大值为%d ",a[9]);
printf(" ");
printf("最小值为%d ",a[0]);
printf(" ");
printf("我是陈大如,7-13 ");
printf(" ");
}
#include<stdio.h>
int main()
{
int array[10];//定义数组
int i;//循环控制
int a;//循环控制
int max;//最大值
int min;//最小值
7_13.c
for(;;)
{
printf("请分别输入10个数 ");
for(i=0;i<10;i++)
{
printf("请输入第%d个数 ", i+1);
scanf("%d", &array[i]);
}
printf(" ");
printf("---------以下是运算结果------- ");
//判断最大值
max=array[0];
for(i=1;i<10;i++)
{
if(max<array[i])
{
max=array[i];
}
}
//判断最小值
min=array[0];
for(i=1;i<10;i++)
{
if(min>array[i])
{
min=array[i];
}
}
printf("最大值为%d ",max);
printf("最小值为%d ",min);
printf(" ");
printf(" ");
//选做:排序后再打印(冒泡排序)
//(由小到大)
for(i=9;i>-1;i--)
{
for(a=0;a<=i-1;a++)
{
if(array[a]>array[a+1])
{
max=array[a];
array[a]=array[a+1];
array[a+1]=max;
}
}
}
for(i=0;i<10;i++)
printf("数组第%d个数为:%d ",i+1,array[i]);
printf(" ");
printf(" ");
printf(" ");
printf("********************************************** ");
}
return 0;
}
回复:【邢帅公开课】2016年7.12日上课学习作业提交贴