#includestdio.h
创新互联服务项目包括石河子网站建设、石河子网站制作、石河子网页制作以及石河子网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,石河子网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到石河子省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
#includestring.h
int findstr(char *s_str,char *d_str);
int main(void) {
char s1[80],s2[80];
int n;
printf("请输入一个字符串:");
gets(s1);
printf("请输入你要查找的字符串:");
gets(s2);
n=findstr(s1,s2);
printf("%s在%s里共有%d个\n",s2,s1,n);
return 0;
}
int findstr(char *s_str,char *d_str) {
int i,j,k,count=0;
char temp[80];
int length=strlen(d_str);
for(i=0;istrlen(s_str);i++) {
k=0;
for(j=i;ji+length;j++)
temp[k++]=s_str[j];
temp[k]='\0';
if(!strcmp(temp,d_str)) count++;
}
return count;
}
首先,指针默认只有一个地址的长度的空间,存不了那么多的字符。
其次,传值和传地址一塌糊涂,完全就是乱写么。
scanf的第二个参数是地址,如果本身不是指针则需要取址符。
我给你重写了算了
#includestdio.h
int Retrieve(int array[],int length,int x);/*形参x直接传值就可以了*/
int main()
{
int *a,x;
int length,i;
scanf("%d",length);
a = (int)malloc(sizeof(int)*length); /*申请一个内存空间用来存放数据,或者直接用一个大数组也可以*/
如果总数量为文件“数据\库存数据.txt”内容的行数(除了字符‘0’开头的行以外),那么下面的函数“能统计出货品的总数量和总金额”。
void Stat(void)
{
char buf[256];
int sum_number = 0;
double sum_money = 0.0;
FILE *fp;
fp = fopen("数据\\库存数据.txt", "r");
if (fp != (FILE *)NULL)
{
while(fgets(buf, sizeof(buf), fp))
{
if (buf[0] != '\0')
{
n++;
if ((ptr = strchr(buf, '$')) != (char *)NULL)
{
sum_money += atof(ptr+1);
}
}
}
fclose(fp);
}
printf("总数量:%d\t总金额:%f", sum_number, sum_money);
}
#include stdio.h
int search(int arr[],int len,int num)//arr为序列,len为序列长度,num为要查找的数
{
int start,end,mid;
start=0;
end=len-1;
mid=(start+end)/2;
while(start=end)
{
if(arr[mid]num)
{
end=mid-1;
mid=(start+end)/2;
continue;
}
if(arr[mid]num)
{
start=mid+1;
mid=(start+end)/2;
continue;
}
return mid+1;
}
return -1;
}
int main()
{
int a[100],i,m,num,pos;
printf("输入序列长度:");
scanf("%d",m);
printf("输入一个长度为%d的有序序列:\n",m);
for(i=0;im;i++)
{
scanf("%d",a[i]);
}
printf("输入你要查找的数:");
scanf("%d",num);
pos=search(a,m,num);
if(pos==-1)
printf("未能在序列中找到你要查找的数。\n");
else
printf("你要查找的数在第%d个位置\n",pos);
return 0;
}