c語言aka
1. c語言出錯invalid operands to binary %
pow()函數是一個形參和返回值都 加float類型的函數 怎麼能%呢
2. invalid conversion from 'int' to '在C語言中是什麼意思
在調用函數的時候傳遞的是int類型的數據,但那個函數定義的參數類型不是int(比如是結構或者指針或者數組)。
#include
#include"stdlib.h"
int main()
{
int i,j,k;
int *q;
q=(int*)malloc(sizeof(int));
scanf("%d %d %d",&i,&j,&k);
if(i>j)
{
if(i>k)
*q=i;
else
*q=k;
}
else
q=&j;
printf("%d",*q);
return 0;
system("pause");
}
這樣就行了。
(2)c語言aka擴展閱讀:
注意事項
1、int 是整型,float是浮點型,double是精度較float大的浮點型,char是字元型,long是長整型,printf是一個輸出信息的庫函數,include是在要在一個文件里包含另一個文件時要用的關鍵字,math是一個庫的名稱。
2、指針與變數不能直接賦值,只有(*q)才能和變數進行賦值,並且必須先給指針分配內存空間,所以直接把q=i編程(*q)=i是不行的。
3. 關於指針的c語言問題,invalid operands to binary +(have 『float' and 『const float *'
我給你改了第一個循環的東西,你看看有什麼變化
#include <stdio.h>
#define MONTHS 12
#define YEARS 5
int main (void)
{
// 把數組初始化為年到2004年的降水量數據
float rain[YEARS][MONTHS] = {
{4.3, 4.3, 4.3, 3.0, 2.0, 1.2, 0.2, 0.2, 0.4, 2.4, 3.5, 6.6},
{8.5, 8.2, 1.2, 1.6, 2.4, 0.0, 5.2, 0.9, 0.3, 0.9, 1.4, 7.3},
{9.1, 8.5, 6.7, 4.3, 2.1, 0.8, 0.2, 0.2, 1.1, 2.3, 6.1, 8.4},
{7.2, 9.9, 8.4, 3.3, 1.2, 0.8, 0.4, 0.0, 0.6, 1.7, 4.3, 6.2},
{7.6, 5.6, 3.8, 2.8, 3.8, 0.2, 0.0, 0.0, 0.0, 1.3, 2.6, 5.2}
};
int year, month;
float subtot, total;
float (*ptf)[MONTHS];
printf (" YEAR RAINFALL (inches) \n");
for (year = 0, total = 0; year < YEARS; year++)
{
for (month = 0, subtot = 0, ptf = rain; month < MONTHS; month++)
subtot += *(*(rain + year) + month);
printf ("%5d %15.1f\n", 2000 + year, subtot);
total += subtot; // 所有年度的總降水量
}
printf ("\nThe yearly average is %.1f inches.\n\n", total/YEARS);
printf ("MONTHLY AVERAGES: \n\n");
printf (" Jan Feb Mar Apr May Jun Jul Aug Sep Oct ");
printf (" Nov Dec\n");
/*for (month = 0; month < MONTHS; month++)
{
for (year = 0, subtot = 0, ptf = rain; year < YEARS; year++)
subtot += *(rain + year * MONTHS + month);
printf ("%4.1f ", subtot / YEARS);
}
printf ("\n");*/
return 0;
}
有兩點你要注意
(1)指針和二維數組怎麼對應
(2)二維數組用指針怎麼訪問
4. c語言數據結構
#include <stdlib.h>
#include <iostream>
#define OK 1
#define MVNum 100
typedef int Status;
typedef char VerTexType;
typedef int ArcType;
struct closedgestruct
{
源VerTexType adjvex; //最小邊的頂點ArcType
ArcType lowcost; //最小邊的權值
}closedge[MVNum];
Status Min()
{
int x,N,min=closedge[1].lowcost;
for(x=1;x<=MVNum;x++)
{
if(min>closedge[x].lowcost)
min=closedge[x].lowcost;//找closedge數組中權值最小的那組
N=x;//N保存權值最小的那組的下標
}
std::cout<<N;//輸出最小權值對應的那組數組的下標
return OK;
}
5. C語言編譯提示「invalid type argument of `unary *'」
將代碼#defineCopyMMCtoMem(a,b,c,d,e) (((int(*)(int, uint, ushort, uint *, int))
(*((uint *)(0x0c004000 + 0x8))))(a,b,c,d,e))改為:
#defineCopyMMCtoMem(a,b,c,d,e) (((int(*)(int, uint, ushort, uint *, int))
(*((int *)(0x0c004000 + 0x8))))((a),(b),(c),(d),(e)))
(5)c語言aka擴展閱讀:
C語言iscntrl()函數:判斷一個字元是否為控制字元
C語言isalpha()函數:判斷一個字元是否是字母
C語言isalnum()函數:判斷一個字元是否是字母或者數字
C語言pow()函數:求x的y次方的值
C語言frexp()函數:提取浮點數的尾數和指數部分
double exp(double x) 返回指數函數ex的值
doublefrexp(double value,int *eptr) 返回value=x*2n中x的值,n存貯在eptr中
6. 在C++中這個錯誤是什麼意思
在C++中不強調使用前數據須初始化會造成很多程序問題甚至是隱藏的隱患,所以是不安全的,而在C#中有自動監測是否使用了未初始化的變數,所以,C#稱為安全的語言。
很明顯你在使用結構前沒有對變數初始化就直接調用,從以上你的代碼看J沒有聲明就使用
[錯誤] 不能通過 '...' 通過 'std::string {aka 結構 std::basic_string <char>}' 非瑣細地復制類型的對象
7. C語言里的 [Warning] assignment from incompatible pointer type 是什麼意思啊
指針類型的賦值。
不同的編譯器,對於不同類型間的指針變數進行賦值的編譯檢查是不一樣的,有的報警告,有的報錯誤。
例如:
intmain()
{
chara[3][6]={"hello","world"};
char*p;
p=a;
printf("%c ",*p);//輸出h
return0;
}
在devC++工具下編譯通過,報警告:[Warning] assignment from incompatible pointer type
在VC6工具下,編譯出錯報錯誤:error C2440: '=' : cannot convert from 'char [3][6]' to 'char *' Types pointed to are unrelated; conversion requiresreinterpret_cast, C-style cast or function-style cast
(7)c語言aka擴展閱讀:
warning: initialization from incompatible pointer type 分析
在字元驅動中,這行代碼報了警告信息:
warning: initialization from incompatible pointer type
static ssize_t s3c2440_key_read(struct file *filp, char __user *buf, ssize_t count, loff_t *ppos);
經分析是因為函數聲明與函數的原型不符,將其中的:
ssize_t count
改成:
size_t count
就可以了。
同樣static void s3c2440_key_release(struct inode *inode, struct file *filp);
將其中的:
void
改成:
int
就可以了。