pta——点赞,打印杨辉三角,吃火锅(c语言)

这篇博客包含了两道程序设计题目,一是统计用户点赞的博文特性标签,找出最常出现的标签;二是打印指定行数的杨辉三角。博主分享了自己的解题思路,并提供了完整的C语言代码实现。此外,还有一道关于信息过滤的题目,检查朋友信息中是否包含特定关键词。
摘要由CSDN通过智能技术生成

程序设计实训8月16日小组编程
今日碎碎念:今天稀里糊涂地在规定时间内倒是都做出来了,但是还有些问题没有想明白再回顾一下。(大佬都在自己的博客上写学习笔记,我只能用用CSDN了唔)

7-1 点赞

微博上有个“点赞”功能,你可以为你喜欢的博文点个赞表示支持。每篇博文都有一些刻画其特性的标签,而你点赞的博文的类型,也间接刻画了你的特性。本题就要求你写个程序,通过统计一个人点赞的纪录,分析这个人的特性。

输入格式:
输入在第一行给出一个正整数N(≤1000),是该用户点赞的博文数量。随后N行,每行给出一篇被其点赞的博文的特性描述,格式为“K F1 ⋯FK ”,其中1≤K≤10,Fi(i=1,⋯,K)是特性标签的编号,我们将所有特性标签从1到1000编号。数字间以空格分隔。

输出格式:
统计所有被点赞的博文中最常出现的那个特性标签,在一行中输出它的编号和出现次数,数字间隔1个空格。如果有并列,则输出编号最大的那个。

输入样例:
4
3 889 233 2
5 100 3 233 2 73
4 3 73 889 2
2 233 123
输出样例:
233 3

//主要思路:设一个全为零的计数数组,用以记录每个数字出现的次数 
#include<stdio.h>
int main()
{
	int n,type[1001]={0},max=0,m,i,t,k;
	//type设1001个是因为编号是从1~1000,而不是0~999 
	scanf("%d",&n);
	while(n--){
		scanf("%d",&m);
		while(m--){
			scanf("%d",&t);
			type[t]++;
		}
	}
	for(i=1;i<=1000;i++){
		if(max<type[i]){
			max = type[i];
			k = i;
		}
		else if(max == type[i]){
			if(i>k){
				max = type[i];
				k = i;		
			}
		}
	}
	if(max==1){
		if(k>1)
		printf("1000 1");
	}
	//这个if是我在测试数据的时候,有个数据点是如果全不同取到编号边界 
	else{
	printf("%d %d",k,type[k]);		
	}
	return 0;
}

在这里插入图片描述

7-2 打印杨辉三角

本题要求按照规定格式打印前N行杨辉三角。
输入格式:
输入在一行中给出N(1≤N≤10)。

输出格式:
以正三角形的格式输出前N行杨辉三角。每个数字占固定4位。

输入样例:
6
输出样例:
在这里插入图片描述

ssn:在我印象中这是杨辉三角是很经典的题,我当时就直接去自己的文章管理想贴过去,结果我发现我竟然我竟然,没写过杨辉三角。

#include <stdio.h>
int main()
{
    int i,j,n,temp,a[10][10];
    scanf("%d",&n);
    for (i=0; i<n; i++){  
        a[i][0] = 1;
        a[i][i] = 1;
    }//把两边设上1 
    for(i=2; i<n; i++){    
        for (j=1; j<i; j++)
            a[i][j] = a[i-1][j-1] + a[i-1][j];
    }
    for(i=0; i<n; i++){ 
	    //我觉得这题难度就在于把握输出多少个空格把握那个形状   
    	for (temp=1; temp<=n-1-i; temp++)
    		printf(" ");
        for(j=0; j<=i; j++)
            printf("%4d", a[i][j]);
        printf("\n");
    }  
    return 0;
}

在这里插入图片描述

7-6 吃火锅

在这里插入图片描述

以上图片来自微信朋友圈:这种天气你有什么破事打电话给我基本没用。但是如果你说“吃火锅”,那就厉害了,我们的故事就开始了。

本题要求你实现一个程序,自动检查你朋友给你发来的信息里有没有 chi1 huo3 guo1。

输入格式:
输入每行给出一句不超过 80 个字符的、以回车结尾的朋友信息,信息为非空字符串,仅包括字母、数字、空格、可见的半角标点符号。当读到某一行只有一个英文句点 . 时,输入结束,此行不算在朋友信息里。

输出格式:
首先在一行中输出朋友信息的总条数。然后对朋友的每一行信息,检查其中是否包含 chi1 huo3 guo1,并且统计这样厉害的信息有多少条。在第二行中首先输出第一次出现 chi1 huo3 guo1 的信息是第几条(从 1 开始计数),然后输出这类信息的总条数,其间以一个空格分隔。题目保证输出的所有数字不超过 100。

如果朋友从头到尾都没提 chi1 huo3 guo1 这个关键词,则在第二行输出一个表情 -_-#。

输入样例 1:
Hello!
are you there?
wantta chi1 huo3 guo1?
that’s so li hai le
our story begins from chi1 huo3 guo1 le
.
输出样例 1:
5
3 2
输入样例 2:
Hello!
are you there?
wantta qi huo3 guo1 chi1huo3guo1?
that’s so li hai le
our story begins from ci1 huo4 guo2 le
.
输出样例 2:
5
-_-#
ssn:借鉴别人写的,学到了strstr这个函数。

#include<stdio.h>
#include<string.h>
struct huoguo{
	char str[201];
	int c;
}T[200];
int main()
{
	int i,n=0,flag=0;
	for(i=0;;i++,n++){
		gets(T[i].str);
		if(!strcmp(T[i].str,".")) break;
		T[i].c = 0;		
	}
	for(i=0;i<n;i++){
		if(strstr(T[i].str ,"chi1 huo3 guo1")){
			flag++;
			T[i].c = 1;
		}
	}
	printf("%d\n",n);
	if(!flag){
		printf("-_-#");
	}
	else{
		for(i=0;i<n;i++){
			if(T[i].c ==1){
				printf("%d ",i+1);
				break;
			}
		}
	    printf("%d",flag);
	}
	return 0;
 } 

在这里插入图片描述

  • 11
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜·肉多多·狗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值