XDOJ例题及答案第九更 对角线元素求和 奇偶排序 求三角形面积 求三位整数各位之和 日期计算 三角形判别 十六进制转换为十进制 输出26个英文字母

本文集提供了一系列实用的C语言编程示例,包括矩阵运算、排序算法、数学计算、日期转换等,适合初学者实践和提高。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

对角线元素求和

奇偶排序

求三角形面积

求三位整数各位之和

日期计算

三角形判别

十六进制转换为十进制

输出26个英文字母


对角线元素求和

#include<stdio.h>
int main(){
	int a[3][3],i,j,sum=0;
	for(i=0;i<3;i++){
		for(j=0;j<3;j++){ 
		scanf("%d",&a[i][j]);
		if(i==j){
			sum=sum+a[i][j];
		}
		}
	}
	printf("%d",sum);	
}

奇偶排序

#include<stdio.h>
void sort(int a[20],int n){
	int i,j,t,e=0,b[20],c[20];
	for(i=0;i<n;i++){
		for(j=1;j<n;j++){
			if(a[j-1]>a[j]){
				t=a[j-1];
				a[j-1]=a[j];
				a[j]=t;
			}
		}
	}
	j=0;
	for(i=0;i<n;i++){
		if(a[i]%2==0){
			b[j]=a[i];
			j++;
		}else{
			c[e]=a[i];
			e++;
		}
	}
	for(i=0;i<e-1;i++){
		printf("%d ",c[i]);
	}
	if(e-1>=0){
		printf("%d",c[e-1]);
	}
	printf("   ");
	for(i=0;i<j;i++){
		printf("%d ",b[i]);
	}
}
int main(){
	int a[20],n,i;
	scanf("%d",&n);
	for(i=0;i<n;i++){
		scanf("%d",&a[i]);
	}
	sort(a,n);
} 

求三角形面积

#include<stdio.h>
#include <math.h>
int main()
{
	float a,b,c,p,s;
	scanf("%f%f%f",&a,&b,&c);
	p=(a+b+c)/2;
	s=sqrt(p*(p-a)*(p-b)*(p-c));
	printf("%.2f",s);
 } 

求三位整数各位之和

#include<stdio.h>
int main()
{
	int a,b,c,d;
	b=0;
	scanf("%d",&a);
	b=a/100;
	a=a-b*100;
	c=a/10;
	a=a-c*10;
	d=b+c+a; 
	printf("%d",d);
}

日期计算

#include<stdio.h>
int main()
{
	int y,d;
	scanf("%d%d",&y,&d);
	if((y%4==0&&y%100!=0)||(y%400==0)){
		if(d<32){
			printf("1 %d",d);
		}else{
			if(d<61){
				printf("2 %d",d-31);
			}else{
				if(d<92){
					printf("3 %d",d-60);
				}else{
					if(d<122){
						printf("4 %d",d-91);
					}else{
						if(d<153){
							printf("5 %d",d-121);
						}else{
							if(d<183){
								printf("6 %d",d-152);
							}else{
								if(d<214){
									printf("7 %d",d-182);
								}else{
									if(d<245){
										printf("8 %d",d-213);
									}else{
										if(d<275){
											printf("9 %d",d-244);
										}else{
											if(d<306){
												printf("10 %d",d-274);
											}else{
												if(d<336){
													printf("11 %d",d-305);
												}else{
													printf("12 %d",d-335);
												}
											}
										}
									}
								}
							}
						}
					}
					
				}
			}
		}
	}else{
			if(d<32){
			printf("1 %d",d);
		}else{
			if(d<60){
				printf("2 %d",d-31);
			}else{
				if(d<91){
					printf("3 %d",d-59);
				}else{
					if(d<121){
						printf("4 %d",d-90);
					}else{
						if(d<152){
							printf("5 %d",d-120);
						}else{
							if(d<182){
								printf("6 %d",d-151);
							}else{
								if(d<213){
									printf("7 %d",d-181);
								}else{
									if(d<244){
										printf("8 %d",d-212);
									}else{
										if(d<274){
											printf("9 %d",d-243);
										}else{
											if(d<305){
												printf("10 %d",d-273);
											}else{
												if(d<335){
													printf("11 %d",d-304);
												}else{
													printf("12 %d",d-334);
												}
											}
										}
									}
								}
							}
						}
					}
					
				}
			}
		}
	}
 } 

三角形判别

#include<stdio.h>
int main()
{
	int a,b,c;
	scanf("%d%d%d",&a,&b,&c);
	if(a+b>c){
		if(a+c>b){
			if(b+c>a){
				printf("%d",a+b+c);
			}else{printf("NO");
			}
		}else{
			printf("NO");
		}
	}else{
		printf("NO");
	}
}

十六进制转换为十进制

#include<stdio.h>
#include<math.h>
#include<string.h>
int jinzhi(char* s){
	int i,z;
	int sum=0;
	for(i=0;i<strlen(s);i++){
			if(s[i]>='0'&&s[i]<='9'){
				z=s[i]-48;
	}else{
		switch(s[i]){
			case 'A':
				z=10;
				break;
			case 'a':
				z=10;
				break;
			case 'B':
				z=11;
				break;
			case 'b':
				z=11;
				break;
			case 'C':
				z=12;
				break;
			case 'c':
				z=12;
				break;
			case 'D':
				z=13;
				break;
			case 'd':
				z=13;
				break;
			case 'E':
				z=14;
				break;
			case 'e':
				z=14;
				break;
			case 'F':
				z=15;
				break;
			case 'f':
				z=15;
				break;
		}
	}
	sum=sum+z*pow(16,strlen(s)-i-1);
	}
	return sum;
}
int main(){
 	char s[100];
 	gets(s);
 	printf("%d",jinzhi(s));
 }

输出26个英文字母

#include<stdio.h>
int main()
{
	char i;
	for(i='a';i<='z';i++){
		printf("%c ",i);
	}
	printf("\n");
	for(i='z';i>='a';i--){
		printf("%c ",i);
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值