7.3
#include <stdio.h>
#define stop '0'
int main(){
int num;
char ch;
int s_n=0,d_n=0,stotal=0,dtotal=0; //s_n d_n 奇数 偶数个数,stotal dtotal 奇数 偶数总和
while((ch = getchar()) != stop){
num = (int)ch - 48;
if (num>0 && num <=9 ){(num%2)?(stotal += num,s_n++):(dtotal += num,d_n++);}
}
printf("%d %d %d %d ",s_n,d_n,stotal/s_n ,dtotal/d_n );
return 0;
}
7.4
#include<stdio.h>
#define stop '#'
int main(){
int n = 0;
char ch;
printf("输入 #退出\n");
while((ch = getchar()) != stop){
if (ch =='.'){
putchar('!');
n++;
}
else if (ch == '!'){
printf("!!");
n++;
}
else {
putchar(ch);
}
}
printf("\n替换次数=%d",n);
return 0;
}
7.5
#include<stdio.h>
#define stop '#'
int main(){
int n = 0;
char ch;
printf("输入 #退出\n");
while((ch = getchar()) != stop){
switch(ch){
case '.':
putchar('!');
n++;
break;
case '!':
printf("!!");
n++;
break;
default :
putchar(ch);
}
}
printf("\n替换次数=%d",n);
return 0;
7.7
#include <stdio.h>
#define t_p 1000
int main(){
double hour,salary,envy,total;
printf("输入一周工作的小时数\n");
scanf("%lf",&hour);
(hour <= 40.0)? salary = hour * t_p : salary= 40*t_p+(hour-40)*1.5*t_p;
if(salary <= 300 ) envy = 0.15*salary;
else if(salary >300 &&salary <= 450 ) envy = 0.15*300+0.20*(salary-300);
else envy = 0.15*300+0.20*(450-300)+0.25*(salary-450);
printf("工资总额=%.2f,税金=%.2f,净收入=%.2f",salary,envy,salary-envy);
return 0;
}