不考虑数据的存储,直接循环累计即可。
想要数据存储:
方法一:定义一个非常大的数组,循环输入并检测输入值,累计求平均。
方法二:动态数组,根据有效输入,实时扩展数组地址长度。
方法三:把每个数字创建成结构体,构建链表,实现自由扩展和删除。
下面我的代码是用方法二写的:
#include <stdio.h>
#include <malloc.h>
int input(int **nsp);//输入任意个整数,忽略负数,输入0结束,成功返回数组长度,失败返回-1
int main()
{
int i,len,sum=0,*nums=NULL;
len=input(&nums);
printf("输入的正整数为:\n");
for(i=0;i<len;printf("%d ",nums[i]),i++)
sum+=nums[i];
printf("\n");
printf("个数为%d,平均值为%.2f\n",len,(sum*1.0)/len);
free(nums);
return 0;
}
int input(int **nsp)
{
int len=0;
int n,*nTemp=NULL,*nums=NULL;
if(*nsp) free(*nsp),nsp=NULL;
while(1)
{
scanf("%d",&n);
if(n==0) break;
if(n>0)
{
if(nums==NULL)//记录首个数字
{
nums=(int *)malloc(sizeof(int));
if(!nums) return -1;
nums[len]=n;
len++;
}
else//非首数字,扩展内存空间
{
nTemp=realloc(nums,sizeof(int)*(len+1));
if(nTemp) nums=nTemp,nTemp=NULL;
nums[len]=n;
len++;
}
}
}
*nsp=nums;
return len;
}
C语言:编写程序从键盘输入不定数量的正整数?
方法一:定义一个非常大的数组,循环输入并检测输入值,累计求平均。方法二:动态数组,根据有效输入,实时扩展数组地址长度。方法三:把每个数字创建成结构体,构建链表,实现自由扩展和删除。下面我的代码是用方法二写的:include <stdio.h> include <malloc.h> int input(int **nsp);\/\/输入任意个...
编写程序,从键盘上输入不超过8位的正整数,判断它是几位数?例如,输入123...
printf("请输入一个不超过8位的正整数:");scanf("%s", num);int length = strlen(num);printf("输入的数字是%d位数\\n", length);return 0;} 你可以将这段代码保存到一个名为count_digits.c的文件中,然后使用C编译器进行编译和运行。输入一个正整数,程序将会告诉你它是几位数。
C语言编写程序,输入一个不多于3位的正整数,编写程序,实现以下功能:
include<stdio.h>main(){int a;while(1){scanf("%d",&a);if(a>999) printf("输入错误。\\n");elseif(a\/100!=0){ printf("3位\\n"); printf("逆序=%d%d%d\\n",a%10,a%100\/10,a\/100);}else if(a\/10!=0){ printf("2位\\n");printf("逆序=%d%d\\n",a%10...
c语言程序编写:要求从键盘上输入一个不多于5位数的正整数,依次输出每一...
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;} } }
c语言编写程序,输入一个不多于3位的正整数,要求,求出它有几位数,并逆 ...
include <stdio.h>int main(){char a[3]={0,0,0};int i,num=0,cnt=0;printf("input:");scanf("%d",&num);if(num>999) printf("input data must:0~999\\n");a[0] = (num\/100)%10;\/\/百位a[1] = (num\/10)%10; \/\/十位a[2] = num%10; \/\/个位 if(a[0]>...
用C语言编写程序,将某个位数不确定的正整数进行三位分节后输出,比如输 ...
include <iostream.h> void main(){ int result[256];int m,count=0;cin>>m;while (m != 0){ result[count++] = m%1000;m \/= 1000;} for (int i=count-1; i>=0; i--){ cout<<result[i]<<' ';} cout<<endl;}
编写程序:输入一个不多于五位数的正整数,要求:输出它的位数;顺序输出它...
include<stdio.h>int main(){ int x,i,j,a[12]; printf("输入一个正整数:\\n"); scanf("%d",&x); for(i=0;x;x\/=10)a[i++]=x%10; printf("它是%d位数\\n",i); for(j=i-1;j>=0;j--)printf("%d ",a[j]); printf("\\n"); for(j=0;j...
编写程序,输入一个不多于5位的正整数,要求:(1)输出它是几位数; (2...
j--){ printf("%d ",arr[j]);} } int main(){ int n = 0;printf("请输入n的值(0-99999):\\n");scanf("%d",&n);if(n<0||n>99999){ printf("输入错误!\\n");return 1;} printf("位数:");printf("%d\\n",getCount(n) );getNum(n,getCount(n));return 0;} ...
用C语言编写程序从键盘输入一个正整数数n,输出n,是什么情况?
C语言实现如下: #include<stdio.h> void main() { int i,j,k,n; scanf("%d",&n); \/\/输入一个正整数n for(i=2;i<=n;i++) { k=0; for(j=1;j<=i-1;j++) if(i%j==0) k+=j; if(k==i) printf("%d\\n",i); \/\/判断i的所有真因子之和是否等于i,是则输出i。 } } 注意:建...
用C语言编写程序从键盘输入一个正整数数n,输出n!
} void main(){int n =0,m=0;printf("请输入一个正整数:")scanf("%d",&n);m=Func(n);printf("%d!=%d\\n",n,m);} 在以上程序代码中,Func()为递归函数,主函数main()中接收键盘输入整数值后,调用Func()递归函数,首层m=n*(n-1)!,继续递归调用,m=n*(n-1)(n-2)...