...输入一个整数数字串 然后对这个数字串的奇数偶数分别求和。例如我输...
发布网友
发布时间:2024-10-22 07:10
我来回答
共3个回答
热心网友
时间:2024-12-01 22:27
#include <stdio.h>//望采纳
int main(void)
{
int value,j=0,o=0,temp,temp1;
printf ("请输入一个正整数:");
scanf("%d",&value);//获取输入的正整数
temp1=value;
//分割正整数,并求和
while(value!=0)
{
temp=value%10;//使temp的值为value值的最后一个数字,value取余得到的结果当然是最后一个数字
if(temp%2==0)//判断取得的最后一个数字是否为偶数
{
o=o+temp;//o表示偶数和
}
else
{
j=j+temp;//j为奇数和
}
value=value/10;//去除value最后一位数字
}
printf ("数%d的奇数和为:%d 偶数和为:%d\n",temp1,j,o);
return 0;
}
热心网友
时间:2024-12-01 22:24
#include <stdio.h>
int main()
{
char str[11]={0};
int ji=0,ou=0;
int i=0;
scanf("%s",str);
for(i=0;str[i]!='\0';i++)
{
if(str[i]%2)//13579的ASCII值为奇数
ji+=str[i]-48; //0的ASCII值为48
else ou+=str[i]-48;
}
printf("奇数和=%d\n偶数和=%d\n",ji,ou);
return 0;
}
热心网友
时间:2024-12-01 22:24
#include <stdio.h>
//数字转换(将字符型数字转换为int型数字)
int numTran(char ch)
{
return ch-'0'; //返回int型数字
}
//是否是偶数
int isEven(int num)
{
if (num%2 == 0) //能被2整数 则为偶数
return 1;
else
return 0;
}
int main(void)
{
int ch; //存放单个字符数字
int num; //转换后的int型数字
int evenSum = 0; //偶数和(注意初始化)
int unevenSum = 0; //奇数和(注意初始化)
while ((ch = getchar()) != '\n') //依次读取输入流中的字符 直到最后一个回车符结束
{
num = numTran(ch); //转换后的整型数字
if (isEven(num))
evenSum += num; //若为偶数 则累加偶数数字
else
unevenSum += num; //否则进行奇数累加
}
printf("%d %d\n", unevenSum, evenSum); //按照“奇数和” “偶数和” 的格式输出
return 0;
}
还有什么地方不懂的,可以继续@我