7.10在Linux下的关于c语言的一些学习

for循环的一些应用
1.for循环打印出大写字母的ASCLL码的对照表。

#include <stdio.h>

int main()
{
    char a;
    for(a='A';a<='Z';a++)
    {
        printf("%c:%d\t",a,a);
    }
    return 0;
}

2.输出0-100之间不能被3整除的数。(for循环,continue语句)

#include <stdio.h>

int main()
{
    int i,j;
    for(i=0;i<=100;i++)
    {
        j=i%3;
        if(j==0)
        {
            continue;
        }
        printf("输出整数:%d\n",i);
    }
    return 0;
}

数组
数组下标是从0开始的!无论一维数组还是二维数组下标都可以是整型常量或整型表达式!
数组中的每个元素要保存字符串的类型,要使用字符指针!
例、

		char* a[2];
		a[0]="wang";
		a[1]="li";

一维数组
1.使用数组保存数据

#include <stdio.h>

int main()
{
    int a[5],i,temp;
    printf("请逐个输入元素:\n");
    for(i=0;i<5;i++)
    {
        scanf("%d",&a[i]);
    }
    printf("显示数组中的元素:\n");
    for(i=0;i<5;i++)
    {
        printf("%d",a[i]);
    }
    printf("\n");
    for(i=0;i<2;i++)  //用for循环掉换位置
    {
        temp=a[i];
        a[i]=a[4-i];
        a[4-i]=temp;
    }
    printf("输出现在的数组值:\n");
    for(i=0;i<5;i++)
    {
        printf("%d",a[i]);
    }
    printf("\n");
    return 0;
}

2.使用数组保存姓名。(数组中的每个元素都能保存字符串,要使用字符指针类型)

#include <stdio.h>

int main()
{
    char* a[3];
    int i;
    a[0]="wang";
    a[1]="li";
    a[2]="gu";
    for(i=0;i<3;i++)
    {
        printf("%s\n",a[i]);
    }
    return 0;
}

3.赋值数组(指定数组变量长度)

#include <stdio.h>

int main()
{
    int i;
    int a[6]={1,2,3};
    for(i=0;i<6;i++)
    {
        printf("%d",a[i]);   //观察输出的元素
    }
    return 0;
}

输出结果
123000

(不指定数组变量长度)

#include <stdio.h>

int main()
{
    int i;
    int a[]={1,2,3};
    for(i=0;i<3;i++)
    {
        printf("%d",a[i]);
    }
    return 0;
}

输出结果
123

二维数组
1.通过二维数组保存数据,并且求最大数组元素,最小数组元素及其下标,将二维数组转换为另一个二维数组并显示。

#include <stdio.h>

int main()
{
    int a[2][3],b[3][2];
    int max,min;
    int i,j,h,l;
    for(i=0;i<2;i++)
    {
        for(j=0;j<3;j++)
        {
            printf("a[%d][%d]=",i,j);
            scanf("%d",&a[i][j]);
        }
    }
    printf("输出二维数组:\n");
    for(i=0;i<2;i++)
    {
        for(j=0;j<3;j++)
        {
            printf("%d\t",a[i][j]);
        }
        printf("\n");
    }
    //求数组元素的最大值及下标
    max=a[0][0];
    h=0;
    l=0;
    for(i=0;i<2;i++)
    {
        for(j=0;j<3;j++)
        {
            if(max<a[i][j])
            {
                max=a[i][j];
                h=i;
                l=j;
            }
        }
    }
    printf("数组中最大元素是:\n");
    printf("a[%d][%d]=%d\n",h,l,max);
    //求数组元素的最小值及下标
    min=a[0][0];
    h=0;
    l=0;
    for(i=0;i<2;i++)
    {
        for(j=0;j<3;j++)
        {
            if(min>a[i][j])
            {
                min=a[i][j];
                h=i;
                l=j;
            }
        }
    }
    printf("数组中最小元素是:\n");
    printf("a[%d][%d]=%d\n",h,l,min);
    //将数组a转换后存入数组b
    for(i=0;i<2;i++)
    {
        for(j=0;j<3;j++)
        {
            b[j][i]=a[i][j];
        }
    }
    printf("输出数组b:\n");
    for(j=0;j<3;j++)
    {
        for(i=0;i<2;i++)
        {
            printf("%d\t",b[j][i]);
        }
        printf("\n");
    }
    return 0;
}

2.任意输入一个3行3列的二维数组,求其对角元素之和。

#include <stdio.h>

int main()
{
    int a[3][3];
    int i,j,sum=0;
    printf("输入数组元素:\n");
    for(i=0;i<3;i++)
    {
        for(j=0;j<3;j++)
        {
            printf("a[%d][%d]=",i,j);
            scanf("%d",&a[i][j]);
        }
    }
    printf("\n");
    for(i=0;i<3;i++)
    {
        for(j=0;j<3;j++)
        {
            if(i==j)
            {
                sum=sum+a[i][j];
            }
        }
    }
    printf("结果为:%d\n",sum);
    return 0;
}

字符数组
字符数组的结束标志
字符串总是以"\0"作为结束符,字符数组保存字符串,系统会自动添加"\0"。
用字符串方式赋值比字符逐个赋值要多占一个字节!

要点:Linux下gcc编译不支持gets命令,会有warning,所以我们应该使用fgets,使用方法如下: 格式: fgets(变量名,变量长度,stdin)
例、

#include<stdio.h>
int main()
{
    char a[20];
    fgets(a,20,stdin);      //stdin 键盘输入
    fputs(a,stdout);         //stdout输出
    return 0;
}

1.利用二维字符数组输出一个钻石。

#include <stdio.h>

int main()
{
    int i,j;
    char a[][5]={{' ',' ','*'},{' ','*',' ','*'},{'*',' ',' ',' ','*'},{' ','*',' ','*'},{' ',' ','*'}};
    for(i=0;i<5;i++)
    {
        for(j=0;j<5;j++)
        {
            printf("%c",a[i][j]);
        }
        printf("\n");
    }
    return 0;
}

2.计算字符串中单词个数。

#include <stdio.h>

int main()
{
    int i,w=1;
    char a[100];
    char b;
    printf("输入一段英文:\n");
    fgets(a,100,stdin);
    if(a[0]=='\0')
    {
        printf("There is no char!\n");
    }
    else if(a[0]==' ')
    {
        printf("First char is a blank!\n");
    }
    else
    {
        for(i=0;a[i]!='\0';i++)
        {
            b=a[i];
            if(b==' ')
            {
                w++;
            }
        }
        printf("单词个数:%d\n",w);
    }
    return 0;
}


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值