C语言练习题题解

别问我为什么现在还发C语言的题解→_→
问就是因为某人hhh
别问写法为什么这么奇怪,我们学校环境vc6…


#include<stdio.h>
int fun(long x){
	int arr[30]={0},cnt = 0;
	int i;
	while(x){
		arr[cnt++] = x%10;
		x/=10;
	}
	for(i=0;i<cnt/2;i++)if(arr[i]!=arr[cnt-i-1])return 0;
	return 1;
}
int main(){
	long in;
	scanf("%ld",&in);
	if(fun(in))
		printf("YES\n");
	else
		printf("NO\n");	
	return 0;
}

#include<stdio.h>
#include<string.h>
void sortchar(char s[]){
	int i,j,len = strlen(s),cnt = 0;
	char t[90]={0};
	for(i=0;i<len;i++)if(s[i]!=' ')t[cnt++]=s[i];
	for(i=0;i<cnt;i++){
		for(j=i+1;j<cnt;j++)if(t[i]>t[j]){
			char tmp = t[i];
			t[i] = t[j];
			t[j] = tmp;
		}
	}
	for(i=0;i<cnt;i++)s[i]=t[i];
	s[cnt] = '\0';
}
main()
{
    char s[80];
    gets(s);
    sortchar(s);

    puts(s);

}

也可以先新建一个数组,把非空字符拿到丢进去,然后同理排序,这样可以省下函数里的最后俩句话。

#include<stdio.h>
#include<string.h>
void del_samechar(char a[]){
	char b[100]={0};
	int len = strlen(a);
	int i,j,cnt = 0;
	for(i=0;i<len;i++)if(a[i]!=a[i+1]){
		if(i>0&&a[i]==a[i-1])continue;
		b[cnt++] = a[i];
	}
	for(i=0;i<cnt;i++)a[i]=b[i];
	a[cnt]='\0';
}
int main(){
	char str[100];
	gets(str);
	del_samechar(str);
	puts(str);
	return 0;
}

#include<stdio.h>
#include<string.h>
void counta_z(char str[],int count[]){
	int len = strlen(str);
	int i;
	for(i=0;i<len;i++){
		if(str[i]>='a'&&str[i]<='z')count[str[i]-'a']++;
		else if(str[i]>='A'&&str[i]<='Z')count[str[i]-'A']++;
	}
}
int main(){
	char str[255];
	int count[26]={0};
	int i;
	gets(str);
	counta_z(str,count);
	for(i=0;i<26;i++)
		if(count[i])
			printf("%c出现的次数为:%d\n",i+'a',count[i]);//这里原题是中文:还是英文:?(我看不清楚,可能需要你看看 
	return 0;
}

#include<stdio.h>
#include<string.h>
int fun(int arr[],int len,int y){
	int i,tmp[100]={0},cnt=0;
	for(i=0;i<len;i++)
		if(arr[i]!=y)tmp[cnt++]=arr[i];
	for(i=0;i<cnt;i++)arr[i]=tmp[i];
	return cnt;
}
#define M 15
int main(){
	int aa[M]={1,2,3,3,2,1,1,2,3,4,5,4,3,2,1},n=15,y,k;
	scanf("%d",&y);
	n = fun(aa,n,y);
	for(k=0;k<n;k++)
		printf("%d ",aa[k]);
	printf("\n");
	return (0);
}

#include<stdio.h>
#include<string.h>
long  compose(long int n){
	int arr[100] = {0},cnt = 0;
	while(n){
		arr[cnt++] = n%10;
		n/=10;
	}
	long int ans = 0;
	int i;
	for(i=cnt-1;i>=0;i--)if(arr[i]%2==0){
		ans = ans*10+arr[i];
	}	
	return ans;
}
#define M 15
int main(){
	long int n;
	scanf("%ld",&n);
	printf("%ld\n",compose(n));
	return 0;
}

#include<stdio.h>
#include<string.h>
int fun(long n){
	int arr[30]={0},cnt = 0;
	int i;
	while(n){
		arr[cnt++] = n%10;
		n/=10;
	}
	for(i=0;i<cnt/2;i++)if(arr[i]!=arr[cnt-i-1])return 0;
	return 1;
}
main()
{
	long in;
	scanf("%ld",&in);
	if(fun(in))
		printf("YES\n");
	else
		printf("NO\n");	
	
}

#include<stdio.h>
#include<string.h>
void sort(int a[],int n){
	int i,j;
	for(i=0;i<n;i++){
		for(j=i+1;j<n;j++)if(a[i]>a[j]){
			int tmp = a[i];
			a[i] = a[j];
			a[j] = tmp;
		}
	}
}
int main(){
	int a[10],i,n;
	scanf("%d",&n);
	for(i=0;i<n;i++)
		scanf("%d",&a[i]);
	printf("排序之前的数组:");
	for(i=0;i<n;i++)
		printf("%d ",a[i]);
	sort(a,n);
	printf("\n排序之后的数组:");
	for(i=0;i<n;i++)
		printf("%d ",a[i]);
	return 0;
}
发布了634 篇原创文章 · 获赞 579 · 访问量 35万+

猜你喜欢

转载自blog.csdn.net/qq_33583069/article/details/103410351