C语言编程,求解

作者&投稿:地蕊 (若有异议请与网页底部的电邮联系)
C语言编程,求解~



#define M 2
#define N 3
void printMatrix(int *a)
{
int i,j;
for(i=0;i<M;i++)
{
for (j=0;j<N;j++)
printf("%d ",*(a+N*i+j));
printf("
");
}
}
int main()
{
int i,j,max,max_num;
int *a=(int*)malloc(M*N*sizeof(int));
int b[M]={0};
printf("输入%d个元素:
",M*N);
for(i=0;i<M*N;i++)
scanf("%d",a+i);
printf("排序前数组a:
");
printMatrix(a);
for (i=0;i<M*N-1;i++)
{
max=*(a+i);
max_num=i;
for (j=i;j<M*N-1;j++)
{
if(max<*(a+j+1))
{
max=*(a+j+1);
max_num=j+1;
}
}
if(max_num!=i)
{
*(a+max_num)=*(a+i);*(a+i)=max;
}
}
printf("排序后数组a:
");
printMatrix(a);
return 0;
}

首先列式
1)x+y+z = 8 , x为10环的发数,y为7环的发数,z为5环的发数
在列式
2)10*x+7*y+5*z = 53
从1)式中得到x=8-y-z ;
带入2)得
80-10*y-10*z+7*y+5*z = 53最终简化后得3*y+5*z = 27,z=(27-3*y)/5 ;
好这下我们可以编程了


int x, y, z ;
int ret ;
//根据提议猜测y在0到8之间
for ( y=0;y<=8;y++)
{
//z一定是整数
if ((27-3*y)%5==0)
{
z=(27-3*y)/5 ;
if ( z8 )
continue ;
x=8-z-y ;
if (x8 )
continue ;
printf("10环%d发,7环%d发,5环%d发
",x,y,z);
}
}

没编译过,不过思路是这个思路。

代码思路:

一、程序需要四个函数,分别是入口主函数、输入函数、输出函数、排序函数。

二、题目要求按首字母排序,未限制大小写,因此不能直接用字母比大小,需根据大小写求字母差值,用差值比较。

三、字符串排序交换,用函数strcpy。

下面是代码:

#include<stdio.h>

#include<string.h>

#define MM 12//月份个数

#define MS 20//字符串长度

void px(char moms[][MS]);// 排序

void showMM(char moms[][MS]);

void inputMM(char moms[][MS]);//手动输入月份名

int main()

{

    char moms[12][MS]={"January",\

                    "February",\

                    "March",\

                    "April",\

                    "May",\

                    "June",\

                    "July",\

                    "August",\

                    "September",\

                    "October",\

                    "November",\

                    "December"};


    printf("%d个月英文名为:
",MM);

    showMM(moms);

    px(moms);

    printf("%d个月英文名按首字母升序排序后为:
",MM);

    showMM(moms);

    inputMM(moms);

    printf("输入后的月份英文名:
");

    px(moms);

    showMM(moms);


    return 0;

}

void inputMM(char moms[][MS])

{

    int i;

    printf("手动输入%d个月份英文名称(每个名称不超过%d个字符):
",MM,MS-1);

    for(i=0;i<MM;scanf("%s",moms[i]),i++);

}

void showMM(char moms[][MS])

{

    int i;

    for(i=0;i<MM;printf("%s
",moms[i]),i++);

    printf("
");

}

void px(char moms[][MS])

{

    char strTemp[MS]={0};

    int i,j,n1,n2;

    for(i=0;i<MM-1;i++)

        for(j=i+1;j<MM;j++)

        {

            if(moms[i][0]>='A' && moms[i][0]<='Z')n1=moms[i][0]-'A';//大小写识别

            if(moms[i][0]>='a' && moms[i][0]<='z')n1=moms[i][0]-'a';

            if(moms[j][0]>='A' && moms[j][0]<='Z')n2=moms[j][0]-'A';

            if(moms[j][0]>='a' && moms[j][0]<='z')n2=moms[j][0]-'a';

            memset(strTemp,0,MS);

            if(n1>n2)

                strcpy(strTemp,moms[i]),strcpy(moms[i],moms[j]),strcpy(moms[j],strTemp);

        }

}




C语言简单编程之求解三角形的面积
电脑是可以做很多事情的,电脑的C语言就是可以很好的解决数学问题,我们在学习的时候不知道该怎么做,就可以用C语言来解决,今天我们先来说一个简单的,C语言简单编程之求解三角形的面积。01 我们先把其变量表示说明出来,这样才能表示出三角形的边长和面积等。再使用scanf()函数从键盘敲入边长。然后...

c语言编程:对于正整数345,求解它们的各位数字之积。
include<stdio.h> int fun(int num);int main(){ int num=345;printf("Please input one number:");scanf("%d",&num);while(num<0){ printf("The number cannot <0!!\\nPlease input ont number again:");scanf("%d",&num);} printf("The ji...is:%d\\n",fun(num));return 0;...

C语言编程题求解过程
整个流程为:i=x=y=0;i=0+1=1;∵1%2!=0 所以执行if语句 x=1; i=2;y=2; i=3 3<7成立,继续循环 i=3+1=4;4%2=0.所以不会执行if语句 即:x=1;y=6;i=5;5<7成立,继续循环 i=5+1=6;6%2=0.所以不会执行if语句 即:x=1;y=12;i=7;7<=7成立,继续循环 i=7+...

c语言编程,怎么做求解?
下面是历程,要求输入x,不合适的x值,如过大,比如3,会导致阶乘溢出。

C语言中编程计算1至100以内的奇数和偶数并分别求和,求代码
C语言编程:求1到100奇数和,编程输出求和结果。int i ,sum;sum =0;for (i=1; i<100;i+2)sum = sum +i;printf("%d",sum);C语言中用循环语句分别统计1到100的整数和,奇数和和偶数并输出 include <stdio.h>int main(int argc, char *argv[]){ int i = 0; int sum1 = 0; int...

C语言编程,求解
int fun(int yms[][3]){\/***Program***\/int index=0,i;unsigned int a,b,c,d;unsigned int number[10];for(a=10;a<1000;a++){ for(b=a<100?100:a+1;b<10000-a;b++) { for(i=0;i<=9;i++) number[i]=0; c=a+b; d=a; while(d>0) {...

c语言编程题 求解
从键盘输入一个字符串,可以设计一个函数实现把字符串中奇数位置的字符取出来并转为大写的。输入kobe结果是KB指定子函数:voidGetSubStr(charst[])include <stdio.h> void GetSubStr(char st[]){int i,j;for(i=j=0;st[i];i++)if(i%2==0)st[j++]=(st[i]>='a'&&st[i]<='z'?st...

C语言编程 求100以内能被8整除的数,并求出它们的和,(要写出运行结果
include <stdio.h> int main(){ int i, sum;for(i=1;i<=100;++i){ if(i%8==0){ sum+=i;} } printf("%d\\n", sum);return 0;} >>>624

C语言编程,求解,急用
1、include <stdio.h> main(){int n;printf("请输入分钟数:");scanf("%d",&n);if(n>24*60)printf("%d分钟相当于%d小时%d分钟\\n",n,n\/60,n%60);else printf("%d分钟相当于%d天%d小时%d分钟\\n",n,n\/(24*60),n%(24*60)\/60,n%(24*60)%60);} 2、include <stdio.h> main...

C语言编程题 求解
按照题意,表格使用结构链表实现。其中成员班级或工龄,使用自定义的联合体union(就是题目要求的共用体)。函数异常不做处理,直接抛出,你需要可以在调用时判断处理异常。include <stdio.h> include <malloc.h> typedef union info4 { char cName[10];\/\/班级名称 int wAge;\/\/工龄 }IO4;typedef ...

浮山县17730188784: C语言求解 -
频侮善存: 你输入的时候,是写的,比如a=1 b=2 h=3的话,我估计你输入了123,应当输入的形式是:1,2,3就是数字中间必须加上逗号,因为你的scanf函数中,是有逗号的.你的代码没什么错,就是输入的时候形式和你的代码s...

浮山县17730188784: C语言.求解
频侮善存: #include <stdio.h> void main() { int a,b,c,max; printf("请输入a,b,c三个整数的值:"); scanf("%d %d %d",&a,&b,&c); max=a; //假设的值为最大值 if(b>max) max=b; if(c>max) max=c; printf("最大值是%d",max); } //使用这种方法可以在n个数中求解最大值

浮山县17730188784: c语言编程求解?c语言编程求解用随机函数(自查功能和用法)生成
频侮善存: #include "stdlib.h" #include "time. h" int main(void){ int a[11],i,j,b; srand((unsigned)time(NULL)); for(i=0;i 全部

浮山县17730188784: c语言编程 求解 急!!!
频侮善存: void main() { char a[100]; int i; for (i=0; i='A' && a[i]<='Z') a[i]='A'+ ('Z'-a[i]); } }

浮山县17730188784: c语言编程题 求解 -
频侮善存: #include#include double square(double x,double y,double z)//已知三角形三边求面积 { double p=(x+y+z)/2; return sqrt(p*(p-x)*(p-y)*(p-z)); } int check(double x,double y,double z) //检查是否可以构成三角形 可以返回1 ,不可以返回0 { if(x>=y&&x>=z...

浮山县17730188784: c语言编程求解 -
频侮善存: 大概的思路就是将传入的数字n转换为字符串,然后比较第一个字符与倒数第一个字符,第二个字符与倒数第二个字符... 是否相等,如果都相等则return 1; i>=half表示上边的for循环是正常退出,并不是中途跳出,即字符串左右两侧对称相等.不可以修改为下边的那种写法,他仅仅是比较了第一个与倒数第一个字符,不能保证完全对称,他会认为12341也应该return 1.

浮山县17730188784: C语言编程求解答(2) -
频侮善存: 参考答案:#include "stdio.h"#include "stdlib.h" void Output(int b[],float c[]);//输出函数 int * Input();//输入函数 menu_select();//菜单选择函数 char a[200];//定义文章大小,小了可以再大点 int b[26]={0};//定义数组统计各字母出现的...

浮山县17730188784: C语言编程题求解!!!!!!!!!!!!!!!!!!!!!!!!!! -
频侮善存: #include#include int main() { int i, j, k, l, m, n; char xingshi[20], mingzi[20]; puts("你的名字\n"); scanf("%s", mingzi); puts("你的姓氏\n"); scanf("%s", xingshi); printf("你的姓名是\n%s %s\n", mingzi,xingshi); k=strlen(mingzi); l=...

浮山县17730188784: C语言求解
频侮善存: #include<stdio.h> #include<math.h> void main() { double a,b,c,d,x1,x2; printf("请输入ax^2+bx+c=0方程中的a,b,c:"); scanf("%lf%lf%lf",&a,&b,&c); d=pow(b,2)-4*a*c; if(d<0) printf("方程无解!\n"); else if(d==0){ x1=(b+sqrt(d))/(2*a); printf("...

浮山县17730188784: c语言编程求解
频侮善存: 用GetDlgitemText这个函数.用法如下: int name[256]; GetDlgItemText(hwnd,IDC_,name,sizeof(name)); hwnd//窗口的句柄. IDC_//控件的ID. name //先定义一个字符串,用于存放控件中的变量. sizeof(name)//字符串的大小

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网