⑴ 求助c语言课程代码是多少
哈哈哈,你是来搞笑的吧
⑵ 求数据结构(c语言版)程序源代码
1 #include <string.h>
2 #include <stdio.h>
3 #include <stdlib.h>
4
5 #define MAX_POS_NUM 100
6 #define MAX_STR_LEN 1024
7
8
9 //1. get all position of str_z in str_x
10 int get_sub_str_pos(const char * str_x, const char * str_z, int sub_str_pos[])
11 {
12 if (NULL == str_x || NULL == str_z)
13 {
14 printf("in error!\n");
15 return -1;
16 }
17
18 const char * pos_ptr = NULL;
19
20 pos_ptr = strstr(str_x,str_z);
21
22 int i=0;
23 while(pos_ptr)
24 {
25 printf("substring positon:%d\n",pos_ptr-str_x+1);
26 sub_str_pos[i] = pos_ptr - str_x + 1;
27 pos_ptr = strstr(pos_ptr+strlen(str_z),str_z);
28 i++;
29 }
30
31 return 0;
32 }
33
34 //2. get max length common string of str_x and str_y
35 char * get_max_com_str(const char * str_x, const char * str_y)
36 {
37 int x_len = strlen(str_x);
38 int y_len = strlen(str_y);
39
40 char * tmp_str = new char[y_len+1];
41
42 for(int i=y_len; i>0; i--) // i is substring length
43 {
44 if (i>x_len)
45 continue;
46 for(int j=0;j<=y_len-i; j++) // j is substring start postion
47 {
48 snprintf(tmp_str,i+1,"%s",str_y);
49 if (strstr(str_x,tmp_str))
50 {
51 printf("%s\n",tmp_str);
52 printf("max common substring length:%d\n",i);
53 return tmp_str;
54 }
55 }
56 }
57
58 return NULL;
59 }
60
61 //3. replace all substring in question 1
62 char * replace_sub_str(const char * str_x, char * max_com_str, int sub_str_pos[], int sub_str_len)
63 {
64 char * replaced_str = new char[MAX_STR_LEN];
65
66 int sub_pos = sub_str_pos[0];
67 int l=0; // l is sub_str_pos index
68 int i=0,j=0; //i is str_x pos, j is replaced_str pos
69
70 while(*str_x)
71 {
72 if (i==sub_pos-1) // replace from this position
73 {
74 // printf ("i:%d,\n",i);
75 for (int k=0; k<strlen(max_com_str); k++)
76 {
77 *(replaced_str + j) = * (max_com_str + k);
78 j++;
79 }
80 i += sub_str_len;
81 str_x += sub_str_len;
82 l++;
83 sub_pos = sub_str_pos[l];
84 continue;
85 }
86 *(replaced_str+j) = *str_x++;
87 i++;
88 j++;
89 }
90
91 * (replaced_str + j) = '\0';
92
93 return replaced_str;
94 }
95
96 int main()
97 {
98 const char * str_x = "abcabcabc";
99 const char * str_y = "cabcd";
100 const char * str_z = "abc";
101
102 int sub_str_pos [MAX_POS_NUM] = {0};
103
104 char * max_com_str = NULL;
105
106 char * replaced_str = NULL;
107
108 get_sub_str_pos(str_x,str_z,sub_str_pos);
109 max_com_str = get_max_com_str(str_x,str_y);
110
111 printf("max common str: %s\n",max_com_str);
112
113 replaced_str = replace_sub_str(str_x, max_com_str, sub_str_pos, strlen(str_z));
114 printf("repalced str: %s\n",replaced_str);
115
116 return 0;
117 }
⑶ c语言编程有问题,高手帮忙看下代码呀~~
#include <stdlib.h>
#include <math.h>
#include <stdio.h>
#include <iostream.h>
int rinv(double a[],int n) ;
void main()
{
int i,j;
static double a[4][4]={0.2368,0.2471,0.2568,1.2671,1.1161,0.1254,0.1397,0.1490,0.1582,1.1675,0.1768,0.1871,0.1968,0.2071,1.2168,0.2271};
static double b[4][4];
for(i=0;i<=3;i++)
for(j=0;j<=3;j++)
b[i][j]=a[i][j];
i=rinv(a[0],4);
if(i!=0)
{cout<<"MAT A IS:"<<endl;
for(i=0;i<=3;i++)
{for(j=0;j<=3;j++)
printf("%13.7e",b[i][j]);
printf("\n");
}
printf("\n");
cout<<"MAT A- IS:"<<endl;
for(i=0;i<=3;i++)
{for(j=0;j<=3;j++)
printf("%13.7e",a[i][j]);
printf("\n");
}
}
}
int rinv(double a[],int n)
{ int *is,*js,i,j,k,l,u,v;
double d,p;
is=(int *)malloc(n*sizeof(int));
js=(int *)malloc(n*sizeof(int));
for(k=0;k<=n-1;k++)
{d=0.0;
for(i=k;i<=n-1;i++)
for(j=k;j<=n-1;j++)
{
l=i*n+j;p=fabs(a[1]);
if (p>d){d=p;is[k]=i;js[k]=j;}
}
if (d+1.0==1.0)
{free(is);free(js);
printf("err**not inv\n");
return(0);
}
if(is[k]!=k)
for(j=0;j<=n-1;j++)
{u=k*n+j;v=is[k]*n+j;
p=a[u];a[u]=a[v];a[v]=p;
}
if(js[k]!=k)
for(i=0;i<=n-1;i++)
{u=i*n+k;v=i*n+js[k];
p=a[u];a[u]=a[v];a[v]=p;
}
l=k*n+k;
a[1]=1.0/a[1];
for(j=0;j<=n-1;j++)
if(j!=k)
{u=k*n+j;a[u]=a[u]*a[1];}
for(i=0;i<=n-1;i++)
if(i!=k)
for(j=0;j<=n-1;j++)
if(j!=k)
{u=i*n+j;
a[u]=a[u]-a[i*n+k]*a[k*n+j];
}
for(i=0;i<=n-1;i++)
if(i!=k)
{u=i*n+k;a[u]=-a[u]*a[l];}
}
for(k=n-1;k>=0;k--)
{if(js[k]!=k)
for(j=0;j<=n-1;j++)
{u=k*n+j;v=js[k]*n+j;
p=a[u];a[u]=a[v];a[v]=p;
}
if(is[k]!=k)
for(i=0;i<=n-1;i++)
{u=i*n+k;v=i*n+is[k];
p=a[u];a[u]=a[v];a[v]=p;
}
}
free(is);free(js);
return(1);
}
问题1:rinv函数要声明.如果不声明,就把函数放到main前面去.
问题2:=rinv(a,4);不能这么写,因为a是一个二维数组,而你的函数定义为一维的,因此我改为i=rinv(a[0],4); 效果是一样的.
⑷ 急求C语言的代码
#include <stdio.h>
#include <string.h>
/*定义一个函数,用指向字符串的指针匹配子字符串*/
int match(char * str, char * str1, char * str2, char * a_str);
int main()
{
/*定义两个字符数组,分别存储主字符串和子字符串*/
char mother[256],child[256];
/*定义一个字符串,用于替换子字符串*/
char change[256];
/*定义一个字符串,保存替换后的字符串*/
char af_change[256]="";
/*定义一个整型值,记录匹配结果*/
int result;
printf("匹配字符串:\n");
printf("请输入主字符串:\n");
gets(mother);
printf("请输入子字符串:\n");
gets(child);
printf("请输入替换的字符串:\n");
gets(change);
result=match(mother,child,change,af_change);
if (result==1)
{
printf("匹配和替换均成功!\n");
printf("替换后的字符串是:%s\n",af_change);
}
else if (result==0)
printf("匹配成功但替换失败!\n");
else
printf("匹配失败!\n");
return 0;
}
/*定义一个函数,用指向字符串的指针匹配子字符串*/
int match(char * str, char * str1, char * str2, char * a_str)
{
/*定义两个整型变量表示字符串的长度*/
int l1,l2;
/*定义指向字符串的指针,其中q1指向子字符串在主串中的位置,q2指向子字符串的位置*/
char * p, * q1=NULL,* q2,* t;
/*定义一个指向替换后的字符串指针*/
char *cc;
char *change[256];/*保存匹配成功时,子串在母串中的位置*/
int i,j; /*循环控制变量*/
/*对子串在母串中的位置进行初始化*/
for (i=0; i<256; i++) change[i]=NULL;
/*求出字符串的长度*/
l1=strlen(str1);
l2=strlen(str2);
/*对指针进行赋值*/
p=str;
/*字符串匹配过程*/
i=0;
for (p; *p!='\0'; p++)
{
q1=p;
q2=str1;
while ((*q2!='\0')&&(*q2==*q1))
{
q1++;
q2++;
}
if (*q2=='\0')/*匹配成功*/
{
change[i]=q1-l1;
i++;
}
}
if (i==0) /*匹配失败*/
return -1;
/*匹配成功后进行字符串替换过程*/
if (l1!=l2) /*替换后的字符串与原子字符串长度不等,无法替换*/
return 0;
cc=a_str;
p=str;
for (j=0; j<i; j++)/*对匹配的多个子串进行替换*/
{
while (p<change[j])/*复制母串中匹配前的字符*/
{
*a_str=*p;
a_str++;
p++;
}
for (t=str2; *t!='\0'; a_str++,t++) /*替换子字符串*/
*a_str=*t;
p+=l1;
}
if (*p!='\0') /*全部匹配字符串都替换完了,但母串未结束*/
while (*p!='\0')
{
*a_str=*p;
a_str++;
p++;
}
*a_str='\0';
a_str=cc;
return 1;
}
你的串号我已经记下,采纳后我会帮你制作
⑸ C语言代码
#include<stdio.h>
#include<stdlib.h>
#include <conio.h>
#define n 30
struct student
{ char name[8];
int score;
} R[n];
main ( )
{ int num, i, j, max, temp;
printf("\n请输入学生成绩: \n");
for (i=0; i<n; i++)
{
printf ("姓名:");
scanf ("%s", R[i].name);
printf ("成绩:");
scanf ("%d", &(R[i].score));
}
num=1;
for (i=0; i<n; i++)
{ max=i;
for (j=i+1; j<n; j++)
if (R[j].score>R[max].score)
max=j;
if (max!=i)
{ temp = R[max].score;
R[max]=R[i];
R[i].score= temp;
}
if ((i>0)&&(R[i].score<R[i-1].score))
num=num+1;
printf("%4d%s%4d", num, R[i].name, R[i].score);
}
getch();
}
⑹ C语言 入门 代码 求解
换种写法
由此可见,
当i=1,进入红色
j=1,进入蓝色
k=1,进入绿色
绿色输出1,1,1
退出绿色,k++后k=2,此时k<5
在k=2的情况下,进入绿色(没有触发i,j变化)
……
⑺ c语言编程代码
#include<stdio.h>
#include<stdlib.h>
int main(){
int a ;
char c;
scanf("%d, %c", &a, &c);
printf("%d,%c", a, c);
system("pause");
return 0;
}
⑻ 求个C语言程序的源代码
1楼的想恶搞
千万别编译运行
不是关机就是注销或重启之类的
看那名字shutdown就知道
我写个九九乘法表吧
#include<stdio.h>
int main(){
int i,j;
for(i=1;i<10;++i){
for(j=1;j<10;++j){
printf("%dX%d=%-2d ",i,j,i*j);
}
putchar('\n');
}
return 0;
}
请采纳为最佳答案,谢谢
⑼ c语言代码编写的格式
C语言 程序代码编写规范
(初级程序员 讨论版)
前言
一个好的程序编写规范是编写高质量程序的保证。清晰、规范的源程序不仅仅是方便阅读,更重要的是能够便于检查错误,提高调试效率,从而最终保证软件的质量和可维护性。
说明
l 本文档主要适用于刚刚开始接触编程的初学者。
l 对于具有一定工程项目开发经验的程序员,建议学习C语言程序代码编写规范—高级版。
目录
1 代码书写规范
2 注释书写规范
3 命名规范
4 其它一些小技巧和要求
1 代码书写规范
1.1函数定义
花括号: { }
每个函数的定义和说明应该从第1列开始书写。函数名(包括参数表)和函数体的花括号应该各占一行。在函数体结尾的括号后面可以加上注释,注释中应该包括函数名,这样比较方便进行括号配对检查,也可以清晰地看出来函数是否结束。
范例1:函数的声明
void matMyFunction(int n)
{
……
} /* matMyFunction*/
1.2空格与空行的使用
要加空格的场合
l 在逗号后面和语句中间的分号后面加空格,如:
int i, j, k;
for (i = 0; i < n; i++)
result = func(a, b, c);
l 在二目运算符的两边各留一个空格,如
a > b a <= b i = 0
l 关键字两侧,如if () …, 不要写成if() …
l 类型与指针说明符之间一定要加空格:
char *szName;
不加空格的场合
l 在结构成员引用符号.和->左右两加不加空格:
pStud->szName, Student.nID
l 不在行尾添加空格或Tab
l 函数名与左括号之间不加空格:
func(…)
l 指针说明符号*与变量名间不要加空格:
int *pInt; 不要写成: int * pInt;
l 复合运算符中间不能加空格,否则会产生语法错误,如:
a + = b a < = b 都是错误的
空行与换行
l 函数的变量说明与执行语句之间加上空行;
l 每个函数内的主要功能块之间加空行表示区隔;
l 不要在一行中写多条语句.
范例2:空行与换行
int main()
{
int i, j, nSum = 0; //变量说明
for (i = 0; i < 10; i++) //执行代码
{
for (j = 0; j < 10; j++)
{
nSum += i;
}
}
}
1.3缩进的设置
根据语句间的层次关系采用缩进格式书写程序,每进一层,往后缩进一层
有两种缩进方式:1,使用Tab键;2,采用4个空格。
整个文件内部应该统一,不要混用Tab键和4个空格,因为不同的编辑器对Tab键的处理方法不同。
1.4折行的使用
· 每行的长度不要超过80个字符,当程序行太长时,应该分行书写。
· 当需要把一个程序行的内容分成几行写时,操作符号应该放在行末。
· 分行时应该按照自然的逻辑关系进行,例如:不要把一个简单的逻辑判断写在两行上。
· 分行后的缩进应该按照程序的逻辑关系进行对齐。例如:参数表折行后,下面的行应该在参数表左括号的下方。
范例2:折行的格式
dwNewShape = matAffineTransform(coords, translation,
rotation);
if (((new_shape.x > left_border) &&
(new_shape.x < right_border)) &&
((new_shape.y > bottom_border) &&
(new_shape.y < top_border)))
{
draw(new_shape);
}
1.5嵌套语句(语句块)的格式
对于嵌套式的语句--即语句块(如,if、while、for、switch等)应该包括在花括号中。花括号的左括号应该单独占一行,并与关键字对齐。建议即使语句块中只有一条语句,也应该使用花括号包括,这样可以使程序结构更清晰,也可以避免出错。建议对比较长的块,在末尾的花括号后加上注释以表明该语言块结束。
范例3:嵌套语句格式
if (value < max)
{
if (value != 0)
{
func(value);
}
}
} else {
error("The value is too big.");
} /* if (value < max) */
2 注释书写规范
注释必须做到清晰,准确地描述内容。对于程序中复杂的部分必须有注释加以说明。注释量要适中,过多或过少都易导致阅读困难。
2.1注释风格
· C语言中使用一组(/* … */)作为注释界定符。
· 注释内容尽量用英语方式表述。
· 注释的基本样式参考范例4。
· 注释应该出现在要说明的内容之前,而不应该出现在其后。
· 除了说明变量的用途和语言块末尾使用的注释,尽量不使用行末的注释方式。
范例4:几种注释样式
/*
* ************************************************
* 强调注释
* ************************************************
*/
/*
* 块注释
*/
/* 单行注释 */
//单行注释
int i; /*行末注释*/
2.2何时需要注释
· 如果变量的名字不能完全说明其用途,应该使用注释加以说明。
· 如果为了提高性能而使某些代码变得难懂,应该使用注释加以说明。
· 对于一个比较长的程序段落,应该加注释予以说明。如果设计文档中有流程图,则程序中对应的位置应该加注释予以说明。
· 如果程序中使用了某个复杂的算法,建议注明其出处。
· 如果在调试中发现某段落容易出现错误,应该注明。
3 命名规范
3.1常量、变量命名
l 符号常量的命名用大写字母表示。如:
#define LENGTH 10
l 如果符号常量由多个单词构成,两个不同的单词之间可以用下划线连接。如:
#define MAX_LEN 50
变量命名的基本原则:
l 可以选择有意义的英文(小写字母)组成变量名,使人看到该变量就能大致清楚其含义。
l 不要使用人名、地名和汉语拼音。
l 如果使用缩写,应该使用那些约定俗成的,而不是自己编造的。
l 多个单词组成的变量名,除第一个单词外的其他单词首字母应该大写。如:
dwUserInputValue。
3.2函数命名
函数命名原则与变量命名原则基本相同。对于初学者,函数命名可以采用“FunctionName”的形式。
4 其它一些小技巧和要求
l 函数一般情况下应该少于100行
l 函数定义一定要包含返回类型,没有返回类型加void
l 写比较表达式时,将常量放在左边
10 == n
NULL != pInt
l 指针变量总是要初始或重置为NULL
l 使用{}包含复合语句,即使是只有一行,如:
if (1 == a)
{
x = 5;
}
http://home.ustc.e.cn/~danewang/c/CodingStandards.html
⑽ c语言求助 (下列代码求错误)
# include <stdio.h>
# include <math.h> //补上这一句,下面的 sqrt() 函数就可以使用了
int main(void)
{
int a = 1;
int b = 2;
int c = 3;
double delta;
double x1;
double x2;
delta = b*b - 4*a*c;
if (delta > 0)
{
x1 = (-b + sqrt(delta)) / (2*a);
x2 = (-b + sqrt(delta)) / (2*a);
printf ("该一元二次方程有两个解, X1 = %f, x2 = %f\n", x1, x2);
}
else if (delta == 0)
{
x1 = (-b) / (2*a);
x2 = x1;
printf("该一元二次方程有一个唯一解, x1 = x2 = %f\n", x1);
}
else
{
printf("无解\n");
}
return 0;
}