用C语言编程,将50个实验数据从小到大排列,排完分为10组。请教大神赐教,谢谢!

作者&投稿:端木田 (若有异议请与网页底部的电邮联系)
求C语言编程题,求助各位大神,谢谢~ 输入10个整数,将它们从大到小排序后输出~

#include #include #define LEN 100 /*数组长度上限*/#define elemType int /*元素类型*//*输入数组*/void inputArr (elemType arr[], int len) {int i;for (i=0; i<len; i++)scanf ("%d",&arr[i]);putchar ('
');}/*打印数组*/void printArr (elemType arr[], int len) {int i;for (i=0; i<len; i++)printf ("%d",arr[i]);putchar ('
');}/*降序选择排序*//*参数说明:*//*int arr[]:排序目标数组*//*int len:元素个数*/void sort_xz (elemType arr[], int len) {elemType temp;int i, j, k;for(i=0; i<len-1; i++) { /*外循环控制趟数,n个数选n-1趟*/ k=i; /*假设当前趟的第一个数为最值,记在k中 */ for(j=i+1; j<len; j++) /*从下一个数到最后一个数之间找最值*/if(arr[k]<arr[j]) /*若其后有比最值更大的*/k=j; /*则将其下标记在k中*/if(k!=i) { /*若k不为最初的i值,说明在其后找到比其更大的数*/temp=arr[k];arr[k]=arr[i];arr[i]=temp;} /*则交换最值和当前序列的第一个数*/}}int main (void) {elemType arr[LEN];int len;printf ("请输入数组元素个数:");scanf ("%d",&len); printf ("请输入包含%d个元素的数组:
",len);inputArr (arr, len);puts ("排序后数组:");sort_xz (arr, len); /*降序选择排序*/printArr (arr,len);putchar ('
');getch (); /*屏幕暂留*/free (arr);return 0;}运行结果

输入的字符串之间 用 空格 分 隔 为好。用逗号分隔 处理 较难。
程序修改如下:
void swep(char *pt1, char *pt2)
{
char temp[20];
strcpy(temp,pt1);strcpy(pt1,pt2);strcpy(pt2,temp);
}
void exchange(char *a, char *b, char *c)
{
if (strcmp(a,b)>0) swep(a,b);
if (strcmp(a,c)>0) swep(a,c);
if (strcmp(b,c)>0) swep(b,c);
}
主函数:
char a[10];
char b[10];
char c[10];
scanf("%s %s %s", a,b,c); // 改用空白分隔
exchange(a, b, c);
printf("
%s,%s,%s
", a,b,c);
======
若用逗号分隔,要写成:
scanf("%[^,],%[^,],%s", a,b,c);
估计你看不懂。

int a=0; //正在处理的数下标,分组时的循环1
int b; //正在循环的数下标,分组时的循环2
int num[50]; //输入的数
int out[10][5]; //分好的数,out[0]为一组

//排序部分:
while(a<=49)
{
for(b=0;b>=a&&b<=49;b++)
{
if(num[b]>=num[b+1])
{num[b]^=num[b+1],num[b+1]^=num[b],num[b]^=num[b+1];}; //两数互换
};
};

//分组部分:
for(a=0;a<=9;a++)
{
for(b=0;b<=4;b++)

{

out[a][b]=num[a*10+b];
};

};

/*输入部分和输出部分就不加入了,这个你应该会。排序部分用的是冒泡法。我手上暂时没现成的编译器,可能会有些错,不过大致应该是对的*/

int a[50]={/*自己初始化*/000};
for (int i = 0; i < 50; i++)
{
for (int j = 0 + i; i < 50; i++)
{
if (a[i] > a[j])
{
int t = a[i];
a[i] = a[j];
a[j] = t;
}
}
}
int k = 0;
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 5 ; j++)
{
printf("%d,",a[k]);
k++;
if (k % 10 == 0)
{
printf("\n");
}
}
}
如果你是像编程a[10][5];我就没办法了


C语言编程:随机生成20个0~50之间的数,找到其中的素数,存放到另一个数组...
include “stdio.h”include “stdlib.h”include “time.h”void main(){ printPrime(); \/\/调用函数 } void printPrime() \/\/定义函数 { int a[20], b[20], k=0; \/\/定义数组 srand((unsigned)time(NULL)); \/\/初始化随机数 for(int i=0; i<20; i++) \/\/随机数赋值 { ...

c语言编程,输入金额,输出并显示用100,50,20,10,5,1块钱 各需要多少张...
include <stdio.h>int main(){ int type[] = {100, 50, 20, 10, 5, 1}, nu = 6; int cash, i; scanf ("%d", &cash); for (i = 0; i < nu; ++i){ printf ("%d:%d\\n", type[i], cash\/type[i]); cash %= type[i]; } return 0;} 程...

c语言编程题 利用循环进行程序设计 求1~50之间所有同时被3和7整除数...
include <stdio.h> int main(){ int i;for(i=1; i<=50; i++) { if(i%3 == 0) { if(i%7 == 0) { printf("%d\\t", i); } } } printf("\\n"); return 0;} 有图有真相。

C语言编程:求10~50中能被3整除的数的乘积,要求使用while,怎么编?
考虑到结果可能是个很大的unsigned int不能承载的数,结果的数据类型应该选择64位二进制整型,即__int64型或long long型。下面是选用__int64型代码,供参考。代码文本:include "stdio.h"int main(int argc,char *argv[]){ __int64 s=1;int n=10;while(n%3)n++;while(n<50)s*=n,n+=3...

C语言编程题
根据题意:题目1:函数参数是除数(这里传值8),返回满足条件的数字和。题目2:函数参数是要找的项目数(这里传值10),返回对应项的值。include<stdio.h> define MIN 50 define MAX 1000 int fa(int a);\/\/对应题目1的函数,参数:要除的数,返回可以被整除的数之和 int getByIndex(int n)...

c语言编程问题!
采纳率:50% 帮助的人:140万 我也去答题访问个人页 关注 展开全部 1.编程在一个已知字符串中查找最长单词,假定字符串中只含有字母和空格,空格用来...printf("%c",X[j]); } printf("\\n"); } \/* 一般把其它进制的数转换为十进制的数较容易,有一个现成的乘法公式供我们使用。 但把十进制的数...

C语言,将10张100元钞兑成50元20元10元,求所有方案。编程序
根据题意可得如下代码:include<stdio.h>int main(){ int money = 10*100; int i, j, t, a = 0; for (i = 0; i <= money\/50; ++i){ for (j = 0; j <= (money-i*50)\/20; ++j){ t = money-i*50-j*20; if (t >= 0){ printf ("50:%d张...

C语言编程随机产生10个10到50的正整数存放到数组中,并求数组中的所以...
include <stdio.h> include <stdlib.h> include int main(){ srand((unsigned)time(0));int Array[10];int i=0;double sum=0;int Max=-1;int Min=100;while(i<10){ Array[i]=rand()%51;if(Array[i]<10)continue;if(Array[i]>Max)Max=Array[i];if(Array[i]<Min)Min=Array[...

求助C语言编程高手
include <stdio.h> void main(){ float weight,price;printf("输入行李的重量:\\n");scanf("%f",&weight);\/*输入一个实型数据*\/ if(weight<50&&weight>0)\/*50公斤以下的价格*\/ price=weight*0.15;else if(weight>=50)\/*50公斤以上的价格*\/ price=50*0.15+(weight-50)*0.22;if(...

C语言编程,将6个字符串,按由小到大顺序输出
稍等,正在编。编了一段时间,自己是按照字符串长度来排序的,我把大小理解为长度大小,以下是代码:include<iostream>#include<string>using namespace std;\/*C语言编程,将6个字符串,按由小到大顺序输出*\/int main(){ char str1[50],str2[50],str3[50],str4[50],str5[50],str6[50]; ...

万全县13797783875: c语言编程 输入50个字符,按从大到小排序输出 -
彩符小儿: 输入一行字符串,排序前50个,#include<stdio.h>#include<string.h> int main() { char c; int i,j; char buf[50],temp; printf("input 50 numbers\n"); for(i=0;i<50;i++) {if((c=getchar())==EOF) { printf("input err\n"); return -1; } buf[i]=c; } for(i=0;i<49;i++) {...

万全县13797783875: 用c语言随机产生50个100到900之间的整数找出其中的素数并将这些素数按从小到大的顺序排列 -
彩符小儿: #include#include int num1[800]; //定义随机抽取50个数据数组int num2[100]; /...

万全县13797783875: 用c语言编写一个函数实现随机产生50个10到100之间的互不相等的整数,按从小到大的顺序排列后存入二进制文 -
彩符小儿: 这个用rand()函数就可以处理了.我是学c++的,账号就是qq号,可以加,c不是很熟,但是确定这种方法可行.

万全县13797783875: c语言编程:输入一个数字n,再输入n个数,将这个n个数从小到大输出. -
彩符小儿: int n, i; scanf(输入n的值); //输入个数 int *array; //把需排序的数列定义为数组.这里需要指出的是,如果定义为array[n-1],因为你的n在编译时未赋值,所以编译是不会通过的.于是这里直接将它定义为一个指针,赋值方法跟数组相同.但是个数太多就不能这么做了 for(i = 0; i < n; i++){ //输入需要排序的数列 scanf(输入数字到数组array); } //todo:冒泡法排序 //输出排序后的数组

万全县13797783875: 用C语言编程:从键盘中输入10个整数,并将这些数按从小到大顺序排列. -
彩符小儿: #include<stdio.h> void main(){ int num[10],i,j,temp; for(i=0;i<10;i++){ printf("请输入百第度%d个数知:",(i+1)); scanf("%d",num[i]); } for(i=0;i<10;i++){ for(j=0;j<10-i;j++){ if(num[j]>num[j+1]){ temp=num[j]; num[j]=num[j+1]; num[j+1]=temp; } ...

万全县13797783875: 用c语言编程一个程序:有n个数已经从小到排列好,要求输入一个数将其插入原有的数列 而且仍然保持有序,要求 -
彩符小儿: #include <stdio.h> int main(int argc, const char *argv[]) { int i = 0, j = 0; int a[11] = {10,20,30,40,50,60,70,80,90,100}; int n = 0; int num = 10; int tmp = 0; printf("原有数组:\n"); for (i=0; i<num; i++) { printf("%d ",a[i]); } printf("\n"); printf("...

万全县13797783875: 编写一段c语言代码 用两个数组实现一串数据从小到大排序 -
彩符小儿: void sort(int a[], int n) {int i, j, t;for(i = 0; i < n - 1; i++)for(j = i + 1; j < n; j++)if(a[i] > a[j]){t = a[i]; a[i] = a[j]; a[j] = t;} }

万全县13797783875: 用C语言编写程序:将随机生成1到20的50个随机数存在数组中,然后找出最大、最小、中间值 并输出!!很急 -
彩符小儿: #include <stdio.h>#include <stdlib.h>#include <time.h> void sort(int a[],int n) { int i,j,k,t; for(i = 0; i < n - 1; ++i) { k = i; for(j = i + 1; j < n; ++j) { if(a[k] > a[j]) k = j; } if(i != k) { t =a[i]; a[i] = a[k]; a[k] = t; } } } int main() { int i,n = 50; int a[50]; srand((unsigned)...

万全县13797783875: C语言编程:输入两个数,输入两个数,通过函数调用实现数据由小到大的输出 -
彩符小儿: void f(int a,int b) { printf("%d %d\n",a<b?a:b,a<b?b:a); }main() {int a=0 ,b=0;scanf("%d %d",&a ,&b);f(a,b); }

万全县13797783875: C语言 编程 随机产生50个整数(15~500)之间,并降序排列 -
彩符小儿: #define N 50#include<stdio.h>#include<stdlib.h>#include<time.h> int main() { int a[N],i,j,tmp; float avg; srand(time(0)); for(int i=0;i<N;i++) a[i]=rand()%(500-15)+15; //降序排列 for(i=0;i<N-1;i++) for(j=i+1;j<N;j++)if(a[i]<a[j]) { tmp=a[i];a[i]=a[j];a[j]=tmp...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网