Linux c语言练习题数组篇

1.有n个数,使前面各数顺序向后移动m个位置,最后m个数变成最前面m个数。

	如12345, m = 3,变为34512.

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <strings.h>
int main(){
int a[10]={0};
int i,j,t;
int n,m;
scanf("%d %d",&n,&m);
getchar();
for(i=0;i<n;i++){
scanf("%d",&a[i]);
}
getchar();
for(i=0;i<n-m;i++){
for(j=0;j<n-1;j++){
t = a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
for(i=0;i<n;i++){
printf("%d “,a[i]);
}
puts(”");
return 0;
}

2.输入一个字符串,然后将其逆序输出

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <strings.h>
int main(){
char a[]={“abcdefg”};
char b[100]={“0”};
int i,j;
i=strlen(a);
printf("%d\n",i);
for(j=0;j<i;j++){
b[j]=a[i-j-1];
}
b[i]=’\0’;
for(j=0;j<i;j++){
printf("%c",b[j]);
}

puts("");
return 0;

}

3.实现单词逆序 如: hello world ----> olleh dlrow

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <strings.h>
int main(){
char a[]={“Are you OK ?”};
int i = strlen(a);
printf("%d\n",i);
int j=0,k=0,l=0;
while(1){
if(a[j] == ’ ’ || a[j] == ‘\0’){
l = j-1;
while(k<l){
a[k] ^= a[l];
a[l] ^= a[k];
a[k] ^= a[l];
k++;
l–;
}
k = j+1;
}
j++;
if(j==i+1){
break;
}
}
puts(a);
return 0;
}

4.将一个整数字符串转换成整数,如“12345”,输出12345

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <strings.h>
int main(){
char a[] = {“12345”};
int i;
int k = strlen(a);
for(i = 0;i<k;i++){
a[i] = a[i] - ‘0’;
}

for(i = 0;i<k;i++){
    printf("%d ",a[i]);
}   
puts("");
return 0;

}

5.判断字符串是否是回文

啥是回文:顺读和逆读意思一样
比如:LEVEL就是回文

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <strings.h>
#include <stdbool.h>
int main(){
char a[10];
gets(a);
int i,n = strlen(a);
int j = n/2;
bool t=false;
printf("%d\n",j);
for(i=0;i<j;i++){
if(a[i] != a[n-i-1]){
printf(“不是回文”);
t=true;
break;
}
}
if(!t){
printf(“是回文数\n”);
}else{
printf(“error!!\n”);
}
return 0;
}

6.求三行三列矩阵上三角形元素之和。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <strings.h>
int main(){
int a[][3]={{1,2,3},{4,5,6},{7,8,9}};
int i,j,s=0;
for(i=0;i<3;i++){
for(j=i;j<3;j++){
s += a[i][j];
}
}
printf("%d",s);
puts("");
return 0;
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值