7.1 输入三个数排序,从小到大排序
(1)方式一:变量
#include <stdio.h>
int main() {
int a,b,c,d,temp;
printf("请a,b,c的值(以,隔开) ");
scanf("%d,%d,%d",&a,&b,&c,&d);
if(a>b){
temp=a;
a=b;
b=temp;
}
if(a>c){
temp=a;
a=c;
c=temp;
}
if(b>c){
temp=c;
c=b;
b=temp;
}
printf("从小到大输出:%d,%d,%d\n",a,b,c);
return 0;
}
(2)方式二 指针
#include <stdio.h>
int main() {
void exchange(int *q1,int *q2,int *q3);
void swap(int *pt1,int *pt2);
int a,b,c,*p1,*p2,*p3;
printf("输入三个整数用,隔开:");
scanf("%d,%d,%d",&a,&b,&c);
p1=&a;
p2=&b;
p3=&c;
exchange(p1,p2,p3);
printf("从小到大排序为%d,%d,%d\n",a,b,c);
return 0;
}
void swap(int *pt1,int *pt2)
{
int temp;
temp=*pt1;
*pt1=*pt2;
*pt2=temp;
}
void exchange(int *q1,int *q2,int *q3)
{
void swaq(int *pt1,int *pt2);
if(*q1<*q2)swap(q1,q2);
if(*q1<*q3)swap(q1,q3);
if(*q2<*q3)swap(q2,q3);
}
7.2 输入一行字符,分别统计其中英文字母、空格、数字和其他字符的个数
#include <stdio.h>
int main() {
int i=0,j=0,k=0,h=0;
char c;
printf("请输入一个字符串 ");
c=getchar();
while(c !='\n'){
if(c==' ')i++;
else if(c<='z' && c>='A')j++;
else if(c<='9' && c>='0')k++;
else h++;
c=getchar();
}
printf("空格有%d个,数字有%d个,数字有%d个,其他字符有%d个",i,j,k,h);
return 0;
}
7.3 求S=a+aa+aaa+aaa+····+aaa···aa的值,其中a是数字,n表示位数
#include <stdio.h>
int main() {
int i,n,s=0,a=2,sum=0;
printf("请输入2的位数 n=");
scanf("%d",&n);
for(i=1;i<=n;i++){
s =s*10+a;
sum +=s;
if(i==n){
printf("%d",s);
break;
}
printf("%d+",s);
}
printf("=%d\n",sum);
return 0;
}
7.4 求 1!+2!+3!+····+20!
#include <stdio.h>
int main() {
int i,j,sum=1,s=0;
for(j=1;j<=20;j++){
sum=1;
for(i=1;i<=j;i++){
sum *=i;
}
s +=sum;
}
printf("%d\n",s);
return 0;
}
7.5 求(1+1*1+1/1)+(2+2*2+1/2)+·····+(100+100*100+1/100)
#include <stdio.h>
int main() {
int i;
double sum=0.0;
for(i=1;i<=2;i++){
sum +=i+i*i+(double)1/i;
}
printf("%.3f\n",sum);
return 0;
}