鋸齒形c語言
A. c語言中有沒有鋸齒數組(交錯數組)
我可以很負責任的告訴你有,可以用動態分配內存的方法實現
B. C語言鋸齒數組
//---------------------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int **a,b,c,i;
printf("請輸入行數:");
scanf("%d",&b);
a=(int **)malloc(sizeof(int **)*b);
if (a==NULL) {
fprintf(stderr,"分配失敗");
exit(1);
}
for (i = 0; i<b; i++) {
printf("請輸入第%d行的元素個數:",i+1);
scanf("%d",&c);
a[i]=(int *)malloc(sizeof(int)*(c+1));/*為第i行分配c+1個int空間,多出來的一個位置用於保存這一行的長度*/
if (a[i]==NULL) {
fprintf(stderr,"分配失敗");
exit(1);
}
a[i][0]=c; /*將第i行的長度保存到第i行的第一個元素中*/
for (c=1; c<=a[i][0]; c++) {
a[i][c]=1;
}
}
for (i = 0; i<b; i++) {
for (c=1; c<=a[i][0]; c++) {
printf("%d",a[i][c]);
}
putchar('\n');
free(a[i]); /*釋放為第i行分配的空間*/
}
free(a); /*釋放為a分配的空間*/
return 0;
}
//---------------------------------------------------------------------------
C. 什麼是鋸齒型書寫格式
講的是程序裡面的鋸齒型書寫格式的話 應該是為了增強程序的可讀性,採用縮進的書寫形式。
如:
main()
{
int x=1,a=0,b=0;
switch(x)
{
case 0: b++;
case 1: a++;
case 2: a++;b++;
}
printf (「a=%d,b=%d\n」,a,b);
}
這個就是用鋸齒型書寫的,有括弧縮進和對齊等。就是為了方便查看程序,特別是代碼多了以後如果沒有鋸齒格式查看起來會很不方便
我想就是這樣了
D. 用c語言編寫產生方波,三角波,鋸齒波的單片機程序
進關於電子發燒友等論壇,一般都會有的。這是比較常見信號發生器設計需要的、、
E. 高分懸賞!急求!三角波,鋸齒,正弦波,脈沖的C語言程序代碼,不要單片機方面的,純C的!
正弦波輸入 振幅,頻率,時步,相位
三角波鋸齒波輸入 振幅,坡1寬,坡2寬,無波寬,時步
三角波 w1=w2, 鋸齒波 w1 != w2.
程序沒有考慮時間 寬度w1=0 或 w2 =0,如果等於0,請給一個非0值,例如 0.0000001.
脈沖方波,請自己模仿三角波程序計算。w期間等於amp,flat_t期間等於0.
#include <stdio.h>
#include <math.h>
void main()
{
double y[2048];
double pi,r;
double amp,f,phi,dt,t,x;
double w,flat_t,slop1,slop2,L,w1,w2;
int flag_w1=0,flag_w2=0;
long int i;
int N=2048;
char str[5];
pi = atan(1.0) * 4.0;
fprintf(stderr,"Enter sin or tri\n");
scanf("%s",&str[0]);
if ( strncmp(str,"sin",3) == 0)
{
fprintf(stderr,"enter Amp Hz delta_t phase\n");
fprintf(stderr,"for example: 1.0 10.0 0.001 1.414\n");
scanf("%lf %lf %lf %lf",&,&f,&dt,&phi);
for (i=0;i<N;i++) y[i]= amp * sin(2.0*pi * f * dt * i + phi );
for (i=0;i<N;i++) fprintf(stdout,"%lf\n",y[i]);
exit(0);
};
fprintf(stderr,"enter Amp w1 w2 flat_t dt\n");
fprintf(stderr,"for example: 1. 1. 1. 1. 0.01 \n");
scanf("%lf %lf %lf %lf %lf",&,&w1,&w2,&flat_t,&dt);
w = w1+w2;
L = w + flat_t;
slop1 = amp / w1;
slop2 = -amp / w2;
for (i=0;i<N;i++)
{
t = dt * (double) i;
x = t - L * (double) ( (int) (t / L));
if (x >= 0.0 && x <= w1) y[i] = slop1 * x;
if (x > w1 && x < w ) y[i] = amp + slop2 * (x - w1);
if (x >= w && x <= L ) y[i] = 0.0;
}
for (i=0;i<N;i++) fprintf(stdout,"%lf\n",y[i]);
exit(0);
}
F. c語言 改成鋸齒形式 求幫忙。
鋸齒形式其實就是縮進對其
#include <stdio.h>
#define PRICE 12.5
mian ()
{
int num = 3;
float total;
total = num *PRICE ;
printf("total = %f\n",total);
}
在比如
main()
{
int x=1,a=0,b=0;
switch(x)
{
case 0: b++;
case 1: a++;
case 2: a++;b++;
}
printf (「a=%d,b=%d\n」,a,b);
}
G. 程序注釋。產生方波、鋸齒波的c語言程序。請高玩幫忙寫下注釋,計算一下方波的周期、鋸齒波的周期。
100K的方波對51來說要求太高了,盡量不要用,這個程序如果頻率不對,對
「TH0=0XF6;//初始值246」這句里的0xf6調整下,向上增加數值會提高精度。
/**************************
MCU:S52
crystal:24M
****************************/
#include<reg52.h>
sbit output=P1^0;//P1.0腳輸出100K
void timer0_init()
{
TMOD=0X02;//定時器0方式2
TH0=0XF6;//初始值246
ET0=1;//開中斷
EA=1;//開總中斷
TR0=1;//開定時器0
}
void main()
{
timer0_init();
while(1);
}
void timer_isvof()interrupt 1
{
output=!output;//中斷翻轉
}
另外,虛機團上產品團購,超級便宜
H. 單片機c語言編程方波,鋸齒波,三角波程序怎麼寫
方波簡單,鋸齒波和三角波還要加DA和濾波器才能實現吧……
I. 試用c語言編寫一個能輸出鋸齒波信號的單片機c51程序
程序加一個的LCD1602,你選擇使用
的#include <reg52.h>的/ /包含頭文件
?#包括<intrins.h>的
#定義UCHAR無符號的字元/ /宏定義
?#定義UINT無符號整數
?UCHAR I,J,N,Z,/ /定義全局變數
SBIT RS = P2 ^ 0; / /定義埠
?和SBIT RW = P2 ^ 1;
SBIT E = P2 ^ 2;
SBIT K = P2 ^ 7;
SBIT K1 = P2 ^ 6;
UCHAR代碼STR0 [] = {「正弦波」}; / /定義LCD1602顯示的字元數組
UCHAR代碼STR1 [] = {「三角波」};
UCHAR代碼字元串str2 [] = {「方波」};
?的UCHAR代碼表[3] [40] = / /定義的兩維陣列的波形
?{
??80H時,0x94的,0xa7,0xb9,0xca,0xd9,0xe7,0xf1,0XF8,是0xFD,
??是0xFD,0xff,則0XF8,0xf1,0xe7,0xd9,0xca,0xb9 0xa7,0x94的,
??80H時,0x6c,將0x55,0x46,0x35,$ 25,為0x18,0X0E,0X06,0X02,
??為0x00,0X02,0X06,0X0E,為0x18,$ 25,0x35,0x46,0x55??的,0x6c,
??80H時,0x8c,0x99,0xa6,0xb3,0XC0,含有0xCC,0xd9,0xe6,0xf2,
??為0xff,0xf2,0xe6,0xd9,含有0xCC,0XC0,0xb3,0xa6,0x99,0x8c,
??80H時,為0x73,0x66,0X5A,0x4d,0X40,地址0x33,0X26,0X1A,0X0D,
?為0x00,0X0D,0X1A,0X26,地址0x33,0X40,0x4d,為0x5A,0x66,為0x73,
??為0xff,0xff,則是0xFF,0xFF時,為0xff,0xff,則是0xFF,0xFF時,為0xff,0xff,則
??為0xff,0xff,則是0xFF,0xFF時,為0xff,0xff,則是0xFF,0xFF時,為0xff,0xff,則
??0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,
??0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00,0X00
?};
?無效延遲(UINT Z)/ /延時程序
?{
????(Z,Z> 0,Z - )
???
??
??}
?}
?無效Write_command「(UCHAR CMD)/ / LCD1602寫命令程序
?{
??RS = 0; / /選擇指令寄存器
?RW = 0; / /寫操作
?E = 1 / /使能端
?P1 = CMD;
?延遲時間(1);
?E = 0;
LCD1602是不是很忙?延遲(10); / /延時
?}
?無效WRITE_DATA(UCHAR CMD)/ / LCD1602寫入數據的命令
?{
??RS = 1; / /選擇數據寄存器
?RW = 0; / /寫操作
?E = 1; / /結束
?P1 = CMD;
?延遲時間(1);
?E = 0;
LCD1602是不是很忙?延遲(10); / /延時
?}
?的無效Lcd_init()/ / LCD1602初始化程序
?{
????Write_command(0x38); / /設置16 * 5 * 7點陣8位數據介面
?Write_command(0X0C)/ / LCD1602打開顯示,不顯示游標
?Write_command(0X06)/ /讀或寫一個字元指針加1不動
?Write_command(0X80 +0 X00); / /設置數據地址指針
?}
?無效顯示器()/ / LCD1602顯示英語課程
?{
????Lcd_init();
?(我== 0)
???
?組(n = 0,N <13,N +)
???
???WRITE_DATA(STR0 [N]);
??}
????}
?否則,如果(我== 1)
?{
?組(n = 0,N <13,N +)
??
??WRITE_DATA(STR1 [N]);
?}
?}
?其他
?{
?組(n = 0,N <13,N +)
??
??WRITE_DATA(字元串str2 [N]);
?}
?}
?}
無效的主要()/ /主函數
?{
???顯示();
?而(1)
?{
??中for(j = 0; J <40; + +)
???
???P0 =表[I] [J];
???
??}
(k == 0)/ /切換程序??
???
????延遲時間(1);
???(k == 0);
????
????(K == 0)
?????
????+ +;
????如果(i == 3)= 0;
???顯示();
????}
????
???}
??????而(k == 0);
??}
?}
?}