本文目录一览:
- 1、菜鸟问一道简单的C语言编程题
- 2、初学C语言的一个简单编程题,求我的问题在哪.
- 3、一道简单的c语言编程题
- 4、初学者的一道C语言编程题目
- 5、初学者请教 两道简单的c语言编程题目
- 6、初学编程,大家帮忙看下这道c语言题怎么做?万分感谢
菜鸟问一道简单的C语言编程题
完整程序如下,我加的就是定义了一个函数AREA
#include stdio.h
#include math.h
//函数的定义,定义area=sqrt((s*(s-a)*(s-b)*(s-c))根号下的内容,返回一个值,在主函数里调用该函数
float AREA(float s,float a,float b,float c){
float X=s*(s-a)*(s-b)*(s-c);
return X;
}
void main()
{float a,b,c,area,s;
printf("\nInput a,b,c: ");
scanf("%f%f%f",a,b,c);
if(a+bc a+cb b+ca) /*判断是否能构成三角形*/
{ s=(a+b+c)/2;
area=sqrt(AREA(s,a,b,c));
printf("\narea=%f\n",area);
}
else printf("\nData error!\n");}
初学C语言的一个简单编程题,求我的问题在哪.
错误1:main()函数没有函数类型 用void类型或者其他,例如:void main(){}
错误2:switch语句中的case 后面没有break 就会一直执行,知道结束或者遇 到break为止,default语句是swtich的必执行语句。我似乎明白你的意思,但是你这里有明显的逻辑错误。
改正如下:
include"stdio.h "
void main()
{
//定于数据要初始化
long n = 0;
int dn = 0;
int n1 = 0;
int n2 = 0;
int n3 = 0;
int n4 = 0;
int n5 = 0;
printf("input an integer 0~99999");
scanf("%d",n);
if n99999 dn=-1;
else if n9999 dn=5;
else if n999 dn=4;
else if n99 dn=3;
else if n9 dn=2;
else if n=0 dn=1;
else dn=-1;
switch(dn)
{
case 5 :
n5=n/10000;
case 4 :
n = n - 10000*n5;
n4=n/1000;
case 3 :
n = n - 1000*n4
n3=n/100;
case 2 :
n = n - 100*n3;
n2=n/10;
case 1 :
n1 = n - 10*n2;
case -1 :
n1=n2=n3=n4=n5=-1;
}
printf("这是一个%d位数",dn);
printf("\n第1位数是%d\n第2位数是%d\n第3位数是%d\n第4位数是%d\n第5位数是%d,n1,n2,n3,n4,n5");
}
手写的没调试过,你自己试试吧
一道简单的c语言编程题
#include stdio.h
#include stdlib.h
int main()
{
int a,b,c,d;
scanf("%d%d",a,b);
//借助其他变量
c=a-b;
b=b+c;
a=a-c;
printf("%d %d\n",a,b);
//不借助于其他变量;
scanf("%d%d",c,d);
c=c+d;
d=c-d;
c=c-d;
printf("%d %d\n",c,d);
return 0;
}
初学者的一道C语言编程题目
#include "stdio.h"
int main( )
{
int ri,repeat;
int i, digit, m, n, number, sum;
scanf("%d",repeat);
for(ri=1;ri=repeat;ri++)
{
scanf("%d%d", m, n);
/*---------*/
for(i=m;i=n;i++)
{
sum=0;
number=i;
while(number0)
{
digit=number%10;
number/=10;
sum+=digit*digit*digit;
}
if(i==sum)
{
printf("%d \n",sum);
}
}
/*---------*/
}
初学者请教 两道简单的c语言编程题目
[回答]
1. 用C语言自己的时间函数
difftime(time_t time1, time_t time0) / 86400
这样做得缺点是,这里的time_t类型,只支持到2037年
2. 自己定义函数
楼主用的方法,在实际编程里不常用,变化比较大。
下面这个方法是直接计算两个日期到公元元年的天数
然后相减,这个是实际编程时的算法,经过很多程序员的洗炼,已经被广泛使用
#includestdio.h
#define LEAP(y) (y%(y%100?4:400)==0) /*公元y年是否闰年*/
long totaldays(int year,int month,int day)/*公元纪年的总天数*/
{ int days[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int c=day,m,y=year-1;
days[2]=28+LEAP(year);
for(m=1;mmonth;m++)c+=days[m];
return c+y/4-y/100+y/400+y*365L;
}
void main()
{ int y,m,d; long t1,t2;
printf("date 1: ");
scanf("%d%*c%d%*c%d",y,m,d);
t1=totaldays(y,m,d);
printf("date 2: ");
scanf("%d%*c%d%*c%d",y,m,d);
t2=totaldays(y,m,d);
printf("total days: %ld\n",t2-t1);
}
这应该是全部的实现方法了
楼主的方法没必要简化了
尤其是刻意追求短代码就更没有必要了
要知道,代码短了,可读性就差
两者协调好,才能称为好程序^^
悉雨辰寂
初学编程,大家帮忙看下这道c语言题怎么做?万分感谢
先给你第一题的,百度知道的这个编辑器真的不适合粘贴代码
#includestdio.h
#includestring.h
#define MAX_ARRAY_SIZE 1024
#define MAX_MAP_SIZE 10
/* 输入数组,连续输入,如:aedabcdaeas */
int inputArray(char *buff) {
int len = 0;
/* 使用fgets来防止缓冲区溢出 */
if (NULL == fgets(buff, MAX_ARRAY_SIZE, stdin)) {
return 0;
}
len = strlen(buff);
/* fgets 返回的数据可能是换行符结尾的,也可能不是,对换行符结尾的进行处理 */
if (buff[len - 1] == '\n') {
buff[len - 1] = '\0';
len -= 1;
}
return len;
}
int processArray(int len, char *chars, char *map) {
/* 保存反向映射便于查找 */
int tmap[128];
int maplen = 0;
int i = 0;
char *p = chars;
memset(tmap, -1, sizeof(int) * 128);
for (i = 0; i len; i++) {
if (*p 'z' || *p 'a') {
return -*p;
}
if (tmap[*p] == -1) {
if (maplen = MAX_MAP_SIZE) {
return -1;
}
tmap[*p] = maplen;
map[maplen] = *p;
maplen += 1;
}
*p = '0' + tmap[*p];
p++;
}
return maplen;
}
int main() {
/* 用于输入的字符数组 */
char buff[MAX_ARRAY_SIZE];
/* 用于保存转换规则的数组 */
char map[MAX_MAP_SIZE];
/* 保存字符数组长度 */
int len = 0;
int maplen = 0;
int i = 0;
len = inputArray(buff);
if (len = 0) {
puts("Cancelled");
} else if (len 10) {
puts("Not enough 10 chars");
} else {
maplen = processArray(len, buff, map);
if (maplen = 0) {
puts("转换结果:");
for (i = 0; i len; i++) {
printf("%c ", buff[i]);
}
puts("");
puts("映射规则:");
for (i = 0; i maplen; i++) {
printf("%c - %d\n", map[i], i);
}
puts("");
} else if (maplen == -1) {
puts("Different Chars count is OverLimit of 10");
} else if (maplen = -2) {
printf("Unexpected char %c\n", -maplen);
}
}
return 0;
}
执行结果: