❶ c语言代码(在线)
这个程序我见过!地址如下。
程序是没有任何问题的。do..while只是为了提高程序的判断验错能力。给你解释一下:
void insert()
{
int i=n,j,g; //这里n是全局变量,它记录了总学生数
printf("input number:\n"); //这里是提示要插入(增加的人数),比如要增加10个学生,输入10,只增加1个学生就输入1,这个概念要清楚
scanf("%d",&m);
do
{ g=1;
while(g)
{ g=0;
printf("iuput %dth telephone:\n",i+1); //提示输入,提示你输入第n+1个学生的数据
scanf("%s",phon[i].tel);
for(j=0;j<i;j++)
if(strcmp(phon[i].tel,phon[j].tel)==0) //对字符串不能直接比较故用字符串比较函数strcmp()判断
{ printf("that have ,please input again!\n"); //相等则说明输入重复,有重复立即退出该层循环并要求重新输入
g=1;
break; //如有重复立即退出该层循环
}
}
printf("input %dth name:\n",i+1);
scanf("%s",phon[i].name);
printf("input %dth address:\n",i+1);
scanf("%s",phon[i].add);
printf("input %dth telephone:\n",i+1);
scanf("%s",phon[i].tel);
printf("input %dth E-mail:\n",i+1);
scanf("%s",phon[i].mail);
if(g==0) //如果g==0,说明输入正确(也就是无重复),那么i加1表示实际人数加1
{ i=i; //这句去掉,多余无用
i++;
}
}while(i<n+m); //当输入的总人数小于m时继续输入
n+=m; //输入完成后总学生数为n+m,把这个数字保存到全局变量中供排序函数等其他函数调用
printf("complate.\n\n");
}
再说明一点,这里新增加的学生,或者是改动学生的数据都只是保存在内存中,并没有真正写入到硬盘的文件tonxunlu.dat中,所以要把结果保存到文件中,退出程序时必须调用功能模块save()函数将内存中的有关数据(包括增加和改动后的)全部写入到文件tonxunlu.dat中。这一点源程序已经说明得很清楚。
当然如果你不想在退出前执行save()函数模块,可以在insert()函数中的最下面调用该save()函数也可以,也就是:
void insert()
{
......
n+=m;
save();//这里
printf("complete.\n\n");//此单词写错
}
❷ c语言在线翻译器
这个是大数加法的程序了,
1 先进行分割,
2 然后将对应的字符数字保存为数字逆序放到数组里,
3 在做加法,进位的时候后面以为加,低位和减去10为低位,
4 逆序输出结果
❸ C语言编程 在线等
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#defineN100
structscore
{
floatmath;
floatenglish;
floatcomputer;
};
structstudent
{
intnumber;
charname[20];
structscoresco;
floataverage;
};
structstudentstu[N];
floatinput_score(int);//计算学生平均成绩
voidprint_student2(void);//显示表头
voidprint_student3(int);//显示学生信息
voidprint_student1(int);//显示全部学生资料
voidprint_student1(inta)//显示全部学生资料
{
printf("本班所有学生具体信息如下 ");
print_student2();
for(inti=0;i<a;i++)
{
print_student3(i);
}
}
voidprint_student3(inta)//显示学生信息
{
printf("%8d%12s%14.2f%14.2f%14.2f%14.2f ",stu[a].number,stu[a].name,stu[a].sco.math,stu[a].sco.english,stu[a].sco.computer,stu[a].average);
}
voidprint_student2(void)//显示表头
{
printf("学号姓名数学成绩英语成绩计算机成绩平均成绩 ");
}
voidinput_student1(inta)//输入学生信息
{
printf("学号:");
scanf("%d",&stu[a].number);
getchar();
printf("姓名:");
gets(stu[a].name);
printf("数学成绩:");
scanf("%f",&stu[a].sco.math);
printf("英语成绩:");
scanf("%f",&stu[a].sco.english);
printf("计算机成绩:");
scanf("%f",&stu[a].sco.computer);
}
floatinput_score(inta)//计算学生平均成绩
{
return(stu[a].sco.math+stu[a].sco.english+stu[a].sco.computer)/3;
}
//voidmain()
intmain()
//最好是intmain
{
structstudentstu[N];
input_score(student);
print_student2(student);
print_student3(student);
print_student1(student);
print_student1(student);
return0;
//加上返回值
}
❹ 求在线C语言编程
//从键盘上输入三个整数.由小到大的顺序输出;
#include<stdio.h>
#include<stdlib.h> //这里我采用了快速排序这一函数,需要在开头声明的库函数;
int compare (const void *elem1,const void *elem2) //引入比较函数
{
int *p1,*p2;
p1=(int *)elem1; //强制类型转换;
p2=(int *)elem2; //强制类型转换;
return (* p1)-(* p2); //这个函数返回值的特点:如果返回值是负数,则p1排在p2前面;
}
main()
{
int i;
int a[4];
for (i=0;i<3;i++)
scanf ("%d",&a[i]);
qsort (a,3,sizeof(int),compare);
for (i=0;i<3;i++)
printf("%d ",a[i]);
getchar(); //在Dev-C++中,为了看最后结果;
getchar();
}
//其实这个快速排序,可以很方便的一次性快排许多整数,非常cool!!
//打印出100~999之间的所有水仙花数
#include<stdio.h>
main()
{
int i,j,k,l; //j表示i的百位;k表示i的十位;l表示i的个位;
for (i=100;i<=999;i++)
{
j=i/100; //利用int类型自动保留整数,舍去小数的特点;
k=(i-100*j)/10;
l=i-j*100-k*10;
if (i==j*j*j+k*k*k+l*l*l)
printf ("%d\n",i);
}
getchar();
getchar();
}
//利用循环解构输出9.9乘法表
#include<stdio.h>
main()
{
int i,j;
for (i=1;i<=9;i++)
{
for (j=1;j<=i;j++)
{
printf ("%d*%d=%2d ",j,i,j*i);
}
printf ("\n");
}
getchar();
getchar();
}
//希望对你有帮助 ~~~
❺ c语言在线等
//
//CreatedbyBroderickon2018-04-08.
//
#include"stdio.h"
#include"Math.h"
voidswap(double*p,double*q){
*p=*p+*q-(*q=*p);
}
//ax^2+bx+c=0
double*OneQuadraticEquation(doublea,doubleb,doublec,doubleresult[2]){
result[0]=((-1*b)+sqrt(pow(b,2)-4*a*c))/(2*a);
result[1]=((-1*b)-sqrt(pow(b,2)-4*a*c))/(2*a);
printf("x1=%.2d,x2=%.2d",result[1],result[2]);
if(result[0]>result[1]){
swap(result,result+1);
}
returnresult;
}
intmain(){
doublea,b,c,result[2];
printf("请用逗号分隔并输入a,b,c ");
scanf("%d%d%d",a,b,c);
OneQuadraticEquation(a,b,c,result);
return0;
}
❻ c语言在线编译
#include<stdio.h>//头文件补上
int max(int x,int y)//定义声明函数
{
int z;
z=(x>y)?x:y;
return(z);
}
int main()
{
int a,b,c;
scanf("%d,%d",&a,&b);
c=max(a,b);//函数调用
printf("%d",c);
return 0;
}
❼ c语言在线高手
你的问题是书不一样,然后不同分配的借法种数是吧。
如果是的话本题应该用分步来算,先有A来借,他从5本书中借去一本,接着B从剩下的4本中借去一本,最后C从剩下的3本中再借去一本,所以总共不同借法就有5*4*3种。
#include"stdio.h"
main()
{
int i,n,s=1;
scanf("%d",&n); /*输入一个数n表示小明有n本书*/
for(i=0;i<3;i++) /*i表示A,B,C三个小朋友,i=0表示A可以借书的机会,i=1表示B可以借A借过后剩下的书,C则再剩下*/
{s*=n;
n--;
}
printf("%d\n",s);
}
不敢保证一定正确,但希望对你有帮助
❽ c语言在线翻译
/包涵头文件stdio.h
void main//返回空值的main函数
{
float a,b,c,x;//定义浮点类型a,b,c,x
x=0;//给x赋初值0
printf("a=");//在屏幕上输出 a=
scanf("%f",&a);//从键盘上获取一个浮点数赋给a
printf("b=");//在屏幕上输出 a=
scanf("%f",&b);//从键盘上获取一个浮点数赋给b
printf("c=");//在屏幕上输出 a=
scanf("%f",&f);//从键盘上获取一个浮点数赋给f
/*这句是不是有问题?应该是scanf("%f",&c);吧?*/
x=a/(b-c);//将a/(b-c)的值赋给x
if((b-c)!=0)//假如(b-c)不等于0
print("%.2f=a/(b-c)\n",x);//在屏幕上输出(x的值,保留两位小数)=a/(b-c)(一个回车符)
else//否则
{
printf("\nError!\n");//在屏幕上输出(一个回车符)Error!(一个回车符)
}
}
❾ C语言,在线等。
1#include <stdio.h>
void main()
{
char a,c;
int b[26]={0},i;
while((a=getchar())!='\n')
{
c=a;
if (c>='A'&&c<='Z')
{
++b[c-'A'];
}
}
for (c='A',i=0;i!=26;++i,++c)
{
printf("有大写字母%c,%d个\n",c,b[i]);
}
}
2、#include <stdio.h>
void main()
{
char s[80],ch[80];
gets(s);//取首地址即可
int i,j,m;
scanf("%d",&m);//漏了取地址符号
for(i=0,j=0;i<=m;i++,j++)
ch[j]=s[i];
for(i=i-m;s[i-m]!='\0';i++)
s[i]=s[i-m];
for(i=m,j=0;s[i]!='\0';i++,j++)
s[i]=ch[j];
s[i]='\0';
puts(s);
}
❿ 有什么好的C语言在线编程网站吗
南洋理工学院的OJ系统还是不错的,希望对你有帮助,望采纳