用c语言编写;从键盘输入四个数,从大到小输出这4个数.

作者&投稿:琦飞 (若有异议请与网页底部的电邮联系)
用c语言编写;从键盘输入四个数,从大到小输出这4个数.~

#include
int main()
{
int i,j,t,a[4];
for(i=0;i<4;i++)
scanf("%d",&a[i]);
for(j=0;j<3;j++)
{
for(i=0;i<3;i++)
if(a[i]<a[i+1])
{t=a[i];a[i]=a[i+1];a[i+1]=t;}
}
for(i=0;i<4;i++)
printf("%d ",a[i]);
printf("
");
}
第二个没看明白。。

问题1:随机事件的C/C++语言实现。
第1题:产生随机数(完型填空)
(1)函数说明
rand()会返回一随机数值,范围在0至RAND_MAX 间。在调用此函数产生随机数前,必须先利用srand()设好随机数种子,如果未设随机数种子,rand()在调用时会自动设随机数种子为1。
0<= rand()<=RAND_MAX(32767=216-1)
试问:产生0到100之间的随机数的C表达式是什么?
100*rand()/32767
(2)参考“原型”
#include "iostream.h"
#include "stdlib.h"
#include "time.h" /*需引用的头文件*/
void out_rand()
{
srand(time(0)); //随机种子
for(int i=0;i<10;i++)//产生10个0到100随机数
{
cout<<100*rand()/RAND_MAX<<endl;
}
}
void main()
{
int n;
while(1)
{
cout<<”1----产生随机数; 2----退出系统”<<endl;
cin>>n;
if(n==1) out_rand();
if(n==2) break;
}
}
(3)设计任务(“好”的算法:时间代价——语句、空间代价——占用“内存”)
利用产生随机数的编程技术,产生一个随机系统48个0到99之间的“需求量”随机数,并按间距为10统计各“需求量”区间的数据个数。
#include “iostream.h”
#include “stdlib.h”
#include “time.h” (填空)
void out_rand()
{
int a[48],I,k;(填空)
for(i=0;i<48;i++) a[i]=0;
srand(time(0));
for(i=0;i<48;i++)
{
k=(99-0+1)* rand()/RAND_MAX+0;
a[(k-0)/10]++;
(例子:
k=(199-100+1)* rand()/RAND_MAX+100;
a[(k-100)/10]++;

}
for(i=0;i<100;i+=10)
{
cout<<i<<”----“<<i+9<<”的数据个数: “<<a[(i-0)/10](要改)<<endl;
}
}
void main()
{
int n;
while(1)
{
cout<<”1----产生随机数; 2----退出系统”<<endl;
cin>>n;
if(n==1) out_rand();(填空)
if(n==2) break;
}
}

问题2:数据排序的C/C++语言实现。
第1题:起泡法(上推排序法)
1、“原型”(从小到大排序)
#include “iostream.h”
void bubble_sort(int *item,int count)
{
register int I,j;
int t;
for(i=0;i<count-1;i++)
//每一遍后都能将i及其后面的数据中的最小值排在最前面(i处)。
for(j=count-1;j>=I;--j)
if(item[j-1]>item[j])

}
void main()
{
int a[]=;
bubble_sort(a,9);
for(int i=0;i<9;i++)
cout<<a[i]<<” “;
cout<<endl;
}
2、实践
(1)调试该“原型”,分析其执行功能。
(2)从键盘输入10个“实数”,请用“起泡法”对其进行从大到小并输出。
#include “iostream.h”
void bubble_sort(int *item,int count)
{
register int I,j;
int t;
for(i=0;i<count-1;i++)
for(j=count-1;j>=I;--j)
if(item[j-1]<item[j])

}
void main()
{
int a[10];
int i;
for (i=0;i<10;i++)
cin>>a[i];
bubble_sort(a,10);
for(i=0;i<10;i++)
cout<<a[i]<<” “;
cout<<endl;
}


第2题:选择排序法
1、“原型”
#include “iostream.h”
void select_sort(double *item,int count)
{
register int I,j,k;
double t;
for(i=0;i<count-1;i++) //每趟只进行一次交换
{
k=I;
for(j=i+1;j<count;++j)
if(item[k]>item[j]) k=j; //将较小的数排到前面
t=item[k];item[k]=item[i];item[i]=t;
}
}
void main()
{
double b[]=;
select_sort(b,9);
for(int i=0;i<9;i++)
cout<<b[i]<<” “;
cout<<endl;
}
2、实践
(1)调试该“原型”,分析其执行功能,并比较其与“起泡法”排序算法的运行时间代价(“最坏”情形)。
(2)从键盘输入10个学生的“英文名”,请用“选择排序法”对其进行从小到大并输出。
提示:C/C++中,比较两个字符串的大小:strcmp(str1,str2),复制字符串:strcpy(str1,str2),头文件是:string.h
//参考答案
#include “iostream.h”
#include “string.h”(填空)
#include “conio.h”
void main()
{
char item[10][21];
int I,j,k;
char t[21];
cout<<”从键盘输入10个学生的英文名:”<<endl;
for(i=0;i<10;i++)
cin>>item[i];(填空)
//排序
for(i=0;i<9;i++)
{
k=i;
for(j=i+1;j<10;++j)
if(strcmp(item[k],item[j])>0) k=j;
strcpy(t,item[k]);strcpy(item[k],item[i]);strcpy(item[i],t);
}
//输出
for(i=0;i<10;i++)
cout<<item[i]<<endl;
getche();
}

第3题:下列程序的功能是:选出5000以下符合条件的自然数。条件是:千位数字与百位数字之和等于十位数字与个位数字之和,且千位数字与百位数字之和等于个位数字与千位数字之差的10倍。计算并输出这些四位自然数的个数cnt以及这些数的和sum。请编写函数countValue()实现程序的要求,最后调用函数writeDat()把结果cnt和sum输出到文件OUT13.DAT中。
部分源程序已经给出。
请勿改动主函数main()和输出数据函数writeDat()的内容。
#include <stdio.h>
int cnt,sum;
void writeDat(); //写盘函数的声明
void countValue()

void main()
{
cnt=sum=0;
countValue();
printf("满足条件的自然数的个数=%d
",cnt);
printf("满足条件的自然数的和=%d
",sum);
writeDat(); //调用写盘函数
}
void writeDat() //写盘函数的实现
{
FILE *fp;
fp=fopen("OUT13.DAT","w");
fprintf(fp,"%d\%d
",cnt,sum);
fclose(fp);
}
////参考答案/////////
void countValue()
{
int i,thou,hun,ten,data;
for(i=5000;i>=1000;i--)
{
thou=i/1000;
hun=i%1000/100;
ten=i%100/10;
data=i%10;
if(thou+hun==ten+data && thou+hun==(data-thou)*10)
变化的是条件!!!参考答案的其他内容都要记下来!!!

}
}
要求:
(1)调试该程序。
(2)用文字说明countValue()“算法”的控制流程。

第4题:设有n个人围坐一圈并按顺时针方向从1到n编号,从第s个人开始进行1到m的报数,报数到第m个人,此人出圈,再从他的下一个人重新开始1到m的报数,如此进行下去直到所有的人都出圈为止。现要求按出圈次序每10人一组,给出这n个人的顺序表。请考生编制函数Josegh()实现此功能,并调用函数writeDat()把结果p输出到文件JOSE.DAT中。
设n=100,s=1,m=10。
(1)将1到n个人的序号存入一维数组p中;
(2)若第i个人报数后出圈,则将p[i]置于数组的倒数第i个位置上,而原来第i+1个至倒数第i个元素依次向前移动一个位置;
(3)重复第(2)步直至圈中只剩下p[1]为止。
注意:部分源程序已经给出。
请勿改动主函数main()和输出数据函数writeDat()的内容。
#include <stdio.h>
#define N 100
#define S 1
#define M 10
int p[100],n,s,m;
void writeDat(void);
void Josegh(void)

void main()
{
m=M; n=N; s=S;
Josegh();
writeDat();
}
void writeDat(void)
{
int i;
FILE *fp;
fp=fopen("JOSE.DAT","w");
for(i=N-1;i>=0;i--)
{
printf("%4d",p[i]);
fprintf(fp,"%4d",p[i]);
if(i%10==0)
{
printf("
");
fprintf(fp,"
");
}
}
fclose(fp);
}
////参考答案/////////
void Josegh(void)
{
int i,j,k,s1,w;
s1=s;
for(i=1;i<=n;i++)
p[i-1]=i;//给每个人编号
for(i=n;i>=2;i--)
{
s1=(s1+m-1)%i;
if(s1==0) s1=i;
w=p[s1-1];
for(j=s1;j<=i-1;j++)
p[j-1]=p[j];
p[i-1]=w;
}
}

#include
main()
{
int
a=0,b=0,c=0,t;
printf("请输入第一个数:");
scanf("%d",&a);
printf("请输入第二个数:");
scanf("%d",&b);
printf("请输入第三个数:");
scanf("%d",&c);
if(a
评论
0
0
加载更多

#include <stdio.h>
main()
{
int i;
int a[10];
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=9;i>=0;i--)
printf("%d",a[i]);
}

太简单了

...........垃圾题,我都不想写了
而且你是求和呢?还是光输出啊

工具啊


用C语言怎么编写程序实现从键盘输入数值
include"stdio.h"\/\/从键盘输入10个数存入一维数组,求这10个数中的最大值和最小值并输出 intmain(){ inti;floatmax,min,num[10];printf("请输入10个数,每输入一个数按回车键结束:\\n");for(i=0;i<10;i++){ scanf("%f",&num[i]);} max=min=num[0];for(i=1;i<10;i++){ ...

用C语言编写一个程序,从键盘上输入一个小写字母,将其本身及对应的大写字...
prinft("大写字母是:%c\\n",ch);} else(printf("请输入大写字母");)示例三:include <stdio.h> main(){ char c; \/\/声明变量 scanf("%c",&c); \/\/键盘上取值 printf("%c %c",c,ch-'a'+'A');\/\/本身和大写输出 } ...

怎么在c语言从键盘输入x=20,y=25,z=A,然后将输入的内容从屏幕输出?
以下是C语言代码:```include int main() { int x, y;char z;printf("请输入x、y、z的值(格式为:x=20,y=25,z=A):");scanf("x=%d,y=%d,z=%c", &x, &y, &z);printf("您输入的内容为:x=%d, y=%d, z=%c", x, y, z);return 0;} ```运行程序后,会提示用户...

用c语言编写程序,如何实现获取键盘按下的字符?
代码如下:include<stdio.h> include<ctype.h> int main(void){ char ch;int index;ch = getchar(); \/\/读入一个字符存入ch ch = tolower(ch); \/\/转换为小写字母 index = ch - 'a' + 1; \/\/计算序号 printf("%d\\n", index);return 0;} ...

C语言编程:从键盘任意输入三个数,编写求其最大值、最小值的函数,用指针...
} void Fun(int a[]){ int i;int temp;int MaxNum=a[0];int maxIndex = 0;int minIndex = 0;int MinNum=a[0];for(i=0;i<10;i++){ if(a[i]>MaxNum){ MaxNum=a[i];maxIndex = i;} else if(a[i]<MinNum){MinNum=a[i];minIndex = i;} }temp = a[maxIndex];a...

c语言程序编写:要求从键盘上输入一个不多于5位数的正整数,依次输出每一...
include <stdio.h> void main(){ int n;scanf("%d",&n);if(n\/100000)printf("应输入一个不多于5位数的正整数!\\n");else { printf("%d",n%10);n\/=10;while(n){ printf(",%d",n%10);n\/=10;} } }

1. 用C语言写一段程序:从键盘上输入两数,判断其大小关系,将判断结果显 ...
int main(void){ int nNum1,nNum2;printf("请输入第一个整数:");scanf("%d",&nNum1);printf("\\n请输入第二个整数:\\n");scanf("%d",&nNum2);printf("\\n输入的两个数为:%d,%d,其大小关系为:",nNum1,nNum2)if(nNum1 < nNum2){ printf("%d < %d",nNum1,nNum2);}...

用c语言编写一个程序,从键盘上输入两个字符给字符变量a,b,并输出变...
scanf("%c %c",&a,&b); \/\/输入字符a,b printf("%c %c\\n",a,b);\/\/打印字符a,b return 0; \/\/返回并且输出a,b } 扩展知识:Matlab变量的特点:不需事先声明,也不需指定变量类型,Matlab自动根据所赋予变量的值或对变量所进行的操作来确定变量的类型;在赋值过程中,如果变量已经...

用C语言编写一个程序:从键盘输入n(0<N<100)个整数,计算并输出其中出现...
1:次数最多 2:在次数最多的基础上,数值最大 ___以下为程序:include <iostream> \/\/ 设置最大值 define MAX 100 typedef struct record { int number[MAX];int counter[MAX];}record;int isExist(int array[], int index, record rd){ int i;int flag = -1;bool finish = true;for ...

C语言从键盘出入两个整数,求其和是什么意思?
C语言从键盘出入两个整数,求其和,可以参考下面的代码:include<stdio.h> int main(){ int a1, a2;printf("请输入两个整数:");\/\/输入以空格间隔 回车结束 scanf_s("%d %d", &a1, &a2);printf("%d+%d=%d\\n", a1, a2, a1 + a2);return 0;} ...

江北区13399003574: c语言:写一个程序,将4个从键盘输入的数按照从小到大的顺序输出 -
从砖来得: #include "stdio.h"void select_sort(int *x, int n) {int i, j, min, t; for (i=0; i<n-1; i++) /*要选择的次数:0~n-2共n-1次*/{min = i; /*假设当前下标为i的数最小,比较后再调整*/for (j=i+1; j<n; j++)/*循环找出最小的数的下标是哪个*/{if (*(x+j) < *(...

江北区13399003574: 用C语言编写程序,从键盘输入四个数,怎么求其最大值? -
从砖来得: 代码如下:#include <stdio.h> void main() {float a,b,c,d,max;printf("请输入四位数字:\n");scanf("%f%f%f%f",&a,&b,&c,&d);max=a;if(max<b)max=b;if(max<c)max=c;if(max<d)max=d;printf("最大的数值为:%f\n",max); } 不知道帮没帮到你的忙 呵呵望采纳

江北区13399003574: 任意输入4个整数,从大到小排列输出.c语言程序怎么写 -
从砖来得: 任意输入4个整数,从大到小排列输出.c语言程序写法:main() {int a,b,c,d,m; scanf("%d %d %d %d",&a,&b,&c,&d); if(b>a) {m=a;a=b;b=m;} if(d>c) {m=c;c=d;d=m;} if(c>a) {m=a;a=c;c=m;} if(c>b); {m=b;b=c;c=m;}printf("\n%d %d %d %d\n",a,...

江北区13399003574: 用C语言编写一个程序,输入4个整数,按从大到小顺序输出! -
从砖来得: PROGRAM 程序名(input,output); Var a,b,c,d,t: Real; Begin Write('Input a, b,c='); Readln(a,b,c,d); if a>b then begin {复合语句} t:=a; a:=b; b:=t {交换a,b} end; if a>c then begin {复合语句} t:=a; a:=c; c:=t {交换a,c} end; if a>d then begin {复合语句} ...

江北区13399003574: 用c语言,随机输入4个数,按从大到小的顺序输出 -
从砖来得: #include<stdio.h> void main() { int i,j,a[4],t; for(i=0;i<4;i++) scanf("%d",&a[i]); //用循环来输入4个数,for(i=0;i<4;i++) {for(j=i+1;j<4;j++)// 双重循环来顺序排列 if(a[i]<a[j]){t=a[i];a[i]=a[j];a[j]=t;}} for(i=0;i<4;i++)//循环输出 printf("%d",a[i]); } 我在VC++上运行了 没有问题.有什么不懂的地方可以再问我 希望采纳=-=

江北区13399003574: 用C语言编写程序,从键盘输入四个数,求其最大值
从砖来得: 代码如下: #include &lt;stdio.h&gt; void main() { float a,b,c,d,max; printf("请输入四位数字:\n"); scanf("%f%f%f%f",&amp;a,&amp;b,&amp;c,&amp;d); max=a; if(max&lt;b) max=b; if(max&lt;c) max=c; if(max&lt;d) max=d; printf("最大的数值为:%f\n",max); } 不知道帮没帮到你的忙 呵呵 望采纳

江北区13399003574: 用"if"语句编写这样一个C语言程序:从键盘上输入任意的四个数,把它们按从大到小的顺序输出到屏幕上 -
从砖来得: j<=i;,num[0]; num[j+1]){tmp = num[j];num[j] = num[j+1];num[j+1] = tmp,&num[3]);for(i=2,j,&num[0],%d&quot,&num[1];void main() {int num[4],%d,%d#includescanf("%d%d%d%d";j++){if(num[j] {for(j=0;}}}printf("%d,&num[2];i>=0,i,num[1],num[2],tmp,num[3])

江北区13399003574: c语言编程题:依次输入4个不同数,要求从大到小依次输出(不要用i++和j++本人新手) -
从砖来得: #include "stdio.h" void main() { int a,b,c,d; int i,j,m,n; printf("请输入四个不同的数(每个数用空格隔开):"); scanf("%d%d%d%d",&a,&b,&c,&d); i=a>b?a:b; //a和b中最大的 j=c>d?c:d; //c和d中最大的 m=a<b?a:b; //a和b中最小的 n=c<d...

江北区13399003574: C语言,输入4个数从小到大排列输出! -
从砖来得: main() { int s[4],i,j,a; printf("请输入4个整数(各数之间用空格隔开):"); for(i=0;i<4;i++) { scanf("%d",&s[i]); } for(i=0;i<4;i++) { for(j=i;j<4;j++) { if(s[j]<s[i]) { a=s[j]; s[j]=s[i]; s[i]=a; } } } printf("\n"); for(i=0;i<4;i++) { printf("%d ",s[i]); } }

江北区13399003574: C语言中如何编 输入4个数 输出最大值和最小值? -
从砖来得: 采用数组来接收输入的4个数,然后给数组排序,最后只需要输出数组的第一个数和最后个数,具体代码如下: int i,j,tmp,num;int str[4]; num=4; printf("请输入%d个整数:",num);//数for(i=0;i<num;i++)scanf("%d",&str[i]); for(i=0;i...

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