C语言基础------基础编程题目总结

C语言编程经验总结:
1.求某一整数的十位,先取余再除以10。
2.求某一整数字符串各位之和,可以使用-'0'操作。
#include
#include
#include
int main(){
    char s[100000];
    int i,sum=0;
    scanf("%s",&s);
    i=strlen(s);
    for(int j=0;j         sum+=s[j]-'0';
    }
    printf("%d",sum);
    return 0;
}
本题输入123,输出6.
3.求一个三位数的反序。
#include
int main(){
    int n;
    scanf("%d",&n);
    printf("%d%d%d",n%10,n/10%10,n/100);
    return 0;
}
本题输入120,输出021.
4.对一个小数上下取整。
#include
int main(){
    float n;
    scanf("%f",&n);
    if(n==(int)n)
    {
        printf("%d\n",(int)n);
        printf("%d\n",(int)n);
    }
    else
    {
        printf("%d\n",(int)n);
        printf("%d\n",(int)n+1);
    }
    return 0;
}
5.注意浮点数的范围,对于小于100000的数应定义为double类型的数据。
#include
int main(){
    double f;
    scanf("%lf",&f);
    printf("%.3lf\n",5.0/9*(f-32));
    return 0;
}
本题是输入华氏温度,输出对应的摄氏温度。
6.求某个数的四舍五入值。
12345->12350
12399->12400
#include
int main(){
    int n,m;
    scanf("%d",&n);
    if(n%10>=5) 
    {
        m=n+10-n%10;
    }
    else
    {
        m=n-n%10;
    }
    printf("%d\n",m);
    return 0;
}
7.判断闰年。
#include
int main(){
    int year;
    scanf("%d",&year);
    if((year%4==0&&year%100!=0)||(year%400==0)){
        printf("yes\n");
    }
    else{
        printf("no\n");
    }
    return 0;
}
8.数列求和。
链接:https://ac.nowcoder.com/acm/problem/22158
输入一个整数n,计算 1+1/(1-3)+1/(1-3+5)+...+1/(1-3+5-...+2n-1)的值。
#include
int main(){
    int n;
    double sum=0,s=0;
    scanf("%d",&n);
    for(int i=1;i<=n;i++){
            if(i%2==1)
            {
                s+=2*i-1;
            }
            else
            {
                s-=2*i-1;
            }
            sum+=1.0/s;
        }
    printf("%.3f\n",sum);
    return 0;
}
输入1,输出1.000。
9.数列求和。
计算1+(1+2)+(1+2+3)+。。。+(1+2+3+。。。+n)。
#include
int main(){
    int n,sum=0,s=0;
    scanf("%d",&n);
    for(int i=1;i<=n;i++){
            s=i*(i+1)/2;
            sum+=s;
        }
    printf("%d\n",sum);
    return 0;
}
输入4,输出20。
10.斐波那契数列递归方式实现。
#include
int fib(int n);
int main(){
    int n;
    scanf("%d",&n);
    printf("%d\n",fib(n));
    return 0;
}
int fib(int n){
    int s;
    if(n==1||n==2)  s=1;
    else{
        s=fib(n-1)+fib(n-2);
    }
    return s;
}
前几项是1,1,2,3,5,8。。。
输入2,输出1。
11.有一个数字魔法,给你一个正整数n,如果n为偶数,就将他变为n/2, 如果n为奇数,就将他变为乘3加1,不断重复这样的运算,经过有限步之后,一定可以得到1。
输入一个整数,输出一个整数表示第几次计算能变成1。

#include
int main(){
    int n,sum=0,i=0;
    scanf("%d",&n);
    while(n!=1){
        i++;
        if(n%2==0)  n=n/2;
        else  n=3*n+1;
    }
    printf("%d\n",i);
    return 0;
}
输入3,输出7。
12.利用更相减损术求两个整数的最大公约数,即每次将较大的数变成大数减去小数的值。
#include
int main(){
    int m,n;
    scanf("%d %d",&m,&n);
    while(m!=n){
        if(m>n)  m=m-n;
        else if(m         else  break;
    }
    printf("%d\n",m);
    return 0;
}
输入4 6,输出2。
13.计算a+b,输入包含多组数据,每组输入占一行。
#include
int main(){
    int m,n;
    while(scanf("%d%d",&m,&n)!=EOF){
        printf("%d\n",m+n);
    }    
    return 0;
}
14.计算a+b,当输入的两个整数都是0时结束。
注意使用while(1)。
#include
int main(){
    int m,n;
    while(1){
        scanf("%d %d",&m,&n);
        if(m!=0&&n!=0)  printf("%d\n",m+n);
        else  break;
    }    
    return 0;
}
输入1 1 
    2 3
    0 0
输出2 
    5 
15.输入两个整数a,b,求这两个数之间位数之和为5的数的个数。
方法一:
#include
int main(){
    int m,n;
    scanf("%d %d",&m,&n);
    int max,min,j=0;
    max=m>n?m:n;
    min=m     int s=0;
    for(int i=min;i<=max;i++){
        int temp=i;
        while(temp!=0){
            s+=temp%10;
            temp/=10;
        }
        if(s%5==0)  
            j++;
        s=0;//注意每次计算结束需要将位数和S归零
    }
    printf("%d\n",j);
    return 0;
}
输入10 20,输出2,因为10-20有两个数符合要求:14和19。
方法二(封装函数的方法):
#include
int fun(int k)
{
    int i,a[10],sum=0;
    for(i=0;k>0;i++)
    {
        a[i]=k%10;
        k/=10;
        sum+=a[i];
    }
    return sum;
}
int main()
{
    int x,y;
    int i,s=0;
    scanf("%d %d",&x,&y);
    for(i=x;i<=y;i++)
    {
        if(fun(i)%5==0)
            s+=1;
    }
    printf("%d",s);
    return 0;
}
16.输出回文数:正着读与倒着读都一样的数。比如1221,343是回文数。
方法一:
#include
int main()
{
    int n,i,j,t=0;
    scanf("%d",&n);
    
    for(i=1,j=1;j     {
        i=j;
        while(i!=0)
        {
            t=t*10+i%10;
            i=i/10;
        }
        if(t==j)        printf("%d\n",j);
        t=0;
    }

    return 0;
}
方法二(封装函数的方法):
#include
int nizhi(int k)
{
    int a[10],i,j,sum=0;
    for(i=0;k>0;i++)
    {
        a[i]=k%10;
        k/=10;
    }
     for(j=0;j<=(i-1);j++)
     {
         sum=a[j]+sum*10;
     }
     return sum;
}
int main()
{
    int n;int i,s;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        if(i==nizhi(i))
        printf("%d\n",i);
    }
    return 0;
}
输入10,输出1 2 3 4 5 6 7 8 9(一个数一行)。
17.输出1~n中能被3整除,并且至少有一位数字是5的所有整数。
#include
int main(){
    int n,x=0;
    scanf("%d",&n);
    for(int i=1;i<=n;i++){
        if(i%3!=0)
            continue;
        int temp=i;
        while(temp!=0){
            x=temp%10;
            if(x==5){
                printf("%d\n",i);
                break;
            }
            temp/=10;
        }
    }
    return 0;
}
输入50,输出15
            45
18.选村长。投票一人一票,为候选人a,b,c投票,代号分别为1,2,3,其他投票均无效,以-1结束,分别统计他们的得票数。谁的票数超过全部投票人数的一半,就输出谁当选为村长,如果都不过半,则输出“all-NO”。
#include
int main(){
    int n,a=0,b=0,c=0,Tot=0,count=0;
    while(scanf("%d",&n)!=EOF){
        count++;
        if(n==-1)  break;
        switch(n){
            case 1:
                a++;
                Tot++;
                break;
            case 2:
                b++;
                Tot++;
                break;
            case 3:
                c++;
                Tot++;
                break;
            default:
                break;
        }
    }
    printf("A=%d\n",a);
    printf("B=%d\n",b);
    printf("C=%d\n",c);
    printf("Tot=%d\n",Tot);
    //printf("A=%d\nB=%d\nC=%d\nTot=%d\n",a,b,c,count);
    if(a         printf("all-NO\n");
    else if(a>=count/2)
        printf("A-yes\n");
    else if(b>=count/2)
        printf("B-yes\n");
    else
        printf("C-yes\n");
    return 0;
}
输入1  1  3  2  1  3  2  1  3  3  1  2  4  1  4  1  2   1  2  1 1 -1
输出A=10
    B=5
    C=4
    Tot=19
    all-NO
19.输入一个整数,输出这个整数的所有数位之和。
#include
int main(){
    int n,sum=0;
    scanf("%d",&n);
    while(n!=0){
        int i=n%10;
        n/=10;
        sum+=i;
    }
    printf("%d\n",sum);
    return 0;
}
输入12,输出3。
20.素数判断。输入一个整数,判断是否是素数,输出“Yes”或“No”。
#include
int main(){
    int t,flag=1;
    scanf("%d",&t);
    while(t--){
        int n;
        scanf("%d",&n);
        if(n==1){
            printf("No\n");
            continue;
        }
        if(n==2){
            printf("Yes\n");
            continue;
        }
        for(int i=2;i             if(n%i==0)  
            {
                printf("No\n");
                flag=0;
                break;
            }
        }
        if(flag==1)  printf("Yes\n");
        flag=1;
    }
    return 0;
}
输入2
    1
    2
输出No
    Yes
21.输入一个字符串,包含整数、数字和其他字符,字符串以“?”结束。计算数字、字母及其他字符的个数。
方法一:
#include
int main()
{
    int Letters=0,Digits=0,Others=0;
    char s ;
    while(s=getchar(),s!='?'){
        if(s<='9'&&s>='0'){
            Digits++;
            continue;
        }
        else if((s>='a'&&s<='z')||(s>='A'&&s<='Z')){
            Letters++;
            continue;
        }
        else{
            Others++;
        }
    }
    printf("Letters=%d\nDigits=%d\nOthers=%d\n",Letters,Digits,Others);
    return 0;
}
方法二(利用ASCII码值,a-z:97-122,A-Z:65-90):
#include
int main()
{
    int Letters=0,Digits=0,Others=0;
    char s ;
    while(s=getchar(),s!='?'){
        if(s>47&&s<58){
            //'0'的ASCII码值为48 
            Digits++;
            continue;
        }
        else if((s>64&&s<91)||(s>96&&s<123)){
            //'A'的ASCII码值是65,'a'的ASCII码值是97 
            Letters++;
            continue;
        }
        else{
            Others++;
        }
    }
    printf("Letters=%d\nDigits=%d\nOthers=%d\n",Letters,Digits,Others);
    return 0;
}
注:空格也是一个字符。
输入ab123!?
输出Letters=2
    Digits=3
    Others=1
22.注:EOF 是个宏,其意思是:End Of File,文件尾标志。 从数值上来看,就是整数-1。linux系统下,在输入回车换行后的空行位置,按 ctrl+d (先按ctrl键,不放,再按d键)。windows系统下,在输入回车换行后的空行位置,按 ctrl+z,再回车确认。
23.输入一个整数,输出这个整数行大小的金字塔。多个测试数据,每个测试数据输入一个整数。
#include
int main(){
    int n,i,j;
    while(scanf("%d",&n)!=EOF){
        for(i=1;i<=n;i++){
            for(j=1;j<=n-i;j++)
            {
                printf(" ");
            }
            for(j=1;j<=2*i-1;j++)
            {
                printf("*");
            }
            printf("\n");
        }
    }
    return 0;
}
输入1
    3
输出*
    *
   * *
  * * *
24.输出双层金字塔。多个测试数据。
#include
int main(){
    int n,i,j;
    while(scanf("%d",&n)!=EOF){
        for(i=1;i<=n;i++){
            for(j=1;j<=n-i;j++)
            {
                printf(" ");
            }
            for(j=1;j<=2*i-1;j++)
            {
                printf("*");
            }
            printf("\n");
        }
        for(i=1;i<=n-1;i++){
            for(j=1;j<=i;j++)
            {
                printf(" ");
            }
            for(j=1;j<=2*(n-i)-1;j++)
            {
                printf("*");
            }
            printf("\n");
        }
    }
    return 0;
}
输入2
    5
输出 *
    ***
     *
    *
   ***
  *****
 *******
*********
 *******
  *****
   ***
    *
拓展:打印字符金字塔。输入一个字母,保证是大写,输出一个字母金字塔。
#include
void jzt(char ch);
int main(){
    char ch;
    ch=getchar();
    jzt(ch);
    return 0;
}
void jzt(char ch){
    char i,j,k;
    for(i='A';i<=ch;i++){
        for(j=ch;j>i;j--)
            printf(" ");
        for(k='A';k<=i;k++)
            printf("%c",k);
        for(k=i-1;k>='A';k--)
            printf("%c",k);
        printf("\n");
    }
}
输入C
输出  A
     ABA
    ABCBA

25.阶乘输出。计算S=1!+2!+3!+…+N!的值。
#include
int main(){
    int n,a=1,s=0;
    scanf("%d",&n);
    for(int i=1;i<=n;i++){
        a*=i;
        s+=a;
    }
    printf("%d\n",s);
    return 0;
}
输入2,输出3。
26.九九乘法表打印输出。
#include
int main(){
    int i,j;
    for(i=1;i<=9;i++){
        for(j=1;j<=i;j++){
            printf("%d*%d=%2d ",j,i,i*j);
        }
        printf("\n");
    } 
    return 0;
}
1*1= 1
1*2= 2 2*2= 4
1*3= 3 2*3= 6 3*3= 9
1*4= 4 2*4= 8 3*4=12 4*4=16
1*5= 5 2*5=10 3*5=15 4*5=20 5*5=25
1*6= 6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7= 7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8= 8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9= 9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
27.打印数字三角形,从1开始输出,第i行输出i个数,每个数字按4个位置输出
注:c语言中 %4d可以输出一个数,占据四个位置,右对齐。

#include
int main(){
    int n,k=0;
    scanf("%d",&n);
    for(int i=1;i<=n;i++){
        for(int j=1;j<=i;j++){
            k++;
            printf("%4d",k);
        }
        printf("\n");
    }
    return 0;
}
输入4
输出   
   1
   2   3
   4   5   6
   7   8   9  10
28.将输入的整数逆序打印输出。
#include 
int nixu(int n);
int main(){
    int n;
    scanf("%d",&n);
    printf("%d\n",nixu(n));
    return 0;
}
int nixu(int n){
    int s=0,i;
    while(n!=0){
        i=n%10;
        s=s*10+i;
        n/=10;
    }
    return s;
}
输入12345,输出54321。
29.打印回文对称数。输入一个整数n,从1开始按从小到大的顺序输出所有回文数。
#include 
int nixu(int n);
int main(){
    int n;
    scanf("%d",&n);
    for(int i=1;i<=n;i++){
        int s=nixu(i);
        if(s==i)
            printf("%d\n",s);
    }    
    return 0;
}
int nixu(int n){
    int s=0,i;
    while(n!=0){
        i=n%10;
        s=s*10+i;
        n/=10;
    }
    return s;
}
输入10,输出1 2 3 4 5 6 7 8 9(每个整数占一行)。
30.打印质数。输入一个整数n,输出其所包含的所有质数,以空格隔开。
#include
int primes(int n){
    int i;
    for(i=2;i<=n;i++){
            if(n%i==0)  break;
        }
    if(i==n)  return 1;
    else  return 0;
}
int main(){
    int n;
    scanf("%d",&n);
    for(int j=1;j<=n;j++){
        if(primes(j)==1)
            printf("%d ",j);
    }
    return 0;
}
输入20
输出2 3 5 7 11 13 17 19
31.已知斐波那契数列的前几项0 1 1 2 3 5 8...,求第n项。
#include
int main(){
    long long int n,i,f1,f2,f3;
    f1=0;
    f2=1;
    scanf("%lld",&n);
    if(n==1)  printf("lld\n",f1);
    else if(n==2)  printf("lld\n",f2);
    else
    {
        for(i=3;i<=n;i++){
            f3=f1+f2;
            f1=f2;
            f2=f3;
        }
    printf("%lld\n",f3);
    }
    return 0;
}
输入49,输出4807526976。
32.输入5行(一个5*5的矩阵),以空格隔开,数据中只有一个是1,求这个1到矩阵中心的距离,即需要几步可以到达矩阵的中心位置。
注:矩阵中心为第三行第三列。
#include 
#include
int main(){
    int a[5][5],m,n;
    for(int i=0;i<5;i++){
        for(int j=j=0;j<5;j++){
            scanf("%d",&a[i][j]);
            if(a[i][j]==1)
            {
                m=i;
                n=j;
            }
        }
    }
    int s;
    s=abs(m-2)+abs(n-2);
    printf("%d\n",s);
    return 0;
}
输入0 0 0 0 0
    0 0 0 0 1
    0 0 0 0 0
    0 0 0 0 0
    0 0 0 0 0
输出3。
33.输入一个整数表示总像素,输出长和宽,使得长和宽接近,且长始终大于宽。
#include
#include
int main(){
    int n,i,j;
    scanf("%d",&n);
    for(i=sqrt(n);i>=1;i--){
        if(n%i==0)
        {
            j=n/i;
            break;
        }
    }
    printf("%d %d\n",i,j);
    return 0;
}
输入8
输出2 4。
34.输入一行,三个整数a,b,c,如果某数目的a加上某数目的b之和等于c,则输出“Yes”,否则输出“No”。
#include
int main(){
    int a,b,c,flag=1;
    scanf("%d %d %d",&a,&b,&c);
    int i,j;
    for(i=0;i<=c/a;i++){
        if((c-i*a)%b==0){
            flag=0;
            printf("Yes\n");
            break;            
        }
    }
    if(flag==1)        printf("No\n");
    return 0;
}
输入3 2 7
输出Yes。
35.求两个整数的最大公约数。
方法一(非递归):

#include
int gcd(int a,int b){
    while(b){
        int temp=b;
        b=a%b;
        a=temp;
    }
    return a;
}
int main(){
    int a,b;
    scanf("%d %d",&a,&b);
    printf("%d\n",gcd(a,b));
    return 0;
}
方法二(递归):
#include
int gcd(int a,int b){
    if(b==0) return a;
    else
        return gcd(b,a%b);
}
int main(){
    int a,b;
    scanf("%d %d",&a,&b);
    printf("%d\n",gcd(a,b));
    return 0;
}
输入4 6
输出2。
36.类似栈数的先进后出顺序,将输入的多组数据反向输出。
#include
int main(){
    int n,a;
    scanf("%d",&n);
    while(n--){
        scanf("%d",&a);
        int s[a];
        for(int i=0;i             scanf("%d",&s[i]);
        }
        for(int j=a-1;j>=0;j--){
            printf("%d ",s[j]);
        }
        printf("\n");
    }
    return 0;
}
输入
2
3
1 2 3
5
2 3 1 4 5
输出3 2 1
5 4 1 3 2
37.输入三行。第一行输入两个数,表示两个数组中数的个数,第二三行输入数组值。输出两个数组中最大数的和。
#include
int main(){
    int n,m;
    scanf("%d %d",&n,&m);
    int a[n],b[m],x=0,y=0;
    for(int i=0;i         scanf("%d",&a[i]);
        if(x     }
    for(int j=0;j         scanf("%d",&b[j]);
        if(y     }
    printf("%d\n",x+y);
    return 0;
}
输入
2 3
1 2
1 2 3
输出
5
38.定位查找。多组测试,每次测试,第一行输入1个整数n,第二行输入n个整数,第三行输入1个整数m,输出m在该数组中的下标。
#include
int main(){
    int m,n,i,j,a[20];
    while(scanf("%d",&n)!=EOF){
        for(i=0;i             scanf("%d",&a[i]);
        }
        scanf("%d",&m);
        for(j=0;j             if(m==a[j]){
                printf("%d\n",j);
                break;
            }
        }
        if(j==n)  printf("No\n");
    }
    return 0;
}
输入
3
4 5 6
5
4
2 2 2 2
2
输出1  0
39.多个测试数据每个测试数据占一行,先输入分数的个数n,然后输入n个整数,计算平均值,打印输出小于平均值的数。
#include
int main(){
    int n,score[100],i,sum;
    double mean;
    while(scanf("%d",&n)!=EOF){
        sum=0;//每次都需要将sum清零 
        for(i=0;i         scanf("%d",&score[i]);
        sum+=score[i];
        }
        mean=sum*1.0/n;
        for(i=0;i             if(score[i]                 printf("%d ",score[i]);
        }
        printf("\n");
    }
    return 0;
}
输入3 40 50 60
2 90 80
5 10 10 90 80 80
输出40
80
10 10
40.输入n个数,有一个数出现次数超过一半,输出这个数。
#include 
int main(){
    int n,a[1000],b[1000],i,j;
    scanf("%d",&n);
    for(int i=0;i         scanf("%d",&a[i]);
    }
    for(i=0;i         b[i]=1;
    }
    for(i=0;i         for(j=0;j             if(a[i]==a[j]){
                b[j]++;
            }
        }
    }
    for(i=0;i         if(b[i]>n/2)    break;
    }
    printf("%d\n",a[i]);
    return 0;
}
输入5
1 2 2 3 2
输出2。
***41.统计一篇英文中所有小写字母各出现了几次。
输入若干行,处理到结尾。按字符顺序输出每种小写字符的出现次数,没有出现的不用输出。

#include
int main(){
    int i,j,s[1000]={0};
    char ch,n;
    while(scanf("%c",&n)!=EOF){
        if(n>='a'&&n<='z'){
            s[n]++;
        }
    }
    for(ch='a';ch<='z';ch++){
        if(s[ch]>0){
            printf("%c:%d\n",ch,s[ch]);
        }
    }
    return 0;
}
输入abc abc def 
abab   ccc
ccc ccc 
输出a:4
b:4
c:11
d:1
e:1
f:1
42.给出一个n*m的二维网格,求2*2方格的个数,方格里面的字符可以直接构成'face'。
#include 
int main(){
    int m,n,sum=0;
    char a[100][100];
    scanf("%d %d",&n,&m);
    for(int i=0;i             scanf("%s",a[i]);
    }
    for(int i=0;i         for(int j=0;j             if((a[i][j]+a[i+1][j+1]+a[i+1][j]+a[i][j+1])==('f'+'a'+'c'+'e'))
                sum++;
        }
    }
    printf("%d\n",sum);
    return 0;
}
输入2 3
fac
cef
输出2
***43.求质数的个数。第一行输入一个整数t,表示询问的个数,接下来t行每行输入一个整数n,输出小于等于n的质数的个数。
#include
int a[1000001];
int main(){
    int t,i,j,s=0;
    scanf("%d",&t);
    for(i=2;i<1000001;i++){
        for(j=2;j*j<=i;j++){
            if(i%j==0)    break;
        }
        if(j*j>i)    s++;
        a[i]=s;
    }
    while(t--){
        scanf("%d",&i);
        printf("%d\n",a[i]);
    }
    return 0;
}
输入2
10
1000000
输出4
78498
注:这里为什么求质数只需要循环到该数的平方根?
原因在于:如果一个数的约数在其开平方的右边 则必然会存在一个约数在其开平方的左边 所以 
判断一个数是否为质数 只需要观察在其2 到 开平方数中间是否含有约数即可。

***44.约瑟夫环:n个人(0,1,2,3,4...n-1),围成一圈,从编号为k的人开始报数,报数报到m的人出队(报数是1,2,...m这样报的)。下次从出队的人之后开始重新报数,循环往复,当队伍中只剩最后一个人的时候,那个人就是大王。现在,给定n,k,m,
请你求出大王的编号。
输入一行包含三个整数n,k,m
输出一个整数表示大王编号。

#include 
int main(){
    int m,n,k,i,j=1,s[100];
    scanf("%d %d %d",&n,&k,&m);
    for(i=0;i     int count=n;
    for(i=k;count>1;i++){ /*这种循环设置是为了i一直从头到尾循环永不停歇*/
        if(i==n)    i=0; /*如果索引超出范围,又从头开始*/
        if(s[i]!=0){/*如果没出圈,就是一,报数变量j就会叫,不是,又继续循环,j不叫*/
            if(j==m){ /*j就是报数的数字,1 2 3 4 5 6 7 ....m*/
                count--;
                j=1;
                s[i]=0;
            }
            else{
                j++;  /*只要报的数字不等于m,j就一直报数*/
            }
        }
    }
    for(i=0;i         if(s[i]==1)    printf("%d",i);
    }
    return 0;
}
***45.实现10个数最大的最小的相加,次大的和次小的相加,写入文件。
#include
#include
int main(){
    FILE *fp;
    if((fp=fopen("max_min.txt","w+"))==NULL){
        printf("文件无法打开\n");
        exit(0);
    }
    int i,j,temp,a[10];
    for(i=0;i<10;i++){
        scanf("%d",&a[i]);
    }
    for(i=0;i<10;i++){//排序 
        for(j=0;j<9-i;j++){
            if(a[j]>a[j+1]){
                temp=a[j];
                a[j]=a[j+1];
                a[j+1]=temp;
            }
        }
    }
    fprintf(fp,"\n");//可以在文件中实现换行操作
    for(i=0;i<10;i++){
        fprintf(fp,"%d ",a[i]);
    }
    for(i=0;i<5;i++){
        fprintf(fp,"\n%d",a[i]+a[9-i]);
    }
    fclose(fp);
    return 0;
}
输入
10 20 30 40 50 60 70 80 90 100
输出
110
110
110
110
110

你可能感兴趣的:(C/C++代码,C语言从入门到精通,典型题目,c语言)