输入多个数(用回车隔开),求它们的反序数的和,输入非数字时结束。
对键盘输入的任意一组正整数(位数任意),求所有数的反序数之和,这里的反序数是指对该数从右向左顺序读得到的数,例如123的反序数是321,1200的反序数是21。输入非数字时结束程序。
2020-05-27 11:19
程序代码:#include <stdio.h>
int foo(int n)
{
int sum = 0;
while(n)
{
int temp = n % 10;
sum = sum * 10 + temp;
n /= 10;
}
return sum;
}
int main(void)
{
int a;
int value = 0;
int status = scanf("%d", &a);
while(status==1){
value += foo(a);
status = scanf("%d", &a);
}
printf("value is %d\n", value);
return 0;
}

2020-05-27 16:12
2020-05-27 17:35
程序代码:#include <stdio.h>
#include <stdlib.h>
int main()
{
char **array,ch;
int num=0,i=1,j;
int start=0;
array=(char**)calloc(num+1,sizeof(char*));
*(array+num)=(char*)calloc(i+1,sizeof(char));
while(1)
{
ch=getchar();
if(ch>='0'&&ch<='9')
{
*(*(array+num)+i)=ch;
i++;
*(array+num)=(char*)realloc(*(array+num),(i+1)*sizeof(char));
}
else if(ch=='\n')
{
*(*(array+num))=i; //上一个数据计长度
num++;
i=1;
array=(char**)realloc(array,(num+1)*sizeof(char*));
*(array+num)=(char*)calloc(i+1,sizeof(char));
}
else
{
*(*(array+num))=i; //上一个数据计长度
break;
}
}
//printf("num=%d\n",num);
for(i=0; i<=num; i++)
{
for(j=*(*(array+i))-1; j>0; j--)
{
if(*(*(array+i)+j)=='0'&&start==0)
continue;
start=1;
printf("%c",*(*(array+i)+j));
}
start=0;
printf("\n");
}
for(i=0; i<=num; i++)
free(*(array+i));
free(array);
return 0;
}
[此贴子已经被作者于2020-5-27 18:07编辑过]

2020-05-27 18:02
2020-05-28 11:22
2020-05-28 11:34
2020-05-28 13:14