2021-3-18【PTA】

int N;

while(scanf(“%d”,&N)!=EOF){

int t =N;

int cnt = 0;

while( t-- ){

sum = 0;

scanf(“%s”,&num);

int flag =0;

for(int i=0;i<=16;i++)

if( !( num[i] >=‘0’ && num[i] <= ‘9’ ) ){

flag = 1;

break;

}

if( flag == 0){

for(int i=0;i<=16;i++)

for( int j=0;j<=10;j++)

if( num[i] == ‘0’+j){

sum = sum + j * a[i];

break;

}

sum = sum %11;

if( z[sum] == num[17])

cnt++;

else {

for(int i=0;i<=16;i++)

printf(“%c”,num[i]);

printf(“%c\n”,num[17]);

}

if( cnt == N )

printf(“All passed\n”);

}

else if( flag == 1){

for(int i=0;i<=16;i++)

printf(“%c”,num[i]);

printf(“%c\n”,num[17]);

}

}

}

}

在这里插入图片描述

#include<stdio.h>

#include<string.h>

int main()

{

double a;

int i,n,j=0;

char b[52];

gets(b);

n=strlen(b);

for(i=0;i<n;i++){

if(b[i]==‘2’){

j++;

}

}

if(b[0]==‘-’){

a=1.5*j/(n-1);

}else{

a=1.0*j/n;

}

if(b[n-1]%2==0){

a=a*2;

}

printf(“%.2f%%”,a*100);

return 0;

}

在这里插入图片描述

#include<stdio.h>

int main(void){

int n,m,t1,t2,t3,t4,t,num; //t记录不同数字的个数

while(scanf(“%d %d”, &n, &m) != EOF){

num=0;

while(1){

t=1;

t1=n/1000; //千位数

t2=n/100%10; //百位数

t3=n/10%10; //十位数

t4=n%10; //个位数

if(t1!=t2||t1!=t3||t1!=t4) //判定两个不同的数

t++;

if(t1!=t2&&t1!=t3&&t2!=t3||t2!=t3&&t2!=t4&&t3!=t4||t1!=t4&&t1!=t3&&t4!=t3||t1!=t2&&t1!=t4&&t2!=t4)

t++; //判定三个不同的数

if(t1!=t2&&t1!=t3&&t1!=t4&&t2!=t3&&t2!=t4&&t3!=t4)

t++; //判定四个不同的数

if(t==m) //如果符合提供的条件就跳出循环

break;

n++;

num++;

}

printf(“%d %d%d%d%d\n”, num, t1, t2, t3, t4);

}

}

在这里插入图片描述

#include<stdio.h>

int main()

{

int i,n,u;

scanf(“%d”, &n);

int sex[51]={0}, exist[51]={0};

char name[51][9];

for (i = 0; i < n;i++)

{

scanf(“%d %s”, &sex[i], name[i]);//name[i]-行数,输入字符串,省略后面的[9]

} //不能输入 \n 否则输入不成功

int x, y;

for (i = 0; i < n/2; i++)

{

for (u = n-1; u > (n-1) / 2; u–)

{

if (sex[i] != sex[u] && exist[u] == 0 && exist[i]==0)

{

printf(“%s %s\n”, name[i], name[u]);

exist[i]=exist[u] = 1;//选择了,两者都应该被删去,引用额外的数组判定

}

}

}

return 0;

}

在这里插入图片描述

#include<stdio.h>

#include<string.h>

typedef struct{

char name[15];

}T;

int main(){

T t[14];

int i=0;

char a[]=“.”; //定义结束标志

while(i<14){

scanf(“%s”,&t[i].name);

if(strcmp(t[i].name,a)==0){ //判断是否输入结束

break;

}

i++;

}

i–; //自增减一便是有效的点赞名单

if(i<1){

printf(“Momo… No one is for you …”);

return 0;

}

if(i>=1 && i<13){

printf(“%s is the only one for you…”,t[1].name);

return 0;

}

if(i>=13){

printf(“%s and %s are inviting you to dinner…”,t[1].name,t[13].name);

return 0;

}

return 0;

}

在这里插入图片描述

//L1-4 稳赢 (15 分)

#include <stdio.h>

#include <string.h>

int main(){

int k = 0;

char s[20];

int cnt = 0;

scanf(“%d”, &k);

k++;

while(scanf(“%s”, s)){

if(strcmp(s, “End”) == 0) break;

cnt++;

if(k == cnt){

printf(“%s\n”,s);

cnt = 0;

} else if(strcmp(s, “ChuiZi”) == 0){

printf(“Bu\n”);

} else if(strcmp(s, “JianDao”) == 0){

printf(“ChuiZi\n”);

} else if(strcmp(s, “Bu”) == 0){

printf(“JianDao\n”);

}

}

return 0;

}

在这里插入图片描述

#include<stdio.h>

int main(){

int ra,ca,rb,cb;

//给 A 数组赋值

scanf(“%d%d”,&ra,&ca);

int a[ra][ca];

for(int i=0;i<ra;i++){

for(int j=0;j<ca;j++){

scanf(“%d”,&a[i][j]);

}

}

// 给B数组赋值

scanf(“%d%d”,&rb,&cb);

int b[rb][cb];

for(int i=0;i<rb;i++){

for(int j=0;j<cb;j++){

scanf(“%d”,&b[i][j]);

}

}

//判断是否满足输出求乘积条件

if(ca!=rb){

printf(“Error: %d != %d”,ca,rb);

return 0;

}

int c[ra][cb];

for(int i=0;i<ra;i++){

int sum=0;

for(int j=0;j<cb;j++){

int sum=0;

for(int k=0;k<ca;k++){

sum+=(a[i][k]*b[k][j]);

}

c[i][j]=sum;

}

}

//打印输出

printf(“%d %d\n”,ra,cb);

for(int i=0;i<ra;i++){

for(int j=0;j<cb;j++){

printf(“%d”,c[i][j]);

if(j!=cb-1){

printf(" ");

}

}

if(i!=ra-1){

printf(“\n”);

}

}

return 0;

}

在这里插入图片描述

//L1-2 倒数第N个字符串 (15 分)

#include <stdio.h>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值