Ⅰ c语言编程问题,救救孩子吧
#include<stdio.h>typedef struct {int y,m,d;}Date;int mon[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};int checkDate(Date date){mon[2]=28+(date.y%4==0&&date.y%100||date.y%400==0); return date.y>0&&date.m>0&&date.d>0&&date.m<13&&date.d<=mon[date.m];}int main(){ Date date; scanf("%d%*c%d%*c%d",&date.y,&date.m,&date.d); printf("%s",(checkDate(date)?"OK":"Error")); return 0;}
Ⅱ 免费学习C语言的网站
买一本书
名字叫
C语言程序设计第三版
潭浩强的
网站嘛网络的C语言贴吧就可以
另外在到http://www.upol.cn/new/csmedia/download.asp?kemu=076&page=0
这个是石油大学的C语言个人觉得不错
内容就是C语言程序设计第三版的
Ⅲ C语言程序设计(会的学长学姐帮帮忙吧!!!)
源码在下面,自己看看吧。应该都很好懂,看不懂的地方再问吧。
#include <stdio.h>
char str[81];
int menudisplay();
void item();
void find();
void deletechar();
void encode();
void display();
void main()
{
int quit;
printf("请输入一串字符串:\n");
scanf("%s",str);
while(1)
{
if(quit=menudisplay()) break;
}
}
int menudisplay()
{
int n;
printf("请选择下面的一个项目:\n1 分类统计字符\n2 查找\n3 删除\n4 加密\n5 显示\n6 退出\n");
scanf("%d",&n);
if(!(n>=1 && n<=6)) menudisplay();
switch (n)
{
case 1:
item();
break;
case 2:
find();
break;
case 3:
deletechar();
break;
case 4:
encode();
break;
case 5:
display();
break;
case 6:
return 1;
}
return 0;
}
void item()
{
int i,n1=0,n2=0,n3=0,n4=0;
for(i=0;str[i];i++)
{
if(str[i]>=48 && str[i]<=57) n1++;
else if(str[i]>=65 && str[i]<=90) n2++;
else if(str[i]>=97 && str[i]<=122) n3++;
else n4++;
}
printf("数字:%d\n大写字母:%d\n小写字母:%d\n其他字符:%d\n",n1,n2,n3,n4);
}
void find()
{
char c;
int i;
printf("请输入要查找的字符:");
getchar();
c=getchar();
for(i=0;str[i] && str[i]!=c;i++);
if(!str[i]) printf("Not found!\n");
else printf("字符%c的位置是%d\n",c,i+1);
}
void deletechar()
{
char c,i,j;
printf("请输入要删除的字符:");
getchar();
c=getchar();
for(i=0;str[i];i++)
{
if(str[i]==c)
{
for(j=i;str[j];j++) str[j]=str[j+1];
}
}
printf("字符%c已经被删除!\n",c);
}
void encode()
{
int i;
for(i=0;str[i];i++)
{
if(str[i]>=65 && str[i]<=90)
{
str[i]=(str[i]+3)<=90?str[i]+3:(str[i]+3)-26;
}
if(str[i]>=97 && str[i]<=122)
{
str[i]=(str[i]+3)<=122?str[i]+3:(str[i]+3)-26;
}
}
printf("加密已经完成!\n");
}
void display()
{
puts(str);
}
Ⅳ 有没有c语言网络讨论的地方贴吧我加了c语言吧,c吧,c新手吧,c编程吧等等,但是吧里冷清的要死,
c语言这个东西首先要扎实基础,因为有很多经典书籍,所以讨论基本都是问答,大多不会有真正意义上的讨论。不像java等在设计上有见仁见智的理解。c语言就像数学,有规矩,有方法,很成熟。
Ⅳ c语言程序设计(关于动态内存分配)问题。高手进
#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
voidmain()
{
intn,i,k,m,sum=0,*p,hign_score,low_score;//定义常量
floatave_score;
printf(":");
scanf("%d",&n);
p=(int*)malloc(n*sizeof(int));//动态内存分配
if(p==NULL)
{
printf("Insufficientmemoryavaiable.");
exit(0);
}
printf(": ");
for(i=0;i<n;i++)
scanf("%d",p+i);//输入学生的分数
for(k=0;k<n;k++)//找最低的成绩
{
if(*p>*(p+k))
{
m=*p;
*p=*(p+k);
*(p+k)=m;
}
}
for(k=0;k<n;k++)//找最高的成绩,
{
if(*(p+n-1)<*(p+k))//这个地方你出错了,有n个学生,它的地址应该是
{//p+n-1,你用的是p+n,指向任何数,出错。
m=*(p+n-1);
*(p+n-1)=*(p+k);//同理,都是p+n-1
*(p+k)=m;
}
}
for(i=0;i<n;i++)
sum+=*(p+i);
ave_score=sum*1.0/n;
hign_score=*(p+n-1);//也应该是p+n-1
low_score=*p;
printf("%f ",ave_score);//输出
printf("Thehighscoreofthestudentsis%d ",hign_score);
printf("Thelowscoreofthestudentsis%d ",low_score);
free(p);
}
PS:指针的题目容易出错,用的什么要小心。如果没有语法错误,出错的话,一般就是指针的地址有问题。
程序是对的,有运行结果。结贴吧
Ⅵ 关于C语言编程的 啊,高手进来吧
1.
#include<stdio.h>
void main()
{
int a[20]={2,4,6,8,10,12,14,16,18,20},n,count=0,i=0,in=0;
while(a[count]!=0)
{
printf("\n%d",a[count]);
count++;
}
printf("\nPlease input a integer which you want to insert:");
scanf("%d",&n);
while(a[in]<n)
{
in++;
}
for(i=count;i>in;i--)
a[i]=a[i-1];
a[in]=n;
count=0;
while(a[count]!=0)
{
printf("\n%d",a[count]);
count++;
}
}
2.
heng是数组的横坐标,zong是数组的纵坐标,是多少自己修改那个宏定义就可以了
#include<stdio.h>
#define heng 3
#define zong 4
void main()
{
int num[heng][zong],i,j,max,maxj[heng]={0,0,0},min,mini[zong]={0,0,0,0};
for(i=0;i<heng;i++)
for(j=0;j<zong;j++)
{
printf("\na[%d][%d]=",i,j);
scanf("%d",&num[i][j]);
}
for(i=0;i<heng;i++)/*得出每一行的最大值的纵坐标*/
{
max=num[i][0];
for(j=1;j<zong;j++)
if(max<num[i][j])
{
max=num[i][j];
maxj[i]=j;
}
}
for(j=0;j<zong;j++)/*得出每一列的最小值的横坐标*/
{
min=num[0][j];
for(i=1;i<heng;i++)
if(min>num[i][j])
{
min=num[i][j];
mini[j]=i;
}
}
for(i=0;i<heng;i++)/*如果相等则输出这个数*/
for(j=0;j<zong;j++)
if(num[i][maxj[i]]==num[mini[j]][j])
printf("%d",num[i][maxj[i]]);
}
Ⅶ C语言程序设计---帮忙做一下吧
第一个人回答的有点问题,运行33000,20时会出现错误,是变量的类型没定义好,下面这样就对啦:
#include<stdio.h>
void main()
{
long x,y,p;
long prodct(long a,long b);
scanf("%ld,%ld",&x,&y);
p=prodct(x,y);
printf("The proct is:%ld\n",p);
}
long prodct(long a,long b)
{
long c;
c=a*b;
return c;
}