c语言函数编程题 c语言函数编程题及答案

C语言编程题,求编写一个函数,实现字符串逆置?#include stdio.h
#include string.h
void reverse(char *x)
{
【c语言函数编程题 c语言函数编程题及答案】char c;
int a=0,b=strlen(x)-1;
for(;ab;a,b--)
{
c=x[a];
x[a]=x[b];
x[b]=c;
}
}
int main()
{
char s1[]="",s2[]="a";
char s3[]="sd",s4[]="dfg";
reverse(s1);
reverse(s2);
reverse(s3);
reverse(s4);
printf("%s\n%s\n",s1,s2);
printf("%s\n%s\n",s3,s4);
return 0;
}
代码
输出
这个c语言编程题如何求解?如果非要用两个函数,则:
sum1函数可以用等差数列求和公式降低时间复杂度
时间复杂度O(n)
其实sum2本身就有求和公式:
1 (1 2) ... (1 2 ... n)=n(n 1)(n 2)÷6
时间复杂度O(1)
详见代码
#includebits/stdc.h
#includechrono
#define int unsigned long long
using namespace std;
using namespace chrono;
int n;
//法1(O(n^2))
int sum11(int k){
int s=0;
for(int i=1;i=k;i) s =i;
return s;
}
int sum12(int n){
int s2=0;
for(int i=1;i=n;i) s2 =sum11(i);
return s2;
}
//法2(O(n))
int sum21(int k){
return (1 k)*k/2;
}
int sum22(int n){
int s2=0;
for(int i=1;i=n;i) s2 =sum21(i);
return s2;
}
//法3
int sum32(int n){
return n*(n 1)*(n 2)/6;
}
signed main(){
cinn;
auto start1=system_clock::now();
cout"法1:"sum12(n);
auto end1=system_clock::now();
auto duration1=duration_castmicroseconds(end1-start1);
cout" 用时"double(duration1.count())*microseconds::period::num/microseconds::period::den"秒"endl;
auto start2=system_clock::now();
cout"法2:"sum22(n);
auto end2=system_clock::now();
auto duration2=duration_castmicroseconds(end2-start2);
cout" 用时"double(duration2.count())*microseconds::period::num/microseconds::period::den"秒"endl;
auto start3=system_clock::now();
cout"法3:"sum32(n);
auto end3=system_clock::now();
auto duration3=duration_castmicroseconds(end3-start3);
cout" 用时"double(duration3.count())*microseconds::period::num/microseconds::period::den"秒"endl;
return 0;
}
运行结果:
80000
法1:85336533360000 用时6.85699秒
法2:85336533360000 用时0秒
法3:85336533360000 用时0秒
------
望您采纳,谢谢
求教C语言编程题:写一个函数,判断不大于10000的某个整数各位数字之和是否等于9?#include "stdio.h"
int fun(int n){//答案函数
int s;
if(n10000 || n1)
return -1;
for(s=0;n;s =n,n/=10);
return s==9;
}
int main(int argc,char *argv[]){//测试主函数
int x;
printf("Enter x(int 0x10001)...\nx=");
scanf("%d",x);
printf("%d -- %s.\n",x,fun(x) ? "Yes" : "No..");
return 0;
}
代码格式和运行样例图片:
C语言函数编程题修改后的C语言程序:
#include stdio.h
void triangle(int g)
{
int n=1, m;/* 修改处1 */
for(n;n=g; n)
{
for(m=1;m=2*n-1;m) /* 修改处2 */
putchar('*');
putchar('\n');
}
}
void rectangle(int g)
{
int n=1, m;/* 修改处3 */
for(n;n=g;n)
{
for(m=1;m=3;m)/* 修改处4 */
putchar('*');
putchar('\n');
}
}
int main()
{
int i,k;
printf("请输入行数(大于3):");
scanf("%d",i);
printf("请选择图形:1---三角形\t2---矩形\t3---小旗 :");
scanf("%d",k);
if(k==1)
{
triangle(i);
}
if(k==2)
{
rectangle(i);
}
if(k==3)
{
triangle(i);
rectangle(i);
}
return 0;
}
关于c语言函数编程题和c语言函数编程题及答案的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读