1.任意输入n个整数,按降序排序后输出,需要结束时,先按回车,再按Ctrl+z,再回车 如 3 43 5 7 输出 43 7 5 3 2.数列s=1+2/3*4+3/4*5……n/(n+1)(n+2) 输入正整数n≥2 如 输入2 输出1.167
供参考:
//1.
#include<stdio.h>
int main()
{
int i,j,t,n=0,a[256];
while(scanf("%d",&a[n])!=EOF)n++;
for(i=0;i<n-1;i++)
for(j=0;j<n-1-i;j++)
if(a[j]<a[j+1]){
t=a[j];a[j]=a[j+1];a[j+1]=t;
}
for(i=0;i<n;i++)printf("%d%c",a[i],i==n-1?'\n':' ');
return 0;
}
//2.
#include<stdio.h>
int main()
{
int n,i=2;
double s=1.0;
scanf("%d",&n);
while(n-- > 1)
{ s+=1.0*i/(i*i+3*i+2);
i++;
}
printf("%.3lf\n",s);
return 0;
}
第一题:用数组+sort函数就可以。
int cmp1(int a,int b)
{
return b>a;
}
int array[5] = {3,100,45,2,0};
sort(a,a+5,cmp1);
第二题: 用for循环就可以。
double n,sum=0;
int m;
cin>>m;
for(n=1;n<=m;n++)
{
if(n==1){
sum+=1;
}
else
sum+=n/(n+1);
}
cout<<sum<<endl;
先按回车,再按Ctrl+z,再回车====为啥要搞这么啰嗦的要求
#include <stdio.h>
void main(){
int num[100],n,i,j,k;
scanf("%d",&n);
for(i=0; i<n; i++) {
scanf("%d",&num[i]);
}
for(i=0;i<n-1;i++){
for(j=0;j<n-1-i;j++){
if(num[j]<num[j+1]){
k=num[j];
num[j]=num[j+1];
num[j+1]=k;
}
}
for(i=0;i<n;i++)
printf("%5d",num[i]);
}
}
// 第二题代码
#include<stdio.h>
main()
{
int i,n;
double s=1;
scanf("%d",&n);
for(i=2;i<=n;i++)
{
s=s+i/(i+1)*(i+2);
}
printf("%lf\n",s);
}
结束一下弄的这么麻烦。。
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632