嵌入式
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;
}