A. 求解一道c語言基礎編程題。
#include <stdio.h>
#define N 60 //宏定義便於替換和檢測
void Scanf(float *a,int n) //輸入函數
{ scanf("%f",&a[n]);}
void sort(float *a,int n) //排序函數{ int i,j; float t; for(i=0;i<n-1;i++) //選擇排序法 { for(j=i+1;j<n;j++) { if(a[i]>a[j]) { t=a[i]; a[i]=a[j]; a[j]=t; } } }}void Printf(float *a,int n) //輸出函數{ printf("%d# %.2fm ",n+1,a[n]);//輸出格式}int main (void){ float a[N]; int i; for(i=0;i<N;i++) Scanf(a,i); sort(a,N); for(i=0;i<N;i++) Printf(a,i);}
望採納
B. 求道C語言基礎編程題
//第一題:
#include<stdio.h>
main()
{
int
a,b,c,t;
scanf("%d%d%d",&a,&b,&c);
//輸入三個數a,b,c
if(a<b)
{
t=a;a=b;b=t;
}
if(a<c)
{
t=a;a=c;c=t;
}
if(b<c)
{
t=b;b=c;c=t;
}
printf("%d>%d>%d\n",a,b,c);
}
//第二題:
#include<stdio.h>
#include<math.h>
void
main()
{
float
a,b,c,s,k;
printf("請輸入三邊的值:");
scanf("%f%f%f",&a,&b,&c);
k=(a+b+c)/2.0;
s=sqrt(k*(k-a)*(k-b)*(k-c));
printf("面積為:%.3f\n",s);
}
這兩個題目很簡單啊!
不知道是否合你要求??
呵呵,給我分吧!
C. 求解一道C語言基礎編程題。。
舉個例子你就懂了,以16進制的2ABC為例,16進制轉為10進制的方法,就是從右到左,依次用該位的數字乘以16的0次方、16的1次方、16的2次方(同樣如果是其它進制,比如8進制,那就是8的0次方、1次方等等)。。之和,比如說2ABC轉10進制,就等於
2ABC(16)=C*1+B*16+A*16*16+2*16*16*16
你上面這個代碼就是模擬這個過程,從最後一位起,先將字元轉為實際對應的數字,比如說輸入的是2A,那麼'A'對應的數字就是10+'A'-'A'=11,同樣的'2'對應的數字就是'2'-'0'=2(或者'2'-48=2,48即'0'的ascii)得到的數字放在n里,然後用t來計算每一次該乘以多少(比如最後一位,t就是1,倒數第二位,t就是16,倒數第三位,t就是16*16),之後再通過sum+=n*t累加。
while (s[len]!='\0') len++; //通過循環獲取長度,實際上在string.h里有strlen可以直接獲取
i=len-1;
while (s[i]!='\0') { //循環開始
n=0;
if (s[i]>='0'&&s[i]<='9') //if else計算每一位實際對應的10進制數字
n=s[i]-48;
else if (s[i]>='A'&&s[i]<='F')
n=10+s[i]-'A';
t=1;
for (j=0; j<len-i-1; j++) t=t*k; //計算當前位應該乘以多少,比如i起始是len-1,那麼j=0;j<len-i-1實際上就是j<0;沒有循環,t為1,下一次循環i是len-2,j<len-(len-2)-1即為j<1,循環一次,t=1*16=16,同樣,再下一次就是16*16
printf("****%d\n",t);
sum += n*t;//累加
i--;
}
不過這樣寫確實有些繁瑣,也沒啥必要,可以是
int base(int k,char s[])
{
int len=0,sum=0;
int i,n;
while (s[len]!='\0') len++;
for(i=0;i<len;i++)
{
if (s[i]>='0'&&s[i]<='9')
n=s[i]-48;
else if (s[i]>='A'&&s[i]<='F')
n=10+s[i]-'A';
sum=sum*k+n;
}
return sum;
}
D. C語言編程題,拜託大家
(已補充排序功能!基本冒泡排序!)
通過Ascii碼來識別按鍵。
輸入採用getch函數獲取字元再轉數字。
由於getch不在控制台顯示,自定義函數實現回顯。
代碼實現了錄入,刪除功能。
錄入只識別數字,其他字元按了也沒用。
退格鍵一次刪一個字元,可以跨行刪除。
回車確認一個數字的輸入,下次輸入新數字自動換行(回車後游標不換行,另外刪除當前行可以反退到上一行)。
Ctrl+D結束程序。
注意:getch函數在windows系統下正常。linux系統下不一定能運行。
另外,我沒有寫數值大小驗證,數組變數是int型,如果你輸入超出數值類型上限還是會報錯的,想要輸入更大的數字,可以換longlong性。想加驗證,自己在代碼里加好了,可以加在輸入接收的位置。
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#define MAXS 100//數組大小
void showList(int *nums,int n,int flag);//列印數組
int inputNums(int *nums,int maxSize);//輸入maxSize個以內的數字保存在maxSize中,返回輸入的數字個數
void px(int *nums,int n);//升序排列
int main()
{
int nums[MAXS],n=MAXS,cnt;
cnt=inputNums(nums,n);
px(nums,cnt);
printf(" 升序排序後的數字為: ");
showList(nums,cnt,1);
return 0;
}
int inputNums(int *nums,int maxSize)//輸入maxSize個以內的數字保存在maxSize中,返回輸入的數字個數
{
int i=1,cnt=0,n=MAXS,flag=0;//flag:待保存標識;1:標識有數據待保存2:無數據待保存
char c=0;
while(i<=n)
{
c=getch();
if(c!=13 && c!=4 && c>='0' && c<='9')//輸入只接收並回顯數字字元
{
if(!flag)
nums[cnt]=0,cnt++,flag=1;
nums[cnt-1]=nums[cnt-1]*10+c-'0';
}
if(c==8 && cnt>0)//退格刪除
{
if(nums[cnt-1]/10>0)//當前輸入數字大於1位,則刪除一位輸入
nums[cnt-1]=nums[cnt-1]/10;
else if(nums[i-1]/10==0)//當前輸入數字只剩下1位,則刪除當前輸入的數值,數組個數-1
{
nums[cnt-1]=0,cnt--;
if(cnt==0)
flag=0;
else
i--,flag=1;
}
}
if(c==13)//回車
i++,flag=0;
if((c>='0' && c<='9')||c==13||c==8)
system("cls"),showList(nums,cnt,0);
if(c==4)//ctrl+D
{
if(flag)
flag=0;
break;
}
}
printf(" 輸入的數字為: ");
showList(nums,cnt,1);
return cnt;
}
void px(int *nums,int n)//升序排列
{
int i,j,num;
for(i=0;i<n;i++)
for(j=i+1;j<n;j++)
{
if(nums[i]>nums[j])
{
num=nums[i];
nums[i]=nums[j];
nums[j]=num;
}
}
}
void showList(int *nums,int n,int flag)//列印數組,flag:1列印模式;flag:0顯示模式
{
int i;
if(flag && n>0)
{
printf(" ");
for(i=0;i<n;i++)
printf("%d ",nums[i]);
printf(" ");
}
else if(!flag && n>0)
{
for(i=0;i<n-1;i++)
printf("%d ",nums[i]);
printf("%d",nums[i]);
}
}
E. 有關C語言的基本編程考題
則他會忘掉見過的事物。
只有燃燒的淚水留在眼中。
讓他跪下,把臉俯向草地,
看著從地面反射出的光線。
那裡他將常常找到我們失去的一切:
星星和玫瑰,黃昏和黎明。
F. c語言編程題
#include <stdio.h>
#include <math.h>
int main()
{
double x,y;
scanf("%lf",&x);
if(x<=-2)
y=-pow(exp(1),2*x+1)+3;
else if(x<=3)
y=2*x-1;
else
y=2*log10(3*x+5)-11;
printf("%lf ",y);
return 0;
}
G. c語言基礎編程題求解
#include <stdio.h>
#include <malloc.h>
#define stu struct student
stu
{ char name[20];
int age;
int wage;
stu *next;
};
stu *creat( void )
{ stu *p,*q,*h;
int i;
for(i=0; i<3; i++)
{ p=(stu*)malloc(sizeof(stu));
scanf("%s%d%d",p->name,&(p->age),&(p->wage));
if(i==0)h=q=p;
else q->next=p,q=p;
}
q->next=NULL;
return h;
}
void output( stu *p )
{ while ( p != NULL )
{ printf( "%s: ", p->name );
printf( "age=%d wage=%d ", p->age, p->wage );
p = p->next;
}
}
int main()
{ stu *p;
p = creat( );
output( p );
}
H. 求解C語言基礎編程題
#include <stdio.h>
int main()
{ int i,j,x,a[11]= {0};
char c='n';
do
{ scanf("%d%c",&x,&c);
a[x]++;
}
while(c!=' ');
for(i=1; i<11; i++)
{ printf("%d %d ",i,a[i]);
for(j=0; j<a[i]; j++)
printf("*");
printf(" ");
}
return 0;
}
I. C語言基礎編程題一小題,謝謝!
#include<stdio.h>
int main() {
int n,s=0;
scanf("%d",&n);
s=(n%10)*100+(n/10%10)*10+n/100;
printf("%d",s);
}
J. c語言編程題
voidfun1(chars[]){
while(*s){
if(*s>='a'&&*s<='z'){*s-='a';*s+='A';}
elseif(*s>='A'&&*s<='Z'){*s-='A';*s+='a';}
s++;
}
}
voidfun2(chars[]){char*p,a;
p=s;while(*p)p++;
p--;a=*s;*s=*p;*p=a;
}
voidfun3(chars[],intc[3]){
c[0]=c[1]=c[2]=0;
while(*s){
if(*s>='0'&&*s<='9')c[0]++;
elseif(*s>='a'&&*s<='z')c[1]++;
elseif(*s>='A'&&*s<='Z')c[1]++;
elseif(*s=='')c[2]++;
s++;
}
}
printf("字母個數=%d 空格個數=%d ",count[1],count[2]);