与数组有关的练习

输入十个数用插入排序,降序输出;

#include<stdio.h>



int main()
{
int a[10] = {0};
int b[10] = {0};
    int i = 0;
    int j = 0;
int k = 0;
int flag = 0;


printf("please input 10 number\n");
for(i = 0; i < 10; i++)
{
scanf("%d",&a[i]);             //输入数组a[10]
}

b[0] = a[0];                       //将数组a的第一个元素给数组b的第一个元素


for(i = 1; i < 10; i++)            //将数组a中的元素拿出来一个个比较
{
   for(j = 0; j < i; j++)
{
if(a[i] >= b[j])
{
   flag = 1;              //如果a[i]遇到一个大于等于自身的数,则标记1
break;                 //退出循环
}
}
if(flag == 1)
{
k = i;
for(k; k > j; k--)
{
b[k] = b[k - 1];       //如果标记为1的话则将数组b中的元素往后排
}
b[k] = a[i];
}

if((a[i] <= b[j - 1]) && (flag == 0))
{
b[i] = a[i];               //如果标记为0且a[i]比b数组中的值都小的话则将a[i]放在b[i]处
}
        flag = 0;                      //将flag置0
}

for(i = 0; i < 10; i++)
{
printf("%2d",b[i]);            //输出数组b
}


printf("\n");


return 0;

}


编写一个c函数,该函数的功能可以将一个字符串逆序;

例子:从终端输入:hello,输出结果是olleh;

#include<stdio.h>


#define N 100


int main()
{
char a[N];
char b[N];


int t = 0;
int i = 0;


printf("please input alp\n"); 
scanf("%s",&a);              //输入字符数组a


    t = strlen(a) - 1;           //计算字符数组a内的字符数,并将字符总数减1给t便于循环 


for(t; t >= 0; t--)
{
b[i] = a[t];             //将数组a反向传给数组b;
i++;
}


printf("%s",b);

printf("\n");


return 0;

}

写一个C函数,将“I am from shanghai”倒置为“shanghai from am I”,及句子中单词位置倒置,而不改变单词内部结构。

#include<stdio.h>
#include<string.h>




int main()
{
char a[4][20];                 //定义一个二维数组
char temp;

int i = 0;
int t = 0;

for(i; i < 4; i++)             //利用循环输入单词
{
scanf("%s",&a[i]);
}


for(i = 0; i < 2; i++)         
{
for(t = 0; t< 20 ; t++)
{
temp = a[i][t];
a[i][t] = a[3 - i][t]; //先将两行的进行互换在将两行间的元素互换
a[3 - i][t] = temp;
}
}

for(i = 0; i < 4; i++)
{
printf("%s",a[i]);         //打印输出
printf(" ");
}


printf("\n");

return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值