c语言:从键盘上任意输入50个正整数,统计其中各位数字的平方和等于108的数

供稿:hz-xin.com     日期:2025-01-13
从键盘上任意输入50个正整数,统计其中各位数字的平方和等于108的数 c语言编程,循环嵌套,别弄的

#include
int main()
{int i,n,x,x1,s,t;
for(i=0;i<50;i++)
{
scanf("%d",&x);
s=0;
x1=x;
while(x)
{
t=x%10;
s+=t*t;
x/=10;
}
if(s==108)
printf("%d ",x1);
}
system("pause");
return 0;
}

提供一个思路,不用照抄,没有验证过的
如一个数2268,就是4+4+36+64=108
用个循环取每个数出来,平方再相加
X就是这个数,Y是累加数,I是循环次数
for i=1 to len(x)
y=y+mid(x,i,1)*mid(x,i,1)
next
if y=108 then print x
注意数值型和字符型要转换一下

1. 对于输入:(1)手动输入;(2)用随机函数;(3)从文件中读;(4)先生成50个随机数备用,然后全部粘贴过来
2. 对于程序处理,你的正整数的范围是多大?给你一个思路:不用int来接收数据,用字符串来接收。因为这两种方式接收字符串对输入完全没有影响,而且用字符串接收,对后续的处理还方便。

上面已经给你一个思路了,如果你想要程序的话,可以跟我说一声。

简单,但是很麻烦。
int main()
{
int a[50];
intb[50];
int i;
for (i=0;i<50;i++)
scanf("%d"&a[i]);
jisuan(a,b);
for(i=0;b[i]!='\0';i++)
printf("%d, ",b[i]);
}
int jisuan(int *a[],int *b[])
{
int i,j,k=0,m=0;
for(i=0;a[i]!='\0';i++)
for(j=a[i]%10;j!=0;)
k=k+j*j;
if (k==108)
b[m++]=a[i];
}
好久不写C了,有错误请指出

如果 不想自己输入也可以用系统产生的随机数 你也可以用复制粘贴

c语言:从键盘上任意输入50个正整数,统计其中各位数字的平方和等于108的...
1. 对于输入:(1)手动输入;(2)用随机函数;(3)从文件中读;(4)先生成50个随机数备用,然后全部粘贴过来 2. 对于程序处理,你的正整数的范围是多大?给你一个思路:不用int来接收数据,用字符串来接收。因为这两种方式接收字符串对输入完全没有影响,而且用字符串接收,对后续的处理还方便。

编写一个程序实现从键盘上任意输入50个正整数,找出其中的素数,并将其...
include <stdio.h>const int MAXSIZE = 50;int isPrime(int n) {int i,flag = 1;if(n < 2) return 0;for(i = 2; i * i <= n && flag; ++i)flag = n % i;return flag;}void mysort(int a[], int n) {int i,j,k,t;for(i = 0; i < n - 1; ++i) {k = i...

从键盘上任意输入50个正整数,统计其中各位数字的平方和等于108的数 C...
对于输入:(1)手动输入;(2)用随机函数;(3)从文件中读;(4)先生成50个随机数备用,然后全部粘贴过来2. 对于程序处理,你的正整数的范围是多大?给你一个思路:不用int来接收数据,用字符串来接收。因为这两种方式接收字符串对输入完全没有影响,而且用字符串接收,对后续的处理还方便。1. ...

通过键盘输入随机数种子,产生50个[0,100]之间的随机正整数,然后输出其 ...
以fortran语言为例。代码如下,供参考。(感叹号后面是说明)! 定义变量 integer n,m,i real x ! 读取一个整数,并作为随机数种子 read(*,*) m call seed(m)! 产生50个0到100的随机整数 do i=1,50 call random(x)n=101*x !若除以2余数为1,则输出(奇数)if(mod(n,2).eq.1) wri...

定义一个数组,int a 〔50〕;并从键盘输入50个数,求最大值和正数的个数...
public static void main(String[] args) throws IOException { int[] a = new int[50];int index = 0;int count = 0;while(index < a.length){ System.out.println("请输入第"+(index+1)+"个整数");Scanner s = new Scanner(System.in);String str = s.next();if (str.matches(...

从键盘输入20个1-50之间的正整数放入
printf("请输入20个数:\\n");for(i=0,j=0;i<20;i++){ scanf("%d",&A[i]);if(isprime(A[i]))B[j++]=A[i];} printf("你输入的数为:\\n");for(i=0;i<20;i++)printf("%d ",A[i]);printf("\\n其中为素数的是:\\n");for(i=0;i<j;i++)printf("%d ",B[i])...

用c语言编写“从键盘上输入一批任意数量的正整数,统计其中不大于100...
include <stdio.h> int main (void) { int n = 0; int num = 0; char ch; printf ("End to input \\'a\\'.\\n"); printf ("Please input number :\\n"); do { while ((scanf ("%d", &num)) == 1) { if (num <= 100) n++; } ch = getchar(); }while (ch !=...

C语言:编写程序从键盘输入不定数量的正整数?
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("个数...

编写一个java程序,在程序中从键盘输入一个范围在50~100的整数。若不正...
Scanner scanner =new Scanner(System.in);boolean f=true;while(f){ System.out.print("请输入一个整数(50-100):");int k=scanner.nextInt();if(k<50 || k>100) System.out.println("输入错误!重新输入。");else f=false;} ...

用C语言编写,从键盘上输入若干个正整数,输入0结束.统计所有正整数的个...
include "stdio.h"int main() {int n, sum=0, i=0, max, min;double ave;while(scanf("%d", &n) && n != 0) {if(i == 0) {max = min = n;}if(max < n) {max = n;}if(min > n) {min = n;}i++;sum += n;ave = sum * 1.0 \/ i;}printf("i = %d\\...