❶ 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。