你的程序要读入一行文本,其中以空格分隔为若干个单词,以.结束。你要输出每个单词的长度。这里的单词与语言无关,可以包括各种符号,比如it’s算一个单词,长度为4。注意,行中可能出现连续的空格;最后的.不计算在内。
输入格式:
输入在一行中给出一行文本,以.结束
提示:用scanf(“%c”,…);来读入一个字符,直到读到.为止。
输出格式:
在一行中输出这行文本对应的单词的长度,每个长度之间以空格隔开,行末没有最后的空格。
输入样例:
It’s great to see you here.
输出样例:
4 5 2 3 3 4
// 题目链接 https://pintia.cn/problem-sets/14/exam/problems/806
#include<bits/stdc++.h>
using namespace std;
int main(){
char c;
int count=0;
int flag=0; // 用来标记 上次 读取的字符串 是否为 ' '
while(scanf("%c",&c)){
if(c == '.') {
int k = count;
if(k!=0){ // 最后一个 后面没有空格
printf("%d",k);
}
break;
}else{
if(c != ' '){
if(flag){ // 上次读取的是空格
int k = count;
count = 0;
if(k!=0){
printf("%d ",k);
k=0;
}
flag = 0; // 打印完之后 要设置为0 且必须在if的外面 防止开头多空格的出现
}
count++; // 只要读取的不是 ' ' 和 '.' 都要加1
}else{ // 读取到 ' '
flag = 1;
}
}
}
return 0;
}
------------------------------------------------------------------------------------
本题要求对任意给定的一位正整数N,输出从11到NN的部分口诀表。
输入格式:
输入在一行中给出一个正整数N(1≤N≤9)。
输出格式:
输出下三角N*N部分口诀表,其中等号右边数字占4位、左对齐。
输入样例:
4
输出样例:
// 题目链接 https://pintia.cn/problem-sets/14/exam/problems/800
#include<stdio.h>
void print_n(int n){
for(int i=1;i<n+1;i++){
for(int j=1;j<i+1;j++){ // 注意 j<i+1
printf("%d*%d=%-4d",j,i,j*i);
}
printf("\n");
}
}
int main(){
int n;
scanf("%d",&n);
print_n(n);
return 0;
}