1009 说反话
给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。
输入格式:
测试输入包含一个测试用例,在一行内给出总长度不超过 80的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用 1个空格分开,输入保证句子末尾没有多余的空格。
输出格式:
每个测试用例的输出占一行,输出倒序后的句子。
输入样例:
Hello World Here I Come
输出样例:
Come I Here World Hello
代码长度限制 16 KB
时间限制 400 ms
内存限制 64 MB
栈限制 8192 KB
解析
这里用到了许多string库中的函数
我写了一篇关于string的总结如下
常见string库中的函数(C语言超详细)
代码示例
#include <stdio.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>
#include <stdbool.h>
int main(){char s[200]; fgets(s,200,stdin);//意思是从键盘读取一行字符,并存储到s中,200表示最多读取200个字符,stdin表示标准输入流s[strcspn(s,"\n")]='\0'; //为了去掉 fgets 读取的字符串末尾的换行符,确保字符串在后续操作中没有不必要的换行符干扰//strcspn(s, "\n") 是 C 语言中的一个标准库函数调用。它的作用是查找字符串 sentence 中第一个出现换行符 (\n) 的位置,并返回这个位置的索引char *words[100];//指针数组,用来存放 int count = 0;char *word = strtok(s," ");//strtok 是一个分割字符串的标准库函数,它每次返回指向分割后子字符串的指针,而不是创建新的字符串副本while(word!=NULL){words[count++]=word;word = strtok(NULL," ");//是 strtok 函数在分割字符串时的一个重要用法,它的作用是继续从上次分割的位置继续分割字符串}for(int i = count-1;i>=0;i--){printf("%s",words[i]);//访问指针即可打印内容 if(i!=0){printf(" "); }}printf("\n");return 0;
}
1010 一元多项式求导
输入格式:
以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过 1000 的整数)。数字间以空格分隔。
输出格式:
以与输入相同的格式输出导数多项式非零项的系数
和指数。数字间以空格分隔,但结尾不能有多余空格。注意“零多项式”的指数和系数都是 0,但是表示为 0 0。
输入样例:
3 4 -5 2 6 1 -2 0
输出样例:
12 3 -10 1 6 0
代码长度限制 16 KB
时间限制 400 ms
内存限制 64 MB
栈限制 8192 KB
代码示例
#include <stdio.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>
#include <stdbool.h>
int main(){int n,x;int flag = 1;// 循环读取输入的多项式项while(scanf("%d %d",&n,&x)!=EOF){if(x>0){n*=x;x--;if(!flag){printf(" ");// 非首项前加空格}printf("%d %d",n,x);flag = 0;// 从第二项开始才会添加空格} // 输出前处理输出格式,避免输出多余的空格}if(flag){printf("0 0");}printf("\n");return 0;
}