请问这道c语言题目怎么写?
把字符串存成数组
排序
重点在于比较
先按照7-14位比较,为了做到这一点,可以用strncpy把这8个字符复制出来然后用strcmp比较,也可以直接用strncmp进行比较
如果相等,再用strcmp进行比较
排序完输出就好了
最简洁的方式是写一个针对这种方式的比较函数,然后调用一下qsort就好了
#include
#include
int f(int a,int b)
{
int t;
if(a>b)
{
t=a;a=b;b=t;
}
for(t=a;t%a||t%b;t+=a){};
return t;
}
int main()
{
int a[20];
int i,k;
int n;
printf("输入个数:");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("输入第%d个数:",i+1);
scanf("%d",&a[i]);
}
k=1;
for(i=0;i<n;i++)
{
k=f(k,a[i]);
}
printf("
最小公倍数为:%d
",k);
return 0;
}
输入个数:3
输入第1个数:2
输入第2个数:3
输入第3个数:4
最小公倍数为:12
Press any key to continue
#include "stdio.h"
int main(int argc,char *argv[]){
int y,m,d,sum,i,w[12]={31,28,31,30,31,30,31,31,30,31,30,31};
printf("Please enter the birth year-month-day...
");
if(scanf("%d-%d-%d",&y,&m,&d)!=3 || y<1 || m<1 || m>12 || (w[1]=y%4==0 && y%100 || y%400==0 ? 29 : 28,d>w[m-1])){
printf("Input error, exit...
");
return 0;
}
for(sum=w[m-1]-d,i=m;i<12;sum+=w[i++]);//求第一年生日后总天数
for(i=y+1,y+=18;i<y;i++)
sum+=(365+(i%4==0 && i%100 || i%400==0));//求到18岁前一年总天数
w[1] = i%4==0 && i%100 || i%400==0 ? 29 : 28;//18岁那一年是闰年?
for(m-=2;m>=0;sum+=w[m--]);//求到18岁那一年整月天数和
printf("%d
",sum+d);//输出
return 0;
}
代码图片和运行样例:
#include <iostream>
#include <string>
using namespace std;
char *strfind(char *src, char *dst)
{
int len1 = strlen(src);
int len2 = strlen(dst);
int start = len1 - 1;
int end = len2 - 1;
int i, j = len2 - 1;
for (i = start; i >= end; i--)
{
if (src[i] == dst[j])
{
j--;
if (j == -1)
{
cout << "the position is: " << i + 1 << endl;
return &src[i];
}
}
else
j = len2 - 1;
}
return NULL;
}
int main()
{
char src[100];
char dst[100];
cout << "请输入一个字符串:" << endl;
cin.getline(src, 100, '\n');
cin.clear();
cout << "请输入要查找的字符串:" << endl;
cin.getline(dst, 100, '\n');
char *temp = strfind(src, dst);
if (temp != NULL)
{
cout << "所寻找的字符串以及后面的字符串为:" << temp << endl;
}
else
cout << "no such characters!" << endl;
system("pause");
return 0;
}
有滴,点我的头像,,,
请问这道c语言题目怎么写?视频
相关评论:
车力彩回答:#include<stdio.h>\/\/求最大公约数,辗转相除法 void CommFactor(int m,int n) { int r=m%n,j=0; while(r!=0) { m=n; n=r; r=m%n; j++; } printf("最大公约数: %d",n); } void main() { int m,n; printf("请输入两个数,用逗号分隔开:"); scanf("%d,%...
车力彩else { n[1]=c[1]; n[2]=c[0]; } } printf("按照字母顺序排列:%c,%c,%c \\n\\n\\n\\n",n[0],n[1],n[2]); goto aa; return 0;}功能:输入验证,大小写识别,按照ASCII码顺序排列
车力彩y=10 ; 没什么疑问 x=y-=5,45\/y ;问题应该在这里 这个表达式是一个逗号表达式 你先将这个表达式用括号括起来,即(x=y-=5,45\/y )那么这个逗号表达式的值就是括号内最后一个逗号后面的那个表达式的值。也就是说 如果再定义一个变量num=(x=y-=5,45\/y );那么num的值就是等于45...
车力彩} \/\/逆序输出数组 for(j=i;j>=0;j--){ printf("%1d",t[j]);} } void main(){ int x;printf("input x:");scanf("%d",&x);TenToTwo(x);} 附加一句,如果你是学相关专业,最好努力一点。这是一个很简单的问题,如果你连这样的东西都不会。很难找工作的。已经调试过,ok....
车力彩include <stdio.h>double fun(float x, float y){ double v; if(x<y){ v = x+y; }else if(x==y){ v = 0; }else{ v = x-y; } return v;}int main(){ printf("fun(3.0,10.5) = %lf\\n", fun(3.0f, 10.5f)); return 0;} ...
车力彩按照题目要求编写的分段函数的C语言程序如下(见图)
车力彩代码文本:include "stdio.h"int max(int a[],int n,int *p){ for(n--,*p=0;n>=0;n--)if(a[*p]=0;n--)if(a[*p]>a[n])p=n;return a[*p];} int main(int argc,char *argv[]){ int a[20]={13,19,12,9,10,3,7,18,1,11,20,8,2,14,15,16,4,5,6,17},ma...
车力彩这题就是让你用一个数组表示一个数字,比如int n[3]={12,13,14}就是表示121314这个6位整数,并使用这个数组表示的整数模拟整数+1的运算。思路就是从数组最后一个元素的整数开始做+1运算,最高进位,则进位到数组前一个元素整数中,以此类推,如数组第一个元素的数字最高位也进位,则表示溢出,...
车力彩按照题目要求编写的用凯撒密码加密的C语言程序如下 include<stdio.h> int main(){ char s[80];int offset,i;fgets(s,80,stdin);scanf("%d",&offset);for(i=0;s[i]!='\\0';i++){ if('A'<=s[i] && s[i]<='Z')if(offset>=0)s[i]='A'+(s[i]-'A'+offset)%26;else s...
车力彩代码文本:include "stdio.h"include "math.h"int main(int argc,char *argv[]){ int y;for(y=0;11.2*pow(1.065,y)<=17.8*pow(1.02,y);y++);printf("Need for %d year(s).\\n",y);printf("A: %.1f trillion dollars\\n",11.2*pow(1.065,y));printf("B: %.1f ...