#include <stdio.h>
#include <stdbool.h>
int main(){
// 输入
int test;
scanf("%d",&test);
// 输出
for(int k=1;k<=test;++k){
int size;
scanf("%d",&size);
int cur;
bool isLegal=true;
for(int i=1;i<=size;++i){
for(int j=1;j<=size;++j){
scanf("%d",&cur);
if(cur!=0 && i>j){
isLegal=false;
}
}
}
if(isLegal){
printf("YES\n");
}else{
printf("NO\n");
}
}
return 0;
}
#include <stdio.h>
int main(){
// 输入
int m,n;
scanf("%d %d",&m,&n);
// 输出
for(int i=1;i<=m;++i){
int sum=0;
int cur=0;
for(int j=1;j<=n;++j){
scanf("%d",&cur);
sum+=cur;
}
printf("%d",sum);
if(i<m){
printf("\n");
}
}
return 0;
}
#include <stdio.h>
#include <stdbool.h>
// 输入:矩阵
void getMatrix(int row,int col,int matrix[row][col]){
for(int i=0;i<row;++i){
for(int j=0;j<col;++j){
scanf("%d",&matrix[i][j]);
}
}
return;
}
// 返回:鞍点->true 否则->false
bool isSaddle(int row,int col,int matrix[row][col],int ti,int tj){
// 鞍点行上最大
for(int j=0;j<col;++j){
if(matrix[ti][j]>matrix[ti][tj]){
return false;
}
}
for(int i=0;i<row;++i){
if(matrix[i][tj]<matrix[ti][tj]){
return false;
}
}
return true;
}
int main(){
// 输入
int size;
scanf("%d",&size);
int matrix[size][size];
getMatrix(size,size,matrix);
// 输出
bool isExist=false;
for(int i=0;i<size;++i){
for(int j=0;j<size;++j){
if(isSaddle(size,size,matrix,i,j)){
printf("%d %d\n",i,j);
isExist=true;
}
}
}
if(!isExist){
printf("NONE");
}
return 0;
}
#include <stdio.h>
#include <ctype.h>
int main(){
// 处理
int cnt=0;
char cur;
while((cur=getchar())!=EOF){
if(cur=='\n'){
break;
}
if(isupper(cur)
&& cur!='A' && cur!='E'
&& cur!='I' && cur!='O'
&& cur!='U'){
++cnt;
}
}
// 输出
printf("%d",cnt);
return 0;
}
#include <stdio.h>
#include <string.h>
#define MAXLEN 81
int main(){
// 输入
char str[MAXLEN];
fgets(str,MAXLEN,stdin);
int len=strlen(str);
if(len>0 && str[len-1]=='\n'){
str[--len]='\0';
}
// 处理
for(int i=0;i<len;++i){
if(str[i]>='A' && str[i]<='Z'){
str[i]='Z'-(str[i]-'A');
}
}
// 输出
printf("%s",str);
return 0;
}
#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>
#include <string.h>
int main() {
// 输入
char ch;
char hexStr[100] = {0};
int isNegative = 0;
int hasFirstHex = 0;
int idx = 0;
// 处理
while ((ch = getchar()) != '#') {
if (!hasFirstHex && ch == '-') {
isNegative = 1;
}
if (isdigit(ch) || (tolower(ch) >= 'a' && tolower(ch) <= 'f')) {
hasFirstHex = 1;
hexStr[idx++] = ch;
}
}
long decimalNum = strtol(hexStr, NULL, 16);
if (isNegative) {
decimalNum = -decimalNum;
}
// 输出
printf("%ld\n", decimalNum);
return 0;
}
#include<stdio.h>
#include<string.h>
int main(void) {
// 输入
char str[5][81];
for (int i = 0; i < 5; i++) {
scanf("%s", str[i]);
}
// 选择排序法对字符串进行排序
for (int i = 0; i < 4; i++) {
for (int j = i + 1; j < 5; j++) {
if (strcmp(str[i], str[j]) > 0) {
char temp[81];
strcpy(temp, str[i]);
strcpy(str[i], str[j]);
strcpy(str[j], temp);
}
}
}
// 输出
printf("After sorted:\n");
for (int i = 0; i < 5; i++) {
printf("%s\n", str[i]);
}
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#include <float.h>
int main(){
// 输入
int n;
scanf("%d",&n);
double *scores=(double *)malloc(n*sizeof(double));
for(int i=0;i<n;++i){
scanf("%lf",&scores[i]);
}
// 处理:求平均值 最大值 最小值
double sum=0;
double average=0;
double max=DBL_MIN;
double min=DBL_MAX;
for(int i=0;i<n;++i){
sum+=scores[i];
if(max<scores[i]){
max=scores[i];
}
if(min>scores[i]){
min=scores[i];
}
}
average=sum/n;
// 输出
printf("average = %.2f\n",average);
printf("max = %.2f\n",max);
printf("min = %.2f\n",min);
free(scores);
return 0;
}
#include <stdio.h>
int main(){
// 输入
int hour,min,sec;
scanf("%d:%d:%d",&hour,&min,&sec);
int n;
scanf("%d",&n);
// 处理
min+=(sec+n)/60;
sec=(sec+n)%60;
hour+=min/60;
min=min%60;
hour=hour%24;
// 输出
printf("%02d:%02d:%02d\n",hour,min,sec);
return 0;
}
#include <stdio.h>
#include <math.h>
int main(){
// 输入
double point[3][2];
scanf("%lf %lf %lf %lf",
&point[0][0],&point[0][1],
&point[1][0],&point[1][1]);
// 处理:
// 平面向量加法
point[2][0]=point[0][0]+point[1][0];
point[2][1]=point[0][1]+point[1][1];
// 舍入处理 不能输出−0.0
if(fabs(point[2][0])<0.05){
point[2][0]=0.0;
}
if(fabs(point[2][1])<0.05){
point[2][1]=0.0;
}
// 输出
printf("(%.1f, %.1f)\n",point[2][0],point[2][1]);
return 0;
}
#include <stdio.h>
#include <string.h>
#define MAX_BOOKS 10
#define MAX_NAME_LENGTH 31
// 结构体:书
typedef struct {
char name[MAX_NAME_LENGTH];
double price;
} Book;
int main() {
// 输入
int n;
scanf("%d", &n);
Book books[MAX_BOOKS];
for (int i = 0; i < n; i++) {
getchar(); // 吃掉换行符
fgets(books[i].name, MAX_NAME_LENGTH, stdin);
// 转换字符串格式
size_t len = strlen(books[i].name);
if (len > 0 && books[i].name[len - 1] == '\n') {
books[i].name[len - 1] = '\0';
}
scanf("%lf", &books[i].price);
}
// 查找价格最高和最低的书籍索引
int max_index = 0, min_index = 0;
for (int i = 1; i < n; i++) {
if (books[i].price > books[max_index].price) {
max_index = i;
}
if (books[i].price < books[min_index].price) {
min_index = i;
}
}
// 输出
printf("%.2f, %s\n", books[max_index].price, books[max_index].name);
printf("%.2f, %s\n", books[min_index].price, books[min_index].name);
return 0;
}
#include <stdio.h>
#include <string.h>
#define MAX_FRIENDS 10
#define MAX_NAME_LENGTH 11
#define MAX_PHONE_LENGTH 18
#define BIRTHDAY_LENGTH 9
// 结构体:朋友
typedef struct {
char name[MAX_NAME_LENGTH];
char birthday[BIRTHDAY_LENGTH];
char phone[MAX_PHONE_LENGTH];
} Friend;
int main() {
// 输入
int n;
scanf("%d", &n);
Friend friends[MAX_FRIENDS];
for (int i = 0; i < n; i++) {
scanf("%s %s %s", friends[i].name, friends[i].birthday, friends[i].phone);
}
// 简单选择排序
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - 1 - i; j++) {
if (strcmp(friends[j].birthday, friends[j + 1].birthday) > 0) {
Friend temp = friends[j];
friends[j] = friends[j + 1];
friends[j + 1] = temp;
}
}
}
// 输出
for (int i = 0; i < n; i++) {
printf("%s %s %s\n", friends[i].name, friends[i].birthday, friends[i].phone);
}
return 0;
}
《《程序设计》编程题|061-072》有1条评论