❶ c语言解决实际问题
卡车耗油为1升/公里,那么有几公里就需要多少油对么?那为什么还有“最少耗油量”这种说法呢?
另外,input和output的各行分别是什么呀?是我理解错了么。。。
❷ 结合自己的工作找出一个可以用C语言编程解决的实际问题,并介绍解决问题的思路。
输出的时候一个字符一个字符的输出,并记住当前输出的值。每个字符输出前判断是不是空格,是的话,后一个也是空格就不输出,否则输出。for(i=0;str[i];i++){if((str[i]!='')||(str[i+1]!='')){printf("%c",str[i]);}}
❸ 用C语言解决一个实际问题(不要太长)
约瑟夫环(很有名的数学问题)
已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。
void JOSEPHUS(int n,int k,int m) //n为总人数,k为第一个开始报数的人,m为出列者喊到的数
{
/* p为当前结点 r为辅助结点,指向p的前驱结点 list为头节点*/
LinkList p,r,list;
/*建立循环链表*/
for(int i=0,i<n,i++)
{
p=(LinkList)malloc(sizeof(LNode));
p->data=i;
if(list==NULL)
list=p;
else
r->link=p;
r=p;
}
p>link=list; /*使链表循环起来*/
p=list; /*使p指向头节点*/
/*把当前指针移动到第一个报数的人*/
for(i=0;i<k;i++)
{
r=p;
p=p->link;
}
/*循环地删除队列结点*/
while(p->link!=p)
{
for(i=0;i<m;i++)
{
r=p;
p=p->link;
}
r->link=p->link;
printf("被删除的元素:%4d ",p->data);
free(p);
p=r->link;
}
printf("\n最后被删除的元素是:%4d",P->data);
}
❹ 用C语言解决问题
你可以用一个二维数组代替一维数组:
int num[1000][20],i,j, lenth=20;
int num1[20] = { 1, 2, 3, 4, 5, 5, 6, 1, 4, 5, 5, 7, 1, 5, 3, 8, 3, 5, 9, 1 };
初值 for (i=0;i<lenth;i++) num[0][i]=num1[i];
双重循环语句计算:
for (j=1;j<=1000;j++) for (i=0;i<lenth;i++) num[j][i]=num[j-1][i] + 1;
输出也类似,双重循环。
-----
节省内存方法:
只声明 int num1[20],num2[20]; 初始化 num1[i] 数组
做循环 500 次:
{ 1推算2 : add(num1,num2,lenth);
输出 num1[i] 数组
2推算1: add(num2,num1,lenth);
输出 num2[i] 数组
} 完毕。
❺ c语言可以解决哪些实际问题,及思路
摘要 主要是学习思维,C语言是一门很好的功课,在里面的算法,流程图的描绘,可以帮助我们很好的入门,同时锻炼我们的逻辑
❻ C语言编程题: 随便编一个程序解决任意实际问题,要求至少调用4个函数,其他随便,最好有注释
#include
<stdio.h>
#include<conio.h>
int
sum(int
x,int
y)
{
int
z;
z=x+y;
printf("z=%d",z);
return
z;
}
void
main()
{
int
a,b,s;
printf("Input
a
and
b:");
scanf("%d,%d",&a,&b);
s=sum(a,b);
getch();
}
改正的错误:
1.printf("z=%d",z);无%d,则不能输出z值
2.scanf("%d",&a);
&表示输入到a
3.用到getch();时需加头文件#include<conio.h>
4.无返回值函数需加void
❼ 我是一个刚开始接触C语言的,我只想用C语言写一些程序用来解决生活中的实际问题,比如解方程,求增长率等
对于一个新手来说,首先你该看看C语言的语法书,初步了解一下。接下来呢,就是不断的敲代码了,这个期间,可以读别人的代码、模仿别人的代码、优化别人的代码。遇到错误尽量自己解决,实在没办法就问问别人。你说的那些都是很简单的东西,不久之后相信你就会了。
❽ C语言中链表主要应用于哪些实际问题的解决
链表可以解决很多实际问题,比如数据结构课程上讲的多项式运算、求解约瑟夫问题,操作系统原理中的内存管理器实现等等。举一个在Windows通过链表搜索文件的实例,代码如下(vc6.0中编译通过)。
#include<stdio.h>
#include<windows.h>
structDirList{
chartable[256];
DirList*pNext;
};
DirList*first,*newlist,*last;
//加入文件夹链表
voidAddList(char*list)
{
newlist=newDirList;
strcpy(newlist->table,list);
newlist->pNext=NULL;
//假如文件链表为空,那么第一个和最后一个节点都指向新节点
if(first==NULL)
{
first=newlist;
last=newlist;
}
//不为空,则原来最后一个节点指向新节点
else
{
last->pNext=newlist;
last=newlist;
}
}
//查找文件,并把找到的文件夹加入文件夹链表
voidFindFile(char*pRoad,char*pFile)
{
charFileRoad[256]={0};
charDirRoad[256]={0};
charFindedFile[256]={0};
charFindedDir[256]={0};
strcpy(FileRoad,pRoad);
strcpy(DirRoad,pRoad);
strcat(DirRoad,"\*.*");
WIN32_FIND_DATAfindData;
HANDLEhFindFile;
hFindFile=FindFirstFile(DirRoad,&findData);
if(hFindFile!=INVALID_HANDLE_VALUE)
{
do
{
if(findData.cFileName[0]=='.')
continue;
//假如是文件夹,则假如文件夹列表
if(findData.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY)
{
strcpy(FindedDir,pRoad);
strcat(FindedDir,"\");
strcat(FindedDir,findData.cFileName);
//加入文件夹列表
AddList(FindedDir);
memset(FindedDir,0x00,256);
}
//继续查找
}while(FindNextFile(hFindFile,&findData));
}
strcat(FileRoad,"\");
strcat(FileRoad,pFile);
//查找要查找的文件
hFindFile=FindFirstFile(FileRoad,&findData);
if(hFindFile!=INVALID_HANDLE_VALUE)
{
do
{
strcpy(FindedFile,pRoad);
strcat(FindedFile,"\");
strcat(FindedFile,findData.cFileName);
//输出查找到的文件
printf("%s ",FindedFile);
memset(FindedFile,0x00,256);
}while(FindNextFile(hFindFile,&findData));
}
}
intSeachFile(char*Directory,char*SeachFile)
{
DirListNewList;
strcpy(NewList.table,Directory);
NewList.pNext=NULL;
last=&NewList;
first=&NewList;
while(true)
{
DirList*Find;
//假如链表不为空,提取链表中的第一个节点,并把第一个节点指向原来第二个
if(first!=NULL)
{
//提取节点
Find=first;
//并把第一个节点指向原来第二个
first=first->pNext;
//在提取的节点的目录下查找文件
FindFile(Find->table,SeachFile);
}
//为空则停止查找
else
{
printf("文件搜索完毕 ");
return0;
}
}
return0;
}
intmain(intargc,char*argv[])
{
if(argc!=3){
printf("程序名文件目录要搜索的文件名 ");
return0;
}
SeachFile(argv[1],argv[2]);
return0;
}
执行效果如下,测试搜索c:windows目录中的记事本程序notepad.exe。