从键盘输入n(3<=n<=20)个整数,求出这n个数的平均值及其中的最大数和最小数。
输入格式:
在第一行输入一个介于3至20之间的整数n,在第二行输入n个整数,中间用一个空格分隔数据。
输出格式:
依次输出平均值(保留2位小数),最大值,最小值,中间用逗号,分隔,最后换行。
保留两位小数这个地方,emmm,明显的需要浮点数对吧
最大值一定不为0对吧,所以开始的时候可以将最大值赋值为0,最小值就不能这么做了,因为不确定。
感觉审题不认真挺吃亏的。
#include
int main()
{
int n,i,a,sum,max,min;
float ave;
scanf("%d",&n);
sum=max=i=0;
while(i<n)
{
scanf("%d",&a);
sum=sum+a;
if(max<a)
max=a;
if(i==0)
min=a;
if(min>a)
min=a;
i++;
}
/*可以替换为
for(i=0;ia)
min=a;
}*/
ave=sum*1.0/n;
printf("%.2f,%d,%d\n",ave,max,min);
return 0;
}
#include
int main()
{
int i,j, t, n;
float sum = 0.00;
int a[1000];
scanf("%d", &n);
for (i = 0; i < n; i++)
{
scanf("%d",&a[i]);
sum = sum + a[i];
}
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;
}
printf("%.2f,%d,%d\n", sum /n,a[n-1], a[0]);
return 0;
}
从键盘输入一个正整数(不超过9位,即最多9位),要求编程实现以下功能:
① 求出这个数是几位数,并输出其位数;
② 输出这个数的逆序数。
输入格式:
输入一个正整数(不超过9位,即最多9位)。
输出格式:
输出刚刚输入的正整数,包含的位数及其逆序数,中间用英文逗号分隔开,最后换行。
自己的错误的。。。。。
#include
#include
int main()
{
int a,b,c,d,e,f,m;
int k;
a=c=d=0;
scanf("%d",&k);
a=k;
b=0;
while(k!=0) //也是为了退出循环,这里k会变化 所以上一句我把k存到a里面了
{
k=k/10;
b++; //这个就是我打算求位数的计数器b
}
e=1;
while(e<=b)
{
f=a%10;
a=a/10;
c=f*pow(10,(b-e))+c; //个人感觉是这个出了问题,但是才疏学浅搞不懂
e++;
}
printf("%d,%d,%d",a,b,c);
return 0;
}
//我自己的错误代码 希望大家能够帮忙找找错误。我跑的时候就直接int main()这里就error了
//我不太清楚原理,大牛看到的话帮帮我
用pow函数报错。这是个死胡同,我走不出来了,希望大家指点我一下!(抱拳)
下面这个是改正以后的,没有用pow函数。里面的while可以用for替换,为了容易看,我就不换了。
#include
int main()
{
int a,b,c,d,e,f,m;
int k;
a=c=d=b=0;
scanf("%d",&k);
a=k;
m=a;
while(k!=0)
{
k=k/10;
b++;
}
e=0;
while(e<b)
{
c=c*10+a%10;
a=a/10;
e++;
}
printf("%d,%d,%d",m,b,c);
return 0;
}
#include
int main()
{
int x, a,c=0,b=0; //这边b不置零的话会有随机数的影响,可能会出现位数不对的情况
scanf("%d",&x);
a=x;
while(x!=0) //判断条件,保证能够顺利退出
{
c=c*10+x%10;
x=x/10;
b++; //不管正反 这个数的位数始终都是不变的对吧 所以位置在哪都行
}
printf("%d,%d,%d",a,b,c);
return 0;
}
#include
int main()
{
long a,n=0,b[10],i;
scanf("%ld",&a);
printf("%ld,",a);
while(a>0)
{
b[n]=a%10;
a=a/10;
n++;
}
printf("%d\,",n);
for(i=0;i<n;i++)
printf("%d",b[i]);
return 0;
}