zoukankan      html  css  js  c++  java
  • C语言中 , , 

    回车符
    换行符

    Unix(Linux)系统只需要 就可将光标移到下一行行首;

    但在Windows系统中, 只换行,不移动光标,所以Windows系统中需要把 和 结合使用:printf("%d ",x);方可在输出x后把光标移到下一行的行首。

    只是当前光标往前退一格,并不会清除内容,所以

    printf("aaaaa ");的输出是aaaaa而不是aa

    printf(" ")才是删除字符

    是将光标前移一个位置并不是直接清除,除非输出一个空格覆盖原来的字符

    作者:李简
    链接:https://zhuanlan.zhihu.com/p/143940577
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    1、/*输出9*9口诀。共9行9列,i控制行,j控制列。*/

    #include "stdio.h"
    main()
    {int i,j,result;
    for(i=1;i<10;i++)
    {for(j=1;j<10;j++)
    {
    result=i*j;
    printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3位*/
    }
    printf(" ");/*每一行后换行*/
    }
    }2、/*古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
    兔子的规律为数列1,1,2,3,5,8,13,21....*/main()
    {
    long f1,f2;
    int i;
    f1=f2=1;
    for(i=1;i<=20;i++)
    { printf("%12ld%12ld",f1,f2);
    IF(i%2==0) printf(" ");/*控制输出,每行四个*/
    f1=f1+f2;/*前两个月加起来赋值给第三个月*/
    f2=f1+f2; /*前两个月加起来赋值给第三个月*/
    }
    }3、/*判断101-200之间有多少个素数,并输出所有素数及素数的个数。
    程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。*/#include "math.h"
    main()
    {
    intm,i,k,h=0,leap=1;
    printf(" ");
    for(m=101;m<=200;m++)
    {k=sqrt(m+1);
    for(i=2;i<=k;i++)
    if(m%i==0)
    {leap=0;break;}
    if(leap) /*内循环结束后,leap依然为1,则m是素数*/
    {printf("%-4d",m);h++;
    if(h%10==0)
    printf(" ");
    }
    leap=1;
    }
    printf(" Thetotal is %d",h);
    }4、/*一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程找出1000以内的所有完数。*/main()
    {
    static int k[10];
    inti,j,n,s;
    for(j=2;j<1000;j++)
    {
    n=-1;
    s=j;
    for(i=1;i<j;i++)
    {if((j%i)==0)
    { n++;
    s=s-i;
    k[n]=i;
    }
    }
    if(s==0)
    {printf("%d is a wanshu: ",j);
    for(i=0;i<n;i++)
    printf("%d,",k);
    printf("%d ",k[n]);
    }
    }
    }5、/*下面程序的功能是将一个4×4的数组进行逆时针旋转90度后输出,要求原始数组的数据随机输入,新数组以4行4列的方式输出,请在空白处完善程序。*/main()
    { int a[4][4],b[4][4],i,j; /*a存放原始数组数据,b存放旋转后数组数据*/
    printf("input 16 numbers: ");
    /*输入一组数据存放到数组a中,然后旋转存放到b数组中*/
    for(i=0;i<4;i++)
    for(j=0;j<4;j++)
    { scanf("%d",&a[j]);
    b[3-j]=a[j];
    }
    printf("arrayb: ");
    for(i=0;i<4;i++)
    { for(j=0;j<4;j++)
    printf("%6d",b[j]);
    printf(" ");
    }
    }6、/*编程打印直角三角形*/main()
    {int i,j,a[6][6];
    for(i=0;i<=5;i++)
    {a=1;a[0]=1;}
    for(i=2;i<=5;i++)
    for(j=1;j<=i-1;j++)
    a[j]=a[i-1][j]+a[i-1][j-1];
    for(i=0;i<=5;i++)
    {for(j=0;j<=i;j++)
    printf("%4d",a[j]);
    printf(" ");}
    }7、/*通过键盘输入3名学生4门课程的成绩,分别求每个学生的平均成绩和每门课程的平均成绩。
    要求所有成绩均放入一个4行5列的数组中,输入时同一人数据间用空格,不同人用回车。其中最后一列和最后一行分别放每个学生的平均成绩、每门课程的平均成绩及班级总平均分。*/#include <stdio.h>
    #include <stdlib.h>
    main()
    { float a[4][5],sum1,sum2;
    inti,j;
    for(i=0;i<3;i++)
    for(j=0;j<4;j++)
    scanf("%f",&a[j]);
    for(i=0;i<3;i++)
    {sum1=0;
    for(j=0;j<4;j++)
    sum1+=a[j];
    a[4]=sum1/4;
    }
    for(j=0;j<5;j++)
    { sum2=0;
    for(i=0;i<3;i++)
    sum2+=a[j];
    a[3][j]=sum2/3;
    }
    for(i=0;i<4;i++)
    { for(j=0;j<5;j++)
    printf("%6.2f",a[j]);
    printf(" ");
    }
    }8、/*完善程序,实现将输入的字符串反序输出,如输入windows 输出swodniw。*/#include <string.h>
    main()
    { char c[200],c1;
    int i,j,k;
    printf("Enter a string: ");
    scanf("%s",c);
    k=strlen(c);
    for (i=0,j=k-1;i<k/2;i++,j--)
    { c1=c;c=c[j];c[j]=c1; }
    printf("%s ",c);
    }指针法:void invert(char *s)
    {int i,j,k;
    char t;
    k=strlen(s);
    for(i=0,j=k-1;i<k/2;i++,j--)
    { t=*(s+i); *(s+i)=*(s+j); *(s+j)=t; }
    }
    main()
    {FILE *fp;
    char str[200],*p,i,j;
    if((fp=fopen("p9_2.out","w"))==NULL)
    { printf("cannot open thefile ");
    exit(0);
    }
    printf("input str: ");
    gets(str);
    printf(“ %s”,str);
    fprintf(fp,“%s”,str);
    invert(str);
    printf(“ %s”,str);
    fprintf(fp,“ %s”,str);
    fclose(fp);
    }9、/*下面程序的功能是从字符数组s中删除存放在c中的字符。*/#include <stdio.h>
    main()
    { char s[80],c;
    int j,k;
    printf(" Enter a string: ");
    gets(s);
    printf(" Enter a character: ");
    c=getchar( );
    for(j=k=0;s[j]!= '';j++)
    if(s[j]!=c)
    s[k++]=s[j];
    s[k]='';
    printf(" %s",s);
    }10、/*编写一个voidsort(int *x,int n)实现将x数组中的n个数据从大到小排序。n及数组元素在主函数中输入。将结果显示在屏幕上并输出到文件p9_1.out中*/#include<stdio.h>
    void sort(int *x,int n)
    {
    int i,j,k,t;
    for(i=0;i<n-1;i++)
    {
    k=i;
    for(j=i+1;j<n;j++)
    if(x[j]>x[k]) k=j;
    if(k!=i)
    {
    t=x;
    x=x[k];
    x[k]=t;
    }
    }
    }
    void main()
    {FILE *fp;
    int *p,i,a[10];
    fp=fopen("p9_1.out","w");
    p=a;
    printf("Input 10 numbers:");
    for(i=0;i<10;i++)
    scanf("%d",p++);
    p=a;
    sort(p,10);
    for(;p<a+10;p++)
    { printf("%d ",*p);
    fprintf(fp,"%d ",*p); }
    system("pause");
    fclose(fp);
    }11、已知数组a中的元素已按由小到大顺序排列,以下程序的功能是将输入的一个数插入数组a中,插入后,数组a中的元素仍然由小到大顺序排列*/main()
    { inta[10]={0,12,17,20,25,28,30}; /*a[0]为工作单元,从a[1]开始存放数据*/
    int x , i, j=6; /*j为元素个数*/
    printf("Enter a number: ");
    scanf("%d",&x);
    a[0]=x;
    i=j; /*从最后一个单元开始*/
    while(a>x)
    { a[i+1]=a; i--; } /*将比x大的数往后移动一个位置*/
    a[++i]=x;
    j++; /*插入x后元素总个数增加*/
    for(i=1;i<=j;i++) printf("%8d",a);
    printf(" ");
    }12、/*编写函数replace(char *s,char c1,char c2)实现将s所指向的字符串中所有字符c1用c2替换,字符串、字符c1和c2均在主函数中输入,将原始字符串和替换后的字符串显示在屏幕上,并输出到文件p10_2.out中*/#include<stdio.h>
    replace(char*s,char c1,char c2)
    {while(*s!='')
    { if(*s==c1)
    *s=c2;
    s++;
    }
    }
    main()
    { FILE *fp;
    char str[100],a,b;
    if((fp=fopen("p10_2.out","w"))==NULL)
    { printf("cannot open thefile ");
    exit(0); }
    printf("Enter a string: ");
    gets(str);
    printf("Enter a&&b: ");
    scanf("%c,%c",&a,&b);
    printf("%s ",str);
    fprintf(fp,"%s ",str);
    replace(str,a,b);
    printf("Thenew string is----%s ",str);
    fprintf(fp,"Thenew string is----%s ",str);
    fclose(fp);
    }13、/*在一个字串s1中查找一子串s2,若存在则返回子串在主串中的起始位置,不存在则返回-1。*/main()
    {chars1[6]="thisis";char s2[5]="is";
    printf("%d ",search(s1,s2));
    system("pause");
    }
    int search(chars1[],char s2[])
    {inti=0,j,len=strlen(s2);
    while(s1){
    for(j=0;j<len;j++)
    if(s1[i+j]!=s2[j]) break;
    if(j>=len)return i;
    else i++;
    }
    return -1;
    }14、/*用指针变量输出结构体数组元素。*/struct student
    {
    int num;
    char *name;
    char sex;
    int age;
    }stu[5]={{1001,"lihua",'F',18},{1002,"liuxing",'M',19},{1003,"huangke",'F',19},{1004,"fengshou",'F',19},{1005,"Wangming",'M',18}};
    main()
    {int i;
    struct student *ps;
    printf("Num Name Sex Age ");
    /*用指针变量输出结构体数组元素。*/
    for(ps=stu;ps<stu+5;ps++)
    printf("%d %-10s %c %d ",ps->num,ps->name,ps->sex,ps->age);
    /*用数组下标法输出结构体数组元素学号和年龄。*/
    for(i=0;i<5;i++)
    printf("%d %d ",stu.num,stu.age);
    }15、/*建立一个有三个结点的简单链表:*/#define NULL 0
    struct student
    {
    int num;
    char *name;
    int age ;
    struct student*next;
    };
    void main()
    {
    struct studenta,b,c,*head,*p;
    a.num=1001;a.name="lihua"; a.age=18; /* 对结点成员进行赋值 */
    b.num=1002;b.name="liuxing"; b.age=19;
    c.num=1003;c.name="huangke"; c.age=18;
    head=&a; /* 建立链表,a为头结点 */
    a.next=&b;
    b.next=&c;
    c.next=NULL;
    p=head; /* 输出链表 */
    do{
    printf("%5d,%s,%3d ",p->num,p->name,p->age);
    p=p->next;
    }while(p!=NULL);
    }16、/*输入一个字符串,判断其是否为回文。回文字符串是指从左到右读和从右到左读完全相同的字符串。*/#include<stdio.h>
    #include<string.h>
    #include<string.h>
    main()
    { char s[100];
    int i,j,n;
    printf("输入字符串: ");
    gets(s);
    n=strlen(s);
    for(i=0,j=n-1;i<j;i++,j--)
    if(s!=s[j]) break;
    if(i>=j) printf("是回文串 ");
    else printf("不是回文串 ");
    }17、/*冒泡排序,从小到大,排序后结果输出到屏幕及文件myf2.out*/#include<stdio.h>
    void fun(inta[],int n)
    {int i,j,t;
    for(i=0;i<=n-1;i++)
    for(j=0;j<i;j++)
    if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}
    }
    main()
    {inta[10]={12,45,7,8,96,4,10,48,2,46},n=10,i;
    FILE *f;
    if((f=fopen("myf2.out","w"))==NULL)
    printf("open file myf2.outfaiLED! ");
    fun(a,10);
    for(i=0;i<10;i++)
    {printf("%4d",a);
    fprintf(f,"%4d",a);
    }
    fclose(f);
    }18、编写函数countpi,利用公式计算π的近似值,当某一项的值小于10-5时,认为达到精度要求,请完善函数。将结果显示在屏幕上并输出到文件p7_3.out中。#include<stdio.h>
    doublecountpi(double eps) /*eps为允许误差*/
    {
    int m=1;
    double temp=1.0,s=0;
    while(temp>=eps)
    { s+=temp;
    temp=temp*m/(2*m+1);
    m++;
    }
    return(2*s);
    }
    main()
    {FILE *fp;
    double eps=1e-5,pi;
    if((fp=fopen("p7_3.out","w"))==NULL)
    { printf("cannot open thefile ");
    exit(0);
    }
    pi= countpi(eps);
    printf("pi=%lf ",pi);
    fprintf(fp,"pi=%lf ",pi);
    fclose(fp);
    }

    上方都收藏了吗?欢迎学习更多关于C语言的知识哦

    C语言编程基础

    C语言(系列“点标题下的开始学习就可以看了”)

    提升C编程能力

    夯实C语言,从小白到大牛的进阶之路!

  • 相关阅读:
    Swift3 重写一个带占位符的textView
    Swift3 使用系统UIAlertView方法做吐司效果
    Swift3 页面顶部实现拉伸效果代码
    Swift3 倒计时按钮扩展
    iOS 获取当前对象所在的VC
    SpringBoot在IDEA下使用JPA
    hibernate 异常a different object with the same identifier value was already associated with the session
    SpringCloud IDEA 教学 番外篇 后台运行Eureka服务注册中心
    SpringCloud IDEA 教学 (五) 断路器控制台(HystrixDashboard)
    SpringCloud IDEA 教学 (四) 断路器(Hystrix)
  • 原文地址:https://www.cnblogs.com/kevinnote/p/13064318.html
Copyright © 2011-2022 走看看